From 18036d7bb45d540c402437e4a15d285a777a42e0 Mon Sep 17 00:00:00 2001 From: Tomas Date: Mon, 4 Mar 2024 22:42:16 -0300 Subject: [PATCH 01/11] [refactor] added smart contracts and abis, changed state variables calls --- .../contracts/access/Ownable.sol/Ownable.json | 85 + .../interfaces/IERC4906.sol/IERC4906.json | 328 + .../draft-IERC6093.sol/IERC1155Errors.json | 113 + .../draft-IERC6093.sol/IERC20Errors.json | 97 + .../draft-IERC6093.sol/IERC721Errors.json | 114 + .../token/ERC20/IERC20.sol/IERC20.json | 194 + .../token/ERC721/ERC721.sol/ERC721.json | 444 + .../token/ERC721/IERC721.sol/IERC721.json | 296 + .../IERC721Receiver.sol/IERC721Receiver.json | 45 + .../ERC721Burnable.sol/ERC721Burnable.json | 457 + .../ERC721URIStorage.json | 476 + .../IERC721Metadata.sol/IERC721Metadata.json | 341 + .../contracts/utils/Context.sol/Context.json | 10 + .../contracts/utils/Strings.sol/Strings.json | 27 + .../utils/cryptography/ECDSA.sol/ECDSA.json | 38 + .../MessageHashUtils.json | 10 + .../introspection/ERC165.sol/ERC165.json | 30 + .../introspection/IERC165.sol/IERC165.json | 30 + .../contracts/utils/math/Math.sol/Math.json | 16 + .../utils/math/SignedMath.sol/SignedMath.json | 10 + .../65f0817491599165f934c84c3d1d976c.json | 1 + .../IgammaOffersContract.json | 112 + .../IgammaPacksContract.json | 66 + .../IgammaTicketsContract.json | 24 + .../GammaCards.v5.sol/NofGammaCardsV5.json | 2007 ++++ .../NofGammaCardsNFTV1.json | 494 + .../IGammaCardsContract.json | 99 + .../GammaOffers.v4.sol/NofGammaOffersV4.json | 1042 ++ .../IGammaCardsContract.json | 37 + .../IgammaTicketsContract.json | 46 + .../GammaPacks.v3.sol/NofGammaPacksV3.json | 875 ++ .../LibControlMgmt.sol/LibControlMgmt.json | 63 + .../LibPackVerifier.sol/LibPackVerifier.json | 72 + .../LibStringUtils.sol/LibStringUtils.json | 30 + .../testDai/TestDAI.v3.sol/AccessControl.json | 239 + .../TestDAI.v3.sol/AccessControlMixin.json | 239 + .../testDai/TestDAI.v3.sol/Address.json | 10 + .../TestDAI.v3.sol/ChainConstants.json | 76 + .../testDai/TestDAI.v3.sol/Context.json | 10 + .../testDai/TestDAI.v3.sol/ContextMixin.json | 10 + .../testDai/TestDAI.v3.sol/EIP712Base.json | 37 + .../testDai/TestDAI.v3.sol/ERC20.json | 315 + .../testDai/TestDAI.v3.sol/EnumerableSet.json | 10 + .../testDai/TestDAI.v3.sol/IChildToken.json | 29 + .../testDai/TestDAI.v3.sol/IERC20.json | 194 + .../testDai/TestDAI.v3.sol/Initializable.json | 10 + .../TestDAI.v3.sol/NativeMetaTransaction.json | 120 + .../testDai/TestDAI.v3.sol/NofTestDAIV3.json | 906 ++ .../testDai/TestDAI.v3.sol/SafeMath.json | 10 + .../testDai/TestDAI.v3.sol/UChildERC20.json | 791 ++ artifacts/hardhat/console.sol/console.json | 10 + contracts/gamma/GammaCards.v5.sol | 572 + contracts/gamma/GammaCardsNFT.v1.sol | 28 + contracts/gamma/GammaOffers.v4.sol | 441 + contracts/gamma/GammaPacks.v3.sol | 315 + contracts/gamma/libs/LibControlMgmt.sol | 44 + contracts/gamma/libs/LibPackVerifier.sol | 25 + contracts/gamma/libs/LibStringUtils.sol | 28 + contracts/testDai/TestDAI.v3.sol | 1614 +++ hardhat.config.js | 18 + package-lock.json | 9480 +++++++++-------- package.json | 1 + src/config.js | 8 +- src/context/GammaDataContext.js | 20 +- .../GammaCards.v5.sol/NofGammaCardsV5.json | 855 +- .../NofGammaCardsNFTV1.json | 107 +- .../GammaOffers.v4.sol/NofGammaOffersV4.json | 138 +- .../GammaPacks.v3.sol/NofGammaPacksV3.json | 267 +- src/sections/Gamma/GammaMain.jsx | 2 + src/services/gamma.js | 46 +- 70 files changed, 20314 insertions(+), 4840 deletions(-) create mode 100644 artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json create mode 100644 artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json create mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json create mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json create mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json create mode 100644 artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json create mode 100644 artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json create mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json create mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json create mode 100644 artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json create mode 100644 artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json create mode 100644 artifacts/build-info/65f0817491599165f934c84c3d1d976c.json create mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json create mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json create mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json create mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json create mode 100644 artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json create mode 100644 artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json create mode 100644 artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json create mode 100644 artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json create mode 100644 artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json create mode 100644 artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json create mode 100644 artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json create mode 100644 artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json create mode 100644 artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/Address.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/Context.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json create mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json create mode 100644 artifacts/hardhat/console.sol/console.json create mode 100644 contracts/gamma/GammaCards.v5.sol create mode 100644 contracts/gamma/GammaCardsNFT.v1.sol create mode 100644 contracts/gamma/GammaOffers.v4.sol create mode 100644 contracts/gamma/GammaPacks.v3.sol create mode 100644 contracts/gamma/libs/LibControlMgmt.sol create mode 100644 contracts/gamma/libs/LibPackVerifier.sol create mode 100644 contracts/gamma/libs/LibStringUtils.sol create mode 100644 contracts/testDai/TestDAI.v3.sol create mode 100644 hardhat.config.js diff --git a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json new file mode 100644 index 00000000..5345edc1 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json @@ -0,0 +1,85 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Ownable", + "sourceName": "@openzeppelin/contracts/access/Ownable.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json b/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json new file mode 100644 index 00000000..2c75d794 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json @@ -0,0 +1,328 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC4906", + "sourceName": "@openzeppelin/contracts/interfaces/IERC4906.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json new file mode 100644 index 00000000..107d16fe --- /dev/null +++ b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json @@ -0,0 +1,113 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1155Errors", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "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" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json new file mode 100644 index 00000000..f77ad64e --- /dev/null +++ b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json @@ -0,0 +1,97 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20Errors", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "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" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json new file mode 100644 index 00000000..6ccf3a73 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json @@ -0,0 +1,114 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721Errors", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "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" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json new file mode 100644 index 00000000..12e0777f --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json @@ -0,0 +1,194 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json new file mode 100644 index 00000000..2cc04a86 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json @@ -0,0 +1,444 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC721", + "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json new file mode 100644 index 00000000..3677fd69 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json @@ -0,0 +1,296 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json new file mode 100644 index 00000000..e91c7b08 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721Receiver", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json new file mode 100644 index 00000000..a573d3d4 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json @@ -0,0 +1,457 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC721Burnable", + "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json new file mode 100644 index 00000000..b5cdcdf9 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json @@ -0,0 +1,476 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC721URIStorage", + "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json new file mode 100644 index 00000000..4eea2c23 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json @@ -0,0 +1,341 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721Metadata", + "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json new file mode 100644 index 00000000..8fe86fc7 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Context", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json new file mode 100644 index 00000000..1b199993 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json @@ -0,0 +1,27 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Strings", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json b/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json new file mode 100644 index 00000000..c6bd23d5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json @@ -0,0 +1,38 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ECDSA", + "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "abi": [ + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json b/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json new file mode 100644 index 00000000..56155649 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MessageHashUtils", + "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json new file mode 100644 index 00000000..1304472c --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC165", + "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json new file mode 100644 index 00000000..ff87f91e --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC165", + "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json new file mode 100644 index 00000000..3e52ef1d --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json @@ -0,0 +1,16 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Math", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json new file mode 100644 index 00000000..8277c925 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SignedMath", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/build-info/65f0817491599165f934c84c3d1d976c.json b/artifacts/build-info/65f0817491599165f934c84c3d1d976c.json new file mode 100644 index 00000000..2aa487f3 --- /dev/null +++ b/artifacts/build-info/65f0817491599165f934c84c3d1d976c.json @@ -0,0 +1 @@ +{"id":"65f0817491599165f934c84c3d1d976c","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/interfaces/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 ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 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 ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 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 EIP-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 ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 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/interfaces/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n"},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\nimport {IERC721} from \"./IERC721.sol\";\n\n/// @title EIP-721 Metadata Update Extension\ninterface IERC4906 is IERC165, IERC721 {\n /// @dev This event emits when the metadata of a token is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFT.\n event MetadataUpdate(uint256 _tokenId);\n\n /// @dev This event emits when the metadata of a range of tokens is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFTs.\n event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);\n}\n"},"@openzeppelin/contracts/interfaces/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../token/ERC721/IERC721.sol\";\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n mapping(uint256 tokenId => address) private _owners;\n\n mapping(address owner => uint256) private _balances;\n\n mapping(uint256 tokenId => address) private _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n * the `spender` for the specific `tokenId`.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n unchecked {\n _balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n _balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n _balances[to] += 1;\n }\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n _checkOnERC721Received(address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n _tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n\n /**\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n revert ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert ERC721InvalidReceiver(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/token/ERC721/extensions/ERC721Burnable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721Burnable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Context} from \"../../../utils/Context.sol\";\n\n/**\n * @title ERC721 Burnable Token\n * @dev ERC721 Token that can be burned (destroyed).\n */\nabstract contract ERC721Burnable is Context, ERC721 {\n /**\n * @dev Burns `tokenId`. See {ERC721-_burn}.\n *\n * Requirements:\n *\n * - The caller must own `tokenId` or be an approved operator.\n */\n function burn(uint256 tokenId) public virtual {\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n _update(address(0), tokenId, _msgSender());\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Strings} from \"../../../utils/Strings.sol\";\nimport {IERC4906} from \"../../../interfaces/IERC4906.sol\";\nimport {IERC165} from \"../../../interfaces/IERC165.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is IERC4906, ERC721 {\n using Strings for uint256;\n\n // Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only\n // defines events and does not include any external function.\n bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906);\n\n // Optional mapping for token URIs\n mapping(uint256 tokenId => string) private _tokenURIs;\n\n /**\n * @dev See {IERC165-supportsInterface}\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {\n return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireOwned(tokenId);\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via string.concat).\n if (bytes(_tokenURI).length > 0) {\n return string.concat(base, _tokenURI);\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Emits {MetadataUpdate}.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n _tokenURIs[tokenId] = _tokenURI;\n emit MetadataUpdate(tokenId);\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/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/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n /// @solidity memory-safe-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n */\n function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address, RecoverError, bytes32) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\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 ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\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 ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\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 overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds 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 return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev 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^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = 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^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\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^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\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 unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\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 + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\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 unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 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 + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\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/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"contracts/gamma/GammaCards.v5.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {LibStringUtils} from \"./libs/LibStringUtils.sol\";\nimport {LibPackVerifier} from \"./libs/LibPackVerifier.sol\";\nimport {LibControlMgmt} from \"./libs/LibControlMgmt.sol\";\nimport {console} from \"hardhat/console.sol\";\nimport {NofGammaCardsNFTV1} from \"./GammaCardsNFT.v1.sol\";\n\nerror OnlyGammaPacksContract();\nerror OnlyOffersContract();\nerror OnlyOwners();\nerror InvalidAddress();\nerror InvalidCardNumber();\nerror InvalidTransfer();\nerror InvalidSignature();\nerror IncorrectPrizeAmount();\nerror WrongPacksQuantity();\nerror NotYourPack();\nerror CardLimitExceeded();\nerror UserDoesNotHaveCardOrAlbum();\nerror InsufficientFunds();\nerror InsufficientCards();\nerror MustCompleteAlbum();\nerror CannotRemoveUserOffers();\n\ninterface IgammaPacksContract {\n function getPackOwner(uint256 tokenId) external view returns (address);\n\n function openPack(uint256 tokenId, address owner) external;\n\n function openPacks(uint256[] memory tokenIds, address owner) external;\n}\n\ninterface IgammaOffersContract {\n function hasOffer(address user, uint8 cardNumber) external view returns (bool);\n\n function removeOffersByUser(address user) external returns (bool);\n\n function getOffersByUserCounter(address user) external view returns (uint256);\n\n function getOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber\n ) external view returns (uint256, uint8, uint8[] memory, address);\n}\n\ninterface IgammaTicketsContract {\n function generateTicket(address user) external;\n}\n\ncontract NofGammaCardsV5 is NofGammaCardsNFTV1, Ownable {\n using LibStringUtils for uint8;\n using LibControlMgmt for LibControlMgmt.Data;\n\n IgammaPacksContract public gammaPacksContract;\n IgammaOffersContract public gammaOffersContract;\n IgammaTicketsContract public gammaTicketsContract;\n\n LibControlMgmt.Data private ownersData;\n LibControlMgmt.Data private signersData;\n\n uint8 public s_maxPacksToOpenAtOnce = 10;\n uint8 public s_lotteryPrizePercentage = 50;\n address public DAI_TOKEN;\n uint256 public s_tokenIdCounter;\n uint256 public s_packPrice = 12e17; // 1.2 DAI\n uint256 public s_prizesBalance = 0;\n uint256 public s_mainAlbumPrize = 15e18; // 15 DAI por album principal completado\n uint256 public s_secondaryAlbumPrize = 1e18; // 1 DAI por album secundario completado\n string public s_mainUri;\n string public s_secondaryUri;\n string public s_baseUri;\n bool public s_requireOpenPackSignerValidation;\n bool public s_requireOfferValidationInMint = true;\n bool public s_requireOfferValidationInTransfer = true;\n\n struct Card {\n uint256 tokenId;\n uint256 number;\n bool pasted;\n uint8 class; // 1 para cartas, 2 para album de 120, 3 para album de 60\n uint256 completion; // solo se modifica en el caso de los albums\n }\n\n mapping(uint256 tokenId => Card) public s_cards;\n mapping(uint256 cardNumber => uint256 amount) public s_cardsInventory; // maximos: 120 => 5000\n mapping(address user => uint256 amount) public s_burnedCards;\n mapping(address user => mapping(uint8 cardNumber => uint8 amount)) public s_cardsByUser;\n\n event NewGammaOffersContract(address indexed newGammaOffersContract);\n event NewGammaPacksContract(address indexed newGammaPacksContract);\n event NewGammaTicketsContract(address indexed newGammaTicketContract);\n event PackOpened(address indexed player, uint8[] indexed packData, uint256 indexed packNumber);\n event AlbumCompleted(address indexed player, uint8 indexed albumClass);\n event CardPasted(address indexed player, uint256 indexed cardTokenId, uint256 indexed albumTokenId);\n event EmergencyWithdrawal(address indexed receiver, uint256 indexed amount);\n event NewSigner(address indexed newSigner);\n event NewUris(string indexed newMainUri, string indexed newSecondaryUri);\n event OfferCardsExchanged(address indexed from, address indexed to, uint8 cardNumberFrom, uint8 cardNumberTo);\n event CardTransfered(address indexed from, address indexed to, uint8 cardNumber);\n event CardsTransfered(address indexed from, address indexed to, uint8[] indexed cardNumber);\n event CardsBurned(address indexed user, uint8[] indexed cardsNumber);\n\n modifier onlyGammaPacksContract() {\n if(msg.sender != address(gammaPacksContract)) revert OnlyGammaPacksContract();\n _;\n }\n\n modifier onlyGammaOffersContract() {\n if(msg.sender != address(gammaOffersContract)) revert OnlyOffersContract();\n _;\n }\n\n modifier onlyOwners() {\n if(!ownersData.owners[msg.sender]) revert OnlyOwners();\n _;\n }\n\n modifier checkAddressZero(address _address) {\n if(_address == address(0)) revert InvalidAddress();\n _;\n }\n\n constructor (\n address _daiTokenAddress,\n address _gammaPacksContract,\n address _gammaOffersContract,\n address _gammaTicketsContract,\n string memory _baseUri,\n address _signer\n ) Ownable(msg.sender) {\n ownersData.owners[msg.sender] = true;\n\n DAI_TOKEN = _daiTokenAddress;\n gammaPacksContract = IgammaPacksContract(_gammaPacksContract);\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n gammaOffersContract = IgammaOffersContract(_gammaOffersContract);\n\n s_baseUri = _baseUri;\n s_mainUri = string(abi.encodePacked(bytes(s_baseUri), bytes(\"/\"), bytes(\"120\"), bytes(\"F.json\")));\n s_secondaryUri = string(\n abi.encodePacked(bytes(s_baseUri), bytes(\"/\"), bytes(\"121\"), bytes(\"F.json\"))\n );\n signersData.signers[_signer] = true;\n\n for (uint256 i; i < 122; i++) {\n s_cardsInventory[i] = 1;\n }\n }\n\n function addOwner(address _newOwner) external onlyOwners {\n ownersData.addOwner(_newOwner);\n }\n\n function removeOwner(address _ownerToRemove) external onlyOwners {\n ownersData.removeOwner(_ownerToRemove);\n }\n\n function addSigner(address _newSigner) external onlyOwners {\n signersData.addSigner(_newSigner);\n }\n\n function removeSigner(address _signerToRemove) external onlyOwners {\n signersData.removeSigner(_signerToRemove);\n }\n\n function setGammaOffersContract(address _gammaOffersContract) external onlyOwners checkAddressZero(_gammaOffersContract) {\n gammaOffersContract = IgammaOffersContract(_gammaOffersContract);\n emit NewGammaOffersContract(_gammaOffersContract);\n }\n\n function setGammaPacksContract(address _gammaPacksContract) external onlyOwners checkAddressZero(_gammaPacksContract){\n gammaPacksContract = IgammaPacksContract(_gammaPacksContract);\n emit NewGammaPacksContract(_gammaPacksContract);\n }\n\n function setGammaTicketsContract(address _gammaTicketsContract) external onlyOwners checkAddressZero(_gammaTicketsContract){\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n emit NewGammaTicketsContract(_gammaTicketsContract);\n }\n\n function setPrizesBalance(uint256 amount) external onlyGammaPacksContract {\n s_prizesBalance += amount;\n }\n\n function setMainAlbumPrize(uint256 amount) external onlyOwners {\n if(amount == 0) revert IncorrectPrizeAmount();\n s_mainAlbumPrize = amount;\n }\n\n function setSecondaryAlbumPrize(uint256 amount) external onlyOwners {\n if(amount == 0) revert IncorrectPrizeAmount();\n s_secondaryAlbumPrize = amount;\n }\n\n function setLotteryPrizePercentage(uint8 amount) external onlyOwners {\n if(amount > 100) revert IncorrectPrizeAmount();\n s_lotteryPrizePercentage = amount;\n }\n\n function setUris(string memory newMainUri, string memory newSecondaryUri) external onlyOwners {\n s_mainUri = newMainUri;\n s_secondaryUri = newSecondaryUri;\n emit NewUris(newMainUri, newSecondaryUri);\n }\n\n function changeRequireOpenPackSignerValidation(bool required) external onlyOwners {\n s_requireOpenPackSignerValidation = required;\n }\n\n function changeRequireOfferValidationInMint(bool required) external onlyOwners {\n s_requireOfferValidationInMint = required;\n }\n\n function changeRequireOfferValidationInTransfer(bool required) external onlyOwners {\n s_requireOfferValidationInTransfer = required;\n }\n\n function changePackPrice(uint256 newPackPrice) external onlyGammaPacksContract {\n s_packPrice = newPackPrice;\n }\n\n function changeMaxPacksToOpenAtOnce(uint8 _maxPacksToOpenAtOnce) external onlyOwners {\n s_maxPacksToOpenAtOnce = _maxPacksToOpenAtOnce;\n }\n\n function removeCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract {\n s_cardsByUser[user][cardNumber]--;\n }\n\n function restoreCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract {\n s_cardsByUser[user][cardNumber]++;\n }\n\n function hasCardByOffer(\n address user,\n uint8 cardNumber\n ) external view onlyGammaOffersContract returns (bool has) {\n return s_cardsByUser[user][cardNumber] > 0;\n }\n\n function hasCard(address user, uint8 cardNum) public view checkAddressZero(user) returns (bool has) {\n return s_cardsByUser[user][cardNum] > 0;\n }\n\n function isOwner(address user) external view returns (bool) {\n return ownersData.owners[user];\n }\n\n function isSigner(address user) external view returns (bool) {\n return signersData.signers[user];\n }\n\n function getLotteryPrize() public view returns (uint256) {\n return (s_lotteryPrizePercentage * s_prizesBalance) / 100;\n }\n\n function getCardQuantityByUser(address user, uint8 cardNum) public view checkAddressZero(user) returns (uint8) {\n return s_cardsByUser[user][cardNum];\n }\n\n function getBurnedCardQttyByUser(address user) public view checkAddressZero(user) returns (uint256) {\n return s_burnedCards[user];\n }\n\n function getCardsByUser(\n address user\n ) public view returns (uint8[] memory, uint8[] memory, bool[] memory) {\n uint8[] memory cardNumbers = new uint8[](122);\n uint8[] memory quantities = new uint8[](122);\n bool[] memory offers = new bool[](122);\n uint8 index = 0;\n\n for (uint8 i; i <= 121; i++) {\n if (s_cardsByUser[user][i] > 0) {\n cardNumbers[index] = i;\n quantities[index] = s_cardsByUser[user][i];\n offers[index] = gammaOffersContract.hasOffer(user, i);\n index++;\n }\n }\n\n uint8[] memory userCardNumbers = new uint8[](index);\n uint8[] memory userCardsQtty = new uint8[](index);\n bool[] memory userCardsOffers = new bool[](index);\n\n for (uint256 j; j < index; j++) {\n userCardNumbers[j] = cardNumbers[j];\n userCardsQtty[j] = quantities[j];\n userCardsOffers[j] = offers[j];\n }\n\n return (userCardNumbers, userCardsQtty, userCardsOffers);\n }\n\n function verifyPackSigner(\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) public view returns (address signer) {\n return LibPackVerifier.verifyPackSigner(msg.sender, packNumber, packData, signature);\n }\n\n function openPack(\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) external {\n _openPack(msg.sender, packNumber, packData, signature);\n }\n\n function openPacks(\n uint8 packsQuantity,\n uint256[] memory packsNumber,\n uint8[][] memory packsData,\n bytes[] calldata signatures\n ) external {\n if(packsQuantity == 0 || packsQuantity > s_maxPacksToOpenAtOnce) revert WrongPacksQuantity();\n\n for (uint256 i; i < packsQuantity; i++) {\n _openPack(msg.sender, packsNumber[i], packsData[i], signatures[i]);\n }\n }\n\n function _openPack(\n address user,\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) private {\n if(gammaPacksContract.getPackOwner(packNumber) != user) revert NotYourPack(); // @tomas read storage in packs\n if(packData.length >= 15) revert CardLimitExceeded();\n\n if (s_requireOpenPackSignerValidation) { // @tomas read storage\n // Recreates the message present in the `signature`\n address signer = LibPackVerifier.verifyPackSigner(\n msg.sender,\n packNumber,\n packData,\n signature\n );\n \n if(!signersData.signers[signer]) revert InvalidSignature();\n }\n\n gammaPacksContract.openPack(packNumber, user); // @tomas read storage in packs\n s_prizesBalance += s_packPrice - s_packPrice / 6; // @tomas read storage\n\n \n for (uint256 i; i < packData.length;) {\n if(packData[i] == 120){\n if(s_cardsInventory[120] > 3000) revert InvalidCardNumber();\n } else {\n if(s_cardsInventory[packData[i]] > 5000) revert InvalidCardNumber();\n }\n s_cardsInventory[packData[i]]++; // @tomas modify storage / 280k gas aprox.\n s_cardsByUser[user][packData[i]]++; // @tomas modify storage / 310k gas aprox.\n unchecked {\n i++;\n }\n }\n\n emit PackOpened(user, packData, packNumber);\n }\n\n function exchangeCardsOffer(\n address from,\n uint8 cardNumberFrom,\n address to,\n uint8 cardNumberTo\n ) external onlyGammaOffersContract checkAddressZero(from) checkAddressZero(to) {\n if(s_cardsByUser[from][cardNumberFrom] == 0 || s_cardsByUser[to][cardNumberTo] == 0) revert UserDoesNotHaveCardOrAlbum();\n\n s_cardsByUser[from][cardNumberFrom]--;\n s_cardsByUser[to][cardNumberFrom]++;\n s_cardsByUser[to][cardNumberTo]--;\n s_cardsByUser[from][cardNumberTo]++;\n\n emit OfferCardsExchanged(from, to, cardNumberFrom, cardNumberTo);\n }\n\n function transferCard(address to, uint8 cardNumber) external checkAddressZero(to) {\n if(s_cardsByUser[msg.sender][cardNumber] == 0) revert UserDoesNotHaveCardOrAlbum();\n if(to == msg.sender) revert InvalidTransfer();\n\n if (s_requireOfferValidationInTransfer) {\n bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumber);\n bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumber] > 1;\n /* \n The user can only make an offer for one letter and in that case he cannot mint or transfer it.\n If you have more than one copy (quantity > 1) of that card, you must be able to mint \n or transfer the rest.\n */\n require(!hasOffer || hasMoreThanOne, \"This card has an offer.\");\n }\n\n s_cardsByUser[msg.sender][cardNumber]--;\n s_cardsByUser[to][cardNumber]++;\n emit CardTransfered(msg.sender, to, cardNumber);\n }\n\n function transferCards(address to, uint8[] calldata cardNumbers) public checkAddressZero(to) {\n if(to == msg.sender) revert InvalidTransfer();\n\n for (uint256 i; i < cardNumbers.length; i++) {\n if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum();\n s_cardsByUser[msg.sender][cardNumbers[i]]--;\n s_cardsByUser[to][cardNumbers[i]]++;\n\n if (s_requireOfferValidationInTransfer) {\n bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumbers[i]);\n bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumbers[i]] > 1;\n /* \n The user can only make an offer for one letter and in that case he cannot mint or transfer it.\n If you have more than one copy (quantity > 1) of that card, you must be able to mint \n or transfer the rest.\n */\n require(!hasOffer || hasMoreThanOne, \"This card has an offer.\");\n }\n }\n emit CardsTransfered(msg.sender, to, cardNumbers);\n }\n\n // user must call this function when they have at least 1\n // card of each number (120 total) + a 120 album card\n function finishAlbum() public returns (bool) {\n // requires the user to have at least one 120 album\n if(s_cardsByUser[msg.sender][120] == 0) revert UserDoesNotHaveCardOrAlbum();\n if(s_prizesBalance < s_mainAlbumPrize) revert IncorrectPrizeAmount();\n\n uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this));\n if(contractBalance < s_mainAlbumPrize) revert InsufficientFunds();\n\n // check that you have at least one card of each number\n bool unfinished;\n \n for (uint8 i; i <= 120;) {\n if (s_cardsByUser[msg.sender][i] == 0) {\n unfinished = true;\n break;\n }\n s_cardsByUser[msg.sender][i]--;\n unchecked {\n i++;\n }\n }\n if(unfinished) revert MustCompleteAlbum();\n\n // mint the completed album.\n safeMint(msg.sender, s_mainUri, 120, 2);\n\n // transfer prize in DAI.\n IERC20(DAI_TOKEN).transfer(msg.sender, s_mainAlbumPrize);\n s_prizesBalance -= s_mainAlbumPrize;\n\n bool userOffersRemoved = gammaOffersContract.removeOffersByUser(msg.sender);\n if(!userOffersRemoved) revert CannotRemoveUserOffers();\n\n emit AlbumCompleted(msg.sender, 1);\n return true;\n }\n\n // user should call this function if they want to 'paste' selected cards in\n // the 60 cards album to 'burn' them.\n function burnCards(uint8[] calldata cardNumbers) public {\n if(s_cardsByUser[msg.sender][121] == 0) revert UserDoesNotHaveCardOrAlbum();\n uint256 totalUserBurnedCards = s_burnedCards[msg.sender] + cardNumbers.length;\n bool mustPayPrize;\n\n if (totalUserBurnedCards >= 60) {\n uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this));\n if(contractBalance < s_secondaryAlbumPrize || s_prizesBalance < s_secondaryAlbumPrize) revert InsufficientFunds();\n mustPayPrize = true;\n }\n\n bool userHasOffers = (gammaOffersContract.getOffersByUserCounter(msg.sender) > 0);\n uint256 cardNumbersLength = cardNumbers.length;\n for (uint256 i; i < cardNumbersLength;) {\n if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum();\n if (userHasOffers) {\n if (gammaOffersContract.hasOffer(msg.sender, cardNumbers[i])) {\n if(s_cardsByUser[msg.sender][cardNumbers[i]] < 2) revert InsufficientCards();\n }\n }\n s_cardsByUser[msg.sender][cardNumbers[i]]--;\n unchecked {\n i++;\n }\n }\n\n s_burnedCards[msg.sender] += cardNumbersLength;\n emit CardsBurned(msg.sender, cardNumbers);\n\n if (mustPayPrize) {\n s_cardsByUser[msg.sender][121]--;\n safeMint(msg.sender, s_secondaryUri, 121, 2); // mint album of 60 cards.\n\n s_prizesBalance -= s_secondaryAlbumPrize;\n IERC20(DAI_TOKEN).transfer(msg.sender, s_secondaryAlbumPrize);\n\n gammaTicketsContract.generateTicket(msg.sender);\n emit AlbumCompleted(msg.sender, 2);\n }\n }\n\n function mintCard(uint8 cardNum) public {\n if(s_cardsByUser[msg.sender][cardNum] == 0) revert UserDoesNotHaveCardOrAlbum();\n\n if (s_requireOfferValidationInMint) {\n bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNum);\n bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNum] > 1;\n /* \n The user can only make an offer for one letter and in that case he cannot mint or transfer it.\n If you have more than one copy (quantity > 1) of that card, you must be able to mint \n or transfer the rest.\n */\n require(!hasOffer || hasMoreThanOne, \"This card has an offer.\");\n }\n\n s_cardsByUser[msg.sender][cardNum]--;\n\n string memory uri = string(\n abi.encodePacked(bytes(s_baseUri), bytes(\"/\"), bytes(cardNum.toString()), bytes(\".json\"))\n );\n\n safeMint(msg.sender, uri, cardNum, 1);\n }\n\n function safeMint(address _to, string memory _uri, uint256 _number, uint8 _class) internal {\n uint256 tokenId = s_tokenIdCounter;\n s_cards[tokenId].tokenId = tokenId;\n s_cards[tokenId].number = _number;\n s_cards[tokenId].class = _class;\n _safeMint(_to, tokenId);\n _setTokenURI(tokenId, _uri);\n s_tokenIdCounter += 1;\n }\n\n // do not call unless really necessary\n function emergencyWithdraw(uint256 amount) public onlyOwners {\n if(balanceOf(address(this)) < amount) revert InsufficientFunds();\n s_prizesBalance -= amount;\n IERC20(DAI_TOKEN).transfer(msg.sender, amount);\n emit EmergencyWithdrawal(msg.sender, amount);\n }\n\n\n\n\n // for testing purposes only, will remove on deploy\n function testAddCards(address user) public onlyOwners {\n for(uint8 i; i<=121; i++){ // 0-119: cards, 120: album-120, 121: album-60\n s_cardsByUser[user][i]++;\n }\n }\n\n function testOpenPack(address user, uint256 packNumber, uint8[] memory packData) external onlyOwners {\n gammaPacksContract.openPack(packNumber, user);\n s_prizesBalance += s_packPrice - s_packPrice / 6;\n\n for(uint256 i; i Offer[]) offersByUser;\n mapping(uint8 cardNumber => Offer[]) offersByCardNumber;\n mapping(address => uint256) public offersByUserCounter;\n mapping(uint8 => uint256) public offersByCardNumberCounter;\n uint256 public offersTotalCounter;\n\n event NewGammaCardsContract(address newGammaCardsContract);\n event OfferCreated(address user, uint8 cardNumber, uint8[] wantedCardNumbers);\n event OfferRemoved(address user, uint8 cardNumber);\n event UserOffersRemoved(address user);\n event AllOffersRemoved();\n\n modifier onlyCardsContract() {\n if (msg.sender != address(gammaCardsContract)) revert OnlyCardsContract();\n _;\n }\n\n modifier onlyOwners() {\n if (!ownersData.owners[msg.sender]) revert OnlyOwners();\n _;\n }\n\n constructor (address _cardsContract) Ownable(msg.sender) {\n if (_cardsContract == address(0)) revert InvalidAddress();\n gammaCardsContract = IGammaCardsContract(_cardsContract);\n ownersData.owners[msg.sender] = true;\n }\n\n function addOwner(address _newOwner) external onlyOwners {\n ownersData.addOwner(_newOwner);\n }\n\n function removeOwner(address _ownerToRemove) external onlyOwners {\n ownersData.removeOwner(_ownerToRemove);\n }\n\n function setGammaCardsContract(address _gammaCardsContract) public onlyOwners {\n if (_gammaCardsContract == address(0)) revert InvalidAddress();\n gammaCardsContract = IGammaCardsContract(_gammaCardsContract);\n emit NewGammaCardsContract(_gammaCardsContract);\n }\n\n function setMaxOffersAllowed(uint256 _maxOffersAllowed) external onlyOwners {\n maxOffersAllowed = _maxOffersAllowed;\n }\n\n function setMaxOffersByUserAllowed(uint256 _maxOffersByUserAllowed) external onlyOwners {\n maxOffersByUserAllowed = _maxOffersByUserAllowed;\n }\n\n function setMaxCardNumbersAllowed(uint256 _maxCardNumbersAllowed) external onlyOwners {\n maxCardNumbersAllowed = _maxCardNumbersAllowed;\n }\n\n function changeRemoveCardinInventoryWhenOffer(bool _value) external onlyOwners {\n removeCardInInventoryWhenOffer = _value;\n }\n\n function createOffer(\n string memory offerId,\n uint8 cardNumber,\n uint8[] memory wantedCardNumbers\n ) public {\n _createOfferWithUser(offerId, msg.sender, cardNumber, wantedCardNumbers);\n }\n\n function createOfferWithoUser(\n string memory offerId,\n address user,\n uint8 cardNumber,\n uint8[] memory wantedCardNumbers\n ) public onlyOwners {\n _createOfferWithUser(offerId, user, cardNumber, wantedCardNumbers);\n }\n\n function _createOfferWithUser(\n string memory offerId,\n address user,\n uint8 cardNumber,\n uint8[] memory wantedCardNumbers\n ) private {\n if (address(gammaCardsContract) == address(0)) revert GammaCardsContractNotSet();\n if (offersByUserCounter[user] >= maxOffersByUserAllowed) revert OffersMaximumAllowed();\n if (offersTotalCounter >= maxOffersAllowed) revert OffersMaximumAllowed();\n\n bool userHasCard = gammaCardsContract.hasCardByOffer(user, cardNumber);\n if (!userHasCard) revert UserDoesNotHaveCard();\n\n for (uint8 i = 0; i < wantedCardNumbers.length; i++) {\n if (wantedCardNumbers[i] == cardNumber) revert InvalidCardNumber();\n }\n\n Offer memory existingOffer = getOfferByUserAndCardNumber(user, cardNumber);\n if (existingOffer.owner != address(0)) revert OfferAlreadyExists();\n\n offersByUserCounter[user] += 1;\n offersByCardNumberCounter[cardNumber] += 1;\n offersTotalCounter += 1;\n\n offers.push(Offer(offerId, cardNumber, wantedCardNumbers, user, block.timestamp));\n offersByUser[user].push(offers[offers.length - 1]);\n offersByCardNumber[cardNumber].push(offers[offers.length - 1]);\n\n if (removeCardInInventoryWhenOffer) {\n gammaCardsContract.removeCardByOffer(user, cardNumber);\n }\n\n emit OfferCreated(user, cardNumber, wantedCardNumbers);\n }\n\n function isOwner(address user) external view returns (bool) {\n return ownersData.owners[user];\n }\n\n function getOffersByUserCounter(address user) external view returns (uint256) {\n if (user == address(0)) revert InvalidAddress();\n return offersByUserCounter[user];\n }\n\n function getOffersByCardNumberCounter(uint8 cardNumber) external view returns (uint256) {\n return offersByCardNumberCounter[cardNumber];\n }\n\n function getOffersCounter() external view returns (uint256) {\n return offersTotalCounter;\n }\n\n function getMaxOffersAllowed() external view returns (uint256) {\n return maxOffersAllowed;\n }\n\n function getMaxOffersByUserAllowed() external view returns (uint256) {\n return maxOffersByUserAllowed;\n }\n\n function getOffers() external view returns (Offer[] memory) {\n return offers;\n }\n\n function getOfferByIndex(uint256 index) public view returns (Offer memory) {\n if (index >= offers.length) revert InvalidOfferId();\n return offers[index];\n }\n\n function getOfferByOfferId(string memory offerId) external view returns (Offer memory) {\n for (uint256 i = 0; i < offers.length; i++) {\n if (keccak256(abi.encodePacked(offers[i].offerId)) == keccak256(abi.encodePacked(offerId))) {\n return (offers[i]);\n }\n }\n return _emptyOffer();\n }\n\n function getOffersByUser(address user) external view returns (Offer[] memory) {\n if (user == address(0)) revert InvalidAddress();\n return offersByUser[user];\n }\n\n function getOffersByCardNumber(uint8 cardNumber) external view returns (Offer[] memory) {\n return offersByCardNumber[cardNumber];\n }\n\n function getOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber\n ) public view returns (Offer memory) {\n if (user == address(0)) revert InvalidAddress();\n\n Offer[] storage userOffers = offersByUser[user];\n uint256 currentUserOffersCounter = offersByUserCounter[user];\n for (uint256 i = 0; i < currentUserOffersCounter; i++) {\n if (userOffers[i].cardNumber == cardNumber) {\n return userOffers[i];\n }\n }\n return _emptyOffer();\n }\n\n function canUserPublishOffer(address user) public view returns (bool) {\n return maxOffersByUserAllowed > offersByUserCounter[user];\n }\n\n function canAnyUserPublishOffer() public view returns (bool) {\n return maxOffersAllowed > offersTotalCounter;\n }\n\n function hasOffer(address user, uint8 cardNumber) public view returns (bool) {\n if (user == address(0)) revert InvalidAddress();\n for (uint256 i = 0; i < offersByUserCounter[user]; i++) {\n if (offersByUser[user][i].cardNumber == cardNumber) {\n return true;\n }\n }\n return false;\n }\n\n function confirmOfferExchange(\n address from,\n uint8 cardNumberWanted,\n address offerWallet,\n uint8 offerCardNumber\n ) external {\n Offer memory offer = getOfferByUserAndCardNumber(offerWallet, offerCardNumber);\n if (offer.owner != offerWallet) revert OfferDoesNotExists();\n\n uint8[] memory wantedCardNumbers = offer.wantedCardNumbers;\n if (wantedCardNumbers.length == 0) {\n //buscamos que el usuario no tenga la carta\n if (gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted))\n revert UserAlreadyHasCard();\n } else {\n //validamos contra las cartas que acepta el usuario\n bool foundCardWanted = false;\n for (uint8 j = 0; j < wantedCardNumbers.length; j++) {\n if (wantedCardNumbers[j] == cardNumberWanted) {\n foundCardWanted = true;\n break;\n }\n }\n if (!foundCardWanted) revert InvalidCard();\n }\n\n bool offerDeleted = _removeOfferByUserAndCardNumber(\n offerWallet,\n offerCardNumber,\n offer.offerId,\n true\n );\n if (!offerDeleted) revert OfferNotDeleted();\n\n gammaCardsContract.exchangeCardsOffer(from, cardNumberWanted, offerWallet, offerCardNumber);\n if (\n !gammaCardsContract.hasCardByOffer(from, offerCardNumber) ||\n !gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted)\n ) revert ExchangeError();\n }\n\n function deleteAllOffers() external onlyOwners {\n for (uint256 i = 0; i < offers.length; i++) {\n delete offersByUser[offers[i].owner];\n offersByUserCounter[offers[i].owner] = 0;\n\n delete offersByCardNumber[offers[i].cardNumber];\n offersByCardNumberCounter[offers[i].cardNumber] = 0;\n }\n offersTotalCounter = 0;\n delete offers;\n\n emit AllOffersRemoved();\n }\n\n function removeOfferByCardNumber(uint8 cardNumber) external returns (bool) {\n Offer memory offer = getOfferByUserAndCardNumber(msg.sender, cardNumber);\n if (offer.owner != msg.sender) {\n return false;\n }\n bool result = _removeOfferByUserAndCardNumber(msg.sender, cardNumber, offer.offerId, false);\n return result;\n }\n\n function removeOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber\n ) public onlyOwners returns (bool) {\n Offer memory offer = getOfferByUserAndCardNumber(user, cardNumber);\n if (offer.owner != user) {\n return false;\n }\n bool result = _removeOfferByUserAndCardNumber(user, cardNumber, offer.offerId, false);\n return result;\n }\n\n function removeOffersByUser(address user) external onlyCardsContract returns (bool) {\n if (user == address(0)) revert InvalidAddress();\n\n Offer[] storage userOffers = offersByUser[user];\n uint256 currentUserOffersCounter = offersByUserCounter[user];\n\n for (uint256 i = 0; i < currentUserOffersCounter; i++) {\n string memory offerId = userOffers[i].offerId;\n uint8 cardNumber = userOffers[i].cardNumber;\n _removeOfferFromCardNumberMapping(user, cardNumber, offerId);\n _removeOfferByOfferId(offerId);\n offersByCardNumberCounter[cardNumber] -= 1;\n offersTotalCounter -= 1;\n }\n\n delete offersByUser[user];\n offersByUserCounter[user] = 0;\n\n emit UserOffersRemoved(user);\n return true;\n }\n\n function _removeOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber,\n string memory offerId,\n bool fromConfirmOfferExchange\n ) private returns (bool) {\n if (user == address(0)) revert InvalidAddress();\n\n _removeOfferFromUserMapping(user, cardNumber, offerId);\n _removeOfferFromCardNumberMapping(user, cardNumber, offerId);\n _removeOfferByOfferId(offerId);\n offersByUserCounter[user] -= 1;\n offersByCardNumberCounter[cardNumber] -= 1;\n offersTotalCounter -= 1;\n\n if (removeCardInInventoryWhenOffer && !fromConfirmOfferExchange) {\n gammaCardsContract.restoreCardByOffer(user, cardNumber);\n }\n\n emit OfferRemoved(user, cardNumber);\n return true;\n }\n\n function _removeOfferFromUserMapping(\n address user,\n uint8 cardNumber,\n string memory offerId\n ) private {\n Offer[] storage userOffers = offersByUser[user];\n for (uint256 i = 0; i < userOffers.length; i++) {\n if (_sameOfferId(userOffers[i].offerId, offerId)) {\n if (userOffers[i].owner != user || userOffers[i].cardNumber != cardNumber)\n revert RemoveOfferFromUserMapping_DoNotMatch();\n if (i < (userOffers.length - 1)) {\n userOffers[i] = userOffers[userOffers.length - 1];\n }\n userOffers.pop();\n break;\n }\n }\n }\n\n function _removeOfferFromCardNumberMapping(\n address user,\n uint8 cardNumber,\n string memory offerId\n ) private {\n Offer[] storage cardOffers = offersByCardNumber[cardNumber];\n\n for (uint256 i = 0; i < cardOffers.length; i++) {\n if (_sameOfferId(cardOffers[i].offerId, offerId)) {\n if (cardOffers[i].owner != user || cardOffers[i].cardNumber != cardNumber)\n revert RemoveOfferFromCardNumberMapping_DoNotMatch();\n\n if (i < cardOffers.length - 1) {\n cardOffers[i] = cardOffers[cardOffers.length - 1];\n }\n cardOffers.pop();\n break;\n }\n }\n }\n\n function _removeOfferByOfferId(string memory offerId) private returns (bool) {\n bool deleted = false;\n for (uint256 j = 0; j < offers.length; j++) {\n if (j < offers.length && _sameOfferId(offers[j].offerId, offerId)) {\n delete offers[j];\n offers[j] = offers[offers.length - 1];\n offers.pop();\n deleted = true;\n break;\n }\n }\n return deleted;\n }\n\n function _emptyOffer() internal pure returns (Offer memory) {\n return Offer(\"\", 0, new uint8[](0), address(0), 0);\n }\n\n function _sameOfferId(\n string memory offerId1,\n string memory offerId2\n ) internal pure returns (bool) {\n return keccak256(abi.encodePacked(offerId1)) == keccak256(abi.encodePacked(offerId2));\n }\n}\n"},"contracts/gamma/GammaPacks.v3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {LibControlMgmt} from \"./libs/LibControlMgmt.sol\";\nimport {console} from \"hardhat/console.sol\";\n\nerror NotGammaCardsContract();\nerror OwnlyOwners();\nerror InvalidAddress();\nerror InvalidNumberOfPacks();\nerror InsufficientPacksAvailable();\nerror TransferPrizeError(address _to);\nerror InsufficientAllowance();\nerror InsufficientBalance();\nerror NotYourPack();\nerror ContractAddressNotSet();\n\ninterface IGammaCardsContract {\n function setPrizesBalance(uint256 amount) external;\n\n function changePackPrice(uint256 amount) external;\n}\n\ninterface IgammaTicketsContract {\n function getLotteryWinner()\n external\n returns (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user);\n\n function deleteAllTickets() external;\n}\n\ncontract NofGammaPacksV3 is Ownable {\n using LibControlMgmt for LibControlMgmt.Data;\n\n IGammaCardsContract public gammaCardsContract;\n IgammaTicketsContract public gammaTicketsContract;\n\n LibControlMgmt.Data private ownersData;\n\n address public DAI_TOKEN;\n address public s_balanceReceiver;\n uint256 public constant TOTALSUPPLY = 50000;\n uint256 public s_packPrice = 12e17; // 1.2 DAI\n uint256 private s_packsCounter = 0;\n bool s_transferDai = true;\n\n mapping(uint256 tokenId => address owner) public s_packs;\n mapping(address owner => uint256[] tokenIds) public s_packsByUser;\n\n event NewGammaCardsContract(address indexed newCardsContract);\n event NewGammaTicketsContract(address indexed newGammaTicketContract);\n event NewBalanceReceiver(address indexed balanceReceiver);\n event PackPurchased(address indexed buyer, uint256 indexed tokenId);\n event PacksPurchased(address indexed buyer, uint256[] indexed tokenIds);\n event PackTransfered(address indexed from, address indexed to, uint256 indexed tokenId);\n event PacksTransfered(address indexed from, address indexed to, uint256[] indexed tokenId);\n event PackOpened(address indexed user, uint256 indexed tokenId);\n event NewPrice(uint256 indexed newPrice);\n\n modifier onlyGammaCardsContract() {\n if (msg.sender != address(gammaCardsContract)) revert NotGammaCardsContract();\n _;\n }\n\n modifier onlyOwners() {\n if (!ownersData.owners[msg.sender]) revert OwnlyOwners();\n _;\n }\n\n constructor(\n address _daiTokenAddress,\n address _balanceReceiver,\n address _gammaCardsContract,\n address _gammaTicketsContract\n ) Ownable(msg.sender) {\n if (\n _balanceReceiver == address(0) ||\n _gammaCardsContract == address(0) ||\n _gammaTicketsContract == address(0)\n ) revert InvalidAddress();\n\n DAI_TOKEN = _daiTokenAddress;\n s_balanceReceiver = _balanceReceiver;\n gammaCardsContract = IGammaCardsContract(_gammaCardsContract);\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n\n ownersData.owners[msg.sender] = true;\n }\n\n function addOwner(address _newOwner) external onlyOwners {\n ownersData.addOwner(_newOwner);\n }\n\n function removeOwner(address _ownerToRemove) external onlyOwners {\n ownersData.removeOwner(_ownerToRemove);\n }\n\n function changeBalanceReceiver(address _newBalanceReceiver) external onlyOwners {\n if (_newBalanceReceiver == address(0)) revert InvalidAddress();\n s_balanceReceiver = _newBalanceReceiver;\n emit NewBalanceReceiver(_newBalanceReceiver);\n }\n\n function changePrice(uint256 _newPrice) public onlyOwners {\n s_packPrice = _newPrice;\n gammaCardsContract.changePackPrice(_newPrice);\n emit NewPrice(_newPrice);\n }\n\n function changeTransferDaiFlag(bool _transferDai) public onlyOwners {\n s_transferDai = _transferDai;\n }\n\n function setGammaCardsContract(address _gammaCardsContract) public onlyOwners {\n if (_gammaCardsContract == address(0)) revert InvalidAddress();\n gammaCardsContract = IGammaCardsContract(_gammaCardsContract);\n emit NewGammaCardsContract(_gammaCardsContract);\n }\n\n function setGammaTicketsContract(address _gammaTicketsContract) public onlyOwners {\n if (_gammaTicketsContract == address(0)) revert InvalidAddress();\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n emit NewGammaTicketsContract(_gammaTicketsContract);\n }\n\n function isOwner(address user) external view returns (bool) {\n return ownersData.owners[user];\n }\n\n function getPrizeAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) {\n return (s_packPrice - (s_packPrice / 6)) * numberOfPacks;\n }\n\n function getPrizeNoFAccountAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) {\n uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks);\n return (s_packPrice * numberOfPacks) - prizesAmount;\n }\n\n function getAmountRequiredToBuyPacks(uint256 numberOfPacks) public view returns (uint256) {\n uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks);\n uint256 NoFAccountAmount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks);\n return prizesAmount + NoFAccountAmount;\n }\n\n function getPacksByUser(address owner) public view returns (uint256[] memory) {\n return s_packsByUser[owner];\n }\n\n function getPackOwner(uint256 tokenId) public view returns (address) {\n return s_packs[tokenId];\n }\n\n function meetQuantityConditionsToBuy(uint256 numberOfPacks) public view returns (bool) {\n if (numberOfPacks == 0) revert InvalidNumberOfPacks();\n return (s_packsCounter + numberOfPacks) < TOTALSUPPLY;\n }\n\n function buyPack() public returns (uint256) {\n return _buyPack(msg.sender);\n }\n\n function buyPacks(uint256 numberOfPacks) public returns (uint256[] memory) {\n return _buyPacks(msg.sender, numberOfPacks);\n }\n\n function buyPackByUser(address user) public onlyOwners returns (uint256) {\n return _buyPack(user);\n }\n\n function buyPacksByUser(\n address user,\n uint256 numberOfPacks\n ) public onlyOwners returns (uint256[] memory) {\n return _buyPacks(user, numberOfPacks);\n }\n\n function _buyPack(address user) private returns (uint256) {\n uint256[] memory tokenIds = _buyPacks(user, 1);\n return tokenIds[0];\n }\n\n function _buyPacks(address user, uint256 numberOfPacks) private returns (uint256[] memory) {\n if (user == address(0)) revert InvalidAddress();\n if (numberOfPacks == 0 || numberOfPacks > 100) revert InvalidNumberOfPacks();\n if ((s_packsCounter + numberOfPacks) >= TOTALSUPPLY) revert InsufficientPacksAvailable();\n uint256[] memory tokenIds = new uint256[](numberOfPacks);\n uint256 m_packsCounter = s_packsCounter;\n\n for (uint256 i; i < numberOfPacks;) {\n if (m_packsCounter >= TOTALSUPPLY) revert InsufficientPacksAvailable();\n s_packs[m_packsCounter] = user;\n s_packsByUser[user].push(m_packsCounter);\n tokenIds[i] = m_packsCounter;\n m_packsCounter++;\n unchecked {\n i++;\n }\n }\n \n s_packsCounter = m_packsCounter;\n\n bool transferPrizeResult = _transferPrizesAmounts(user, numberOfPacks);\n if (!transferPrizeResult) revert TransferPrizeError(user);\n\n if (numberOfPacks == 1) {\n emit PackPurchased(user, tokenIds[0]);\n } else {\n emit PacksPurchased(user, tokenIds);\n }\n \n return tokenIds;\n }\n\n function _transferPrizesAmounts(address user, uint256 numberOfPacks) private returns (bool) {\n uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks);\n uint256 prizeNoFAccount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks);\n gammaCardsContract.setPrizesBalance(prizesAmount);\n\n if (s_transferDai) {\n IERC20 erc20Token = IERC20(DAI_TOKEN);\n\n if (erc20Token.allowance(user, address(this)) < (prizesAmount + prizeNoFAccount)) revert InsufficientAllowance();\n if (erc20Token.balanceOf(user) < prizesAmount || erc20Token.balanceOf(user) < prizeNoFAccount)\n revert InsufficientBalance();\n\n // send prize amount to the card contract\n bool successTx1 = erc20Token.transferFrom(user, address(gammaCardsContract), prizesAmount);\n if (!successTx1) revert TransferPrizeError(address(gammaCardsContract));\n\n // send profit amount to NoF account\n bool successTx2 = erc20Token.transferFrom(user, s_balanceReceiver, prizeNoFAccount);\n if (!successTx2) revert TransferPrizeError(s_balanceReceiver);\n }\n return true;\n }\n\n function deleteTokenId(uint256 tokenId, address owner) internal {\n uint256 packsByUserLength = s_packsByUser[owner].length;\n for (uint256 i; i < packsByUserLength; i++) {\n if (s_packsByUser[owner][i] == tokenId) {\n s_packsByUser[owner][i] = s_packsByUser[owner][s_packsByUser[owner].length - 1];\n s_packsByUser[owner].pop();\n break;\n }\n }\n }\n\n function transferPack(address to, uint256 tokenId) public {\n _transferPack(to, tokenId);\n }\n\n function transferPacks(address to, uint256[] memory tokenIds) public {\n for (uint256 i = 0; i < tokenIds.length; i++) {\n uint256 tokenId = tokenIds[i];\n _transferPack(to, tokenId);\n }\n emit PacksTransfered(msg.sender, to, tokenIds);\n }\n\n function _transferPack(address to, uint256 tokenId) private {\n if (to == address(0)) revert InvalidAddress();\n if (s_packs[tokenId] != msg.sender) revert NotYourPack();\n s_packs[tokenId] = to;\n deleteTokenId(tokenId, msg.sender);\n s_packsByUser[to].push(tokenId);\n emit PackTransfered(msg.sender, to, tokenId);\n }\n\n function openPack(uint256 tokenId, address owner) public onlyGammaCardsContract {\n _openPack(tokenId, owner);\n }\n\n function openPacks(uint256[] memory tokenIds, address owner) public onlyGammaCardsContract {\n for (uint256 i = 0; i < tokenIds.length; i++) {\n uint256 tokenId = tokenIds[i];\n _openPack(tokenId, owner);\n }\n }\n\n function _openPack(uint256 tokenId, address owner) private {\n deleteTokenId(tokenId, owner);\n delete s_packs[tokenId];\n emit PackOpened(owner, tokenId);\n }\n\n function _lottery() private {\n if (address(gammaTicketsContract) == address(0)) revert ContractAddressNotSet();\n // (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user) = gammaTicketsContract.getLotteryWinner();\n\n // TODO: get %price from gamma cards contract\n\n // TODO: transfer price\n if (s_transferDai) {\n // IERC20 erc20Token = IERC20(DAI_TOKEN);\n }\n\n // TODO: burn tickets en gamma tickets contract\n gammaTicketsContract.deleteAllTickets();\n }\n\n // for testing purposes only, will delete upon deployment\n function testOpenPack(uint256 tokenId, address owner) public onlyOwners {\n _openPack(tokenId, owner);\n }\n\n function testOpenPacks(uint256[] memory tokenIds, address owner) public onlyOwners {\n for (uint256 i = 0; i < tokenIds.length; i++) {\n uint256 tokenId = tokenIds[i];\n _openPack(tokenId, owner);\n }\n }\n // for testing purposes only, will delete upon deployment\n}\n"},"contracts/gamma/libs/LibControlMgmt.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nlibrary LibControlMgmt {\n struct Data {\n mapping(address => bool) owners;\n mapping(address => bool) signers;\n }\n\n event NewOwnerAdded(address newOwner);\n event OwnerRemoved(address owner);\n event NewSignerAdded(address newSigner);\n event SignerRemoved(address signer);\n\n function addOwner(Data storage self, address newOwner) external {\n require(newOwner != address(0), \"Invalid address.\");\n require(!self.owners[newOwner], \"Address is already an owner.\");\n self.owners[newOwner] = true;\n emit NewOwnerAdded(newOwner);\n }\n\n function removeOwner(Data storage self, address ownerToRemove) external {\n require(ownerToRemove != address(0), \"Invalid address.\");\n require(self.owners[ownerToRemove], \"Address is not an owner.\");\n require(ownerToRemove != msg.sender, \"You cannot remove yourself as an owner.\");\n self.owners[ownerToRemove] = false;\n emit OwnerRemoved(ownerToRemove);\n }\n\n function addSigner(Data storage self, address newSigner) external {\n require(newSigner != address(0), \"Invalid address.\");\n require(!self.signers[newSigner], \"Address is already a signer.\");\n self.signers[newSigner] = true;\n emit NewSignerAdded(newSigner);\n }\n\n function removeSigner(Data storage self, address signerToRemove) external {\n require(signerToRemove != address(0), \"Invalid address.\");\n require(self.signers[signerToRemove], \"Address is not a signer.\");\n require(signerToRemove != msg.sender, \"You cannot remove yourself as a signer.\");\n self.signers[signerToRemove] = false;\n emit SignerRemoved(signerToRemove);\n }\n}\n"},"contracts/gamma/libs/LibPackVerifier.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\n\n\nlibrary LibPackVerifier {\n using ECDSA for bytes32;\n using MessageHashUtils for bytes32;\n\n function verifyPackSigner(\n address sender,\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) public pure returns (address) {\n bytes32 messageHash = keccak256(\n abi.encodePacked(sender, packNumber, packData, '0xf1dD71895e49b1563693969de50898197cDF3481')\n ).toEthSignedMessageHash();\n\n address recoveredSigner = messageHash.recover(signature);\n return recoveredSigner;\n }\n}\n"},"contracts/gamma/libs/LibStringUtils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nlibrary LibStringUtils {\n\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.sol#L15-L35\n function toString(uint256 value) public pure returns (string memory) {\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n}\n"},"contracts/testDai/TestDAI.v3.sol":{"content":"// SPDX-License-Identifier: MIT\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 GSN 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 payable) {\n return payable(address(msg.sender));\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n // silence state mutability warning without generating bytecode\n // more info: see https://github.com/ethereum/solidity/issues/2691\n this; \n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC20/IERC20.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * 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 SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // 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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // According to EIP-1052, 0x0 is the value returned for not-yet created accounts\n // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned\n // for accounts without code, i.e. `keccak256('')`\n bytes32 codehash;\n bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;\n // solhint-disable-next-line no-inline-assembly\n assembly { codehash := extcodehash(account) }\n return (codehash != accountHash && codehash != 0x0);\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal \n returns (bytes memory) {\n return _functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target, bytes memory data, \n uint256 value, string memory errorMessage) internal returns (bytes memory) {\n\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n return _functionCallWithValue(target, data, value, errorMessage);\n }\n\n function _functionCallWithValue(\n address target, bytes memory data, \n uint256 weiValue, string memory errorMessage) private returns (bytes memory) {\n \n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: contracts/child/ChildToken/UpgradeableChildERC20/ERC20.sol\n\n\n\npragma solidity ^0.8.20;\n\n\n\n\n/**\n * Modified openzeppelin implemtation to add setters for name, symbol and decimals.\n * This was needed because the variables cannot be set in constructor as the contract is upgradeable.\n */\n\n/**\n * @dev openzeppelin Implementation of the {IERC20} interface.\n *\n * Modified to add setters for name, symbol and decimals. This was needed\n * because\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin guidelines: functions revert instead\n * of returning `false` on failure. This behavior is nonetheless conventional\n * and does not conflict with the expectations of ERC20 applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20 {\n using SafeMath for uint256;\n using Address for address;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n /**\n * @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n * a default value of 18.\n *\n * To select a different value for {decimals}, use {_setupDecimals}.\n *\n * All three of these values are immutable: they can only be set once during\n * construction.\n */\n constructor (string memory __name, string memory __symbol) {\n _name = __name;\n _symbol = __symbol;\n _decimals = 18;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view returns (string memory) {\n return _name;\n }\n\n function setName(string memory newName) internal {\n _name = newName;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view returns (string memory) {\n return _symbol;\n }\n\n function setSymbol(string memory newSymbol) internal {\n _symbol = newSymbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n * called.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view returns (uint8) {\n return _decimals;\n }\n\n function setDecimals(uint8 newDecimals) internal {\n _decimals = newDecimals;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for ``sender``'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \n \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \n \"ERC20: decreased allowance below zero\"));\n return true;\n }\n\n /**\n * @dev Moves tokens `amount` from `sender` to `recipient`.\n *\n * This is internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(address sender, address recipient, uint256 amount) internal virtual {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(sender, recipient, amount);\n\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\n _balances[recipient] = _balances[recipient].add(amount);\n emit Transfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements\n *\n * - `to` cannot be the zero address. \n */\n function _mint(address account, uint256 amount) public virtual { \n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\n _totalSupply = _totalSupply.sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n *\n * This is internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(address owner, address spender, uint256 amount) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Sets {decimals} to a value other than the default one of 18.\n *\n * WARNING: This function should only be called from the constructor. Most\n * applications that interact with token contracts will not expect\n * {decimals} to ever change, and may work incorrectly if it does.\n */\n function _setupDecimals(uint8 decimals_) internal {\n _decimals = decimals_;\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be to transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`\n * (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/access/AccessControl.sol\n\n\n\npragma solidity ^0.8.20;\n\n\n\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context {\n using EnumerableSet for EnumerableSet.AddressSet;\n using Address for address;\n\n struct RoleData {\n EnumerableSet.AddressSet members;\n bytes32 adminRole;\n }\n\n mapping (bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view returns (bool) {\n return _roles[role].members.contains(account);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view returns (uint256) {\n return _roles[role].members.length();\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view returns (address) {\n return _roles[role].members.at(index);\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to grant\");\n\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to revoke\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) public virtual {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);\n _roles[role].adminRole = adminRole;\n }\n\n function _grantRole(bytes32 role, address account) private {\n if (_roles[role].members.add(account)) {\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n function _revokeRole(bytes32 role, address account) private {\n if (_roles[role].members.remove(account)) {\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n}\n\n// File: contracts/common/AccessControlMixin.sol\n\npragma solidity ^0.8.20;\n\n\ncontract AccessControlMixin is AccessControl {\n string private _revertMsg;\n function _setupContractId(string memory contractId) internal {\n _revertMsg = string(abi.encodePacked(contractId, \": INSUFFICIENT_PERMISSIONS\"));\n }\n\n modifier only(bytes32 role) {\n require(\n hasRole(role, _msgSender()),\n _revertMsg\n );\n _;\n }\n}\n\n// File: contracts/child/ChildToken/IChildToken.sol\n\npragma solidity ^0.8.20;\n\ninterface IChildToken {\n function deposit(address user, bytes calldata depositData) external;\n}\n\n// File: contracts/common/Initializable.sol\n\npragma solidity ^0.8.20;\n\ncontract Initializable {\n bool inited = false;\n\n modifier initializer() {\n require(!inited, \"already inited\");\n _;\n inited = true;\n }\n}\n\n// File: contracts/common/EIP712Base.sol\n\npragma solidity ^0.8.20;\n\n\ncontract EIP712Base is Initializable {\n struct EIP712Domain {\n string name;\n string version;\n address verifyingContract;\n bytes32 salt;\n }\n\n bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(\n bytes(\n \"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\"\n )\n );\n bytes32 internal domainSeperator;\n\n // supposed to be called once while initializing.\n // one of the contractsa that inherits this contract follows proxy pattern\n // so it is not possible to do this in a constructor\n function _initializeEIP712(\n string memory name,\n string memory version\n )\n internal\n initializer\n {\n _setDomainSeperator(name, version);\n }\n\n function _setDomainSeperator(string memory name, string memory version) internal {\n domainSeperator = keccak256(\n abi.encode(\n EIP712_DOMAIN_TYPEHASH,\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n address(this),\n bytes32(getChainId())\n )\n );\n }\n\n function getDomainSeperator() public view returns (bytes32) {\n return domainSeperator;\n }\n\n function getChainId() public view returns (uint256) {\n uint256 id;\n assembly {\n id := chainid()\n }\n return id;\n }\n\n /**\n * Accept message hash and returns hash message in EIP712 compatible form\n * So that it can be used to recover signer from signature signed using EIP712 formatted data\n * https://eips.ethereum.org/EIPS/eip-712\n * \"\\\\x19\" makes the encoding deterministic\n * \"\\\\x01\" is the version byte to make it compatible to EIP-191\n */\n function toTypedMessageHash(bytes32 messageHash)\n internal\n view\n returns (bytes32)\n {\n return\n keccak256(\n abi.encodePacked(\"\\x19\\x01\", getDomainSeperator(), messageHash)\n );\n }\n}\n\n// File: contracts/common/NativeMetaTransaction.sol\n\npragma solidity ^0.8.20;\n\n\n\ncontract NativeMetaTransaction is EIP712Base {\n using SafeMath for uint256;\n bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256(\n bytes(\n \"MetaTransaction(uint256 nonce,address from,bytes functionSignature)\"\n )\n );\n event MetaTransactionExecuted(\n address userAddress,\n address payable relayerAddress,\n bytes functionSignature\n );\n mapping(address => uint256) nonces;\n\n /*\n * Meta transaction structure.\n * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas\n * He should call the desired function directly in that case.\n */\n struct MetaTransaction {\n uint256 nonce;\n address from;\n bytes functionSignature;\n }\n\n function executeMetaTransaction(\n address userAddress,\n bytes memory functionSignature,\n bytes32 sigR,\n bytes32 sigS,\n uint8 sigV\n ) public payable returns (bytes memory) {\n MetaTransaction memory metaTx = MetaTransaction({\n nonce: nonces[userAddress],\n from: userAddress,\n functionSignature: functionSignature\n });\n\n require(\n verify(userAddress, metaTx, sigR, sigS, sigV),\n \"Signer and signature do not match\"\n );\n\n // increase nonce for user (to avoid re-use)\n nonces[userAddress] = nonces[userAddress].add(1);\n\n emit MetaTransactionExecuted(\n userAddress,\n payable(msg.sender),\n functionSignature\n );\n\n // Append userAddress and relayer address at the end to extract it from calling context\n (bool success, bytes memory returnData) = address(this).call(\n abi.encodePacked(functionSignature, userAddress)\n );\n require(success, \"Function call not successful\");\n\n return returnData;\n }\n\n function hashMetaTransaction(MetaTransaction memory metaTx)\n internal\n pure\n returns (bytes32)\n {\n return\n keccak256(\n abi.encode(\n META_TRANSACTION_TYPEHASH,\n metaTx.nonce,\n metaTx.from,\n keccak256(metaTx.functionSignature)\n )\n );\n }\n\n function getNonce(address user) public view returns (uint256 nonce) {\n nonce = nonces[user];\n }\n\n function verify(\n address signer,\n MetaTransaction memory metaTx,\n bytes32 sigR,\n bytes32 sigS,\n uint8 sigV\n ) internal view returns (bool) {\n require(signer != address(0), \"NativeMetaTransaction: INVALID_SIGNER\");\n return\n signer ==\n ecrecover(\n toTypedMessageHash(hashMetaTransaction(metaTx)),\n sigV,\n sigR,\n sigS\n );\n }\n}\n\n// File: contracts/ChainConstants.sol\n\npragma solidity ^0.8.20;\n\ncontract ChainConstants {\n string constant public ERC712_VERSION = \"1\";\n\n uint256 constant public ROOT_CHAIN_ID = 1;\n bytes constant public ROOT_CHAIN_ID_BYTES = hex\"01\";\n\n uint256 constant public CHILD_CHAIN_ID = 137;\n bytes constant public CHILD_CHAIN_ID_BYTES = hex\"89\";\n}\n\n// File: contracts/common/ContextMixin.sol\n\npragma solidity ^0.8.20;\n\nabstract contract ContextMixin {\n function msgSender()\n internal\n view\n returns (address payable sender)\n {\n if (msg.sender == address(this)) {\n bytes memory array = msg.data;\n uint256 index = msg.data.length;\n assembly {\n // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those.\n sender := and(\n mload(add(array, index)),\n 0xffffffffffffffffffffffffffffffffffffffff\n )\n }\n } else {\n sender = payable(msg.sender);\n }\n return sender;\n }\n}\n\n// File: contracts/child/ChildToken/UpgradeableChildERC20/UChildERC20.sol\n\npragma solidity ^0.8.20;\n\n\ncontract UChildERC20 is\n ERC20,\n IChildToken,\n AccessControlMixin,\n NativeMetaTransaction,\n ChainConstants,\n ContextMixin\n{\n bytes32 public constant DEPOSITOR_ROLE = keccak256(\"DEPOSITOR_ROLE\");\n\n constructor() ERC20(\"DAI\", \"DAI\") {}\n\n /**\n * @notice Initialize the contract after it has been proxified\n * @dev meant to be called once immediately after deployment\n */\n function initialize(\n string calldata name_,\n string calldata symbol_,\n uint8 decimals_,\n address childChainManager\n )\n external\n initializer\n {\n setName(name_);\n setSymbol(symbol_);\n setDecimals(decimals_);\n _setupContractId(string(abi.encodePacked(\"Child\", symbol_)));\n _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\n _setupRole(DEPOSITOR_ROLE, childChainManager);\n _initializeEIP712(name_, ERC712_VERSION);\n }\n\n // This is to support Native meta transactions\n // never use msg.sender directly, use _msgSender() instead\n function _msgSender()\n internal\n override\n view\n returns (address payable sender)\n {\n return ContextMixin.msgSender();\n }\n\n function changeName(string calldata name_) external only(DEFAULT_ADMIN_ROLE) {\n setName(name_);\n _setDomainSeperator(name_, ERC712_VERSION);\n }\n\n /**\n * @notice called when token is deposited on root chain\n * @dev Should be callable only by ChildChainManager\n * Should handle deposit by minting the required amount for user\n * Make sure minting is done only by this function\n * @param user user address for whom deposit is being done\n * @param depositData abi encoded amount\n */\n function deposit(address user, bytes calldata depositData)\n external\n override\n only(DEPOSITOR_ROLE)\n {\n uint256 amount = abi.decode(depositData, (uint256));\n _mint(user, amount);\n }\n\n /**\n * @notice called when user wants to withdraw tokens back to root chain\n * @dev Should burn user's tokens. This transaction will be verified when exiting on root chain\n * @param amount amount of tokens to withdraw\n */\n function withdraw(uint256 amount) external {\n _burn(_msgSender(), amount);\n }\n}\n\n// File: contracts/child/ChildToken/DappTokens/UChildDAI.sol\n\npragma solidity ^0.8.20;\n\n\ncontract NofTestDAIV3 is UChildERC20 {\n // bytes32 public constant PERMIT_TYPEHASH = \n // keccak256(\"Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\");\n bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;\n\n // --- Alias ---\n function push(address usr, uint wad) external {\n transferFrom(msg.sender, usr, wad);\n }\n function pull(address usr, uint wad) external {\n transferFrom(usr, msg.sender, wad);\n }\n function move(address src, address dst, uint wad) external {\n transferFrom(src, dst, wad);\n }\n\n // --- Approve by signature ---\n function permit(\n address holder,\n address spender,\n uint256 nonce,\n uint256 expiry,\n bool allowed,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainSeperator(),\n keccak256(\n abi.encode(\n PERMIT_TYPEHASH,\n holder,\n spender,\n nonce,\n expiry,\n allowed\n )\n )\n ));\n\n require(holder == ecrecover(digest, v, r, s), \"UChildDAI: INVALID-PERMIT\");\n require(expiry == 0 || block.timestamp <= expiry, \"UChildDAI: PERMIT-EXPIRED\");\n require(nonce == nonces[holder]++, \"UChildDAI: INVALID-NONCE\");\n uint wad = allowed ? type(uint).max : 0;\n _approve(holder, spender, wad);\n }\n}"},"hardhat/console.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nlibrary console {\n address constant CONSOLE_ADDRESS =\n 0x000000000000000000636F6e736F6c652e6c6f67;\n\n function _sendLogPayloadImplementation(bytes memory payload) internal view {\n address consoleAddress = CONSOLE_ADDRESS;\n /// @solidity memory-safe-assembly\n assembly {\n pop(\n staticcall(\n gas(),\n consoleAddress,\n add(payload, 32),\n mload(payload),\n 0,\n 0\n )\n )\n }\n }\n\n function _castToPure(\n function(bytes memory) internal view fnIn\n ) internal pure returns (function(bytes memory) pure fnOut) {\n assembly {\n fnOut := fnIn\n }\n }\n\n function _sendLogPayload(bytes memory payload) internal pure {\n _castToPure(_sendLogPayloadImplementation)(payload);\n }\n\n function log() internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log()\"));\n }\n function logInt(int256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(int256)\", p0));\n }\n\n function logUint(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function logString(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function logBool(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function logAddress(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function logBytes(bytes memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n }\n\n function logBytes1(bytes1 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n }\n\n function logBytes2(bytes2 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n }\n\n function logBytes3(bytes3 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n }\n\n function logBytes4(bytes4 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n }\n\n function logBytes5(bytes5 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n }\n\n function logBytes6(bytes6 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n }\n\n function logBytes7(bytes7 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n }\n\n function logBytes8(bytes8 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n }\n\n function logBytes9(bytes9 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n }\n\n function logBytes10(bytes10 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n }\n\n function logBytes11(bytes11 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n }\n\n function logBytes12(bytes12 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n }\n\n function logBytes13(bytes13 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n }\n\n function logBytes14(bytes14 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n }\n\n function logBytes15(bytes15 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n }\n\n function logBytes16(bytes16 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n }\n\n function logBytes17(bytes17 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n }\n\n function logBytes18(bytes18 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n }\n\n function logBytes19(bytes19 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n }\n\n function logBytes20(bytes20 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n }\n\n function logBytes21(bytes21 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n }\n\n function logBytes22(bytes22 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n }\n\n function logBytes23(bytes23 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n }\n\n function logBytes24(bytes24 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n }\n\n function logBytes25(bytes25 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n }\n\n function logBytes26(bytes26 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n }\n\n function logBytes27(bytes27 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n }\n\n function logBytes28(bytes28 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n }\n\n function logBytes29(bytes29 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n }\n\n function logBytes30(bytes30 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n }\n\n function logBytes31(bytes31 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n }\n\n function logBytes32(bytes32 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n }\n\n function log(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function log(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function log(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function log(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function log(uint256 p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256)\", p0, p1));\n }\n\n function log(uint256 p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string)\", p0, p1));\n }\n\n function log(uint256 p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool)\", p0, p1));\n }\n\n function log(uint256 p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address)\", p0, p1));\n }\n\n function log(string memory p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256)\", p0, p1));\n }\n\n function log(string memory p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n }\n\n function log(string memory p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n }\n\n function log(string memory p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n }\n\n function log(bool p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256)\", p0, p1));\n }\n\n function log(bool p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n }\n\n function log(bool p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n }\n\n function log(bool p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n }\n\n function log(address p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256)\", p0, p1));\n }\n\n function log(address p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n }\n\n function log(address p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n }\n\n function log(address p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n }\n\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[1751],"Ownable":[147]},"id":148,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:0"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":148,"sourceUnit":1752,"src":"128:45:0","symbolAliases":[{"foreign":{"id":2,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"136:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5,"name":"Context","nameLocations":["692:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":1751,"src":"692:7:0"},"id":6,"nodeType":"InheritanceSpecifier","src":"692:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"175:487:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":147,"linearizedBaseContracts":[147,1751],"name":"Ownable","nameLocation":"681:7:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8,"mutability":"mutable","name":"_owner","nameLocation":"722:6:0","nodeType":"VariableDeclaration","scope":147,"src":"706:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"735:85:0","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":13,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:0","nodeType":"ErrorDefinition","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"mutability":"mutable","name":"account","nameLocation":"866:7:0","nodeType":"VariableDeclaration","scope":13,"src":"858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:0"},"src":"825:50:0"},{"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"881:82:0","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":18,"name":"OwnableInvalidOwner","nameLocation":"974:19:0","nodeType":"ErrorDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"mutability":"mutable","name":"owner","nameLocation":"1002:5:0","nodeType":"VariableDeclaration","scope":18,"src":"994:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:0"},"src":"968:41:0"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":24,"name":"OwnershipTransferred","nameLocation":"1021:20:0","nodeType":"EventDefinition","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:0","nodeType":"VariableDeclaration","scope":24,"src":"1042:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:0","nodeType":"VariableDeclaration","scope":24,"src":"1073:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:0"},"src":"1015:84:0"},{"body":{"id":49,"nodeType":"Block","src":"1259:153:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1273:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:0","typeDescriptions":{}}},"id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44,"nodeType":"IfStatement","src":"1269:95:0","trueBody":{"id":43,"nodeType":"Block","src":"1301:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":38,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:0","typeDescriptions":{}}},"id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1322:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42,"nodeType":"RevertStatement","src":"1315:38:0"}]}},{"expression":{"arguments":[{"id":46,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1392:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1373:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48,"nodeType":"ExpressionStatement","src":"1373:32:0"}]},"documentation":{"id":25,"nodeType":"StructuredDocumentation","src":"1105:115:0","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":50,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:0","nodeType":"VariableDeclaration","scope":50,"src":"1237:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[],"src":"1259:0:0"},"scope":147,"src":"1225:187:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":57,"nodeType":"Block","src":"1521:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":53,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"1531:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"1531:13:0"},{"id":56,"nodeType":"PlaceholderStatement","src":"1554:1:0"}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1418:77:0","text":" @dev Throws if called by any account other than the owner."},"id":58,"name":"onlyOwner","nameLocation":"1509:9:0","nodeType":"ModifierDefinition","parameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"1518:2:0"},"src":"1500:62:0","virtual":false,"visibility":"internal"},{"body":{"id":66,"nodeType":"Block","src":"1693:30:0","statements":[{"expression":{"id":64,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1710:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":63,"id":65,"nodeType":"Return","src":"1703:13:0"}]},"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1568:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":67,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:0","nodeType":"FunctionDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"1652:2:0"},"returnParameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67,"src":"1684:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:0"},"scope":147,"src":"1638:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":83,"nodeType":"Block","src":"1841:117:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":71,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1855:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":73,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"1866:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82,"nodeType":"IfStatement","src":"1851:101:0","trueBody":{"id":81,"nodeType":"Block","src":"1880:72:0","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"1928:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1901:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"RevertStatement","src":"1894:47:0"}]}}]},"documentation":{"id":68,"nodeType":"StructuredDocumentation","src":"1729:62:0","text":" @dev Throws if the sender is not the owner."},"id":84,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:0","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[],"src":"1816:2:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"1841:0:0"},"scope":147,"src":"1796:162:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":97,"nodeType":"Block","src":"2347:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":92,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:0","typeDescriptions":{}}},"id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2357:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96,"nodeType":"ExpressionStatement","src":"2357:30:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1964:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":98,"implemented":true,"kind":"function","modifiers":[{"id":88,"kind":"modifierInvocation","modifierName":{"id":87,"name":"onlyOwner","nameLocations":["2337:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2337:9:0"},"nodeType":"ModifierInvocation","src":"2337:9:0"}],"name":"renounceOwnership","nameLocation":"2302:17:0","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"2319:2:0"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"2347:0:0"},"scope":147,"src":"2293:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":125,"nodeType":"Block","src":"2613:145:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2627:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{}}},"id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":120,"nodeType":"IfStatement","src":"2623:91:0","trueBody":{"id":119,"nodeType":"Block","src":"2651:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:0","typeDescriptions":{}}},"id":116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":112,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"2672:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118,"nodeType":"RevertStatement","src":"2665:38:0"}]}},{"expression":{"arguments":[{"id":122,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2742:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2723:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":124,"nodeType":"ExpressionStatement","src":"2723:28:0"}]},"documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"2400:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":126,"implemented":true,"kind":"function","modifiers":[{"id":104,"kind":"modifierInvocation","modifierName":{"id":103,"name":"onlyOwner","nameLocations":["2603:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2603:9:0"},"nodeType":"ModifierInvocation","src":"2603:9:0"}],"name":"transferOwnership","nameLocation":"2552:17:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:0","nodeType":"VariableDeclaration","scope":126,"src":"2570:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[],"src":"2613:0:0"},"scope":147,"src":"2543:215:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":145,"nodeType":"Block","src":"2975:124:0","statements":[{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:0","nodeType":"VariableDeclaration","scope":145,"src":"2985:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":135,"initialValue":{"id":134,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:0"},{"expression":{"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":136,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3020:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":137,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3029:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ExpressionStatement","src":"3020:17:0"},{"eventCall":{"arguments":[{"id":141,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":142,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3083:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":140,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3052:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":144,"nodeType":"EmitStatement","src":"3047:45:0"}]},"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"2764:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":146,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:0","nodeType":"FunctionDefinition","parameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:0","nodeType":"VariableDeclaration","scope":146,"src":"2940:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":128,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:0"},"returnParameters":{"id":131,"nodeType":"ParameterList","parameters":[],"src":"2975:0:0"},"scope":147,"src":"2912:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":148,"src":"663:2438:0","usedErrors":[13,18],"usedEvents":[24]}],"src":"102:3000:0"},"id":0},"@openzeppelin/contracts/interfaces/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","exportedSymbols":{"IERC165":[2464]},"id":152,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":149,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:1"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../utils/introspection/IERC165.sol","id":151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":152,"sourceUnit":2465,"src":"132:59:1","symbolAliases":[{"foreign":{"id":150,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"140:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"106:86:1"},"id":1},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4906.sol","exportedSymbols":{"IERC165":[2464],"IERC4906":[175],"IERC721":[1520]},"id":176,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":153,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:2"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","file":"./IERC165.sol","id":155,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":176,"sourceUnit":152,"src":"133:38:2","symbolAliases":[{"foreign":{"id":154,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"141:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","file":"./IERC721.sol","id":157,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":176,"sourceUnit":180,"src":"172:38:2","symbolAliases":[{"foreign":{"id":156,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"180:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":159,"name":"IERC165","nameLocations":["279:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"279:7:2"},"id":160,"nodeType":"InheritanceSpecifier","src":"279:7:2"},{"baseName":{"id":161,"name":"IERC721","nameLocations":["288:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1520,"src":"288:7:2"},"id":162,"nodeType":"InheritanceSpecifier","src":"288:7:2"}],"canonicalName":"IERC4906","contractDependencies":[],"contractKind":"interface","documentation":{"id":158,"nodeType":"StructuredDocumentation","src":"212:45:2","text":"@title EIP-721 Metadata Update Extension"},"fullyImplemented":false,"id":175,"linearizedBaseContracts":[175,1520,2464],"name":"IERC4906","nameLocation":"267:8:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":163,"nodeType":"StructuredDocumentation","src":"302:201:2","text":"@dev This event emits when the metadata of a token is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFT."},"eventSelector":"f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7","id":167,"name":"MetadataUpdate","nameLocation":"514:14:2","nodeType":"EventDefinition","parameters":{"id":166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":165,"indexed":false,"mutability":"mutable","name":"_tokenId","nameLocation":"537:8:2","nodeType":"VariableDeclaration","scope":167,"src":"529:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":164,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"528:18:2"},"src":"508:39:2"},{"anonymous":false,"documentation":{"id":168,"nodeType":"StructuredDocumentation","src":"553:212:2","text":"@dev This event emits when the metadata of a range of tokens is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFTs."},"eventSelector":"6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c","id":174,"name":"BatchMetadataUpdate","nameLocation":"776:19:2","nodeType":"EventDefinition","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":170,"indexed":false,"mutability":"mutable","name":"_fromTokenId","nameLocation":"804:12:2","nodeType":"VariableDeclaration","scope":174,"src":"796:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":169,"name":"uint256","nodeType":"ElementaryTypeName","src":"796:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":172,"indexed":false,"mutability":"mutable","name":"_toTokenId","nameLocation":"826:10:2","nodeType":"VariableDeclaration","scope":174,"src":"818:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":171,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"795:42:2"},"src":"770:68:2"}],"scope":176,"src":"257:583:2","usedErrors":[],"usedEvents":[167,174,1419,1428,1437]}],"src":"107:734:2"},"id":2},"@openzeppelin/contracts/interfaces/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","exportedSymbols":{"IERC721":[1520]},"id":180,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":177,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:3"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../token/ERC721/IERC721.sol","id":179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":180,"sourceUnit":1521,"src":"132:52:3","symbolAliases":[{"foreign":{"id":178,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"140:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"106:79:3"},"id":3},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[316],"IERC20Errors":[221],"IERC721Errors":[269]},"id":317,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":181,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"138:139:4","text":" @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens."},"fullyImplemented":true,"id":221,"linearizedBaseContracts":[221],"name":"IERC20Errors","nameLocation":"288:12:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":183,"nodeType":"StructuredDocumentation","src":"307:309:4","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":191,"name":"ERC20InsufficientBalance","nameLocation":"627:24:4","nodeType":"ErrorDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"sender","nameLocation":"660:6:4","nodeType":"VariableDeclaration","scope":191,"src":"652:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"balance","nameLocation":"676:7:4","nodeType":"VariableDeclaration","scope":191,"src":"668:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":186,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"needed","nameLocation":"693:6:4","nodeType":"VariableDeclaration","scope":191,"src":"685:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"651:49:4"},"src":"621:80:4"},{"documentation":{"id":192,"nodeType":"StructuredDocumentation","src":"707:152:4","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":196,"name":"ERC20InvalidSender","nameLocation":"870:18:4","nodeType":"ErrorDefinition","parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":194,"mutability":"mutable","name":"sender","nameLocation":"897:6:4","nodeType":"VariableDeclaration","scope":196,"src":"889:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"888:16:4"},"src":"864:41:4"},{"documentation":{"id":197,"nodeType":"StructuredDocumentation","src":"911:159:4","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":201,"name":"ERC20InvalidReceiver","nameLocation":"1081:20:4","nodeType":"ErrorDefinition","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"mutability":"mutable","name":"receiver","nameLocation":"1110:8:4","nodeType":"VariableDeclaration","scope":201,"src":"1102:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"1102:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1101:18:4"},"src":"1075:45:4"},{"documentation":{"id":202,"nodeType":"StructuredDocumentation","src":"1126:345:4","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":210,"name":"ERC20InsufficientAllowance","nameLocation":"1482:26:4","nodeType":"ErrorDefinition","parameters":{"id":209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"mutability":"mutable","name":"spender","nameLocation":"1517:7:4","nodeType":"VariableDeclaration","scope":210,"src":"1509:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":203,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206,"mutability":"mutable","name":"allowance","nameLocation":"1534:9:4","nodeType":"VariableDeclaration","scope":210,"src":"1526:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":208,"mutability":"mutable","name":"needed","nameLocation":"1553:6:4","nodeType":"VariableDeclaration","scope":210,"src":"1545:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1508:52:4"},"src":"1476:85:4"},{"documentation":{"id":211,"nodeType":"StructuredDocumentation","src":"1567:174:4","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":215,"name":"ERC20InvalidApprover","nameLocation":"1752:20:4","nodeType":"ErrorDefinition","parameters":{"id":214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"approver","nameLocation":"1781:8:4","nodeType":"VariableDeclaration","scope":215,"src":"1773:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":212,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1772:18:4"},"src":"1746:45:4"},{"documentation":{"id":216,"nodeType":"StructuredDocumentation","src":"1797:195:4","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":220,"name":"ERC20InvalidSpender","nameLocation":"2003:19:4","nodeType":"ErrorDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":218,"mutability":"mutable","name":"spender","nameLocation":"2031:7:4","nodeType":"VariableDeclaration","scope":220,"src":"2023:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":217,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2022:17:4"},"src":"1997:43:4"}],"scope":317,"src":"278:1764:4","usedErrors":[191,196,201,210,215,220],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":222,"nodeType":"StructuredDocumentation","src":"2044:141:4","text":" @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens."},"fullyImplemented":true,"id":269,"linearizedBaseContracts":[269],"name":"IERC721Errors","nameLocation":"2196:13:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":223,"nodeType":"StructuredDocumentation","src":"2216:219:4","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":227,"name":"ERC721InvalidOwner","nameLocation":"2446:18:4","nodeType":"ErrorDefinition","parameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":225,"mutability":"mutable","name":"owner","nameLocation":"2473:5:4","nodeType":"VariableDeclaration","scope":227,"src":"2465:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":224,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:15:4"},"src":"2440:40:4"},{"documentation":{"id":228,"nodeType":"StructuredDocumentation","src":"2486:132:4","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":232,"name":"ERC721NonexistentToken","nameLocation":"2629:22:4","nodeType":"ErrorDefinition","parameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":230,"mutability":"mutable","name":"tokenId","nameLocation":"2660:7:4","nodeType":"VariableDeclaration","scope":232,"src":"2652:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":229,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2651:17:4"},"src":"2623:46:4"},{"documentation":{"id":233,"nodeType":"StructuredDocumentation","src":"2675:289:4","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":241,"name":"ERC721IncorrectOwner","nameLocation":"2975:20:4","nodeType":"ErrorDefinition","parameters":{"id":240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":235,"mutability":"mutable","name":"sender","nameLocation":"3004:6:4","nodeType":"VariableDeclaration","scope":241,"src":"2996:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":234,"name":"address","nodeType":"ElementaryTypeName","src":"2996:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":237,"mutability":"mutable","name":"tokenId","nameLocation":"3020:7:4","nodeType":"VariableDeclaration","scope":241,"src":"3012:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":239,"mutability":"mutable","name":"owner","nameLocation":"3037:5:4","nodeType":"VariableDeclaration","scope":241,"src":"3029:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":238,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2995:48:4"},"src":"2969:75:4"},{"documentation":{"id":242,"nodeType":"StructuredDocumentation","src":"3050:152:4","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":246,"name":"ERC721InvalidSender","nameLocation":"3213:19:4","nodeType":"ErrorDefinition","parameters":{"id":245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":244,"mutability":"mutable","name":"sender","nameLocation":"3241:6:4","nodeType":"VariableDeclaration","scope":246,"src":"3233:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":243,"name":"address","nodeType":"ElementaryTypeName","src":"3233:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3232:16:4"},"src":"3207:42:4"},{"documentation":{"id":247,"nodeType":"StructuredDocumentation","src":"3255:159:4","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":251,"name":"ERC721InvalidReceiver","nameLocation":"3425:21:4","nodeType":"ErrorDefinition","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":249,"mutability":"mutable","name":"receiver","nameLocation":"3455:8:4","nodeType":"VariableDeclaration","scope":251,"src":"3447:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"3447:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3446:18:4"},"src":"3419:46:4"},{"documentation":{"id":252,"nodeType":"StructuredDocumentation","src":"3471:247:4","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":258,"name":"ERC721InsufficientApproval","nameLocation":"3729:26:4","nodeType":"ErrorDefinition","parameters":{"id":257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"operator","nameLocation":"3764:8:4","nodeType":"VariableDeclaration","scope":258,"src":"3756:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":253,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":256,"mutability":"mutable","name":"tokenId","nameLocation":"3782:7:4","nodeType":"VariableDeclaration","scope":258,"src":"3774:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":255,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3755:35:4"},"src":"3723:68:4"},{"documentation":{"id":259,"nodeType":"StructuredDocumentation","src":"3797:174:4","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":263,"name":"ERC721InvalidApprover","nameLocation":"3982:21:4","nodeType":"ErrorDefinition","parameters":{"id":262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":261,"mutability":"mutable","name":"approver","nameLocation":"4012:8:4","nodeType":"VariableDeclaration","scope":263,"src":"4004:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":260,"name":"address","nodeType":"ElementaryTypeName","src":"4004:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4003:18:4"},"src":"3976:46:4"},{"documentation":{"id":264,"nodeType":"StructuredDocumentation","src":"4028:197:4","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":268,"name":"ERC721InvalidOperator","nameLocation":"4236:21:4","nodeType":"ErrorDefinition","parameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"operator","nameLocation":"4266:8:4","nodeType":"VariableDeclaration","scope":268,"src":"4258:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":265,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4257:18:4"},"src":"4230:46:4"}],"scope":317,"src":"2186:2092:4","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":270,"nodeType":"StructuredDocumentation","src":"4280:143:4","text":" @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens."},"fullyImplemented":true,"id":316,"linearizedBaseContracts":[316],"name":"IERC1155Errors","nameLocation":"4434:14:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":271,"nodeType":"StructuredDocumentation","src":"4455:361:4","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":281,"name":"ERC1155InsufficientBalance","nameLocation":"4827:26:4","nodeType":"ErrorDefinition","parameters":{"id":280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"sender","nameLocation":"4862:6:4","nodeType":"VariableDeclaration","scope":281,"src":"4854:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":272,"name":"address","nodeType":"ElementaryTypeName","src":"4854:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":275,"mutability":"mutable","name":"balance","nameLocation":"4878:7:4","nodeType":"VariableDeclaration","scope":281,"src":"4870:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":274,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":277,"mutability":"mutable","name":"needed","nameLocation":"4895:6:4","nodeType":"VariableDeclaration","scope":281,"src":"4887:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":276,"name":"uint256","nodeType":"ElementaryTypeName","src":"4887:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":279,"mutability":"mutable","name":"tokenId","nameLocation":"4911:7:4","nodeType":"VariableDeclaration","scope":281,"src":"4903:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":278,"name":"uint256","nodeType":"ElementaryTypeName","src":"4903:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4853:66:4"},"src":"4821:99:4"},{"documentation":{"id":282,"nodeType":"StructuredDocumentation","src":"4926:152:4","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":286,"name":"ERC1155InvalidSender","nameLocation":"5089:20:4","nodeType":"ErrorDefinition","parameters":{"id":285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":284,"mutability":"mutable","name":"sender","nameLocation":"5118:6:4","nodeType":"VariableDeclaration","scope":286,"src":"5110:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":283,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:16:4"},"src":"5083:43:4"},{"documentation":{"id":287,"nodeType":"StructuredDocumentation","src":"5132:159:4","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":291,"name":"ERC1155InvalidReceiver","nameLocation":"5302:22:4","nodeType":"ErrorDefinition","parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"receiver","nameLocation":"5333:8:4","nodeType":"VariableDeclaration","scope":291,"src":"5325:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":288,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5324:18:4"},"src":"5296:47:4"},{"documentation":{"id":292,"nodeType":"StructuredDocumentation","src":"5349:256:4","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":298,"name":"ERC1155MissingApprovalForAll","nameLocation":"5616:28:4","nodeType":"ErrorDefinition","parameters":{"id":297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":294,"mutability":"mutable","name":"operator","nameLocation":"5653:8:4","nodeType":"VariableDeclaration","scope":298,"src":"5645:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":296,"mutability":"mutable","name":"owner","nameLocation":"5671:5:4","nodeType":"VariableDeclaration","scope":298,"src":"5663:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":295,"name":"address","nodeType":"ElementaryTypeName","src":"5663:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5644:33:4"},"src":"5610:68:4"},{"documentation":{"id":299,"nodeType":"StructuredDocumentation","src":"5684:174:4","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":303,"name":"ERC1155InvalidApprover","nameLocation":"5869:22:4","nodeType":"ErrorDefinition","parameters":{"id":302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":301,"mutability":"mutable","name":"approver","nameLocation":"5900:8:4","nodeType":"VariableDeclaration","scope":303,"src":"5892:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":300,"name":"address","nodeType":"ElementaryTypeName","src":"5892:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5891:18:4"},"src":"5863:47:4"},{"documentation":{"id":304,"nodeType":"StructuredDocumentation","src":"5916:197:4","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":308,"name":"ERC1155InvalidOperator","nameLocation":"6124:22:4","nodeType":"ErrorDefinition","parameters":{"id":307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":306,"mutability":"mutable","name":"operator","nameLocation":"6155:8:4","nodeType":"VariableDeclaration","scope":308,"src":"6147:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":305,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6146:18:4"},"src":"6118:47:4"},{"documentation":{"id":309,"nodeType":"StructuredDocumentation","src":"6171:280:4","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":315,"name":"ERC1155InvalidArrayLength","nameLocation":"6462:25:4","nodeType":"ErrorDefinition","parameters":{"id":314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":311,"mutability":"mutable","name":"idsLength","nameLocation":"6496:9:4","nodeType":"VariableDeclaration","scope":315,"src":"6488:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":310,"name":"uint256","nodeType":"ElementaryTypeName","src":"6488:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":313,"mutability":"mutable","name":"valuesLength","nameLocation":"6515:12:4","nodeType":"VariableDeclaration","scope":315,"src":"6507:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":312,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6487:41:4"},"src":"6456:73:4"}],"scope":317,"src":"4424:2107:4","usedErrors":[281,286,291,298,303,308,315],"usedEvents":[]}],"src":"112:6420:4"},"id":4},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[394]},"id":395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":318,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":319,"nodeType":"StructuredDocumentation","src":"132:70:5","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":394,"linearizedBaseContracts":[394],"name":"IERC20","nameLocation":"213:6:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":320,"nodeType":"StructuredDocumentation","src":"226:158:5","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":328,"name":"Transfer","nameLocation":"395:8:5","nodeType":"EventDefinition","parameters":{"id":327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"420:4:5","nodeType":"VariableDeclaration","scope":328,"src":"404:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":324,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"442:2:5","nodeType":"VariableDeclaration","scope":328,"src":"426:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":323,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":326,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"454:5:5","nodeType":"VariableDeclaration","scope":328,"src":"446:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":325,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:57:5"},"src":"389:72:5"},{"anonymous":false,"documentation":{"id":329,"nodeType":"StructuredDocumentation","src":"467:148:5","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":337,"name":"Approval","nameLocation":"626:8:5","nodeType":"EventDefinition","parameters":{"id":336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":331,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"651:5:5","nodeType":"VariableDeclaration","scope":337,"src":"635:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":330,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":333,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"674:7:5","nodeType":"VariableDeclaration","scope":337,"src":"658:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":335,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"691:5:5","nodeType":"VariableDeclaration","scope":337,"src":"683:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":334,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"634:63:5"},"src":"620:78:5"},{"documentation":{"id":338,"nodeType":"StructuredDocumentation","src":"704:65:5","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":343,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:5","nodeType":"FunctionDefinition","parameters":{"id":339,"nodeType":"ParameterList","parameters":[],"src":"794:2:5"},"returnParameters":{"id":342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":343,"src":"820:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":340,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:5"},"scope":394,"src":"774:55:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":344,"nodeType":"StructuredDocumentation","src":"835:71:5","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":351,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"920:9:5","nodeType":"FunctionDefinition","parameters":{"id":347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":346,"mutability":"mutable","name":"account","nameLocation":"938:7:5","nodeType":"VariableDeclaration","scope":351,"src":"930:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":345,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"929:17:5"},"returnParameters":{"id":350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":351,"src":"970:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":348,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"969:9:5"},"scope":394,"src":"911:68:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"985:213:5","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":361,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1212:8:5","nodeType":"FunctionDefinition","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"to","nameLocation":"1229:2:5","nodeType":"VariableDeclaration","scope":361,"src":"1221:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"value","nameLocation":"1241:5:5","nodeType":"VariableDeclaration","scope":361,"src":"1233:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:27:5"},"returnParameters":{"id":360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":361,"src":"1266:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":358,"name":"bool","nodeType":"ElementaryTypeName","src":"1266:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1265:6:5"},"scope":394,"src":"1203:69:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":362,"nodeType":"StructuredDocumentation","src":"1278:264:5","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":371,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1556:9:5","nodeType":"FunctionDefinition","parameters":{"id":367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"owner","nameLocation":"1574:5:5","nodeType":"VariableDeclaration","scope":371,"src":"1566:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":363,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"spender","nameLocation":"1589:7:5","nodeType":"VariableDeclaration","scope":371,"src":"1581:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"1581:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1565:32:5"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":371,"src":"1621:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1620:9:5"},"scope":394,"src":"1547:83:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":372,"nodeType":"StructuredDocumentation","src":"1636:667:5","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":381,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2317:7:5","nodeType":"FunctionDefinition","parameters":{"id":377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":374,"mutability":"mutable","name":"spender","nameLocation":"2333:7:5","nodeType":"VariableDeclaration","scope":381,"src":"2325:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":376,"mutability":"mutable","name":"value","nameLocation":"2350:5:5","nodeType":"VariableDeclaration","scope":381,"src":"2342:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":375,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2324:32:5"},"returnParameters":{"id":380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":381,"src":"2375:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":378,"name":"bool","nodeType":"ElementaryTypeName","src":"2375:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2374:6:5"},"scope":394,"src":"2308:73:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":382,"nodeType":"StructuredDocumentation","src":"2387:297:5","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":393,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2698:12:5","nodeType":"FunctionDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"from","nameLocation":"2719:4:5","nodeType":"VariableDeclaration","scope":393,"src":"2711:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":386,"mutability":"mutable","name":"to","nameLocation":"2733:2:5","nodeType":"VariableDeclaration","scope":393,"src":"2725:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":385,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":388,"mutability":"mutable","name":"value","nameLocation":"2745:5:5","nodeType":"VariableDeclaration","scope":393,"src":"2737:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2710:41:5"},"returnParameters":{"id":392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":393,"src":"2770:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":390,"name":"bool","nodeType":"ElementaryTypeName","src":"2770:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2769:6:5"},"scope":394,"src":"2689:87:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":395,"src":"203:2575:5","usedErrors":[],"usedEvents":[328,337]}],"src":"106:2673:5"},"id":5},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Context":[1751],"ERC165":[2452],"ERC721":[1403],"IERC165":[2464],"IERC721":[1520],"IERC721Errors":[269],"IERC721Metadata":[1721],"IERC721Receiver":[1538],"Strings":[2006]},"id":1404,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":396,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:6"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1521,"src":"133:38:6","symbolAliases":[{"foreign":{"id":397,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"141:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1539,"src":"172:54:6","symbolAliases":[{"foreign":{"id":399,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"180:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":402,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1722,"src":"227:65:6","symbolAliases":[{"foreign":{"id":401,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"235:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":404,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1752,"src":"293:48:6","symbolAliases":[{"foreign":{"id":403,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"301:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":2007,"src":"342:48:6","symbolAliases":[{"foreign":{"id":405,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"350:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":409,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":2453,"src":"391:69:6","symbolAliases":[{"foreign":{"id":407,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"399:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":408,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2452,"src":"408:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":411,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":317,"src":"461:66:6","symbolAliases":[{"foreign":{"id":410,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":269,"src":"469:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":413,"name":"Context","nameLocations":["804:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":1751,"src":"804:7:6"},"id":414,"nodeType":"InheritanceSpecifier","src":"804:7:6"},{"baseName":{"id":415,"name":"ERC165","nameLocations":["813:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":2452,"src":"813:6:6"},"id":416,"nodeType":"InheritanceSpecifier","src":"813:6:6"},{"baseName":{"id":417,"name":"IERC721","nameLocations":["821:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":1520,"src":"821:7:6"},"id":418,"nodeType":"InheritanceSpecifier","src":"821:7:6"},{"baseName":{"id":419,"name":"IERC721Metadata","nameLocations":["830:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":1721,"src":"830:15:6"},"id":420,"nodeType":"InheritanceSpecifier","src":"830:15:6"},{"baseName":{"id":421,"name":"IERC721Errors","nameLocations":["847:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":269,"src":"847:13:6"},"id":422,"nodeType":"InheritanceSpecifier","src":"847:13:6"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":412,"nodeType":"StructuredDocumentation","src":"529:246:6","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":1403,"linearizedBaseContracts":[1403,269,1721,1520,2452,2464,1751],"name":"ERC721","nameLocation":"794:6:6","nodeType":"ContractDefinition","nodes":[{"global":false,"id":425,"libraryName":{"id":423,"name":"Strings","nameLocations":["873:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":2006,"src":"873:7:6"},"nodeType":"UsingForDirective","src":"867:26:6","typeName":{"id":424,"name":"uint256","nodeType":"ElementaryTypeName","src":"885:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":427,"mutability":"mutable","name":"_name","nameLocation":"932:5:6","nodeType":"VariableDeclaration","scope":1403,"src":"917:20:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":426,"name":"string","nodeType":"ElementaryTypeName","src":"917:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":429,"mutability":"mutable","name":"_symbol","nameLocation":"979:7:6","nodeType":"VariableDeclaration","scope":1403,"src":"964:22:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":428,"name":"string","nodeType":"ElementaryTypeName","src":"964:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":433,"mutability":"mutable","name":"_owners","nameLocation":"1037:7:6","nodeType":"VariableDeclaration","scope":1403,"src":"993:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":432,"keyName":"tokenId","keyNameLocation":"1009:7:6","keyType":{"id":430,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"993:35:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":431,"name":"address","nodeType":"ElementaryTypeName","src":"1020:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":437,"mutability":"mutable","name":"_balances","nameLocation":"1093:9:6","nodeType":"VariableDeclaration","scope":1403,"src":"1051:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":436,"keyName":"owner","keyNameLocation":"1067:5:6","keyType":{"id":434,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1051:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":441,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1153:15:6","nodeType":"VariableDeclaration","scope":1403,"src":"1109:59:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":440,"keyName":"tokenId","keyNameLocation":"1125:7:6","keyType":{"id":438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1109:35:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":439,"name":"address","nodeType":"ElementaryTypeName","src":"1136:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":447,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1243:18:6","nodeType":"VariableDeclaration","scope":1403,"src":"1175:86:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":446,"keyName":"owner","keyNameLocation":"1191:5:6","keyType":{"id":442,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1175:59:6","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":445,"keyName":"operator","keyNameLocation":"1216:8:6","keyType":{"id":443,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1200:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":444,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":463,"nodeType":"Block","src":"1437:57:6","statements":[{"expression":{"id":457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":455,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"1447:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":456,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"1455:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1447:13:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":458,"nodeType":"ExpressionStatement","src":"1447:13:6"},{"expression":{"id":461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":459,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"1470:7:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":460,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"1480:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1470:17:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":462,"nodeType":"ExpressionStatement","src":"1470:17:6"}]},"documentation":{"id":448,"nodeType":"StructuredDocumentation","src":"1268:108:6","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":464,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"mutability":"mutable","name":"name_","nameLocation":"1407:5:6","nodeType":"VariableDeclaration","scope":464,"src":"1393:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":449,"name":"string","nodeType":"ElementaryTypeName","src":"1393:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":452,"mutability":"mutable","name":"symbol_","nameLocation":"1428:7:6","nodeType":"VariableDeclaration","scope":464,"src":"1414:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":451,"name":"string","nodeType":"ElementaryTypeName","src":"1414:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1392:44:6"},"returnParameters":{"id":454,"nodeType":"ParameterList","parameters":[],"src":"1437:0:6"},"scope":1403,"src":"1381:113:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2451,2463],"body":{"id":494,"nodeType":"Block","src":"1669:192:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":475,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"1698:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":477,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"1718:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$1520_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$1520_$","typeString":"type(contract IERC721)"}],"id":476,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1713:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$1520","typeString":"type(contract IERC721)"}},"id":479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1727:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"1713:25:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1698:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":481,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"1754:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":483,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"1774:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$1721_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$1721_$","typeString":"type(contract IERC721Metadata)"}],"id":482,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1769:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$1721","typeString":"type(contract IERC721Metadata)"}},"id":485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1791:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"1769:33:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1754:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1698:104:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":490,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"1842:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":488,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1818:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$1403_$","typeString":"type(contract super ERC721)"}},"id":489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1824:17:6","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2451,"src":"1818:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1818:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1698:156:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":474,"id":493,"nodeType":"Return","src":"1679:175:6"}]},"documentation":{"id":465,"nodeType":"StructuredDocumentation","src":"1500:56:6","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":495,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1570:17:6","nodeType":"FunctionDefinition","overrides":{"id":471,"nodeType":"OverrideSpecifier","overrides":[{"id":469,"name":"ERC165","nameLocations":["1637:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":2452,"src":"1637:6:6"},{"id":470,"name":"IERC165","nameLocations":["1645:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"1645:7:6"}],"src":"1628:25:6"},"parameters":{"id":468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":467,"mutability":"mutable","name":"interfaceId","nameLocation":"1595:11:6","nodeType":"VariableDeclaration","scope":495,"src":"1588:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":466,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1588:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1587:20:6"},"returnParameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":495,"src":"1663:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":472,"name":"bool","nodeType":"ElementaryTypeName","src":"1663:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1662:6:6"},"scope":1403,"src":"1561:300:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1445],"body":{"id":522,"nodeType":"Block","src":"1992:136:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":503,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"2006:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2023:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2015:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":504,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:6","typeDescriptions":{}}},"id":507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":517,"nodeType":"IfStatement","src":"2002:87:6","trueBody":{"id":516,"nodeType":"Block","src":"2027:62:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2075:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":510,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:6","typeDescriptions":{}}},"id":513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":509,"name":"ERC721InvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"2048:18:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":515,"nodeType":"RevertStatement","src":"2041:37:6"}]}},{"expression":{"baseExpression":{"id":518,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"2105:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":520,"indexExpression":{"id":519,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"2115:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2105:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":502,"id":521,"nodeType":"Return","src":"2098:23:6"}]},"documentation":{"id":496,"nodeType":"StructuredDocumentation","src":"1867:48:6","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":523,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1929:9:6","nodeType":"FunctionDefinition","parameters":{"id":499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":498,"mutability":"mutable","name":"owner","nameLocation":"1947:5:6","nodeType":"VariableDeclaration","scope":523,"src":"1939:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":497,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:6"},"returnParameters":{"id":502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":523,"src":"1983:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":500,"name":"uint256","nodeType":"ElementaryTypeName","src":"1983:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1982:9:6"},"scope":1403,"src":"1920:208:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1453],"body":{"id":535,"nodeType":"Block","src":"2257:46:6","statements":[{"expression":{"arguments":[{"id":532,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":526,"src":"2288:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":531,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2274:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":530,"id":534,"nodeType":"Return","src":"2267:29:6"}]},"documentation":{"id":524,"nodeType":"StructuredDocumentation","src":"2134:46:6","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":536,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2194:7:6","nodeType":"FunctionDefinition","parameters":{"id":527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":526,"mutability":"mutable","name":"tokenId","nameLocation":"2210:7:6","nodeType":"VariableDeclaration","scope":536,"src":"2202:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":525,"name":"uint256","nodeType":"ElementaryTypeName","src":"2202:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2201:17:6"},"returnParameters":{"id":530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":536,"src":"2248:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":528,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2247:9:6"},"scope":1403,"src":"2185:118:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1706],"body":{"id":544,"nodeType":"Block","src":"2425:29:6","statements":[{"expression":{"id":542,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"2442:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":541,"id":543,"nodeType":"Return","src":"2435:12:6"}]},"documentation":{"id":537,"nodeType":"StructuredDocumentation","src":"2309:51:6","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":545,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2374:4:6","nodeType":"FunctionDefinition","parameters":{"id":538,"nodeType":"ParameterList","parameters":[],"src":"2378:2:6"},"returnParameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":545,"src":"2410:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":539,"name":"string","nodeType":"ElementaryTypeName","src":"2410:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2409:15:6"},"scope":1403,"src":"2365:89:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1712],"body":{"id":553,"nodeType":"Block","src":"2580:31:6","statements":[{"expression":{"id":551,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"2597:7:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":550,"id":552,"nodeType":"Return","src":"2590:14:6"}]},"documentation":{"id":546,"nodeType":"StructuredDocumentation","src":"2460:53:6","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":554,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2527:6:6","nodeType":"FunctionDefinition","parameters":{"id":547,"nodeType":"ParameterList","parameters":[],"src":"2533:2:6"},"returnParameters":{"id":550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":554,"src":"2565:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":548,"name":"string","nodeType":"ElementaryTypeName","src":"2565:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2564:15:6"},"scope":1403,"src":"2518:93:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1720],"body":{"id":589,"nodeType":"Block","src":"2756:176:6","statements":[{"expression":{"arguments":[{"id":563,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2780:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":562,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2766:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":565,"nodeType":"ExpressionStatement","src":"2766:22:6"},{"assignments":[567],"declarations":[{"constant":false,"id":567,"mutability":"mutable","name":"baseURI","nameLocation":"2813:7:6","nodeType":"VariableDeclaration","scope":589,"src":"2799:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":566,"name":"string","nodeType":"ElementaryTypeName","src":"2799:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":570,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":568,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"2823:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2823:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2799:34:6"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":573,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2856:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2850:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":571,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:6","typeDescriptions":{}}},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2865:6:6","memberName":"length","nodeType":"MemberAccess","src":"2850:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2874:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2850:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2923:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2850:75:6","trueExpression":{"arguments":[{"id":581,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2892:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":582,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2901:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2909:8:6","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"2901:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2901:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2878:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":578,"name":"string","nodeType":"ElementaryTypeName","src":"2878:6:6","typeDescriptions":{}}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2885:6:6","memberName":"concat","nodeType":"MemberAccess","src":"2878:13:6","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2878:42:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":561,"id":588,"nodeType":"Return","src":"2843:82:6"}]},"documentation":{"id":555,"nodeType":"StructuredDocumentation","src":"2617:55:6","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":590,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2686:8:6","nodeType":"FunctionDefinition","parameters":{"id":558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":557,"mutability":"mutable","name":"tokenId","nameLocation":"2703:7:6","nodeType":"VariableDeclaration","scope":590,"src":"2695:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":556,"name":"uint256","nodeType":"ElementaryTypeName","src":"2695:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2694:17:6"},"returnParameters":{"id":561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":590,"src":"2741:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":559,"name":"string","nodeType":"ElementaryTypeName","src":"2741:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2740:15:6"},"scope":1403,"src":"2677:255:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":598,"nodeType":"Block","src":"3240:26:6","statements":[{"expression":{"hexValue":"","id":596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3257:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":595,"id":597,"nodeType":"Return","src":"3250:9:6"}]},"documentation":{"id":591,"nodeType":"StructuredDocumentation","src":"2938:231:6","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":599,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3183:8:6","nodeType":"FunctionDefinition","parameters":{"id":592,"nodeType":"ParameterList","parameters":[],"src":"3191:2:6"},"returnParameters":{"id":595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":599,"src":"3225:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":593,"name":"string","nodeType":"ElementaryTypeName","src":"3225:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3224:15:6"},"scope":1403,"src":"3174:92:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1493],"body":{"id":614,"nodeType":"Block","src":"3384:52:6","statements":[{"expression":{"arguments":[{"id":608,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":602,"src":"3403:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":609,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":604,"src":"3407:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":610,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"3416:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":607,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1206,1272],"referencedDeclaration":1206,"src":"3394:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3394:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":613,"nodeType":"ExpressionStatement","src":"3394:35:6"}]},"documentation":{"id":600,"nodeType":"StructuredDocumentation","src":"3272:46:6","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":615,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3332:7:6","nodeType":"FunctionDefinition","parameters":{"id":605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":602,"mutability":"mutable","name":"to","nameLocation":"3348:2:6","nodeType":"VariableDeclaration","scope":615,"src":"3340:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":601,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":604,"mutability":"mutable","name":"tokenId","nameLocation":"3360:7:6","nodeType":"VariableDeclaration","scope":615,"src":"3352:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":603,"name":"uint256","nodeType":"ElementaryTypeName","src":"3352:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3339:29:6"},"returnParameters":{"id":606,"nodeType":"ParameterList","parameters":[],"src":"3384:0:6"},"scope":1403,"src":"3323:113:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1509],"body":{"id":631,"nodeType":"Block","src":"3573:78:6","statements":[{"expression":{"arguments":[{"id":624,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":618,"src":"3597:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":623,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3583:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":626,"nodeType":"ExpressionStatement","src":"3583:22:6"},{"expression":{"arguments":[{"id":628,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":618,"src":"3636:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":627,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"3623:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":622,"id":630,"nodeType":"Return","src":"3616:28:6"}]},"documentation":{"id":616,"nodeType":"StructuredDocumentation","src":"3442:50:6","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":632,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3506:11:6","nodeType":"FunctionDefinition","parameters":{"id":619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":618,"mutability":"mutable","name":"tokenId","nameLocation":"3526:7:6","nodeType":"VariableDeclaration","scope":632,"src":"3518:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3517:17:6"},"returnParameters":{"id":622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":632,"src":"3564:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":620,"name":"address","nodeType":"ElementaryTypeName","src":"3564:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3563:9:6"},"scope":1403,"src":"3497:154:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1501],"body":{"id":647,"nodeType":"Block","src":"3793:69:6","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":641,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"3822:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3822:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":643,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"3836:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":644,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"3846:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":640,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3803:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:52:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":646,"nodeType":"ExpressionStatement","src":"3803:52:6"}]},"documentation":{"id":633,"nodeType":"StructuredDocumentation","src":"3657:56:6","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":648,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3727:17:6","nodeType":"FunctionDefinition","parameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":635,"mutability":"mutable","name":"operator","nameLocation":"3753:8:6","nodeType":"VariableDeclaration","scope":648,"src":"3745:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":634,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":637,"mutability":"mutable","name":"approved","nameLocation":"3768:8:6","nodeType":"VariableDeclaration","scope":648,"src":"3763:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":636,"name":"bool","nodeType":"ElementaryTypeName","src":"3763:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3744:33:6"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[],"src":"3793:0:6"},"scope":1403,"src":"3718:144:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1519],"body":{"id":664,"nodeType":"Block","src":"4022:59:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":658,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"4039:18:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":660,"indexExpression":{"id":659,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"4058:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4039:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":662,"indexExpression":{"id":661,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"4065:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4039:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":657,"id":663,"nodeType":"Return","src":"4032:42:6"}]},"documentation":{"id":649,"nodeType":"StructuredDocumentation","src":"3868:55:6","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":665,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3937:16:6","nodeType":"FunctionDefinition","parameters":{"id":654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"owner","nameLocation":"3962:5:6","nodeType":"VariableDeclaration","scope":665,"src":"3954:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":650,"name":"address","nodeType":"ElementaryTypeName","src":"3954:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":653,"mutability":"mutable","name":"operator","nameLocation":"3977:8:6","nodeType":"VariableDeclaration","scope":665,"src":"3969:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":652,"name":"address","nodeType":"ElementaryTypeName","src":"3969:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3953:33:6"},"returnParameters":{"id":657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":665,"src":"4016:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":655,"name":"bool","nodeType":"ElementaryTypeName","src":"4016:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4015:6:6"},"scope":1403,"src":"3928:153:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1485],"body":{"id":710,"nodeType":"Block","src":"4223:498:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":675,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"4237:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4251:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4243:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":676,"name":"address","nodeType":"ElementaryTypeName","src":"4243:7:6","typeDescriptions":{}}},"id":679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4243:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4237:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":689,"nodeType":"IfStatement","src":"4233:87:6","trueBody":{"id":688,"nodeType":"Block","src":"4255:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4306:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4298:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":682,"name":"address","nodeType":"ElementaryTypeName","src":"4298:7:6","typeDescriptions":{}}},"id":685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4298:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":681,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"4276:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":687,"nodeType":"RevertStatement","src":"4269:40:6"}]}},{"assignments":[691],"declarations":[{"constant":false,"id":691,"mutability":"mutable","name":"previousOwner","nameLocation":"4546:13:6","nodeType":"VariableDeclaration","scope":710,"src":"4538:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":690,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":698,"initialValue":{"arguments":[{"id":693,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"4570:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":694,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"4574:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":695,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"4583:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":692,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"4562:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4562:34:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4538:58:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":699,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"4610:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":700,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"4627:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4610:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":709,"nodeType":"IfStatement","src":"4606:109:6","trueBody":{"id":708,"nodeType":"Block","src":"4633:82:6","statements":[{"errorCall":{"arguments":[{"id":703,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"4675:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":704,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"4681:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":705,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"4690:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":702,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":241,"src":"4654:20:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) pure"}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4654:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":707,"nodeType":"RevertStatement","src":"4647:57:6"}]}}]},"documentation":{"id":666,"nodeType":"StructuredDocumentation","src":"4087:51:6","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":711,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4152:12:6","nodeType":"FunctionDefinition","parameters":{"id":673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":668,"mutability":"mutable","name":"from","nameLocation":"4173:4:6","nodeType":"VariableDeclaration","scope":711,"src":"4165:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":667,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":670,"mutability":"mutable","name":"to","nameLocation":"4187:2:6","nodeType":"VariableDeclaration","scope":711,"src":"4179:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":669,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":672,"mutability":"mutable","name":"tokenId","nameLocation":"4199:7:6","nodeType":"VariableDeclaration","scope":711,"src":"4191:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":671,"name":"uint256","nodeType":"ElementaryTypeName","src":"4191:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4164:43:6"},"returnParameters":{"id":674,"nodeType":"ParameterList","parameters":[],"src":"4223:0:6"},"scope":1403,"src":"4143:578:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1475],"body":{"id":728,"nodeType":"Block","src":"4863:56:6","statements":[{"expression":{"arguments":[{"id":722,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"4890:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":723,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"4896:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":724,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"4900:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4909:2:6","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":721,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[729,755],"referencedDeclaration":755,"src":"4873:16:6","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":726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":727,"nodeType":"ExpressionStatement","src":"4873:39:6"}]},"documentation":{"id":712,"nodeType":"StructuredDocumentation","src":"4727:55:6","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":729,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4796:16:6","nodeType":"FunctionDefinition","parameters":{"id":719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":714,"mutability":"mutable","name":"from","nameLocation":"4821:4:6","nodeType":"VariableDeclaration","scope":729,"src":"4813:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":713,"name":"address","nodeType":"ElementaryTypeName","src":"4813:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"to","nameLocation":"4835:2:6","nodeType":"VariableDeclaration","scope":729,"src":"4827:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":715,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":718,"mutability":"mutable","name":"tokenId","nameLocation":"4847:7:6","nodeType":"VariableDeclaration","scope":729,"src":"4839:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":717,"name":"uint256","nodeType":"ElementaryTypeName","src":"4839:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4812:43:6"},"returnParameters":{"id":720,"nodeType":"ParameterList","parameters":[],"src":"4863:0:6"},"scope":1403,"src":"4787:132:6","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1465],"body":{"id":754,"nodeType":"Block","src":"5088:105:6","statements":[{"expression":{"arguments":[{"id":742,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"5111:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":743,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"5117:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":744,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"5121:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":741,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"5098:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5098:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":746,"nodeType":"ExpressionStatement","src":"5098:31:6"},{"expression":{"arguments":[{"id":748,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"5162:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":749,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"5168:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":750,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"5172:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":751,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"5181:4:6","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":747,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"5139:22:6","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":752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5139:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":753,"nodeType":"ExpressionStatement","src":"5139:47:6"}]},"documentation":{"id":730,"nodeType":"StructuredDocumentation","src":"4925:55:6","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":755,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4994:16:6","nodeType":"FunctionDefinition","parameters":{"id":739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"from","nameLocation":"5019:4:6","nodeType":"VariableDeclaration","scope":755,"src":"5011:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":731,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":734,"mutability":"mutable","name":"to","nameLocation":"5033:2:6","nodeType":"VariableDeclaration","scope":755,"src":"5025:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":733,"name":"address","nodeType":"ElementaryTypeName","src":"5025:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":736,"mutability":"mutable","name":"tokenId","nameLocation":"5045:7:6","nodeType":"VariableDeclaration","scope":755,"src":"5037:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":735,"name":"uint256","nodeType":"ElementaryTypeName","src":"5037:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":738,"mutability":"mutable","name":"data","nameLocation":"5067:4:6","nodeType":"VariableDeclaration","scope":755,"src":"5054:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":737,"name":"bytes","nodeType":"ElementaryTypeName","src":"5054:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5010:62:6"},"returnParameters":{"id":740,"nodeType":"ParameterList","parameters":[],"src":"5088:0:6"},"scope":1403,"src":"4985:208:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":767,"nodeType":"Block","src":"5782:40:6","statements":[{"expression":{"baseExpression":{"id":763,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"5799:7:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":765,"indexExpression":{"id":764,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"5807:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5799:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":762,"id":766,"nodeType":"Return","src":"5792:23:6"}]},"documentation":{"id":756,"nodeType":"StructuredDocumentation","src":"5199:503:6","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`."},"id":768,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"5716:8:6","nodeType":"FunctionDefinition","parameters":{"id":759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":758,"mutability":"mutable","name":"tokenId","nameLocation":"5733:7:6","nodeType":"VariableDeclaration","scope":768,"src":"5725:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":757,"name":"uint256","nodeType":"ElementaryTypeName","src":"5725:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5724:17:6"},"returnParameters":{"id":762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":768,"src":"5773:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":760,"name":"address","nodeType":"ElementaryTypeName","src":"5773:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5772:9:6"},"scope":1403,"src":"5707:115:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":780,"nodeType":"Block","src":"6017:48:6","statements":[{"expression":{"baseExpression":{"id":776,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"6034:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":778,"indexExpression":{"id":777,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":771,"src":"6050:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6034:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":775,"id":779,"nodeType":"Return","src":"6027:31:6"}]},"documentation":{"id":769,"nodeType":"StructuredDocumentation","src":"5828:105:6","text":" @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted."},"id":781,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"5947:12:6","nodeType":"FunctionDefinition","parameters":{"id":772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":771,"mutability":"mutable","name":"tokenId","nameLocation":"5968:7:6","nodeType":"VariableDeclaration","scope":781,"src":"5960:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":770,"name":"uint256","nodeType":"ElementaryTypeName","src":"5960:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5959:17:6"},"returnParameters":{"id":775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":781,"src":"6008:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":773,"name":"address","nodeType":"ElementaryTypeName","src":"6008:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6007:9:6"},"scope":1403,"src":"5938:127:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":816,"nodeType":"Block","src":"6485:163:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":793,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6514:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6533:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6525:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":794,"name":"address","nodeType":"ElementaryTypeName","src":"6525:7:6","typeDescriptions":{}}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6525:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6514:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":799,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":784,"src":"6552:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":800,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6561:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6552:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":803,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":784,"src":"6589:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":804,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6596:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":802,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"6572:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6552:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":808,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"6621:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":807,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"6608:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":810,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6633:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6608:32:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6552:88:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":813,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6551:90:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6514:127:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":792,"id":815,"nodeType":"Return","src":"6495:146:6"}]},"documentation":{"id":782,"nodeType":"StructuredDocumentation","src":"6071:300:6","text":" @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":817,"implemented":true,"kind":"function","modifiers":[],"name":"_isAuthorized","nameLocation":"6385:13:6","nodeType":"FunctionDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":784,"mutability":"mutable","name":"owner","nameLocation":"6407:5:6","nodeType":"VariableDeclaration","scope":817,"src":"6399:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":783,"name":"address","nodeType":"ElementaryTypeName","src":"6399:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":786,"mutability":"mutable","name":"spender","nameLocation":"6422:7:6","nodeType":"VariableDeclaration","scope":817,"src":"6414:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":785,"name":"address","nodeType":"ElementaryTypeName","src":"6414:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":788,"mutability":"mutable","name":"tokenId","nameLocation":"6439:7:6","nodeType":"VariableDeclaration","scope":817,"src":"6431:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":787,"name":"uint256","nodeType":"ElementaryTypeName","src":"6431:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6398:49:6"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":817,"src":"6479:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":790,"name":"bool","nodeType":"ElementaryTypeName","src":"6479:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6478:6:6"},"scope":1403,"src":"6376:272:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":853,"nodeType":"Block","src":"7179:271:6","statements":[{"condition":{"id":832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7193:39:6","subExpression":{"arguments":[{"id":828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"7208:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":829,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":822,"src":"7215:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":830,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"7224:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":827,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"7194:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) view returns (bool)"}},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7194:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":852,"nodeType":"IfStatement","src":"7189:255:6","trueBody":{"id":851,"nodeType":"Block","src":"7234:210:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":833,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"7252:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7269:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7261:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":834,"name":"address","nodeType":"ElementaryTypeName","src":"7261:7:6","typeDescriptions":{}}},"id":837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7252:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":849,"nodeType":"Block","src":"7350:84:6","statements":[{"errorCall":{"arguments":[{"id":845,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":822,"src":"7402:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":846,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"7411:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":844,"name":"ERC721InsufficientApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"7375:26:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7375:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":848,"nodeType":"RevertStatement","src":"7368:51:6"}]},"id":850,"nodeType":"IfStatement","src":"7248:186:6","trueBody":{"id":843,"nodeType":"Block","src":"7273:71:6","statements":[{"errorCall":{"arguments":[{"id":840,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"7321:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":839,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"7298:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7298:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":842,"nodeType":"RevertStatement","src":"7291:38:6"}]}}]}}]},"documentation":{"id":818,"nodeType":"StructuredDocumentation","src":"6654:423:6","text":" @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":854,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAuthorized","nameLocation":"7091:16:6","nodeType":"FunctionDefinition","parameters":{"id":825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"owner","nameLocation":"7116:5:6","nodeType":"VariableDeclaration","scope":854,"src":"7108:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":819,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":822,"mutability":"mutable","name":"spender","nameLocation":"7131:7:6","nodeType":"VariableDeclaration","scope":854,"src":"7123:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":821,"name":"address","nodeType":"ElementaryTypeName","src":"7123:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":824,"mutability":"mutable","name":"tokenId","nameLocation":"7148:7:6","nodeType":"VariableDeclaration","scope":854,"src":"7140:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":823,"name":"uint256","nodeType":"ElementaryTypeName","src":"7140:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7107:49:6"},"returnParameters":{"id":826,"nodeType":"ParameterList","parameters":[],"src":"7179:0:6"},"scope":1403,"src":"7082:368:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":869,"nodeType":"Block","src":"8167:78:6","statements":[{"id":868,"nodeType":"UncheckedBlock","src":"8177:62:6","statements":[{"expression":{"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":862,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"8201:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":864,"indexExpression":{"id":863,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":857,"src":"8211:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8201:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"8223:5:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8201:27:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":867,"nodeType":"ExpressionStatement","src":"8201:27:6"}]}]},"documentation":{"id":855,"nodeType":"StructuredDocumentation","src":"7456:631:6","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another."},"id":870,"implemented":true,"kind":"function","modifiers":[],"name":"_increaseBalance","nameLocation":"8101:16:6","nodeType":"FunctionDefinition","parameters":{"id":860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"account","nameLocation":"8126:7:6","nodeType":"VariableDeclaration","scope":870,"src":"8118:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":856,"name":"address","nodeType":"ElementaryTypeName","src":"8118:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":859,"mutability":"mutable","name":"value","nameLocation":"8143:5:6","nodeType":"VariableDeclaration","scope":870,"src":"8135:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":858,"name":"uint128","nodeType":"ElementaryTypeName","src":"8135:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8117:32:6"},"returnParameters":{"id":861,"nodeType":"ParameterList","parameters":[],"src":"8167:0:6"},"scope":1403,"src":"8092:153:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":959,"nodeType":"Block","src":"8933:700:6","statements":[{"assignments":[883],"declarations":[{"constant":false,"id":883,"mutability":"mutable","name":"from","nameLocation":"8951:4:6","nodeType":"VariableDeclaration","scope":959,"src":"8943:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":882,"name":"address","nodeType":"ElementaryTypeName","src":"8943:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":887,"initialValue":{"arguments":[{"id":885,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8967:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":884,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"8958:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8958:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8943:32:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":888,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"9035:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9043:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":889,"name":"address","nodeType":"ElementaryTypeName","src":"9043:7:6","typeDescriptions":{}}},"id":892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9035:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":901,"nodeType":"IfStatement","src":"9031:86:6","trueBody":{"id":900,"nodeType":"Block","src":"9055:62:6","statements":[{"expression":{"arguments":[{"id":895,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9086:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":896,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"9092:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":897,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9098:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":894,"name":"_checkAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"9069:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) view"}},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9069:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":899,"nodeType":"ExpressionStatement","src":"9069:37:6"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":902,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9161:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9177:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9169:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":903,"name":"address","nodeType":"ElementaryTypeName","src":"9169:7:6","typeDescriptions":{}}},"id":906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9169:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9161:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":929,"nodeType":"IfStatement","src":"9157:256:6","trueBody":{"id":928,"nodeType":"Block","src":"9181:232:6","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9294:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9286:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":909,"name":"address","nodeType":"ElementaryTypeName","src":"9286:7:6","typeDescriptions":{}}},"id":912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9286:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":913,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9298:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9315:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9307:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":914,"name":"address","nodeType":"ElementaryTypeName","src":"9307:7:6","typeDescriptions":{}}},"id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9319:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":908,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1206,1272],"referencedDeclaration":1272,"src":"9277:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9277:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":920,"nodeType":"ExpressionStatement","src":"9277:48:6"},{"id":927,"nodeType":"UncheckedBlock","src":"9340:63:6","statements":[{"expression":{"id":925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":921,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"9368:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":923,"indexExpression":{"id":922,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9378:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9368:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9387:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9368:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":926,"nodeType":"ExpressionStatement","src":"9368:20:6"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":930,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9427:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9441:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9433:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":931,"name":"address","nodeType":"ElementaryTypeName","src":"9433:7:6","typeDescriptions":{}}},"id":934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9433:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9427:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":944,"nodeType":"IfStatement","src":"9423:107:6","trueBody":{"id":943,"nodeType":"Block","src":"9445:85:6","statements":[{"id":942,"nodeType":"UncheckedBlock","src":"9459:61:6","statements":[{"expression":{"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":936,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"9487:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":938,"indexExpression":{"id":937,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9497:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9487:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9504:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9487:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":941,"nodeType":"ExpressionStatement","src":"9487:18:6"}]}]}},{"expression":{"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":945,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"9540:7:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":947,"indexExpression":{"id":946,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9548:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9540:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":948,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9559:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9540:21:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":950,"nodeType":"ExpressionStatement","src":"9540:21:6"},{"eventCall":{"arguments":[{"id":952,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9586:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":953,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9592:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":954,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9596:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":951,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"9577:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9577:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":956,"nodeType":"EmitStatement","src":"9572:32:6"},{"expression":{"id":957,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9622:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":881,"id":958,"nodeType":"Return","src":"9615:11:6"}]},"documentation":{"id":871,"nodeType":"StructuredDocumentation","src":"8251:582:6","text":" @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}."},"id":960,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8847:7:6","nodeType":"FunctionDefinition","parameters":{"id":878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":873,"mutability":"mutable","name":"to","nameLocation":"8863:2:6","nodeType":"VariableDeclaration","scope":960,"src":"8855:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":872,"name":"address","nodeType":"ElementaryTypeName","src":"8855:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"tokenId","nameLocation":"8875:7:6","nodeType":"VariableDeclaration","scope":960,"src":"8867:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":874,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"auth","nameLocation":"8892:4:6","nodeType":"VariableDeclaration","scope":960,"src":"8884:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":876,"name":"address","nodeType":"ElementaryTypeName","src":"8884:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8854:43:6"},"returnParameters":{"id":881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":960,"src":"8924:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":879,"name":"address","nodeType":"ElementaryTypeName","src":"8924:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8923:9:6"},"scope":1403,"src":"8838:795:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1009,"nodeType":"Block","src":"10008:274:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":968,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":963,"src":"10022:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10036:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10028:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":969,"name":"address","nodeType":"ElementaryTypeName","src":"10028:7:6","typeDescriptions":{}}},"id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10028:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10022:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":982,"nodeType":"IfStatement","src":"10018:87:6","trueBody":{"id":981,"nodeType":"Block","src":"10040:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10091:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10083:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":975,"name":"address","nodeType":"ElementaryTypeName","src":"10083:7:6","typeDescriptions":{}}},"id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10083:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":974,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"10061:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":980,"nodeType":"RevertStatement","src":"10054:40:6"}]}},{"assignments":[984],"declarations":[{"constant":false,"id":984,"mutability":"mutable","name":"previousOwner","nameLocation":"10122:13:6","nodeType":"VariableDeclaration","scope":1009,"src":"10114:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":983,"name":"address","nodeType":"ElementaryTypeName","src":"10114:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":993,"initialValue":{"arguments":[{"id":986,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":963,"src":"10146:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":987,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"10150:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":988,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:6","typeDescriptions":{}}},"id":991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":985,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"10138:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10138:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10114:56:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":994,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":984,"src":"10184:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10209:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10201:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"10201:7:6","typeDescriptions":{}}},"id":998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10201:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10184:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1008,"nodeType":"IfStatement","src":"10180:96:6","trueBody":{"id":1007,"nodeType":"Block","src":"10213:63:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10262:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10254:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1001,"name":"address","nodeType":"ElementaryTypeName","src":"10254:7:6","typeDescriptions":{}}},"id":1004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1000,"name":"ERC721InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"10234:19:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10234:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1006,"nodeType":"RevertStatement","src":"10227:38:6"}]}}]},"documentation":{"id":961,"nodeType":"StructuredDocumentation","src":"9639:311:6","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":1010,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9964:5:6","nodeType":"FunctionDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":963,"mutability":"mutable","name":"to","nameLocation":"9978:2:6","nodeType":"VariableDeclaration","scope":1010,"src":"9970:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":962,"name":"address","nodeType":"ElementaryTypeName","src":"9970:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":965,"mutability":"mutable","name":"tokenId","nameLocation":"9990:7:6","nodeType":"VariableDeclaration","scope":1010,"src":"9982:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":964,"name":"uint256","nodeType":"ElementaryTypeName","src":"9982:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9969:29:6"},"returnParameters":{"id":967,"nodeType":"ParameterList","parameters":[],"src":"10008:0:6"},"scope":1403,"src":"9955:327:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1024,"nodeType":"Block","src":"10690:43:6","statements":[{"expression":{"arguments":[{"id":1019,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"10710:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1020,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10714:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10723:2:6","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":1018,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1025,1051],"referencedDeclaration":1051,"src":"10700:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":1022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1023,"nodeType":"ExpressionStatement","src":"10700:26:6"}]},"documentation":{"id":1011,"nodeType":"StructuredDocumentation","src":"10288:340:6","text":" @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1025,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10642:9:6","nodeType":"FunctionDefinition","parameters":{"id":1016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"to","nameLocation":"10660:2:6","nodeType":"VariableDeclaration","scope":1025,"src":"10652:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1012,"name":"address","nodeType":"ElementaryTypeName","src":"10652:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1015,"mutability":"mutable","name":"tokenId","nameLocation":"10672:7:6","nodeType":"VariableDeclaration","scope":1025,"src":"10664:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1014,"name":"uint256","nodeType":"ElementaryTypeName","src":"10664:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10651:29:6"},"returnParameters":{"id":1017,"nodeType":"ParameterList","parameters":[],"src":"10690:0:6"},"scope":1403,"src":"10633:100:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1050,"nodeType":"Block","src":"11038:98:6","statements":[{"expression":{"arguments":[{"id":1036,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"11054:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1037,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"11058:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1035,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"11048:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11048:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"11048:18:6"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11107:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11099:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1041,"name":"address","nodeType":"ElementaryTypeName","src":"11099:7:6","typeDescriptions":{}}},"id":1044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11099:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1045,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"11111:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1046,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"11115:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1047,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"11124:4:6","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":1040,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"11076:22:6","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":1048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11076:53:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1049,"nodeType":"ExpressionStatement","src":"11076:53:6"}]},"documentation":{"id":1026,"nodeType":"StructuredDocumentation","src":"10739:210:6","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":1051,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10963:9:6","nodeType":"FunctionDefinition","parameters":{"id":1033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1028,"mutability":"mutable","name":"to","nameLocation":"10981:2:6","nodeType":"VariableDeclaration","scope":1051,"src":"10973:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1027,"name":"address","nodeType":"ElementaryTypeName","src":"10973:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1030,"mutability":"mutable","name":"tokenId","nameLocation":"10993:7:6","nodeType":"VariableDeclaration","scope":1051,"src":"10985:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1029,"name":"uint256","nodeType":"ElementaryTypeName","src":"10985:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1032,"mutability":"mutable","name":"data","nameLocation":"11015:4:6","nodeType":"VariableDeclaration","scope":1051,"src":"11002:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1031,"name":"bytes","nodeType":"ElementaryTypeName","src":"11002:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10972:48:6"},"returnParameters":{"id":1034,"nodeType":"ParameterList","parameters":[],"src":"11038:0:6"},"scope":1403,"src":"10954:182:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1083,"nodeType":"Block","src":"11511:186:6","statements":[{"assignments":[1058],"declarations":[{"constant":false,"id":1058,"mutability":"mutable","name":"previousOwner","nameLocation":"11529:13:6","nodeType":"VariableDeclaration","scope":1083,"src":"11521:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1057,"name":"address","nodeType":"ElementaryTypeName","src":"11521:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1070,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":1062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11561:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11553:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"11553:7:6","typeDescriptions":{}}},"id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11553:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1064,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"11565:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":1067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11582:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11574:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1065,"name":"address","nodeType":"ElementaryTypeName","src":"11574:7:6","typeDescriptions":{}}},"id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1059,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"11545:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11545:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11521:64:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1071,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"11599:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11624:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11616:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1072,"name":"address","nodeType":"ElementaryTypeName","src":"11616:7:6","typeDescriptions":{}}},"id":1075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11616:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11599:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1082,"nodeType":"IfStatement","src":"11595:96:6","trueBody":{"id":1081,"nodeType":"Block","src":"11628:63:6","statements":[{"errorCall":{"arguments":[{"id":1078,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"11672:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1077,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"11649:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11649:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1080,"nodeType":"RevertStatement","src":"11642:38:6"}]}}]},"documentation":{"id":1052,"nodeType":"StructuredDocumentation","src":"11142:315:6","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":1084,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"11471:5:6","nodeType":"FunctionDefinition","parameters":{"id":1055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1054,"mutability":"mutable","name":"tokenId","nameLocation":"11485:7:6","nodeType":"VariableDeclaration","scope":1084,"src":"11477:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1053,"name":"uint256","nodeType":"ElementaryTypeName","src":"11477:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11476:17:6"},"returnParameters":{"id":1056,"nodeType":"ParameterList","parameters":[],"src":"11511:0:6"},"scope":1403,"src":"11462:235:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1143,"nodeType":"Block","src":"12092:389:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1094,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"12106:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12120:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12112:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"12112:7:6","typeDescriptions":{}}},"id":1098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12112:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12106:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1108,"nodeType":"IfStatement","src":"12102:87:6","trueBody":{"id":1107,"nodeType":"Block","src":"12124:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12175:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12167:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1101,"name":"address","nodeType":"ElementaryTypeName","src":"12167:7:6","typeDescriptions":{}}},"id":1104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12167:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1100,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"12145:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12145:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1106,"nodeType":"RevertStatement","src":"12138:40:6"}]}},{"assignments":[1110],"declarations":[{"constant":false,"id":1110,"mutability":"mutable","name":"previousOwner","nameLocation":"12206:13:6","nodeType":"VariableDeclaration","scope":1143,"src":"12198:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"12198:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1119,"initialValue":{"arguments":[{"id":1112,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"12230:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1113,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"12234:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":1116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12251:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12243:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1114,"name":"address","nodeType":"ElementaryTypeName","src":"12243:7:6","typeDescriptions":{}}},"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1111,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"12222:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12222:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12198:56:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1120,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"12268:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12293:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12285:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1121,"name":"address","nodeType":"ElementaryTypeName","src":"12285:7:6","typeDescriptions":{}}},"id":1124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12285:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12268:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1131,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"12370:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1132,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"12387:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12370:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1141,"nodeType":"IfStatement","src":"12366:109:6","trueBody":{"id":1140,"nodeType":"Block","src":"12393:82:6","statements":[{"errorCall":{"arguments":[{"id":1135,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"12435:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1136,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"12441:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1137,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"12450:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1134,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":241,"src":"12414:20:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) pure"}},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12414:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1139,"nodeType":"RevertStatement","src":"12407:57:6"}]}},"id":1142,"nodeType":"IfStatement","src":"12264:211:6","trueBody":{"id":1130,"nodeType":"Block","src":"12297:63:6","statements":[{"errorCall":{"arguments":[{"id":1127,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"12341:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1126,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"12318:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12318:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1129,"nodeType":"RevertStatement","src":"12311:38:6"}]}}]},"documentation":{"id":1085,"nodeType":"StructuredDocumentation","src":"11703:313:6","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":1144,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"12030:9:6","nodeType":"FunctionDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1087,"mutability":"mutable","name":"from","nameLocation":"12048:4:6","nodeType":"VariableDeclaration","scope":1144,"src":"12040:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"to","nameLocation":"12062:2:6","nodeType":"VariableDeclaration","scope":1144,"src":"12054:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1088,"name":"address","nodeType":"ElementaryTypeName","src":"12054:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1091,"mutability":"mutable","name":"tokenId","nameLocation":"12074:7:6","nodeType":"VariableDeclaration","scope":1144,"src":"12066:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1090,"name":"uint256","nodeType":"ElementaryTypeName","src":"12066:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12039:43:6"},"returnParameters":{"id":1093,"nodeType":"ParameterList","parameters":[],"src":"12092:0:6"},"scope":1403,"src":"12021:460:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1161,"nodeType":"Block","src":"13489:53:6","statements":[{"expression":{"arguments":[{"id":1155,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"13513:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1156,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"13519:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1157,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1151,"src":"13523:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13532:2:6","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":1154,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[1162,1188],"referencedDeclaration":1188,"src":"13499:13:6","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":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13499:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1160,"nodeType":"ExpressionStatement","src":"13499:36:6"}]},"documentation":{"id":1145,"nodeType":"StructuredDocumentation","src":"12487:922:6","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1162,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13423:13:6","nodeType":"FunctionDefinition","parameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1147,"mutability":"mutable","name":"from","nameLocation":"13445:4:6","nodeType":"VariableDeclaration","scope":1162,"src":"13437:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1146,"name":"address","nodeType":"ElementaryTypeName","src":"13437:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1149,"mutability":"mutable","name":"to","nameLocation":"13459:2:6","nodeType":"VariableDeclaration","scope":1162,"src":"13451:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1148,"name":"address","nodeType":"ElementaryTypeName","src":"13451:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1151,"mutability":"mutable","name":"tokenId","nameLocation":"13471:7:6","nodeType":"VariableDeclaration","scope":1162,"src":"13463:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1150,"name":"uint256","nodeType":"ElementaryTypeName","src":"13463:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13436:43:6"},"returnParameters":{"id":1153,"nodeType":"ParameterList","parameters":[],"src":"13489:0:6"},"scope":1403,"src":"13414:128:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1187,"nodeType":"Block","src":"13881:102:6","statements":[{"expression":{"arguments":[{"id":1175,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"13901:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1176,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1167,"src":"13907:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1177,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1169,"src":"13911:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1174,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"13891:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13891:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1179,"nodeType":"ExpressionStatement","src":"13891:28:6"},{"expression":{"arguments":[{"id":1181,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"13952:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1182,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1167,"src":"13958:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1183,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1169,"src":"13962:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1184,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1171,"src":"13971:4:6","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":1180,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"13929:22:6","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":1185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13929:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1186,"nodeType":"ExpressionStatement","src":"13929:47:6"}]},"documentation":{"id":1163,"nodeType":"StructuredDocumentation","src":"13548:226:6","text":" @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":1188,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13788:13:6","nodeType":"FunctionDefinition","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"from","nameLocation":"13810:4:6","nodeType":"VariableDeclaration","scope":1188,"src":"13802:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1164,"name":"address","nodeType":"ElementaryTypeName","src":"13802:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1167,"mutability":"mutable","name":"to","nameLocation":"13824:2:6","nodeType":"VariableDeclaration","scope":1188,"src":"13816:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1166,"name":"address","nodeType":"ElementaryTypeName","src":"13816:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1169,"mutability":"mutable","name":"tokenId","nameLocation":"13836:7:6","nodeType":"VariableDeclaration","scope":1188,"src":"13828:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1168,"name":"uint256","nodeType":"ElementaryTypeName","src":"13828:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"data","nameLocation":"13858:4:6","nodeType":"VariableDeclaration","scope":1188,"src":"13845:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1170,"name":"bytes","nodeType":"ElementaryTypeName","src":"13845:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13801:62:6"},"returnParameters":{"id":1173,"nodeType":"ParameterList","parameters":[],"src":"13881:0:6"},"scope":1403,"src":"13779:204:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1205,"nodeType":"Block","src":"14496:50:6","statements":[{"expression":{"arguments":[{"id":1199,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1191,"src":"14515:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1200,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1193,"src":"14519:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1201,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"14528:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":1202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14534:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1198,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1206,1272],"referencedDeclaration":1272,"src":"14506:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":1203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14506:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1204,"nodeType":"ExpressionStatement","src":"14506:33:6"}]},"documentation":{"id":1189,"nodeType":"StructuredDocumentation","src":"13989:432:6","text":" @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":1206,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14435:8:6","nodeType":"FunctionDefinition","parameters":{"id":1196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1191,"mutability":"mutable","name":"to","nameLocation":"14452:2:6","nodeType":"VariableDeclaration","scope":1206,"src":"14444:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1190,"name":"address","nodeType":"ElementaryTypeName","src":"14444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1193,"mutability":"mutable","name":"tokenId","nameLocation":"14464:7:6","nodeType":"VariableDeclaration","scope":1206,"src":"14456:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1192,"name":"uint256","nodeType":"ElementaryTypeName","src":"14456:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1195,"mutability":"mutable","name":"auth","nameLocation":"14481:4:6","nodeType":"VariableDeclaration","scope":1206,"src":"14473:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1194,"name":"address","nodeType":"ElementaryTypeName","src":"14473:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14443:43:6"},"returnParameters":{"id":1197,"nodeType":"ParameterList","parameters":[],"src":"14496:0:6"},"scope":1403,"src":"14426:120:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1271,"nodeType":"Block","src":"14822:568:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1218,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1215,"src":"14888:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1219,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"14901:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14917:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14909:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"14909:7:6","typeDescriptions":{}}},"id":1223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14901:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14888:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1264,"nodeType":"IfStatement","src":"14884:460:6","trueBody":{"id":1263,"nodeType":"Block","src":"14921:423:6","statements":[{"assignments":[1227],"declarations":[{"constant":false,"id":1227,"mutability":"mutable","name":"owner","nameLocation":"14943:5:6","nodeType":"VariableDeclaration","scope":1263,"src":"14935:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1226,"name":"address","nodeType":"ElementaryTypeName","src":"14935:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1231,"initialValue":{"arguments":[{"id":1229,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"14965:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1228,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14951:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14951:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14935:38:6"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1232,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15101:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15117:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15109:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1233,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:6","typeDescriptions":{}}},"id":1236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15109:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15101:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"15123:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1239,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15132:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15123:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15101:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15140:30:6","subExpression":{"arguments":[{"id":1243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"15158:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1244,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15165:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1242,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"15141:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15141:29:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15101:69:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1253,"nodeType":"IfStatement","src":"15097:142:6","trueBody":{"id":1252,"nodeType":"Block","src":"15172:67:6","statements":[{"errorCall":{"arguments":[{"id":1249,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15219:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1248,"name":"ERC721InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"15197:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15197:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1251,"nodeType":"RevertStatement","src":"15190:34:6"}]}},{"condition":{"id":1254,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1215,"src":"15257:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1262,"nodeType":"IfStatement","src":"15253:81:6","trueBody":{"id":1261,"nodeType":"Block","src":"15268:66:6","statements":[{"eventCall":{"arguments":[{"id":1256,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"15300:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1257,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"15307:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1258,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"15311:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1255,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"15291:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15291:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1260,"nodeType":"EmitStatement","src":"15286:33:6"}]}}]}},{"expression":{"id":1269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1265,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"15354:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1267,"indexExpression":{"id":1266,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"15370:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15354:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1268,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"15381:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15354:29:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1270,"nodeType":"ExpressionStatement","src":"15354:29:6"}]},"documentation":{"id":1207,"nodeType":"StructuredDocumentation","src":"14552:171:6","text":" @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers."},"id":1272,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14737:8:6","nodeType":"FunctionDefinition","parameters":{"id":1216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1209,"mutability":"mutable","name":"to","nameLocation":"14754:2:6","nodeType":"VariableDeclaration","scope":1272,"src":"14746:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1208,"name":"address","nodeType":"ElementaryTypeName","src":"14746:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1211,"mutability":"mutable","name":"tokenId","nameLocation":"14766:7:6","nodeType":"VariableDeclaration","scope":1272,"src":"14758:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1210,"name":"uint256","nodeType":"ElementaryTypeName","src":"14758:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1213,"mutability":"mutable","name":"auth","nameLocation":"14783:4:6","nodeType":"VariableDeclaration","scope":1272,"src":"14775:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"14775:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1215,"mutability":"mutable","name":"emitEvent","nameLocation":"14794:9:6","nodeType":"VariableDeclaration","scope":1272,"src":"14789:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1214,"name":"bool","nodeType":"ElementaryTypeName","src":"14789:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14745:59:6"},"returnParameters":{"id":1217,"nodeType":"ParameterList","parameters":[],"src":"14822:0:6"},"scope":1403,"src":"14728:662:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1308,"nodeType":"Block","src":"15692:219:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1282,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15706:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15726:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15718:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1283,"name":"address","nodeType":"ElementaryTypeName","src":"15718:7:6","typeDescriptions":{}}},"id":1286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15718:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15706:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1293,"nodeType":"IfStatement","src":"15702:91:6","trueBody":{"id":1292,"nodeType":"Block","src":"15730:63:6","statements":[{"errorCall":{"arguments":[{"id":1289,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15773:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1288,"name":"ERC721InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"15751:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15751:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1291,"nodeType":"RevertStatement","src":"15744:38:6"}]}},{"expression":{"id":1300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1294,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"15802:18:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1297,"indexExpression":{"id":1295,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"15821:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15802:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1298,"indexExpression":{"id":1296,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15828:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15802:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1299,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"15840:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15802:46:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1301,"nodeType":"ExpressionStatement","src":"15802:46:6"},{"eventCall":{"arguments":[{"id":1303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"15878:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1304,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15885:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1305,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"15895:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1302,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1437,"src":"15863:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15863:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1307,"nodeType":"EmitStatement","src":"15858:46:6"}]},"documentation":{"id":1273,"nodeType":"StructuredDocumentation","src":"15396:198:6","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event."},"id":1309,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"15608:18:6","nodeType":"FunctionDefinition","parameters":{"id":1280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1275,"mutability":"mutable","name":"owner","nameLocation":"15635:5:6","nodeType":"VariableDeclaration","scope":1309,"src":"15627:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1274,"name":"address","nodeType":"ElementaryTypeName","src":"15627:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1277,"mutability":"mutable","name":"operator","nameLocation":"15650:8:6","nodeType":"VariableDeclaration","scope":1309,"src":"15642:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1276,"name":"address","nodeType":"ElementaryTypeName","src":"15642:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1279,"mutability":"mutable","name":"approved","nameLocation":"15665:8:6","nodeType":"VariableDeclaration","scope":1309,"src":"15660:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1278,"name":"bool","nodeType":"ElementaryTypeName","src":"15660:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15626:48:6"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[],"src":"15692:0:6"},"scope":1403,"src":"15599:312:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1337,"nodeType":"Block","src":"16218:169:6","statements":[{"assignments":[1318],"declarations":[{"constant":false,"id":1318,"mutability":"mutable","name":"owner","nameLocation":"16236:5:6","nodeType":"VariableDeclaration","scope":1337,"src":"16228:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1317,"name":"address","nodeType":"ElementaryTypeName","src":"16228:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1322,"initialValue":{"arguments":[{"id":1320,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"16253:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1319,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"16244:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16244:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16228:33:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1323,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"16275:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16292:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16284:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1324,"name":"address","nodeType":"ElementaryTypeName","src":"16284:7:6","typeDescriptions":{}}},"id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16275:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1334,"nodeType":"IfStatement","src":"16271:88:6","trueBody":{"id":1333,"nodeType":"Block","src":"16296:63:6","statements":[{"errorCall":{"arguments":[{"id":1330,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"16340:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1329,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"16317:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16317:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1332,"nodeType":"RevertStatement","src":"16310:38:6"}]}},{"expression":{"id":1335,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"16375:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1316,"id":1336,"nodeType":"Return","src":"16368:12:6"}]},"documentation":{"id":1310,"nodeType":"StructuredDocumentation","src":"15917:224:6","text":" @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}."},"id":1338,"implemented":true,"kind":"function","modifiers":[],"name":"_requireOwned","nameLocation":"16155:13:6","nodeType":"FunctionDefinition","parameters":{"id":1313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1312,"mutability":"mutable","name":"tokenId","nameLocation":"16177:7:6","nodeType":"VariableDeclaration","scope":1338,"src":"16169:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1311,"name":"uint256","nodeType":"ElementaryTypeName","src":"16169:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16168:17:6"},"returnParameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1338,"src":"16209:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1314,"name":"address","nodeType":"ElementaryTypeName","src":"16209:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16208:9:6"},"scope":1403,"src":"16146:241:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1401,"nodeType":"Block","src":"17028:680:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1350,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17042:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17045:4:6","memberName":"code","nodeType":"MemberAccess","src":"17042:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17050:6:6","memberName":"length","nodeType":"MemberAccess","src":"17042:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17059:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17042:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1400,"nodeType":"IfStatement","src":"17038:664:6","trueBody":{"id":1399,"nodeType":"Block","src":"17062:640:6","statements":[{"clauses":[{"block":{"id":1379,"nodeType":"Block","src":"17176:162:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1368,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"17198:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1369,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"17208:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$1538_$","typeString":"type(contract IERC721Receiver)"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17224:16:6","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1537,"src":"17208:32:6","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17241:8:6","memberName":"selector","nodeType":"MemberAccess","src":"17208:41:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"17198:51:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1378,"nodeType":"IfStatement","src":"17194:130:6","trueBody":{"id":1377,"nodeType":"Block","src":"17251:73:6","statements":[{"errorCall":{"arguments":[{"id":1374,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17302:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1373,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"17280:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17280:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1376,"nodeType":"RevertStatement","src":"17273:32:6"}]}}]},"errorName":"","id":1380,"nodeType":"TryCatchClause","parameters":{"id":1367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1366,"mutability":"mutable","name":"retval","nameLocation":"17168:6:6","nodeType":"VariableDeclaration","scope":1380,"src":"17161:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1365,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17161:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"17160:15:6"},"src":"17152:186:6"},{"block":{"id":1396,"nodeType":"Block","src":"17367:325:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1384,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1382,"src":"17389:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17396:6:6","memberName":"length","nodeType":"MemberAccess","src":"17389:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17406:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17389:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1394,"nodeType":"Block","src":"17488:190:6","statements":[{"AST":{"nodeType":"YulBlock","src":"17574:86:6","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17611:2:6","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"17615:6:6"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17607:3:6"},"nodeType":"YulFunctionCall","src":"17607:15:6"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"17630:6:6"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17624:5:6"},"nodeType":"YulFunctionCall","src":"17624:13:6"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17600:6:6"},"nodeType":"YulFunctionCall","src":"17600:38:6"},"nodeType":"YulExpressionStatement","src":"17600:38:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1382,"isOffset":false,"isSlot":false,"src":"17615:6:6","valueSize":1},{"declaration":1382,"isOffset":false,"isSlot":false,"src":"17630:6:6","valueSize":1}],"id":1393,"nodeType":"InlineAssembly","src":"17565:95:6"}]},"id":1395,"nodeType":"IfStatement","src":"17385:293:6","trueBody":{"id":1392,"nodeType":"Block","src":"17409:73:6","statements":[{"errorCall":{"arguments":[{"id":1389,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17460:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1388,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"17438:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17438:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1391,"nodeType":"RevertStatement","src":"17431:32:6"}]}}]},"errorName":"","id":1397,"nodeType":"TryCatchClause","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"mutability":"mutable","name":"reason","nameLocation":"17359:6:6","nodeType":"VariableDeclaration","scope":1397,"src":"17346:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1381,"name":"bytes","nodeType":"ElementaryTypeName","src":"17346:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17345:21:6"},"src":"17339:353:6"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1359,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"17117:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17117:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1361,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1341,"src":"17131:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1362,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"17137:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1363,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1347,"src":"17146:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1356,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17096:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1355,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"17080:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$1538_$","typeString":"type(contract IERC721Receiver)"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17080:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$1538","typeString":"contract IERC721Receiver"}},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17100:16:6","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1537,"src":"17080:36:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17080:71:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1398,"nodeType":"TryStatement","src":"17076:616:6"}]}}]},"documentation":{"id":1339,"nodeType":"StructuredDocumentation","src":"16393:528:6","text":" @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call"},"id":1402,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"16935:22:6","nodeType":"FunctionDefinition","parameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1341,"mutability":"mutable","name":"from","nameLocation":"16966:4:6","nodeType":"VariableDeclaration","scope":1402,"src":"16958:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1340,"name":"address","nodeType":"ElementaryTypeName","src":"16958:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"to","nameLocation":"16980:2:6","nodeType":"VariableDeclaration","scope":1402,"src":"16972:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1342,"name":"address","nodeType":"ElementaryTypeName","src":"16972:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"tokenId","nameLocation":"16992:7:6","nodeType":"VariableDeclaration","scope":1402,"src":"16984:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1344,"name":"uint256","nodeType":"ElementaryTypeName","src":"16984:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1347,"mutability":"mutable","name":"data","nameLocation":"17014:4:6","nodeType":"VariableDeclaration","scope":1402,"src":"17001:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1346,"name":"bytes","nodeType":"ElementaryTypeName","src":"17001:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16957:62:6"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[],"src":"17028:0:6"},"scope":1403,"src":"16926:782:6","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":1404,"src":"776:16934:6","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[1419,1428,1437]}],"src":"107:17604:6"},"id":6},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[2464],"IERC721":[1520]},"id":1521,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1405,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:7"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1521,"sourceUnit":2465,"src":"134:62:7","symbolAliases":[{"foreign":{"id":1406,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"142:7:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1409,"name":"IERC165","nameLocations":["287:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"287:7:7"},"id":1410,"nodeType":"InheritanceSpecifier","src":"287:7:7"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":1408,"nodeType":"StructuredDocumentation","src":"198:67:7","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":1520,"linearizedBaseContracts":[1520,2464],"name":"IERC721","nameLocation":"276:7:7","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"301:88:7","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1419,"name":"Transfer","nameLocation":"400:8:7","nodeType":"EventDefinition","parameters":{"id":1418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1413,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"425:4:7","nodeType":"VariableDeclaration","scope":1419,"src":"409:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1412,"name":"address","nodeType":"ElementaryTypeName","src":"409:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1415,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"447:2:7","nodeType":"VariableDeclaration","scope":1419,"src":"431:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1414,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1417,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"467:7:7","nodeType":"VariableDeclaration","scope":1419,"src":"451:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"451:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"408:67:7"},"src":"394:82:7"},{"anonymous":false,"documentation":{"id":1420,"nodeType":"StructuredDocumentation","src":"482:94:7","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":1428,"name":"Approval","nameLocation":"587:8:7","nodeType":"EventDefinition","parameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1422,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"612:5:7","nodeType":"VariableDeclaration","scope":1428,"src":"596:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1421,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1424,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"635:8:7","nodeType":"VariableDeclaration","scope":1428,"src":"619:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1423,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1426,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"661:7:7","nodeType":"VariableDeclaration","scope":1428,"src":"645:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1425,"name":"uint256","nodeType":"ElementaryTypeName","src":"645:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:74:7"},"src":"581:89:7"},{"anonymous":false,"documentation":{"id":1429,"nodeType":"StructuredDocumentation","src":"676:117:7","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1437,"name":"ApprovalForAll","nameLocation":"804:14:7","nodeType":"EventDefinition","parameters":{"id":1436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1431,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"835:5:7","nodeType":"VariableDeclaration","scope":1437,"src":"819:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1433,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"858:8:7","nodeType":"VariableDeclaration","scope":1437,"src":"842:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1432,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1435,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"873:8:7","nodeType":"VariableDeclaration","scope":1437,"src":"868:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1434,"name":"bool","nodeType":"ElementaryTypeName","src":"868:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"818:64:7"},"src":"798:85:7"},{"documentation":{"id":1438,"nodeType":"StructuredDocumentation","src":"889:76:7","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":1445,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"979:9:7","nodeType":"FunctionDefinition","parameters":{"id":1441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1440,"mutability":"mutable","name":"owner","nameLocation":"997:5:7","nodeType":"VariableDeclaration","scope":1445,"src":"989:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1439,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"988:15:7"},"returnParameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"balance","nameLocation":"1035:7:7","nodeType":"VariableDeclaration","scope":1445,"src":"1027:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1442,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1026:17:7"},"scope":1520,"src":"970:74:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1446,"nodeType":"StructuredDocumentation","src":"1050:131:7","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":1453,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1195:7:7","nodeType":"FunctionDefinition","parameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1448,"mutability":"mutable","name":"tokenId","nameLocation":"1211:7:7","nodeType":"VariableDeclaration","scope":1453,"src":"1203:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1203:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1202:17:7"},"returnParameters":{"id":1452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1451,"mutability":"mutable","name":"owner","nameLocation":"1251:5:7","nodeType":"VariableDeclaration","scope":1453,"src":"1243:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1450,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1242:15:7"},"scope":1520,"src":"1186:72:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1454,"nodeType":"StructuredDocumentation","src":"1264:565:7","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":1465,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1843:16:7","nodeType":"FunctionDefinition","parameters":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1456,"mutability":"mutable","name":"from","nameLocation":"1868:4:7","nodeType":"VariableDeclaration","scope":1465,"src":"1860:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1455,"name":"address","nodeType":"ElementaryTypeName","src":"1860:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1458,"mutability":"mutable","name":"to","nameLocation":"1882:2:7","nodeType":"VariableDeclaration","scope":1465,"src":"1874:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1457,"name":"address","nodeType":"ElementaryTypeName","src":"1874:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1460,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:7","nodeType":"VariableDeclaration","scope":1465,"src":"1886:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"data","nameLocation":"1918:4:7","nodeType":"VariableDeclaration","scope":1465,"src":"1903:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1461,"name":"bytes","nodeType":"ElementaryTypeName","src":"1903:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1859:64:7"},"returnParameters":{"id":1464,"nodeType":"ParameterList","parameters":[],"src":"1932:0:7"},"scope":1520,"src":"1834:99:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1466,"nodeType":"StructuredDocumentation","src":"1939:705:7","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":1475,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2658:16:7","nodeType":"FunctionDefinition","parameters":{"id":1473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1468,"mutability":"mutable","name":"from","nameLocation":"2683:4:7","nodeType":"VariableDeclaration","scope":1475,"src":"2675:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1467,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1470,"mutability":"mutable","name":"to","nameLocation":"2697:2:7","nodeType":"VariableDeclaration","scope":1475,"src":"2689:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1469,"name":"address","nodeType":"ElementaryTypeName","src":"2689:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1472,"mutability":"mutable","name":"tokenId","nameLocation":"2709:7:7","nodeType":"VariableDeclaration","scope":1475,"src":"2701:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1471,"name":"uint256","nodeType":"ElementaryTypeName","src":"2701:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2674:43:7"},"returnParameters":{"id":1474,"nodeType":"ParameterList","parameters":[],"src":"2726:0:7"},"scope":1520,"src":"2649:78:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1476,"nodeType":"StructuredDocumentation","src":"2733:732:7","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":1485,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3479:12:7","nodeType":"FunctionDefinition","parameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1478,"mutability":"mutable","name":"from","nameLocation":"3500:4:7","nodeType":"VariableDeclaration","scope":1485,"src":"3492:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1477,"name":"address","nodeType":"ElementaryTypeName","src":"3492:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1480,"mutability":"mutable","name":"to","nameLocation":"3514:2:7","nodeType":"VariableDeclaration","scope":1485,"src":"3506:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1479,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1482,"mutability":"mutable","name":"tokenId","nameLocation":"3526:7:7","nodeType":"VariableDeclaration","scope":1485,"src":"3518:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1481,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3491:43:7"},"returnParameters":{"id":1484,"nodeType":"ParameterList","parameters":[],"src":"3543:0:7"},"scope":1520,"src":"3470:74:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1486,"nodeType":"StructuredDocumentation","src":"3550:452:7","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":1493,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4016:7:7","nodeType":"FunctionDefinition","parameters":{"id":1491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1488,"mutability":"mutable","name":"to","nameLocation":"4032:2:7","nodeType":"VariableDeclaration","scope":1493,"src":"4024:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1487,"name":"address","nodeType":"ElementaryTypeName","src":"4024:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1490,"mutability":"mutable","name":"tokenId","nameLocation":"4044:7:7","nodeType":"VariableDeclaration","scope":1493,"src":"4036:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1489,"name":"uint256","nodeType":"ElementaryTypeName","src":"4036:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4023:29:7"},"returnParameters":{"id":1492,"nodeType":"ParameterList","parameters":[],"src":"4061:0:7"},"scope":1520,"src":"4007:55:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1494,"nodeType":"StructuredDocumentation","src":"4068:315:7","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":1501,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4397:17:7","nodeType":"FunctionDefinition","parameters":{"id":1499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1496,"mutability":"mutable","name":"operator","nameLocation":"4423:8:7","nodeType":"VariableDeclaration","scope":1501,"src":"4415:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1495,"name":"address","nodeType":"ElementaryTypeName","src":"4415:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1498,"mutability":"mutable","name":"approved","nameLocation":"4438:8:7","nodeType":"VariableDeclaration","scope":1501,"src":"4433:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1497,"name":"bool","nodeType":"ElementaryTypeName","src":"4433:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4414:33:7"},"returnParameters":{"id":1500,"nodeType":"ParameterList","parameters":[],"src":"4456:0:7"},"scope":1520,"src":"4388:69:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1502,"nodeType":"StructuredDocumentation","src":"4463:139:7","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":1509,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4616:11:7","nodeType":"FunctionDefinition","parameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"tokenId","nameLocation":"4636:7:7","nodeType":"VariableDeclaration","scope":1509,"src":"4628:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1503,"name":"uint256","nodeType":"ElementaryTypeName","src":"4628:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4627:17:7"},"returnParameters":{"id":1508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1507,"mutability":"mutable","name":"operator","nameLocation":"4676:8:7","nodeType":"VariableDeclaration","scope":1509,"src":"4668:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4667:18:7"},"scope":1520,"src":"4607:79:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1510,"nodeType":"StructuredDocumentation","src":"4692:138:7","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":1519,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4844:16:7","nodeType":"FunctionDefinition","parameters":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"owner","nameLocation":"4869:5:7","nodeType":"VariableDeclaration","scope":1519,"src":"4861:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1511,"name":"address","nodeType":"ElementaryTypeName","src":"4861:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"operator","nameLocation":"4884:8:7","nodeType":"VariableDeclaration","scope":1519,"src":"4876:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1513,"name":"address","nodeType":"ElementaryTypeName","src":"4876:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4860:33:7"},"returnParameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1519,"src":"4917:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1516,"name":"bool","nodeType":"ElementaryTypeName","src":"4917:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4916:6:7"},"scope":1520,"src":"4835:88:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1521,"src":"266:4659:7","usedErrors":[],"usedEvents":[1419,1428,1437]}],"src":"108:4818:7"},"id":7},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[1538]},"id":1539,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1522,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"116:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":1523,"nodeType":"StructuredDocumentation","src":"142:152:8","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":1538,"linearizedBaseContracts":[1538],"name":"IERC721Receiver","nameLocation":"305:15:8","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1524,"nodeType":"StructuredDocumentation","src":"327:500:8","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":1537,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"841:16:8","nodeType":"FunctionDefinition","parameters":{"id":1533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"operator","nameLocation":"875:8:8","nodeType":"VariableDeclaration","scope":1537,"src":"867:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1525,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1528,"mutability":"mutable","name":"from","nameLocation":"901:4:8","nodeType":"VariableDeclaration","scope":1537,"src":"893:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1527,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1530,"mutability":"mutable","name":"tokenId","nameLocation":"923:7:8","nodeType":"VariableDeclaration","scope":1537,"src":"915:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1529,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"data","nameLocation":"955:4:8","nodeType":"VariableDeclaration","scope":1537,"src":"940:19:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1531,"name":"bytes","nodeType":"ElementaryTypeName","src":"940:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"857:108:8"},"returnParameters":{"id":1536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1537,"src":"984:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1534,"name":"bytes4","nodeType":"ElementaryTypeName","src":"984:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"983:8:8"},"scope":1538,"src":"832:160:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1539,"src":"295:699:8","usedErrors":[],"usedEvents":[]}],"src":"116:879:8"},"id":8},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol","exportedSymbols":{"Context":[1751],"ERC721":[1403],"ERC721Burnable":[1567]},"id":1568,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1540,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"126:24:9"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":1542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1568,"sourceUnit":1404,"src":"152:37:9","symbolAliases":[{"foreign":{"id":1541,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"160:6:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../../utils/Context.sol","id":1544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1568,"sourceUnit":1752,"src":"190:51:9","symbolAliases":[{"foreign":{"id":1543,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"198:7:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1546,"name":"Context","nameLocations":["372:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":1751,"src":"372:7:9"},"id":1547,"nodeType":"InheritanceSpecifier","src":"372:7:9"},{"baseName":{"id":1548,"name":"ERC721","nameLocations":["381:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"381:6:9"},"id":1549,"nodeType":"InheritanceSpecifier","src":"381:6:9"}],"canonicalName":"ERC721Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1545,"nodeType":"StructuredDocumentation","src":"243:92:9","text":" @title ERC721 Burnable Token\n @dev ERC721 Token that can be burned (destroyed)."},"fullyImplemented":true,"id":1567,"linearizedBaseContracts":[1567,1403,269,1721,1520,2452,2464,1751],"name":"ERC721Burnable","nameLocation":"354:14:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":1565,"nodeType":"Block","src":"607:268:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"842:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"834:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1556,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:9","typeDescriptions":{}}},"id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"834:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1560,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1552,"src":"846:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1561,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"855:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1555,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"826:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1564,"nodeType":"ExpressionStatement","src":"826:42:9"}]},"documentation":{"id":1550,"nodeType":"StructuredDocumentation","src":"394:162:9","text":" @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator."},"functionSelector":"42966c68","id":1566,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"570:4:9","nodeType":"FunctionDefinition","parameters":{"id":1553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1552,"mutability":"mutable","name":"tokenId","nameLocation":"583:7:9","nodeType":"VariableDeclaration","scope":1566,"src":"575:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1551,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"574:17:9"},"returnParameters":{"id":1554,"nodeType":"ParameterList","parameters":[],"src":"607:0:9"},"scope":1567,"src":"561:314:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":1568,"src":"336:541:9","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[1419,1428,1437]}],"src":"126:752:9"},"id":9},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","exportedSymbols":{"ERC721":[1403],"ERC721URIStorage":[1693],"IERC165":[2464],"IERC4906":[175],"Strings":[2006]},"id":1694,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1569,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"128:24:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":1571,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":1404,"src":"154:37:10","symbolAliases":[{"foreign":{"id":1570,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"162:6:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../../utils/Strings.sol","id":1573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":2007,"src":"192:51:10","symbolAliases":[{"foreign":{"id":1572,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"200:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4906.sol","file":"../../../interfaces/IERC4906.sol","id":1575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":176,"src":"244:58:10","symbolAliases":[{"foreign":{"id":1574,"name":"IERC4906","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175,"src":"252:8:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","file":"../../../interfaces/IERC165.sol","id":1577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":152,"src":"303:56:10","symbolAliases":[{"foreign":{"id":1576,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"311:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1579,"name":"IERC4906","nameLocations":["469:8:10"],"nodeType":"IdentifierPath","referencedDeclaration":175,"src":"469:8:10"},"id":1580,"nodeType":"InheritanceSpecifier","src":"469:8:10"},{"baseName":{"id":1581,"name":"ERC721","nameLocations":["479:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"479:6:10"},"id":1582,"nodeType":"InheritanceSpecifier","src":"479:6:10"}],"canonicalName":"ERC721URIStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":1578,"nodeType":"StructuredDocumentation","src":"361:69:10","text":" @dev ERC721 token with storage based token URI management."},"fullyImplemented":true,"id":1693,"linearizedBaseContracts":[1693,1403,269,1721,175,1520,2452,2464,1751],"name":"ERC721URIStorage","nameLocation":"449:16:10","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1585,"libraryName":{"id":1583,"name":"Strings","nameLocations":["498:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":2006,"src":"498:7:10"},"nodeType":"UsingForDirective","src":"492:26:10","typeName":{"id":1584,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":1591,"mutability":"constant","name":"ERC4906_INTERFACE_ID","nameLocation":"730:20:10","nodeType":"VariableDeclaration","scope":1693,"src":"706:65:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1586,"name":"bytes4","nodeType":"ElementaryTypeName","src":"706:6:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"hexValue":"30783439303634393036","id":1589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"760:10:10","typeDescriptions":{"typeIdentifier":"t_rational_1225148678_by_1","typeString":"int_const 1225148678"},"value":"0x49064906"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1225148678_by_1","typeString":"int_const 1225148678"}],"id":1588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"753:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":1587,"name":"bytes4","nodeType":"ElementaryTypeName","src":"753:6:10","typeDescriptions":{}}},"id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"constant":false,"id":1595,"mutability":"mutable","name":"_tokenURIs","nameLocation":"860:10:10","nodeType":"VariableDeclaration","scope":1693,"src":"817:53:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":1594,"keyName":"tokenId","keyNameLocation":"833:7:10","keyType":{"id":1592,"name":"uint256","nodeType":"ElementaryTypeName","src":"825:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"817:34:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1593,"name":"string","nodeType":"ElementaryTypeName","src":"844:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[495,2463],"body":{"id":1615,"nodeType":"Block","src":"1045:99:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1606,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"1062:11:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1607,"name":"ERC4906_INTERFACE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"1077:20:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1062:35:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1611,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"1125:11:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1609,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1101:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$1693_$","typeString":"type(contract super ERC721URIStorage)"}},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1107:17:10","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":495,"src":"1101:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1062:75:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1605,"id":1614,"nodeType":"Return","src":"1055:82:10"}]},"documentation":{"id":1596,"nodeType":"StructuredDocumentation","src":"877:55:10","text":" @dev See {IERC165-supportsInterface}"},"functionSelector":"01ffc9a7","id":1616,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"946:17:10","nodeType":"FunctionDefinition","overrides":{"id":1602,"nodeType":"OverrideSpecifier","overrides":[{"id":1600,"name":"ERC721","nameLocations":["1013:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"1013:6:10"},{"id":1601,"name":"IERC165","nameLocations":["1021:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"1021:7:10"}],"src":"1004:25:10"},"parameters":{"id":1599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1598,"mutability":"mutable","name":"interfaceId","nameLocation":"971:11:10","nodeType":"VariableDeclaration","scope":1616,"src":"964:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1597,"name":"bytes4","nodeType":"ElementaryTypeName","src":"964:6:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"963:20:10"},"returnParameters":{"id":1605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1616,"src":"1039:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1603,"name":"bool","nodeType":"ElementaryTypeName","src":"1039:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1038:6:10"},"scope":1693,"src":"937:207:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[590],"body":{"id":1672,"nodeType":"Block","src":"1298:505:10","statements":[{"expression":{"arguments":[{"id":1626,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"1322:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1625,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"1308:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1308:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1628,"nodeType":"ExpressionStatement","src":"1308:22:10"},{"assignments":[1630],"declarations":[{"constant":false,"id":1630,"mutability":"mutable","name":"_tokenURI","nameLocation":"1355:9:10","nodeType":"VariableDeclaration","scope":1672,"src":"1341:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1629,"name":"string","nodeType":"ElementaryTypeName","src":"1341:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1634,"initialValue":{"baseExpression":{"id":1631,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"1367:10:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1633,"indexExpression":{"id":1632,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"1378:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1367:19:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1341:45:10"},{"assignments":[1636],"declarations":[{"constant":false,"id":1636,"mutability":"mutable","name":"base","nameLocation":"1410:4:10","nodeType":"VariableDeclaration","scope":1672,"src":"1396:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1635,"name":"string","nodeType":"ElementaryTypeName","src":"1396:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1637,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"1417:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1417:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1396:31:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1642,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1636,"src":"1506:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1500:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1640,"name":"bytes","nodeType":"ElementaryTypeName","src":"1500:5:10","typeDescriptions":{}}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:11:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1512:6:10","memberName":"length","nodeType":"MemberAccess","src":"1500:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1500:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1650,"nodeType":"IfStatement","src":"1496:70:10","trueBody":{"id":1649,"nodeType":"Block","src":"1525:41:10","statements":[{"expression":{"id":1647,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"1546:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1624,"id":1648,"nodeType":"Return","src":"1539:16:10"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1653,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"1671:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1665:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1651,"name":"bytes","nodeType":"ElementaryTypeName","src":"1665:5:10","typeDescriptions":{}}},"id":1654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1682:6:10","memberName":"length","nodeType":"MemberAccess","src":"1665:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1691:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1665:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1666,"nodeType":"IfStatement","src":"1661:95:10","trueBody":{"id":1665,"nodeType":"Block","src":"1694:62:10","statements":[{"expression":{"arguments":[{"id":1661,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1636,"src":"1729:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1662,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"1735:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1715:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1658,"name":"string","nodeType":"ElementaryTypeName","src":"1715:6:10","typeDescriptions":{}}},"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1722:6:10","memberName":"concat","nodeType":"MemberAccess","src":"1715:13:10","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1624,"id":1664,"nodeType":"Return","src":"1708:37:10"}]}},{"expression":{"arguments":[{"id":1669,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"1788:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1667,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1773:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$1693_$","typeString":"type(contract super ERC721URIStorage)"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1779:8:10","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":590,"src":"1773:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1773:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1624,"id":1671,"nodeType":"Return","src":"1766:30:10"}]},"documentation":{"id":1617,"nodeType":"StructuredDocumentation","src":"1150:55:10","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":1673,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1219:8:10","nodeType":"FunctionDefinition","overrides":{"id":1621,"nodeType":"OverrideSpecifier","overrides":[],"src":"1265:8:10"},"parameters":{"id":1620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1619,"mutability":"mutable","name":"tokenId","nameLocation":"1236:7:10","nodeType":"VariableDeclaration","scope":1673,"src":"1228:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1228:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1227:17:10"},"returnParameters":{"id":1624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1673,"src":"1283:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1622,"name":"string","nodeType":"ElementaryTypeName","src":"1283:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1282:15:10"},"scope":1693,"src":"1210:593:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1691,"nodeType":"Block","src":"2003:86:10","statements":[{"expression":{"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1681,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"2013:10:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1683,"indexExpression":{"id":1682,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"2024:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2013:19:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1684,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"2035:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2013:31:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1686,"nodeType":"ExpressionStatement","src":"2013:31:10"},{"eventCall":{"arguments":[{"id":1688,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"2074:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1687,"name":"MetadataUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":167,"src":"2059:14:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2059:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1690,"nodeType":"EmitStatement","src":"2054:28:10"}]},"documentation":{"id":1674,"nodeType":"StructuredDocumentation","src":"1809:108:10","text":" @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Emits {MetadataUpdate}."},"id":1692,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenURI","nameLocation":"1931:12:10","nodeType":"FunctionDefinition","parameters":{"id":1679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1676,"mutability":"mutable","name":"tokenId","nameLocation":"1952:7:10","nodeType":"VariableDeclaration","scope":1692,"src":"1944:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1675,"name":"uint256","nodeType":"ElementaryTypeName","src":"1944:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1678,"mutability":"mutable","name":"_tokenURI","nameLocation":"1975:9:10","nodeType":"VariableDeclaration","scope":1692,"src":"1961:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1677,"name":"string","nodeType":"ElementaryTypeName","src":"1961:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1943:42:10"},"returnParameters":{"id":1680,"nodeType":"ParameterList","parameters":[],"src":"2003:0:10"},"scope":1693,"src":"1922:167:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1694,"src":"431:1660:10","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[167,174,1419,1428,1437]}],"src":"128:1964:10"},"id":10},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC721":[1520],"IERC721Metadata":[1721]},"id":1722,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1695,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"127:24:11"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":1697,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1722,"sourceUnit":1521,"src":"153:39:11","symbolAliases":[{"foreign":{"id":1696,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"161:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1699,"name":"IERC721","nameLocations":["357:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":1520,"src":"357:7:11"},"id":1700,"nodeType":"InheritanceSpecifier","src":"357:7:11"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1698,"nodeType":"StructuredDocumentation","src":"194:133:11","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":1721,"linearizedBaseContracts":[1721,1520,2464],"name":"IERC721Metadata","nameLocation":"338:15:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1701,"nodeType":"StructuredDocumentation","src":"371:58:11","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":1706,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"443:4:11","nodeType":"FunctionDefinition","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[],"src":"447:2:11"},"returnParameters":{"id":1705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1706,"src":"473:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1703,"name":"string","nodeType":"ElementaryTypeName","src":"473:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"472:15:11"},"scope":1721,"src":"434:54:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1707,"nodeType":"StructuredDocumentation","src":"494:60:11","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":1712,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"568:6:11","nodeType":"FunctionDefinition","parameters":{"id":1708,"nodeType":"ParameterList","parameters":[],"src":"574:2:11"},"returnParameters":{"id":1711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"600:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1709,"name":"string","nodeType":"ElementaryTypeName","src":"600:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"599:15:11"},"scope":1721,"src":"559:56:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"621:90:11","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":1720,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"725:8:11","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"tokenId","nameLocation":"742:7:11","nodeType":"VariableDeclaration","scope":1720,"src":"734:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1714,"name":"uint256","nodeType":"ElementaryTypeName","src":"734:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"733:17:11"},"returnParameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1720,"src":"774:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1717,"name":"string","nodeType":"ElementaryTypeName","src":"774:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"773:15:11"},"scope":1721,"src":"716:73:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1722,"src":"328:463:11","usedErrors":[],"usedEvents":[1419,1428,1437]}],"src":"127:665:11"},"id":11},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[1751]},"id":1752,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1723,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:12"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1724,"nodeType":"StructuredDocumentation","src":"127:496:12","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":1751,"linearizedBaseContracts":[1751],"name":"Context","nameLocation":"642:7:12","nodeType":"ContractDefinition","nodes":[{"body":{"id":1732,"nodeType":"Block","src":"718:34:12","statements":[{"expression":{"expression":{"id":1729,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:12","memberName":"sender","nodeType":"MemberAccess","src":"735:10:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1728,"id":1731,"nodeType":"Return","src":"728:17:12"}]},"id":1733,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:12","nodeType":"FunctionDefinition","parameters":{"id":1725,"nodeType":"ParameterList","parameters":[],"src":"675:2:12"},"returnParameters":{"id":1728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1733,"src":"709:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1726,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:12"},"scope":1751,"src":"656:96:12","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1741,"nodeType":"Block","src":"825:32:12","statements":[{"expression":{"expression":{"id":1738,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:12","memberName":"data","nodeType":"MemberAccess","src":"842:8:12","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1737,"id":1740,"nodeType":"Return","src":"835:15:12"}]},"id":1742,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:12","nodeType":"FunctionDefinition","parameters":{"id":1734,"nodeType":"ParameterList","parameters":[],"src":"775:2:12"},"returnParameters":{"id":1737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1742,"src":"809:14:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1735,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:12"},"scope":1751,"src":"758:99:12","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1749,"nodeType":"Block","src":"935:25:12","statements":[{"expression":{"hexValue":"30","id":1747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1746,"id":1748,"nodeType":"Return","src":"945:8:12"}]},"id":1750,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:12","nodeType":"FunctionDefinition","parameters":{"id":1743,"nodeType":"ParameterList","parameters":[],"src":"892:2:12"},"returnParameters":{"id":1746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1750,"src":"926:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1744,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:12"},"scope":1751,"src":"863:97:12","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1752,"src":"624:338:12","usedErrors":[],"usedEvents":[]}],"src":"101:862:12"},"id":12},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[3518],"SignedMath":[3623],"Strings":[2006]},"id":2007,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1753,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:13"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2007,"sourceUnit":3519,"src":"127:37:13","symbolAliases":[{"foreign":{"id":1754,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"135:4:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":1757,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2007,"sourceUnit":3624,"src":"165:49:13","symbolAliases":[{"foreign":{"id":1756,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3623,"src":"173:10:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":1758,"nodeType":"StructuredDocumentation","src":"216:34:13","text":" @dev String operations."},"fullyImplemented":true,"id":2006,"linearizedBaseContracts":[2006],"name":"Strings","nameLocation":"259:7:13","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1761,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"298:10:13","nodeType":"VariableDeclaration","scope":2006,"src":"273:56:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1759,"name":"bytes16","nodeType":"ElementaryTypeName","src":"273:7:13","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":1760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":1764,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"358:14:13","nodeType":"VariableDeclaration","scope":2006,"src":"335:42:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1762,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375:2:13","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"documentation":{"id":1765,"nodeType":"StructuredDocumentation","src":"384:81:13","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":1771,"name":"StringsInsufficientHexLength","nameLocation":"476:28:13","nodeType":"ErrorDefinition","parameters":{"id":1770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"value","nameLocation":"513:5:13","nodeType":"VariableDeclaration","scope":1771,"src":"505:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1766,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1769,"mutability":"mutable","name":"length","nameLocation":"528:6:13","nodeType":"VariableDeclaration","scope":1771,"src":"520:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1768,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:31:13"},"src":"470:66:13"},{"body":{"id":1818,"nodeType":"Block","src":"708:627:13","statements":[{"id":1817,"nodeType":"UncheckedBlock","src":"718:611:13","statements":[{"assignments":[1780],"declarations":[{"constant":false,"id":1780,"mutability":"mutable","name":"length","nameLocation":"750:6:13","nodeType":"VariableDeclaration","scope":1817,"src":"742:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1779,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1787,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"770:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1781,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"759:4:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3518_$","typeString":"type(library Math)"}},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:5:13","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3338,"src":"759:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"759:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"742:38:13"},{"assignments":[1789],"declarations":[{"constant":false,"id":1789,"mutability":"mutable","name":"buffer","nameLocation":"808:6:13","nodeType":"VariableDeclaration","scope":1817,"src":"794:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1788,"name":"string","nodeType":"ElementaryTypeName","src":"794:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1794,"initialValue":{"arguments":[{"id":1792,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"828:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:10:13","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":1790,"name":"string","nodeType":"ElementaryTypeName","src":"821:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":1793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"794:41:13"},{"assignments":[1796],"declarations":[{"constant":false,"id":1796,"mutability":"mutable","name":"ptr","nameLocation":"857:3:13","nodeType":"VariableDeclaration","scope":1817,"src":"849:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1795,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1797,"nodeType":"VariableDeclarationStatement","src":"849:11:13"},{"AST":{"nodeType":"YulBlock","src":"930:67:13","statements":[{"nodeType":"YulAssignment","src":"948:35:13","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"959:6:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"971:2:13","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"975:6:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:13"},"nodeType":"YulFunctionCall","src":"967:15:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"955:3:13"},"nodeType":"YulFunctionCall","src":"955:28:13"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"948:3:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1789,"isOffset":false,"isSlot":false,"src":"959:6:13","valueSize":1},{"declaration":1780,"isOffset":false,"isSlot":false,"src":"975:6:13","valueSize":1},{"declaration":1796,"isOffset":false,"isSlot":false,"src":"948:3:13","valueSize":1}],"id":1798,"nodeType":"InlineAssembly","src":"921:76:13"},{"body":{"id":1813,"nodeType":"Block","src":"1023:269:13","statements":[{"expression":{"id":1801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1041:5:13","subExpression":{"id":1800,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"1041:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1802,"nodeType":"ExpressionStatement","src":"1041:5:13"},{"AST":{"nodeType":"YulBlock","src":"1124:86:13","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1154:3:13"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1168:5:13"},{"kind":"number","nodeType":"YulLiteral","src":"1175:2:13","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1164:3:13"},"nodeType":"YulFunctionCall","src":"1164:14:13"},{"name":"HEX_DIGITS","nodeType":"YulIdentifier","src":"1180:10:13"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1159:4:13"},"nodeType":"YulFunctionCall","src":"1159:32:13"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1146:7:13"},"nodeType":"YulFunctionCall","src":"1146:46:13"},"nodeType":"YulExpressionStatement","src":"1146:46:13"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1761,"isOffset":false,"isSlot":false,"src":"1180:10:13","valueSize":1},{"declaration":1796,"isOffset":false,"isSlot":false,"src":"1154:3:13","valueSize":1},{"declaration":1774,"isOffset":false,"isSlot":false,"src":"1168:5:13","valueSize":1}],"id":1803,"nodeType":"InlineAssembly","src":"1115:95:13"},{"expression":{"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"1227:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1227:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1807,"nodeType":"ExpressionStatement","src":"1227:11:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"1260:5:13","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":"1269:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1260:10:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1812,"nodeType":"IfStatement","src":"1256:21:13","trueBody":{"id":1811,"nodeType":"Break","src":"1272:5:13"}}]},"condition":{"hexValue":"74727565","id":1799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1017:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1814,"nodeType":"WhileStatement","src":"1010:282:13"},{"expression":{"id":1815,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1789,"src":"1312:6:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1778,"id":1816,"nodeType":"Return","src":"1305:13:13"}]}]},"documentation":{"id":1772,"nodeType":"StructuredDocumentation","src":"542:90:13","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":1819,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"646:8:13","nodeType":"FunctionDefinition","parameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1774,"mutability":"mutable","name":"value","nameLocation":"663:5:13","nodeType":"VariableDeclaration","scope":1819,"src":"655:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1773,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:15:13"},"returnParameters":{"id":1778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1819,"src":"693:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1776,"name":"string","nodeType":"ElementaryTypeName","src":"693:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"692:15:13"},"scope":2006,"src":"637:698:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1844,"nodeType":"Block","src":"1511:92:13","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1542:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1550:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1542:9:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1560:2:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1542:20:13","trueExpression":{"hexValue":"2d","id":1833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1554:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":1839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1588:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1837,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3623,"src":"1573:10:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3623_$","typeString":"type(library SignedMath)"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:3:13","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3622,"src":"1573:14:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:21:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1836,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"1564:8:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1827,"name":"string","nodeType":"ElementaryTypeName","src":"1528:6:13","typeDescriptions":{}}},"id":1829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:6:13","memberName":"concat","nodeType":"MemberAccess","src":"1528:13:13","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1826,"id":1843,"nodeType":"Return","src":"1521:75:13"}]},"documentation":{"id":1820,"nodeType":"StructuredDocumentation","src":"1341:89:13","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":1845,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1444:14:13","nodeType":"FunctionDefinition","parameters":{"id":1823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1822,"mutability":"mutable","name":"value","nameLocation":"1466:5:13","nodeType":"VariableDeclaration","scope":1845,"src":"1459:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1821,"name":"int256","nodeType":"ElementaryTypeName","src":"1459:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1458:14:13"},"returnParameters":{"id":1826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1845,"src":"1496:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1824,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1495:15:13"},"scope":2006,"src":"1435:168:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1864,"nodeType":"Block","src":"1782:100:13","statements":[{"id":1863,"nodeType":"UncheckedBlock","src":"1792:84:13","statements":[{"expression":{"arguments":[{"id":1854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"1835:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"1854:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1855,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"1842:4:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3518_$","typeString":"type(library Math)"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1847:6:13","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3460,"src":"1842:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1842:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1853,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1865,1948,1968],"referencedDeclaration":1948,"src":"1823:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1823:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1852,"id":1862,"nodeType":"Return","src":"1816:49:13"}]}]},"documentation":{"id":1846,"nodeType":"StructuredDocumentation","src":"1609:94:13","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":1865,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1717:11:13","nodeType":"FunctionDefinition","parameters":{"id":1849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"value","nameLocation":"1737:5:13","nodeType":"VariableDeclaration","scope":1865,"src":"1729:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1847,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1728:15:13"},"returnParameters":{"id":1852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1865,"src":"1767:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1850,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1766:15:13"},"scope":2006,"src":"1708:174:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1947,"nodeType":"Block","src":"2095:435:13","statements":[{"assignments":[1876],"declarations":[{"constant":false,"id":1876,"mutability":"mutable","name":"localValue","nameLocation":"2113:10:13","nodeType":"VariableDeclaration","scope":1947,"src":"2105:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1875,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1878,"initialValue":{"id":1877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"2126:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2105:26:13"},{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"buffer","nameLocation":"2154:6:13","nodeType":"VariableDeclaration","scope":1947,"src":"2141:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1879,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1889,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2173:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1884,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"2177:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2173:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2186:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2173:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2163:9:13","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1881,"name":"bytes","nodeType":"ElementaryTypeName","src":"2167:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:25:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2141:47:13"},{"expression":{"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1890,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2198:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1892,"indexExpression":{"hexValue":"30","id":1891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2205:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2198:9:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2210:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2198:15:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1895,"nodeType":"ExpressionStatement","src":"2198:15:13"},{"expression":{"id":1900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1896,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2223:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1898,"indexExpression":{"hexValue":"31","id":1897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2230:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2223:9:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":1899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2235:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2223:15:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1901,"nodeType":"ExpressionStatement","src":"2223:15:13"},{"body":{"id":1930,"nodeType":"Block","src":"2293:95:13","statements":[{"expression":{"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1916,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2307:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1918,"indexExpression":{"id":1917,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2314:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2307:9:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1919,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"2319:10:13","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1923,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1920,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1876,"src":"2330:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2343:3:13","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2330:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2319:28:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2307:40:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1925,"nodeType":"ExpressionStatement","src":"2307:40:13"},{"expression":{"id":1928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1926,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1876,"src":"2361:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2376:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2361:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1929,"nodeType":"ExpressionStatement","src":"2361:16:13"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2281:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2281:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1931,"initializationExpression":{"assignments":[1903],"declarations":[{"constant":false,"id":1903,"mutability":"mutable","name":"i","nameLocation":"2261:1:13","nodeType":"VariableDeclaration","scope":1931,"src":"2253:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1902,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1909,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1905,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"2269:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2265:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2278:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2265:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2253:26:13"},"loopExpression":{"expression":{"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2288:3:13","subExpression":{"id":1913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2290:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1915,"nodeType":"ExpressionStatement","src":"2288:3:13"},"nodeType":"ForStatement","src":"2248:140:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1932,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1876,"src":"2401:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2401:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1941,"nodeType":"IfStatement","src":"2397:96:13","trueBody":{"id":1940,"nodeType":"Block","src":"2418:75:13","statements":[{"errorCall":{"arguments":[{"id":1936,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"2468:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1937,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"2475:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1935,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"2439:28:13","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2439:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1939,"nodeType":"RevertStatement","src":"2432:50:13"}]}},{"expression":{"arguments":[{"id":1944,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2516:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1942,"name":"string","nodeType":"ElementaryTypeName","src":"2509:6:13","typeDescriptions":{}}},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1874,"id":1946,"nodeType":"Return","src":"2502:21:13"}]},"documentation":{"id":1866,"nodeType":"StructuredDocumentation","src":"1888:112:13","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":1948,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2014:11:13","nodeType":"FunctionDefinition","parameters":{"id":1871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1868,"mutability":"mutable","name":"value","nameLocation":"2034:5:13","nodeType":"VariableDeclaration","scope":1948,"src":"2026:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"length","nameLocation":"2049:6:13","nodeType":"VariableDeclaration","scope":1948,"src":"2041:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2041:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2025:31:13"},"returnParameters":{"id":1874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1873,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1948,"src":"2080:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1872,"name":"string","nodeType":"ElementaryTypeName","src":"2080:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2079:15:13"},"scope":2006,"src":"2005:525:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1967,"nodeType":"Block","src":"2762:75:13","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1961,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"2807:4:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2799:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1959,"name":"uint160","nodeType":"ElementaryTypeName","src":"2799:7:13","typeDescriptions":{}}},"id":1962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1957,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:13","typeDescriptions":{}}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1964,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"2815:14:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1956,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1865,1948,1968],"referencedDeclaration":1948,"src":"2779:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1955,"id":1966,"nodeType":"Return","src":"2772:58:13"}]},"documentation":{"id":1949,"nodeType":"StructuredDocumentation","src":"2536:148:13","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":1968,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2698:11:13","nodeType":"FunctionDefinition","parameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1951,"mutability":"mutable","name":"addr","nameLocation":"2718:4:13","nodeType":"VariableDeclaration","scope":1968,"src":"2710:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1950,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2709:14:13"},"returnParameters":{"id":1955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1968,"src":"2747:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1953,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2746:15:13"},"scope":2006,"src":"2689:148:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2004,"nodeType":"Block","src":"2992:104:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1980,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"3015:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1978,"name":"bytes","nodeType":"ElementaryTypeName","src":"3009:5:13","typeDescriptions":{}}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3018:6:13","memberName":"length","nodeType":"MemberAccess","src":"3009:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1985,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"3034:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3028:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1983,"name":"bytes","nodeType":"ElementaryTypeName","src":"3028:5:13","typeDescriptions":{}}},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3028:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:13","memberName":"length","nodeType":"MemberAccess","src":"3028:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3009:34:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1992,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"3063:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3057:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1990,"name":"bytes","nodeType":"ElementaryTypeName","src":"3057:5:13","typeDescriptions":{}}},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1989,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3047:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":1998,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"3086:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1996,"name":"bytes","nodeType":"ElementaryTypeName","src":"3080:5:13","typeDescriptions":{}}},"id":1999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1995,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3070:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3047:42:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3009:80:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1977,"id":2003,"nodeType":"Return","src":"3002:87:13"}]},"documentation":{"id":1969,"nodeType":"StructuredDocumentation","src":"2843:66:13","text":" @dev Returns true if the two strings are equal."},"id":2005,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2923:5:13","nodeType":"FunctionDefinition","parameters":{"id":1974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1971,"mutability":"mutable","name":"a","nameLocation":"2943:1:13","nodeType":"VariableDeclaration","scope":2005,"src":"2929:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1970,"name":"string","nodeType":"ElementaryTypeName","src":"2929:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1973,"mutability":"mutable","name":"b","nameLocation":"2960:1:13","nodeType":"VariableDeclaration","scope":2005,"src":"2946:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1972,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2928:34:13"},"returnParameters":{"id":1977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2005,"src":"2986:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1975,"name":"bool","nodeType":"ElementaryTypeName","src":"2986:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2985:6:13"},"scope":2006,"src":"2914:182:13","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2007,"src":"251:2847:13","usedErrors":[1771],"usedEvents":[]}],"src":"101:2998:13"},"id":13},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[2354]},"id":2355,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2008,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:14"},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":2009,"nodeType":"StructuredDocumentation","src":"138:205:14","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":2354,"linearizedBaseContracts":[2354],"name":"ECDSA","nameLocation":"352:5:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":2014,"members":[{"id":2010,"name":"NoError","nameLocation":"392:7:14","nodeType":"EnumValue","src":"392:7:14"},{"id":2011,"name":"InvalidSignature","nameLocation":"409:16:14","nodeType":"EnumValue","src":"409:16:14"},{"id":2012,"name":"InvalidSignatureLength","nameLocation":"435:22:14","nodeType":"EnumValue","src":"435:22:14"},{"id":2013,"name":"InvalidSignatureS","nameLocation":"467:17:14","nodeType":"EnumValue","src":"467:17:14"}],"name":"RecoverError","nameLocation":"369:12:14","nodeType":"EnumDefinition","src":"364:126:14"},{"documentation":{"id":2015,"nodeType":"StructuredDocumentation","src":"496:63:14","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","id":2017,"name":"ECDSAInvalidSignature","nameLocation":"570:21:14","nodeType":"ErrorDefinition","parameters":{"id":2016,"nodeType":"ParameterList","parameters":[],"src":"591:2:14"},"src":"564:30:14"},{"documentation":{"id":2018,"nodeType":"StructuredDocumentation","src":"600:60:14","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","id":2022,"name":"ECDSAInvalidSignatureLength","nameLocation":"671:27:14","nodeType":"ErrorDefinition","parameters":{"id":2021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2020,"mutability":"mutable","name":"length","nameLocation":"707:6:14","nodeType":"VariableDeclaration","scope":2022,"src":"699:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:16:14"},"src":"665:50:14"},{"documentation":{"id":2023,"nodeType":"StructuredDocumentation","src":"721:85:14","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","id":2027,"name":"ECDSAInvalidSignatureS","nameLocation":"817:22:14","nodeType":"ErrorDefinition","parameters":{"id":2026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2025,"mutability":"mutable","name":"s","nameLocation":"848:1:14","nodeType":"VariableDeclaration","scope":2027,"src":"840:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"840:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"839:11:14"},"src":"811:40:14"},{"body":{"id":2079,"nodeType":"Block","src":"2242:653:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2042,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2256:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:6:14","memberName":"length","nodeType":"MemberAccess","src":"2256:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2276:2:14","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2256:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2077,"nodeType":"Block","src":"2781:108:14","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2811:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2803:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2064,"name":"address","nodeType":"ElementaryTypeName","src":"2803:7:14","typeDescriptions":{}}},"id":2067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2068,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"2815:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2828:22:14","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":2012,"src":"2815:35:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":2072,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2860:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2870:6:14","memberName":"length","nodeType":"MemberAccess","src":"2860:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2852:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2852:7:14","typeDescriptions":{}}},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2802:76:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2041,"id":2076,"nodeType":"Return","src":"2795:83:14"}]},"id":2078,"nodeType":"IfStatement","src":"2252:637:14","trueBody":{"id":2063,"nodeType":"Block","src":"2280:495:14","statements":[{"assignments":[2047],"declarations":[{"constant":false,"id":2047,"mutability":"mutable","name":"r","nameLocation":"2302:1:14","nodeType":"VariableDeclaration","scope":2063,"src":"2294:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2294:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2048,"nodeType":"VariableDeclarationStatement","src":"2294:9:14"},{"assignments":[2050],"declarations":[{"constant":false,"id":2050,"mutability":"mutable","name":"s","nameLocation":"2325:1:14","nodeType":"VariableDeclaration","scope":2063,"src":"2317:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2317:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2051,"nodeType":"VariableDeclarationStatement","src":"2317:9:14"},{"assignments":[2053],"declarations":[{"constant":false,"id":2053,"mutability":"mutable","name":"v","nameLocation":"2346:1:14","nodeType":"VariableDeclaration","scope":2063,"src":"2340:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2052,"name":"uint8","nodeType":"ElementaryTypeName","src":"2340:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2054,"nodeType":"VariableDeclarationStatement","src":"2340:7:14"},{"AST":{"nodeType":"YulBlock","src":"2548:171:14","statements":[{"nodeType":"YulAssignment","src":"2566:32:14","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2581:9:14"},{"kind":"number","nodeType":"YulLiteral","src":"2592:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:14"},"nodeType":"YulFunctionCall","src":"2577:20:14"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2571:5:14"},"nodeType":"YulFunctionCall","src":"2571:27:14"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2566:1:14"}]},{"nodeType":"YulAssignment","src":"2615:32:14","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2630:9:14"},{"kind":"number","nodeType":"YulLiteral","src":"2641:4:14","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2626:3:14"},"nodeType":"YulFunctionCall","src":"2626:20:14"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2620:5:14"},"nodeType":"YulFunctionCall","src":"2620:27:14"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2615:1:14"}]},{"nodeType":"YulAssignment","src":"2664:41:14","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2674:1:14","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2687:9:14"},{"kind":"number","nodeType":"YulLiteral","src":"2698:4:14","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2683:3:14"},"nodeType":"YulFunctionCall","src":"2683:20:14"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2677:5:14"},"nodeType":"YulFunctionCall","src":"2677:27:14"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2669:4:14"},"nodeType":"YulFunctionCall","src":"2669:36:14"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2664:1:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2047,"isOffset":false,"isSlot":false,"src":"2566:1:14","valueSize":1},{"declaration":2050,"isOffset":false,"isSlot":false,"src":"2615:1:14","valueSize":1},{"declaration":2032,"isOffset":false,"isSlot":false,"src":"2581:9:14","valueSize":1},{"declaration":2032,"isOffset":false,"isSlot":false,"src":"2630:9:14","valueSize":1},{"declaration":2032,"isOffset":false,"isSlot":false,"src":"2687:9:14","valueSize":1},{"declaration":2053,"isOffset":false,"isSlot":false,"src":"2664:1:14","valueSize":1}],"id":2055,"nodeType":"InlineAssembly","src":"2539:180:14"},{"expression":{"arguments":[{"id":2057,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"2750:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"2756:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2059,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"2759:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2060,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"2762:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2056,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2268,"src":"2739:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2041,"id":2062,"nodeType":"Return","src":"2732:32:14"}]}}]},"documentation":{"id":2028,"nodeType":"StructuredDocumentation","src":"857:1267:14","text":" @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]"},"id":2080,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2138:10:14","nodeType":"FunctionDefinition","parameters":{"id":2033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2030,"mutability":"mutable","name":"hash","nameLocation":"2157:4:14","nodeType":"VariableDeclaration","scope":2080,"src":"2149:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2149:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2032,"mutability":"mutable","name":"signature","nameLocation":"2176:9:14","nodeType":"VariableDeclaration","scope":2080,"src":"2163:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2031,"name":"bytes","nodeType":"ElementaryTypeName","src":"2163:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2148:38:14"},"returnParameters":{"id":2041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2080,"src":"2210:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2034,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2080,"src":"2219:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2037,"nodeType":"UserDefinedTypeName","pathNode":{"id":2036,"name":"RecoverError","nameLocations":["2219:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"2219:12:14"},"referencedDeclaration":2014,"src":"2219:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2080,"src":"2233:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2233:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2209:32:14"},"scope":2354,"src":"2129:766:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2109,"nodeType":"Block","src":"3789:168:14","statements":[{"assignments":[2091,2094,2096],"declarations":[{"constant":false,"id":2091,"mutability":"mutable","name":"recovered","nameLocation":"3808:9:14","nodeType":"VariableDeclaration","scope":2109,"src":"3800:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2090,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2094,"mutability":"mutable","name":"error","nameLocation":"3832:5:14","nodeType":"VariableDeclaration","scope":2109,"src":"3819:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2093,"nodeType":"UserDefinedTypeName","pathNode":{"id":2092,"name":"RecoverError","nameLocations":["3819:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"3819:12:14"},"referencedDeclaration":2014,"src":"3819:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2096,"mutability":"mutable","name":"errorArg","nameLocation":"3847:8:14","nodeType":"VariableDeclaration","scope":2109,"src":"3839:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3839:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2101,"initialValue":{"arguments":[{"id":2098,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2083,"src":"3870:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2099,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2085,"src":"3876:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2097,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2080,"src":"3859:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"3799:87:14"},{"expression":{"arguments":[{"id":2103,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"3908:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2104,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2096,"src":"3915:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2102,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3896:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$2014_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3896:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2106,"nodeType":"ExpressionStatement","src":"3896:28:14"},{"expression":{"id":2107,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2091,"src":"3941:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2089,"id":2108,"nodeType":"Return","src":"3934:16:14"}]},"documentation":{"id":2081,"nodeType":"StructuredDocumentation","src":"2901:796:14","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it."},"id":2110,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3711:7:14","nodeType":"FunctionDefinition","parameters":{"id":2086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2083,"mutability":"mutable","name":"hash","nameLocation":"3727:4:14","nodeType":"VariableDeclaration","scope":2110,"src":"3719:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3719:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2085,"mutability":"mutable","name":"signature","nameLocation":"3746:9:14","nodeType":"VariableDeclaration","scope":2110,"src":"3733:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2084,"name":"bytes","nodeType":"ElementaryTypeName","src":"3733:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3718:38:14"},"returnParameters":{"id":2089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2110,"src":"3780:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2087,"name":"address","nodeType":"ElementaryTypeName","src":"3780:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3779:9:14"},"scope":2354,"src":"3702:255:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2159,"nodeType":"Block","src":"4285:342:14","statements":[{"id":2158,"nodeType":"UncheckedBlock","src":"4295:326:14","statements":[{"assignments":[2128],"declarations":[{"constant":false,"id":2128,"mutability":"mutable","name":"s","nameLocation":"4327:1:14","nodeType":"VariableDeclaration","scope":2158,"src":"4319:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4319:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2135,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2129,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"4331:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4344:66:14","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":2131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4336:7:14","typeDescriptions":{}}},"id":2133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4331:80:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4319:92:14"},{"assignments":[2137],"declarations":[{"constant":false,"id":2137,"mutability":"mutable","name":"v","nameLocation":"4528:1:14","nodeType":"VariableDeclaration","scope":2158,"src":"4522:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2136,"name":"uint8","nodeType":"ElementaryTypeName","src":"4522:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2150,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2142,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"4547:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2140,"name":"uint256","nodeType":"ElementaryTypeName","src":"4539:7:14","typeDescriptions":{}}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":2144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4554:3:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4539:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2146,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4538:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":2147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4561:2:14","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4538:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4532:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2138,"name":"uint8","nodeType":"ElementaryTypeName","src":"4532:5:14","typeDescriptions":{}}},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:32:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4522:42:14"},{"expression":{"arguments":[{"id":2152,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"4596:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2153,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2137,"src":"4602:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2154,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2115,"src":"4605:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2155,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2128,"src":"4608:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2151,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2268,"src":"4585:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2126,"id":2157,"nodeType":"Return","src":"4578:32:14"}]}]},"documentation":{"id":2111,"nodeType":"StructuredDocumentation","src":"3963:205:14","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]"},"id":2160,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4182:10:14","nodeType":"FunctionDefinition","parameters":{"id":2118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"hash","nameLocation":"4201:4:14","nodeType":"VariableDeclaration","scope":2160,"src":"4193:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2115,"mutability":"mutable","name":"r","nameLocation":"4215:1:14","nodeType":"VariableDeclaration","scope":2160,"src":"4207:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4207:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2117,"mutability":"mutable","name":"vs","nameLocation":"4226:2:14","nodeType":"VariableDeclaration","scope":2160,"src":"4218:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4218:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4192:37:14"},"returnParameters":{"id":2126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2160,"src":"4253:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2119,"name":"address","nodeType":"ElementaryTypeName","src":"4253:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2160,"src":"4262:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2122,"nodeType":"UserDefinedTypeName","pathNode":{"id":2121,"name":"RecoverError","nameLocations":["4262:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"4262:12:14"},"referencedDeclaration":2014,"src":"4262:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2160,"src":"4276:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4276:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4252:32:14"},"scope":2354,"src":"4173:454:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2192,"nodeType":"Block","src":"4840:164:14","statements":[{"assignments":[2173,2176,2178],"declarations":[{"constant":false,"id":2173,"mutability":"mutable","name":"recovered","nameLocation":"4859:9:14","nodeType":"VariableDeclaration","scope":2192,"src":"4851:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2172,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2176,"mutability":"mutable","name":"error","nameLocation":"4883:5:14","nodeType":"VariableDeclaration","scope":2192,"src":"4870:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2175,"nodeType":"UserDefinedTypeName","pathNode":{"id":2174,"name":"RecoverError","nameLocations":["4870:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"4870:12:14"},"referencedDeclaration":2014,"src":"4870:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2178,"mutability":"mutable","name":"errorArg","nameLocation":"4898:8:14","nodeType":"VariableDeclaration","scope":2192,"src":"4890:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4890:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2184,"initialValue":{"arguments":[{"id":2180,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2163,"src":"4921:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2181,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"4927:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2182,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2167,"src":"4930:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2179,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2160,"src":"4910:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4850:83:14"},{"expression":{"arguments":[{"id":2186,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"4955:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2187,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2178,"src":"4962:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2185,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"4943:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$2014_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2189,"nodeType":"ExpressionStatement","src":"4943:28:14"},{"expression":{"id":2190,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2173,"src":"4988:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2171,"id":2191,"nodeType":"Return","src":"4981:16:14"}]},"documentation":{"id":2161,"nodeType":"StructuredDocumentation","src":"4633:116:14","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately."},"id":2193,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4763:7:14","nodeType":"FunctionDefinition","parameters":{"id":2168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2163,"mutability":"mutable","name":"hash","nameLocation":"4779:4:14","nodeType":"VariableDeclaration","scope":2193,"src":"4771:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4771:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2165,"mutability":"mutable","name":"r","nameLocation":"4793:1:14","nodeType":"VariableDeclaration","scope":2193,"src":"4785:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4785:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2167,"mutability":"mutable","name":"vs","nameLocation":"4804:2:14","nodeType":"VariableDeclaration","scope":2193,"src":"4796:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4796:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4770:37:14"},"returnParameters":{"id":2171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2193,"src":"4831:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2169,"name":"address","nodeType":"ElementaryTypeName","src":"4831:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4830:9:14"},"scope":2354,"src":"4754:250:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2267,"nodeType":"Block","src":"5298:1372:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"6194:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6186:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2212,"name":"uint256","nodeType":"ElementaryTypeName","src":"6186:7:14","typeDescriptions":{}}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":2216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6199:66:14","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6186:79:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2228,"nodeType":"IfStatement","src":"6182:164:14","trueBody":{"id":2227,"nodeType":"Block","src":"6267:79:14","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6297:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6289:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2218,"name":"address","nodeType":"ElementaryTypeName","src":"6289:7:14","typeDescriptions":{}}},"id":2221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6289:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2222,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6301:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6314:17:14","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":2013,"src":"6301:30:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"6333:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2225,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6288:47:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2211,"id":2226,"nodeType":"Return","src":"6281:54:14"}]}},{"assignments":[2230],"declarations":[{"constant":false,"id":2230,"mutability":"mutable","name":"signer","nameLocation":"6448:6:14","nodeType":"VariableDeclaration","scope":2267,"src":"6440:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2229,"name":"address","nodeType":"ElementaryTypeName","src":"6440:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2237,"initialValue":{"arguments":[{"id":2232,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2196,"src":"6467:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2233,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"6473:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2234,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"6476:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2235,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"6479:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2231,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6457:9:14","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:24:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6440:41:14"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2238,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"6495:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6513:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6505:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2239,"name":"address","nodeType":"ElementaryTypeName","src":"6505:7:14","typeDescriptions":{}}},"id":2242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6505:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6495:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2257,"nodeType":"IfStatement","src":"6491:113:14","trueBody":{"id":2256,"nodeType":"Block","src":"6517:87:14","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6547:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6539:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2244,"name":"address","nodeType":"ElementaryTypeName","src":"6539:7:14","typeDescriptions":{}}},"id":2247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6539:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2248,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6551:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6564:16:14","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":2011,"src":"6551:29:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":2252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6582:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6582:7:14","typeDescriptions":{}}},"id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:55:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2211,"id":2255,"nodeType":"Return","src":"6531:62:14"}]}},{"expression":{"components":[{"id":2258,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"6622:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2259,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6630:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6643:7:14","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":2010,"src":"6630:20:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":2263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6660:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6652:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6652:7:14","typeDescriptions":{}}},"id":2264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6652:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2265,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6621:42:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2211,"id":2266,"nodeType":"Return","src":"6614:49:14"}]},"documentation":{"id":2194,"nodeType":"StructuredDocumentation","src":"5010:125:14","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":2268,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5149:10:14","nodeType":"FunctionDefinition","parameters":{"id":2203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2196,"mutability":"mutable","name":"hash","nameLocation":"5177:4:14","nodeType":"VariableDeclaration","scope":2268,"src":"5169:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5169:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2198,"mutability":"mutable","name":"v","nameLocation":"5197:1:14","nodeType":"VariableDeclaration","scope":2268,"src":"5191:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2197,"name":"uint8","nodeType":"ElementaryTypeName","src":"5191:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2200,"mutability":"mutable","name":"r","nameLocation":"5216:1:14","nodeType":"VariableDeclaration","scope":2268,"src":"5208:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5208:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2202,"mutability":"mutable","name":"s","nameLocation":"5235:1:14","nodeType":"VariableDeclaration","scope":2268,"src":"5227:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5227:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5159:83:14"},"returnParameters":{"id":2211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2268,"src":"5266:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2204,"name":"address","nodeType":"ElementaryTypeName","src":"5266:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2268,"src":"5275:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2207,"nodeType":"UserDefinedTypeName","pathNode":{"id":2206,"name":"RecoverError","nameLocations":["5275:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"5275:12:14"},"referencedDeclaration":2014,"src":"5275:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2268,"src":"5289:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5289:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5265:32:14"},"scope":2354,"src":"5140:1530:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2303,"nodeType":"Block","src":"6897:166:14","statements":[{"assignments":[2283,2286,2288],"declarations":[{"constant":false,"id":2283,"mutability":"mutable","name":"recovered","nameLocation":"6916:9:14","nodeType":"VariableDeclaration","scope":2303,"src":"6908:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2282,"name":"address","nodeType":"ElementaryTypeName","src":"6908:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2286,"mutability":"mutable","name":"error","nameLocation":"6940:5:14","nodeType":"VariableDeclaration","scope":2303,"src":"6927:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2285,"nodeType":"UserDefinedTypeName","pathNode":{"id":2284,"name":"RecoverError","nameLocations":["6927:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"6927:12:14"},"referencedDeclaration":2014,"src":"6927:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2288,"mutability":"mutable","name":"errorArg","nameLocation":"6955:8:14","nodeType":"VariableDeclaration","scope":2303,"src":"6947:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6947:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2295,"initialValue":{"arguments":[{"id":2290,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2271,"src":"6978:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2291,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2273,"src":"6984:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2292,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"6987:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2293,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"6990:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2289,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2268,"src":"6967:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6967:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"6907:85:14"},{"expression":{"arguments":[{"id":2297,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2286,"src":"7014:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2298,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"7021:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2296,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"7002:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$2014_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2300,"nodeType":"ExpressionStatement","src":"7002:28:14"},{"expression":{"id":2301,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2283,"src":"7047:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2281,"id":2302,"nodeType":"Return","src":"7040:16:14"}]},"documentation":{"id":2269,"nodeType":"StructuredDocumentation","src":"6676:122:14","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":2304,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6812:7:14","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2271,"mutability":"mutable","name":"hash","nameLocation":"6828:4:14","nodeType":"VariableDeclaration","scope":2304,"src":"6820:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6820:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2273,"mutability":"mutable","name":"v","nameLocation":"6840:1:14","nodeType":"VariableDeclaration","scope":2304,"src":"6834:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2272,"name":"uint8","nodeType":"ElementaryTypeName","src":"6834:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2275,"mutability":"mutable","name":"r","nameLocation":"6851:1:14","nodeType":"VariableDeclaration","scope":2304,"src":"6843:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6843:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2277,"mutability":"mutable","name":"s","nameLocation":"6862:1:14","nodeType":"VariableDeclaration","scope":2304,"src":"6854:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6854:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6819:45:14"},"returnParameters":{"id":2281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2304,"src":"6888:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2279,"name":"address","nodeType":"ElementaryTypeName","src":"6888:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6887:9:14"},"scope":2354,"src":"6803:260:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2352,"nodeType":"Block","src":"7268:460:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2313,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7282:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2314,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7291:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7304:7:14","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":2010,"src":"7291:20:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7282:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2319,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7378:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2320,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7387:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7400:16:14","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":2011,"src":"7387:29:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7378:38:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2327,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7483:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2328,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7492:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7505:22:14","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":2012,"src":"7492:35:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7483:44:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2339,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7617:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2340,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7626:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7639:17:14","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":2013,"src":"7626:30:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7617:39:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2348,"nodeType":"IfStatement","src":"7613:109:14","trueBody":{"id":2347,"nodeType":"Block","src":"7658:64:14","statements":[{"errorCall":{"arguments":[{"id":2344,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"7702:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2343,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"7679:22:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:32:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2346,"nodeType":"RevertStatement","src":"7672:39:14"}]}},"id":2349,"nodeType":"IfStatement","src":"7479:243:14","trueBody":{"id":2338,"nodeType":"Block","src":"7529:78:14","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":2334,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"7586:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7578:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2332,"name":"uint256","nodeType":"ElementaryTypeName","src":"7578:7:14","typeDescriptions":{}}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7578:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2331,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7550:27:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:46:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2337,"nodeType":"RevertStatement","src":"7543:53:14"}]}},"id":2350,"nodeType":"IfStatement","src":"7374:348:14","trueBody":{"id":2326,"nodeType":"Block","src":"7418:55:14","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2323,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"7439:21:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7439:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2325,"nodeType":"RevertStatement","src":"7432:30:14"}]}},"id":2351,"nodeType":"IfStatement","src":"7278:444:14","trueBody":{"id":2318,"nodeType":"Block","src":"7313:55:14","statements":[{"functionReturnParameters":2312,"id":2317,"nodeType":"Return","src":"7327:7:14"}]}}]},"documentation":{"id":2305,"nodeType":"StructuredDocumentation","src":"7069:122:14","text":" @dev Optionally reverts with the corresponding custom error according to the `error` argument provided."},"id":2353,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"7205:11:14","nodeType":"FunctionDefinition","parameters":{"id":2311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2308,"mutability":"mutable","name":"error","nameLocation":"7230:5:14","nodeType":"VariableDeclaration","scope":2353,"src":"7217:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2307,"nodeType":"UserDefinedTypeName","pathNode":{"id":2306,"name":"RecoverError","nameLocations":["7217:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"7217:12:14"},"referencedDeclaration":2014,"src":"7217:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2310,"mutability":"mutable","name":"errorArg","nameLocation":"7245:8:14","nodeType":"VariableDeclaration","scope":2353,"src":"7237:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7216:38:14"},"returnParameters":{"id":2312,"nodeType":"ParameterList","parameters":[],"src":"7268:0:14"},"scope":2354,"src":"7196:532:14","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2355,"src":"344:7386:14","usedErrors":[2017,2022,2027],"usedEvents":[]}],"src":"112:7619:14"},"id":14},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","exportedSymbols":{"MessageHashUtils":[2428],"Strings":[2006]},"id":2429,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2356,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"123:24:15"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":2358,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2429,"sourceUnit":2007,"src":"149:39:15","symbolAliases":[{"foreign":{"id":2357,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"157:7:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MessageHashUtils","contractDependencies":[],"contractKind":"library","documentation":{"id":2359,"nodeType":"StructuredDocumentation","src":"190:330:15","text":" @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications."},"fullyImplemented":true,"id":2428,"linearizedBaseContracts":[2428],"name":"MessageHashUtils","nameLocation":"529:16:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":2368,"nodeType":"Block","src":"1314:368:15","statements":[{"AST":{"nodeType":"YulBlock","src":"1376:300:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1397:4:15","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"1403:34:15","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1390:6:15"},"nodeType":"YulFunctionCall","src":"1390:48:15"},"nodeType":"YulExpressionStatement","src":"1390:48:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1499:4:15","type":"","value":"0x1c"},{"name":"messageHash","nodeType":"YulIdentifier","src":"1505:11:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1492:6:15"},"nodeType":"YulFunctionCall","src":"1492:25:15"},"nodeType":"YulExpressionStatement","src":"1492:25:15"},{"nodeType":"YulAssignment","src":"1571:31:15","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1591:4:15","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"1597:4:15","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1581:9:15"},"nodeType":"YulFunctionCall","src":"1581:21:15"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"1571:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2365,"isOffset":false,"isSlot":false,"src":"1571:6:15","valueSize":1},{"declaration":2362,"isOffset":false,"isSlot":false,"src":"1505:11:15","valueSize":1}],"id":2367,"nodeType":"InlineAssembly","src":"1367:309:15"}]},"documentation":{"id":2360,"nodeType":"StructuredDocumentation","src":"552:665:15","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}."},"id":2369,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"1231:22:15","nodeType":"FunctionDefinition","parameters":{"id":2363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2362,"mutability":"mutable","name":"messageHash","nameLocation":"1262:11:15","nodeType":"VariableDeclaration","scope":2369,"src":"1254:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1254:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1253:21:15"},"returnParameters":{"id":2366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2365,"mutability":"mutable","name":"digest","nameLocation":"1306:6:15","nodeType":"VariableDeclaration","scope":2369,"src":"1298:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1298:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1297:16:15"},"scope":2428,"src":"1222:460:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2394,"nodeType":"Block","src":"2234:143:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":2381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2286:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"arguments":[{"expression":{"id":2386,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"2343:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2351:6:15","memberName":"length","nodeType":"MemberAccess","src":"2343:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2384,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"2326:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$2006_$","typeString":"type(library Strings)"}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2334:8:15","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"2326:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2320:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2382,"name":"bytes","nodeType":"ElementaryTypeName","src":"2320:5:15","typeDescriptions":{}}},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2320:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2390,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"2361:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2273:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2378,"name":"bytes","nodeType":"ElementaryTypeName","src":"2273:5:15","typeDescriptions":{}}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2279:6:15","memberName":"concat","nodeType":"MemberAccess","src":"2273:12:15","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2377,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2263:9:15","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:107:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2376,"id":2393,"nodeType":"Return","src":"2244:126:15"}]},"documentation":{"id":2370,"nodeType":"StructuredDocumentation","src":"1688:455:15","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}."},"id":2395,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"2157:22:15","nodeType":"FunctionDefinition","parameters":{"id":2373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2372,"mutability":"mutable","name":"message","nameLocation":"2193:7:15","nodeType":"VariableDeclaration","scope":2395,"src":"2180:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2371,"name":"bytes","nodeType":"ElementaryTypeName","src":"2180:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2179:22:15"},"returnParameters":{"id":2376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2395,"src":"2225:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2225:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2224:9:15"},"scope":2428,"src":"2148:229:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2414,"nodeType":"Block","src":"2831:80:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":2408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2875:10:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":2409,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"2887:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2410,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2400,"src":"2898:4:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2858:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2862:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"2858:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2405,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2848:9:15","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2404,"id":2413,"nodeType":"Return","src":"2841:63:15"}]},"documentation":{"id":2396,"nodeType":"StructuredDocumentation","src":"2383:332:15","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}."},"id":2415,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"2729:31:15","nodeType":"FunctionDefinition","parameters":{"id":2401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2398,"mutability":"mutable","name":"validator","nameLocation":"2769:9:15","nodeType":"VariableDeclaration","scope":2415,"src":"2761:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2397,"name":"address","nodeType":"ElementaryTypeName","src":"2761:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2400,"mutability":"mutable","name":"data","nameLocation":"2793:4:15","nodeType":"VariableDeclaration","scope":2415,"src":"2780:17:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2399,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2760:38:15"},"returnParameters":{"id":2404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2415,"src":"2822:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2822:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2821:9:15"},"scope":2428,"src":"2720:191:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2426,"nodeType":"Block","src":"3462:292:15","statements":[{"AST":{"nodeType":"YulBlock","src":"3524:224:15","statements":[{"nodeType":"YulVariableDeclaration","src":"3538:22:15","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3555:4:15","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3549:5:15"},"nodeType":"YulFunctionCall","src":"3549:11:15"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"3542:3:15","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3580:3:15"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"3585:10:15","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:15"},"nodeType":"YulFunctionCall","src":"3573:23:15"},"nodeType":"YulExpressionStatement","src":"3573:23:15"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3620:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"3625:4:15","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:15"},"nodeType":"YulFunctionCall","src":"3616:14:15"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"3632:15:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3609:6:15"},"nodeType":"YulFunctionCall","src":"3609:39:15"},"nodeType":"YulExpressionStatement","src":"3609:39:15"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3672:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:15","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3668:3:15"},"nodeType":"YulFunctionCall","src":"3668:14:15"},{"name":"structHash","nodeType":"YulIdentifier","src":"3684:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3661:6:15"},"nodeType":"YulFunctionCall","src":"3661:34:15"},"nodeType":"YulExpressionStatement","src":"3661:34:15"},{"nodeType":"YulAssignment","src":"3708:30:15","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3728:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"3733:4:15","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"3718:9:15"},"nodeType":"YulFunctionCall","src":"3718:20:15"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"3708:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2423,"isOffset":false,"isSlot":false,"src":"3708:6:15","valueSize":1},{"declaration":2418,"isOffset":false,"isSlot":false,"src":"3632:15:15","valueSize":1},{"declaration":2420,"isOffset":false,"isSlot":false,"src":"3684:10:15","valueSize":1}],"id":2425,"nodeType":"InlineAssembly","src":"3515:233:15"}]},"documentation":{"id":2416,"nodeType":"StructuredDocumentation","src":"2917:431:15","text":" @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}."},"id":2427,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"3362:15:15","nodeType":"FunctionDefinition","parameters":{"id":2421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2418,"mutability":"mutable","name":"domainSeparator","nameLocation":"3386:15:15","nodeType":"VariableDeclaration","scope":2427,"src":"3378:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3378:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2420,"mutability":"mutable","name":"structHash","nameLocation":"3411:10:15","nodeType":"VariableDeclaration","scope":2427,"src":"3403:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3403:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3377:45:15"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2423,"mutability":"mutable","name":"digest","nameLocation":"3454:6:15","nodeType":"VariableDeclaration","scope":2427,"src":"3446:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3446:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3445:16:15"},"scope":2428,"src":"3353:401:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2429,"src":"521:3235:15","usedErrors":[],"usedEvents":[]}],"src":"123:3634:15"},"id":15},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[2452],"IERC165":[2464]},"id":2453,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2430,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:16"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":2432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2453,"sourceUnit":2465,"src":"140:38:16","symbolAliases":[{"foreign":{"id":2431,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"148:7:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2434,"name":"IERC165","nameLocations":["687:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"687:7:16"},"id":2435,"nodeType":"InheritanceSpecifier","src":"687:7:16"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":2433,"nodeType":"StructuredDocumentation","src":"180:478:16","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":2452,"linearizedBaseContracts":[2452,2464],"name":"ERC165","nameLocation":"677:6:16","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[2463],"body":{"id":2450,"nodeType":"Block","src":"844:64:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2443,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"861:11:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2445,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"881:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$2464_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$2464_$","typeString":"type(contract IERC165)"}],"id":2444,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"876:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"876:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$2464","typeString":"type(contract IERC165)"}},"id":2447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"890:11:16","memberName":"interfaceId","nodeType":"MemberAccess","src":"876:25:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"861:40:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2442,"id":2449,"nodeType":"Return","src":"854:47:16"}]},"documentation":{"id":2436,"nodeType":"StructuredDocumentation","src":"701:56:16","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2451,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"771:17:16","nodeType":"FunctionDefinition","parameters":{"id":2439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"interfaceId","nameLocation":"796:11:16","nodeType":"VariableDeclaration","scope":2451,"src":"789:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"789:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"788:20:16"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2451,"src":"838:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2440,"name":"bool","nodeType":"ElementaryTypeName","src":"838:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"837:6:16"},"scope":2452,"src":"762:146:16","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2453,"src":"659:251:16","usedErrors":[],"usedEvents":[]}],"src":"114:797:16"},"id":16},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[2464]},"id":2465,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2454,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:17"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":2455,"nodeType":"StructuredDocumentation","src":"141:279:17","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":2464,"linearizedBaseContracts":[2464],"name":"IERC165","nameLocation":"431:7:17","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2456,"nodeType":"StructuredDocumentation","src":"445:340:17","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":2463,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"799:17:17","nodeType":"FunctionDefinition","parameters":{"id":2459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2458,"mutability":"mutable","name":"interfaceId","nameLocation":"824:11:17","nodeType":"VariableDeclaration","scope":2463,"src":"817:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2457,"name":"bytes4","nodeType":"ElementaryTypeName","src":"817:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"816:20:17"},"returnParameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2463,"src":"860:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2460,"name":"bool","nodeType":"ElementaryTypeName","src":"860:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"859:6:17"},"scope":2464,"src":"790:76:17","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2465,"src":"421:447:17","usedErrors":[],"usedEvents":[]}],"src":"115:754:17"},"id":17},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[3518]},"id":3519,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2466,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:18"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2467,"nodeType":"StructuredDocumentation","src":"129:73:18","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3518,"linearizedBaseContracts":[3518],"name":"Math","nameLocation":"211:4:18","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2468,"nodeType":"StructuredDocumentation","src":"222:50:18","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","id":2470,"name":"MathOverflowedMulDiv","nameLocation":"283:20:18","nodeType":"ErrorDefinition","parameters":{"id":2469,"nodeType":"ParameterList","parameters":[],"src":"303:2:18"},"src":"277:29:18"},{"canonicalName":"Math.Rounding","id":2475,"members":[{"id":2471,"name":"Floor","nameLocation":"336:5:18","nodeType":"EnumValue","src":"336:5:18"},{"id":2472,"name":"Ceil","nameLocation":"379:4:18","nodeType":"EnumValue","src":"379:4:18"},{"id":2473,"name":"Trunc","nameLocation":"421:5:18","nodeType":"EnumValue","src":"421:5:18"},{"id":2474,"name":"Expand","nameLocation":"451:6:18","nodeType":"EnumValue","src":"451:6:18"}],"name":"Rounding","nameLocation":"317:8:18","nodeType":"EnumDefinition","src":"312:169:18"},{"body":{"id":2506,"nodeType":"Block","src":"661:140:18","statements":[{"id":2505,"nodeType":"UncheckedBlock","src":"671:124:18","statements":[{"assignments":[2488],"declarations":[{"constant":false,"id":2488,"mutability":"mutable","name":"c","nameLocation":"703:1:18","nodeType":"VariableDeclaration","scope":2505,"src":"695:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2487,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2492,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2489,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2478,"src":"707:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2490,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"711:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"707:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"695:17:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2493,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"730:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2494,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2478,"src":"734:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"730:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2500,"nodeType":"IfStatement","src":"726:28:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"745:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"752:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2498,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"744:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2486,"id":2499,"nodeType":"Return","src":"737:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"776:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2502,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"782:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"775:9:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2486,"id":2504,"nodeType":"Return","src":"768:16:18"}]}]},"documentation":{"id":2476,"nodeType":"StructuredDocumentation","src":"487:93:18","text":" @dev Returns the addition of two unsigned integers, with an overflow flag."},"id":2507,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"594:6:18","nodeType":"FunctionDefinition","parameters":{"id":2481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2478,"mutability":"mutable","name":"a","nameLocation":"609:1:18","nodeType":"VariableDeclaration","scope":2507,"src":"601:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2477,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2480,"mutability":"mutable","name":"b","nameLocation":"620:1:18","nodeType":"VariableDeclaration","scope":2507,"src":"612:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2479,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:18"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2507,"src":"646:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2482,"name":"bool","nodeType":"ElementaryTypeName","src":"646:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2507,"src":"652:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:15:18"},"scope":3518,"src":"585:216:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2534,"nodeType":"Block","src":"984:113:18","statements":[{"id":2533,"nodeType":"UncheckedBlock","src":"994:97:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2519,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"1022:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2520,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"1026:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1022:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2526,"nodeType":"IfStatement","src":"1018:28:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1037:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2524,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1036:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2518,"id":2525,"nodeType":"Return","src":"1029:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1068:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2528,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"1074:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2529,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"1078:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1074:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2531,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1067:13:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2518,"id":2532,"nodeType":"Return","src":"1060:20:18"}]}]},"documentation":{"id":2508,"nodeType":"StructuredDocumentation","src":"807:96:18","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag."},"id":2535,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"917:6:18","nodeType":"FunctionDefinition","parameters":{"id":2513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2510,"mutability":"mutable","name":"a","nameLocation":"932:1:18","nodeType":"VariableDeclaration","scope":2535,"src":"924:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2509,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2512,"mutability":"mutable","name":"b","nameLocation":"943:1:18","nodeType":"VariableDeclaration","scope":2535,"src":"935:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2511,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"923:22:18"},"returnParameters":{"id":2518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2535,"src":"969:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2514,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2535,"src":"975:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2516,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:15:18"},"scope":3518,"src":"908:189:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2576,"nodeType":"Block","src":"1283:417:18","statements":[{"id":2575,"nodeType":"UncheckedBlock","src":"1293:401:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2547,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1551:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1556:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1551:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2554,"nodeType":"IfStatement","src":"1547:28:18","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1567:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1573:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2552,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1566:9:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2546,"id":2553,"nodeType":"Return","src":"1559:16:18"}},{"assignments":[2556],"declarations":[{"constant":false,"id":2556,"mutability":"mutable","name":"c","nameLocation":"1597:1:18","nodeType":"VariableDeclaration","scope":2575,"src":"1589:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2555,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2560,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2557,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1601:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2558,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"1605:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1601:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1589:17:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2561,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"1624:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2562,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1628:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2564,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"1633:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2570,"nodeType":"IfStatement","src":"1620:33:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1644:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1651:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2568,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2546,"id":2569,"nodeType":"Return","src":"1636:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1675:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2572,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"1681:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1674:9:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2546,"id":2574,"nodeType":"Return","src":"1667:16:18"}]}]},"documentation":{"id":2536,"nodeType":"StructuredDocumentation","src":"1103:99:18","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag."},"id":2577,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1216:6:18","nodeType":"FunctionDefinition","parameters":{"id":2541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2538,"mutability":"mutable","name":"a","nameLocation":"1231:1:18","nodeType":"VariableDeclaration","scope":2577,"src":"1223:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2537,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2540,"mutability":"mutable","name":"b","nameLocation":"1242:1:18","nodeType":"VariableDeclaration","scope":2577,"src":"1234:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:22:18"},"returnParameters":{"id":2546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2577,"src":"1268:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2542,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2577,"src":"1274:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2544,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1267:15:18"},"scope":3518,"src":"1207:493:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2604,"nodeType":"Block","src":"1887:114:18","statements":[{"id":2603,"nodeType":"UncheckedBlock","src":"1897:98:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2589,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"1925:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1930:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1925:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2596,"nodeType":"IfStatement","src":"1921:29:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1941:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2594,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1940:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2588,"id":2595,"nodeType":"Return","src":"1933:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1972:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2598,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"1978:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2599,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"1982:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1978:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:13:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2588,"id":2602,"nodeType":"Return","src":"1964:20:18"}]}]},"documentation":{"id":2578,"nodeType":"StructuredDocumentation","src":"1706:100:18","text":" @dev Returns the division of two unsigned integers, with a division by zero flag."},"id":2605,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1820:6:18","nodeType":"FunctionDefinition","parameters":{"id":2583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2580,"mutability":"mutable","name":"a","nameLocation":"1835:1:18","nodeType":"VariableDeclaration","scope":2605,"src":"1827:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2579,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2582,"mutability":"mutable","name":"b","nameLocation":"1846:1:18","nodeType":"VariableDeclaration","scope":2605,"src":"1838:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2581,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:22:18"},"returnParameters":{"id":2588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2605,"src":"1872:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2584,"name":"bool","nodeType":"ElementaryTypeName","src":"1872:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2605,"src":"1878:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2586,"name":"uint256","nodeType":"ElementaryTypeName","src":"1878:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:15:18"},"scope":3518,"src":"1811:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2632,"nodeType":"Block","src":"2198:114:18","statements":[{"id":2631,"nodeType":"UncheckedBlock","src":"2208:98:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2617,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"2236:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2624,"nodeType":"IfStatement","src":"2232:29:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2252:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2259:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2251:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2616,"id":2623,"nodeType":"Return","src":"2244:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2283:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2626,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"2289:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2627,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"2293:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2289:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2282:13:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2616,"id":2630,"nodeType":"Return","src":"2275:20:18"}]}]},"documentation":{"id":2606,"nodeType":"StructuredDocumentation","src":"2007:110:18","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."},"id":2633,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2131:6:18","nodeType":"FunctionDefinition","parameters":{"id":2611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2608,"mutability":"mutable","name":"a","nameLocation":"2146:1:18","nodeType":"VariableDeclaration","scope":2633,"src":"2138:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2610,"mutability":"mutable","name":"b","nameLocation":"2157:1:18","nodeType":"VariableDeclaration","scope":2633,"src":"2149:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2609,"name":"uint256","nodeType":"ElementaryTypeName","src":"2149:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2137:22:18"},"returnParameters":{"id":2616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2633,"src":"2183:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2612,"name":"bool","nodeType":"ElementaryTypeName","src":"2183:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2633,"src":"2189:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2614,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2182:15:18"},"scope":3518,"src":"2122:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2650,"nodeType":"Block","src":"2449:37:18","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2643,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"2466:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2644,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2470:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2466:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2647,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2478:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2466:13:18","trueExpression":{"id":2646,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"2474:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2642,"id":2649,"nodeType":"Return","src":"2459:20:18"}]},"documentation":{"id":2634,"nodeType":"StructuredDocumentation","src":"2318:59:18","text":" @dev Returns the largest of two numbers."},"id":2651,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2391:3:18","nodeType":"FunctionDefinition","parameters":{"id":2639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2636,"mutability":"mutable","name":"a","nameLocation":"2403:1:18","nodeType":"VariableDeclaration","scope":2651,"src":"2395:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2635,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2638,"mutability":"mutable","name":"b","nameLocation":"2414:1:18","nodeType":"VariableDeclaration","scope":2651,"src":"2406:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2637,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2394:22:18"},"returnParameters":{"id":2642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2651,"src":"2440:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2640,"name":"uint256","nodeType":"ElementaryTypeName","src":"2440:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2439:9:18"},"scope":3518,"src":"2382:104:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2668,"nodeType":"Block","src":"2624:37:18","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2661,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"2641:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2662,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2656,"src":"2645:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2641:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2665,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2656,"src":"2653:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2641:13:18","trueExpression":{"id":2664,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"2649:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2660,"id":2667,"nodeType":"Return","src":"2634:20:18"}]},"documentation":{"id":2652,"nodeType":"StructuredDocumentation","src":"2492:60:18","text":" @dev Returns the smallest of two numbers."},"id":2669,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2566:3:18","nodeType":"FunctionDefinition","parameters":{"id":2657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2654,"mutability":"mutable","name":"a","nameLocation":"2578:1:18","nodeType":"VariableDeclaration","scope":2669,"src":"2570:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2570:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2656,"mutability":"mutable","name":"b","nameLocation":"2589:1:18","nodeType":"VariableDeclaration","scope":2669,"src":"2581:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2655,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2569:22:18"},"returnParameters":{"id":2660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2669,"src":"2615:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2658,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:9:18"},"scope":3518,"src":"2557:104:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2691,"nodeType":"Block","src":"2845:82:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2679,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"2900:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2680,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2904:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2900:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2682,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2899:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2683,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"2910:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2684,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2914:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2910:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2909:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2919:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2909:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2678,"id":2690,"nodeType":"Return","src":"2892:28:18"}]},"documentation":{"id":2670,"nodeType":"StructuredDocumentation","src":"2667:102:18","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2692,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2783:7:18","nodeType":"FunctionDefinition","parameters":{"id":2675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2672,"mutability":"mutable","name":"a","nameLocation":"2799:1:18","nodeType":"VariableDeclaration","scope":2692,"src":"2791:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2671,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2674,"mutability":"mutable","name":"b","nameLocation":"2810:1:18","nodeType":"VariableDeclaration","scope":2692,"src":"2802:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2673,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2790:22:18"},"returnParameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2692,"src":"2836:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:9:18"},"scope":3518,"src":"2774:153:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2725,"nodeType":"Block","src":"3219:260:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2702,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2697,"src":"3233:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3233:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2710,"nodeType":"IfStatement","src":"3229:127:18","trueBody":{"id":2709,"nodeType":"Block","src":"3241:115:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2705,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"3340:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2706,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2697,"src":"3344:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2701,"id":2708,"nodeType":"Return","src":"3333:12:18"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2711,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"3444:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3449:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3444:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2715,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"3458:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3458:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3457:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2719,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2697,"src":"3467:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3457:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3471:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3457:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3444:28:18","trueExpression":{"hexValue":"30","id":2714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3453:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2701,"id":2724,"nodeType":"Return","src":"3437:35:18"}]},"documentation":{"id":2693,"nodeType":"StructuredDocumentation","src":"2933:210:18","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":2726,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3157:7:18","nodeType":"FunctionDefinition","parameters":{"id":2698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2695,"mutability":"mutable","name":"a","nameLocation":"3173:1:18","nodeType":"VariableDeclaration","scope":2726,"src":"3165:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2694,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2697,"mutability":"mutable","name":"b","nameLocation":"3184:1:18","nodeType":"VariableDeclaration","scope":2726,"src":"3176:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2696,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3164:22:18"},"returnParameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2726,"src":"3210:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2699,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3209:9:18"},"scope":3518,"src":"3148:331:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2851,"nodeType":"Block","src":"3901:4018:18","statements":[{"id":2850,"nodeType":"UncheckedBlock","src":"3911:4002:18","statements":[{"assignments":[2739],"declarations":[{"constant":false,"id":2739,"mutability":"mutable","name":"prod0","nameLocation":"4240:5:18","nodeType":"VariableDeclaration","scope":2850,"src":"4232:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2738,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2743,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2740,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"4248:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2741,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2731,"src":"4252:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4248:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4232:21:18"},{"assignments":[2745],"declarations":[{"constant":false,"id":2745,"mutability":"mutable","name":"prod1","nameLocation":"4320:5:18","nodeType":"VariableDeclaration","scope":2850,"src":"4312:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2744,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2746,"nodeType":"VariableDeclarationStatement","src":"4312:13:18"},{"AST":{"nodeType":"YulBlock","src":"4392:122:18","statements":[{"nodeType":"YulVariableDeclaration","src":"4410:30:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4427:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"4430:1:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4437:1:18","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4433:3:18"},"nodeType":"YulFunctionCall","src":"4433:6:18"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4420:6:18"},"nodeType":"YulFunctionCall","src":"4420:20:18"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4414:2:18","type":""}]},{"nodeType":"YulAssignment","src":"4457:43:18","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4474:2:18"},{"name":"prod0","nodeType":"YulIdentifier","src":"4478:5:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4470:3:18"},"nodeType":"YulFunctionCall","src":"4470:14:18"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4489:2:18"},{"name":"prod0","nodeType":"YulIdentifier","src":"4493:5:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4486:2:18"},"nodeType":"YulFunctionCall","src":"4486:13:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4466:3:18"},"nodeType":"YulFunctionCall","src":"4466:34:18"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4457:5:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2739,"isOffset":false,"isSlot":false,"src":"4478:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"4493:5:18","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"4457:5:18","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"4427:1:18","valueSize":1},{"declaration":2731,"isOffset":false,"isSlot":false,"src":"4430:1:18","valueSize":1}],"id":2747,"nodeType":"InlineAssembly","src":"4383:131:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2748,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"4595:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4604:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4595:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2756,"nodeType":"IfStatement","src":"4591:368:18","trueBody":{"id":2755,"nodeType":"Block","src":"4607:352:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2751,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2739,"src":"4925:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2752,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"4933:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2737,"id":2754,"nodeType":"Return","src":"4918:26:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2757,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"5065:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2758,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"5080:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:20:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2764,"nodeType":"IfStatement","src":"5061:88:18","trueBody":{"id":2763,"nodeType":"Block","src":"5087:62:18","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2760,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2470,"src":"5112:20:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5112:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2762,"nodeType":"RevertStatement","src":"5105:29:18"}]}},{"assignments":[2766],"declarations":[{"constant":false,"id":2766,"mutability":"mutable","name":"remainder","nameLocation":"5412:9:18","nodeType":"VariableDeclaration","scope":2850,"src":"5404:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2765,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2767,"nodeType":"VariableDeclarationStatement","src":"5404:17:18"},{"AST":{"nodeType":"YulBlock","src":"5444:291:18","statements":[{"nodeType":"YulAssignment","src":"5513:38:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5533:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"5536:1:18"},{"name":"denominator","nodeType":"YulIdentifier","src":"5539:11:18"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5526:6:18"},"nodeType":"YulFunctionCall","src":"5526:25:18"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5513:9:18"}]},{"nodeType":"YulAssignment","src":"5633:41:18","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5646:5:18"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5656:9:18"},{"name":"prod0","nodeType":"YulIdentifier","src":"5667:5:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5653:2:18"},"nodeType":"YulFunctionCall","src":"5653:20:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5642:3:18"},"nodeType":"YulFunctionCall","src":"5642:32:18"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5633:5:18"}]},{"nodeType":"YulAssignment","src":"5691:30:18","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5704:5:18"},{"name":"remainder","nodeType":"YulIdentifier","src":"5711:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5700:3:18"},"nodeType":"YulFunctionCall","src":"5700:21:18"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5691:5:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"5539:11:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"5667:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"5691:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"5704:5:18","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"5633:5:18","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"5646:5:18","valueSize":1},{"declaration":2766,"isOffset":false,"isSlot":false,"src":"5513:9:18","valueSize":1},{"declaration":2766,"isOffset":false,"isSlot":false,"src":"5656:9:18","valueSize":1},{"declaration":2766,"isOffset":false,"isSlot":false,"src":"5711:9:18","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"5533:1:18","valueSize":1},{"declaration":2731,"isOffset":false,"isSlot":false,"src":"5536:1:18","valueSize":1}],"id":2768,"nodeType":"InlineAssembly","src":"5435:300:18"},{"assignments":[2770],"declarations":[{"constant":false,"id":2770,"mutability":"mutable","name":"twos","nameLocation":"5947:4:18","nodeType":"VariableDeclaration","scope":2850,"src":"5939:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2769,"name":"uint256","nodeType":"ElementaryTypeName","src":"5939:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2777,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2771,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"5954:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":2772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5969:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2773,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"5973:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5969:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5968:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5954:31:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5939:46:18"},{"AST":{"nodeType":"YulBlock","src":"6008:362:18","statements":[{"nodeType":"YulAssignment","src":"6073:37:18","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6092:11:18"},{"name":"twos","nodeType":"YulIdentifier","src":"6105:4:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6088:3:18"},"nodeType":"YulFunctionCall","src":"6088:22:18"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6073:11:18"}]},{"nodeType":"YulAssignment","src":"6177:25:18","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6190:5:18"},{"name":"twos","nodeType":"YulIdentifier","src":"6197:4:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6186:3:18"},"nodeType":"YulFunctionCall","src":"6186:16:18"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6177:5:18"}]},{"nodeType":"YulAssignment","src":"6317:39:18","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6337:1:18","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6340:4:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6333:3:18"},"nodeType":"YulFunctionCall","src":"6333:12:18"},{"name":"twos","nodeType":"YulIdentifier","src":"6347:4:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6329:3:18"},"nodeType":"YulFunctionCall","src":"6329:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"6354:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6325:3:18"},"nodeType":"YulFunctionCall","src":"6325:31:18"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6317:4:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"6073:11:18","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"6092:11:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"6177:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"6190:5:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6105:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6197:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6317:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6340:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6347:4:18","valueSize":1}],"id":2778,"nodeType":"InlineAssembly","src":"5999:371:18"},{"expression":{"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2779,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2739,"src":"6436:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2780,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"6445:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2781,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2770,"src":"6453:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6436:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2784,"nodeType":"ExpressionStatement","src":"6436:21:18"},{"assignments":[2786],"declarations":[{"constant":false,"id":2786,"mutability":"mutable","name":"inverse","nameLocation":"6783:7:18","nodeType":"VariableDeclaration","scope":2850,"src":"6775:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2785,"name":"uint256","nodeType":"ElementaryTypeName","src":"6775:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2793,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:18","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2788,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"6798:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6794:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2790,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6793:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6793:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6775:39:18"},{"expression":{"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2794,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7031:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7042:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2796,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7046:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2797,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7060:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7046:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7042:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7031:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2801,"nodeType":"ExpressionStatement","src":"7031:36:18"},{"expression":{"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2802,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7100:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2804,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7115:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2805,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7115:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7100:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2809,"nodeType":"ExpressionStatement","src":"7100:36:18"},{"expression":{"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2810,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7170:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7181:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2812,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7185:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2813,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7199:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7185:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7170:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2817,"nodeType":"ExpressionStatement","src":"7170:36:18"},{"expression":{"id":2824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2818,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7240:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2820,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7255:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2821,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7269:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7251:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7240:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2825,"nodeType":"ExpressionStatement","src":"7240:36:18"},{"expression":{"id":2832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2826,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7310:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7321:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2828,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7325:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2829,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7339:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7325:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7321:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2833,"nodeType":"ExpressionStatement","src":"7310:36:18"},{"expression":{"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2834,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7381:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7392:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2836,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7396:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2837,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7410:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7396:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7392:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7381:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2841,"nodeType":"ExpressionStatement","src":"7381:36:18"},{"expression":{"id":2846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2842,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2736,"src":"7851:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2843,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2739,"src":"7860:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2844,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7868:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7860:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7851:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2847,"nodeType":"ExpressionStatement","src":"7851:24:18"},{"expression":{"id":2848,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2736,"src":"7896:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2737,"id":2849,"nodeType":"Return","src":"7889:13:18"}]}]},"documentation":{"id":2727,"nodeType":"StructuredDocumentation","src":"3485:313:18","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev 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":2852,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3812:6:18","nodeType":"FunctionDefinition","parameters":{"id":2734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2729,"mutability":"mutable","name":"x","nameLocation":"3827:1:18","nodeType":"VariableDeclaration","scope":2852,"src":"3819:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2731,"mutability":"mutable","name":"y","nameLocation":"3838:1:18","nodeType":"VariableDeclaration","scope":2852,"src":"3830:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2730,"name":"uint256","nodeType":"ElementaryTypeName","src":"3830:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2733,"mutability":"mutable","name":"denominator","nameLocation":"3849:11:18","nodeType":"VariableDeclaration","scope":2852,"src":"3841:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2732,"name":"uint256","nodeType":"ElementaryTypeName","src":"3841:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:43:18"},"returnParameters":{"id":2737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2736,"mutability":"mutable","name":"result","nameLocation":"3893:6:18","nodeType":"VariableDeclaration","scope":2852,"src":"3885:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2735,"name":"uint256","nodeType":"ElementaryTypeName","src":"3885:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3884:16:18"},"scope":3518,"src":"3803:4116:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2894,"nodeType":"Block","src":"8161:192:18","statements":[{"assignments":[2868],"declarations":[{"constant":false,"id":2868,"mutability":"mutable","name":"result","nameLocation":"8179:6:18","nodeType":"VariableDeclaration","scope":2894,"src":"8171:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2867,"name":"uint256","nodeType":"ElementaryTypeName","src":"8171:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2874,"initialValue":{"arguments":[{"id":2870,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"8195:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2871,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"8198:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2872,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2859,"src":"8201:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2869,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2852,2895],"referencedDeclaration":2852,"src":"8188:6:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8171:42:18"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2876,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"8244:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":2875,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"8227:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8227:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2879,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"8264:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2880,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"8267:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2881,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2859,"src":"8270:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2878,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8257:6:18","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8285:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:29:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8227:59:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2891,"nodeType":"IfStatement","src":"8223:101:18","trueBody":{"id":2890,"nodeType":"Block","src":"8288:36:18","statements":[{"expression":{"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"8302:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8312:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8302:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2889,"nodeType":"ExpressionStatement","src":"8302:11:18"}]}},{"expression":{"id":2892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"8340:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2866,"id":2893,"nodeType":"Return","src":"8333:13:18"}]},"documentation":{"id":2853,"nodeType":"StructuredDocumentation","src":"7925:121:18","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2895,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8060:6:18","nodeType":"FunctionDefinition","parameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2855,"mutability":"mutable","name":"x","nameLocation":"8075:1:18","nodeType":"VariableDeclaration","scope":2895,"src":"8067:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2854,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2857,"mutability":"mutable","name":"y","nameLocation":"8086:1:18","nodeType":"VariableDeclaration","scope":2895,"src":"8078:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2856,"name":"uint256","nodeType":"ElementaryTypeName","src":"8078:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2859,"mutability":"mutable","name":"denominator","nameLocation":"8097:11:18","nodeType":"VariableDeclaration","scope":2895,"src":"8089:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2858,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2862,"mutability":"mutable","name":"rounding","nameLocation":"8119:8:18","nodeType":"VariableDeclaration","scope":2895,"src":"8110:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":2861,"nodeType":"UserDefinedTypeName","pathNode":{"id":2860,"name":"Rounding","nameLocations":["8110:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"8110:8:18"},"referencedDeclaration":2475,"src":"8110:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8066:62:18"},"returnParameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2895,"src":"8152:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2864,"name":"uint256","nodeType":"ElementaryTypeName","src":"8152:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8151:9:18"},"scope":3518,"src":"8051:302:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3006,"nodeType":"Block","src":"8644:1585:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2903,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"8658:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8658:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2909,"nodeType":"IfStatement","src":"8654:45:18","trueBody":{"id":2908,"nodeType":"Block","src":"8666:33:18","statements":[{"expression":{"hexValue":"30","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2902,"id":2907,"nodeType":"Return","src":"8680:8:18"}]}},{"assignments":[2911],"declarations":[{"constant":false,"id":2911,"mutability":"mutable","name":"result","nameLocation":"9386:6:18","nodeType":"VariableDeclaration","scope":3006,"src":"9378:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2910,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2920,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:18","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":2917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2914,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9406:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2913,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3174,3209],"referencedDeclaration":3174,"src":"9401:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9401:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9401:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9400:14:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9395:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9378:36:18"},{"id":3005,"nodeType":"UncheckedBlock","src":"9815:408:18","statements":[{"expression":{"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2921,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9839:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2922,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9849:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2923,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9858:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9862:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9849:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9848:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9873:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9848:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9839:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2931,"nodeType":"ExpressionStatement","src":"9839:35:18"},{"expression":{"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2932,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9888:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2933,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9898:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2934,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9907:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2935,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9911:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9907:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9898:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9897:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9922:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9897:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2942,"nodeType":"ExpressionStatement","src":"9888:35:18"},{"expression":{"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2943,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9937:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2944,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9947:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2945,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9956:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2946,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9960:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9956:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2949,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9946:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9971:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9946:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9937:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2953,"nodeType":"ExpressionStatement","src":"9937:35:18"},{"expression":{"id":2963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2954,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9986:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2955,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9996:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2956,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10005:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2957,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10009:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9996:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9995:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9995:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9986:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2964,"nodeType":"ExpressionStatement","src":"9986:35:18"},{"expression":{"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2965,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10035:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10045:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2967,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10054:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2968,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10058:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10054:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10045:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2971,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10044:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10069:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10044:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10035:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2975,"nodeType":"ExpressionStatement","src":"10035:35:18"},{"expression":{"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2976,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10084:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2977,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10094:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"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":2898,"src":"10103:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2979,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10107:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10103:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10094:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2982,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10093:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10093:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2986,"nodeType":"ExpressionStatement","src":"10084:35:18"},{"expression":{"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2987,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10133:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2988,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10143:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2989,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10152:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2990,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10156:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10152:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10142:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10142:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2997,"nodeType":"ExpressionStatement","src":"10133:35:18"},{"expression":{"arguments":[{"id":2999,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10193:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3000,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10201:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3001,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10205:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10201:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2998,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"10189:3:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2902,"id":3004,"nodeType":"Return","src":"10182:30:18"}]}]},"documentation":{"id":2896,"nodeType":"StructuredDocumentation","src":"8359:223:18","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 Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":3007,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8596:4:18","nodeType":"FunctionDefinition","parameters":{"id":2899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2898,"mutability":"mutable","name":"a","nameLocation":"8609:1:18","nodeType":"VariableDeclaration","scope":3007,"src":"8601:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2897,"name":"uint256","nodeType":"ElementaryTypeName","src":"8601:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8600:11:18"},"returnParameters":{"id":2902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3007,"src":"8635:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2900,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8634:9:18"},"scope":3518,"src":"8587:1642:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3041,"nodeType":"Block","src":"10405:164:18","statements":[{"id":3040,"nodeType":"UncheckedBlock","src":"10415:148:18","statements":[{"assignments":[3019],"declarations":[{"constant":false,"id":3019,"mutability":"mutable","name":"result","nameLocation":"10447:6:18","nodeType":"VariableDeclaration","scope":3040,"src":"10439:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3018,"name":"uint256","nodeType":"ElementaryTypeName","src":"10439:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3023,"initialValue":{"arguments":[{"id":3021,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"10461:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3020,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3007,3042],"referencedDeclaration":3007,"src":"10456:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10456:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10439:24:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3024,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"10484:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3026,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"10511:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3025,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"10494:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3028,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"10524:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3029,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"10533:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3031,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"10542:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:19:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10494:49:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10550:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10494:57:18","trueExpression":{"hexValue":"31","id":3034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10546:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3037,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10493:59:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10484:68:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3017,"id":3039,"nodeType":"Return","src":"10477:75:18"}]}]},"documentation":{"id":3008,"nodeType":"StructuredDocumentation","src":"10235:89:18","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":3042,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10338:4:18","nodeType":"FunctionDefinition","parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3010,"mutability":"mutable","name":"a","nameLocation":"10351:1:18","nodeType":"VariableDeclaration","scope":3042,"src":"10343:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3009,"name":"uint256","nodeType":"ElementaryTypeName","src":"10343:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3013,"mutability":"mutable","name":"rounding","nameLocation":"10363:8:18","nodeType":"VariableDeclaration","scope":3042,"src":"10354:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3012,"nodeType":"UserDefinedTypeName","pathNode":{"id":3011,"name":"Rounding","nameLocations":["10354:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"10354:8:18"},"referencedDeclaration":2475,"src":"10354:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10342:30:18"},"returnParameters":{"id":3017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3042,"src":"10396:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"10396:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10395:9:18"},"scope":3518,"src":"10329:240:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3173,"nodeType":"Block","src":"10760:922:18","statements":[{"assignments":[3051],"declarations":[{"constant":false,"id":3051,"mutability":"mutable","name":"result","nameLocation":"10778:6:18","nodeType":"VariableDeclaration","scope":3173,"src":"10770:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3050,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3053,"initialValue":{"hexValue":"30","id":3052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10787:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10770:18:18"},{"id":3170,"nodeType":"UncheckedBlock","src":"10798:855:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10826:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10835:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10826:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10841:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10826:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3068,"nodeType":"IfStatement","src":"10822:99:18","trueBody":{"id":3067,"nodeType":"Block","src":"10844:77:18","statements":[{"expression":{"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10862:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10872:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10862:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3062,"nodeType":"ExpressionStatement","src":"10862:13:18"},{"expression":{"id":3065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3063,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"10893:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":3064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10903:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10893:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3066,"nodeType":"ExpressionStatement","src":"10893:13:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10938:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10947:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10938:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10952:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10938:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3083,"nodeType":"IfStatement","src":"10934:96:18","trueBody":{"id":3082,"nodeType":"Block","src":"10955:75:18","statements":[{"expression":{"id":3076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10973:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10983:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10973:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3077,"nodeType":"ExpressionStatement","src":"10973:12:18"},{"expression":{"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3078,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11003:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11013:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11003:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3081,"nodeType":"ExpressionStatement","src":"11003:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3084,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11047:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11056:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11047:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11061:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11047:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3098,"nodeType":"IfStatement","src":"11043:96:18","trueBody":{"id":3097,"nodeType":"Block","src":"11064:75:18","statements":[{"expression":{"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11082:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11092:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11082:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3092,"nodeType":"ExpressionStatement","src":"11082:12:18"},{"expression":{"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3093,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11112:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11122:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11112:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3096,"nodeType":"ExpressionStatement","src":"11112:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3099,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11156:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11156:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11170:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11156:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3113,"nodeType":"IfStatement","src":"11152:96:18","trueBody":{"id":3112,"nodeType":"Block","src":"11173:75:18","statements":[{"expression":{"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11191:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11201:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11191:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3107,"nodeType":"ExpressionStatement","src":"11191:12:18"},{"expression":{"id":3110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3108,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11221:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11231:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11221:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3111,"nodeType":"ExpressionStatement","src":"11221:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11265:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11274:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11265:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11265:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3128,"nodeType":"IfStatement","src":"11261:93:18","trueBody":{"id":3127,"nodeType":"Block","src":"11281:73:18","statements":[{"expression":{"id":3121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11299:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11299:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3122,"nodeType":"ExpressionStatement","src":"11299:11:18"},{"expression":{"id":3125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3123,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11328:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11338:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11328:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3126,"nodeType":"ExpressionStatement","src":"11328:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11371:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11380:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11371:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11384:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11371:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3143,"nodeType":"IfStatement","src":"11367:93:18","trueBody":{"id":3142,"nodeType":"Block","src":"11387:73:18","statements":[{"expression":{"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11405:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11415:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11405:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3137,"nodeType":"ExpressionStatement","src":"11405:11:18"},{"expression":{"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3138,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11434:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11444:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11434:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3141,"nodeType":"ExpressionStatement","src":"11434:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11477:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11486:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11477:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11490:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11477:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3158,"nodeType":"IfStatement","src":"11473:93:18","trueBody":{"id":3157,"nodeType":"Block","src":"11493:73:18","statements":[{"expression":{"id":3151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11511:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11521:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11511:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3152,"nodeType":"ExpressionStatement","src":"11511:11:18"},{"expression":{"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3153,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11540:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11550:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11540:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3156,"nodeType":"ExpressionStatement","src":"11540:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3159,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11583:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11592:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11583:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11596:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11583:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3169,"nodeType":"IfStatement","src":"11579:64:18","trueBody":{"id":3168,"nodeType":"Block","src":"11599:44:18","statements":[{"expression":{"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3164,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11617:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11617:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3167,"nodeType":"ExpressionStatement","src":"11617:11:18"}]}}]},{"expression":{"id":3171,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11669:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3049,"id":3172,"nodeType":"Return","src":"11662:13:18"}]},"documentation":{"id":3043,"nodeType":"StructuredDocumentation","src":"10575:119:18","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":3174,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10708:4:18","nodeType":"FunctionDefinition","parameters":{"id":3046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3045,"mutability":"mutable","name":"value","nameLocation":"10721:5:18","nodeType":"VariableDeclaration","scope":3174,"src":"10713:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3044,"name":"uint256","nodeType":"ElementaryTypeName","src":"10713:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10712:15:18"},"returnParameters":{"id":3049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3174,"src":"10751:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3047,"name":"uint256","nodeType":"ElementaryTypeName","src":"10751:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10750:9:18"},"scope":3518,"src":"10699:983:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3208,"nodeType":"Block","src":"11915:168:18","statements":[{"id":3207,"nodeType":"UncheckedBlock","src":"11925:152:18","statements":[{"assignments":[3186],"declarations":[{"constant":false,"id":3186,"mutability":"mutable","name":"result","nameLocation":"11957:6:18","nodeType":"VariableDeclaration","scope":3207,"src":"11949:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3185,"name":"uint256","nodeType":"ElementaryTypeName","src":"11949:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3190,"initialValue":{"arguments":[{"id":3188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"11971:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3187,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3174,3209],"referencedDeclaration":3174,"src":"11966:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:11:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11949:28:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3191,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"11998:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3193,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"12025:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3192,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"12008:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12008:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3196,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12043:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3198,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"12052:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:19:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12008:49:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12064:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12008:57:18","trueExpression":{"hexValue":"31","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12060:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3204,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12007:59:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11998:68:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3184,"id":3206,"nodeType":"Return","src":"11991:75:18"}]}]},"documentation":{"id":3175,"nodeType":"StructuredDocumentation","src":"11688:142:18","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3209,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"11844:4:18","nodeType":"FunctionDefinition","parameters":{"id":3181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3177,"mutability":"mutable","name":"value","nameLocation":"11857:5:18","nodeType":"VariableDeclaration","scope":3209,"src":"11849:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3176,"name":"uint256","nodeType":"ElementaryTypeName","src":"11849:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3180,"mutability":"mutable","name":"rounding","nameLocation":"11873:8:18","nodeType":"VariableDeclaration","scope":3209,"src":"11864:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3179,"nodeType":"UserDefinedTypeName","pathNode":{"id":3178,"name":"Rounding","nameLocations":["11864:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"11864:8:18"},"referencedDeclaration":2475,"src":"11864:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11848:34:18"},"returnParameters":{"id":3184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3209,"src":"11906:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3182,"name":"uint256","nodeType":"ElementaryTypeName","src":"11906:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11905:9:18"},"scope":3518,"src":"11835:248:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3337,"nodeType":"Block","src":"12276:854:18","statements":[{"assignments":[3218],"declarations":[{"constant":false,"id":3218,"mutability":"mutable","name":"result","nameLocation":"12294:6:18","nodeType":"VariableDeclaration","scope":3337,"src":"12286:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3217,"name":"uint256","nodeType":"ElementaryTypeName","src":"12286:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3220,"initialValue":{"hexValue":"30","id":3219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12303:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12286:18:18"},{"id":3334,"nodeType":"UncheckedBlock","src":"12314:787:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12342:5:18","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":3224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12351:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12357:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12351:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12342:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3237,"nodeType":"IfStatement","src":"12338:103:18","trueBody":{"id":3236,"nodeType":"Block","src":"12361:80:18","statements":[{"expression":{"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12379:5:18","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":3229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12388:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12394:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12388:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12379:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3231,"nodeType":"ExpressionStatement","src":"12379:17:18"},{"expression":{"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3232,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12414:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12424:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12414:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3235,"nodeType":"ExpressionStatement","src":"12414:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3238,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12458:5:18","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":3241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12467:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12473:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12467:8:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12458:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3254,"nodeType":"IfStatement","src":"12454:103:18","trueBody":{"id":3253,"nodeType":"Block","src":"12477:80:18","statements":[{"expression":{"id":3247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3243,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12495:5:18","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":3246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12504:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12510:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12504:8:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12495:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3248,"nodeType":"ExpressionStatement","src":"12495:17:18"},{"expression":{"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3249,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12530:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12540:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12530:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3252,"nodeType":"ExpressionStatement","src":"12530:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12574:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12589:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12583:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12574:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3271,"nodeType":"IfStatement","src":"12570:103:18","trueBody":{"id":3270,"nodeType":"Block","src":"12593:80:18","statements":[{"expression":{"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3260,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12611:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12620:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12626:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12620:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12611:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3265,"nodeType":"ExpressionStatement","src":"12611:17:18"},{"expression":{"id":3268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3266,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12646:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12656:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12646:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3269,"nodeType":"ExpressionStatement","src":"12646:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3272,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12690:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12699:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12705:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12699:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12690:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3288,"nodeType":"IfStatement","src":"12686:100:18","trueBody":{"id":3287,"nodeType":"Block","src":"12708:78:18","statements":[{"expression":{"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12726:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12735:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12741:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12735:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12726:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3282,"nodeType":"ExpressionStatement","src":"12726:16:18"},{"expression":{"id":3285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12760:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12770:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12760:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3286,"nodeType":"ExpressionStatement","src":"12760:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12803:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12812:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12818:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12812:7:18","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12803:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3305,"nodeType":"IfStatement","src":"12799:100:18","trueBody":{"id":3304,"nodeType":"Block","src":"12821:78:18","statements":[{"expression":{"id":3298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3294,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12839:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12854:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12848:7:18","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12839:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3299,"nodeType":"ExpressionStatement","src":"12839:16:18"},{"expression":{"id":3302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3300,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12873:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12883:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12873:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3303,"nodeType":"ExpressionStatement","src":"12873:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12916:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12931:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12925:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12916:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3322,"nodeType":"IfStatement","src":"12912:100:18","trueBody":{"id":3321,"nodeType":"Block","src":"12934:78:18","statements":[{"expression":{"id":3315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12952:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12967:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12961:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12952:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3316,"nodeType":"ExpressionStatement","src":"12952:16:18"},{"expression":{"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3317,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12986:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12996:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12986:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3320,"nodeType":"ExpressionStatement","src":"12986:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3323,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"13029:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13038:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13038:7:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13029:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3333,"nodeType":"IfStatement","src":"13025:66:18","trueBody":{"id":3332,"nodeType":"Block","src":"13047:44:18","statements":[{"expression":{"id":3330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3328,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"13065:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13075:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13065:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3331,"nodeType":"ExpressionStatement","src":"13065:11:18"}]}}]},{"expression":{"id":3335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"13117:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3216,"id":3336,"nodeType":"Return","src":"13110:13:18"}]},"documentation":{"id":3210,"nodeType":"StructuredDocumentation","src":"12089:120:18","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":3338,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12223:5:18","nodeType":"FunctionDefinition","parameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"value","nameLocation":"12237:5:18","nodeType":"VariableDeclaration","scope":3338,"src":"12229:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3211,"name":"uint256","nodeType":"ElementaryTypeName","src":"12229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12228:15:18"},"returnParameters":{"id":3216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3338,"src":"12267:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3214,"name":"uint256","nodeType":"ElementaryTypeName","src":"12267:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12266:9:18"},"scope":3518,"src":"12214:916:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3372,"nodeType":"Block","src":"13365:170:18","statements":[{"id":3371,"nodeType":"UncheckedBlock","src":"13375:154:18","statements":[{"assignments":[3350],"declarations":[{"constant":false,"id":3350,"mutability":"mutable","name":"result","nameLocation":"13407:6:18","nodeType":"VariableDeclaration","scope":3371,"src":"13399:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3349,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3354,"initialValue":{"arguments":[{"id":3352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"13422:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3351,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3338,3373],"referencedDeclaration":3338,"src":"13416:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13416:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13399:29:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3355,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"13449:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3357,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"13476:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3356,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"13459:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13459:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13489:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3360,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"13495:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"13504:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:20:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13459:50:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13459:58:18","trueExpression":{"hexValue":"31","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13512:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13458:60:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13449:69:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3348,"id":3370,"nodeType":"Return","src":"13442:76:18"}]}]},"documentation":{"id":3339,"nodeType":"StructuredDocumentation","src":"13136:143:18","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3373,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13293:5:18","nodeType":"FunctionDefinition","parameters":{"id":3345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3341,"mutability":"mutable","name":"value","nameLocation":"13307:5:18","nodeType":"VariableDeclaration","scope":3373,"src":"13299:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3340,"name":"uint256","nodeType":"ElementaryTypeName","src":"13299:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3344,"mutability":"mutable","name":"rounding","nameLocation":"13323:8:18","nodeType":"VariableDeclaration","scope":3373,"src":"13314:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3343,"nodeType":"UserDefinedTypeName","pathNode":{"id":3342,"name":"Rounding","nameLocations":["13314:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"13314:8:18"},"referencedDeclaration":2475,"src":"13314:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13298:34:18"},"returnParameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3373,"src":"13356:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"13356:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13355:9:18"},"scope":3518,"src":"13284:251:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3459,"nodeType":"Block","src":"13855:600:18","statements":[{"assignments":[3382],"declarations":[{"constant":false,"id":3382,"mutability":"mutable","name":"result","nameLocation":"13873:6:18","nodeType":"VariableDeclaration","scope":3459,"src":"13865:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3381,"name":"uint256","nodeType":"ElementaryTypeName","src":"13865:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3384,"initialValue":{"hexValue":"30","id":3383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13882:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13865:18:18"},{"id":3456,"nodeType":"UncheckedBlock","src":"13893:533:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3385,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"13921:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13930:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13921:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13936:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13921:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3399,"nodeType":"IfStatement","src":"13917:98:18","trueBody":{"id":3398,"nodeType":"Block","src":"13939:76:18","statements":[{"expression":{"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"13957:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13967:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13957:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3393,"nodeType":"ExpressionStatement","src":"13957:13:18"},{"expression":{"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3394,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"13988:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13988:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3397,"nodeType":"ExpressionStatement","src":"13988:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3400,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14032:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14041:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14032:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14046:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14032:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3414,"nodeType":"IfStatement","src":"14028:95:18","trueBody":{"id":3413,"nodeType":"Block","src":"14049:74:18","statements":[{"expression":{"id":3407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14067:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14077:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14067:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3408,"nodeType":"ExpressionStatement","src":"14067:12:18"},{"expression":{"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14097:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14097:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3412,"nodeType":"ExpressionStatement","src":"14097:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3415,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14140:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14149:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14140:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14154:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14140:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3429,"nodeType":"IfStatement","src":"14136:95:18","trueBody":{"id":3428,"nodeType":"Block","src":"14157:74:18","statements":[{"expression":{"id":3422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14175:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14185:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14175:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3423,"nodeType":"ExpressionStatement","src":"14175:12:18"},{"expression":{"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3424,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14205:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14215:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14205:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3427,"nodeType":"ExpressionStatement","src":"14205:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3430,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14248:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14248:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14248:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3444,"nodeType":"IfStatement","src":"14244:95:18","trueBody":{"id":3443,"nodeType":"Block","src":"14265:74:18","statements":[{"expression":{"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14283:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14293:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14283:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3438,"nodeType":"ExpressionStatement","src":"14283:12:18"},{"expression":{"id":3441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3439,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14313:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14323:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14313:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3442,"nodeType":"ExpressionStatement","src":"14313:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14356:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14365:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14356:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14369:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14356:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3455,"nodeType":"IfStatement","src":"14352:64:18","trueBody":{"id":3454,"nodeType":"Block","src":"14372:44:18","statements":[{"expression":{"id":3452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3450,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14390:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14400:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14390:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3453,"nodeType":"ExpressionStatement","src":"14390:11:18"}]}}]},{"expression":{"id":3457,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14442:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3380,"id":3458,"nodeType":"Return","src":"14435:13:18"}]},"documentation":{"id":3374,"nodeType":"StructuredDocumentation","src":"13541:246:18","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":3460,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"13801:6:18","nodeType":"FunctionDefinition","parameters":{"id":3377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3376,"mutability":"mutable","name":"value","nameLocation":"13816:5:18","nodeType":"VariableDeclaration","scope":3460,"src":"13808:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3375,"name":"uint256","nodeType":"ElementaryTypeName","src":"13808:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13807:15:18"},"returnParameters":{"id":3380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3460,"src":"13846:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3378,"name":"uint256","nodeType":"ElementaryTypeName","src":"13846:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13845:9:18"},"scope":3518,"src":"13792:663:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3497,"nodeType":"Block","src":"14692:177:18","statements":[{"id":3496,"nodeType":"UncheckedBlock","src":"14702:161:18","statements":[{"assignments":[3472],"declarations":[{"constant":false,"id":3472,"mutability":"mutable","name":"result","nameLocation":"14734:6:18","nodeType":"VariableDeclaration","scope":3496,"src":"14726:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3471,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3476,"initialValue":{"arguments":[{"id":3474,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3463,"src":"14750:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3473,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3460,3498],"referencedDeclaration":3460,"src":"14743:6:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14743:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:30:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3477,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"14777:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3479,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3466,"src":"14804:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3478,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"14787:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14787:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14817:1:18","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":3484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3482,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"14823:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":3483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14833:1:18","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14823:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3485,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14822:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3463,"src":"14838:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:26:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14787:56:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14850:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14787:64:18","trueExpression":{"hexValue":"31","id":3490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14846:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14786:66:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14777:75:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3470,"id":3495,"nodeType":"Return","src":"14770:82:18"}]}]},"documentation":{"id":3461,"nodeType":"StructuredDocumentation","src":"14461:144:18","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3498,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14619:6:18","nodeType":"FunctionDefinition","parameters":{"id":3467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3463,"mutability":"mutable","name":"value","nameLocation":"14634:5:18","nodeType":"VariableDeclaration","scope":3498,"src":"14626:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3462,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3466,"mutability":"mutable","name":"rounding","nameLocation":"14650:8:18","nodeType":"VariableDeclaration","scope":3498,"src":"14641:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3465,"nodeType":"UserDefinedTypeName","pathNode":{"id":3464,"name":"Rounding","nameLocations":["14641:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"14641:8:18"},"referencedDeclaration":2475,"src":"14641:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14625:34:18"},"returnParameters":{"id":3470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3498,"src":"14683:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3468,"name":"uint256","nodeType":"ElementaryTypeName","src":"14683:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14682:9:18"},"scope":3518,"src":"14610:259:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3516,"nodeType":"Block","src":"15067:48:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3509,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3502,"src":"15090:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15084:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3507,"name":"uint8","nodeType":"ElementaryTypeName","src":"15084:5:18","typeDescriptions":{}}},"id":3510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15084:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":3511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15102:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15084:19:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":3513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15107:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15084:24:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3506,"id":3515,"nodeType":"Return","src":"15077:31:18"}]},"documentation":{"id":3499,"nodeType":"StructuredDocumentation","src":"14875:113:18","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":3517,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"15002:16:18","nodeType":"FunctionDefinition","parameters":{"id":3503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3502,"mutability":"mutable","name":"rounding","nameLocation":"15028:8:18","nodeType":"VariableDeclaration","scope":3517,"src":"15019:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3501,"nodeType":"UserDefinedTypeName","pathNode":{"id":3500,"name":"Rounding","nameLocations":["15019:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"15019:8:18"},"referencedDeclaration":2475,"src":"15019:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"15018:19:18"},"returnParameters":{"id":3506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3517,"src":"15061:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3504,"name":"bool","nodeType":"ElementaryTypeName","src":"15061:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15060:6:18"},"scope":3518,"src":"14993:122:18","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3519,"src":"203:14914:18","usedErrors":[2470],"usedEvents":[]}],"src":"103:15015:18"},"id":18},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[3623]},"id":3624,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3520,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:19"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3521,"nodeType":"StructuredDocumentation","src":"135:80:19","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3623,"linearizedBaseContracts":[3623],"name":"SignedMath","nameLocation":"224:10:19","nodeType":"ContractDefinition","nodes":[{"body":{"id":3538,"nodeType":"Block","src":"376:37:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3531,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"393:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3532,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"397:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3535,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"405:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:19","trueExpression":{"id":3534,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"401:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3530,"id":3537,"nodeType":"Return","src":"386:20:19"}]},"documentation":{"id":3522,"nodeType":"StructuredDocumentation","src":"241:66:19","text":" @dev Returns the largest of two signed numbers."},"id":3539,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:19","nodeType":"FunctionDefinition","parameters":{"id":3527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3524,"mutability":"mutable","name":"a","nameLocation":"332:1:19","nodeType":"VariableDeclaration","scope":3539,"src":"325:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3523,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3526,"mutability":"mutable","name":"b","nameLocation":"342:1:19","nodeType":"VariableDeclaration","scope":3539,"src":"335:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3525,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:19"},"returnParameters":{"id":3530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3539,"src":"368:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3528,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:19"},"scope":3623,"src":"312:101:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3556,"nodeType":"Block","src":"555:37:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3549,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"572:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3550,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"576:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3553,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"584:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:19","trueExpression":{"id":3552,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"580:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3548,"id":3555,"nodeType":"Return","src":"565:20:19"}]},"documentation":{"id":3540,"nodeType":"StructuredDocumentation","src":"419:67:19","text":" @dev Returns the smallest of two signed numbers."},"id":3557,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:19","nodeType":"FunctionDefinition","parameters":{"id":3545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3542,"mutability":"mutable","name":"a","nameLocation":"511:1:19","nodeType":"VariableDeclaration","scope":3557,"src":"504:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3541,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"b","nameLocation":"521:1:19","nodeType":"VariableDeclaration","scope":3557,"src":"514:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3543,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:19"},"returnParameters":{"id":3548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3557,"src":"547:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3546,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:19"},"scope":3623,"src":"491:101:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3600,"nodeType":"Block","src":"797:162:19","statements":[{"assignments":[3568],"declarations":[{"constant":false,"id":3568,"mutability":"mutable","name":"x","nameLocation":"866:1:19","nodeType":"VariableDeclaration","scope":3600,"src":"859:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3567,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3581,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3569,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"871:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3570,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"875:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3573,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"882:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3574,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"886:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3576,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:19"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3582,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"911:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3587,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"931:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3585,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:19","typeDescriptions":{}}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:19","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3583,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:19","typeDescriptions":{}}},"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3592,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"945:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3593,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"949:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3566,"id":3599,"nodeType":"Return","src":"904:48:19"}]},"documentation":{"id":3558,"nodeType":"StructuredDocumentation","src":"598:126:19","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":3601,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:19","nodeType":"FunctionDefinition","parameters":{"id":3563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3560,"mutability":"mutable","name":"a","nameLocation":"753:1:19","nodeType":"VariableDeclaration","scope":3601,"src":"746:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3559,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3562,"mutability":"mutable","name":"b","nameLocation":"763:1:19","nodeType":"VariableDeclaration","scope":3601,"src":"756:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3561,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:19"},"returnParameters":{"id":3566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3601,"src":"789:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3564,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:19"},"scope":3623,"src":"729:230:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3621,"nodeType":"Block","src":"1103:158:19","statements":[{"id":3620,"nodeType":"UncheckedBlock","src":"1113:142:19","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3611,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"1228:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:19","subExpression":{"id":3615,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"1242:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:19","trueExpression":{"id":3614,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"1237:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:19","typeDescriptions":{}}},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3608,"id":3619,"nodeType":"Return","src":"1213:31:19"}]}]},"documentation":{"id":3602,"nodeType":"StructuredDocumentation","src":"965:78:19","text":" @dev Returns the absolute unsigned value of a signed value."},"id":3622,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:19","nodeType":"FunctionDefinition","parameters":{"id":3605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3604,"mutability":"mutable","name":"n","nameLocation":"1068:1:19","nodeType":"VariableDeclaration","scope":3622,"src":"1061:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3603,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:19"},"returnParameters":{"id":3608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3622,"src":"1094:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3606,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:19"},"scope":3623,"src":"1048:213:19","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3624,"src":"216:1047:19","usedErrors":[],"usedEvents":[]}],"src":"109:1155:19"},"id":19},"contracts/gamma/GammaCards.v5.sol":{"ast":{"absolutePath":"contracts/gamma/GammaCards.v5.sol","exportedSymbols":{"CannotRemoveUserOffers":[3671],"CardLimitExceeded":[3661],"IERC20":[394],"IgammaOffersContract":[3734],"IgammaPacksContract":[3694],"IgammaTicketsContract":[3740],"IncorrectPrizeAmount":[3655],"InsufficientCards":[3667],"InsufficientFunds":[3665],"InvalidAddress":[3647],"InvalidCardNumber":[3649],"InvalidSignature":[3653],"InvalidTransfer":[3651],"LibControlMgmt":[8832],"LibPackVerifier":[8881],"LibStringUtils":[8962],"MustCompleteAlbum":[3669],"NofGammaCardsNFTV1":[5877],"NofGammaCardsV5":[5808],"NotYourPack":[3659],"OnlyGammaPacksContract":[3641],"OnlyOffersContract":[3643],"OnlyOwners":[3645],"Ownable":[147],"UserDoesNotHaveCardOrAlbum":[3663],"WrongPacksQuantity":[3657],"console":[19517]},"id":5809,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3625,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:20"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":3627,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":148,"src":"58:67:20","symbolAliases":[{"foreign":{"id":3626,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"66:7:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":3629,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":395,"src":"126:70:20","symbolAliases":[{"foreign":{"id":3628,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"134:6:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibStringUtils.sol","file":"./libs/LibStringUtils.sol","id":3631,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":8963,"src":"197:57:20","symbolAliases":[{"foreign":{"id":3630,"name":"LibStringUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8962,"src":"205:14:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibPackVerifier.sol","file":"./libs/LibPackVerifier.sol","id":3633,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":8882,"src":"255:59:20","symbolAliases":[{"foreign":{"id":3632,"name":"LibPackVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"263:15:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","file":"./libs/LibControlMgmt.sol","id":3635,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":8833,"src":"315:57:20","symbolAliases":[{"foreign":{"id":3634,"name":"LibControlMgmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8832,"src":"323:14:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":3637,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":19518,"src":"373:44:20","symbolAliases":[{"foreign":{"id":3636,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"381:7:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/GammaCardsNFT.v1.sol","file":"./GammaCardsNFT.v1.sol","id":3639,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":5878,"src":"418:58:20","symbolAliases":[{"foreign":{"id":3638,"name":"NofGammaCardsNFTV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"426:18:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"errorSelector":"7473cc70","id":3641,"name":"OnlyGammaPacksContract","nameLocation":"484:22:20","nodeType":"ErrorDefinition","parameters":{"id":3640,"nodeType":"ParameterList","parameters":[],"src":"506:2:20"},"src":"478:31:20"},{"errorSelector":"8eea8241","id":3643,"name":"OnlyOffersContract","nameLocation":"516:18:20","nodeType":"ErrorDefinition","parameters":{"id":3642,"nodeType":"ParameterList","parameters":[],"src":"534:2:20"},"src":"510:27:20"},{"errorSelector":"4289c493","id":3645,"name":"OnlyOwners","nameLocation":"544:10:20","nodeType":"ErrorDefinition","parameters":{"id":3644,"nodeType":"ParameterList","parameters":[],"src":"554:2:20"},"src":"538:19:20"},{"errorSelector":"e6c4247b","id":3647,"name":"InvalidAddress","nameLocation":"564:14:20","nodeType":"ErrorDefinition","parameters":{"id":3646,"nodeType":"ParameterList","parameters":[],"src":"578:2:20"},"src":"558:23:20"},{"errorSelector":"1a3d9e2e","id":3649,"name":"InvalidCardNumber","nameLocation":"588:17:20","nodeType":"ErrorDefinition","parameters":{"id":3648,"nodeType":"ParameterList","parameters":[],"src":"605:2:20"},"src":"582:26:20"},{"errorSelector":"2f352531","id":3651,"name":"InvalidTransfer","nameLocation":"615:15:20","nodeType":"ErrorDefinition","parameters":{"id":3650,"nodeType":"ParameterList","parameters":[],"src":"630:2:20"},"src":"609:24:20"},{"errorSelector":"8baa579f","id":3653,"name":"InvalidSignature","nameLocation":"640:16:20","nodeType":"ErrorDefinition","parameters":{"id":3652,"nodeType":"ParameterList","parameters":[],"src":"656:2:20"},"src":"634:25:20"},{"errorSelector":"4b1c6ca1","id":3655,"name":"IncorrectPrizeAmount","nameLocation":"666:20:20","nodeType":"ErrorDefinition","parameters":{"id":3654,"nodeType":"ParameterList","parameters":[],"src":"686:2:20"},"src":"660:29:20"},{"errorSelector":"b154b3b0","id":3657,"name":"WrongPacksQuantity","nameLocation":"696:18:20","nodeType":"ErrorDefinition","parameters":{"id":3656,"nodeType":"ParameterList","parameters":[],"src":"714:2:20"},"src":"690:27:20"},{"errorSelector":"7f6ecdf5","id":3659,"name":"NotYourPack","nameLocation":"724:11:20","nodeType":"ErrorDefinition","parameters":{"id":3658,"nodeType":"ParameterList","parameters":[],"src":"735:2:20"},"src":"718:20:20"},{"errorSelector":"9dcca733","id":3661,"name":"CardLimitExceeded","nameLocation":"745:17:20","nodeType":"ErrorDefinition","parameters":{"id":3660,"nodeType":"ParameterList","parameters":[],"src":"762:2:20"},"src":"739:26:20"},{"errorSelector":"843c0744","id":3663,"name":"UserDoesNotHaveCardOrAlbum","nameLocation":"772:26:20","nodeType":"ErrorDefinition","parameters":{"id":3662,"nodeType":"ParameterList","parameters":[],"src":"798:2:20"},"src":"766:35:20"},{"errorSelector":"356680b7","id":3665,"name":"InsufficientFunds","nameLocation":"808:17:20","nodeType":"ErrorDefinition","parameters":{"id":3664,"nodeType":"ParameterList","parameters":[],"src":"825:2:20"},"src":"802:26:20"},{"errorSelector":"907d371a","id":3667,"name":"InsufficientCards","nameLocation":"835:17:20","nodeType":"ErrorDefinition","parameters":{"id":3666,"nodeType":"ParameterList","parameters":[],"src":"852:2:20"},"src":"829:26:20"},{"errorSelector":"07bd0520","id":3669,"name":"MustCompleteAlbum","nameLocation":"862:17:20","nodeType":"ErrorDefinition","parameters":{"id":3668,"nodeType":"ParameterList","parameters":[],"src":"879:2:20"},"src":"856:26:20"},{"errorSelector":"e07c7c8d","id":3671,"name":"CannotRemoveUserOffers","nameLocation":"889:22:20","nodeType":"ErrorDefinition","parameters":{"id":3670,"nodeType":"ParameterList","parameters":[],"src":"911:2:20"},"src":"883:31:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaPacksContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3694,"linearizedBaseContracts":[3694],"name":"IgammaPacksContract","nameLocation":"926:19:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d3e6a7ad","id":3678,"implemented":false,"kind":"function","modifiers":[],"name":"getPackOwner","nameLocation":"959:12:20","nodeType":"FunctionDefinition","parameters":{"id":3674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3673,"mutability":"mutable","name":"tokenId","nameLocation":"980:7:20","nodeType":"VariableDeclaration","scope":3678,"src":"972:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3672,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:17:20"},"returnParameters":{"id":3677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3678,"src":"1012:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3675,"name":"address","nodeType":"ElementaryTypeName","src":"1012:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1011:9:20"},"scope":3694,"src":"950:71:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"80f2540b","id":3685,"implemented":false,"kind":"function","modifiers":[],"name":"openPack","nameLocation":"1034:8:20","nodeType":"FunctionDefinition","parameters":{"id":3683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3680,"mutability":"mutable","name":"tokenId","nameLocation":"1051:7:20","nodeType":"VariableDeclaration","scope":3685,"src":"1043:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3679,"name":"uint256","nodeType":"ElementaryTypeName","src":"1043:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3682,"mutability":"mutable","name":"owner","nameLocation":"1068:5:20","nodeType":"VariableDeclaration","scope":3685,"src":"1060:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3681,"name":"address","nodeType":"ElementaryTypeName","src":"1060:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1042:32:20"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[],"src":"1083:0:20"},"scope":3694,"src":"1025:59:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"97f8b3d3","id":3693,"implemented":false,"kind":"function","modifiers":[],"name":"openPacks","nameLocation":"1097:9:20","nodeType":"FunctionDefinition","parameters":{"id":3691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3688,"mutability":"mutable","name":"tokenIds","nameLocation":"1124:8:20","nodeType":"VariableDeclaration","scope":3693,"src":"1107:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3686,"name":"uint256","nodeType":"ElementaryTypeName","src":"1107:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3687,"nodeType":"ArrayTypeName","src":"1107:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3690,"mutability":"mutable","name":"owner","nameLocation":"1142:5:20","nodeType":"VariableDeclaration","scope":3693,"src":"1134:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"1134:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1106:42:20"},"returnParameters":{"id":3692,"nodeType":"ParameterList","parameters":[],"src":"1157:0:20"},"scope":3694,"src":"1088:70:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5809,"src":"916:244:20","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaOffersContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3734,"linearizedBaseContracts":[3734],"name":"IgammaOffersContract","nameLocation":"1172:20:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"2edb5fcf","id":3703,"implemented":false,"kind":"function","modifiers":[],"name":"hasOffer","nameLocation":"1206:8:20","nodeType":"FunctionDefinition","parameters":{"id":3699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3696,"mutability":"mutable","name":"user","nameLocation":"1223:4:20","nodeType":"VariableDeclaration","scope":3703,"src":"1215:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3695,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3698,"mutability":"mutable","name":"cardNumber","nameLocation":"1235:10:20","nodeType":"VariableDeclaration","scope":3703,"src":"1229:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3697,"name":"uint8","nodeType":"ElementaryTypeName","src":"1229:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1214:32:20"},"returnParameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3703,"src":"1270:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3700,"name":"bool","nodeType":"ElementaryTypeName","src":"1270:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1269:6:20"},"scope":3734,"src":"1197:79:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fc9e80fc","id":3710,"implemented":false,"kind":"function","modifiers":[],"name":"removeOffersByUser","nameLocation":"1289:18:20","nodeType":"FunctionDefinition","parameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3705,"mutability":"mutable","name":"user","nameLocation":"1316:4:20","nodeType":"VariableDeclaration","scope":3710,"src":"1308:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3704,"name":"address","nodeType":"ElementaryTypeName","src":"1308:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1307:14:20"},"returnParameters":{"id":3709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3710,"src":"1340:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3707,"name":"bool","nodeType":"ElementaryTypeName","src":"1340:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1339:6:20"},"scope":3734,"src":"1280:66:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0cdb3117","id":3717,"implemented":false,"kind":"function","modifiers":[],"name":"getOffersByUserCounter","nameLocation":"1359:22:20","nodeType":"FunctionDefinition","parameters":{"id":3713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3712,"mutability":"mutable","name":"user","nameLocation":"1390:4:20","nodeType":"VariableDeclaration","scope":3717,"src":"1382:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3711,"name":"address","nodeType":"ElementaryTypeName","src":"1382:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1381:14:20"},"returnParameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3717,"src":"1419:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1419:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1418:9:20"},"scope":3734,"src":"1350:78:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9f915069","id":3733,"implemented":false,"kind":"function","modifiers":[],"name":"getOfferByUserAndCardNumber","nameLocation":"1441:27:20","nodeType":"FunctionDefinition","parameters":{"id":3722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3719,"mutability":"mutable","name":"user","nameLocation":"1482:4:20","nodeType":"VariableDeclaration","scope":3733,"src":"1474:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3718,"name":"address","nodeType":"ElementaryTypeName","src":"1474:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3721,"mutability":"mutable","name":"cardNumber","nameLocation":"1498:10:20","nodeType":"VariableDeclaration","scope":3733,"src":"1492:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3720,"name":"uint8","nodeType":"ElementaryTypeName","src":"1492:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1468:44:20"},"returnParameters":{"id":3732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1536:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1536:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1545:5:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3725,"name":"uint8","nodeType":"ElementaryTypeName","src":"1545:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1552:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3727,"name":"uint8","nodeType":"ElementaryTypeName","src":"1552:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3728,"nodeType":"ArrayTypeName","src":"1552:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":3731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1568:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3730,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:41:20"},"scope":3734,"src":"1432:145:20","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5809,"src":"1162:417:20","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaTicketsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3740,"linearizedBaseContracts":[3740],"name":"IgammaTicketsContract","nameLocation":"1591:21:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"fa8213d3","id":3739,"implemented":false,"kind":"function","modifiers":[],"name":"generateTicket","nameLocation":"1626:14:20","nodeType":"FunctionDefinition","parameters":{"id":3737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3736,"mutability":"mutable","name":"user","nameLocation":"1649:4:20","nodeType":"VariableDeclaration","scope":3739,"src":"1641:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3735,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1640:14:20"},"returnParameters":{"id":3738,"nodeType":"ParameterList","parameters":[],"src":"1663:0:20"},"scope":3740,"src":"1617:47:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5809,"src":"1581:85:20","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":3741,"name":"NofGammaCardsNFTV1","nameLocations":["1696:18:20"],"nodeType":"IdentifierPath","referencedDeclaration":5877,"src":"1696:18:20"},"id":3742,"nodeType":"InheritanceSpecifier","src":"1696:18:20"},{"baseName":{"id":3743,"name":"Ownable","nameLocations":["1716:7:20"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"1716:7:20"},"id":3744,"nodeType":"InheritanceSpecifier","src":"1716:7:20"}],"canonicalName":"NofGammaCardsV5","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5808,"linearizedBaseContracts":[5808,147,5877,1567,1693,1403,269,1721,175,1520,2452,2464,1751],"name":"NofGammaCardsV5","nameLocation":"1677:15:20","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3747,"libraryName":{"id":3745,"name":"LibStringUtils","nameLocations":["1734:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":8962,"src":"1734:14:20"},"nodeType":"UsingForDirective","src":"1728:31:20","typeName":{"id":3746,"name":"uint8","nodeType":"ElementaryTypeName","src":"1753:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"global":false,"id":3751,"libraryName":{"id":3748,"name":"LibControlMgmt","nameLocations":["1768:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":8832,"src":"1768:14:20"},"nodeType":"UsingForDirective","src":"1762:45:20","typeName":{"id":3750,"nodeType":"UserDefinedTypeName","pathNode":{"id":3749,"name":"LibControlMgmt.Data","nameLocations":["1787:14:20","1802:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1787:19:20"},"referencedDeclaration":8641,"src":"1787:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}}},{"constant":false,"functionSelector":"2f9e026a","id":3754,"mutability":"mutable","name":"gammaPacksContract","nameLocation":"1838:18:20","nodeType":"VariableDeclaration","scope":5808,"src":"1811:45:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"},"typeName":{"id":3753,"nodeType":"UserDefinedTypeName","pathNode":{"id":3752,"name":"IgammaPacksContract","nameLocations":["1811:19:20"],"nodeType":"IdentifierPath","referencedDeclaration":3694,"src":"1811:19:20"},"referencedDeclaration":3694,"src":"1811:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"visibility":"public"},{"constant":false,"functionSelector":"d322b563","id":3757,"mutability":"mutable","name":"gammaOffersContract","nameLocation":"1888:19:20","nodeType":"VariableDeclaration","scope":5808,"src":"1860:47:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"},"typeName":{"id":3756,"nodeType":"UserDefinedTypeName","pathNode":{"id":3755,"name":"IgammaOffersContract","nameLocations":["1860:20:20"],"nodeType":"IdentifierPath","referencedDeclaration":3734,"src":"1860:20:20"},"referencedDeclaration":3734,"src":"1860:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"visibility":"public"},{"constant":false,"functionSelector":"14cca36a","id":3760,"mutability":"mutable","name":"gammaTicketsContract","nameLocation":"1940:20:20","nodeType":"VariableDeclaration","scope":5808,"src":"1911:49:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"},"typeName":{"id":3759,"nodeType":"UserDefinedTypeName","pathNode":{"id":3758,"name":"IgammaTicketsContract","nameLocations":["1911:21:20"],"nodeType":"IdentifierPath","referencedDeclaration":3740,"src":"1911:21:20"},"referencedDeclaration":3740,"src":"1911:21:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"visibility":"public"},{"constant":false,"id":3763,"mutability":"mutable","name":"ownersData","nameLocation":"1993:10:20","nodeType":"VariableDeclaration","scope":5808,"src":"1965:38:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":3762,"nodeType":"UserDefinedTypeName","pathNode":{"id":3761,"name":"LibControlMgmt.Data","nameLocations":["1965:14:20","1980:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1965:19:20"},"referencedDeclaration":8641,"src":"1965:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"id":3766,"mutability":"mutable","name":"signersData","nameLocation":"2035:11:20","nodeType":"VariableDeclaration","scope":5808,"src":"2007:39:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":3765,"nodeType":"UserDefinedTypeName","pathNode":{"id":3764,"name":"LibControlMgmt.Data","nameLocations":["2007:14:20","2022:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"2007:19:20"},"referencedDeclaration":8641,"src":"2007:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"functionSelector":"ab535160","id":3769,"mutability":"mutable","name":"s_maxPacksToOpenAtOnce","nameLocation":"2064:22:20","nodeType":"VariableDeclaration","scope":5808,"src":"2051:40:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3767,"name":"uint8","nodeType":"ElementaryTypeName","src":"2051:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3130","id":3768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2089:2:20","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"constant":false,"functionSelector":"6d0af178","id":3772,"mutability":"mutable","name":"s_lotteryPrizePercentage","nameLocation":"2108:24:20","nodeType":"VariableDeclaration","scope":5808,"src":"2095:42:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3770,"name":"uint8","nodeType":"ElementaryTypeName","src":"2095:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3530","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2135:2:20","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"public"},{"constant":false,"functionSelector":"e606df87","id":3774,"mutability":"mutable","name":"DAI_TOKEN","nameLocation":"2156:9:20","nodeType":"VariableDeclaration","scope":5808,"src":"2141:24:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3773,"name":"address","nodeType":"ElementaryTypeName","src":"2141:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"82d8a118","id":3776,"mutability":"mutable","name":"s_tokenIdCounter","nameLocation":"2184:16:20","nodeType":"VariableDeclaration","scope":5808,"src":"2169:31:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2169:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"656bd0ad","id":3779,"mutability":"mutable","name":"s_packPrice","nameLocation":"2219:11:20","nodeType":"VariableDeclaration","scope":5808,"src":"2204:34:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3777,"name":"uint256","nodeType":"ElementaryTypeName","src":"2204:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132653137","id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2233:5:20","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"12e17"},"visibility":"public"},{"constant":false,"functionSelector":"d7093f40","id":3782,"mutability":"mutable","name":"s_prizesBalance","nameLocation":"2268:15:20","nodeType":"VariableDeclaration","scope":5808,"src":"2253:34:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3780,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":3781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2286:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":false,"functionSelector":"21a7c6b0","id":3785,"mutability":"mutable","name":"s_mainAlbumPrize","nameLocation":"2306:16:20","nodeType":"VariableDeclaration","scope":5808,"src":"2291:39:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2291:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135653138","id":3784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2325:5:20","typeDescriptions":{"typeIdentifier":"t_rational_15000000000000000000_by_1","typeString":"int_const 15000000000000000000"},"value":"15e18"},"visibility":"public"},{"constant":false,"functionSelector":"b3526185","id":3788,"mutability":"mutable","name":"s_secondaryAlbumPrize","nameLocation":"2390:21:20","nodeType":"VariableDeclaration","scope":5808,"src":"2375:43:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3786,"name":"uint256","nodeType":"ElementaryTypeName","src":"2375:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2414:4:20","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"public"},{"constant":false,"functionSelector":"79e8dadc","id":3790,"mutability":"mutable","name":"s_mainUri","nameLocation":"2477:9:20","nodeType":"VariableDeclaration","scope":5808,"src":"2463:23:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3789,"name":"string","nodeType":"ElementaryTypeName","src":"2463:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"4039327e","id":3792,"mutability":"mutable","name":"s_secondaryUri","nameLocation":"2504:14:20","nodeType":"VariableDeclaration","scope":5808,"src":"2490:28:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3791,"name":"string","nodeType":"ElementaryTypeName","src":"2490:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"e8a7e31d","id":3794,"mutability":"mutable","name":"s_baseUri","nameLocation":"2536:9:20","nodeType":"VariableDeclaration","scope":5808,"src":"2522:23:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3793,"name":"string","nodeType":"ElementaryTypeName","src":"2522:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"e4ae0b9b","id":3796,"mutability":"mutable","name":"s_requireOpenPackSignerValidation","nameLocation":"2561:33:20","nodeType":"VariableDeclaration","scope":5808,"src":"2549:45:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3795,"name":"bool","nodeType":"ElementaryTypeName","src":"2549:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"147baac7","id":3799,"mutability":"mutable","name":"s_requireOfferValidationInMint","nameLocation":"2610:30:20","nodeType":"VariableDeclaration","scope":5808,"src":"2598:49:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3797,"name":"bool","nodeType":"ElementaryTypeName","src":"2598:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":3798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2643:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"constant":false,"functionSelector":"9a5613ad","id":3802,"mutability":"mutable","name":"s_requireOfferValidationInTransfer","nameLocation":"2663:34:20","nodeType":"VariableDeclaration","scope":5808,"src":"2651:53:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3800,"name":"bool","nodeType":"ElementaryTypeName","src":"2651:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":3801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2700:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"canonicalName":"NofGammaCardsV5.Card","id":3813,"members":[{"constant":false,"id":3804,"mutability":"mutable","name":"tokenId","nameLocation":"2735:7:20","nodeType":"VariableDeclaration","scope":3813,"src":"2727:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3803,"name":"uint256","nodeType":"ElementaryTypeName","src":"2727:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"number","nameLocation":"2756:6:20","nodeType":"VariableDeclaration","scope":3813,"src":"2748:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2748:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3808,"mutability":"mutable","name":"pasted","nameLocation":"2773:6:20","nodeType":"VariableDeclaration","scope":3813,"src":"2768:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3807,"name":"bool","nodeType":"ElementaryTypeName","src":"2768:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3810,"mutability":"mutable","name":"class","nameLocation":"2791:5:20","nodeType":"VariableDeclaration","scope":3813,"src":"2785:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3809,"name":"uint8","nodeType":"ElementaryTypeName","src":"2785:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3812,"mutability":"mutable","name":"completion","nameLocation":"2868:10:20","nodeType":"VariableDeclaration","scope":3813,"src":"2860:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2860:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Card","nameLocation":"2716:4:20","nodeType":"StructDefinition","scope":5808,"src":"2709:219:20","visibility":"public"},{"constant":false,"functionSelector":"4c03cd0b","id":3818,"mutability":"mutable","name":"s_cards","nameLocation":"2972:7:20","nodeType":"VariableDeclaration","scope":5808,"src":"2932:47:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card)"},"typeName":{"id":3817,"keyName":"tokenId","keyNameLocation":"2948:7:20","keyType":{"id":3814,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2932:32:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3816,"nodeType":"UserDefinedTypeName","pathNode":{"id":3815,"name":"Card","nameLocations":["2959:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":3813,"src":"2959:4:20"},"referencedDeclaration":3813,"src":"2959:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage_ptr","typeString":"struct NofGammaCardsV5.Card"}}},"visibility":"public"},{"constant":false,"functionSelector":"88e0ef80","id":3822,"mutability":"mutable","name":"s_cardsInventory","nameLocation":"3036:16:20","nodeType":"VariableDeclaration","scope":5808,"src":"2983:69:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":3821,"keyName":"cardNumber","keyNameLocation":"2999:10:20","keyType":{"id":3819,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2983:45:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"amount","valueNameLocation":"3021:6:20","valueType":{"id":3820,"name":"uint256","nodeType":"ElementaryTypeName","src":"3013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"07b2e246","id":3826,"mutability":"mutable","name":"s_burnedCards","nameLocation":"3127:13:20","nodeType":"VariableDeclaration","scope":5808,"src":"3080:60:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3825,"keyName":"user","keyNameLocation":"3096:4:20","keyType":{"id":3823,"name":"address","nodeType":"ElementaryTypeName","src":"3088:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3080:39:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"amount","valueNameLocation":"3112:6:20","valueType":{"id":3824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3104:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"9ff26efd","id":3832,"mutability":"mutable","name":"s_cardsByUser","nameLocation":"3218:13:20","nodeType":"VariableDeclaration","scope":5808,"src":"3144:87:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"},"typeName":{"id":3831,"keyName":"user","keyNameLocation":"3160:4:20","keyType":{"id":3827,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3144:66:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3830,"keyName":"cardNumber","keyNameLocation":"3182:10:20","keyType":{"id":3828,"name":"uint8","nodeType":"ElementaryTypeName","src":"3176:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"3168:41:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"},"valueName":"amount","valueNameLocation":"3202:6:20","valueType":{"id":3829,"name":"uint8","nodeType":"ElementaryTypeName","src":"3196:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}}},"visibility":"public"},{"anonymous":false,"eventSelector":"538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead0","id":3836,"name":"NewGammaOffersContract","nameLocation":"3242:22:20","nodeType":"EventDefinition","parameters":{"id":3835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3834,"indexed":true,"mutability":"mutable","name":"newGammaOffersContract","nameLocation":"3281:22:20","nodeType":"VariableDeclaration","scope":3836,"src":"3265:38:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3833,"name":"address","nodeType":"ElementaryTypeName","src":"3265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3264:40:20"},"src":"3236:69:20"},{"anonymous":false,"eventSelector":"5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f","id":3840,"name":"NewGammaPacksContract","nameLocation":"3314:21:20","nodeType":"EventDefinition","parameters":{"id":3839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3838,"indexed":true,"mutability":"mutable","name":"newGammaPacksContract","nameLocation":"3352:21:20","nodeType":"VariableDeclaration","scope":3840,"src":"3336:37:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3837,"name":"address","nodeType":"ElementaryTypeName","src":"3336:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3335:39:20"},"src":"3308:67:20"},{"anonymous":false,"eventSelector":"563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa202","id":3844,"name":"NewGammaTicketsContract","nameLocation":"3384:23:20","nodeType":"EventDefinition","parameters":{"id":3843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3842,"indexed":true,"mutability":"mutable","name":"newGammaTicketContract","nameLocation":"3424:22:20","nodeType":"VariableDeclaration","scope":3844,"src":"3408:38:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3841,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3407:40:20"},"src":"3378:70:20"},{"anonymous":false,"eventSelector":"babe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e3","id":3853,"name":"PackOpened","nameLocation":"3457:10:20","nodeType":"EventDefinition","parameters":{"id":3852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3846,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"3484:6:20","nodeType":"VariableDeclaration","scope":3853,"src":"3468:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3845,"name":"address","nodeType":"ElementaryTypeName","src":"3468:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3849,"indexed":true,"mutability":"mutable","name":"packData","nameLocation":"3508:8:20","nodeType":"VariableDeclaration","scope":3853,"src":"3492:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3847,"name":"uint8","nodeType":"ElementaryTypeName","src":"3492:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3848,"nodeType":"ArrayTypeName","src":"3492:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":3851,"indexed":true,"mutability":"mutable","name":"packNumber","nameLocation":"3534:10:20","nodeType":"VariableDeclaration","scope":3853,"src":"3518:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3850,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3467:78:20"},"src":"3451:95:20"},{"anonymous":false,"eventSelector":"6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa","id":3859,"name":"AlbumCompleted","nameLocation":"3555:14:20","nodeType":"EventDefinition","parameters":{"id":3858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3855,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"3586:6:20","nodeType":"VariableDeclaration","scope":3859,"src":"3570:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3854,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3857,"indexed":true,"mutability":"mutable","name":"albumClass","nameLocation":"3608:10:20","nodeType":"VariableDeclaration","scope":3859,"src":"3594:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3856,"name":"uint8","nodeType":"ElementaryTypeName","src":"3594:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3569:50:20"},"src":"3549:71:20"},{"anonymous":false,"eventSelector":"7ab6504e276a4cc030e62b9e8909a879d55dba80fca5fa9d909fbe6bf19798ba","id":3867,"name":"CardPasted","nameLocation":"3629:10:20","nodeType":"EventDefinition","parameters":{"id":3866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3861,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"3656:6:20","nodeType":"VariableDeclaration","scope":3867,"src":"3640:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3860,"name":"address","nodeType":"ElementaryTypeName","src":"3640:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3863,"indexed":true,"mutability":"mutable","name":"cardTokenId","nameLocation":"3680:11:20","nodeType":"VariableDeclaration","scope":3867,"src":"3664:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3862,"name":"uint256","nodeType":"ElementaryTypeName","src":"3664:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3865,"indexed":true,"mutability":"mutable","name":"albumTokenId","nameLocation":"3709:12:20","nodeType":"VariableDeclaration","scope":3867,"src":"3693:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3864,"name":"uint256","nodeType":"ElementaryTypeName","src":"3693:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3639:83:20"},"src":"3623:100:20"},{"anonymous":false,"eventSelector":"23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f20","id":3873,"name":"EmergencyWithdrawal","nameLocation":"3732:19:20","nodeType":"EventDefinition","parameters":{"id":3872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"3768:8:20","nodeType":"VariableDeclaration","scope":3873,"src":"3752:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3868,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3871,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"3794:6:20","nodeType":"VariableDeclaration","scope":3873,"src":"3778:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3870,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3751:50:20"},"src":"3726:76:20"},{"anonymous":false,"eventSelector":"ffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb","id":3877,"name":"NewSigner","nameLocation":"3811:9:20","nodeType":"EventDefinition","parameters":{"id":3876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3875,"indexed":true,"mutability":"mutable","name":"newSigner","nameLocation":"3837:9:20","nodeType":"VariableDeclaration","scope":3877,"src":"3821:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3874,"name":"address","nodeType":"ElementaryTypeName","src":"3821:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3820:27:20"},"src":"3805:43:20"},{"anonymous":false,"eventSelector":"abfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec6","id":3883,"name":"NewUris","nameLocation":"3857:7:20","nodeType":"EventDefinition","parameters":{"id":3882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3879,"indexed":true,"mutability":"mutable","name":"newMainUri","nameLocation":"3880:10:20","nodeType":"VariableDeclaration","scope":3883,"src":"3865:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3878,"name":"string","nodeType":"ElementaryTypeName","src":"3865:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3881,"indexed":true,"mutability":"mutable","name":"newSecondaryUri","nameLocation":"3907:15:20","nodeType":"VariableDeclaration","scope":3883,"src":"3892:30:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3880,"name":"string","nodeType":"ElementaryTypeName","src":"3892:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3864:59:20"},"src":"3851:73:20"},{"anonymous":false,"eventSelector":"52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524","id":3893,"name":"OfferCardsExchanged","nameLocation":"3933:19:20","nodeType":"EventDefinition","parameters":{"id":3892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3885,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3969:4:20","nodeType":"VariableDeclaration","scope":3893,"src":"3953:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3884,"name":"address","nodeType":"ElementaryTypeName","src":"3953:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3887,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3991:2:20","nodeType":"VariableDeclaration","scope":3893,"src":"3975:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3886,"name":"address","nodeType":"ElementaryTypeName","src":"3975:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3889,"indexed":false,"mutability":"mutable","name":"cardNumberFrom","nameLocation":"4001:14:20","nodeType":"VariableDeclaration","scope":3893,"src":"3995:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3888,"name":"uint8","nodeType":"ElementaryTypeName","src":"3995:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3891,"indexed":false,"mutability":"mutable","name":"cardNumberTo","nameLocation":"4023:12:20","nodeType":"VariableDeclaration","scope":3893,"src":"4017:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3890,"name":"uint8","nodeType":"ElementaryTypeName","src":"4017:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3952:84:20"},"src":"3927:110:20"},{"anonymous":false,"eventSelector":"1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da","id":3901,"name":"CardTransfered","nameLocation":"4046:14:20","nodeType":"EventDefinition","parameters":{"id":3900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3895,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"4077:4:20","nodeType":"VariableDeclaration","scope":3901,"src":"4061:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3894,"name":"address","nodeType":"ElementaryTypeName","src":"4061:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3897,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4099:2:20","nodeType":"VariableDeclaration","scope":3901,"src":"4083:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3896,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3899,"indexed":false,"mutability":"mutable","name":"cardNumber","nameLocation":"4109:10:20","nodeType":"VariableDeclaration","scope":3901,"src":"4103:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3898,"name":"uint8","nodeType":"ElementaryTypeName","src":"4103:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4060:60:20"},"src":"4040:81:20"},{"anonymous":false,"eventSelector":"368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b","id":3910,"name":"CardsTransfered","nameLocation":"4130:15:20","nodeType":"EventDefinition","parameters":{"id":3909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3903,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"4162:4:20","nodeType":"VariableDeclaration","scope":3910,"src":"4146:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3902,"name":"address","nodeType":"ElementaryTypeName","src":"4146:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3905,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4184:2:20","nodeType":"VariableDeclaration","scope":3910,"src":"4168:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3904,"name":"address","nodeType":"ElementaryTypeName","src":"4168:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3908,"indexed":true,"mutability":"mutable","name":"cardNumber","nameLocation":"4204:10:20","nodeType":"VariableDeclaration","scope":3910,"src":"4188:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3906,"name":"uint8","nodeType":"ElementaryTypeName","src":"4188:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3907,"nodeType":"ArrayTypeName","src":"4188:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"4145:70:20"},"src":"4124:92:20"},{"anonymous":false,"eventSelector":"dbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b1","id":3917,"name":"CardsBurned","nameLocation":"4225:11:20","nodeType":"EventDefinition","parameters":{"id":3916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3912,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"4253:4:20","nodeType":"VariableDeclaration","scope":3917,"src":"4237:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3911,"name":"address","nodeType":"ElementaryTypeName","src":"4237:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3915,"indexed":true,"mutability":"mutable","name":"cardsNumber","nameLocation":"4275:11:20","nodeType":"VariableDeclaration","scope":3917,"src":"4259:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3913,"name":"uint8","nodeType":"ElementaryTypeName","src":"4259:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3914,"nodeType":"ArrayTypeName","src":"4259:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"4236:51:20"},"src":"4219:69:20"},{"body":{"id":3931,"nodeType":"Block","src":"4326:95:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4335:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4339:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4335:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3923,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"4357:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}],"id":3922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4349:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3921,"name":"address","nodeType":"ElementaryTypeName","src":"4349:7:20","typeDescriptions":{}}},"id":3924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4349:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4335:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3929,"nodeType":"IfStatement","src":"4332:77:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3926,"name":"OnlyGammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3641,"src":"4385:22:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3928,"nodeType":"RevertStatement","src":"4378:31:20"}},{"id":3930,"nodeType":"PlaceholderStatement","src":"4415:1:20"}]},"id":3932,"name":"onlyGammaPacksContract","nameLocation":"4301:22:20","nodeType":"ModifierDefinition","parameters":{"id":3918,"nodeType":"ParameterList","parameters":[],"src":"4323:2:20"},"src":"4292:129:20","virtual":false,"visibility":"internal"},{"body":{"id":3946,"nodeType":"Block","src":"4460:92:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3934,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4469:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4469:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3938,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"4491:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}],"id":3937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4483:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3936,"name":"address","nodeType":"ElementaryTypeName","src":"4483:7:20","typeDescriptions":{}}},"id":3939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4483:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4469:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3944,"nodeType":"IfStatement","src":"4466:74:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3941,"name":"OnlyOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"4520:18:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3943,"nodeType":"RevertStatement","src":"4513:27:20"}},{"id":3945,"nodeType":"PlaceholderStatement","src":"4546:1:20"}]},"id":3947,"name":"onlyGammaOffersContract","nameLocation":"4434:23:20","nodeType":"ModifierDefinition","parameters":{"id":3933,"nodeType":"ParameterList","parameters":[],"src":"4457:2:20"},"src":"4425:127:20","virtual":false,"visibility":"internal"},{"body":{"id":3960,"nodeType":"Block","src":"4578:72:20","statements":[{"condition":{"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4587:30:20","subExpression":{"baseExpression":{"expression":{"id":3949,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"4588:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":3950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4599:6:20","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"4588:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3953,"indexExpression":{"expression":{"id":3951,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4606:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4610:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4606:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4588:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3958,"nodeType":"IfStatement","src":"4584:54:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3955,"name":"OnlyOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"4626:10:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4626:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3957,"nodeType":"RevertStatement","src":"4619:19:20"}},{"id":3959,"nodeType":"PlaceholderStatement","src":"4644:1:20"}]},"id":3961,"name":"onlyOwners","nameLocation":"4565:10:20","nodeType":"ModifierDefinition","parameters":{"id":3948,"nodeType":"ParameterList","parameters":[],"src":"4575:2:20"},"src":"4556:94:20","virtual":false,"visibility":"internal"},{"body":{"id":3976,"nodeType":"Block","src":"4698:68:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3965,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3963,"src":"4707:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4727:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4719:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3966,"name":"address","nodeType":"ElementaryTypeName","src":"4719:7:20","typeDescriptions":{}}},"id":3969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4719:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4707:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3974,"nodeType":"IfStatement","src":"4704:50:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3971,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3647,"src":"4738:14:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4738:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3973,"nodeType":"RevertStatement","src":"4731:23:20"}},{"id":3975,"nodeType":"PlaceholderStatement","src":"4760:1:20"}]},"id":3977,"name":"checkAddressZero","nameLocation":"4663:16:20","nodeType":"ModifierDefinition","parameters":{"id":3964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3963,"mutability":"mutable","name":"_address","nameLocation":"4688:8:20","nodeType":"VariableDeclaration","scope":3977,"src":"4680:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3962,"name":"address","nodeType":"ElementaryTypeName","src":"4680:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4679:18:20"},"src":"4654:112:20","virtual":false,"visibility":"internal"},{"body":{"id":4106,"nodeType":"Block","src":"4988:657:20","statements":[{"expression":{"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3996,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"4994:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5005:6:20","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"4994:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4001,"indexExpression":{"expression":{"id":3998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5012:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5016:6:20","memberName":"sender","nodeType":"MemberAccess","src":"5012:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4994:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5026:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4994:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4004,"nodeType":"ExpressionStatement","src":"4994:36:20"},{"expression":{"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4005,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"5037:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4006,"name":"_daiTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3979,"src":"5049:16:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5037:28:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4008,"nodeType":"ExpressionStatement","src":"5037:28:20"},{"expression":{"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4009,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"5071:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4011,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3981,"src":"5112:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4010,"name":"IgammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"5092:19:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaPacksContract_$3694_$","typeString":"type(contract IgammaPacksContract)"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"src":"5071:61:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4014,"nodeType":"ExpressionStatement","src":"5071:61:20"},{"expression":{"id":4019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4015,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"5138:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4017,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3985,"src":"5183:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4016,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"5161:21:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$3740_$","typeString":"type(contract IgammaTicketsContract)"}},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5161:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"src":"5138:67:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"id":4020,"nodeType":"ExpressionStatement","src":"5138:67:20"},{"expression":{"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4021,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"5211:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4023,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"5254:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4022,"name":"IgammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"5233:20:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaOffersContract_$3734_$","typeString":"type(contract IgammaOffersContract)"}},"id":4024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"src":"5211:64:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":4026,"nodeType":"ExpressionStatement","src":"5211:64:20"},{"expression":{"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4027,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"5282:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4028,"name":"_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"5294:8:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5282:20:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4030,"nodeType":"ExpressionStatement","src":"5282:20:20"},{"expression":{"id":4054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4031,"name":"s_mainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"5308:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4038,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"5350:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":4037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5344:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4036,"name":"bytes","nodeType":"ElementaryTypeName","src":"5344:5:20","typeDescriptions":{}}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5344:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"hexValue":"2f","id":4042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5368:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"id":4041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4040,"name":"bytes","nodeType":"ElementaryTypeName","src":"5362:5:20","typeDescriptions":{}}},"id":4043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"313230","id":4046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5380:5:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_583f4f71b32721321fd0f20e674c3938142ce9f243e802c16cfc4def7d2dc523","typeString":"literal_string \"120\""},"value":"120"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_583f4f71b32721321fd0f20e674c3938142ce9f243e802c16cfc4def7d2dc523","typeString":"literal_string \"120\""}],"id":4045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5374:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4044,"name":"bytes","nodeType":"ElementaryTypeName","src":"5374:5:20","typeDescriptions":{}}},"id":4047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"462e6a736f6e","id":4050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:8:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""},"value":"F.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""}],"id":4049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5388:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4048,"name":"bytes","nodeType":"ElementaryTypeName","src":"5388:5:20","typeDescriptions":{}}},"id":4051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5388:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"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":4034,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5327:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5331:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"5327:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5327:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5320:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4032,"name":"string","nodeType":"ElementaryTypeName","src":"5320:6:20","typeDescriptions":{}}},"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:85:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5308:97:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4055,"nodeType":"ExpressionStatement","src":"5308:97:20"},{"expression":{"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4056,"name":"s_secondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"5411:14:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4063,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"5465:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":4062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5459:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4061,"name":"bytes","nodeType":"ElementaryTypeName","src":"5459:5:20","typeDescriptions":{}}},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5459:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"hexValue":"2f","id":4067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5483:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"id":4066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5477:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4065,"name":"bytes","nodeType":"ElementaryTypeName","src":"5477:5:20","typeDescriptions":{}}},"id":4068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5477:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"313231","id":4071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5495:5:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9aa4ff60d3edb7fbc3b53bd780c9274ed80a5ba1a237d38b011edab2b031b4a","typeString":"literal_string \"121\""},"value":"121"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b9aa4ff60d3edb7fbc3b53bd780c9274ed80a5ba1a237d38b011edab2b031b4a","typeString":"literal_string \"121\""}],"id":4070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5489:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4069,"name":"bytes","nodeType":"ElementaryTypeName","src":"5489:5:20","typeDescriptions":{}}},"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5489:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"462e6a736f6e","id":4075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5509:8:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""},"value":"F.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""}],"id":4074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5503:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4073,"name":"bytes","nodeType":"ElementaryTypeName","src":"5503:5:20","typeDescriptions":{}}},"id":4076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5503:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"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":4059,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5442:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5446:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"5442:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5442:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5428:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4057,"name":"string","nodeType":"ElementaryTypeName","src":"5428:6:20","typeDescriptions":{}}},"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5428:97:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5411:114:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4080,"nodeType":"ExpressionStatement","src":"5411:114:20"},{"expression":{"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4081,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"5531:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5543:7:20","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"5531:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4085,"indexExpression":{"id":4083,"name":"_signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"5551:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5531:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5562:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5531:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4088,"nodeType":"ExpressionStatement","src":"5531:35:20"},{"body":{"id":4104,"nodeType":"Block","src":"5603:38:20","statements":[{"expression":{"id":4102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4098,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"5611:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4100,"indexExpression":{"id":4099,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4090,"src":"5628:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5611:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":4101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5633:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5611:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4103,"nodeType":"ExpressionStatement","src":"5611:23:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4090,"src":"5589:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313232","id":4093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5593:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"},"src":"5589:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4105,"initializationExpression":{"assignments":[4090],"declarations":[{"constant":false,"id":4090,"mutability":"mutable","name":"i","nameLocation":"5586:1:20","nodeType":"VariableDeclaration","scope":4105,"src":"5578:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4089,"name":"uint256","nodeType":"ElementaryTypeName","src":"5578:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4091,"nodeType":"VariableDeclarationStatement","src":"5578:9:20"},"loopExpression":{"expression":{"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5598:3:20","subExpression":{"id":4095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4090,"src":"5598:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4097,"nodeType":"ExpressionStatement","src":"5598:3:20"},"nodeType":"ForStatement","src":"5573:68:20"}]},"id":4107,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":3992,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4976:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4980:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4976:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3994,"kind":"baseConstructorSpecifier","modifierName":{"id":3991,"name":"Ownable","nameLocations":["4968:7:20"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"4968:7:20"},"nodeType":"ModifierInvocation","src":"4968:19:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3979,"mutability":"mutable","name":"_daiTokenAddress","nameLocation":"4796:16:20","nodeType":"VariableDeclaration","scope":4107,"src":"4788:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3978,"name":"address","nodeType":"ElementaryTypeName","src":"4788:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3981,"mutability":"mutable","name":"_gammaPacksContract","nameLocation":"4826:19:20","nodeType":"VariableDeclaration","scope":4107,"src":"4818:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3980,"name":"address","nodeType":"ElementaryTypeName","src":"4818:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3983,"mutability":"mutable","name":"_gammaOffersContract","nameLocation":"4859:20:20","nodeType":"VariableDeclaration","scope":4107,"src":"4851:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3982,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3985,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"4893:21:20","nodeType":"VariableDeclaration","scope":4107,"src":"4885:29:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3984,"name":"address","nodeType":"ElementaryTypeName","src":"4885:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3987,"mutability":"mutable","name":"_baseUri","nameLocation":"4934:8:20","nodeType":"VariableDeclaration","scope":4107,"src":"4920:22:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3986,"name":"string","nodeType":"ElementaryTypeName","src":"4920:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3989,"mutability":"mutable","name":"_signer","nameLocation":"4956:7:20","nodeType":"VariableDeclaration","scope":4107,"src":"4948:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3988,"name":"address","nodeType":"ElementaryTypeName","src":"4948:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4782:185:20"},"returnParameters":{"id":3995,"nodeType":"ParameterList","parameters":[],"src":"4988:0:20"},"scope":5808,"src":"4770:875:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4120,"nodeType":"Block","src":"5706:41:20","statements":[{"expression":{"arguments":[{"id":4117,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4109,"src":"5732:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4114,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"5712:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5723:8:20","memberName":"addOwner","nodeType":"MemberAccess","referencedDeclaration":8697,"src":"5712:19:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5712:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4119,"nodeType":"ExpressionStatement","src":"5712:30:20"}]},"functionSelector":"7065cb48","id":4121,"implemented":true,"kind":"function","modifiers":[{"id":4112,"kind":"modifierInvocation","modifierName":{"id":4111,"name":"onlyOwners","nameLocations":["5695:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"5695:10:20"},"nodeType":"ModifierInvocation","src":"5695:10:20"}],"name":"addOwner","nameLocation":"5658:8:20","nodeType":"FunctionDefinition","parameters":{"id":4110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4109,"mutability":"mutable","name":"_newOwner","nameLocation":"5675:9:20","nodeType":"VariableDeclaration","scope":4121,"src":"5667:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4108,"name":"address","nodeType":"ElementaryTypeName","src":"5667:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5666:19:20"},"returnParameters":{"id":4113,"nodeType":"ParameterList","parameters":[],"src":"5706:0:20"},"scope":5808,"src":"5649:98:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4134,"nodeType":"Block","src":"5816:49:20","statements":[{"expression":{"arguments":[{"id":4131,"name":"_ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"5845:14:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4128,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"5822:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5833:11:20","memberName":"removeOwner","nodeType":"MemberAccess","referencedDeclaration":8744,"src":"5822:22:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4133,"nodeType":"ExpressionStatement","src":"5822:38:20"}]},"functionSelector":"173825d9","id":4135,"implemented":true,"kind":"function","modifiers":[{"id":4126,"kind":"modifierInvocation","modifierName":{"id":4125,"name":"onlyOwners","nameLocations":["5805:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"5805:10:20"},"nodeType":"ModifierInvocation","src":"5805:10:20"}],"name":"removeOwner","nameLocation":"5760:11:20","nodeType":"FunctionDefinition","parameters":{"id":4124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4123,"mutability":"mutable","name":"_ownerToRemove","nameLocation":"5780:14:20","nodeType":"VariableDeclaration","scope":4135,"src":"5772:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4122,"name":"address","nodeType":"ElementaryTypeName","src":"5772:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5771:24:20"},"returnParameters":{"id":4127,"nodeType":"ParameterList","parameters":[],"src":"5816:0:20"},"scope":5808,"src":"5751:114:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4148,"nodeType":"Block","src":"5928:44:20","statements":[{"expression":{"arguments":[{"id":4145,"name":"_newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4137,"src":"5956:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4142,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"5934:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5946:9:20","memberName":"addSigner","nodeType":"MemberAccess","referencedDeclaration":8784,"src":"5934:21:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5934:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4147,"nodeType":"ExpressionStatement","src":"5934:33:20"}]},"functionSelector":"eb12d61e","id":4149,"implemented":true,"kind":"function","modifiers":[{"id":4140,"kind":"modifierInvocation","modifierName":{"id":4139,"name":"onlyOwners","nameLocations":["5917:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"5917:10:20"},"nodeType":"ModifierInvocation","src":"5917:10:20"}],"name":"addSigner","nameLocation":"5878:9:20","nodeType":"FunctionDefinition","parameters":{"id":4138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4137,"mutability":"mutable","name":"_newSigner","nameLocation":"5896:10:20","nodeType":"VariableDeclaration","scope":4149,"src":"5888:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4136,"name":"address","nodeType":"ElementaryTypeName","src":"5888:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5887:20:20"},"returnParameters":{"id":4141,"nodeType":"ParameterList","parameters":[],"src":"5928:0:20"},"scope":5808,"src":"5869:103:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4162,"nodeType":"Block","src":"6043:52:20","statements":[{"expression":{"arguments":[{"id":4159,"name":"_signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4151,"src":"6074:15:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4156,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"6049:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6061:12:20","memberName":"removeSigner","nodeType":"MemberAccess","referencedDeclaration":8831,"src":"6049:24:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6049:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4161,"nodeType":"ExpressionStatement","src":"6049:41:20"}]},"functionSelector":"0e316ab7","id":4163,"implemented":true,"kind":"function","modifiers":[{"id":4154,"kind":"modifierInvocation","modifierName":{"id":4153,"name":"onlyOwners","nameLocations":["6032:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6032:10:20"},"nodeType":"ModifierInvocation","src":"6032:10:20"}],"name":"removeSigner","nameLocation":"5985:12:20","nodeType":"FunctionDefinition","parameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4151,"mutability":"mutable","name":"_signerToRemove","nameLocation":"6006:15:20","nodeType":"VariableDeclaration","scope":4163,"src":"5998:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4150,"name":"address","nodeType":"ElementaryTypeName","src":"5998:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5997:25:20"},"returnParameters":{"id":4155,"nodeType":"ParameterList","parameters":[],"src":"6043:0:20"},"scope":5808,"src":"5976:119:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4183,"nodeType":"Block","src":"6220:130:20","statements":[{"expression":{"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4173,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"6226:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4175,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6269:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4174,"name":"IgammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"6248:20:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaOffersContract_$3734_$","typeString":"type(contract IgammaOffersContract)"}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"src":"6226:64:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":4178,"nodeType":"ExpressionStatement","src":"6226:64:20"},{"eventCall":{"arguments":[{"id":4180,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6324:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4179,"name":"NewGammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3836,"src":"6301:22:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6301:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4182,"nodeType":"EmitStatement","src":"6296:49:20"}]},"functionSelector":"128916dc","id":4184,"implemented":true,"kind":"function","modifiers":[{"id":4168,"kind":"modifierInvocation","modifierName":{"id":4167,"name":"onlyOwners","nameLocations":["6170:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6170:10:20"},"nodeType":"ModifierInvocation","src":"6170:10:20"},{"arguments":[{"id":4170,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6198:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4171,"kind":"modifierInvocation","modifierName":{"id":4169,"name":"checkAddressZero","nameLocations":["6181:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"6181:16:20"},"nodeType":"ModifierInvocation","src":"6181:38:20"}],"name":"setGammaOffersContract","nameLocation":"6108:22:20","nodeType":"FunctionDefinition","parameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4165,"mutability":"mutable","name":"_gammaOffersContract","nameLocation":"6139:20:20","nodeType":"VariableDeclaration","scope":4184,"src":"6131:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4164,"name":"address","nodeType":"ElementaryTypeName","src":"6131:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6130:30:20"},"returnParameters":{"id":4172,"nodeType":"ParameterList","parameters":[],"src":"6220:0:20"},"scope":5808,"src":"6099:251:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4204,"nodeType":"Block","src":"6471:125:20","statements":[{"expression":{"id":4198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4194,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"6477:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4196,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4186,"src":"6518:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4195,"name":"IgammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"6498:19:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaPacksContract_$3694_$","typeString":"type(contract IgammaPacksContract)"}},"id":4197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"src":"6477:61:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4199,"nodeType":"ExpressionStatement","src":"6477:61:20"},{"eventCall":{"arguments":[{"id":4201,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4186,"src":"6571:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4200,"name":"NewGammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3840,"src":"6549:21:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6549:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4203,"nodeType":"EmitStatement","src":"6544:47:20"}]},"functionSelector":"cafaa473","id":4205,"implemented":true,"kind":"function","modifiers":[{"id":4189,"kind":"modifierInvocation","modifierName":{"id":4188,"name":"onlyOwners","nameLocations":["6423:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6423:10:20"},"nodeType":"ModifierInvocation","src":"6423:10:20"},{"arguments":[{"id":4191,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4186,"src":"6451:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4192,"kind":"modifierInvocation","modifierName":{"id":4190,"name":"checkAddressZero","nameLocations":["6434:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"6434:16:20"},"nodeType":"ModifierInvocation","src":"6434:37:20"}],"name":"setGammaPacksContract","nameLocation":"6363:21:20","nodeType":"FunctionDefinition","parameters":{"id":4187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4186,"mutability":"mutable","name":"_gammaPacksContract","nameLocation":"6393:19:20","nodeType":"VariableDeclaration","scope":4205,"src":"6385:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4185,"name":"address","nodeType":"ElementaryTypeName","src":"6385:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6384:29:20"},"returnParameters":{"id":4193,"nodeType":"ParameterList","parameters":[],"src":"6471:0:20"},"scope":5808,"src":"6354:242:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4225,"nodeType":"Block","src":"6723:135:20","statements":[{"expression":{"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4215,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"6729:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4217,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"6774:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4216,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"6752:21:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$3740_$","typeString":"type(contract IgammaTicketsContract)"}},"id":4218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6752:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"src":"6729:67:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"id":4220,"nodeType":"ExpressionStatement","src":"6729:67:20"},{"eventCall":{"arguments":[{"id":4222,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"6831:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4221,"name":"NewGammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"6807:23:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4224,"nodeType":"EmitStatement","src":"6802:51:20"}]},"functionSelector":"ddb975e8","id":4226,"implemented":true,"kind":"function","modifiers":[{"id":4210,"kind":"modifierInvocation","modifierName":{"id":4209,"name":"onlyOwners","nameLocations":["6673:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6673:10:20"},"nodeType":"ModifierInvocation","src":"6673:10:20"},{"arguments":[{"id":4212,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"6701:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4213,"kind":"modifierInvocation","modifierName":{"id":4211,"name":"checkAddressZero","nameLocations":["6684:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"6684:16:20"},"nodeType":"ModifierInvocation","src":"6684:39:20"}],"name":"setGammaTicketsContract","nameLocation":"6609:23:20","nodeType":"FunctionDefinition","parameters":{"id":4208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4207,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"6641:21:20","nodeType":"VariableDeclaration","scope":4226,"src":"6633:29:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4206,"name":"address","nodeType":"ElementaryTypeName","src":"6633:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6632:31:20"},"returnParameters":{"id":4214,"nodeType":"ParameterList","parameters":[],"src":"6723:0:20"},"scope":5808,"src":"6600:258:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4237,"nodeType":"Block","src":"6936:36:20","statements":[{"expression":{"id":4235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4233,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"6942:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4234,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4228,"src":"6961:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6942:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4236,"nodeType":"ExpressionStatement","src":"6942:25:20"}]},"functionSelector":"5e31ce48","id":4238,"implemented":true,"kind":"function","modifiers":[{"id":4231,"kind":"modifierInvocation","modifierName":{"id":4230,"name":"onlyGammaPacksContract","nameLocations":["6913:22:20"],"nodeType":"IdentifierPath","referencedDeclaration":3932,"src":"6913:22:20"},"nodeType":"ModifierInvocation","src":"6913:22:20"}],"name":"setPrizesBalance","nameLocation":"6871:16:20","nodeType":"FunctionDefinition","parameters":{"id":4229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4228,"mutability":"mutable","name":"amount","nameLocation":"6896:6:20","nodeType":"VariableDeclaration","scope":4238,"src":"6888:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4227,"name":"uint256","nodeType":"ElementaryTypeName","src":"6888:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6887:16:20"},"returnParameters":{"id":4232,"nodeType":"ParameterList","parameters":[],"src":"6936:0:20"},"scope":5808,"src":"6862:110:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4256,"nodeType":"Block","src":"7039:87:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4245,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"7048:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7058:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7048:11:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4251,"nodeType":"IfStatement","src":"7045:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4248,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"7068:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7068:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4250,"nodeType":"RevertStatement","src":"7061:29:20"}},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4252,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"7096:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4253,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"7115:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7096:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4255,"nodeType":"ExpressionStatement","src":"7096:25:20"}]},"functionSelector":"7232d7d4","id":4257,"implemented":true,"kind":"function","modifiers":[{"id":4243,"kind":"modifierInvocation","modifierName":{"id":4242,"name":"onlyOwners","nameLocations":["7028:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7028:10:20"},"nodeType":"ModifierInvocation","src":"7028:10:20"}],"name":"setMainAlbumPrize","nameLocation":"6985:17:20","nodeType":"FunctionDefinition","parameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"amount","nameLocation":"7011:6:20","nodeType":"VariableDeclaration","scope":4257,"src":"7003:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"7003:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7002:16:20"},"returnParameters":{"id":4244,"nodeType":"ParameterList","parameters":[],"src":"7039:0:20"},"scope":5808,"src":"6976:150:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4275,"nodeType":"Block","src":"7198:92:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4264,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"7207:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7217:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7207:11:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4270,"nodeType":"IfStatement","src":"7204:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4267,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"7227:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7227:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4269,"nodeType":"RevertStatement","src":"7220:29:20"}},{"expression":{"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4271,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"7255:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4272,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"7279:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4274,"nodeType":"ExpressionStatement","src":"7255:30:20"}]},"functionSelector":"ba6c0fbc","id":4276,"implemented":true,"kind":"function","modifiers":[{"id":4262,"kind":"modifierInvocation","modifierName":{"id":4261,"name":"onlyOwners","nameLocations":["7187:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7187:10:20"},"nodeType":"ModifierInvocation","src":"7187:10:20"}],"name":"setSecondaryAlbumPrize","nameLocation":"7139:22:20","nodeType":"FunctionDefinition","parameters":{"id":4260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4259,"mutability":"mutable","name":"amount","nameLocation":"7170:6:20","nodeType":"VariableDeclaration","scope":4276,"src":"7162:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4258,"name":"uint256","nodeType":"ElementaryTypeName","src":"7162:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7161:16:20"},"returnParameters":{"id":4263,"nodeType":"ParameterList","parameters":[],"src":"7198:0:20"},"scope":5808,"src":"7130:160:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4294,"nodeType":"Block","src":"7363:96:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4283,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"7372:6:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":4284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7381:3:20","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7372:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4289,"nodeType":"IfStatement","src":"7369:46:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4286,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"7393:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7393:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4288,"nodeType":"RevertStatement","src":"7386:29:20"}},{"expression":{"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4290,"name":"s_lotteryPrizePercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"7421:24:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4291,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"7448:6:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7421:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4293,"nodeType":"ExpressionStatement","src":"7421:33:20"}]},"functionSelector":"7ce65f7b","id":4295,"implemented":true,"kind":"function","modifiers":[{"id":4281,"kind":"modifierInvocation","modifierName":{"id":4280,"name":"onlyOwners","nameLocations":["7352:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7352:10:20"},"nodeType":"ModifierInvocation","src":"7352:10:20"}],"name":"setLotteryPrizePercentage","nameLocation":"7303:25:20","nodeType":"FunctionDefinition","parameters":{"id":4279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4278,"mutability":"mutable","name":"amount","nameLocation":"7335:6:20","nodeType":"VariableDeclaration","scope":4295,"src":"7329:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4277,"name":"uint8","nodeType":"ElementaryTypeName","src":"7329:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"7328:14:20"},"returnParameters":{"id":4282,"nodeType":"ParameterList","parameters":[],"src":"7363:0:20"},"scope":5808,"src":"7294:165:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4317,"nodeType":"Block","src":"7557:118:20","statements":[{"expression":{"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4304,"name":"s_mainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"7563:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4305,"name":"newMainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"7575:10:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7563:22:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4307,"nodeType":"ExpressionStatement","src":"7563:22:20"},{"expression":{"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4308,"name":"s_secondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"7591:14:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4309,"name":"newSecondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"7608:15:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7591:32:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4311,"nodeType":"ExpressionStatement","src":"7591:32:20"},{"eventCall":{"arguments":[{"id":4313,"name":"newMainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"7642:10:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4314,"name":"newSecondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"7654:15:20","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":4312,"name":"NewUris","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"7634:7:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7634:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4316,"nodeType":"EmitStatement","src":"7629:41:20"}]},"functionSelector":"9c7f707f","id":4318,"implemented":true,"kind":"function","modifiers":[{"id":4302,"kind":"modifierInvocation","modifierName":{"id":4301,"name":"onlyOwners","nameLocations":["7546:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7546:10:20"},"nodeType":"ModifierInvocation","src":"7546:10:20"}],"name":"setUris","nameLocation":"7472:7:20","nodeType":"FunctionDefinition","parameters":{"id":4300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4297,"mutability":"mutable","name":"newMainUri","nameLocation":"7494:10:20","nodeType":"VariableDeclaration","scope":4318,"src":"7480:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4296,"name":"string","nodeType":"ElementaryTypeName","src":"7480:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4299,"mutability":"mutable","name":"newSecondaryUri","nameLocation":"7520:15:20","nodeType":"VariableDeclaration","scope":4318,"src":"7506:29:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4298,"name":"string","nodeType":"ElementaryTypeName","src":"7506:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7479:57:20"},"returnParameters":{"id":4303,"nodeType":"ParameterList","parameters":[],"src":"7557:0:20"},"scope":5808,"src":"7463:212:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4329,"nodeType":"Block","src":"7761:55:20","statements":[{"expression":{"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4325,"name":"s_requireOpenPackSignerValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"7767:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4326,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"7803:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7767:44:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4328,"nodeType":"ExpressionStatement","src":"7767:44:20"}]},"functionSelector":"dbfc05cf","id":4330,"implemented":true,"kind":"function","modifiers":[{"id":4323,"kind":"modifierInvocation","modifierName":{"id":4322,"name":"onlyOwners","nameLocations":["7750:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7750:10:20"},"nodeType":"ModifierInvocation","src":"7750:10:20"}],"name":"changeRequireOpenPackSignerValidation","nameLocation":"7688:37:20","nodeType":"FunctionDefinition","parameters":{"id":4321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4320,"mutability":"mutable","name":"required","nameLocation":"7731:8:20","nodeType":"VariableDeclaration","scope":4330,"src":"7726:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4319,"name":"bool","nodeType":"ElementaryTypeName","src":"7726:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7725:15:20"},"returnParameters":{"id":4324,"nodeType":"ParameterList","parameters":[],"src":"7761:0:20"},"scope":5808,"src":"7679:137:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4341,"nodeType":"Block","src":"7899:52:20","statements":[{"expression":{"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4337,"name":"s_requireOfferValidationInMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7905:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4338,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4332,"src":"7938:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7905:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4340,"nodeType":"ExpressionStatement","src":"7905:41:20"}]},"functionSelector":"f98fd283","id":4342,"implemented":true,"kind":"function","modifiers":[{"id":4335,"kind":"modifierInvocation","modifierName":{"id":4334,"name":"onlyOwners","nameLocations":["7888:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7888:10:20"},"nodeType":"ModifierInvocation","src":"7888:10:20"}],"name":"changeRequireOfferValidationInMint","nameLocation":"7829:34:20","nodeType":"FunctionDefinition","parameters":{"id":4333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4332,"mutability":"mutable","name":"required","nameLocation":"7869:8:20","nodeType":"VariableDeclaration","scope":4342,"src":"7864:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4331,"name":"bool","nodeType":"ElementaryTypeName","src":"7864:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7863:15:20"},"returnParameters":{"id":4336,"nodeType":"ParameterList","parameters":[],"src":"7899:0:20"},"scope":5808,"src":"7820:131:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4353,"nodeType":"Block","src":"8038:56:20","statements":[{"expression":{"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4349,"name":"s_requireOfferValidationInTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"8044:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4350,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4344,"src":"8081:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8044:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4352,"nodeType":"ExpressionStatement","src":"8044:45:20"}]},"functionSelector":"68cc5bc1","id":4354,"implemented":true,"kind":"function","modifiers":[{"id":4347,"kind":"modifierInvocation","modifierName":{"id":4346,"name":"onlyOwners","nameLocations":["8027:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"8027:10:20"},"nodeType":"ModifierInvocation","src":"8027:10:20"}],"name":"changeRequireOfferValidationInTransfer","nameLocation":"7964:38:20","nodeType":"FunctionDefinition","parameters":{"id":4345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4344,"mutability":"mutable","name":"required","nameLocation":"8008:8:20","nodeType":"VariableDeclaration","scope":4354,"src":"8003:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4343,"name":"bool","nodeType":"ElementaryTypeName","src":"8003:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8002:15:20"},"returnParameters":{"id":4348,"nodeType":"ParameterList","parameters":[],"src":"8038:0:20"},"scope":5808,"src":"7955:139:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4365,"nodeType":"Block","src":"8177:37:20","statements":[{"expression":{"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4361,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"8183:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4362,"name":"newPackPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4356,"src":"8197:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8183:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4364,"nodeType":"ExpressionStatement","src":"8183:26:20"}]},"functionSelector":"e1883c6e","id":4366,"implemented":true,"kind":"function","modifiers":[{"id":4359,"kind":"modifierInvocation","modifierName":{"id":4358,"name":"onlyGammaPacksContract","nameLocations":["8154:22:20"],"nodeType":"IdentifierPath","referencedDeclaration":3932,"src":"8154:22:20"},"nodeType":"ModifierInvocation","src":"8154:22:20"}],"name":"changePackPrice","nameLocation":"8107:15:20","nodeType":"FunctionDefinition","parameters":{"id":4357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4356,"mutability":"mutable","name":"newPackPrice","nameLocation":"8131:12:20","nodeType":"VariableDeclaration","scope":4366,"src":"8123:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4355,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8122:22:20"},"returnParameters":{"id":4360,"nodeType":"ParameterList","parameters":[],"src":"8177:0:20"},"scope":5808,"src":"8098:116:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4377,"nodeType":"Block","src":"8303:57:20","statements":[{"expression":{"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4373,"name":"s_maxPacksToOpenAtOnce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"8309:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4374,"name":"_maxPacksToOpenAtOnce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"8334:21:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8309:46:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4376,"nodeType":"ExpressionStatement","src":"8309:46:20"}]},"functionSelector":"241a08fe","id":4378,"implemented":true,"kind":"function","modifiers":[{"id":4371,"kind":"modifierInvocation","modifierName":{"id":4370,"name":"onlyOwners","nameLocations":["8292:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"8292:10:20"},"nodeType":"ModifierInvocation","src":"8292:10:20"}],"name":"changeMaxPacksToOpenAtOnce","nameLocation":"8227:26:20","nodeType":"FunctionDefinition","parameters":{"id":4369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4368,"mutability":"mutable","name":"_maxPacksToOpenAtOnce","nameLocation":"8260:21:20","nodeType":"VariableDeclaration","scope":4378,"src":"8254:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4367,"name":"uint8","nodeType":"ElementaryTypeName","src":"8254:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8253:29:20"},"returnParameters":{"id":4372,"nodeType":"ParameterList","parameters":[],"src":"8303:0:20"},"scope":5808,"src":"8218:142:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4394,"nodeType":"Block","src":"8456:44:20","statements":[{"expression":{"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"8462:33:20","subExpression":{"baseExpression":{"baseExpression":{"id":4387,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8462:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4390,"indexExpression":{"id":4388,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"8476:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8462:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4391,"indexExpression":{"id":4389,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4382,"src":"8482:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8462:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4393,"nodeType":"ExpressionStatement","src":"8462:33:20"}]},"functionSelector":"7155a3ac","id":4395,"implemented":true,"kind":"function","modifiers":[{"id":4385,"kind":"modifierInvocation","modifierName":{"id":4384,"name":"onlyGammaOffersContract","nameLocations":["8432:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"8432:23:20"},"nodeType":"ModifierInvocation","src":"8432:23:20"}],"name":"removeCardByOffer","nameLocation":"8373:17:20","nodeType":"FunctionDefinition","parameters":{"id":4383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"user","nameLocation":"8399:4:20","nodeType":"VariableDeclaration","scope":4395,"src":"8391:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4379,"name":"address","nodeType":"ElementaryTypeName","src":"8391:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4382,"mutability":"mutable","name":"cardNumber","nameLocation":"8411:10:20","nodeType":"VariableDeclaration","scope":4395,"src":"8405:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4381,"name":"uint8","nodeType":"ElementaryTypeName","src":"8405:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8390:32:20"},"returnParameters":{"id":4386,"nodeType":"ParameterList","parameters":[],"src":"8456:0:20"},"scope":5808,"src":"8364:136:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4411,"nodeType":"Block","src":"8597:44:20","statements":[{"expression":{"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8603:33:20","subExpression":{"baseExpression":{"baseExpression":{"id":4404,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8603:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4407,"indexExpression":{"id":4405,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"8617:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8603:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4408,"indexExpression":{"id":4406,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4399,"src":"8623:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8603:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4410,"nodeType":"ExpressionStatement","src":"8603:33:20"}]},"functionSelector":"155e2f92","id":4412,"implemented":true,"kind":"function","modifiers":[{"id":4402,"kind":"modifierInvocation","modifierName":{"id":4401,"name":"onlyGammaOffersContract","nameLocations":["8573:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"8573:23:20"},"nodeType":"ModifierInvocation","src":"8573:23:20"}],"name":"restoreCardByOffer","nameLocation":"8513:18:20","nodeType":"FunctionDefinition","parameters":{"id":4400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4397,"mutability":"mutable","name":"user","nameLocation":"8540:4:20","nodeType":"VariableDeclaration","scope":4412,"src":"8532:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4396,"name":"address","nodeType":"ElementaryTypeName","src":"8532:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4399,"mutability":"mutable","name":"cardNumber","nameLocation":"8552:10:20","nodeType":"VariableDeclaration","scope":4412,"src":"8546:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4398,"name":"uint8","nodeType":"ElementaryTypeName","src":"8546:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8531:32:20"},"returnParameters":{"id":4403,"nodeType":"ParameterList","parameters":[],"src":"8597:0:20"},"scope":5808,"src":"8504:137:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4431,"nodeType":"Block","src":"8770:53:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4423,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8783:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4425,"indexExpression":{"id":4424,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4414,"src":"8797:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8783:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4427,"indexExpression":{"id":4426,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8803:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8783:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8817:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8783:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4422,"id":4430,"nodeType":"Return","src":"8776:42:20"}]},"functionSelector":"8bf670c8","id":4432,"implemented":true,"kind":"function","modifiers":[{"id":4419,"kind":"modifierInvocation","modifierName":{"id":4418,"name":"onlyGammaOffersContract","nameLocations":["8727:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"8727:23:20"},"nodeType":"ModifierInvocation","src":"8727:23:20"}],"name":"hasCardByOffer","nameLocation":"8654:14:20","nodeType":"FunctionDefinition","parameters":{"id":4417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4414,"mutability":"mutable","name":"user","nameLocation":"8682:4:20","nodeType":"VariableDeclaration","scope":4432,"src":"8674:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4413,"name":"address","nodeType":"ElementaryTypeName","src":"8674:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4416,"mutability":"mutable","name":"cardNumber","nameLocation":"8698:10:20","nodeType":"VariableDeclaration","scope":4432,"src":"8692:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4415,"name":"uint8","nodeType":"ElementaryTypeName","src":"8692:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8668:44:20"},"returnParameters":{"id":4422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4421,"mutability":"mutable","name":"has","nameLocation":"8765:3:20","nodeType":"VariableDeclaration","scope":4432,"src":"8760:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4420,"name":"bool","nodeType":"ElementaryTypeName","src":"8760:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8759:10:20"},"scope":5808,"src":"8645:178:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4452,"nodeType":"Block","src":"8927:50:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4444,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8940:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4446,"indexExpression":{"id":4445,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"8954:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8940:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4448,"indexExpression":{"id":4447,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"8960:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8940:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8971:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8940:32:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4443,"id":4451,"nodeType":"Return","src":"8933:39:20"}]},"functionSelector":"886eb60f","id":4453,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4439,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"8902:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4440,"kind":"modifierInvocation","modifierName":{"id":4438,"name":"checkAddressZero","nameLocations":["8885:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"8885:16:20"},"nodeType":"ModifierInvocation","src":"8885:22:20"}],"name":"hasCard","nameLocation":"8836:7:20","nodeType":"FunctionDefinition","parameters":{"id":4437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4434,"mutability":"mutable","name":"user","nameLocation":"8852:4:20","nodeType":"VariableDeclaration","scope":4453,"src":"8844:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4433,"name":"address","nodeType":"ElementaryTypeName","src":"8844:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4436,"mutability":"mutable","name":"cardNum","nameLocation":"8864:7:20","nodeType":"VariableDeclaration","scope":4453,"src":"8858:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4435,"name":"uint8","nodeType":"ElementaryTypeName","src":"8858:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8843:29:20"},"returnParameters":{"id":4443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4442,"mutability":"mutable","name":"has","nameLocation":"8922:3:20","nodeType":"VariableDeclaration","scope":4453,"src":"8917:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4441,"name":"bool","nodeType":"ElementaryTypeName","src":"8917:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8916:10:20"},"scope":5808,"src":"8827:150:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4465,"nodeType":"Block","src":"9041:41:20","statements":[{"expression":{"baseExpression":{"expression":{"id":4460,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"9054:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9065:6:20","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"9054:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4463,"indexExpression":{"id":4462,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"9072:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9054:23:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4459,"id":4464,"nodeType":"Return","src":"9047:30:20"}]},"functionSelector":"2f54bf6e","id":4466,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nameLocation":"8990:7:20","nodeType":"FunctionDefinition","parameters":{"id":4456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"user","nameLocation":"9006:4:20","nodeType":"VariableDeclaration","scope":4466,"src":"8998:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4454,"name":"address","nodeType":"ElementaryTypeName","src":"8998:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8997:14:20"},"returnParameters":{"id":4459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4466,"src":"9035:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4457,"name":"bool","nodeType":"ElementaryTypeName","src":"9035:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9034:6:20"},"scope":5808,"src":"8981:101:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4478,"nodeType":"Block","src":"9147:43:20","statements":[{"expression":{"baseExpression":{"expression":{"id":4473,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"9160:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9172:7:20","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"9160:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4476,"indexExpression":{"id":4475,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4468,"src":"9180:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9160:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4472,"id":4477,"nodeType":"Return","src":"9153:32:20"}]},"functionSelector":"7df73e27","id":4479,"implemented":true,"kind":"function","modifiers":[],"name":"isSigner","nameLocation":"9095:8:20","nodeType":"FunctionDefinition","parameters":{"id":4469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4468,"mutability":"mutable","name":"user","nameLocation":"9112:4:20","nodeType":"VariableDeclaration","scope":4479,"src":"9104:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4467,"name":"address","nodeType":"ElementaryTypeName","src":"9104:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9103:14:20"},"returnParameters":{"id":4472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4479,"src":"9141:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4470,"name":"bool","nodeType":"ElementaryTypeName","src":"9141:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9140:6:20"},"scope":5808,"src":"9086:104:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4491,"nodeType":"Block","src":"9251:68:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4484,"name":"s_lotteryPrizePercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"9265:24:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4485,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"9292:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9265:42:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9264:44:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":4488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:3:20","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"9264:50:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4483,"id":4490,"nodeType":"Return","src":"9257:57:20"}]},"functionSelector":"d780c477","id":4492,"implemented":true,"kind":"function","modifiers":[],"name":"getLotteryPrize","nameLocation":"9203:15:20","nodeType":"FunctionDefinition","parameters":{"id":4480,"nodeType":"ParameterList","parameters":[],"src":"9218:2:20"},"returnParameters":{"id":4483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4492,"src":"9242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4481,"name":"uint256","nodeType":"ElementaryTypeName","src":"9242:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9241:9:20"},"scope":5808,"src":"9194:125:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4510,"nodeType":"Block","src":"9434:46:20","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4504,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"9447:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4506,"indexExpression":{"id":4505,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4494,"src":"9461:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4508,"indexExpression":{"id":4507,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4496,"src":"9467:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":4503,"id":4509,"nodeType":"Return","src":"9440:35:20"}]},"functionSelector":"1585cc4e","id":4511,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4499,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4494,"src":"9412:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4500,"kind":"modifierInvocation","modifierName":{"id":4498,"name":"checkAddressZero","nameLocations":["9395:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"9395:16:20"},"nodeType":"ModifierInvocation","src":"9395:22:20"}],"name":"getCardQuantityByUser","nameLocation":"9332:21:20","nodeType":"FunctionDefinition","parameters":{"id":4497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4494,"mutability":"mutable","name":"user","nameLocation":"9362:4:20","nodeType":"VariableDeclaration","scope":4511,"src":"9354:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4493,"name":"address","nodeType":"ElementaryTypeName","src":"9354:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4496,"mutability":"mutable","name":"cardNum","nameLocation":"9374:7:20","nodeType":"VariableDeclaration","scope":4511,"src":"9368:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4495,"name":"uint8","nodeType":"ElementaryTypeName","src":"9368:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9353:29:20"},"returnParameters":{"id":4503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4511,"src":"9427:5:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4501,"name":"uint8","nodeType":"ElementaryTypeName","src":"9427:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9426:7:20"},"scope":5808,"src":"9323:157:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4525,"nodeType":"Block","src":"9584:37:20","statements":[{"expression":{"baseExpression":{"id":4521,"name":"s_burnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"9597:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4523,"indexExpression":{"id":4522,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4513,"src":"9611:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9597:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4520,"id":4524,"nodeType":"Return","src":"9590:26:20"}]},"functionSelector":"7cf86b72","id":4526,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4516,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4513,"src":"9560:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4517,"kind":"modifierInvocation","modifierName":{"id":4515,"name":"checkAddressZero","nameLocations":["9543:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"9543:16:20"},"nodeType":"ModifierInvocation","src":"9543:22:20"}],"name":"getBurnedCardQttyByUser","nameLocation":"9493:23:20","nodeType":"FunctionDefinition","parameters":{"id":4514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4513,"mutability":"mutable","name":"user","nameLocation":"9525:4:20","nodeType":"VariableDeclaration","scope":4526,"src":"9517:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4512,"name":"address","nodeType":"ElementaryTypeName","src":"9517:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9516:14:20"},"returnParameters":{"id":4520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4526,"src":"9575:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4518,"name":"uint256","nodeType":"ElementaryTypeName","src":"9575:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9574:9:20"},"scope":5808,"src":"9484:137:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4699,"nodeType":"Block","src":"9739:822:20","statements":[{"assignments":[4544],"declarations":[{"constant":false,"id":4544,"mutability":"mutable","name":"cardNumbers","nameLocation":"9760:11:20","nodeType":"VariableDeclaration","scope":4699,"src":"9745:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4542,"name":"uint8","nodeType":"ElementaryTypeName","src":"9745:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4543,"nodeType":"ArrayTypeName","src":"9745:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4550,"initialValue":{"arguments":[{"hexValue":"313232","id":4548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9786:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"}],"id":4547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9774:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4545,"name":"uint8","nodeType":"ElementaryTypeName","src":"9778:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4546,"nodeType":"ArrayTypeName","src":"9778:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9745:45:20"},{"assignments":[4555],"declarations":[{"constant":false,"id":4555,"mutability":"mutable","name":"quantities","nameLocation":"9811:10:20","nodeType":"VariableDeclaration","scope":4699,"src":"9796:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4553,"name":"uint8","nodeType":"ElementaryTypeName","src":"9796:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4554,"nodeType":"ArrayTypeName","src":"9796:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4561,"initialValue":{"arguments":[{"hexValue":"313232","id":4559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9836:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"}],"id":4558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9824:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4556,"name":"uint8","nodeType":"ElementaryTypeName","src":"9828:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4557,"nodeType":"ArrayTypeName","src":"9828:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9824:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9796:44:20"},{"assignments":[4566],"declarations":[{"constant":false,"id":4566,"mutability":"mutable","name":"offers","nameLocation":"9860:6:20","nodeType":"VariableDeclaration","scope":4699,"src":"9846:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":4564,"name":"bool","nodeType":"ElementaryTypeName","src":"9846:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4565,"nodeType":"ArrayTypeName","src":"9846:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":4572,"initialValue":{"arguments":[{"hexValue":"313232","id":4570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"}],"id":4569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9869:10:20","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":4567,"name":"bool","nodeType":"ElementaryTypeName","src":"9873:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4568,"nodeType":"ArrayTypeName","src":"9873:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":4571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9869:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9846:38:20"},{"assignments":[4574],"declarations":[{"constant":false,"id":4574,"mutability":"mutable","name":"index","nameLocation":"9896:5:20","nodeType":"VariableDeclaration","scope":4699,"src":"9890:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4573,"name":"uint8","nodeType":"ElementaryTypeName","src":"9890:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":4576,"initialValue":{"hexValue":"30","id":4575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9904:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9890:15:20"},{"body":{"id":4624,"nodeType":"Block","src":"9941:219:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4586,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"9953:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4588,"indexExpression":{"id":4587,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"9967:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9953:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4590,"indexExpression":{"id":4589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"9973:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9953:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9953:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4623,"nodeType":"IfStatement","src":"9949:205:20","trueBody":{"id":4622,"nodeType":"Block","src":"9981:173:20","statements":[{"expression":{"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4593,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4544,"src":"9991:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4595,"indexExpression":{"id":4594,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10003:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9991:18:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4596,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10012:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9991:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4598,"nodeType":"ExpressionStatement","src":"9991:22:20"},{"expression":{"id":4607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4599,"name":"quantities","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"10023:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4601,"indexExpression":{"id":4600,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10034:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10023:17:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":4602,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"10043:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4604,"indexExpression":{"id":4603,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"10057:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10043:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4606,"indexExpression":{"id":4605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10063:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10043:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10023:42:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4608,"nodeType":"ExpressionStatement","src":"10023:42:20"},{"expression":{"id":4617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4609,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4566,"src":"10075:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":4611,"indexExpression":{"id":4610,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10082:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10075:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4614,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"10120:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10126:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":4612,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"10091:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10111:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"10091:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":4616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10091:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10075:53:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4618,"nodeType":"ExpressionStatement","src":"10075:53:20"},{"expression":{"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10138:7:20","subExpression":{"id":4619,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10138:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4621,"nodeType":"ExpressionStatement","src":"10138:7:20"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4580,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"9926:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313231","id":4581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9931:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"9926:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4625,"initializationExpression":{"assignments":[4578],"declarations":[{"constant":false,"id":4578,"mutability":"mutable","name":"i","nameLocation":"9923:1:20","nodeType":"VariableDeclaration","scope":4625,"src":"9917:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4577,"name":"uint8","nodeType":"ElementaryTypeName","src":"9917:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":4579,"nodeType":"VariableDeclarationStatement","src":"9917:7:20"},"loopExpression":{"expression":{"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9936:3:20","subExpression":{"id":4583,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"9936:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4585,"nodeType":"ExpressionStatement","src":"9936:3:20"},"nodeType":"ForStatement","src":"9912:248:20"},{"assignments":[4630],"declarations":[{"constant":false,"id":4630,"mutability":"mutable","name":"userCardNumbers","nameLocation":"10181:15:20","nodeType":"VariableDeclaration","scope":4699,"src":"10166:30:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4628,"name":"uint8","nodeType":"ElementaryTypeName","src":"10166:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4629,"nodeType":"ArrayTypeName","src":"10166:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4636,"initialValue":{"arguments":[{"id":4634,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10211:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10199:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4631,"name":"uint8","nodeType":"ElementaryTypeName","src":"10203:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4632,"nodeType":"ArrayTypeName","src":"10203:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10199:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10166:51:20"},{"assignments":[4641],"declarations":[{"constant":false,"id":4641,"mutability":"mutable","name":"userCardsQtty","nameLocation":"10238:13:20","nodeType":"VariableDeclaration","scope":4699,"src":"10223:28:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4639,"name":"uint8","nodeType":"ElementaryTypeName","src":"10223:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4640,"nodeType":"ArrayTypeName","src":"10223:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4647,"initialValue":{"arguments":[{"id":4645,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10266:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10254:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4642,"name":"uint8","nodeType":"ElementaryTypeName","src":"10258:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4643,"nodeType":"ArrayTypeName","src":"10258:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10223:49:20"},{"assignments":[4652],"declarations":[{"constant":false,"id":4652,"mutability":"mutable","name":"userCardsOffers","nameLocation":"10292:15:20","nodeType":"VariableDeclaration","scope":4699,"src":"10278:29:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":4650,"name":"bool","nodeType":"ElementaryTypeName","src":"10278:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4651,"nodeType":"ArrayTypeName","src":"10278:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":4658,"initialValue":{"arguments":[{"id":4656,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10321:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10310:10:20","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":4653,"name":"bool","nodeType":"ElementaryTypeName","src":"10314:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4654,"nodeType":"ArrayTypeName","src":"10314:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10310:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10278:49:20"},{"body":{"id":4692,"nodeType":"Block","src":"10366:128:20","statements":[{"expression":{"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4668,"name":"userCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4630,"src":"10374:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4670,"indexExpression":{"id":4669,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10390:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10374:18:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4671,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4544,"src":"10395:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4673,"indexExpression":{"id":4672,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10407:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10395:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10374:35:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4675,"nodeType":"ExpressionStatement","src":"10374:35:20"},{"expression":{"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4676,"name":"userCardsQtty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4641,"src":"10417:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4678,"indexExpression":{"id":4677,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10431:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10417:16:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4679,"name":"quantities","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"10436:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4681,"indexExpression":{"id":4680,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10447:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10436:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10417:32:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4683,"nodeType":"ExpressionStatement","src":"10417:32:20"},{"expression":{"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4684,"name":"userCardsOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"10457:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":4686,"indexExpression":{"id":4685,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10473:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10457:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4687,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4566,"src":"10478:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":4689,"indexExpression":{"id":4688,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10485:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10478:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10457:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4691,"nodeType":"ExpressionStatement","src":"10457:30:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4662,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10350:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4663,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10354:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10350:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4693,"initializationExpression":{"assignments":[4660],"declarations":[{"constant":false,"id":4660,"mutability":"mutable","name":"j","nameLocation":"10347:1:20","nodeType":"VariableDeclaration","scope":4693,"src":"10339:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4659,"name":"uint256","nodeType":"ElementaryTypeName","src":"10339:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4661,"nodeType":"VariableDeclarationStatement","src":"10339:9:20"},"loopExpression":{"expression":{"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10361:3:20","subExpression":{"id":4665,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10361:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4667,"nodeType":"ExpressionStatement","src":"10361:3:20"},"nodeType":"ForStatement","src":"10334:160:20"},{"expression":{"components":[{"id":4694,"name":"userCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4630,"src":"10508:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4695,"name":"userCardsQtty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4641,"src":"10525:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4696,"name":"userCardsOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"10540:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"id":4697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10507:49:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(uint8[] memory,uint8[] memory,bool[] memory)"}},"functionReturnParameters":4539,"id":4698,"nodeType":"Return","src":"10500:56:20"}]},"functionSelector":"0435dcaf","id":4700,"implemented":true,"kind":"function","modifiers":[],"name":"getCardsByUser","nameLocation":"9634:14:20","nodeType":"FunctionDefinition","parameters":{"id":4529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4528,"mutability":"mutable","name":"user","nameLocation":"9662:4:20","nodeType":"VariableDeclaration","scope":4700,"src":"9654:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4527,"name":"address","nodeType":"ElementaryTypeName","src":"9654:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9648:22:20"},"returnParameters":{"id":4539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4700,"src":"9692:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4530,"name":"uint8","nodeType":"ElementaryTypeName","src":"9692:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4531,"nodeType":"ArrayTypeName","src":"9692:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4700,"src":"9708:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4533,"name":"uint8","nodeType":"ElementaryTypeName","src":"9708:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4534,"nodeType":"ArrayTypeName","src":"9708:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4700,"src":"9724:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":4536,"name":"bool","nodeType":"ElementaryTypeName","src":"9724:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4537,"nodeType":"ArrayTypeName","src":"9724:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"9691:47:20"},"scope":5808,"src":"9625:936:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4721,"nodeType":"Block","src":"10715:95:20","statements":[{"expression":{"arguments":[{"expression":{"id":4714,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10761:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10765:6:20","memberName":"sender","nodeType":"MemberAccess","src":"10761:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4716,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4702,"src":"10773:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4717,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4705,"src":"10785:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4718,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4707,"src":"10795:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4712,"name":"LibPackVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"10728:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPackVerifier_$8881_$","typeString":"type(library LibPackVerifier)"}},"id":4713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10744:16:20","memberName":"verifyPackSigner","nodeType":"MemberAccess","referencedDeclaration":8880,"src":"10728:32:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (address,uint256,uint8[] memory,bytes memory) pure returns (address)"}},"id":4719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10728:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4711,"id":4720,"nodeType":"Return","src":"10721:84:20"}]},"functionSelector":"1306952c","id":4722,"implemented":true,"kind":"function","modifiers":[],"name":"verifyPackSigner","nameLocation":"10574:16:20","nodeType":"FunctionDefinition","parameters":{"id":4708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4702,"mutability":"mutable","name":"packNumber","nameLocation":"10604:10:20","nodeType":"VariableDeclaration","scope":4722,"src":"10596:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4701,"name":"uint256","nodeType":"ElementaryTypeName","src":"10596:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4705,"mutability":"mutable","name":"packData","nameLocation":"10635:8:20","nodeType":"VariableDeclaration","scope":4722,"src":"10620:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4703,"name":"uint8","nodeType":"ElementaryTypeName","src":"10620:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4704,"nodeType":"ArrayTypeName","src":"10620:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4707,"mutability":"mutable","name":"signature","nameLocation":"10664:9:20","nodeType":"VariableDeclaration","scope":4722,"src":"10649:24:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4706,"name":"bytes","nodeType":"ElementaryTypeName","src":"10649:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10590:87:20"},"returnParameters":{"id":4711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4710,"mutability":"mutable","name":"signer","nameLocation":"10707:6:20","nodeType":"VariableDeclaration","scope":4722,"src":"10699:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4709,"name":"address","nodeType":"ElementaryTypeName","src":"10699:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10698:16:20"},"scope":5808,"src":"10565:245:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4740,"nodeType":"Block","src":"10928:65:20","statements":[{"expression":{"arguments":[{"expression":{"id":4733,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10944:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10948:6:20","memberName":"sender","nodeType":"MemberAccess","src":"10944:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4735,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"10956:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4736,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"10968:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4737,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4729,"src":"10978:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4732,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4925,"src":"10934:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,uint8[] memory,bytes calldata)"}},"id":4738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10934:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4739,"nodeType":"ExpressionStatement","src":"10934:54:20"}]},"functionSelector":"267b841d","id":4741,"implemented":true,"kind":"function","modifiers":[],"name":"openPack","nameLocation":"10823:8:20","nodeType":"FunctionDefinition","parameters":{"id":4730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4724,"mutability":"mutable","name":"packNumber","nameLocation":"10845:10:20","nodeType":"VariableDeclaration","scope":4741,"src":"10837:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4723,"name":"uint256","nodeType":"ElementaryTypeName","src":"10837:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4727,"mutability":"mutable","name":"packData","nameLocation":"10876:8:20","nodeType":"VariableDeclaration","scope":4741,"src":"10861:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4725,"name":"uint8","nodeType":"ElementaryTypeName","src":"10861:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4726,"nodeType":"ArrayTypeName","src":"10861:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4729,"mutability":"mutable","name":"signature","nameLocation":"10905:9:20","nodeType":"VariableDeclaration","scope":4741,"src":"10890:24:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4728,"name":"bytes","nodeType":"ElementaryTypeName","src":"10890:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10831:87:20"},"returnParameters":{"id":4731,"nodeType":"ParameterList","parameters":[],"src":"10928:0:20"},"scope":5808,"src":"10814:179:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4792,"nodeType":"Block","src":"11153:230:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4756,"name":"packsQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"11162:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11179:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11162:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4759,"name":"packsQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"11184:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4760,"name":"s_maxPacksToOpenAtOnce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"11200:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11184:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11162:60:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4766,"nodeType":"IfStatement","src":"11159:92:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4763,"name":"WrongPacksQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3657,"src":"11231:18:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11231:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4765,"nodeType":"RevertStatement","src":"11224:27:20"}},{"body":{"id":4790,"nodeType":"Block","src":"11298:81:20","statements":[{"expression":{"arguments":[{"expression":{"id":4777,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11316:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11320:6:20","memberName":"sender","nodeType":"MemberAccess","src":"11316:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":4779,"name":"packsNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4746,"src":"11328:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":4781,"indexExpression":{"id":4780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11340:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11328:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":4782,"name":"packsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"11344:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"uint8[] memory[] memory"}},"id":4784,"indexExpression":{"id":4783,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11354:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11344:12:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"baseExpression":{"id":4785,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"11358:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":4787,"indexExpression":{"id":4786,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11369:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11358:13:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4776,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4925,"src":"11306:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,uint8[] memory,bytes calldata)"}},"id":4788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11306:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4789,"nodeType":"ExpressionStatement","src":"11306:66:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11274:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4771,"name":"packsQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"11278:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11274:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4791,"initializationExpression":{"assignments":[4768],"declarations":[{"constant":false,"id":4768,"mutability":"mutable","name":"i","nameLocation":"11271:1:20","nodeType":"VariableDeclaration","scope":4791,"src":"11263:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4767,"name":"uint256","nodeType":"ElementaryTypeName","src":"11263:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4769,"nodeType":"VariableDeclarationStatement","src":"11263:9:20"},"loopExpression":{"expression":{"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11293:3:20","subExpression":{"id":4773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11293:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4775,"nodeType":"ExpressionStatement","src":"11293:3:20"},"nodeType":"ForStatement","src":"11258:121:20"}]},"functionSelector":"203335f6","id":4793,"implemented":true,"kind":"function","modifiers":[],"name":"openPacks","nameLocation":"11006:9:20","nodeType":"FunctionDefinition","parameters":{"id":4754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4743,"mutability":"mutable","name":"packsQuantity","nameLocation":"11027:13:20","nodeType":"VariableDeclaration","scope":4793,"src":"11021:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4742,"name":"uint8","nodeType":"ElementaryTypeName","src":"11021:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4746,"mutability":"mutable","name":"packsNumber","nameLocation":"11063:11:20","nodeType":"VariableDeclaration","scope":4793,"src":"11046:28:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4744,"name":"uint256","nodeType":"ElementaryTypeName","src":"11046:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ArrayTypeName","src":"11046:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4750,"mutability":"mutable","name":"packsData","nameLocation":"11097:9:20","nodeType":"VariableDeclaration","scope":4793,"src":"11080:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"uint8[][]"},"typeName":{"baseType":{"baseType":{"id":4747,"name":"uint8","nodeType":"ElementaryTypeName","src":"11080:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4748,"nodeType":"ArrayTypeName","src":"11080:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"id":4749,"nodeType":"ArrayTypeName","src":"11080:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint8_$dyn_storage_$dyn_storage_ptr","typeString":"uint8[][]"}},"visibility":"internal"},{"constant":false,"id":4753,"mutability":"mutable","name":"signatures","nameLocation":"11129:10:20","nodeType":"VariableDeclaration","scope":4793,"src":"11112:27:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4751,"name":"bytes","nodeType":"ElementaryTypeName","src":"11112:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4752,"nodeType":"ArrayTypeName","src":"11112:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11015:128:20"},"returnParameters":{"id":4755,"nodeType":"ParameterList","parameters":[],"src":"11153:0:20"},"scope":5808,"src":"10997:386:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4924,"nodeType":"Block","src":"11519:1197:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4807,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"11560:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4805,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"11528:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11547:12:20","memberName":"getPackOwner","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"11528:31:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11528:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4809,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"11575:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11528:51:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4814,"nodeType":"IfStatement","src":"11525:76:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4811,"name":"NotYourPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"11588:11:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11588:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4813,"nodeType":"RevertStatement","src":"11581:20:20"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4815,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"11642:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11651:6:20","memberName":"length","nodeType":"MemberAccess","src":"11642:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3135","id":4817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:2:20","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"11642:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4822,"nodeType":"IfStatement","src":"11639:52:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4819,"name":"CardLimitExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3661,"src":"11672:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11672:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4821,"nodeType":"RevertStatement","src":"11665:26:20"}},{"condition":{"id":4823,"name":"s_requireOpenPackSignerValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"11702:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4845,"nodeType":"IfStatement","src":"11698:342:20","trueBody":{"id":4844,"nodeType":"Block","src":"11737:303:20","statements":[{"assignments":[4825],"declarations":[{"constant":false,"id":4825,"mutability":"mutable","name":"signer","nameLocation":"11834:6:20","nodeType":"VariableDeclaration","scope":4844,"src":"11826:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4824,"name":"address","nodeType":"ElementaryTypeName","src":"11826:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4834,"initialValue":{"arguments":[{"expression":{"id":4828,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11885:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11889:6:20","memberName":"sender","nodeType":"MemberAccess","src":"11885:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4830,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"11905:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4831,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"11925:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4832,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4802,"src":"11943:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4826,"name":"LibPackVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"11843:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPackVerifier_$8881_$","typeString":"type(library LibPackVerifier)"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11859:16:20","memberName":"verifyPackSigner","nodeType":"MemberAccess","referencedDeclaration":8880,"src":"11843:32:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (address,uint256,uint8[] memory,bytes memory) pure returns (address)"}},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:117:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11826:134:20"},{"condition":{"id":4839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11978:28:20","subExpression":{"baseExpression":{"expression":{"id":4835,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"11979:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11991:7:20","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"11979:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4838,"indexExpression":{"id":4837,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"11999:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11979:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4843,"nodeType":"IfStatement","src":"11975:58:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4840,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3653,"src":"12015:16:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12015:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4842,"nodeType":"RevertStatement","src":"12008:25:20"}}]}},{"expression":{"arguments":[{"id":4849,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"12074:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4850,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"12086:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4846,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"12046:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12065:8:20","memberName":"openPack","nodeType":"MemberAccess","referencedDeclaration":3685,"src":"12046:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12046:45:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4852,"nodeType":"ExpressionStatement","src":"12046:45:20"},{"expression":{"id":4859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4853,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"12129:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4854,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"12148:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4855,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"12162:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"36","id":4856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12176:1:20","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"12162:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12148:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12129:48:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4860,"nodeType":"ExpressionStatement","src":"12129:48:20"},{"body":{"id":4916,"nodeType":"Block","src":"12250:412:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4868,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12261:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4870,"indexExpression":{"id":4869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12270:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12261:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"313230","id":4871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12276:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"12261:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4894,"nodeType":"Block","src":"12364:86:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4883,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"12377:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4887,"indexExpression":{"baseExpression":{"id":4884,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12394:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4886,"indexExpression":{"id":4885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12403:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12394:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12377:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35303030","id":4888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12409:4:20","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5000"},"src":"12377:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4893,"nodeType":"IfStatement","src":"12374:67:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4890,"name":"InvalidCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"12422:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12422:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4892,"nodeType":"RevertStatement","src":"12415:26:20"}}]},"id":4895,"nodeType":"IfStatement","src":"12258:192:20","trueBody":{"id":4882,"nodeType":"Block","src":"12280:78:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4873,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"12293:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4875,"indexExpression":{"hexValue":"313230","id":4874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12310:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12293:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"33303030","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317:4:20","typeDescriptions":{"typeIdentifier":"t_rational_3000_by_1","typeString":"int_const 3000"},"value":"3000"},"src":"12293:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4881,"nodeType":"IfStatement","src":"12290:59:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4878,"name":"InvalidCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"12330:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12330:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4880,"nodeType":"RevertStatement","src":"12323:26:20"}}]}},{"expression":{"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12457:31:20","subExpression":{"baseExpression":{"id":4896,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"12457:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4900,"indexExpression":{"baseExpression":{"id":4897,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12474:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4899,"indexExpression":{"id":4898,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12483:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12474:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12457:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4902,"nodeType":"ExpressionStatement","src":"12457:31:20"},{"expression":{"id":4910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12539:34:20","subExpression":{"baseExpression":{"baseExpression":{"id":4903,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"12539:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4908,"indexExpression":{"id":4904,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"12553:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12539:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4909,"indexExpression":{"baseExpression":{"id":4905,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12559:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4907,"indexExpression":{"id":4906,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12568:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12559:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12539:32:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4911,"nodeType":"ExpressionStatement","src":"12539:34:20"},{"id":4915,"nodeType":"UncheckedBlock","src":"12624:32:20","statements":[{"expression":{"id":4913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12644:3:20","subExpression":{"id":4912,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12644:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4914,"nodeType":"ExpressionStatement","src":"12644:3:20"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12228:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4865,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12232:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12241:6:20","memberName":"length","nodeType":"MemberAccess","src":"12232:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12228:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4917,"initializationExpression":{"assignments":[4862],"declarations":[{"constant":false,"id":4862,"mutability":"mutable","name":"i","nameLocation":"12225:1:20","nodeType":"VariableDeclaration","scope":4917,"src":"12217:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4861,"name":"uint256","nodeType":"ElementaryTypeName","src":"12217:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4863,"nodeType":"VariableDeclarationStatement","src":"12217:9:20"},"nodeType":"ForStatement","src":"12212:450:20"},{"eventCall":{"arguments":[{"id":4919,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"12684:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4920,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12690:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4921,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"12700:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4918,"name":"PackOpened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"12673:10:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint8[] memory,uint256)"}},"id":4922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12673:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4923,"nodeType":"EmitStatement","src":"12668:43:20"}]},"id":4925,"implemented":true,"kind":"function","modifiers":[],"name":"_openPack","nameLocation":"11396:9:20","nodeType":"FunctionDefinition","parameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4795,"mutability":"mutable","name":"user","nameLocation":"11419:4:20","nodeType":"VariableDeclaration","scope":4925,"src":"11411:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4794,"name":"address","nodeType":"ElementaryTypeName","src":"11411:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4797,"mutability":"mutable","name":"packNumber","nameLocation":"11437:10:20","nodeType":"VariableDeclaration","scope":4925,"src":"11429:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4796,"name":"uint256","nodeType":"ElementaryTypeName","src":"11429:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4800,"mutability":"mutable","name":"packData","nameLocation":"11468:8:20","nodeType":"VariableDeclaration","scope":4925,"src":"11453:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4798,"name":"uint8","nodeType":"ElementaryTypeName","src":"11453:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4799,"nodeType":"ArrayTypeName","src":"11453:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4802,"mutability":"mutable","name":"signature","nameLocation":"11497:9:20","nodeType":"VariableDeclaration","scope":4925,"src":"11482:24:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4801,"name":"bytes","nodeType":"ElementaryTypeName","src":"11482:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11405:105:20"},"returnParameters":{"id":4804,"nodeType":"ParameterList","parameters":[],"src":"11519:0:20"},"scope":5808,"src":"11387:1329:20","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4998,"nodeType":"Block","src":"12913:367:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4944,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"12922:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4946,"indexExpression":{"id":4945,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"12936:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12922:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4948,"indexExpression":{"id":4947,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"12942:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12922:35:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12922:40:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4951,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"12966:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4953,"indexExpression":{"id":4952,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"12980:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12966:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4955,"indexExpression":{"id":4954,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"12984:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12966:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13001:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12966:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12922:80:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4962,"nodeType":"IfStatement","src":"12919:120:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4959,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13011:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13011:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4961,"nodeType":"RevertStatement","src":"13004:35:20"}},{"expression":{"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13046:37:20","subExpression":{"baseExpression":{"baseExpression":{"id":4963,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13046:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4966,"indexExpression":{"id":4964,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"13060:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13046:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4967,"indexExpression":{"id":4965,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"13066:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13046:35:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4969,"nodeType":"ExpressionStatement","src":"13046:37:20"},{"expression":{"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13089:35:20","subExpression":{"baseExpression":{"baseExpression":{"id":4970,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13089:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4973,"indexExpression":{"id":4971,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"13103:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13089:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4974,"indexExpression":{"id":4972,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"13107:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13089:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4976,"nodeType":"ExpressionStatement","src":"13089:35:20"},{"expression":{"id":4982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13130:33:20","subExpression":{"baseExpression":{"baseExpression":{"id":4977,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13130:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4980,"indexExpression":{"id":4978,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"13144:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13130:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4981,"indexExpression":{"id":4979,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"13148:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13130:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4983,"nodeType":"ExpressionStatement","src":"13130:33:20"},{"expression":{"id":4989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13169:35:20","subExpression":{"baseExpression":{"baseExpression":{"id":4984,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13169:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4987,"indexExpression":{"id":4985,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"13183:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13169:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4988,"indexExpression":{"id":4986,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"13189:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13169:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4990,"nodeType":"ExpressionStatement","src":"13169:35:20"},{"eventCall":{"arguments":[{"id":4992,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"13236:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4993,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"13242:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4994,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"13246:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":4995,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"13262:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4991,"name":"OfferCardsExchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"13216:19:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint8_$_t_uint8_$returns$__$","typeString":"function (address,address,uint8,uint8)"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13216:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4997,"nodeType":"EmitStatement","src":"13211:64:20"}]},"functionSelector":"ad1684fa","id":4999,"implemented":true,"kind":"function","modifiers":[{"id":4936,"kind":"modifierInvocation","modifierName":{"id":4935,"name":"onlyGammaOffersContract","nameLocations":["12845:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"12845:23:20"},"nodeType":"ModifierInvocation","src":"12845:23:20"},{"arguments":[{"id":4938,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"12886:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4939,"kind":"modifierInvocation","modifierName":{"id":4937,"name":"checkAddressZero","nameLocations":["12869:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"12869:16:20"},"nodeType":"ModifierInvocation","src":"12869:22:20"},{"arguments":[{"id":4941,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"12909:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4942,"kind":"modifierInvocation","modifierName":{"id":4940,"name":"checkAddressZero","nameLocations":["12892:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"12892:16:20"},"nodeType":"ModifierInvocation","src":"12892:20:20"}],"name":"exchangeCardsOffer","nameLocation":"12729:18:20","nodeType":"FunctionDefinition","parameters":{"id":4934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4927,"mutability":"mutable","name":"from","nameLocation":"12761:4:20","nodeType":"VariableDeclaration","scope":4999,"src":"12753:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4926,"name":"address","nodeType":"ElementaryTypeName","src":"12753:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4929,"mutability":"mutable","name":"cardNumberFrom","nameLocation":"12777:14:20","nodeType":"VariableDeclaration","scope":4999,"src":"12771:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4928,"name":"uint8","nodeType":"ElementaryTypeName","src":"12771:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4931,"mutability":"mutable","name":"to","nameLocation":"12805:2:20","nodeType":"VariableDeclaration","scope":4999,"src":"12797:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4930,"name":"address","nodeType":"ElementaryTypeName","src":"12797:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4933,"mutability":"mutable","name":"cardNumberTo","nameLocation":"12819:12:20","nodeType":"VariableDeclaration","scope":4999,"src":"12813:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4932,"name":"uint8","nodeType":"ElementaryTypeName","src":"12813:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12747:88:20"},"returnParameters":{"id":4943,"nodeType":"ParameterList","parameters":[],"src":"12913:0:20"},"scope":5808,"src":"12720:560:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5082,"nodeType":"Block","src":"13366:815:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5009,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13375:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5012,"indexExpression":{"expression":{"id":5010,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13389:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13393:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13389:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13375:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5014,"indexExpression":{"id":5013,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"13401:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13375:37:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13375:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5020,"nodeType":"IfStatement","src":"13372:82:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5017,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13426:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13426:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5019,"nodeType":"RevertStatement","src":"13419:35:20"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5021,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"13463:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5022,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13469:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13473:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13469:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13463:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5028,"nodeType":"IfStatement","src":"13460:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5025,"name":"InvalidTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"13488:15:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13488:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5027,"nodeType":"RevertStatement","src":"13481:24:20"}},{"condition":{"id":5029,"name":"s_requireOfferValidationInTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"13516:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5059,"nodeType":"IfStatement","src":"13512:529:20","trueBody":{"id":5058,"nodeType":"Block","src":"13552:489:20","statements":[{"assignments":[5031],"declarations":[{"constant":false,"id":5031,"mutability":"mutable","name":"hasOffer","nameLocation":"13565:8:20","nodeType":"VariableDeclaration","scope":5058,"src":"13560:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5030,"name":"bool","nodeType":"ElementaryTypeName","src":"13560:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5038,"initialValue":{"arguments":[{"expression":{"id":5034,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13605:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13609:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13605:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5036,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"13617:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5032,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"13576:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13596:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"13576:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13576:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13560:68:20"},{"assignments":[5040],"declarations":[{"constant":false,"id":5040,"mutability":"mutable","name":"hasMoreThanOne","nameLocation":"13641:14:20","nodeType":"VariableDeclaration","scope":5058,"src":"13636:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5039,"name":"bool","nodeType":"ElementaryTypeName","src":"13636:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5049,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5041,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13658:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5044,"indexExpression":{"expression":{"id":5042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13672:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13676:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13672:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13658:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5046,"indexExpression":{"id":5045,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"13684:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13658:37:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13698:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13658:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13636:63:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13979:9:20","subExpression":{"id":5051,"name":"hasOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5031,"src":"13980:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5053,"name":"hasMoreThanOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5040,"src":"13992:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13979:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320636172642068617320616e206f666665722e","id":5055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14008:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""},"value":"This card has an offer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""}],"id":5050,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13971:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13971:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5057,"nodeType":"ExpressionStatement","src":"13971:63:20"}]}},{"expression":{"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"14047:39:20","subExpression":{"baseExpression":{"baseExpression":{"id":5060,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14047:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5064,"indexExpression":{"expression":{"id":5061,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14065:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14061:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14047:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5065,"indexExpression":{"id":5063,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"14073:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14047:37:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5067,"nodeType":"ExpressionStatement","src":"14047:39:20"},{"expression":{"id":5073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14092:31:20","subExpression":{"baseExpression":{"baseExpression":{"id":5068,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14092:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5071,"indexExpression":{"id":5069,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"14106:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14092:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5072,"indexExpression":{"id":5070,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"14110:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14092:29:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5074,"nodeType":"ExpressionStatement","src":"14092:31:20"},{"eventCall":{"arguments":[{"expression":{"id":5076,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14149:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14153:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14149:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5078,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"14161:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5079,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"14165:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":5075,"name":"CardTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3901,"src":"14134:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,address,uint8)"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14134:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5081,"nodeType":"EmitStatement","src":"14129:47:20"}]},"functionSelector":"2ca699e7","id":5083,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5006,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"13362:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5007,"kind":"modifierInvocation","modifierName":{"id":5005,"name":"checkAddressZero","nameLocations":["13345:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"13345:16:20"},"nodeType":"ModifierInvocation","src":"13345:20:20"}],"name":"transferCard","nameLocation":"13293:12:20","nodeType":"FunctionDefinition","parameters":{"id":5004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5001,"mutability":"mutable","name":"to","nameLocation":"13314:2:20","nodeType":"VariableDeclaration","scope":5083,"src":"13306:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5000,"name":"address","nodeType":"ElementaryTypeName","src":"13306:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5003,"mutability":"mutable","name":"cardNumber","nameLocation":"13324:10:20","nodeType":"VariableDeclaration","scope":5083,"src":"13318:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5002,"name":"uint8","nodeType":"ElementaryTypeName","src":"13318:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13305:30:20"},"returnParameters":{"id":5008,"nodeType":"ParameterList","parameters":[],"src":"13366:0:20"},"scope":5808,"src":"13284:897:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5189,"nodeType":"Block","src":"14278:928:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5094,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"14287:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5095,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14293:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14297:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14293:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14287:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5101,"nodeType":"IfStatement","src":"14284:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5098,"name":"InvalidTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"14312:15:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14312:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5100,"nodeType":"RevertStatement","src":"14305:24:20"}},{"body":{"id":5180,"nodeType":"Block","src":"14381:766:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5112,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14392:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5115,"indexExpression":{"expression":{"id":5113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14406:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14410:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14406:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14392:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5119,"indexExpression":{"baseExpression":{"id":5116,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14418:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5118,"indexExpression":{"id":5117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14430:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14418:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14392:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14437:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14392:46:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5125,"nodeType":"IfStatement","src":"14389:86:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5122,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"14447:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14447:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5124,"nodeType":"RevertStatement","src":"14440:35:20"}},{"expression":{"id":5134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"14483:43:20","subExpression":{"baseExpression":{"baseExpression":{"id":5126,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14483:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5132,"indexExpression":{"expression":{"id":5127,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14497:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14501:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14497:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14483:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5133,"indexExpression":{"baseExpression":{"id":5129,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14509:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5131,"indexExpression":{"id":5130,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14521:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14509:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14483:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5135,"nodeType":"ExpressionStatement","src":"14483:43:20"},{"expression":{"id":5143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14534:35:20","subExpression":{"baseExpression":{"baseExpression":{"id":5136,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14534:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5141,"indexExpression":{"id":5137,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"14548:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14534:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5142,"indexExpression":{"baseExpression":{"id":5138,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14552:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5140,"indexExpression":{"id":5139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14564:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14552:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14534:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5144,"nodeType":"ExpressionStatement","src":"14534:35:20"},{"condition":{"id":5145,"name":"s_requireOfferValidationInTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"14582:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5179,"nodeType":"IfStatement","src":"14578:563:20","trueBody":{"id":5178,"nodeType":"Block","src":"14618:523:20","statements":[{"assignments":[5147],"declarations":[{"constant":false,"id":5147,"mutability":"mutable","name":"hasOffer","nameLocation":"14633:8:20","nodeType":"VariableDeclaration","scope":5178,"src":"14628:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5146,"name":"bool","nodeType":"ElementaryTypeName","src":"14628:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5156,"initialValue":{"arguments":[{"expression":{"id":5150,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14673:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14677:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14673:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5152,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14685:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5154,"indexExpression":{"id":5153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14697:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14685:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5148,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"14644:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14664:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"14644:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14644:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14628:72:20"},{"assignments":[5158],"declarations":[{"constant":false,"id":5158,"mutability":"mutable","name":"hasMoreThanOne","nameLocation":"14715:14:20","nodeType":"VariableDeclaration","scope":5178,"src":"14710:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5157,"name":"bool","nodeType":"ElementaryTypeName","src":"14710:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5169,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5159,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14732:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5162,"indexExpression":{"expression":{"id":5160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14746:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14750:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14746:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14732:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5166,"indexExpression":{"baseExpression":{"id":5163,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14758:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5165,"indexExpression":{"id":5164,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14770:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14758:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14732:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14776:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14732:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14710:67:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15077:9:20","subExpression":{"id":5171,"name":"hasOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"15078:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5173,"name":"hasMoreThanOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"15090:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15077:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320636172642068617320616e206f666665722e","id":5175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15106:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""},"value":"This card has an offer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""}],"id":5170,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15069:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15069:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5177,"nodeType":"ExpressionStatement","src":"15069:63:20"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14352:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5106,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14356:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14368:6:20","memberName":"length","nodeType":"MemberAccess","src":"14356:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14352:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5181,"initializationExpression":{"assignments":[5103],"declarations":[{"constant":false,"id":5103,"mutability":"mutable","name":"i","nameLocation":"14349:1:20","nodeType":"VariableDeclaration","scope":5181,"src":"14341:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5102,"name":"uint256","nodeType":"ElementaryTypeName","src":"14341:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5104,"nodeType":"VariableDeclarationStatement","src":"14341:9:20"},"loopExpression":{"expression":{"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14376:3:20","subExpression":{"id":5109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14376:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5111,"nodeType":"ExpressionStatement","src":"14376:3:20"},"nodeType":"ForStatement","src":"14336:811:20"},{"eventCall":{"arguments":[{"expression":{"id":5183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15173:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15177:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15173:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5185,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"15185:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5186,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"15189:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}],"id":5182,"name":"CardsTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"15157:15:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint8[] memory)"}},"id":5187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15157:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5188,"nodeType":"EmitStatement","src":"15152:49:20"}]},"functionSelector":"a1af8ad4","id":5190,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5091,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"14274:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5092,"kind":"modifierInvocation","modifierName":{"id":5090,"name":"checkAddressZero","nameLocations":["14257:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"14257:16:20"},"nodeType":"ModifierInvocation","src":"14257:20:20"}],"name":"transferCards","nameLocation":"14194:13:20","nodeType":"FunctionDefinition","parameters":{"id":5089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5085,"mutability":"mutable","name":"to","nameLocation":"14216:2:20","nodeType":"VariableDeclaration","scope":5190,"src":"14208:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5084,"name":"address","nodeType":"ElementaryTypeName","src":"14208:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5088,"mutability":"mutable","name":"cardNumbers","nameLocation":"14237:11:20","nodeType":"VariableDeclaration","scope":5190,"src":"14220:28:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5086,"name":"uint8","nodeType":"ElementaryTypeName","src":"14220:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5087,"nodeType":"ArrayTypeName","src":"14220:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"14207:42:20"},"returnParameters":{"id":5093,"nodeType":"ParameterList","parameters":[],"src":"14278:0:20"},"scope":5808,"src":"14185:1021:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5319,"nodeType":"Block","src":"15371:1120:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5195,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"15436:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5198,"indexExpression":{"expression":{"id":5196,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15450:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15454:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15450:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15436:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5200,"indexExpression":{"hexValue":"313230","id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15462:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15436:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15436:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5206,"nodeType":"IfStatement","src":"15433:75:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5203,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15480:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15480:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5205,"nodeType":"RevertStatement","src":"15473:35:20"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5207,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"15517:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5208,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"15535:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15517:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5213,"nodeType":"IfStatement","src":"15514:68:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5210,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"15560:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15560:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5212,"nodeType":"RevertStatement","src":"15553:29:20"}},{"assignments":[5215],"declarations":[{"constant":false,"id":5215,"mutability":"mutable","name":"contractBalance","nameLocation":"15597:15:20","nodeType":"VariableDeclaration","scope":5319,"src":"15589:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5214,"name":"uint256","nodeType":"ElementaryTypeName","src":"15589:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5225,"initialValue":{"arguments":[{"arguments":[{"id":5222,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15651:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}],"id":5221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15643:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5220,"name":"address","nodeType":"ElementaryTypeName","src":"15643:7:20","typeDescriptions":{}}},"id":5223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15643:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":5217,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"15622:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5216,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"15615:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15615:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15633:9:20","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"15615:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15615:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15589:68:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5226,"name":"contractBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"15666:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5227,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"15684:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15666:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5232,"nodeType":"IfStatement","src":"15663:65:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5229,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"15709:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15709:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5231,"nodeType":"RevertStatement","src":"15702:26:20"}},{"assignments":[5234],"declarations":[{"constant":false,"id":5234,"mutability":"mutable","name":"unfinished","nameLocation":"15800:10:20","nodeType":"VariableDeclaration","scope":5319,"src":"15795:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5233,"name":"bool","nodeType":"ElementaryTypeName","src":"15795:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5235,"nodeType":"VariableDeclarationStatement","src":"15795:15:20"},{"body":{"id":5269,"nodeType":"Block","src":"15846:181:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5242,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"15858:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5245,"indexExpression":{"expression":{"id":5243,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15872:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15876:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15872:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15858:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5247,"indexExpression":{"id":5246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"15884:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15858:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15890:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15858:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5256,"nodeType":"IfStatement","src":"15854:90:20","trueBody":{"id":5255,"nodeType":"Block","src":"15893:51:20","statements":[{"expression":{"id":5252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5250,"name":"unfinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"15903:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15916:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15903:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5253,"nodeType":"ExpressionStatement","src":"15903:17:20"},{"id":5254,"nodeType":"Break","src":"15930:5:20"}]}},{"expression":{"id":5263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"15951:30:20","subExpression":{"baseExpression":{"baseExpression":{"id":5257,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"15951:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5261,"indexExpression":{"expression":{"id":5258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15965:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15965:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15951:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5262,"indexExpression":{"id":5260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"15977:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15951:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5264,"nodeType":"ExpressionStatement","src":"15951:30:20"},{"id":5268,"nodeType":"UncheckedBlock","src":"15989:32:20","statements":[{"expression":{"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16009:3:20","subExpression":{"id":5265,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"16009:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5267,"nodeType":"ExpressionStatement","src":"16009:3:20"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5239,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"15835:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313230","id":5240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15840:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"15835:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5270,"initializationExpression":{"assignments":[5237],"declarations":[{"constant":false,"id":5237,"mutability":"mutable","name":"i","nameLocation":"15832:1:20","nodeType":"VariableDeclaration","scope":5270,"src":"15826:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5236,"name":"uint8","nodeType":"ElementaryTypeName","src":"15826:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5238,"nodeType":"VariableDeclarationStatement","src":"15826:7:20"},"nodeType":"ForStatement","src":"15821:206:20"},{"condition":{"id":5271,"name":"unfinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"16035:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5275,"nodeType":"IfStatement","src":"16032:41:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5272,"name":"MustCompleteAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3669,"src":"16054:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5274,"nodeType":"RevertStatement","src":"16047:26:20"}},{"expression":{"arguments":[{"expression":{"id":5277,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16122:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16126:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16122:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5279,"name":"s_mainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"16134:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"313230","id":5280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16145:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"hexValue":"32","id":5281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16150:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":5276,"name":"safeMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"16113:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,string memory,uint256,uint8)"}},"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16113:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5283,"nodeType":"ExpressionStatement","src":"16113:39:20"},{"expression":{"arguments":[{"expression":{"id":5288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16216:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16220:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16216:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5290,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"16228:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5285,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"16196:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5284,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"16189:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16189:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16207:8:20","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":361,"src":"16189:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16189:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5292,"nodeType":"ExpressionStatement","src":"16189:56:20"},{"expression":{"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5293,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"16251:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5294,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"16270:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16251:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5296,"nodeType":"ExpressionStatement","src":"16251:35:20"},{"assignments":[5298],"declarations":[{"constant":false,"id":5298,"mutability":"mutable","name":"userOffersRemoved","nameLocation":"16298:17:20","nodeType":"VariableDeclaration","scope":5319,"src":"16293:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5297,"name":"bool","nodeType":"ElementaryTypeName","src":"16293:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5304,"initialValue":{"arguments":[{"expression":{"id":5301,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16357:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16361:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16357:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5299,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"16318:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16338:18:20","memberName":"removeOffersByUser","nodeType":"MemberAccess","referencedDeclaration":3710,"src":"16318:38:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":5303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16318:50:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16293:75:20"},{"condition":{"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16377:18:20","subExpression":{"id":5305,"name":"userOffersRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"16378:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5310,"nodeType":"IfStatement","src":"16374:54:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5307,"name":"CannotRemoveUserOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3671,"src":"16404:22:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16404:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5309,"nodeType":"RevertStatement","src":"16397:31:20"}},{"eventCall":{"arguments":[{"expression":{"id":5312,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16455:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16459:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16455:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":5314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16467:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":5311,"name":"AlbumCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3859,"src":"16440:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":5315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16440:29:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5316,"nodeType":"EmitStatement","src":"16435:34:20"},{"expression":{"hexValue":"74727565","id":5317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16482:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5194,"id":5318,"nodeType":"Return","src":"16475:11:20"}]},"functionSelector":"9038f414","id":5320,"implemented":true,"kind":"function","modifiers":[],"name":"finishAlbum","nameLocation":"15335:11:20","nodeType":"FunctionDefinition","parameters":{"id":5191,"nodeType":"ParameterList","parameters":[],"src":"15346:2:20"},"returnParameters":{"id":5194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5320,"src":"15365:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5192,"name":"bool","nodeType":"ElementaryTypeName","src":"15365:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15364:6:20"},"scope":5808,"src":"15326:1165:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5520,"nodeType":"Block","src":"16669:1508:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5326,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"16678:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5329,"indexExpression":{"expression":{"id":5327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16692:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16696:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16692:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16678:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5331,"indexExpression":{"hexValue":"313231","id":5330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16704:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16678:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16712:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16678:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5337,"nodeType":"IfStatement","src":"16675:75:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5334,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"16722:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5336,"nodeType":"RevertStatement","src":"16715:35:20"}},{"assignments":[5339],"declarations":[{"constant":false,"id":5339,"mutability":"mutable","name":"totalUserBurnedCards","nameLocation":"16764:20:20","nodeType":"VariableDeclaration","scope":5520,"src":"16756:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5338,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5347,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5340,"name":"s_burnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"16787:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5343,"indexExpression":{"expression":{"id":5341,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16801:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16805:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16801:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16787:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":5344,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"16815:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:6:20","memberName":"length","nodeType":"MemberAccess","src":"16815:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16787:46:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16756:77:20"},{"assignments":[5349],"declarations":[{"constant":false,"id":5349,"mutability":"mutable","name":"mustPayPrize","nameLocation":"16844:12:20","nodeType":"VariableDeclaration","scope":5520,"src":"16839:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5348,"name":"bool","nodeType":"ElementaryTypeName","src":"16839:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5350,"nodeType":"VariableDeclarationStatement","src":"16839:17:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5351,"name":"totalUserBurnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5339,"src":"16867:20:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3630","id":5352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16891:2:20","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"16867:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5382,"nodeType":"IfStatement","src":"16863:263:20","trueBody":{"id":5381,"nodeType":"Block","src":"16895:231:20","statements":[{"assignments":[5355],"declarations":[{"constant":false,"id":5355,"mutability":"mutable","name":"contractBalance","nameLocation":"16911:15:20","nodeType":"VariableDeclaration","scope":5381,"src":"16903:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5354,"name":"uint256","nodeType":"ElementaryTypeName","src":"16903:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5365,"initialValue":{"arguments":[{"arguments":[{"id":5362,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16965:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}],"id":5361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16957:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5360,"name":"address","nodeType":"ElementaryTypeName","src":"16957:7:20","typeDescriptions":{}}},"id":5363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16957:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":5357,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"16936:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5356,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"16929:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16929:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16947:9:20","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"16929:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16929:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16903:68:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5366,"name":"contractBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5355,"src":"16982:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5367,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"17000:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16982:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5369,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"17025:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5370,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"17043:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17025:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16982:82:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5376,"nodeType":"IfStatement","src":"16979:113:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5373,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"17073:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17073:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5375,"nodeType":"RevertStatement","src":"17066:26:20"}},{"expression":{"id":5379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5377,"name":"mustPayPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17100:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17115:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17100:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5380,"nodeType":"ExpressionStatement","src":"17100:19:20"}]}},{"assignments":[5384],"declarations":[{"constant":false,"id":5384,"mutability":"mutable","name":"userHasOffers","nameLocation":"17137:13:20","nodeType":"VariableDeclaration","scope":5520,"src":"17132:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5383,"name":"bool","nodeType":"ElementaryTypeName","src":"17132:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5393,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":5387,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17197:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17201:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17197:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5385,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"17154:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17174:22:20","memberName":"getOffersByUserCounter","nodeType":"MemberAccess","referencedDeclaration":3717,"src":"17154:42:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17154:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17211:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17154:58:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17153:60:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17132:81:20"},{"assignments":[5395],"declarations":[{"constant":false,"id":5395,"mutability":"mutable","name":"cardNumbersLength","nameLocation":"17227:17:20","nodeType":"VariableDeclaration","scope":5520,"src":"17219:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5394,"name":"uint256","nodeType":"ElementaryTypeName","src":"17219:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5398,"initialValue":{"expression":{"id":5396,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17247:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17259:6:20","memberName":"length","nodeType":"MemberAccess","src":"17247:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17219:46:20"},{"body":{"id":5460,"nodeType":"Block","src":"17311:396:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5405,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17322:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5408,"indexExpression":{"expression":{"id":5406,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17336:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17340:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17336:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17322:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5412,"indexExpression":{"baseExpression":{"id":5409,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17348:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5411,"indexExpression":{"id":5410,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17360:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17348:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17322:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17367:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17322:46:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5418,"nodeType":"IfStatement","src":"17319:86:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5415,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"17377:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17377:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5417,"nodeType":"RevertStatement","src":"17370:35:20"}},{"condition":{"id":5419,"name":"userHasOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"17417:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5445,"nodeType":"IfStatement","src":"17413:198:20","trueBody":{"id":5444,"nodeType":"Block","src":"17432:179:20","statements":[{"condition":{"arguments":[{"expression":{"id":5422,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17475:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17479:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17475:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5424,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17487:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5426,"indexExpression":{"id":5425,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17499:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17487:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5420,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"17446:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17466:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"17446:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5443,"nodeType":"IfStatement","src":"17442:161:20","trueBody":{"id":5442,"nodeType":"Block","src":"17504:99:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5428,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17519:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5431,"indexExpression":{"expression":{"id":5429,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17533:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17537:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17533:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17519:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5435,"indexExpression":{"baseExpression":{"id":5432,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17545:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5434,"indexExpression":{"id":5433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17557:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17545:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17519:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32","id":5436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17519:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5441,"nodeType":"IfStatement","src":"17516:76:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5438,"name":"InsufficientCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3667,"src":"17573:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17573:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5440,"nodeType":"RevertStatement","src":"17566:26:20"}}]}}]}},{"expression":{"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"17618:43:20","subExpression":{"baseExpression":{"baseExpression":{"id":5446,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17618:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5452,"indexExpression":{"expression":{"id":5447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17632:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17636:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17632:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17618:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5453,"indexExpression":{"baseExpression":{"id":5449,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17644:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5451,"indexExpression":{"id":5450,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17656:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17644:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17618:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5455,"nodeType":"ExpressionStatement","src":"17618:43:20"},{"id":5459,"nodeType":"UncheckedBlock","src":"17669:32:20","statements":[{"expression":{"id":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17689:3:20","subExpression":{"id":5456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17689:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5458,"nodeType":"ExpressionStatement","src":"17689:3:20"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17287:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5403,"name":"cardNumbersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"17291:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17287:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5461,"initializationExpression":{"assignments":[5400],"declarations":[{"constant":false,"id":5400,"mutability":"mutable","name":"i","nameLocation":"17284:1:20","nodeType":"VariableDeclaration","scope":5461,"src":"17276:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5399,"name":"uint256","nodeType":"ElementaryTypeName","src":"17276:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5401,"nodeType":"VariableDeclarationStatement","src":"17276:9:20"},"nodeType":"ForStatement","src":"17271:436:20"},{"expression":{"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5462,"name":"s_burnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"17713:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5465,"indexExpression":{"expression":{"id":5463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17727:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17731:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17727:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17713:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5466,"name":"cardNumbersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"17742:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17713:46:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5468,"nodeType":"ExpressionStatement","src":"17713:46:20"},{"eventCall":{"arguments":[{"expression":{"id":5470,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17782:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17786:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17782:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5472,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17794:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}],"id":5469,"name":"CardsBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3917,"src":"17770:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint8[] memory)"}},"id":5473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17770:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5474,"nodeType":"EmitStatement","src":"17765:41:20"},{"condition":{"id":5475,"name":"mustPayPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17817:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5519,"nodeType":"IfStatement","src":"17813:360:20","trueBody":{"id":5518,"nodeType":"Block","src":"17831:342:20","statements":[{"expression":{"id":5482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"17839:32:20","subExpression":{"baseExpression":{"baseExpression":{"id":5476,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17839:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5480,"indexExpression":{"expression":{"id":5477,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17853:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17857:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17853:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17839:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5481,"indexExpression":{"hexValue":"313231","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17865:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17839:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5483,"nodeType":"ExpressionStatement","src":"17839:32:20"},{"expression":{"arguments":[{"expression":{"id":5485,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17888:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17892:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17888:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5487,"name":"s_secondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"17900:14:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"313231","id":5488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17916:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},{"hexValue":"32","id":5489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17921:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":5484,"name":"safeMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"17879:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,string memory,uint256,uint8)"}},"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17879:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5491,"nodeType":"ExpressionStatement","src":"17879:44:20"},{"expression":{"id":5494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5492,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"17959:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5493,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"17978:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17959:40:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5495,"nodeType":"ExpressionStatement","src":"17959:40:20"},{"expression":{"arguments":[{"expression":{"id":5500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18034:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18038:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18034:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5502,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"18046:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5497,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"18014:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5496,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"18007:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18007:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18025:8:20","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":361,"src":"18007:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18007:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5504,"nodeType":"ExpressionStatement","src":"18007:61:20"},{"expression":{"arguments":[{"expression":{"id":5508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18113:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18117:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18113:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5505,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"18077:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18098:14:20","memberName":"generateTicket","nodeType":"MemberAccess","referencedDeclaration":3739,"src":"18077:35:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18077:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5511,"nodeType":"ExpressionStatement","src":"18077:47:20"},{"eventCall":{"arguments":[{"expression":{"id":5513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18152:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18156:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18152:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"32","id":5515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18164:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":5512,"name":"AlbumCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3859,"src":"18137:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":5516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18137:29:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5517,"nodeType":"EmitStatement","src":"18132:34:20"}]}}]},"functionSelector":"20965a5f","id":5521,"implemented":true,"kind":"function","modifiers":[],"name":"burnCards","nameLocation":"16622:9:20","nodeType":"FunctionDefinition","parameters":{"id":5324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"cardNumbers","nameLocation":"16649:11:20","nodeType":"VariableDeclaration","scope":5521,"src":"16632:28:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5321,"name":"uint8","nodeType":"ElementaryTypeName","src":"16632:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5322,"nodeType":"ArrayTypeName","src":"16632:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"16631:30:20"},"returnParameters":{"id":5325,"nodeType":"ParameterList","parameters":[],"src":"16669:0:20"},"scope":5808,"src":"16613:1564:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5612,"nodeType":"Block","src":"18221:838:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5526,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"18230:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5529,"indexExpression":{"expression":{"id":5527,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18244:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18248:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18244:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18230:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5531,"indexExpression":{"id":5530,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18256:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18230:34:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18268:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18230:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5537,"nodeType":"IfStatement","src":"18227:79:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5534,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"18278:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18278:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5536,"nodeType":"RevertStatement","src":"18271:35:20"}},{"condition":{"id":5538,"name":"s_requireOfferValidationInMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"18317:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5568,"nodeType":"IfStatement","src":"18313:519:20","trueBody":{"id":5567,"nodeType":"Block","src":"18349:483:20","statements":[{"assignments":[5540],"declarations":[{"constant":false,"id":5540,"mutability":"mutable","name":"hasOffer","nameLocation":"18362:8:20","nodeType":"VariableDeclaration","scope":5567,"src":"18357:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5539,"name":"bool","nodeType":"ElementaryTypeName","src":"18357:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5547,"initialValue":{"arguments":[{"expression":{"id":5543,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18402:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18406:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18402:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5545,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18414:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5541,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"18373:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18393:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"18373:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18373:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18357:65:20"},{"assignments":[5549],"declarations":[{"constant":false,"id":5549,"mutability":"mutable","name":"hasMoreThanOne","nameLocation":"18435:14:20","nodeType":"VariableDeclaration","scope":5567,"src":"18430:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5548,"name":"bool","nodeType":"ElementaryTypeName","src":"18430:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5558,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5550,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"18452:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5553,"indexExpression":{"expression":{"id":5551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18466:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18466:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18452:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5555,"indexExpression":{"id":5554,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18478:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18452:34:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18489:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18452:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18430:60:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18770:9:20","subExpression":{"id":5560,"name":"hasOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"18771:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5562,"name":"hasMoreThanOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5549,"src":"18783:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18770:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320636172642068617320616e206f666665722e","id":5564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18799:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""},"value":"This card has an offer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""}],"id":5559,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18762:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18762:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5566,"nodeType":"ExpressionStatement","src":"18762:63:20"}]}},{"expression":{"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"18838:36:20","subExpression":{"baseExpression":{"baseExpression":{"id":5569,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"18838:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5573,"indexExpression":{"expression":{"id":5570,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18852:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18856:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18852:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18838:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5574,"indexExpression":{"id":5572,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18864:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18838:34:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5576,"nodeType":"ExpressionStatement","src":"18838:36:20"},{"assignments":[5578],"declarations":[{"constant":false,"id":5578,"mutability":"mutable","name":"uri","nameLocation":"18895:3:20","nodeType":"VariableDeclaration","scope":5612,"src":"18881:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5577,"name":"string","nodeType":"ElementaryTypeName","src":"18881:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":5603,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":5585,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"18938:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":5584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18932:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5583,"name":"bytes","nodeType":"ElementaryTypeName","src":"18932:5:20","typeDescriptions":{}}},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18932:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"hexValue":"2f","id":5589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18956:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"id":5588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18950:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5587,"name":"bytes","nodeType":"ElementaryTypeName","src":"18950:5:20","typeDescriptions":{}}},"id":5590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18950:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5593,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18968:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18976:8:20","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8961,"src":"18968:16:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":5595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18968:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18962:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5591,"name":"bytes","nodeType":"ElementaryTypeName","src":"18962:5:20","typeDescriptions":{}}},"id":5596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18962:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"2e6a736f6e","id":5599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18995:7:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"id":5598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18989:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5597,"name":"bytes","nodeType":"ElementaryTypeName","src":"18989:5:20","typeDescriptions":{}}},"id":5600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18989:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"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":5581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18915:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18919:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"18915:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18915:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18901:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5579,"name":"string","nodeType":"ElementaryTypeName","src":"18901:6:20","typeDescriptions":{}}},"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18901:109:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"18881:129:20"},{"expression":{"arguments":[{"expression":{"id":5605,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19026:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19030:6:20","memberName":"sender","nodeType":"MemberAccess","src":"19026:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5607,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5578,"src":"19038:3:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5608,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"19043:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"31","id":5609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19052:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":5604,"name":"safeMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"19017:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,string memory,uint256,uint8)"}},"id":5610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19017:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5611,"nodeType":"ExpressionStatement","src":"19017:37:20"}]},"functionSelector":"bf400a6a","id":5613,"implemented":true,"kind":"function","modifiers":[],"name":"mintCard","nameLocation":"18190:8:20","nodeType":"FunctionDefinition","parameters":{"id":5524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5523,"mutability":"mutable","name":"cardNum","nameLocation":"18205:7:20","nodeType":"VariableDeclaration","scope":5613,"src":"18199:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5522,"name":"uint8","nodeType":"ElementaryTypeName","src":"18199:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18198:15:20"},"returnParameters":{"id":5525,"nodeType":"ParameterList","parameters":[],"src":"18221:0:20"},"scope":5808,"src":"18181:878:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5663,"nodeType":"Block","src":"19154:250:20","statements":[{"assignments":[5625],"declarations":[{"constant":false,"id":5625,"mutability":"mutable","name":"tokenId","nameLocation":"19168:7:20","nodeType":"VariableDeclaration","scope":5663,"src":"19160:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5624,"name":"uint256","nodeType":"ElementaryTypeName","src":"19160:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5627,"initialValue":{"id":5626,"name":"s_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"19178:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19160:34:20"},{"expression":{"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5628,"name":"s_cards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"19200:7:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card storage ref)"}},"id":5630,"indexExpression":{"id":5629,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19208:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19200:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage","typeString":"struct NofGammaCardsV5.Card storage ref"}},"id":5631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19217:7:20","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":3804,"src":"19200:24:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5632,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19227:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19200:34:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5634,"nodeType":"ExpressionStatement","src":"19200:34:20"},{"expression":{"id":5640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5635,"name":"s_cards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"19240:7:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card storage ref)"}},"id":5637,"indexExpression":{"id":5636,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19248:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19240:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage","typeString":"struct NofGammaCardsV5.Card storage ref"}},"id":5638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19257:6:20","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":3806,"src":"19240:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5639,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19266:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19240:33:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5641,"nodeType":"ExpressionStatement","src":"19240:33:20"},{"expression":{"id":5647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5642,"name":"s_cards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"19279:7:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card storage ref)"}},"id":5644,"indexExpression":{"id":5643,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19287:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19279:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage","typeString":"struct NofGammaCardsV5.Card storage ref"}},"id":5645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19296:5:20","memberName":"class","nodeType":"MemberAccess","referencedDeclaration":3810,"src":"19279:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5646,"name":"_class","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5621,"src":"19304:6:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"19279:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5648,"nodeType":"ExpressionStatement","src":"19279:31:20"},{"expression":{"arguments":[{"id":5650,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5615,"src":"19326:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5651,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19331:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5649,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1025,1051],"referencedDeclaration":1025,"src":"19316:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19316:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5653,"nodeType":"ExpressionStatement","src":"19316:23:20"},{"expression":{"arguments":[{"id":5655,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19358:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5656,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5617,"src":"19367:4:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5654,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"19345:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":5657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19345:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5658,"nodeType":"ExpressionStatement","src":"19345:27:20"},{"expression":{"id":5661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5659,"name":"s_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"19378:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19398:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19378:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5662,"nodeType":"ExpressionStatement","src":"19378:21:20"}]},"id":5664,"implemented":true,"kind":"function","modifiers":[],"name":"safeMint","nameLocation":"19072:8:20","nodeType":"FunctionDefinition","parameters":{"id":5622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5615,"mutability":"mutable","name":"_to","nameLocation":"19089:3:20","nodeType":"VariableDeclaration","scope":5664,"src":"19081:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5614,"name":"address","nodeType":"ElementaryTypeName","src":"19081:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5617,"mutability":"mutable","name":"_uri","nameLocation":"19108:4:20","nodeType":"VariableDeclaration","scope":5664,"src":"19094:18:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5616,"name":"string","nodeType":"ElementaryTypeName","src":"19094:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5619,"mutability":"mutable","name":"_number","nameLocation":"19122:7:20","nodeType":"VariableDeclaration","scope":5664,"src":"19114:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5618,"name":"uint256","nodeType":"ElementaryTypeName","src":"19114:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5621,"mutability":"mutable","name":"_class","nameLocation":"19137:6:20","nodeType":"VariableDeclaration","scope":5664,"src":"19131:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5620,"name":"uint8","nodeType":"ElementaryTypeName","src":"19131:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"19080:64:20"},"returnParameters":{"id":5623,"nodeType":"ParameterList","parameters":[],"src":"19154:0:20"},"scope":5808,"src":"19063:341:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5702,"nodeType":"Block","src":"19510:208:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5674,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19537:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}],"id":5673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19529:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5672,"name":"address","nodeType":"ElementaryTypeName","src":"19529:7:20","typeDescriptions":{}}},"id":5675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19529:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5671,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":523,"src":"19519:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19519:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5677,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19546:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19519:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5682,"nodeType":"IfStatement","src":"19516:64:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5679,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"19561:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5681,"nodeType":"RevertStatement","src":"19554:26:20"}},{"expression":{"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5683,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"19586:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19605:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19586:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5686,"nodeType":"ExpressionStatement","src":"19586:25:20"},{"expression":{"arguments":[{"expression":{"id":5691,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19644:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19648:6:20","memberName":"sender","nodeType":"MemberAccess","src":"19644:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5693,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19656:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5688,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"19624:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5687,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"19617:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19617:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19635:8:20","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":361,"src":"19617:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19617:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5695,"nodeType":"ExpressionStatement","src":"19617:46:20"},{"eventCall":{"arguments":[{"expression":{"id":5697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19694:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19698:6:20","memberName":"sender","nodeType":"MemberAccess","src":"19694:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5699,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19706:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5696,"name":"EmergencyWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3873,"src":"19674:19:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19674:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5701,"nodeType":"EmitStatement","src":"19669:44:20"}]},"functionSelector":"5312ea8e","id":5703,"implemented":true,"kind":"function","modifiers":[{"id":5669,"kind":"modifierInvocation","modifierName":{"id":5668,"name":"onlyOwners","nameLocations":["19499:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"19499:10:20"},"nodeType":"ModifierInvocation","src":"19499:10:20"}],"name":"emergencyWithdraw","nameLocation":"19458:17:20","nodeType":"FunctionDefinition","parameters":{"id":5667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5666,"mutability":"mutable","name":"amount","nameLocation":"19484:6:20","nodeType":"VariableDeclaration","scope":5703,"src":"19476:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5665,"name":"uint256","nodeType":"ElementaryTypeName","src":"19476:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19475:16:20"},"returnParameters":{"id":5670,"nodeType":"ParameterList","parameters":[],"src":"19510:0:20"},"scope":5808,"src":"19449:269:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5728,"nodeType":"Block","src":"19833:129:20","statements":[{"body":{"id":5726,"nodeType":"Block","src":"19866:92:20","statements":[{"expression":{"id":5724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19925:24:20","subExpression":{"baseExpression":{"baseExpression":{"id":5719,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"19925:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5722,"indexExpression":{"id":5720,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"19939:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19925:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5723,"indexExpression":{"id":5721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"19945:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19925:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5725,"nodeType":"ExpressionStatement","src":"19925:24:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"19854:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313231","id":5714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19857:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"19854:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5727,"initializationExpression":{"assignments":[5711],"declarations":[{"constant":false,"id":5711,"mutability":"mutable","name":"i","nameLocation":"19851:1:20","nodeType":"VariableDeclaration","scope":5727,"src":"19845:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5710,"name":"uint8","nodeType":"ElementaryTypeName","src":"19845:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5712,"nodeType":"VariableDeclarationStatement","src":"19845:7:20"},"loopExpression":{"expression":{"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19862:3:20","subExpression":{"id":5716,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"19862:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5718,"nodeType":"ExpressionStatement","src":"19862:3:20"},"nodeType":"ForStatement","src":"19841:117:20"}]},"functionSelector":"a419811d","id":5729,"implemented":true,"kind":"function","modifiers":[{"id":5708,"kind":"modifierInvocation","modifierName":{"id":5707,"name":"onlyOwners","nameLocations":["19822:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"19822:10:20"},"nodeType":"ModifierInvocation","src":"19822:10:20"}],"name":"testAddCards","nameLocation":"19788:12:20","nodeType":"FunctionDefinition","parameters":{"id":5706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5705,"mutability":"mutable","name":"user","nameLocation":"19809:4:20","nodeType":"VariableDeclaration","scope":5729,"src":"19801:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5704,"name":"address","nodeType":"ElementaryTypeName","src":"19801:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19800:14:20"},"returnParameters":{"id":5709,"nodeType":"ParameterList","parameters":[],"src":"19833:0:20"},"scope":5808,"src":"19779:183:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5806,"nodeType":"Block","src":"20067:472:20","statements":[{"expression":{"arguments":[{"id":5744,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5733,"src":"20105:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5745,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"20117:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5741,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"20077:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":5743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20096:8:20","memberName":"openPack","nodeType":"MemberAccess","referencedDeclaration":3685,"src":"20077:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20077:45:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5747,"nodeType":"ExpressionStatement","src":"20077:45:20"},{"expression":{"id":5754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5748,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"20132:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5749,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"20151:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5750,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"20165:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"36","id":5751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20179:1:20","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"20165:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20151:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20132:48:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5755,"nodeType":"ExpressionStatement","src":"20132:48:20"},{"body":{"id":5804,"nodeType":"Block","src":"20229:304:20","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5767,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20251:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5769,"indexExpression":{"id":5768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20260:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20251:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"313230","id":5770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20266:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"20251:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5777,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"20303:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5781,"indexExpression":{"baseExpression":{"id":5778,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20320:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5780,"indexExpression":{"id":5779,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20329:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20320:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20303:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"35303031","id":5782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20335:4:20","typeDescriptions":{"typeIdentifier":"t_rational_5001_by_1","typeString":"int_const 5001"},"value":"5001"},"src":"20303:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"20251:88:20","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5772,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"20272:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5774,"indexExpression":{"hexValue":"313230","id":5773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20289:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20272:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33303031","id":5775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20296:4:20","typeDescriptions":{"typeIdentifier":"t_rational_3001_by_1","typeString":"int_const 3001"},"value":"3001"},"src":"20272:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642063617264496e76656e746f727920706f736974696f6e","id":5785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20358:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8","typeString":"literal_string \"invalid cardInventory position\""},"value":"invalid cardInventory position"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8","typeString":"literal_string \"invalid cardInventory position\""}],"id":5766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20243:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20243:148:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5787,"nodeType":"ExpressionStatement","src":"20243:148:20"},{"expression":{"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20405:31:20","subExpression":{"baseExpression":{"id":5788,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"20405:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5792,"indexExpression":{"baseExpression":{"id":5789,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20422:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5791,"indexExpression":{"id":5790,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20431:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20422:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20405:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5794,"nodeType":"ExpressionStatement","src":"20405:31:20"},{"expression":{"id":5802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20469:34:20","subExpression":{"baseExpression":{"baseExpression":{"id":5795,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"20469:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5800,"indexExpression":{"id":5796,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"20483:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20469:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5801,"indexExpression":{"baseExpression":{"id":5797,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20489:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5799,"indexExpression":{"id":5798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20498:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20489:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20469:32:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5803,"nodeType":"ExpressionStatement","src":"20469:34:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20206:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5760,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20208:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20217:6:20","memberName":"length","nodeType":"MemberAccess","src":"20208:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20206:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5805,"initializationExpression":{"assignments":[5757],"declarations":[{"constant":false,"id":5757,"mutability":"mutable","name":"i","nameLocation":"20203:1:20","nodeType":"VariableDeclaration","scope":5805,"src":"20195:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5756,"name":"uint256","nodeType":"ElementaryTypeName","src":"20195:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5758,"nodeType":"VariableDeclarationStatement","src":"20195:9:20"},"loopExpression":{"expression":{"id":5764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20225:3:20","subExpression":{"id":5763,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20225:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5765,"nodeType":"ExpressionStatement","src":"20225:3:20"},"nodeType":"ForStatement","src":"20191:342:20"}]},"functionSelector":"30f5cc58","id":5807,"implemented":true,"kind":"function","modifiers":[{"id":5739,"kind":"modifierInvocation","modifierName":{"id":5738,"name":"onlyOwners","nameLocations":["20056:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"20056:10:20"},"nodeType":"ModifierInvocation","src":"20056:10:20"}],"name":"testOpenPack","nameLocation":"19975:12:20","nodeType":"FunctionDefinition","parameters":{"id":5737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5731,"mutability":"mutable","name":"user","nameLocation":"19996:4:20","nodeType":"VariableDeclaration","scope":5807,"src":"19988:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5730,"name":"address","nodeType":"ElementaryTypeName","src":"19988:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5733,"mutability":"mutable","name":"packNumber","nameLocation":"20010:10:20","nodeType":"VariableDeclaration","scope":5807,"src":"20002:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5732,"name":"uint256","nodeType":"ElementaryTypeName","src":"20002:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5736,"mutability":"mutable","name":"packData","nameLocation":"20037:8:20","nodeType":"VariableDeclaration","scope":5807,"src":"20022:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5734,"name":"uint8","nodeType":"ElementaryTypeName","src":"20022:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5735,"nodeType":"ArrayTypeName","src":"20022:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"19987:59:20"},"returnParameters":{"id":5740,"nodeType":"ParameterList","parameters":[],"src":"20067:0:20"},"scope":5808,"src":"19966:573:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5809,"src":"1668:18927:20","usedErrors":[13,18,227,232,241,246,251,258,263,268,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671],"usedEvents":[24,167,174,1419,1428,1437,3836,3840,3844,3853,3859,3867,3873,3877,3883,3893,3901,3910,3917]}],"src":"32:20564:20"},"id":20},"contracts/gamma/GammaCardsNFT.v1.sol":{"ast":{"absolutePath":"contracts/gamma/GammaCardsNFT.v1.sol","exportedSymbols":{"ERC721":[1403],"ERC721Burnable":[1567],"ERC721URIStorage":[1693],"NofGammaCardsNFTV1":[5877]},"id":5878,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5810,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:21"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":5812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5878,"sourceUnit":1404,"src":"58:71:21","symbolAliases":[{"foreign":{"id":5811,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"66:6:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","id":5814,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5878,"sourceUnit":1694,"src":"130:102:21","symbolAliases":[{"foreign":{"id":5813,"name":"ERC721URIStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"138:16:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol","id":5816,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5878,"sourceUnit":1568,"src":"233:98:21","symbolAliases":[{"foreign":{"id":5815,"name":"ERC721Burnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"241:14:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5817,"name":"ERC721","nameLocations":["364:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"364:6:21"},"id":5818,"nodeType":"InheritanceSpecifier","src":"364:6:21"},{"baseName":{"id":5819,"name":"ERC721URIStorage","nameLocations":["372:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":1693,"src":"372:16:21"},"id":5820,"nodeType":"InheritanceSpecifier","src":"372:16:21"},{"baseName":{"id":5821,"name":"ERC721Burnable","nameLocations":["390:14:21"],"nodeType":"IdentifierPath","referencedDeclaration":1567,"src":"390:14:21"},"id":5822,"nodeType":"InheritanceSpecifier","src":"390:14:21"}],"canonicalName":"NofGammaCardsNFTV1","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5877,"linearizedBaseContracts":[5877,1567,1693,1403,269,1721,175,1520,2452,2464,1751],"name":"NofGammaCardsNFTV1","nameLocation":"342:18:21","nodeType":"ContractDefinition","nodes":[{"body":{"id":5829,"nodeType":"Block","src":"457:2:21","statements":[]},"id":5830,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"47616d6d614361726473","id":5825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"433:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_08e769a9d293abdacc40b084f84d4380cbaaf73461944eb3f34daf9fed6c07e7","typeString":"literal_string \"GammaCards\""},"value":"GammaCards"},{"hexValue":"4e4f465f4743","id":5826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"447:8:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7f918eba56aee1e5ed39fb369bdef1bfd5ed12a0360c4730fa49007d201a169","typeString":"literal_string \"NOF_GC\""},"value":"NOF_GC"}],"id":5827,"kind":"baseConstructorSpecifier","modifierName":{"id":5824,"name":"ERC721","nameLocations":["426:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"426:6:21"},"nodeType":"ModifierInvocation","src":"426:30:21"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5823,"nodeType":"ParameterList","parameters":[],"src":"423:2:21"},"returnParameters":{"id":5828,"nodeType":"ParameterList","parameters":[],"src":"457:0:21"},"scope":5877,"src":"412:47:21","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":5843,"nodeType":"Block","src":"523:37:21","statements":[{"expression":{"arguments":[{"id":5840,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5832,"src":"545:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5837,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"533:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NofGammaCardsNFTV1_$5877_$","typeString":"type(contract super NofGammaCardsNFTV1)"}},"id":5839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"539:5:21","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"533:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":5841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"533:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5842,"nodeType":"ExpressionStatement","src":"533:20:21"}]},"id":5844,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"474:5:21","nodeType":"FunctionDefinition","overrides":{"id":5835,"nodeType":"OverrideSpecifier","overrides":[{"id":5834,"name":"ERC721","nameLocations":["515:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"515:6:21"}],"src":"506:16:21"},"parameters":{"id":5833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5832,"mutability":"mutable","name":"tokenId","nameLocation":"488:7:21","nodeType":"VariableDeclaration","scope":5844,"src":"480:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5831,"name":"uint256","nodeType":"ElementaryTypeName","src":"480:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"479:17:21"},"returnParameters":{"id":5836,"nodeType":"ParameterList","parameters":[],"src":"523:0:21"},"scope":5877,"src":"465:95:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[590,1673],"body":{"id":5859,"nodeType":"Block","src":"684:47:21","statements":[{"expression":{"arguments":[{"id":5856,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5846,"src":"716:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5854,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"701:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NofGammaCardsNFTV1_$5877_$","typeString":"type(contract super NofGammaCardsNFTV1)"}},"id":5855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"707:8:21","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":1673,"src":"701:14:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:23:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5853,"id":5858,"nodeType":"Return","src":"694:30:21"}]},"functionSelector":"c87b56dd","id":5860,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"575:8:21","nodeType":"FunctionDefinition","overrides":{"id":5850,"nodeType":"OverrideSpecifier","overrides":[{"id":5848,"name":"ERC721","nameLocations":["622:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"622:6:21"},{"id":5849,"name":"ERC721URIStorage","nameLocations":["630:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":1693,"src":"630:16:21"}],"src":"613:34:21"},"parameters":{"id":5847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5846,"mutability":"mutable","name":"tokenId","nameLocation":"592:7:21","nodeType":"VariableDeclaration","scope":5860,"src":"584:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5845,"name":"uint256","nodeType":"ElementaryTypeName","src":"584:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"583:17:21"},"returnParameters":{"id":5853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5860,"src":"665:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5851,"name":"string","nodeType":"ElementaryTypeName","src":"665:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"664:15:21"},"scope":5877,"src":"566:165:21","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[495,1616],"body":{"id":5875,"nodeType":"Block","src":"858:60:21","statements":[{"expression":{"arguments":[{"id":5872,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5862,"src":"899:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5870,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"875:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NofGammaCardsNFTV1_$5877_$","typeString":"type(contract super NofGammaCardsNFTV1)"}},"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"881:17:21","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"875:23:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"875:36:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5869,"id":5874,"nodeType":"Return","src":"868:43:21"}]},"functionSelector":"01ffc9a7","id":5876,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"746:17:21","nodeType":"FunctionDefinition","overrides":{"id":5866,"nodeType":"OverrideSpecifier","overrides":[{"id":5864,"name":"ERC721","nameLocations":["805:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"805:6:21"},{"id":5865,"name":"ERC721URIStorage","nameLocations":["813:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":1693,"src":"813:16:21"}],"src":"796:34:21"},"parameters":{"id":5863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5862,"mutability":"mutable","name":"interfaceId","nameLocation":"771:11:21","nodeType":"VariableDeclaration","scope":5876,"src":"764:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5861,"name":"bytes4","nodeType":"ElementaryTypeName","src":"764:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"763:20:21"},"returnParameters":{"id":5869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5876,"src":"848:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5867,"name":"bool","nodeType":"ElementaryTypeName","src":"848:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"847:6:21"},"scope":5877,"src":"737:181:21","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5878,"src":"333:588:21","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[167,174,1419,1428,1437]}],"src":"32:890:21"},"id":21},"contracts/gamma/GammaOffers.v4.sol":{"ast":{"absolutePath":"contracts/gamma/GammaOffers.v4.sol","exportedSymbols":{"ExchangeError":[5917],"GammaCardsContractNotSet":[5893],"IGammaCardsContract":[5952],"InvalidAddress":[5891],"InvalidCard":[5909],"InvalidCardNumber":[5899],"InvalidOfferId":[5903],"LibControlMgmt":[8832],"NofGammaOffersV4":[7472],"OfferAlreadyExists":[5901],"OfferDoesNotExists":[5905],"OfferNotDeleted":[5911],"OffersMaximumAllowed":[5895],"OnlyCardsContract":[5887],"OnlyOwners":[5889],"Ownable":[147],"RemoveOfferFromCardNumberMapping_DoNotMatch":[5915],"RemoveOfferFromUserMapping_DoNotMatch":[5913],"UserAlreadyHasCard":[5907],"UserDoesNotHaveCard":[5897],"console":[19517]},"id":7473,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5879,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:22"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":5881,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7473,"sourceUnit":148,"src":"58:67:22","symbolAliases":[{"foreign":{"id":5880,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"66:7:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","file":"./libs/LibControlMgmt.sol","id":5883,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7473,"sourceUnit":8833,"src":"126:57:22","symbolAliases":[{"foreign":{"id":5882,"name":"LibControlMgmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8832,"src":"134:14:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":5885,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7473,"sourceUnit":19518,"src":"184:44:22","symbolAliases":[{"foreign":{"id":5884,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"192:7:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"errorSelector":"a71ed6c7","id":5887,"name":"OnlyCardsContract","nameLocation":"236:17:22","nodeType":"ErrorDefinition","parameters":{"id":5886,"nodeType":"ParameterList","parameters":[],"src":"253:2:22"},"src":"230:26:22"},{"errorSelector":"4289c493","id":5889,"name":"OnlyOwners","nameLocation":"263:10:22","nodeType":"ErrorDefinition","parameters":{"id":5888,"nodeType":"ParameterList","parameters":[],"src":"273:2:22"},"src":"257:19:22"},{"errorSelector":"e6c4247b","id":5891,"name":"InvalidAddress","nameLocation":"283:14:22","nodeType":"ErrorDefinition","parameters":{"id":5890,"nodeType":"ParameterList","parameters":[],"src":"297:2:22"},"src":"277:23:22"},{"errorSelector":"cfdf3505","id":5893,"name":"GammaCardsContractNotSet","nameLocation":"307:24:22","nodeType":"ErrorDefinition","parameters":{"id":5892,"nodeType":"ParameterList","parameters":[],"src":"331:2:22"},"src":"301:33:22"},{"errorSelector":"182a7d77","id":5895,"name":"OffersMaximumAllowed","nameLocation":"341:20:22","nodeType":"ErrorDefinition","parameters":{"id":5894,"nodeType":"ParameterList","parameters":[],"src":"361:2:22"},"src":"335:29:22"},{"errorSelector":"285a8f42","id":5897,"name":"UserDoesNotHaveCard","nameLocation":"371:19:22","nodeType":"ErrorDefinition","parameters":{"id":5896,"nodeType":"ParameterList","parameters":[],"src":"390:2:22"},"src":"365:28:22"},{"errorSelector":"1a3d9e2e","id":5899,"name":"InvalidCardNumber","nameLocation":"400:17:22","nodeType":"ErrorDefinition","parameters":{"id":5898,"nodeType":"ParameterList","parameters":[],"src":"417:2:22"},"src":"394:26:22"},{"errorSelector":"eeee5c8b","id":5901,"name":"OfferAlreadyExists","nameLocation":"427:18:22","nodeType":"ErrorDefinition","parameters":{"id":5900,"nodeType":"ParameterList","parameters":[],"src":"445:2:22"},"src":"421:27:22"},{"errorSelector":"a2539562","id":5903,"name":"InvalidOfferId","nameLocation":"455:14:22","nodeType":"ErrorDefinition","parameters":{"id":5902,"nodeType":"ParameterList","parameters":[],"src":"469:2:22"},"src":"449:23:22"},{"errorSelector":"3bda4526","id":5905,"name":"OfferDoesNotExists","nameLocation":"479:18:22","nodeType":"ErrorDefinition","parameters":{"id":5904,"nodeType":"ParameterList","parameters":[],"src":"497:2:22"},"src":"473:27:22"},{"errorSelector":"22ef652a","id":5907,"name":"UserAlreadyHasCard","nameLocation":"507:18:22","nodeType":"ErrorDefinition","parameters":{"id":5906,"nodeType":"ParameterList","parameters":[],"src":"525:2:22"},"src":"501:27:22"},{"errorSelector":"1ddf446e","id":5909,"name":"InvalidCard","nameLocation":"535:11:22","nodeType":"ErrorDefinition","parameters":{"id":5908,"nodeType":"ParameterList","parameters":[],"src":"546:2:22"},"src":"529:20:22"},{"errorSelector":"1b440351","id":5911,"name":"OfferNotDeleted","nameLocation":"556:15:22","nodeType":"ErrorDefinition","parameters":{"id":5910,"nodeType":"ParameterList","parameters":[],"src":"571:2:22"},"src":"550:24:22"},{"errorSelector":"b7f2d833","id":5913,"name":"RemoveOfferFromUserMapping_DoNotMatch","nameLocation":"581:37:22","nodeType":"ErrorDefinition","parameters":{"id":5912,"nodeType":"ParameterList","parameters":[],"src":"618:2:22"},"src":"575:46:22"},{"errorSelector":"af5d70c6","id":5915,"name":"RemoveOfferFromCardNumberMapping_DoNotMatch","nameLocation":"628:43:22","nodeType":"ErrorDefinition","parameters":{"id":5914,"nodeType":"ParameterList","parameters":[],"src":"671:2:22"},"src":"622:52:22"},{"errorSelector":"fc9716b9","id":5917,"name":"ExchangeError","nameLocation":"681:13:22","nodeType":"ErrorDefinition","parameters":{"id":5916,"nodeType":"ParameterList","parameters":[],"src":"694:2:22"},"src":"675:22:22"},{"abstract":false,"baseContracts":[],"canonicalName":"IGammaCardsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5952,"linearizedBaseContracts":[5952],"name":"IGammaCardsContract","nameLocation":"709:19:22","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8bf670c8","id":5926,"implemented":false,"kind":"function","modifiers":[],"name":"hasCardByOffer","nameLocation":"742:14:22","nodeType":"FunctionDefinition","parameters":{"id":5922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5919,"mutability":"mutable","name":"user","nameLocation":"765:4:22","nodeType":"VariableDeclaration","scope":5926,"src":"757:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5918,"name":"address","nodeType":"ElementaryTypeName","src":"757:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5921,"mutability":"mutable","name":"cardNumber","nameLocation":"777:10:22","nodeType":"VariableDeclaration","scope":5926,"src":"771:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5920,"name":"uint8","nodeType":"ElementaryTypeName","src":"771:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"756:32:22"},"returnParameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5924,"mutability":"mutable","name":"has","nameLocation":"812:3:22","nodeType":"VariableDeclaration","scope":5926,"src":"807:8:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5923,"name":"bool","nodeType":"ElementaryTypeName","src":"807:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"806:10:22"},"scope":5952,"src":"733:84:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7155a3ac","id":5933,"implemented":false,"kind":"function","modifiers":[],"name":"removeCardByOffer","nameLocation":"830:17:22","nodeType":"FunctionDefinition","parameters":{"id":5931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5928,"mutability":"mutable","name":"user","nameLocation":"856:4:22","nodeType":"VariableDeclaration","scope":5933,"src":"848:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5927,"name":"address","nodeType":"ElementaryTypeName","src":"848:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5930,"mutability":"mutable","name":"cardNumber","nameLocation":"868:10:22","nodeType":"VariableDeclaration","scope":5933,"src":"862:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5929,"name":"uint8","nodeType":"ElementaryTypeName","src":"862:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"847:32:22"},"returnParameters":{"id":5932,"nodeType":"ParameterList","parameters":[],"src":"888:0:22"},"scope":5952,"src":"821:68:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"155e2f92","id":5940,"implemented":false,"kind":"function","modifiers":[],"name":"restoreCardByOffer","nameLocation":"902:18:22","nodeType":"FunctionDefinition","parameters":{"id":5938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5935,"mutability":"mutable","name":"user","nameLocation":"929:4:22","nodeType":"VariableDeclaration","scope":5940,"src":"921:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"cardNumber","nameLocation":"941:10:22","nodeType":"VariableDeclaration","scope":5940,"src":"935:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5936,"name":"uint8","nodeType":"ElementaryTypeName","src":"935:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"920:32:22"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[],"src":"961:0:22"},"scope":5952,"src":"893:69:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ad1684fa","id":5951,"implemented":false,"kind":"function","modifiers":[],"name":"exchangeCardsOffer","nameLocation":"975:18:22","nodeType":"FunctionDefinition","parameters":{"id":5949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5942,"mutability":"mutable","name":"from","nameLocation":"1007:4:22","nodeType":"VariableDeclaration","scope":5951,"src":"999:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5941,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5944,"mutability":"mutable","name":"cardNumberFrom","nameLocation":"1023:14:22","nodeType":"VariableDeclaration","scope":5951,"src":"1017:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5943,"name":"uint8","nodeType":"ElementaryTypeName","src":"1017:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5946,"mutability":"mutable","name":"to","nameLocation":"1051:2:22","nodeType":"VariableDeclaration","scope":5951,"src":"1043:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5945,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5948,"mutability":"mutable","name":"cardNumberTo","nameLocation":"1065:12:22","nodeType":"VariableDeclaration","scope":5951,"src":"1059:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5947,"name":"uint8","nodeType":"ElementaryTypeName","src":"1059:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"993:88:22"},"returnParameters":{"id":5950,"nodeType":"ParameterList","parameters":[],"src":"1090:0:22"},"scope":5952,"src":"966:125:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7473,"src":"699:394:22","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":5953,"name":"Ownable","nameLocations":["1124:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"1124:7:22"},"id":5954,"nodeType":"InheritanceSpecifier","src":"1124:7:22"}],"canonicalName":"NofGammaOffersV4","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7472,"linearizedBaseContracts":[7472,147,1751],"name":"NofGammaOffersV4","nameLocation":"1104:16:22","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5958,"libraryName":{"id":5955,"name":"LibControlMgmt","nameLocations":["1142:14:22"],"nodeType":"IdentifierPath","referencedDeclaration":8832,"src":"1142:14:22"},"nodeType":"UsingForDirective","src":"1136:45:22","typeName":{"id":5957,"nodeType":"UserDefinedTypeName","pathNode":{"id":5956,"name":"LibControlMgmt.Data","nameLocations":["1161:14:22","1176:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1161:19:22"},"referencedDeclaration":8641,"src":"1161:19:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}}},{"constant":false,"functionSelector":"d250f03a","id":5961,"mutability":"mutable","name":"gammaCardsContract","nameLocation":"1212:18:22","nodeType":"VariableDeclaration","scope":7472,"src":"1185:45:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"},"typeName":{"id":5960,"nodeType":"UserDefinedTypeName","pathNode":{"id":5959,"name":"IGammaCardsContract","nameLocations":["1185:19:22"],"nodeType":"IdentifierPath","referencedDeclaration":5952,"src":"1185:19:22"},"referencedDeclaration":5952,"src":"1185:19:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"visibility":"public"},{"constant":false,"id":5964,"mutability":"mutable","name":"ownersData","nameLocation":"1262:10:22","nodeType":"VariableDeclaration","scope":7472,"src":"1234:38:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":5963,"nodeType":"UserDefinedTypeName","pathNode":{"id":5962,"name":"LibControlMgmt.Data","nameLocations":["1234:14:22","1249:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1234:19:22"},"referencedDeclaration":8641,"src":"1234:19:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"id":5970,"mutability":"mutable","name":"maxOffersAllowed","nameLocation":"1285:16:22","nodeType":"VariableDeclaration","scope":7472,"src":"1277:40:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5965,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"35303030","id":5968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1312:4:22","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"}],"id":5967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1304:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1304:7:22","typeDescriptions":{}}},"id":5969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5976,"mutability":"mutable","name":"maxOffersByUserAllowed","nameLocation":"1329:22:22","nodeType":"VariableDeclaration","scope":7472,"src":"1321:43:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"35","id":5974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:22","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":5973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1354:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:22","typeDescriptions":{}}},"id":5975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1354:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5982,"mutability":"mutable","name":"maxCardNumbersAllowed","nameLocation":"1376:21:22","nodeType":"VariableDeclaration","scope":7472,"src":"1368:44:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"313230","id":5980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1408:3:22","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"}],"id":5979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1400:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1400:7:22","typeDescriptions":{}}},"id":5981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1400:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5985,"mutability":"mutable","name":"removeCardInInventoryWhenOffer","nameLocation":"1421:30:22","nodeType":"VariableDeclaration","scope":7472,"src":"1416:43:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5983,"name":"bool","nodeType":"ElementaryTypeName","src":"1416:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":5984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1454:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"canonicalName":"NofGammaOffersV4.Offer","id":5997,"members":[{"constant":false,"id":5987,"mutability":"mutable","name":"offerId","nameLocation":"1490:7:22","nodeType":"VariableDeclaration","scope":5997,"src":"1483:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5986,"name":"string","nodeType":"ElementaryTypeName","src":"1483:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5989,"mutability":"mutable","name":"cardNumber","nameLocation":"1509:10:22","nodeType":"VariableDeclaration","scope":5997,"src":"1503:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5988,"name":"uint8","nodeType":"ElementaryTypeName","src":"1503:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5992,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"1533:17:22","nodeType":"VariableDeclaration","scope":5997,"src":"1525:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5990,"name":"uint8","nodeType":"ElementaryTypeName","src":"1525:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5991,"nodeType":"ArrayTypeName","src":"1525:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":5994,"mutability":"mutable","name":"owner","nameLocation":"1564:5:22","nodeType":"VariableDeclaration","scope":5997,"src":"1556:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5993,"name":"address","nodeType":"ElementaryTypeName","src":"1556:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5996,"mutability":"mutable","name":"timestamp","nameLocation":"1583:9:22","nodeType":"VariableDeclaration","scope":5997,"src":"1575:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5995,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Offer","nameLocation":"1471:5:22","nodeType":"StructDefinition","scope":7472,"src":"1464:133:22","visibility":"public"},{"constant":false,"functionSelector":"8a72ea6a","id":6001,"mutability":"mutable","name":"offers","nameLocation":"1616:6:22","nodeType":"VariableDeclaration","scope":7472,"src":"1601:21:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":5999,"nodeType":"UserDefinedTypeName","pathNode":{"id":5998,"name":"Offer","nameLocations":["1601:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"1601:5:22"},"referencedDeclaration":5997,"src":"1601:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6000,"nodeType":"ArrayTypeName","src":"1601:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"public"},{"constant":false,"id":6007,"mutability":"mutable","name":"offersByUser","nameLocation":"1659:12:22","nodeType":"VariableDeclaration","scope":7472,"src":"1626:45:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer[])"},"typeName":{"id":6006,"keyName":"user","keyNameLocation":"1642:4:22","keyType":{"id":6002,"name":"address","nodeType":"ElementaryTypeName","src":"1634:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1626:32:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":6004,"nodeType":"UserDefinedTypeName","pathNode":{"id":6003,"name":"Offer","nameLocations":["1650:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"1650:5:22"},"referencedDeclaration":5997,"src":"1650:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6005,"nodeType":"ArrayTypeName","src":"1650:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}}},"visibility":"internal"},{"constant":false,"id":6013,"mutability":"mutable","name":"offersByCardNumber","nameLocation":"1712:18:22","nodeType":"VariableDeclaration","scope":7472,"src":"1675:55:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer[])"},"typeName":{"id":6012,"keyName":"cardNumber","keyNameLocation":"1689:10:22","keyType":{"id":6008,"name":"uint8","nodeType":"ElementaryTypeName","src":"1683:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"1675:36:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":6010,"nodeType":"UserDefinedTypeName","pathNode":{"id":6009,"name":"Offer","nameLocations":["1703:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"1703:5:22"},"referencedDeclaration":5997,"src":"1703:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6011,"nodeType":"ArrayTypeName","src":"1703:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}}},"visibility":"internal"},{"constant":false,"functionSelector":"7594a6ed","id":6017,"mutability":"mutable","name":"offersByUserCounter","nameLocation":"1769:19:22","nodeType":"VariableDeclaration","scope":7472,"src":"1734:54:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":6016,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6014,"name":"address","nodeType":"ElementaryTypeName","src":"1742:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1734:27:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"d827a8f4","id":6021,"mutability":"mutable","name":"offersByCardNumberCounter","nameLocation":"1825:25:22","nodeType":"VariableDeclaration","scope":7472,"src":"1792:58:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"},"typeName":{"id":6020,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6018,"name":"uint8","nodeType":"ElementaryTypeName","src":"1800:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"1792:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1809:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"5a919aeb","id":6023,"mutability":"mutable","name":"offersTotalCounter","nameLocation":"1869:18:22","nodeType":"VariableDeclaration","scope":7472,"src":"1854:33:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"eventSelector":"45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa","id":6027,"name":"NewGammaCardsContract","nameLocation":"1898:21:22","nodeType":"EventDefinition","parameters":{"id":6026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6025,"indexed":false,"mutability":"mutable","name":"newGammaCardsContract","nameLocation":"1928:21:22","nodeType":"VariableDeclaration","scope":6027,"src":"1920:29:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6024,"name":"address","nodeType":"ElementaryTypeName","src":"1920:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1919:31:22"},"src":"1892:59:22"},{"anonymous":false,"eventSelector":"ed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5","id":6036,"name":"OfferCreated","nameLocation":"1960:12:22","nodeType":"EventDefinition","parameters":{"id":6035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6029,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"1981:4:22","nodeType":"VariableDeclaration","scope":6036,"src":"1973:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6028,"name":"address","nodeType":"ElementaryTypeName","src":"1973:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6031,"indexed":false,"mutability":"mutable","name":"cardNumber","nameLocation":"1993:10:22","nodeType":"VariableDeclaration","scope":6036,"src":"1987:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6030,"name":"uint8","nodeType":"ElementaryTypeName","src":"1987:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6034,"indexed":false,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"2013:17:22","nodeType":"VariableDeclaration","scope":6036,"src":"2005:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6032,"name":"uint8","nodeType":"ElementaryTypeName","src":"2005:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6033,"nodeType":"ArrayTypeName","src":"2005:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"1972:59:22"},"src":"1954:78:22"},{"anonymous":false,"eventSelector":"7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f5","id":6042,"name":"OfferRemoved","nameLocation":"2041:12:22","nodeType":"EventDefinition","parameters":{"id":6041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6038,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"2062:4:22","nodeType":"VariableDeclaration","scope":6042,"src":"2054:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6037,"name":"address","nodeType":"ElementaryTypeName","src":"2054:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6040,"indexed":false,"mutability":"mutable","name":"cardNumber","nameLocation":"2074:10:22","nodeType":"VariableDeclaration","scope":6042,"src":"2068:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6039,"name":"uint8","nodeType":"ElementaryTypeName","src":"2068:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2053:32:22"},"src":"2035:51:22"},{"anonymous":false,"eventSelector":"65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8","id":6046,"name":"UserOffersRemoved","nameLocation":"2095:17:22","nodeType":"EventDefinition","parameters":{"id":6045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6044,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"2121:4:22","nodeType":"VariableDeclaration","scope":6046,"src":"2113:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6043,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2112:14:22"},"src":"2089:38:22"},{"anonymous":false,"eventSelector":"47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb0","id":6048,"name":"AllOffersRemoved","nameLocation":"2136:16:22","nodeType":"EventDefinition","parameters":{"id":6047,"nodeType":"ParameterList","parameters":[],"src":"2152:2:22"},"src":"2130:25:22"},{"body":{"id":6062,"nodeType":"Block","src":"2188:91:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6050,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2198:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2202:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2198:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":6054,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"2220:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}],"id":6053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2212:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6052,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:22","typeDescriptions":{}}},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2198:41:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"IfStatement","src":"2194:73:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6057,"name":"OnlyCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"2248:17:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2248:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6059,"nodeType":"RevertStatement","src":"2241:26:22"}},{"id":6061,"nodeType":"PlaceholderStatement","src":"2273:1:22"}]},"id":6063,"name":"onlyCardsContract","nameLocation":"2168:17:22","nodeType":"ModifierDefinition","parameters":{"id":6049,"nodeType":"ParameterList","parameters":[],"src":"2185:2:22"},"src":"2159:120:22","virtual":false,"visibility":"internal"},{"body":{"id":6076,"nodeType":"Block","src":"2305:73:22","statements":[{"condition":{"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2315:30:22","subExpression":{"baseExpression":{"expression":{"id":6065,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2316:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2327:6:22","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2316:17:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6069,"indexExpression":{"expression":{"id":6067,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2334:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2338:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2334:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2316:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6074,"nodeType":"IfStatement","src":"2311:55:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6071,"name":"OnlyOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5889,"src":"2354:10:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6073,"nodeType":"RevertStatement","src":"2347:19:22"}},{"id":6075,"nodeType":"PlaceholderStatement","src":"2372:1:22"}]},"id":6077,"name":"onlyOwners","nameLocation":"2292:10:22","nodeType":"ModifierDefinition","parameters":{"id":6064,"nodeType":"ParameterList","parameters":[],"src":"2302:2:22"},"src":"2283:95:22","virtual":false,"visibility":"internal"},{"body":{"id":6111,"nodeType":"Block","src":"2439:172:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6086,"name":"_cardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"2449:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2467:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6087,"name":"address","nodeType":"ElementaryTypeName","src":"2467:7:22","typeDescriptions":{}}},"id":6090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2449:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6095,"nodeType":"IfStatement","src":"2445:57:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6092,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"2486:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6094,"nodeType":"RevertStatement","src":"2479:23:22"}},{"expression":{"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6096,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"2508:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6098,"name":"_cardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"2549:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6097,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"2529:19:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$5952_$","typeString":"type(contract IGammaCardsContract)"}},"id":6099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2529:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"src":"2508:56:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6101,"nodeType":"ExpressionStatement","src":"2508:56:22"},{"expression":{"id":6109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":6102,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2570:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2581:6:22","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2570:17:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6107,"indexExpression":{"expression":{"id":6104,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2588:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2592:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2588:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2570:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2602:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2570:36:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6110,"nodeType":"ExpressionStatement","src":"2570:36:22"}]},"id":6112,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":6082,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2427:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2431:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2427:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":6084,"kind":"baseConstructorSpecifier","modifierName":{"id":6081,"name":"Ownable","nameLocations":["2419:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"2419:7:22"},"nodeType":"ModifierInvocation","src":"2419:19:22"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6079,"mutability":"mutable","name":"_cardsContract","nameLocation":"2403:14:22","nodeType":"VariableDeclaration","scope":6112,"src":"2395:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6078,"name":"address","nodeType":"ElementaryTypeName","src":"2395:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2394:24:22"},"returnParameters":{"id":6085,"nodeType":"ParameterList","parameters":[],"src":"2439:0:22"},"scope":7472,"src":"2382:229:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6125,"nodeType":"Block","src":"2672:41:22","statements":[{"expression":{"arguments":[{"id":6122,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"2698:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6119,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2678:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2689:8:22","memberName":"addOwner","nodeType":"MemberAccess","referencedDeclaration":8697,"src":"2678:19:22","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2678:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6124,"nodeType":"ExpressionStatement","src":"2678:30:22"}]},"functionSelector":"7065cb48","id":6126,"implemented":true,"kind":"function","modifiers":[{"id":6117,"kind":"modifierInvocation","modifierName":{"id":6116,"name":"onlyOwners","nameLocations":["2661:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"2661:10:22"},"nodeType":"ModifierInvocation","src":"2661:10:22"}],"name":"addOwner","nameLocation":"2624:8:22","nodeType":"FunctionDefinition","parameters":{"id":6115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6114,"mutability":"mutable","name":"_newOwner","nameLocation":"2641:9:22","nodeType":"VariableDeclaration","scope":6126,"src":"2633:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6113,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2632:19:22"},"returnParameters":{"id":6118,"nodeType":"ParameterList","parameters":[],"src":"2672:0:22"},"scope":7472,"src":"2615:98:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6139,"nodeType":"Block","src":"2782:49:22","statements":[{"expression":{"arguments":[{"id":6136,"name":"_ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"2811:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6133,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2788:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2799:11:22","memberName":"removeOwner","nodeType":"MemberAccess","referencedDeclaration":8744,"src":"2788:22:22","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:38:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6138,"nodeType":"ExpressionStatement","src":"2788:38:22"}]},"functionSelector":"173825d9","id":6140,"implemented":true,"kind":"function","modifiers":[{"id":6131,"kind":"modifierInvocation","modifierName":{"id":6130,"name":"onlyOwners","nameLocations":["2771:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"2771:10:22"},"nodeType":"ModifierInvocation","src":"2771:10:22"}],"name":"removeOwner","nameLocation":"2726:11:22","nodeType":"FunctionDefinition","parameters":{"id":6129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6128,"mutability":"mutable","name":"_ownerToRemove","nameLocation":"2746:14:22","nodeType":"VariableDeclaration","scope":6140,"src":"2738:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6127,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2737:24:22"},"returnParameters":{"id":6132,"nodeType":"ParameterList","parameters":[],"src":"2782:0:22"},"scope":7472,"src":"2717:114:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6167,"nodeType":"Block","src":"2913:193:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6147,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6142,"src":"2923:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2946:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6148,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:22","typeDescriptions":{}}},"id":6151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2946:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2923:33:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6156,"nodeType":"IfStatement","src":"2919:62:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6153,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"2965:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2965:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6155,"nodeType":"RevertStatement","src":"2958:23:22"}},{"expression":{"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6157,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"2987:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6159,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6142,"src":"3028:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6158,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"3008:19:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$5952_$","typeString":"type(contract IGammaCardsContract)"}},"id":6160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3008:40:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"src":"2987:61:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6162,"nodeType":"ExpressionStatement","src":"2987:61:22"},{"eventCall":{"arguments":[{"id":6164,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6142,"src":"3081:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6163,"name":"NewGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"3059:21:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3059:42:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6166,"nodeType":"EmitStatement","src":"3054:47:22"}]},"functionSelector":"4c7a7ad3","id":6168,"implemented":true,"kind":"function","modifiers":[{"id":6145,"kind":"modifierInvocation","modifierName":{"id":6144,"name":"onlyOwners","nameLocations":["2902:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"2902:10:22"},"nodeType":"ModifierInvocation","src":"2902:10:22"}],"name":"setGammaCardsContract","nameLocation":"2844:21:22","nodeType":"FunctionDefinition","parameters":{"id":6143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6142,"mutability":"mutable","name":"_gammaCardsContract","nameLocation":"2874:19:22","nodeType":"VariableDeclaration","scope":6168,"src":"2866:27:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6141,"name":"address","nodeType":"ElementaryTypeName","src":"2866:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2865:29:22"},"returnParameters":{"id":6146,"nodeType":"ParameterList","parameters":[],"src":"2913:0:22"},"scope":7472,"src":"2835:271:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6179,"nodeType":"Block","src":"3186:47:22","statements":[{"expression":{"id":6177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6175,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"3192:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6176,"name":"_maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"3211:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3192:36:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6178,"nodeType":"ExpressionStatement","src":"3192:36:22"}]},"functionSelector":"e5e5f732","id":6180,"implemented":true,"kind":"function","modifiers":[{"id":6173,"kind":"modifierInvocation","modifierName":{"id":6172,"name":"onlyOwners","nameLocations":["3175:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3175:10:22"},"nodeType":"ModifierInvocation","src":"3175:10:22"}],"name":"setMaxOffersAllowed","nameLocation":"3119:19:22","nodeType":"FunctionDefinition","parameters":{"id":6171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6170,"mutability":"mutable","name":"_maxOffersAllowed","nameLocation":"3147:17:22","nodeType":"VariableDeclaration","scope":6180,"src":"3139:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6169,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3138:27:22"},"returnParameters":{"id":6174,"nodeType":"ParameterList","parameters":[],"src":"3186:0:22"},"scope":7472,"src":"3110:123:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6191,"nodeType":"Block","src":"3325:59:22","statements":[{"expression":{"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6187,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"3331:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6188,"name":"_maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"3356:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3331:48:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6190,"nodeType":"ExpressionStatement","src":"3331:48:22"}]},"functionSelector":"3808dfe7","id":6192,"implemented":true,"kind":"function","modifiers":[{"id":6185,"kind":"modifierInvocation","modifierName":{"id":6184,"name":"onlyOwners","nameLocations":["3314:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3314:10:22"},"nodeType":"ModifierInvocation","src":"3314:10:22"}],"name":"setMaxOffersByUserAllowed","nameLocation":"3246:25:22","nodeType":"FunctionDefinition","parameters":{"id":6183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"_maxOffersByUserAllowed","nameLocation":"3280:23:22","nodeType":"VariableDeclaration","scope":6192,"src":"3272:31:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6181,"name":"uint256","nodeType":"ElementaryTypeName","src":"3272:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3271:33:22"},"returnParameters":{"id":6186,"nodeType":"ParameterList","parameters":[],"src":"3325:0:22"},"scope":7472,"src":"3237:147:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6203,"nodeType":"Block","src":"3474:57:22","statements":[{"expression":{"id":6201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6199,"name":"maxCardNumbersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"3480:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6200,"name":"_maxCardNumbersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6194,"src":"3504:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3480:46:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6202,"nodeType":"ExpressionStatement","src":"3480:46:22"}]},"functionSelector":"e02f9723","id":6204,"implemented":true,"kind":"function","modifiers":[{"id":6197,"kind":"modifierInvocation","modifierName":{"id":6196,"name":"onlyOwners","nameLocations":["3463:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3463:10:22"},"nodeType":"ModifierInvocation","src":"3463:10:22"}],"name":"setMaxCardNumbersAllowed","nameLocation":"3397:24:22","nodeType":"FunctionDefinition","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6194,"mutability":"mutable","name":"_maxCardNumbersAllowed","nameLocation":"3430:22:22","nodeType":"VariableDeclaration","scope":6204,"src":"3422:30:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6193,"name":"uint256","nodeType":"ElementaryTypeName","src":"3422:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3421:32:22"},"returnParameters":{"id":6198,"nodeType":"ParameterList","parameters":[],"src":"3474:0:22"},"scope":7472,"src":"3388:143:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6215,"nodeType":"Block","src":"3614:50:22","statements":[{"expression":{"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6211,"name":"removeCardInInventoryWhenOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"3620:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6212,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6206,"src":"3653:6:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3620:39:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6214,"nodeType":"ExpressionStatement","src":"3620:39:22"}]},"functionSelector":"58e57ebb","id":6216,"implemented":true,"kind":"function","modifiers":[{"id":6209,"kind":"modifierInvocation","modifierName":{"id":6208,"name":"onlyOwners","nameLocations":["3603:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3603:10:22"},"nodeType":"ModifierInvocation","src":"3603:10:22"}],"name":"changeRemoveCardinInventoryWhenOffer","nameLocation":"3544:36:22","nodeType":"FunctionDefinition","parameters":{"id":6207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6206,"mutability":"mutable","name":"_value","nameLocation":"3586:6:22","nodeType":"VariableDeclaration","scope":6216,"src":"3581:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6205,"name":"bool","nodeType":"ElementaryTypeName","src":"3581:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3580:13:22"},"returnParameters":{"id":6210,"nodeType":"ParameterList","parameters":[],"src":"3614:0:22"},"scope":7472,"src":"3535:129:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6234,"nodeType":"Block","src":"3787:83:22","statements":[{"expression":{"arguments":[{"id":6227,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"3814:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":6228,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3823:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3827:6:22","memberName":"sender","nodeType":"MemberAccess","src":"3823:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6230,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6220,"src":"3835:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6231,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6223,"src":"3847:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}],"id":6226,"name":"_createOfferWithUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"3793:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint8_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address,uint8,uint8[] memory)"}},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:72:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6233,"nodeType":"ExpressionStatement","src":"3793:72:22"}]},"functionSelector":"3e293e16","id":6235,"implemented":true,"kind":"function","modifiers":[],"name":"createOffer","nameLocation":"3677:11:22","nodeType":"FunctionDefinition","parameters":{"id":6224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6218,"mutability":"mutable","name":"offerId","nameLocation":"3708:7:22","nodeType":"VariableDeclaration","scope":6235,"src":"3694:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6217,"name":"string","nodeType":"ElementaryTypeName","src":"3694:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6220,"mutability":"mutable","name":"cardNumber","nameLocation":"3727:10:22","nodeType":"VariableDeclaration","scope":6235,"src":"3721:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6219,"name":"uint8","nodeType":"ElementaryTypeName","src":"3721:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6223,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"3758:17:22","nodeType":"VariableDeclaration","scope":6235,"src":"3743:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6221,"name":"uint8","nodeType":"ElementaryTypeName","src":"3743:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6222,"nodeType":"ArrayTypeName","src":"3743:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"3688:91:22"},"returnParameters":{"id":6225,"nodeType":"ParameterList","parameters":[],"src":"3787:0:22"},"scope":7472,"src":"3668:202:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6256,"nodeType":"Block","src":"4031:77:22","statements":[{"expression":{"arguments":[{"id":6250,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6237,"src":"4058:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6251,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6239,"src":"4067:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6252,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"4073:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6253,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"4085:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}],"id":6249,"name":"_createOfferWithUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"4037:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint8_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address,uint8,uint8[] memory)"}},"id":6254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4037:66:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6255,"nodeType":"ExpressionStatement","src":"4037:66:22"}]},"functionSelector":"17a1fed9","id":6257,"implemented":true,"kind":"function","modifiers":[{"id":6247,"kind":"modifierInvocation","modifierName":{"id":6246,"name":"onlyOwners","nameLocations":["4020:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"4020:10:22"},"nodeType":"ModifierInvocation","src":"4020:10:22"}],"name":"createOfferWithoUser","nameLocation":"3883:20:22","nodeType":"FunctionDefinition","parameters":{"id":6245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6237,"mutability":"mutable","name":"offerId","nameLocation":"3923:7:22","nodeType":"VariableDeclaration","scope":6257,"src":"3909:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6236,"name":"string","nodeType":"ElementaryTypeName","src":"3909:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6239,"mutability":"mutable","name":"user","nameLocation":"3944:4:22","nodeType":"VariableDeclaration","scope":6257,"src":"3936:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6238,"name":"address","nodeType":"ElementaryTypeName","src":"3936:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6241,"mutability":"mutable","name":"cardNumber","nameLocation":"3960:10:22","nodeType":"VariableDeclaration","scope":6257,"src":"3954:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6240,"name":"uint8","nodeType":"ElementaryTypeName","src":"3954:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6244,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"3991:17:22","nodeType":"VariableDeclaration","scope":6257,"src":"3976:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6242,"name":"uint8","nodeType":"ElementaryTypeName","src":"3976:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6243,"nodeType":"ArrayTypeName","src":"3976:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"3903:109:22"},"returnParameters":{"id":6248,"nodeType":"ParameterList","parameters":[],"src":"4031:0:22"},"scope":7472,"src":"3874:234:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6422,"nodeType":"Block","src":"4259:1182:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6271,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"4277:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}],"id":6270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4269:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6269,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:22","typeDescriptions":{}}},"id":6272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4269:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4300:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6273,"name":"address","nodeType":"ElementaryTypeName","src":"4300:7:22","typeDescriptions":{}}},"id":6276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4300:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4269:41:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6281,"nodeType":"IfStatement","src":"4265:80:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6278,"name":"GammaCardsContractNotSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5893,"src":"4319:24:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4319:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6280,"nodeType":"RevertStatement","src":"4312:33:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6282,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"4355:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6284,"indexExpression":{"id":6283,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4375:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4355:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6285,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"4384:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4355:51:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6290,"nodeType":"IfStatement","src":"4351:86:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6287,"name":"OffersMaximumAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4415:20:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4415:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6289,"nodeType":"RevertStatement","src":"4408:29:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6291,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"4447:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6292,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"4469:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4447:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6297,"nodeType":"IfStatement","src":"4443:73:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6294,"name":"OffersMaximumAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4494:20:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6296,"nodeType":"RevertStatement","src":"4487:29:22"}},{"assignments":[6299],"declarations":[{"constant":false,"id":6299,"mutability":"mutable","name":"userHasCard","nameLocation":"4528:11:22","nodeType":"VariableDeclaration","scope":6422,"src":"4523:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6298,"name":"bool","nodeType":"ElementaryTypeName","src":"4523:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6305,"initialValue":{"arguments":[{"id":6302,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4576:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6303,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"4582:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6300,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"4542:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4561:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"4542:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4542:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4523:70:22"},{"condition":{"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4603:12:22","subExpression":{"id":6306,"name":"userHasCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6299,"src":"4604:11:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6311,"nodeType":"IfStatement","src":"4599:46:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6308,"name":"UserDoesNotHaveCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"4624:19:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4624:21:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6310,"nodeType":"RevertStatement","src":"4617:28:22"}},{"body":{"id":6332,"nodeType":"Block","src":"4705:81:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6323,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"4717:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6325,"indexExpression":{"id":6324,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"4735:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4717:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6326,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"4741:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4717:34:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6331,"nodeType":"IfStatement","src":"4713:66:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6328,"name":"InvalidCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5899,"src":"4760:17:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4760:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6330,"nodeType":"RevertStatement","src":"4753:26:22"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6316,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"4670:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6317,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"4674:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4692:6:22","memberName":"length","nodeType":"MemberAccess","src":"4674:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4670:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6333,"initializationExpression":{"assignments":[6313],"declarations":[{"constant":false,"id":6313,"mutability":"mutable","name":"i","nameLocation":"4663:1:22","nodeType":"VariableDeclaration","scope":6333,"src":"4657:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6312,"name":"uint8","nodeType":"ElementaryTypeName","src":"4657:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6315,"initialValue":{"hexValue":"30","id":6314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4667:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4657:11:22"},"loopExpression":{"expression":{"id":6321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4700:3:22","subExpression":{"id":6320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"4700:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6322,"nodeType":"ExpressionStatement","src":"4700:3:22"},"nodeType":"ForStatement","src":"4652:134:22"},{"assignments":[6336],"declarations":[{"constant":false,"id":6336,"mutability":"mutable","name":"existingOffer","nameLocation":"4805:13:22","nodeType":"VariableDeclaration","scope":6422,"src":"4792:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6335,"nodeType":"UserDefinedTypeName","pathNode":{"id":6334,"name":"Offer","nameLocations":["4792:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"4792:5:22"},"referencedDeclaration":5997,"src":"4792:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6341,"initialValue":{"arguments":[{"id":6338,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4849:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6339,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"4855:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6337,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"4821:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4821:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"4792:74:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6342,"name":"existingOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"4876:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4890:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"4876:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4907:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4899:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6344,"name":"address","nodeType":"ElementaryTypeName","src":"4899:7:22","typeDescriptions":{}}},"id":6347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4899:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4876:33:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6352,"nodeType":"IfStatement","src":"4872:66:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6349,"name":"OfferAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5901,"src":"4918:18:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4918:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6351,"nodeType":"RevertStatement","src":"4911:27:22"}},{"expression":{"id":6357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6353,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"4945:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6355,"indexExpression":{"id":6354,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4965:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4945:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4974:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4945:30:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6358,"nodeType":"ExpressionStatement","src":"4945:30:22"},{"expression":{"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6359,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"4981:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":6361,"indexExpression":{"id":6360,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5007:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4981:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5022:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4981:42:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6364,"nodeType":"ExpressionStatement","src":"4981:42:22"},{"expression":{"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6365,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"5029:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5051:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5029:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6368,"nodeType":"ExpressionStatement","src":"5029:23:22"},{"expression":{"arguments":[{"arguments":[{"id":6373,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6259,"src":"5077:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6374,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5086:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6375,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"5098:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":6376,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5117:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6377,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5123:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5129:9:22","memberName":"timestamp","nodeType":"MemberAccess","src":"5123:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6372,"name":"Offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"5071:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Offer_$5997_storage_ptr_$","typeString":"type(struct NofGammaOffersV4.Offer storage pointer)"}},"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}],"expression":{"id":6369,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5059:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5066:4:22","memberName":"push","nodeType":"MemberAccess","src":"5059:11:22","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$_t_struct$_Offer_$5997_storage_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer,struct NofGammaOffersV4.Offer storage ref)"}},"id":6380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5059:81:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6381,"nodeType":"ExpressionStatement","src":"5059:81:22"},{"expression":{"arguments":[{"baseExpression":{"id":6386,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5170:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6391,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6387,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5177:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5184:6:22","memberName":"length","nodeType":"MemberAccess","src":"5177:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5193:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5177:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5170:25:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}],"expression":{"baseExpression":{"id":6382,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"5146:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6384,"indexExpression":{"id":6383,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5159:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5146:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5165:4:22","memberName":"push","nodeType":"MemberAccess","src":"5146:23:22","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$_t_struct$_Offer_$5997_storage_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer,struct NofGammaOffersV4.Offer storage ref)"}},"id":6392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5146:50:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6393,"nodeType":"ExpressionStatement","src":"5146:50:22"},{"expression":{"arguments":[{"baseExpression":{"id":6398,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5238:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6403,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6399,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5245:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5252:6:22","memberName":"length","nodeType":"MemberAccess","src":"5245:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5261:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5245:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5238:25:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}],"expression":{"baseExpression":{"id":6394,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"5202:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6396,"indexExpression":{"id":6395,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5221:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5202:30:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5233:4:22","memberName":"push","nodeType":"MemberAccess","src":"5202:35:22","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$_t_struct$_Offer_$5997_storage_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer,struct NofGammaOffersV4.Offer storage ref)"}},"id":6404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5202:62:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6405,"nodeType":"ExpressionStatement","src":"5202:62:22"},{"condition":{"id":6406,"name":"removeCardInInventoryWhenOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"5275:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6415,"nodeType":"IfStatement","src":"5271:105:22","trueBody":{"id":6414,"nodeType":"Block","src":"5307:69:22","statements":[{"expression":{"arguments":[{"id":6410,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5352:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6411,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5358:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6407,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"5315:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5334:17:22","memberName":"removeCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5933,"src":"5315:36:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8) external"}},"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5315:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6413,"nodeType":"ExpressionStatement","src":"5315:54:22"}]}},{"eventCall":{"arguments":[{"id":6417,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5400:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6418,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5406:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6419,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"5418:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}],"id":6416,"name":"OfferCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"5387:12:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint8,uint8[] memory)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5387:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6421,"nodeType":"EmitStatement","src":"5382:54:22"}]},"id":6423,"implemented":true,"kind":"function","modifiers":[],"name":"_createOfferWithUser","nameLocation":"4121:20:22","nodeType":"FunctionDefinition","parameters":{"id":6267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6259,"mutability":"mutable","name":"offerId","nameLocation":"4161:7:22","nodeType":"VariableDeclaration","scope":6423,"src":"4147:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6258,"name":"string","nodeType":"ElementaryTypeName","src":"4147:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6261,"mutability":"mutable","name":"user","nameLocation":"4182:4:22","nodeType":"VariableDeclaration","scope":6423,"src":"4174:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6260,"name":"address","nodeType":"ElementaryTypeName","src":"4174:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6263,"mutability":"mutable","name":"cardNumber","nameLocation":"4198:10:22","nodeType":"VariableDeclaration","scope":6423,"src":"4192:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6262,"name":"uint8","nodeType":"ElementaryTypeName","src":"4192:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6266,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"4229:17:22","nodeType":"VariableDeclaration","scope":6423,"src":"4214:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6264,"name":"uint8","nodeType":"ElementaryTypeName","src":"4214:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6265,"nodeType":"ArrayTypeName","src":"4214:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"4141:109:22"},"returnParameters":{"id":6268,"nodeType":"ParameterList","parameters":[],"src":"4259:0:22"},"scope":7472,"src":"4112:1329:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6435,"nodeType":"Block","src":"5505:41:22","statements":[{"expression":{"baseExpression":{"expression":{"id":6430,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"5518:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5529:6:22","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"5518:17:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6433,"indexExpression":{"id":6432,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6425,"src":"5536:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5518:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6429,"id":6434,"nodeType":"Return","src":"5511:30:22"}]},"functionSelector":"2f54bf6e","id":6436,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nameLocation":"5454:7:22","nodeType":"FunctionDefinition","parameters":{"id":6426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6425,"mutability":"mutable","name":"user","nameLocation":"5470:4:22","nodeType":"VariableDeclaration","scope":6436,"src":"5462:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6424,"name":"address","nodeType":"ElementaryTypeName","src":"5462:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:14:22"},"returnParameters":{"id":6429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6436,"src":"5499:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6427,"name":"bool","nodeType":"ElementaryTypeName","src":"5499:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5498:6:22"},"scope":7472,"src":"5445:101:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6457,"nodeType":"Block","src":"5628:96:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6443,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6438,"src":"5638:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5654:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5646:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6444,"name":"address","nodeType":"ElementaryTypeName","src":"5646:7:22","typeDescriptions":{}}},"id":6447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5646:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5638:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6452,"nodeType":"IfStatement","src":"5634:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6449,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"5665:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5665:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6451,"nodeType":"RevertStatement","src":"5658:23:22"}},{"expression":{"baseExpression":{"id":6453,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"5694:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6455,"indexExpression":{"id":6454,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6438,"src":"5714:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5694:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6442,"id":6456,"nodeType":"Return","src":"5687:32:22"}]},"functionSelector":"0cdb3117","id":6458,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByUserCounter","nameLocation":"5559:22:22","nodeType":"FunctionDefinition","parameters":{"id":6439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6438,"mutability":"mutable","name":"user","nameLocation":"5590:4:22","nodeType":"VariableDeclaration","scope":6458,"src":"5582:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6437,"name":"address","nodeType":"ElementaryTypeName","src":"5582:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5581:14:22"},"returnParameters":{"id":6442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6458,"src":"5619:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6440,"name":"uint256","nodeType":"ElementaryTypeName","src":"5619:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5618:9:22"},"scope":7472,"src":"5550:174:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6469,"nodeType":"Block","src":"5816:55:22","statements":[{"expression":{"baseExpression":{"id":6465,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"5829:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":6467,"indexExpression":{"id":6466,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6460,"src":"5855:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5829:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6464,"id":6468,"nodeType":"Return","src":"5822:44:22"}]},"functionSelector":"ce7483d5","id":6470,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByCardNumberCounter","nameLocation":"5737:28:22","nodeType":"FunctionDefinition","parameters":{"id":6461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6460,"mutability":"mutable","name":"cardNumber","nameLocation":"5772:10:22","nodeType":"VariableDeclaration","scope":6470,"src":"5766:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6459,"name":"uint8","nodeType":"ElementaryTypeName","src":"5766:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5765:18:22"},"returnParameters":{"id":6464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6470,"src":"5807:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6462,"name":"uint256","nodeType":"ElementaryTypeName","src":"5807:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5806:9:22"},"scope":7472,"src":"5728:143:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6477,"nodeType":"Block","src":"5935:36:22","statements":[{"expression":{"id":6475,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"5948:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6474,"id":6476,"nodeType":"Return","src":"5941:25:22"}]},"functionSelector":"cf86f8e5","id":6478,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersCounter","nameLocation":"5884:16:22","nodeType":"FunctionDefinition","parameters":{"id":6471,"nodeType":"ParameterList","parameters":[],"src":"5900:2:22"},"returnParameters":{"id":6474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6478,"src":"5926:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5926:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5925:9:22"},"scope":7472,"src":"5875:96:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6485,"nodeType":"Block","src":"6038:34:22","statements":[{"expression":{"id":6483,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"6051:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6482,"id":6484,"nodeType":"Return","src":"6044:23:22"}]},"functionSelector":"90222aa1","id":6486,"implemented":true,"kind":"function","modifiers":[],"name":"getMaxOffersAllowed","nameLocation":"5984:19:22","nodeType":"FunctionDefinition","parameters":{"id":6479,"nodeType":"ParameterList","parameters":[],"src":"6003:2:22"},"returnParameters":{"id":6482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6486,"src":"6029:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6480,"name":"uint256","nodeType":"ElementaryTypeName","src":"6029:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6028:9:22"},"scope":7472,"src":"5975:97:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6493,"nodeType":"Block","src":"6145:40:22","statements":[{"expression":{"id":6491,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"6158:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6490,"id":6492,"nodeType":"Return","src":"6151:29:22"}]},"functionSelector":"ba79b77b","id":6494,"implemented":true,"kind":"function","modifiers":[],"name":"getMaxOffersByUserAllowed","nameLocation":"6085:25:22","nodeType":"FunctionDefinition","parameters":{"id":6487,"nodeType":"ParameterList","parameters":[],"src":"6110:2:22"},"returnParameters":{"id":6490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6494,"src":"6136:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6488,"name":"uint256","nodeType":"ElementaryTypeName","src":"6136:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6135:9:22"},"scope":7472,"src":"6076:109:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6503,"nodeType":"Block","src":"6249:24:22","statements":[{"expression":{"id":6501,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6262:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"functionReturnParameters":6500,"id":6502,"nodeType":"Return","src":"6255:13:22"}]},"functionSelector":"3ee992ee","id":6504,"implemented":true,"kind":"function","modifiers":[],"name":"getOffers","nameLocation":"6198:9:22","nodeType":"FunctionDefinition","parameters":{"id":6495,"nodeType":"ParameterList","parameters":[],"src":"6207:2:22"},"returnParameters":{"id":6500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6504,"src":"6233:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6497,"nodeType":"UserDefinedTypeName","pathNode":{"id":6496,"name":"Offer","nameLocations":["6233:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6233:5:22"},"referencedDeclaration":5997,"src":"6233:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6498,"nodeType":"ArrayTypeName","src":"6233:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"src":"6232:16:22"},"scope":7472,"src":"6189:84:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6524,"nodeType":"Block","src":"6352:88:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6512,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"6362:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":6513,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6371:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6378:6:22","memberName":"length","nodeType":"MemberAccess","src":"6371:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6362:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6519,"nodeType":"IfStatement","src":"6358:51:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6516,"name":"InvalidOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5903,"src":"6393:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6518,"nodeType":"RevertStatement","src":"6386:23:22"}},{"expression":{"baseExpression":{"id":6520,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6422:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6522,"indexExpression":{"id":6521,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"6429:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6422:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"functionReturnParameters":6511,"id":6523,"nodeType":"Return","src":"6415:20:22"}]},"functionSelector":"e359a0a1","id":6525,"implemented":true,"kind":"function","modifiers":[],"name":"getOfferByIndex","nameLocation":"6286:15:22","nodeType":"FunctionDefinition","parameters":{"id":6507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6506,"mutability":"mutable","name":"index","nameLocation":"6310:5:22","nodeType":"VariableDeclaration","scope":6525,"src":"6302:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6505,"name":"uint256","nodeType":"ElementaryTypeName","src":"6302:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6301:15:22"},"returnParameters":{"id":6511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6525,"src":"6338:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6509,"nodeType":"UserDefinedTypeName","pathNode":{"id":6508,"name":"Offer","nameLocations":["6338:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6338:5:22"},"referencedDeclaration":5997,"src":"6338:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"6337:14:22"},"scope":7472,"src":"6277:163:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6572,"nodeType":"Block","src":"6531:223:22","statements":[{"body":{"id":6567,"nodeType":"Block","src":"6581:143:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":6547,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6620:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6549,"indexExpression":{"id":6548,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6627:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6620:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6630:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"6620:17:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":6545,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6603:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6607:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"6603:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6603:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6544,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6593:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":6556,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"6670:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6653:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6657:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"6653:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6653:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6553,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6643:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6643:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6593:86:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6566,"nodeType":"IfStatement","src":"6589:129:22","trueBody":{"id":6565,"nodeType":"Block","src":"6681:37:22","statements":[{"expression":{"components":[{"baseExpression":{"id":6560,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6699:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6562,"indexExpression":{"id":6561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6706:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6699:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}}],"id":6563,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6698:11:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"functionReturnParameters":6532,"id":6564,"nodeType":"Return","src":"6691:18:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6537,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6557:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6538,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6561:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6568:6:22","memberName":"length","nodeType":"MemberAccess","src":"6561:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6557:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6568,"initializationExpression":{"assignments":[6534],"declarations":[{"constant":false,"id":6534,"mutability":"mutable","name":"i","nameLocation":"6550:1:22","nodeType":"VariableDeclaration","scope":6568,"src":"6542:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6533,"name":"uint256","nodeType":"ElementaryTypeName","src":"6542:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6536,"initialValue":{"hexValue":"30","id":6535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6554:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6542:13:22"},"loopExpression":{"expression":{"id":6542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6576:3:22","subExpression":{"id":6541,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6576:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6543,"nodeType":"ExpressionStatement","src":"6576:3:22"},"nodeType":"ForStatement","src":"6537:187:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6569,"name":"_emptyOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"6736:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function () pure returns (struct NofGammaOffersV4.Offer memory)"}},"id":6570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6736:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"functionReturnParameters":6532,"id":6571,"nodeType":"Return","src":"6729:20:22"}]},"functionSelector":"e2b36596","id":6573,"implemented":true,"kind":"function","modifiers":[],"name":"getOfferByOfferId","nameLocation":"6453:17:22","nodeType":"FunctionDefinition","parameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6527,"mutability":"mutable","name":"offerId","nameLocation":"6485:7:22","nodeType":"VariableDeclaration","scope":6573,"src":"6471:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6526,"name":"string","nodeType":"ElementaryTypeName","src":"6471:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6470:23:22"},"returnParameters":{"id":6532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6573,"src":"6517:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6530,"nodeType":"UserDefinedTypeName","pathNode":{"id":6529,"name":"Offer","nameLocations":["6517:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6517:5:22"},"referencedDeclaration":5997,"src":"6517:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"6516:14:22"},"scope":7472,"src":"6444:310:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6596,"nodeType":"Block","src":"6836:89:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6582,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"6846:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6862:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6854:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6583,"name":"address","nodeType":"ElementaryTypeName","src":"6854:7:22","typeDescriptions":{}}},"id":6586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6854:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6846:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6591,"nodeType":"IfStatement","src":"6842:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6588,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"6873:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6873:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6590,"nodeType":"RevertStatement","src":"6866:23:22"}},{"expression":{"baseExpression":{"id":6592,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"6902:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6594,"indexExpression":{"id":6593,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"6915:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6902:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"functionReturnParameters":6581,"id":6595,"nodeType":"Return","src":"6895:25:22"}]},"functionSelector":"9618b333","id":6597,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByUser","nameLocation":"6767:15:22","nodeType":"FunctionDefinition","parameters":{"id":6576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6575,"mutability":"mutable","name":"user","nameLocation":"6791:4:22","nodeType":"VariableDeclaration","scope":6597,"src":"6783:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6574,"name":"address","nodeType":"ElementaryTypeName","src":"6783:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6782:14:22"},"returnParameters":{"id":6581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6597,"src":"6820:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6578,"nodeType":"UserDefinedTypeName","pathNode":{"id":6577,"name":"Offer","nameLocations":["6820:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6820:5:22"},"referencedDeclaration":5997,"src":"6820:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6579,"nodeType":"ArrayTypeName","src":"6820:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"src":"6819:16:22"},"scope":7472,"src":"6758:167:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6610,"nodeType":"Block","src":"7017:48:22","statements":[{"expression":{"baseExpression":{"id":6606,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"7030:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6608,"indexExpression":{"id":6607,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"7049:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7030:30:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"functionReturnParameters":6605,"id":6609,"nodeType":"Return","src":"7023:37:22"}]},"functionSelector":"8400a189","id":6611,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByCardNumber","nameLocation":"6938:21:22","nodeType":"FunctionDefinition","parameters":{"id":6600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6599,"mutability":"mutable","name":"cardNumber","nameLocation":"6966:10:22","nodeType":"VariableDeclaration","scope":6611,"src":"6960:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6598,"name":"uint8","nodeType":"ElementaryTypeName","src":"6960:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6959:18:22"},"returnParameters":{"id":6605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6611,"src":"7001:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6602,"nodeType":"UserDefinedTypeName","pathNode":{"id":6601,"name":"Offer","nameLocations":["7001:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"7001:5:22"},"referencedDeclaration":5997,"src":"7001:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6603,"nodeType":"ArrayTypeName","src":"7001:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"src":"7000:16:22"},"scope":7472,"src":"6929:136:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6673,"nodeType":"Block","src":"7185:361:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6621,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"7195:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7211:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7203:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6622,"name":"address","nodeType":"ElementaryTypeName","src":"7203:7:22","typeDescriptions":{}}},"id":6625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7195:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6630,"nodeType":"IfStatement","src":"7191:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6627,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"7222:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7222:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6629,"nodeType":"RevertStatement","src":"7215:23:22"}},{"assignments":[6635],"declarations":[{"constant":false,"id":6635,"mutability":"mutable","name":"userOffers","nameLocation":"7261:10:22","nodeType":"VariableDeclaration","scope":6673,"src":"7245:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6633,"nodeType":"UserDefinedTypeName","pathNode":{"id":6632,"name":"Offer","nameLocations":["7245:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"7245:5:22"},"referencedDeclaration":5997,"src":"7245:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6634,"nodeType":"ArrayTypeName","src":"7245:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":6639,"initialValue":{"baseExpression":{"id":6636,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"7274:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6638,"indexExpression":{"id":6637,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"7287:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7274:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7245:47:22"},{"assignments":[6641],"declarations":[{"constant":false,"id":6641,"mutability":"mutable","name":"currentUserOffersCounter","nameLocation":"7306:24:22","nodeType":"VariableDeclaration","scope":6673,"src":"7298:32:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6640,"name":"uint256","nodeType":"ElementaryTypeName","src":"7298:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6645,"initialValue":{"baseExpression":{"id":6642,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7333:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6644,"indexExpression":{"id":6643,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"7353:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7333:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7298:60:22"},{"body":{"id":6668,"nodeType":"Block","src":"7419:97:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":6656,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"7431:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":6658,"indexExpression":{"id":6657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7442:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7431:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7445:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"7431:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6660,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6615,"src":"7459:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7431:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6667,"nodeType":"IfStatement","src":"7427:83:22","trueBody":{"id":6666,"nodeType":"Block","src":"7471:39:22","statements":[{"expression":{"baseExpression":{"id":6662,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"7488:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":6664,"indexExpression":{"id":6663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7499:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7488:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"functionReturnParameters":6620,"id":6665,"nodeType":"Return","src":"7481:20:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6650,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7384:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6651,"name":"currentUserOffersCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6641,"src":"7388:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7384:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6669,"initializationExpression":{"assignments":[6647],"declarations":[{"constant":false,"id":6647,"mutability":"mutable","name":"i","nameLocation":"7377:1:22","nodeType":"VariableDeclaration","scope":6669,"src":"7369:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6646,"name":"uint256","nodeType":"ElementaryTypeName","src":"7369:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6649,"initialValue":{"hexValue":"30","id":6648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7381:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7369:13:22"},"loopExpression":{"expression":{"id":6654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7414:3:22","subExpression":{"id":6653,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7414:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6655,"nodeType":"ExpressionStatement","src":"7414:3:22"},"nodeType":"ForStatement","src":"7364:152:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6670,"name":"_emptyOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"7528:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function () pure returns (struct NofGammaOffersV4.Offer memory)"}},"id":6671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7528:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"functionReturnParameters":6620,"id":6672,"nodeType":"Return","src":"7521:20:22"}]},"functionSelector":"9f915069","id":6674,"implemented":true,"kind":"function","modifiers":[],"name":"getOfferByUserAndCardNumber","nameLocation":"7078:27:22","nodeType":"FunctionDefinition","parameters":{"id":6616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6613,"mutability":"mutable","name":"user","nameLocation":"7119:4:22","nodeType":"VariableDeclaration","scope":6674,"src":"7111:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6612,"name":"address","nodeType":"ElementaryTypeName","src":"7111:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6615,"mutability":"mutable","name":"cardNumber","nameLocation":"7135:10:22","nodeType":"VariableDeclaration","scope":6674,"src":"7129:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6614,"name":"uint8","nodeType":"ElementaryTypeName","src":"7129:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"7105:44:22"},"returnParameters":{"id":6620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6674,"src":"7171:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6618,"nodeType":"UserDefinedTypeName","pathNode":{"id":6617,"name":"Offer","nameLocations":["7171:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"7171:5:22"},"referencedDeclaration":5997,"src":"7171:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"7170:14:22"},"scope":7472,"src":"7069:477:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6687,"nodeType":"Block","src":"7620:68:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6681,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"7633:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"baseExpression":{"id":6682,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7658:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6684,"indexExpression":{"id":6683,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6676,"src":"7678:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7658:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7633:50:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6680,"id":6686,"nodeType":"Return","src":"7626:57:22"}]},"functionSelector":"29d3f60b","id":6688,"implemented":true,"kind":"function","modifiers":[],"name":"canUserPublishOffer","nameLocation":"7559:19:22","nodeType":"FunctionDefinition","parameters":{"id":6677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6676,"mutability":"mutable","name":"user","nameLocation":"7587:4:22","nodeType":"VariableDeclaration","scope":6688,"src":"7579:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6675,"name":"address","nodeType":"ElementaryTypeName","src":"7579:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7578:14:22"},"returnParameters":{"id":6680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6688,"src":"7614:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6678,"name":"bool","nodeType":"ElementaryTypeName","src":"7614:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7613:6:22"},"scope":7472,"src":"7550:138:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6697,"nodeType":"Block","src":"7753:55:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6693,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"7766:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6694,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7785:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7766:37:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6692,"id":6696,"nodeType":"Return","src":"7759:44:22"}]},"functionSelector":"619980dc","id":6698,"implemented":true,"kind":"function","modifiers":[],"name":"canAnyUserPublishOffer","nameLocation":"7701:22:22","nodeType":"FunctionDefinition","parameters":{"id":6689,"nodeType":"ParameterList","parameters":[],"src":"7723:2:22"},"returnParameters":{"id":6692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6691,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6698,"src":"7747:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6690,"name":"bool","nodeType":"ElementaryTypeName","src":"7747:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7746:6:22"},"scope":7472,"src":"7692:116:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6745,"nodeType":"Block","src":"7889:233:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6707,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6700,"src":"7899:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7915:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7907:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6708,"name":"address","nodeType":"ElementaryTypeName","src":"7907:7:22","typeDescriptions":{}}},"id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7907:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7899:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6716,"nodeType":"IfStatement","src":"7895:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6713,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"7926:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7926:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6715,"nodeType":"RevertStatement","src":"7919:23:22"}},{"body":{"id":6741,"nodeType":"Block","src":"8004:96:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":6729,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"8016:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6731,"indexExpression":{"id":6730,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6700,"src":"8029:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8016:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6733,"indexExpression":{"id":6732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"8035:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8016:21:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8038:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"8016:32:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6735,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6702,"src":"8052:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8016:46:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6740,"nodeType":"IfStatement","src":"8012:82:22","trueBody":{"id":6739,"nodeType":"Block","src":"8064:30:22","statements":[{"expression":{"hexValue":"74727565","id":6737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8081:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6706,"id":6738,"nodeType":"Return","src":"8074:11:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7968:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":6722,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7972:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6724,"indexExpression":{"id":6723,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6700,"src":"7992:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7972:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7968:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6742,"initializationExpression":{"assignments":[6718],"declarations":[{"constant":false,"id":6718,"mutability":"mutable","name":"i","nameLocation":"7961:1:22","nodeType":"VariableDeclaration","scope":6742,"src":"7953:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6717,"name":"uint256","nodeType":"ElementaryTypeName","src":"7953:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6720,"initialValue":{"hexValue":"30","id":6719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7965:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7953:13:22"},"loopExpression":{"expression":{"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7999:3:22","subExpression":{"id":6726,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7999:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6728,"nodeType":"ExpressionStatement","src":"7999:3:22"},"nodeType":"ForStatement","src":"7948:152:22"},{"expression":{"hexValue":"66616c7365","id":6743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8112:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6706,"id":6744,"nodeType":"Return","src":"8105:12:22"}]},"functionSelector":"2edb5fcf","id":6746,"implemented":true,"kind":"function","modifiers":[],"name":"hasOffer","nameLocation":"7821:8:22","nodeType":"FunctionDefinition","parameters":{"id":6703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6700,"mutability":"mutable","name":"user","nameLocation":"7838:4:22","nodeType":"VariableDeclaration","scope":6746,"src":"7830:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6699,"name":"address","nodeType":"ElementaryTypeName","src":"7830:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6702,"mutability":"mutable","name":"cardNumber","nameLocation":"7850:10:22","nodeType":"VariableDeclaration","scope":6746,"src":"7844:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6701,"name":"uint8","nodeType":"ElementaryTypeName","src":"7844:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"7829:32:22"},"returnParameters":{"id":6706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6746,"src":"7883:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6704,"name":"bool","nodeType":"ElementaryTypeName","src":"7883:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7882:6:22"},"scope":7472,"src":"7812:310:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6874,"nodeType":"Block","src":"8267:1236:22","statements":[{"assignments":[6759],"declarations":[{"constant":false,"id":6759,"mutability":"mutable","name":"offer","nameLocation":"8286:5:22","nodeType":"VariableDeclaration","scope":6874,"src":"8273:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6758,"nodeType":"UserDefinedTypeName","pathNode":{"id":6757,"name":"Offer","nameLocations":["8273:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"8273:5:22"},"referencedDeclaration":5997,"src":"8273:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6764,"initialValue":{"arguments":[{"id":6761,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"8322:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6762,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"8335:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6760,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"8294:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8294:57:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"8273:78:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6765,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"8361:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8367:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"8361:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6767,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"8376:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8361:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6772,"nodeType":"IfStatement","src":"8357:59:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6769,"name":"OfferDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"8396:18:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8396:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6771,"nodeType":"RevertStatement","src":"8389:27:22"}},{"assignments":[6777],"declarations":[{"constant":false,"id":6777,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"8438:17:22","nodeType":"VariableDeclaration","scope":6874,"src":"8423:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6775,"name":"uint8","nodeType":"ElementaryTypeName","src":"8423:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6776,"nodeType":"ArrayTypeName","src":"8423:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":6780,"initialValue":{"expression":{"id":6778,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"8458:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8464:17:22","memberName":"wantedCardNumbers","nodeType":"MemberAccess","referencedDeclaration":5992,"src":"8458:23:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8423:58:22"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6781,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"8491:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8509:6:22","memberName":"length","nodeType":"MemberAccess","src":"8491:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8519:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8491:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6830,"nodeType":"Block","src":"8698:337:22","statements":[{"assignments":[6796],"declarations":[{"constant":false,"id":6796,"mutability":"mutable","name":"foundCardWanted","nameLocation":"8769:15:22","nodeType":"VariableDeclaration","scope":6830,"src":"8764:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6795,"name":"bool","nodeType":"ElementaryTypeName","src":"8764:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6798,"initialValue":{"hexValue":"66616c7365","id":6797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8787:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"8764:28:22"},{"body":{"id":6822,"nodeType":"Block","src":"8853:126:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6810,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"8867:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6812,"indexExpression":{"id":6811,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8885:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8867:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6813,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"8891:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8867:40:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6821,"nodeType":"IfStatement","src":"8863:108:22","trueBody":{"id":6820,"nodeType":"Block","src":"8909:62:22","statements":[{"expression":{"id":6817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6815,"name":"foundCardWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6796,"src":"8921:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8939:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8921:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6818,"nodeType":"ExpressionStatement","src":"8921:22:22"},{"id":6819,"nodeType":"Break","src":"8955:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6803,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8818:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6804,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"8822:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8840:6:22","memberName":"length","nodeType":"MemberAccess","src":"8822:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8818:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6823,"initializationExpression":{"assignments":[6800],"declarations":[{"constant":false,"id":6800,"mutability":"mutable","name":"j","nameLocation":"8811:1:22","nodeType":"VariableDeclaration","scope":6823,"src":"8805:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6799,"name":"uint8","nodeType":"ElementaryTypeName","src":"8805:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6802,"initialValue":{"hexValue":"30","id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8815:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8805:11:22"},"loopExpression":{"expression":{"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8848:3:22","subExpression":{"id":6807,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8848:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6809,"nodeType":"ExpressionStatement","src":"8848:3:22"},"nodeType":"ForStatement","src":"8800:179:22"},{"condition":{"id":6825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8990:16:22","subExpression":{"id":6824,"name":"foundCardWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6796,"src":"8991:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6829,"nodeType":"IfStatement","src":"8986:42:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6826,"name":"InvalidCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"9015:11:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9015:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6828,"nodeType":"RevertStatement","src":"9008:20:22"}}]},"id":6831,"nodeType":"IfStatement","src":"8487:548:22","trueBody":{"id":6794,"nodeType":"Block","src":"8522:170:22","statements":[{"condition":{"arguments":[{"id":6787,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"8618:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6788,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"8631:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6785,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"8584:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8603:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"8584:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8584:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6793,"nodeType":"IfStatement","src":"8580:105:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6790,"name":"UserAlreadyHasCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5907,"src":"8665:18:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8665:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6792,"nodeType":"RevertStatement","src":"8658:27:22"}}]}},{"assignments":[6833],"declarations":[{"constant":false,"id":6833,"mutability":"mutable","name":"offerDeleted","nameLocation":"9046:12:22","nodeType":"VariableDeclaration","scope":6874,"src":"9041:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6832,"name":"bool","nodeType":"ElementaryTypeName","src":"9041:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6841,"initialValue":{"arguments":[{"id":6835,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"9100:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6836,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"9119:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":6837,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"9142:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9148:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"9142:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":6839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9163:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6834,"name":"_removeOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"9061:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (address,uint8,string memory,bool) returns (bool)"}},"id":6840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9061:112:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9041:132:22"},{"condition":{"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9183:13:22","subExpression":{"id":6842,"name":"offerDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6833,"src":"9184:12:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6847,"nodeType":"IfStatement","src":"9179:43:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6844,"name":"OfferNotDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5911,"src":"9205:15:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:17:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6846,"nodeType":"RevertStatement","src":"9198:24:22"}},{"expression":{"arguments":[{"id":6851,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6748,"src":"9267:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6852,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"9273:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6853,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"9291:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6854,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"9304:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6848,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"9229:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9248:18:22","memberName":"exchangeCardsOffer","nodeType":"MemberAccess","referencedDeclaration":5951,"src":"9229:37:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8,address,uint8) external"}},"id":6855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9229:91:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6856,"nodeType":"ExpressionStatement","src":"9229:91:22"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9337:57:22","subExpression":{"arguments":[{"id":6859,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6748,"src":"9372:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6860,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"9378:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6857,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"9338:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9357:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"9338:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9338:56:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9404:65:22","subExpression":{"arguments":[{"id":6865,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"9439:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6866,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"9452:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6863,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"9405:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9424:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"9405:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9405:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9337:132:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6873,"nodeType":"IfStatement","src":"9326:172:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6870,"name":"ExchangeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"9483:13:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9483:15:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6872,"nodeType":"RevertStatement","src":"9476:22:22"}}]},"functionSelector":"c08029e7","id":6875,"implemented":true,"kind":"function","modifiers":[],"name":"confirmOfferExchange","nameLocation":"8135:20:22","nodeType":"FunctionDefinition","parameters":{"id":6755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6748,"mutability":"mutable","name":"from","nameLocation":"8169:4:22","nodeType":"VariableDeclaration","scope":6875,"src":"8161:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6747,"name":"address","nodeType":"ElementaryTypeName","src":"8161:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6750,"mutability":"mutable","name":"cardNumberWanted","nameLocation":"8185:16:22","nodeType":"VariableDeclaration","scope":6875,"src":"8179:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6749,"name":"uint8","nodeType":"ElementaryTypeName","src":"8179:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6752,"mutability":"mutable","name":"offerWallet","nameLocation":"8215:11:22","nodeType":"VariableDeclaration","scope":6875,"src":"8207:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6751,"name":"address","nodeType":"ElementaryTypeName","src":"8207:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6754,"mutability":"mutable","name":"offerCardNumber","nameLocation":"8238:15:22","nodeType":"VariableDeclaration","scope":6875,"src":"8232:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6753,"name":"uint8","nodeType":"ElementaryTypeName","src":"8232:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8155:102:22"},"returnParameters":{"id":6756,"nodeType":"ParameterList","parameters":[],"src":"8267:0:22"},"scope":7472,"src":"8126:1377:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6937,"nodeType":"Block","src":"9554:345:22","statements":[{"body":{"id":6925,"nodeType":"Block","src":"9604:214:22","statements":[{"expression":{"id":6897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9612:36:22","subExpression":{"baseExpression":{"id":6891,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"9619:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6896,"indexExpression":{"expression":{"baseExpression":{"id":6892,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9632:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6894,"indexExpression":{"id":6893,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9639:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9632:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9642:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"9632:15:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9619:29:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6898,"nodeType":"ExpressionStatement","src":"9612:36:22"},{"expression":{"id":6906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6899,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"9656:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6904,"indexExpression":{"expression":{"baseExpression":{"id":6900,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9676:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6902,"indexExpression":{"id":6901,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9683:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9676:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9686:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"9676:15:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9656:36:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":6905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9695:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9656:40:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6907,"nodeType":"ExpressionStatement","src":"9656:40:22"},{"expression":{"id":6914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9705:47:22","subExpression":{"baseExpression":{"id":6908,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"9712:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6913,"indexExpression":{"expression":{"baseExpression":{"id":6909,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9731:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6911,"indexExpression":{"id":6910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9738:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9731:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9741:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"9731:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9712:40:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6915,"nodeType":"ExpressionStatement","src":"9705:47:22"},{"expression":{"id":6923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6916,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"9760:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":6921,"indexExpression":{"expression":{"baseExpression":{"id":6917,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9786:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6919,"indexExpression":{"id":6918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9793:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9786:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9796:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"9786:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9760:47:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":6922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9810:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9760:51:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6924,"nodeType":"ExpressionStatement","src":"9760:51:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9580:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6885,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9584:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9591:6:22","memberName":"length","nodeType":"MemberAccess","src":"9584:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6926,"initializationExpression":{"assignments":[6881],"declarations":[{"constant":false,"id":6881,"mutability":"mutable","name":"i","nameLocation":"9573:1:22","nodeType":"VariableDeclaration","scope":6926,"src":"9565:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6880,"name":"uint256","nodeType":"ElementaryTypeName","src":"9565:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6883,"initialValue":{"hexValue":"30","id":6882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9577:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9565:13:22"},"loopExpression":{"expression":{"id":6889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9599:3:22","subExpression":{"id":6888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9599:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6890,"nodeType":"ExpressionStatement","src":"9599:3:22"},"nodeType":"ForStatement","src":"9560:258:22"},{"expression":{"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6927,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"9823:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9844:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9823:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6930,"nodeType":"ExpressionStatement","src":"9823:22:22"},{"expression":{"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9851:13:22","subExpression":{"id":6931,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9858:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6933,"nodeType":"ExpressionStatement","src":"9851:13:22"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6934,"name":"AllOffersRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"9876:16:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9876:18:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6936,"nodeType":"EmitStatement","src":"9871:23:22"}]},"functionSelector":"322fba27","id":6938,"implemented":true,"kind":"function","modifiers":[{"id":6878,"kind":"modifierInvocation","modifierName":{"id":6877,"name":"onlyOwners","nameLocations":["9543:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"9543:10:22"},"nodeType":"ModifierInvocation","src":"9543:10:22"}],"name":"deleteAllOffers","nameLocation":"9516:15:22","nodeType":"FunctionDefinition","parameters":{"id":6876,"nodeType":"ParameterList","parameters":[],"src":"9531:2:22"},"returnParameters":{"id":6879,"nodeType":"ParameterList","parameters":[],"src":"9554:0:22"},"scope":7472,"src":"9507:392:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6976,"nodeType":"Block","src":"9978:262:22","statements":[{"assignments":[6947],"declarations":[{"constant":false,"id":6947,"mutability":"mutable","name":"offer","nameLocation":"9997:5:22","nodeType":"VariableDeclaration","scope":6976,"src":"9984:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6946,"nodeType":"UserDefinedTypeName","pathNode":{"id":6945,"name":"Offer","nameLocations":["9984:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"9984:5:22"},"referencedDeclaration":5997,"src":"9984:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6953,"initialValue":{"arguments":[{"expression":{"id":6949,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10033:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10037:6:22","memberName":"sender","nodeType":"MemberAccess","src":"10033:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6951,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"10045:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6948,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"10005:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10005:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"9984:72:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6954,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"10066:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10072:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"10066:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6956,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10081:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10085:6:22","memberName":"sender","nodeType":"MemberAccess","src":"10081:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10066:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6962,"nodeType":"IfStatement","src":"10062:58:22","trueBody":{"id":6961,"nodeType":"Block","src":"10093:27:22","statements":[{"expression":{"hexValue":"66616c7365","id":6959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10108:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6944,"id":6960,"nodeType":"Return","src":"10101:12:22"}]}},{"assignments":[6964],"declarations":[{"constant":false,"id":6964,"mutability":"mutable","name":"result","nameLocation":"10130:6:22","nodeType":"VariableDeclaration","scope":6976,"src":"10125:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6963,"name":"bool","nodeType":"ElementaryTypeName","src":"10125:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6973,"initialValue":{"arguments":[{"expression":{"id":6966,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10171:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10175:6:22","memberName":"sender","nodeType":"MemberAccess","src":"10171:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6968,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"10183:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":6969,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"10195:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10201:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"10195:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":6971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10210:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6965,"name":"_removeOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"10139:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (address,uint8,string memory,bool) returns (bool)"}},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10139:77:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10125:91:22"},{"expression":{"id":6974,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"10229:6:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6944,"id":6975,"nodeType":"Return","src":"10222:13:22"}]},"functionSelector":"3a027073","id":6977,"implemented":true,"kind":"function","modifiers":[],"name":"removeOfferByCardNumber","nameLocation":"9912:23:22","nodeType":"FunctionDefinition","parameters":{"id":6941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6940,"mutability":"mutable","name":"cardNumber","nameLocation":"9942:10:22","nodeType":"VariableDeclaration","scope":6977,"src":"9936:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6939,"name":"uint8","nodeType":"ElementaryTypeName","src":"9936:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9935:18:22"},"returnParameters":{"id":6944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6977,"src":"9972:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6942,"name":"bool","nodeType":"ElementaryTypeName","src":"9972:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9971:6:22"},"scope":7472,"src":"9903:337:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7016,"nodeType":"Block","src":"10361:244:22","statements":[{"assignments":[6990],"declarations":[{"constant":false,"id":6990,"mutability":"mutable","name":"offer","nameLocation":"10380:5:22","nodeType":"VariableDeclaration","scope":7016,"src":"10367:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6989,"nodeType":"UserDefinedTypeName","pathNode":{"id":6988,"name":"Offer","nameLocations":["10367:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"10367:5:22"},"referencedDeclaration":5997,"src":"10367:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6995,"initialValue":{"arguments":[{"id":6992,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"10416:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6993,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10422:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6991,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"10388:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10388:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"10367:66:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6996,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"10443:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10449:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"10443:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6998,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"10458:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10443:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7003,"nodeType":"IfStatement","src":"10439:52:22","trueBody":{"id":7002,"nodeType":"Block","src":"10464:27:22","statements":[{"expression":{"hexValue":"66616c7365","id":7000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10479:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6987,"id":7001,"nodeType":"Return","src":"10472:12:22"}]}},{"assignments":[7005],"declarations":[{"constant":false,"id":7005,"mutability":"mutable","name":"result","nameLocation":"10501:6:22","nodeType":"VariableDeclaration","scope":7016,"src":"10496:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7004,"name":"bool","nodeType":"ElementaryTypeName","src":"10496:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7013,"initialValue":{"arguments":[{"id":7007,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"10542:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7008,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10548:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":7009,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"10560:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":7010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10566:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"10560:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":7011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10575:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7006,"name":"_removeOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"10510:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (address,uint8,string memory,bool) returns (bool)"}},"id":7012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10510:71:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10496:85:22"},{"expression":{"id":7014,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7005,"src":"10594:6:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6987,"id":7015,"nodeType":"Return","src":"10587:13:22"}]},"functionSelector":"5bbfbfd6","id":7017,"implemented":true,"kind":"function","modifiers":[{"id":6984,"kind":"modifierInvocation","modifierName":{"id":6983,"name":"onlyOwners","nameLocations":["10335:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"10335:10:22"},"nodeType":"ModifierInvocation","src":"10335:10:22"}],"name":"removeOfferByUserAndCardNumber","nameLocation":"10253:30:22","nodeType":"FunctionDefinition","parameters":{"id":6982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6979,"mutability":"mutable","name":"user","nameLocation":"10297:4:22","nodeType":"VariableDeclaration","scope":7017,"src":"10289:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6978,"name":"address","nodeType":"ElementaryTypeName","src":"10289:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6981,"mutability":"mutable","name":"cardNumber","nameLocation":"10313:10:22","nodeType":"VariableDeclaration","scope":7017,"src":"10307:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6980,"name":"uint8","nodeType":"ElementaryTypeName","src":"10307:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"10283:44:22"},"returnParameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7017,"src":"10355:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6985,"name":"bool","nodeType":"ElementaryTypeName","src":"10355:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10354:6:22"},"scope":7472,"src":"10244:361:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7114,"nodeType":"Block","src":"10693:656:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7026,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"10703:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10719:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10711:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7027,"name":"address","nodeType":"ElementaryTypeName","src":"10711:7:22","typeDescriptions":{}}},"id":7030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10711:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10703:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7035,"nodeType":"IfStatement","src":"10699:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7032,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"10730:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10730:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7034,"nodeType":"RevertStatement","src":"10723:23:22"}},{"assignments":[7040],"declarations":[{"constant":false,"id":7040,"mutability":"mutable","name":"userOffers","nameLocation":"10769:10:22","nodeType":"VariableDeclaration","scope":7114,"src":"10753:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":7038,"nodeType":"UserDefinedTypeName","pathNode":{"id":7037,"name":"Offer","nameLocations":["10753:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"10753:5:22"},"referencedDeclaration":5997,"src":"10753:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":7039,"nodeType":"ArrayTypeName","src":"10753:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":7044,"initialValue":{"baseExpression":{"id":7041,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"10782:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7043,"indexExpression":{"id":7042,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"10795:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10782:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10753:47:22"},{"assignments":[7046],"declarations":[{"constant":false,"id":7046,"mutability":"mutable","name":"currentUserOffersCounter","nameLocation":"10814:24:22","nodeType":"VariableDeclaration","scope":7114,"src":"10806:32:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"10806:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7050,"initialValue":{"baseExpression":{"id":7047,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"10841:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7049,"indexExpression":{"id":7048,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"10861:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10841:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10806:60:22"},{"body":{"id":7095,"nodeType":"Block","src":"10928:298:22","statements":[{"assignments":[7062],"declarations":[{"constant":false,"id":7062,"mutability":"mutable","name":"offerId","nameLocation":"10950:7:22","nodeType":"VariableDeclaration","scope":7095,"src":"10936:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7061,"name":"string","nodeType":"ElementaryTypeName","src":"10936:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7067,"initialValue":{"expression":{"baseExpression":{"id":7063,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"10960:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7065,"indexExpression":{"id":7064,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"10971:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10960:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10974:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"10960:21:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10936:45:22"},{"assignments":[7069],"declarations":[{"constant":false,"id":7069,"mutability":"mutable","name":"cardNumber","nameLocation":"10995:10:22","nodeType":"VariableDeclaration","scope":7095,"src":"10989:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7068,"name":"uint8","nodeType":"ElementaryTypeName","src":"10989:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":7074,"initialValue":{"expression":{"baseExpression":{"id":7070,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"11008:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7072,"indexExpression":{"id":7071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"11019:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11008:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11022:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"11008:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"10989:43:22"},{"expression":{"arguments":[{"id":7076,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11074:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7077,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"11080:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7078,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"11092:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7075,"name":"_removeOfferFromCardNumberMapping","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7358,"src":"11040:33:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint8,string memory)"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11040:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7080,"nodeType":"ExpressionStatement","src":"11040:60:22"},{"expression":{"arguments":[{"id":7082,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"11130:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7081,"name":"_removeOfferByOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"11108:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) returns (bool)"}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11108:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7084,"nodeType":"ExpressionStatement","src":"11108:30:22"},{"expression":{"id":7089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7085,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"11146:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":7087,"indexExpression":{"id":7086,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"11172:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11146:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11187:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11146:42:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7090,"nodeType":"ExpressionStatement","src":"11146:42:22"},{"expression":{"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7091,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"11196:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11218:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11196:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7094,"nodeType":"ExpressionStatement","src":"11196:23:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"10893:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7056,"name":"currentUserOffersCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"10897:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10893:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7096,"initializationExpression":{"assignments":[7052],"declarations":[{"constant":false,"id":7052,"mutability":"mutable","name":"i","nameLocation":"10886:1:22","nodeType":"VariableDeclaration","scope":7096,"src":"10878:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7051,"name":"uint256","nodeType":"ElementaryTypeName","src":"10878:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7054,"initialValue":{"hexValue":"30","id":7053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10890:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10878:13:22"},"loopExpression":{"expression":{"id":7059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10923:3:22","subExpression":{"id":7058,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"10923:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7060,"nodeType":"ExpressionStatement","src":"10923:3:22"},"nodeType":"ForStatement","src":"10873:353:22"},{"expression":{"id":7100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11232:25:22","subExpression":{"baseExpression":{"id":7097,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"11239:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7099,"indexExpression":{"id":7098,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11252:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11239:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7101,"nodeType":"ExpressionStatement","src":"11232:25:22"},{"expression":{"id":7106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7102,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"11263:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7104,"indexExpression":{"id":7103,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11283:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11263:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":7105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11291:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11263:29:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7107,"nodeType":"ExpressionStatement","src":"11263:29:22"},{"eventCall":{"arguments":[{"id":7109,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11322:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7108,"name":"UserOffersRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"11304:17:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11304:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7111,"nodeType":"EmitStatement","src":"11299:28:22"},{"expression":{"hexValue":"74727565","id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11340:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7025,"id":7113,"nodeType":"Return","src":"11333:11:22"}]},"functionSelector":"fc9e80fc","id":7115,"implemented":true,"kind":"function","modifiers":[{"id":7022,"kind":"modifierInvocation","modifierName":{"id":7021,"name":"onlyCardsContract","nameLocations":["10660:17:22"],"nodeType":"IdentifierPath","referencedDeclaration":6063,"src":"10660:17:22"},"nodeType":"ModifierInvocation","src":"10660:17:22"}],"name":"removeOffersByUser","nameLocation":"10618:18:22","nodeType":"FunctionDefinition","parameters":{"id":7020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"user","nameLocation":"10645:4:22","nodeType":"VariableDeclaration","scope":7115,"src":"10637:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7018,"name":"address","nodeType":"ElementaryTypeName","src":"10637:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10636:14:22"},"returnParameters":{"id":7025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7115,"src":"10687:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7023,"name":"bool","nodeType":"ElementaryTypeName","src":"10687:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10686:6:22"},"scope":7472,"src":"10609:740:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7190,"nodeType":"Block","src":"11523:534:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7128,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11533:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11549:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11541:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7129,"name":"address","nodeType":"ElementaryTypeName","src":"11541:7:22","typeDescriptions":{}}},"id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11541:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11533:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7137,"nodeType":"IfStatement","src":"11529:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7134,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"11560:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11560:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7136,"nodeType":"RevertStatement","src":"11553:23:22"}},{"expression":{"arguments":[{"id":7139,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11611:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7140,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11617:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7141,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"11629:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7138,"name":"_removeOfferFromUserMapping","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7275,"src":"11583:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint8,string memory)"}},"id":7142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11583:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7143,"nodeType":"ExpressionStatement","src":"11583:54:22"},{"expression":{"arguments":[{"id":7145,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11677:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7146,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11683:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7147,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"11695:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7144,"name":"_removeOfferFromCardNumberMapping","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7358,"src":"11643:33:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint8,string memory)"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11643:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7149,"nodeType":"ExpressionStatement","src":"11643:60:22"},{"expression":{"arguments":[{"id":7151,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"11731:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7150,"name":"_removeOfferByOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"11709:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) returns (bool)"}},"id":7152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11709:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7153,"nodeType":"ExpressionStatement","src":"11709:30:22"},{"expression":{"id":7158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7154,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"11745:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7156,"indexExpression":{"id":7155,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11765:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11745:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11774:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11745:30:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7159,"nodeType":"ExpressionStatement","src":"11745:30:22"},{"expression":{"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7160,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"11781:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":7162,"indexExpression":{"id":7161,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11807:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11781:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11822:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11781:42:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7165,"nodeType":"ExpressionStatement","src":"11781:42:22"},{"expression":{"id":7168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7166,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"11829:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11851:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11829:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7169,"nodeType":"ExpressionStatement","src":"11829:23:22"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7170,"name":"removeCardInInventoryWhenOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"11863:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":7172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11897:25:22","subExpression":{"id":7171,"name":"fromConfirmOfferExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7123,"src":"11898:24:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11863:59:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7182,"nodeType":"IfStatement","src":"11859:135:22","trueBody":{"id":7181,"nodeType":"Block","src":"11924:70:22","statements":[{"expression":{"arguments":[{"id":7177,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11970:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7178,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11976:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":7174,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"11932:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":7176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11951:18:22","memberName":"restoreCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5940,"src":"11932:37:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8) external"}},"id":7179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11932:55:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7180,"nodeType":"ExpressionStatement","src":"11932:55:22"}]}},{"eventCall":{"arguments":[{"id":7184,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"12018:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7185,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"12024:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7183,"name":"OfferRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"12005:12:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":7186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12005:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7187,"nodeType":"EmitStatement","src":"12000:35:22"},{"expression":{"hexValue":"74727565","id":7188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12048:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7127,"id":7189,"nodeType":"Return","src":"12041:11:22"}]},"id":7191,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferByUserAndCardNumber","nameLocation":"11362:31:22","nodeType":"FunctionDefinition","parameters":{"id":7124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7117,"mutability":"mutable","name":"user","nameLocation":"11407:4:22","nodeType":"VariableDeclaration","scope":7191,"src":"11399:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7116,"name":"address","nodeType":"ElementaryTypeName","src":"11399:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7119,"mutability":"mutable","name":"cardNumber","nameLocation":"11423:10:22","nodeType":"VariableDeclaration","scope":7191,"src":"11417:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7118,"name":"uint8","nodeType":"ElementaryTypeName","src":"11417:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7121,"mutability":"mutable","name":"offerId","nameLocation":"11453:7:22","nodeType":"VariableDeclaration","scope":7191,"src":"11439:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7120,"name":"string","nodeType":"ElementaryTypeName","src":"11439:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7123,"mutability":"mutable","name":"fromConfirmOfferExchange","nameLocation":"11471:24:22","nodeType":"VariableDeclaration","scope":7191,"src":"11466:29:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7122,"name":"bool","nodeType":"ElementaryTypeName","src":"11466:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11393:106:22"},"returnParameters":{"id":7127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7191,"src":"11517:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7125,"name":"bool","nodeType":"ElementaryTypeName","src":"11517:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11516:6:22"},"scope":7472,"src":"11353:704:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7274,"nodeType":"Block","src":"12177:480:22","statements":[{"assignments":[7204],"declarations":[{"constant":false,"id":7204,"mutability":"mutable","name":"userOffers","nameLocation":"12199:10:22","nodeType":"VariableDeclaration","scope":7274,"src":"12183:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":7202,"nodeType":"UserDefinedTypeName","pathNode":{"id":7201,"name":"Offer","nameLocations":["12183:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"12183:5:22"},"referencedDeclaration":5997,"src":"12183:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":7203,"nodeType":"ArrayTypeName","src":"12183:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":7208,"initialValue":{"baseExpression":{"id":7205,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"12212:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7207,"indexExpression":{"id":7206,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"12225:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12212:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12183:47:22"},{"body":{"id":7272,"nodeType":"Block","src":"12284:369:22","statements":[{"condition":{"arguments":[{"expression":{"baseExpression":{"id":7221,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12309:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7223,"indexExpression":{"id":7222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12320:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12309:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12323:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"12309:21:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":7225,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7197,"src":"12332:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7220,"name":"_sameOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"12296:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure returns (bool)"}},"id":7226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12296:44:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7271,"nodeType":"IfStatement","src":"12292:355:22","trueBody":{"id":7270,"nodeType":"Block","src":"12342:305:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7227,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12356:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7229,"indexExpression":{"id":7228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12367:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12356:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12370:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"12356:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7231,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"12379:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12356:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7233,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12387:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7235,"indexExpression":{"id":7234,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12398:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12387:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12401:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"12387:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7237,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"12415:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12387:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12356:69:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7243,"nodeType":"IfStatement","src":"12352:131:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7240,"name":"RemoveOfferFromUserMapping_DoNotMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5913,"src":"12444:37:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12444:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7242,"nodeType":"RevertStatement","src":"12437:46:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12497:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7245,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12502:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12513:6:22","memberName":"length","nodeType":"MemberAccess","src":"12502:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12522:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12502:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12501:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12497:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7263,"nodeType":"IfStatement","src":"12493:105:22","trueBody":{"id":7262,"nodeType":"Block","src":"12526:72:22","statements":[{"expression":{"id":7260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7251,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12538:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7253,"indexExpression":{"id":7252,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12549:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12538:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7254,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12554:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7259,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7255,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12565:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12576:6:22","memberName":"length","nodeType":"MemberAccess","src":"12565:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12585:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12565:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12554:33:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"src":"12538:49:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7261,"nodeType":"ExpressionStatement","src":"12538:49:22"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7264,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12607:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12618:3:22","memberName":"pop","nodeType":"MemberAccess","src":"12607:14:22","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12607:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7268,"nodeType":"ExpressionStatement","src":"12607:16:22"},{"id":7269,"nodeType":"Break","src":"12633:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7213,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12256:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7214,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12260:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12271:6:22","memberName":"length","nodeType":"MemberAccess","src":"12260:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12256:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7273,"initializationExpression":{"assignments":[7210],"declarations":[{"constant":false,"id":7210,"mutability":"mutable","name":"i","nameLocation":"12249:1:22","nodeType":"VariableDeclaration","scope":7273,"src":"12241:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7209,"name":"uint256","nodeType":"ElementaryTypeName","src":"12241:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7212,"initialValue":{"hexValue":"30","id":7211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12253:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12241:13:22"},"loopExpression":{"expression":{"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12279:3:22","subExpression":{"id":7217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12279:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7219,"nodeType":"ExpressionStatement","src":"12279:3:22"},"nodeType":"ForStatement","src":"12236:417:22"}]},"id":7275,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferFromUserMapping","nameLocation":"12070:27:22","nodeType":"FunctionDefinition","parameters":{"id":7198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7193,"mutability":"mutable","name":"user","nameLocation":"12111:4:22","nodeType":"VariableDeclaration","scope":7275,"src":"12103:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7192,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7195,"mutability":"mutable","name":"cardNumber","nameLocation":"12127:10:22","nodeType":"VariableDeclaration","scope":7275,"src":"12121:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7194,"name":"uint8","nodeType":"ElementaryTypeName","src":"12121:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7197,"mutability":"mutable","name":"offerId","nameLocation":"12157:7:22","nodeType":"VariableDeclaration","scope":7275,"src":"12143:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7196,"name":"string","nodeType":"ElementaryTypeName","src":"12143:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12097:71:22"},"returnParameters":{"id":7199,"nodeType":"ParameterList","parameters":[],"src":"12177:0:22"},"scope":7472,"src":"12061:596:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7357,"nodeType":"Block","src":"12783:498:22","statements":[{"assignments":[7288],"declarations":[{"constant":false,"id":7288,"mutability":"mutable","name":"cardOffers","nameLocation":"12805:10:22","nodeType":"VariableDeclaration","scope":7357,"src":"12789:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":7286,"nodeType":"UserDefinedTypeName","pathNode":{"id":7285,"name":"Offer","nameLocations":["12789:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"12789:5:22"},"referencedDeclaration":5997,"src":"12789:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":7287,"nodeType":"ArrayTypeName","src":"12789:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":7292,"initialValue":{"baseExpression":{"id":7289,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"12818:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7291,"indexExpression":{"id":7290,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"12837:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12818:30:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12789:59:22"},{"body":{"id":7355,"nodeType":"Block","src":"12903:374:22","statements":[{"condition":{"arguments":[{"expression":{"baseExpression":{"id":7305,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12928:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7307,"indexExpression":{"id":7306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12939:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12928:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12942:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"12928:21:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":7309,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"12951:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7304,"name":"_sameOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"12915:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure returns (bool)"}},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12915:44:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7354,"nodeType":"IfStatement","src":"12911:360:22","trueBody":{"id":7353,"nodeType":"Block","src":"12961:310:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7311,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12975:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7313,"indexExpression":{"id":7312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12986:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12975:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12989:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"12975:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7315,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7277,"src":"12998:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12975:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7317,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13006:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7319,"indexExpression":{"id":7318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"13017:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13006:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13020:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"13006:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7321,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"13034:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13006:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12975:69:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7327,"nodeType":"IfStatement","src":"12971:137:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7324,"name":"RemoveOfferFromCardNumberMapping_DoNotMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5915,"src":"13063:43:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13063:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7326,"nodeType":"RevertStatement","src":"13056:52:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"13123:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7329,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13127:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13138:6:22","memberName":"length","nodeType":"MemberAccess","src":"13127:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13147:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13127:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13123:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7346,"nodeType":"IfStatement","src":"13119:103:22","trueBody":{"id":7345,"nodeType":"Block","src":"13150:72:22","statements":[{"expression":{"id":7343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7334,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13162:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7336,"indexExpression":{"id":7335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"13173:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13162:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7337,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13178:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7342,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7338,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13189:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13200:6:22","memberName":"length","nodeType":"MemberAccess","src":"13189:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13209:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13189:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13178:33:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"src":"13162:49:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7344,"nodeType":"ExpressionStatement","src":"13162:49:22"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7347,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13231:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13242:3:22","memberName":"pop","nodeType":"MemberAccess","src":"13231:14:22","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer)"}},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13231:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7351,"nodeType":"ExpressionStatement","src":"13231:16:22"},{"id":7352,"nodeType":"Break","src":"13257:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12875:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7298,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12879:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12890:6:22","memberName":"length","nodeType":"MemberAccess","src":"12879:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12875:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7356,"initializationExpression":{"assignments":[7294],"declarations":[{"constant":false,"id":7294,"mutability":"mutable","name":"i","nameLocation":"12868:1:22","nodeType":"VariableDeclaration","scope":7356,"src":"12860:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7293,"name":"uint256","nodeType":"ElementaryTypeName","src":"12860:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7296,"initialValue":{"hexValue":"30","id":7295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12872:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12860:13:22"},"loopExpression":{"expression":{"id":7302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12898:3:22","subExpression":{"id":7301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12898:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7303,"nodeType":"ExpressionStatement","src":"12898:3:22"},"nodeType":"ForStatement","src":"12855:422:22"}]},"id":7358,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferFromCardNumberMapping","nameLocation":"12670:33:22","nodeType":"FunctionDefinition","parameters":{"id":7282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7277,"mutability":"mutable","name":"user","nameLocation":"12717:4:22","nodeType":"VariableDeclaration","scope":7358,"src":"12709:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7276,"name":"address","nodeType":"ElementaryTypeName","src":"12709:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7279,"mutability":"mutable","name":"cardNumber","nameLocation":"12733:10:22","nodeType":"VariableDeclaration","scope":7358,"src":"12727:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7278,"name":"uint8","nodeType":"ElementaryTypeName","src":"12727:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7281,"mutability":"mutable","name":"offerId","nameLocation":"12763:7:22","nodeType":"VariableDeclaration","scope":7358,"src":"12749:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7280,"name":"string","nodeType":"ElementaryTypeName","src":"12749:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12703:71:22"},"returnParameters":{"id":7283,"nodeType":"ParameterList","parameters":[],"src":"12783:0:22"},"scope":7472,"src":"12661:620:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7424,"nodeType":"Block","src":"13362:324:22","statements":[{"assignments":[7366],"declarations":[{"constant":false,"id":7366,"mutability":"mutable","name":"deleted","nameLocation":"13373:7:22","nodeType":"VariableDeclaration","scope":7424,"src":"13368:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7365,"name":"bool","nodeType":"ElementaryTypeName","src":"13368:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7368,"initialValue":{"hexValue":"66616c7365","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13383:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"13368:20:22"},{"body":{"id":7420,"nodeType":"Block","src":"13438:224:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7380,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13450:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7381,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13454:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13461:6:22","memberName":"length","nodeType":"MemberAccess","src":"13454:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13450:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"expression":{"baseExpression":{"id":7385,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13484:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7387,"indexExpression":{"id":7386,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13491:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13484:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13494:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"13484:17:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":7389,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7360,"src":"13503:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7384,"name":"_sameOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"13471:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure returns (bool)"}},"id":7390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13471:40:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13450:61:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7419,"nodeType":"IfStatement","src":"13446:210:22","trueBody":{"id":7418,"nodeType":"Block","src":"13513:143:22","statements":[{"expression":{"id":7395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13523:16:22","subExpression":{"baseExpression":{"id":7392,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13530:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7394,"indexExpression":{"id":7393,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13537:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13530:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7396,"nodeType":"ExpressionStatement","src":"13523:16:22"},{"expression":{"id":7406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7397,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13549:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7399,"indexExpression":{"id":7398,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13556:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13549:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7400,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13561:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7405,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7401,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13568:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13575:6:22","memberName":"length","nodeType":"MemberAccess","src":"13568:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13584:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13568:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13561:25:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"src":"13549:37:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7407,"nodeType":"ExpressionStatement","src":"13549:37:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7408,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13596:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13603:3:22","memberName":"pop","nodeType":"MemberAccess","src":"13596:10:22","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer)"}},"id":7411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13596:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7412,"nodeType":"ExpressionStatement","src":"13596:12:22"},{"expression":{"id":7415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7413,"name":"deleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7366,"src":"13618:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13628:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13618:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7416,"nodeType":"ExpressionStatement","src":"13618:14:22"},{"id":7417,"nodeType":"Break","src":"13642:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7373,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13414:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7374,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13418:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13425:6:22","memberName":"length","nodeType":"MemberAccess","src":"13418:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13414:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7421,"initializationExpression":{"assignments":[7370],"declarations":[{"constant":false,"id":7370,"mutability":"mutable","name":"j","nameLocation":"13407:1:22","nodeType":"VariableDeclaration","scope":7421,"src":"13399:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7369,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7372,"initialValue":{"hexValue":"30","id":7371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13411:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13399:13:22"},"loopExpression":{"expression":{"id":7378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13433:3:22","subExpression":{"id":7377,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13433:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7379,"nodeType":"ExpressionStatement","src":"13433:3:22"},"nodeType":"ForStatement","src":"13394:268:22"},{"expression":{"id":7422,"name":"deleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7366,"src":"13674:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7364,"id":7423,"nodeType":"Return","src":"13667:14:22"}]},"id":7425,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferByOfferId","nameLocation":"13294:21:22","nodeType":"FunctionDefinition","parameters":{"id":7361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7360,"mutability":"mutable","name":"offerId","nameLocation":"13330:7:22","nodeType":"VariableDeclaration","scope":7425,"src":"13316:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7359,"name":"string","nodeType":"ElementaryTypeName","src":"13316:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13315:23:22"},"returnParameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7425,"src":"13356:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7362,"name":"bool","nodeType":"ElementaryTypeName","src":"13356:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13355:6:22"},"scope":7472,"src":"13285:401:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7446,"nodeType":"Block","src":"13750:61:22","statements":[{"expression":{"arguments":[{"hexValue":"","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13769:2:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":7433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13773:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":7437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13788:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13776:11:22","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":7434,"name":"uint8","nodeType":"ElementaryTypeName","src":"13780:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7435,"nodeType":"ArrayTypeName","src":"13780:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":7438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13776:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"arguments":[{"hexValue":"30","id":7441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13800:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13792:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7439,"name":"address","nodeType":"ElementaryTypeName","src":"13792:7:22","typeDescriptions":{}}},"id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13792:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":7443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13804:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7431,"name":"Offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"13763:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Offer_$5997_storage_ptr_$","typeString":"type(struct NofGammaOffersV4.Offer storage pointer)"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13763:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"functionReturnParameters":7430,"id":7445,"nodeType":"Return","src":"13756:50:22"}]},"id":7447,"implemented":true,"kind":"function","modifiers":[],"name":"_emptyOffer","nameLocation":"13699:11:22","nodeType":"FunctionDefinition","parameters":{"id":7426,"nodeType":"ParameterList","parameters":[],"src":"13710:2:22"},"returnParameters":{"id":7430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7447,"src":"13736:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":7428,"nodeType":"UserDefinedTypeName","pathNode":{"id":7427,"name":"Offer","nameLocations":["13736:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"13736:5:22"},"referencedDeclaration":5997,"src":"13736:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"13735:14:22"},"scope":7472,"src":"13690:121:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7470,"nodeType":"Block","src":"13926:96:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7459,"name":"offerId1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"13966:8:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13949:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13953:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"13949:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13949:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7456,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13939:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13939:37:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":7465,"name":"offerId2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7451,"src":"14007:8:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13990:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13994:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"13990:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13990:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7462,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13980:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13980:37:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13939:78:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7455,"id":7469,"nodeType":"Return","src":"13932:85:22"}]},"id":7471,"implemented":true,"kind":"function","modifiers":[],"name":"_sameOfferId","nameLocation":"13824:12:22","nodeType":"FunctionDefinition","parameters":{"id":7452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7449,"mutability":"mutable","name":"offerId1","nameLocation":"13856:8:22","nodeType":"VariableDeclaration","scope":7471,"src":"13842:22:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7448,"name":"string","nodeType":"ElementaryTypeName","src":"13842:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7451,"mutability":"mutable","name":"offerId2","nameLocation":"13884:8:22","nodeType":"VariableDeclaration","scope":7471,"src":"13870:22:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7450,"name":"string","nodeType":"ElementaryTypeName","src":"13870:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13836:60:22"},"returnParameters":{"id":7455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7471,"src":"13920:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7453,"name":"bool","nodeType":"ElementaryTypeName","src":"13920:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13919:6:22"},"scope":7472,"src":"13815:207:22","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7473,"src":"1095:12929:22","usedErrors":[13,18,5887,5889,5891,5893,5895,5897,5899,5901,5903,5905,5907,5909,5911,5913,5915,5917],"usedEvents":[24,6027,6036,6042,6046,6048]}],"src":"32:13993:22"},"id":22},"contracts/gamma/GammaPacks.v3.sol":{"ast":{"absolutePath":"contracts/gamma/GammaPacks.v3.sol","exportedSymbols":{"ContractAddressNotSet":[7504],"IERC20":[394],"IGammaCardsContract":[7515],"IgammaTicketsContract":[7530],"InsufficientAllowance":[7498],"InsufficientBalance":[7500],"InsufficientPacksAvailable":[7492],"InvalidAddress":[7488],"InvalidNumberOfPacks":[7490],"LibControlMgmt":[8832],"NofGammaPacksV3":[8630],"NotGammaCardsContract":[7484],"NotYourPack":[7502],"Ownable":[147],"OwnlyOwners":[7486],"TransferPrizeError":[7496],"console":[19517]},"id":8631,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7474,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":7476,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":395,"src":"58:70:23","symbolAliases":[{"foreign":{"id":7475,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"66:6:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7478,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":148,"src":"129:67:23","symbolAliases":[{"foreign":{"id":7477,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"137:7:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","file":"./libs/LibControlMgmt.sol","id":7480,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":8833,"src":"197:57:23","symbolAliases":[{"foreign":{"id":7479,"name":"LibControlMgmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8832,"src":"205:14:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":7482,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":19518,"src":"255:44:23","symbolAliases":[{"foreign":{"id":7481,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"263:7:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"errorSelector":"f8d39bd0","id":7484,"name":"NotGammaCardsContract","nameLocation":"307:21:23","nodeType":"ErrorDefinition","parameters":{"id":7483,"nodeType":"ParameterList","parameters":[],"src":"328:2:23"},"src":"301:30:23"},{"errorSelector":"c19d0f48","id":7486,"name":"OwnlyOwners","nameLocation":"338:11:23","nodeType":"ErrorDefinition","parameters":{"id":7485,"nodeType":"ParameterList","parameters":[],"src":"349:2:23"},"src":"332:20:23"},{"errorSelector":"e6c4247b","id":7488,"name":"InvalidAddress","nameLocation":"359:14:23","nodeType":"ErrorDefinition","parameters":{"id":7487,"nodeType":"ParameterList","parameters":[],"src":"373:2:23"},"src":"353:23:23"},{"errorSelector":"2ec760a5","id":7490,"name":"InvalidNumberOfPacks","nameLocation":"383:20:23","nodeType":"ErrorDefinition","parameters":{"id":7489,"nodeType":"ParameterList","parameters":[],"src":"403:2:23"},"src":"377:29:23"},{"errorSelector":"7c5a3c39","id":7492,"name":"InsufficientPacksAvailable","nameLocation":"413:26:23","nodeType":"ErrorDefinition","parameters":{"id":7491,"nodeType":"ParameterList","parameters":[],"src":"439:2:23"},"src":"407:35:23"},{"errorSelector":"2f5f923c","id":7496,"name":"TransferPrizeError","nameLocation":"449:18:23","nodeType":"ErrorDefinition","parameters":{"id":7495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7494,"mutability":"mutable","name":"_to","nameLocation":"476:3:23","nodeType":"VariableDeclaration","scope":7496,"src":"468:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7493,"name":"address","nodeType":"ElementaryTypeName","src":"468:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"467:13:23"},"src":"443:38:23"},{"errorSelector":"13be252b","id":7498,"name":"InsufficientAllowance","nameLocation":"488:21:23","nodeType":"ErrorDefinition","parameters":{"id":7497,"nodeType":"ParameterList","parameters":[],"src":"509:2:23"},"src":"482:30:23"},{"errorSelector":"f4d678b8","id":7500,"name":"InsufficientBalance","nameLocation":"519:19:23","nodeType":"ErrorDefinition","parameters":{"id":7499,"nodeType":"ParameterList","parameters":[],"src":"538:2:23"},"src":"513:28:23"},{"errorSelector":"7f6ecdf5","id":7502,"name":"NotYourPack","nameLocation":"548:11:23","nodeType":"ErrorDefinition","parameters":{"id":7501,"nodeType":"ParameterList","parameters":[],"src":"559:2:23"},"src":"542:20:23"},{"errorSelector":"9802ff18","id":7504,"name":"ContractAddressNotSet","nameLocation":"569:21:23","nodeType":"ErrorDefinition","parameters":{"id":7503,"nodeType":"ParameterList","parameters":[],"src":"590:2:23"},"src":"563:30:23"},{"abstract":false,"baseContracts":[],"canonicalName":"IGammaCardsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7515,"linearizedBaseContracts":[7515],"name":"IGammaCardsContract","nameLocation":"605:19:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"5e31ce48","id":7509,"implemented":false,"kind":"function","modifiers":[],"name":"setPrizesBalance","nameLocation":"638:16:23","nodeType":"FunctionDefinition","parameters":{"id":7507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7506,"mutability":"mutable","name":"amount","nameLocation":"663:6:23","nodeType":"VariableDeclaration","scope":7509,"src":"655:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7505,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:16:23"},"returnParameters":{"id":7508,"nodeType":"ParameterList","parameters":[],"src":"679:0:23"},"scope":7515,"src":"629:51:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e1883c6e","id":7514,"implemented":false,"kind":"function","modifiers":[],"name":"changePackPrice","nameLocation":"693:15:23","nodeType":"FunctionDefinition","parameters":{"id":7512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7511,"mutability":"mutable","name":"amount","nameLocation":"717:6:23","nodeType":"VariableDeclaration","scope":7514,"src":"709:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7510,"name":"uint256","nodeType":"ElementaryTypeName","src":"709:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"708:16:23"},"returnParameters":{"id":7513,"nodeType":"ParameterList","parameters":[],"src":"733:0:23"},"scope":7515,"src":"684:50:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8631,"src":"595:141:23","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaTicketsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7530,"linearizedBaseContracts":[7530],"name":"IgammaTicketsContract","nameLocation":"748:21:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b2d55c1c","id":7526,"implemented":false,"kind":"function","modifiers":[],"name":"getLotteryWinner","nameLocation":"783:16:23","nodeType":"FunctionDefinition","parameters":{"id":7516,"nodeType":"ParameterList","parameters":[],"src":"799:2:23"},"returnParameters":{"id":7525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7518,"mutability":"mutable","name":"timestamp","nameLocation":"836:9:23","nodeType":"VariableDeclaration","scope":7526,"src":"828:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7517,"name":"uint256","nodeType":"ElementaryTypeName","src":"828:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7520,"mutability":"mutable","name":"ticketId","nameLocation":"855:8:23","nodeType":"VariableDeclaration","scope":7526,"src":"847:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"847:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7522,"mutability":"mutable","name":"ticketCounter","nameLocation":"873:13:23","nodeType":"VariableDeclaration","scope":7526,"src":"865:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7521,"name":"uint256","nodeType":"ElementaryTypeName","src":"865:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7524,"mutability":"mutable","name":"user","nameLocation":"896:4:23","nodeType":"VariableDeclaration","scope":7526,"src":"888:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7523,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"827:74:23"},"scope":7530,"src":"774:128:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"306e4118","id":7529,"implemented":false,"kind":"function","modifiers":[],"name":"deleteAllTickets","nameLocation":"915:16:23","nodeType":"FunctionDefinition","parameters":{"id":7527,"nodeType":"ParameterList","parameters":[],"src":"931:2:23"},"returnParameters":{"id":7528,"nodeType":"ParameterList","parameters":[],"src":"942:0:23"},"scope":7530,"src":"906:37:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8631,"src":"738:207:23","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":7531,"name":"Ownable","nameLocations":["975:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"975:7:23"},"id":7532,"nodeType":"InheritanceSpecifier","src":"975:7:23"}],"canonicalName":"NofGammaPacksV3","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8630,"linearizedBaseContracts":[8630,147,1751],"name":"NofGammaPacksV3","nameLocation":"956:15:23","nodeType":"ContractDefinition","nodes":[{"global":false,"id":7536,"libraryName":{"id":7533,"name":"LibControlMgmt","nameLocations":["993:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":8832,"src":"993:14:23"},"nodeType":"UsingForDirective","src":"987:45:23","typeName":{"id":7535,"nodeType":"UserDefinedTypeName","pathNode":{"id":7534,"name":"LibControlMgmt.Data","nameLocations":["1012:14:23","1027:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1012:19:23"},"referencedDeclaration":8641,"src":"1012:19:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}}},{"constant":false,"functionSelector":"d250f03a","id":7539,"mutability":"mutable","name":"gammaCardsContract","nameLocation":"1063:18:23","nodeType":"VariableDeclaration","scope":8630,"src":"1036:45:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"},"typeName":{"id":7538,"nodeType":"UserDefinedTypeName","pathNode":{"id":7537,"name":"IGammaCardsContract","nameLocations":["1036:19:23"],"nodeType":"IdentifierPath","referencedDeclaration":7515,"src":"1036:19:23"},"referencedDeclaration":7515,"src":"1036:19:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"visibility":"public"},{"constant":false,"functionSelector":"14cca36a","id":7542,"mutability":"mutable","name":"gammaTicketsContract","nameLocation":"1114:20:23","nodeType":"VariableDeclaration","scope":8630,"src":"1085:49:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"},"typeName":{"id":7541,"nodeType":"UserDefinedTypeName","pathNode":{"id":7540,"name":"IgammaTicketsContract","nameLocations":["1085:21:23"],"nodeType":"IdentifierPath","referencedDeclaration":7530,"src":"1085:21:23"},"referencedDeclaration":7530,"src":"1085:21:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"visibility":"public"},{"constant":false,"id":7545,"mutability":"mutable","name":"ownersData","nameLocation":"1167:10:23","nodeType":"VariableDeclaration","scope":8630,"src":"1139:38:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":7544,"nodeType":"UserDefinedTypeName","pathNode":{"id":7543,"name":"LibControlMgmt.Data","nameLocations":["1139:14:23","1154:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1139:19:23"},"referencedDeclaration":8641,"src":"1139:19:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"functionSelector":"e606df87","id":7547,"mutability":"mutable","name":"DAI_TOKEN","nameLocation":"1197:9:23","nodeType":"VariableDeclaration","scope":8630,"src":"1182:24:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7546,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"c34e8af4","id":7549,"mutability":"mutable","name":"s_balanceReceiver","nameLocation":"1225:17:23","nodeType":"VariableDeclaration","scope":8630,"src":"1210:32:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7548,"name":"address","nodeType":"ElementaryTypeName","src":"1210:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"functionSelector":"94a08c69","id":7552,"mutability":"constant","name":"TOTALSUPPLY","nameLocation":"1270:11:23","nodeType":"VariableDeclaration","scope":8630,"src":"1246:43:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"1246:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3530303030","id":7551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:5:23","typeDescriptions":{"typeIdentifier":"t_rational_50000_by_1","typeString":"int_const 50000"},"value":"50000"},"visibility":"public"},{"constant":false,"functionSelector":"656bd0ad","id":7555,"mutability":"mutable","name":"s_packPrice","nameLocation":"1308:11:23","nodeType":"VariableDeclaration","scope":8630,"src":"1293:34:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7553,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132653137","id":7554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:5:23","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"12e17"},"visibility":"public"},{"constant":false,"id":7558,"mutability":"mutable","name":"s_packsCounter","nameLocation":"1358:14:23","nodeType":"VariableDeclaration","scope":8630,"src":"1342:34:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1342:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":7557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1375:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":7561,"mutability":"mutable","name":"s_transferDai","nameLocation":"1385:13:23","nodeType":"VariableDeclaration","scope":8630,"src":"1380:25:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7559,"name":"bool","nodeType":"ElementaryTypeName","src":"1380:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":7560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1401:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"constant":false,"functionSelector":"3cd626fd","id":7565,"mutability":"mutable","name":"s_packs","nameLocation":"1459:7:23","nodeType":"VariableDeclaration","scope":8630,"src":"1410:56:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":7564,"keyName":"tokenId","keyNameLocation":"1426:7:23","keyType":{"id":7562,"name":"uint256","nodeType":"ElementaryTypeName","src":"1418:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1410:41:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"owner","valueNameLocation":"1445:5:23","valueType":{"id":7563,"name":"address","nodeType":"ElementaryTypeName","src":"1437:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"d9e8221e","id":7570,"mutability":"mutable","name":"s_packsByUser","nameLocation":"1522:13:23","nodeType":"VariableDeclaration","scope":8630,"src":"1470:65:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":7569,"keyName":"owner","keyNameLocation":"1486:5:23","keyType":{"id":7566,"name":"address","nodeType":"ElementaryTypeName","src":"1478:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1470:44:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"tokenIds","valueNameLocation":"1505:8:23","valueType":{"baseType":{"id":7567,"name":"uint256","nodeType":"ElementaryTypeName","src":"1495:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7568,"nodeType":"ArrayTypeName","src":"1495:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"anonymous":false,"eventSelector":"45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa","id":7574,"name":"NewGammaCardsContract","nameLocation":"1546:21:23","nodeType":"EventDefinition","parameters":{"id":7573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7572,"indexed":true,"mutability":"mutable","name":"newCardsContract","nameLocation":"1584:16:23","nodeType":"VariableDeclaration","scope":7574,"src":"1568:32:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7571,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:34:23"},"src":"1540:62:23"},{"anonymous":false,"eventSelector":"563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa202","id":7578,"name":"NewGammaTicketsContract","nameLocation":"1611:23:23","nodeType":"EventDefinition","parameters":{"id":7577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7576,"indexed":true,"mutability":"mutable","name":"newGammaTicketContract","nameLocation":"1651:22:23","nodeType":"VariableDeclaration","scope":7578,"src":"1635:38:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7575,"name":"address","nodeType":"ElementaryTypeName","src":"1635:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1634:40:23"},"src":"1605:70:23"},{"anonymous":false,"eventSelector":"7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a5","id":7582,"name":"NewBalanceReceiver","nameLocation":"1684:18:23","nodeType":"EventDefinition","parameters":{"id":7581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7580,"indexed":true,"mutability":"mutable","name":"balanceReceiver","nameLocation":"1719:15:23","nodeType":"VariableDeclaration","scope":7582,"src":"1703:31:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7579,"name":"address","nodeType":"ElementaryTypeName","src":"1703:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1702:33:23"},"src":"1678:58:23"},{"anonymous":false,"eventSelector":"c79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca7","id":7588,"name":"PackPurchased","nameLocation":"1745:13:23","nodeType":"EventDefinition","parameters":{"id":7587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7584,"indexed":true,"mutability":"mutable","name":"buyer","nameLocation":"1775:5:23","nodeType":"VariableDeclaration","scope":7588,"src":"1759:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7583,"name":"address","nodeType":"ElementaryTypeName","src":"1759:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7586,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"1798:7:23","nodeType":"VariableDeclaration","scope":7588,"src":"1782:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1782:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:48:23"},"src":"1739:68:23"},{"anonymous":false,"eventSelector":"8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c9","id":7595,"name":"PacksPurchased","nameLocation":"1816:14:23","nodeType":"EventDefinition","parameters":{"id":7594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7590,"indexed":true,"mutability":"mutable","name":"buyer","nameLocation":"1847:5:23","nodeType":"VariableDeclaration","scope":7595,"src":"1831:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7589,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7593,"indexed":true,"mutability":"mutable","name":"tokenIds","nameLocation":"1872:8:23","nodeType":"VariableDeclaration","scope":7595,"src":"1854:26:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7591,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7592,"nodeType":"ArrayTypeName","src":"1854:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1830:51:23"},"src":"1810:72:23"},{"anonymous":false,"eventSelector":"16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a2","id":7603,"name":"PackTransfered","nameLocation":"1891:14:23","nodeType":"EventDefinition","parameters":{"id":7602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7597,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1922:4:23","nodeType":"VariableDeclaration","scope":7603,"src":"1906:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7596,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7599,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1944:2:23","nodeType":"VariableDeclaration","scope":7603,"src":"1928:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7598,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7601,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"1964:7:23","nodeType":"VariableDeclaration","scope":7603,"src":"1948:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7600,"name":"uint256","nodeType":"ElementaryTypeName","src":"1948:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1905:67:23"},"src":"1885:88:23"},{"anonymous":false,"eventSelector":"1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f1","id":7612,"name":"PacksTransfered","nameLocation":"1982:15:23","nodeType":"EventDefinition","parameters":{"id":7611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7605,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2014:4:23","nodeType":"VariableDeclaration","scope":7612,"src":"1998:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7604,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7607,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"2036:2:23","nodeType":"VariableDeclaration","scope":7612,"src":"2020:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7606,"name":"address","nodeType":"ElementaryTypeName","src":"2020:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7610,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"2058:7:23","nodeType":"VariableDeclaration","scope":7612,"src":"2040:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7608,"name":"uint256","nodeType":"ElementaryTypeName","src":"2040:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7609,"nodeType":"ArrayTypeName","src":"2040:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1997:69:23"},"src":"1976:91:23"},{"anonymous":false,"eventSelector":"459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c","id":7618,"name":"PackOpened","nameLocation":"2076:10:23","nodeType":"EventDefinition","parameters":{"id":7617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7614,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"2103:4:23","nodeType":"VariableDeclaration","scope":7618,"src":"2087:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7613,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7616,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"2125:7:23","nodeType":"VariableDeclaration","scope":7618,"src":"2109:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7615,"name":"uint256","nodeType":"ElementaryTypeName","src":"2109:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2086:47:23"},"src":"2070:64:23"},{"anonymous":false,"eventSelector":"270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b7","id":7622,"name":"NewPrice","nameLocation":"2143:8:23","nodeType":"EventDefinition","parameters":{"id":7621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7620,"indexed":true,"mutability":"mutable","name":"newPrice","nameLocation":"2168:8:23","nodeType":"VariableDeclaration","scope":7622,"src":"2152:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7619,"name":"uint256","nodeType":"ElementaryTypeName","src":"2152:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2151:26:23"},"src":"2137:41:23"},{"body":{"id":7636,"nodeType":"Block","src":"2216:95:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7624,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2226:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2230:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2226:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":7628,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"2248:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}],"id":7627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2240:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7626,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:23","typeDescriptions":{}}},"id":7629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2240:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2226:41:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7634,"nodeType":"IfStatement","src":"2222:77:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7631,"name":"NotGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"2276:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7633,"nodeType":"RevertStatement","src":"2269:30:23"}},{"id":7635,"nodeType":"PlaceholderStatement","src":"2305:1:23"}]},"id":7637,"name":"onlyGammaCardsContract","nameLocation":"2191:22:23","nodeType":"ModifierDefinition","parameters":{"id":7623,"nodeType":"ParameterList","parameters":[],"src":"2213:2:23"},"src":"2182:129:23","virtual":false,"visibility":"internal"},{"body":{"id":7650,"nodeType":"Block","src":"2337:74:23","statements":[{"condition":{"id":7644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2347:30:23","subExpression":{"baseExpression":{"expression":{"id":7639,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"2348:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2359:6:23","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2348:17:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7643,"indexExpression":{"expression":{"id":7641,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2366:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2370:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2366:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7648,"nodeType":"IfStatement","src":"2343:56:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7645,"name":"OwnlyOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7486,"src":"2386:11:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7647,"nodeType":"RevertStatement","src":"2379:20:23"}},{"id":7649,"nodeType":"PlaceholderStatement","src":"2405:1:23"}]},"id":7651,"name":"onlyOwners","nameLocation":"2324:10:23","nodeType":"ModifierDefinition","parameters":{"id":7638,"nodeType":"ParameterList","parameters":[],"src":"2334:2:23"},"src":"2315:96:23","virtual":false,"visibility":"internal"},{"body":{"id":7719,"nodeType":"Block","src":"2579:430:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7666,"name":"_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"2596:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2624:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2616:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7667,"name":"address","nodeType":"ElementaryTypeName","src":"2616:7:23","typeDescriptions":{}}},"id":7670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2616:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2596:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7672,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"2636:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2667:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2659:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7673,"name":"address","nodeType":"ElementaryTypeName","src":"2659:7:23","typeDescriptions":{}}},"id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2636:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2596:73:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7679,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"2679:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2704:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7680,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:23","typeDescriptions":{}}},"id":7683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2704:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2679:35:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2596:118:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7689,"nodeType":"IfStatement","src":"2585:159:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7686,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"2728:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7688,"nodeType":"RevertStatement","src":"2721:23:23"}},{"expression":{"id":7692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7690,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7547,"src":"2751:9:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7691,"name":"_daiTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7653,"src":"2763:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2751:28:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7693,"nodeType":"ExpressionStatement","src":"2751:28:23"},{"expression":{"id":7696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7694,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2785:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7695,"name":"_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"2805:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2785:36:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7697,"nodeType":"ExpressionStatement","src":"2785:36:23"},{"expression":{"id":7702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7698,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"2827:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7700,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"2868:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7699,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"2848:19:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$7515_$","typeString":"type(contract IGammaCardsContract)"}},"id":7701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"src":"2827:61:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":7703,"nodeType":"ExpressionStatement","src":"2827:61:23"},{"expression":{"id":7708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7704,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"2894:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7706,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"2939:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7705,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7530,"src":"2917:21:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$7530_$","typeString":"type(contract IgammaTicketsContract)"}},"id":7707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2917:44:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"src":"2894:67:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"id":7709,"nodeType":"ExpressionStatement","src":"2894:67:23"},{"expression":{"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":7710,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"2968:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2979:6:23","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2968:17:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7715,"indexExpression":{"expression":{"id":7712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2986:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2990:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2986:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2968:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3000:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2968:36:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7718,"nodeType":"ExpressionStatement","src":"2968:36:23"}]},"id":7720,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":7662,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2567:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2571:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2567:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7664,"kind":"baseConstructorSpecifier","modifierName":{"id":7661,"name":"Ownable","nameLocations":["2559:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"2559:7:23"},"nodeType":"ModifierInvocation","src":"2559:19:23"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7653,"mutability":"mutable","name":"_daiTokenAddress","nameLocation":"2440:16:23","nodeType":"VariableDeclaration","scope":7720,"src":"2432:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7652,"name":"address","nodeType":"ElementaryTypeName","src":"2432:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7655,"mutability":"mutable","name":"_balanceReceiver","nameLocation":"2470:16:23","nodeType":"VariableDeclaration","scope":7720,"src":"2462:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7654,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7657,"mutability":"mutable","name":"_gammaCardsContract","nameLocation":"2500:19:23","nodeType":"VariableDeclaration","scope":7720,"src":"2492:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7656,"name":"address","nodeType":"ElementaryTypeName","src":"2492:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7659,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"2533:21:23","nodeType":"VariableDeclaration","scope":7720,"src":"2525:29:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7658,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2426:132:23"},"returnParameters":{"id":7665,"nodeType":"ParameterList","parameters":[],"src":"2579:0:23"},"scope":8630,"src":"2415:594:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7733,"nodeType":"Block","src":"3070:41:23","statements":[{"expression":{"arguments":[{"id":7730,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"3096:9:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7727,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"3076:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3087:8:23","memberName":"addOwner","nodeType":"MemberAccess","referencedDeclaration":8697,"src":"3076:19:23","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":7731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3076:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7732,"nodeType":"ExpressionStatement","src":"3076:30:23"}]},"functionSelector":"7065cb48","id":7734,"implemented":true,"kind":"function","modifiers":[{"id":7725,"kind":"modifierInvocation","modifierName":{"id":7724,"name":"onlyOwners","nameLocations":["3059:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3059:10:23"},"nodeType":"ModifierInvocation","src":"3059:10:23"}],"name":"addOwner","nameLocation":"3022:8:23","nodeType":"FunctionDefinition","parameters":{"id":7723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7722,"mutability":"mutable","name":"_newOwner","nameLocation":"3039:9:23","nodeType":"VariableDeclaration","scope":7734,"src":"3031:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7721,"name":"address","nodeType":"ElementaryTypeName","src":"3031:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3030:19:23"},"returnParameters":{"id":7726,"nodeType":"ParameterList","parameters":[],"src":"3070:0:23"},"scope":8630,"src":"3013:98:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7747,"nodeType":"Block","src":"3180:49:23","statements":[{"expression":{"arguments":[{"id":7744,"name":"_ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"3209:14:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7741,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"3186:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3197:11:23","memberName":"removeOwner","nodeType":"MemberAccess","referencedDeclaration":8744,"src":"3186:22:23","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":7745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7746,"nodeType":"ExpressionStatement","src":"3186:38:23"}]},"functionSelector":"173825d9","id":7748,"implemented":true,"kind":"function","modifiers":[{"id":7739,"kind":"modifierInvocation","modifierName":{"id":7738,"name":"onlyOwners","nameLocations":["3169:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3169:10:23"},"nodeType":"ModifierInvocation","src":"3169:10:23"}],"name":"removeOwner","nameLocation":"3124:11:23","nodeType":"FunctionDefinition","parameters":{"id":7737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7736,"mutability":"mutable","name":"_ownerToRemove","nameLocation":"3144:14:23","nodeType":"VariableDeclaration","scope":7748,"src":"3136:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7735,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3135:24:23"},"returnParameters":{"id":7740,"nodeType":"ParameterList","parameters":[],"src":"3180:0:23"},"scope":8630,"src":"3115:114:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7773,"nodeType":"Block","src":"3313:168:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7755,"name":"_newBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3323:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3354:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3346:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7756,"name":"address","nodeType":"ElementaryTypeName","src":"3346:7:23","typeDescriptions":{}}},"id":7759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3346:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3323:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7764,"nodeType":"IfStatement","src":"3319:62:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7761,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"3365:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"RevertStatement","src":"3358:23:23"}},{"expression":{"id":7767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7765,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"3387:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7766,"name":"_newBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3407:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3387:39:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7768,"nodeType":"ExpressionStatement","src":"3387:39:23"},{"eventCall":{"arguments":[{"id":7770,"name":"_newBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3456:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7769,"name":"NewBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7582,"src":"3437:18:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3437:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7772,"nodeType":"EmitStatement","src":"3432:44:23"}]},"functionSelector":"e0f78307","id":7774,"implemented":true,"kind":"function","modifiers":[{"id":7753,"kind":"modifierInvocation","modifierName":{"id":7752,"name":"onlyOwners","nameLocations":["3302:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3302:10:23"},"nodeType":"ModifierInvocation","src":"3302:10:23"}],"name":"changeBalanceReceiver","nameLocation":"3242:21:23","nodeType":"FunctionDefinition","parameters":{"id":7751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7750,"mutability":"mutable","name":"_newBalanceReceiver","nameLocation":"3272:19:23","nodeType":"VariableDeclaration","scope":7774,"src":"3264:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7749,"name":"address","nodeType":"ElementaryTypeName","src":"3264:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3263:29:23"},"returnParameters":{"id":7754,"nodeType":"ParameterList","parameters":[],"src":"3313:0:23"},"scope":8630,"src":"3233:248:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7795,"nodeType":"Block","src":"3543:115:23","statements":[{"expression":{"id":7783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7781,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"3549:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7782,"name":"_newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"3563:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3549:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7784,"nodeType":"ExpressionStatement","src":"3549:23:23"},{"expression":{"arguments":[{"id":7788,"name":"_newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"3613:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7785,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"3578:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:15:23","memberName":"changePackPrice","nodeType":"MemberAccess","referencedDeclaration":7514,"src":"3578:34:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":7789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3578:45:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7790,"nodeType":"ExpressionStatement","src":"3578:45:23"},{"eventCall":{"arguments":[{"id":7792,"name":"_newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"3643:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7791,"name":"NewPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7622,"src":"3634:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3634:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7794,"nodeType":"EmitStatement","src":"3629:24:23"}]},"functionSelector":"a2b40d19","id":7796,"implemented":true,"kind":"function","modifiers":[{"id":7779,"kind":"modifierInvocation","modifierName":{"id":7778,"name":"onlyOwners","nameLocations":["3532:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3532:10:23"},"nodeType":"ModifierInvocation","src":"3532:10:23"}],"name":"changePrice","nameLocation":"3494:11:23","nodeType":"FunctionDefinition","parameters":{"id":7777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7776,"mutability":"mutable","name":"_newPrice","nameLocation":"3514:9:23","nodeType":"VariableDeclaration","scope":7796,"src":"3506:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7775,"name":"uint256","nodeType":"ElementaryTypeName","src":"3506:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3505:19:23"},"returnParameters":{"id":7780,"nodeType":"ParameterList","parameters":[],"src":"3543:0:23"},"scope":8630,"src":"3485:173:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7807,"nodeType":"Block","src":"3730:39:23","statements":[{"expression":{"id":7805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7803,"name":"s_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"3736:13:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7804,"name":"_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3752:12:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3736:28:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7806,"nodeType":"ExpressionStatement","src":"3736:28:23"}]},"functionSelector":"99e5f896","id":7808,"implemented":true,"kind":"function","modifiers":[{"id":7801,"kind":"modifierInvocation","modifierName":{"id":7800,"name":"onlyOwners","nameLocations":["3719:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3719:10:23"},"nodeType":"ModifierInvocation","src":"3719:10:23"}],"name":"changeTransferDaiFlag","nameLocation":"3671:21:23","nodeType":"FunctionDefinition","parameters":{"id":7799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7798,"mutability":"mutable","name":"_transferDai","nameLocation":"3698:12:23","nodeType":"VariableDeclaration","scope":7808,"src":"3693:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7797,"name":"bool","nodeType":"ElementaryTypeName","src":"3693:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3692:19:23"},"returnParameters":{"id":7802,"nodeType":"ParameterList","parameters":[],"src":"3730:0:23"},"scope":8630,"src":"3662:107:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7835,"nodeType":"Block","src":"3851:193:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7815,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"3861:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3884:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7816,"name":"address","nodeType":"ElementaryTypeName","src":"3884:7:23","typeDescriptions":{}}},"id":7819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3884:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3861:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7824,"nodeType":"IfStatement","src":"3857:62:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7821,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"3903:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7823,"nodeType":"RevertStatement","src":"3896:23:23"}},{"expression":{"id":7829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7825,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"3925:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7827,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"3966:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7826,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"3946:19:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$7515_$","typeString":"type(contract IGammaCardsContract)"}},"id":7828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"src":"3925:61:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":7830,"nodeType":"ExpressionStatement","src":"3925:61:23"},{"eventCall":{"arguments":[{"id":7832,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"4019:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7831,"name":"NewGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"3997:21:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:42:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7834,"nodeType":"EmitStatement","src":"3992:47:23"}]},"functionSelector":"4c7a7ad3","id":7836,"implemented":true,"kind":"function","modifiers":[{"id":7813,"kind":"modifierInvocation","modifierName":{"id":7812,"name":"onlyOwners","nameLocations":["3840:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3840:10:23"},"nodeType":"ModifierInvocation","src":"3840:10:23"}],"name":"setGammaCardsContract","nameLocation":"3782:21:23","nodeType":"FunctionDefinition","parameters":{"id":7811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7810,"mutability":"mutable","name":"_gammaCardsContract","nameLocation":"3812:19:23","nodeType":"VariableDeclaration","scope":7836,"src":"3804:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7809,"name":"address","nodeType":"ElementaryTypeName","src":"3804:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3803:29:23"},"returnParameters":{"id":7814,"nodeType":"ParameterList","parameters":[],"src":"3851:0:23"},"scope":8630,"src":"3773:271:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7863,"nodeType":"Block","src":"4130:205:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7843,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"4140:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4165:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7844,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:23","typeDescriptions":{}}},"id":7847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4140:35:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7852,"nodeType":"IfStatement","src":"4136:64:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7849,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"4184:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7851,"nodeType":"RevertStatement","src":"4177:23:23"}},{"expression":{"id":7857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7853,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"4206:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7855,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"4251:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7854,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7530,"src":"4229:21:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$7530_$","typeString":"type(contract IgammaTicketsContract)"}},"id":7856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:44:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"src":"4206:67:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"id":7858,"nodeType":"ExpressionStatement","src":"4206:67:23"},{"eventCall":{"arguments":[{"id":7860,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"4308:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7859,"name":"NewGammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"4284:23:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4284:46:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7862,"nodeType":"EmitStatement","src":"4279:51:23"}]},"functionSelector":"ddb975e8","id":7864,"implemented":true,"kind":"function","modifiers":[{"id":7841,"kind":"modifierInvocation","modifierName":{"id":7840,"name":"onlyOwners","nameLocations":["4119:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"4119:10:23"},"nodeType":"ModifierInvocation","src":"4119:10:23"}],"name":"setGammaTicketsContract","nameLocation":"4057:23:23","nodeType":"FunctionDefinition","parameters":{"id":7839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7838,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"4089:21:23","nodeType":"VariableDeclaration","scope":7864,"src":"4081:29:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7837,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4080:31:23"},"returnParameters":{"id":7842,"nodeType":"ParameterList","parameters":[],"src":"4130:0:23"},"scope":8630,"src":"4048:287:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7876,"nodeType":"Block","src":"4399:41:23","statements":[{"expression":{"baseExpression":{"expression":{"id":7871,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"4412:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4423:6:23","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"4412:17:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7874,"indexExpression":{"id":7873,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7866,"src":"4430:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4412:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7870,"id":7875,"nodeType":"Return","src":"4405:30:23"}]},"functionSelector":"2f54bf6e","id":7877,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nameLocation":"4348:7:23","nodeType":"FunctionDefinition","parameters":{"id":7867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7866,"mutability":"mutable","name":"user","nameLocation":"4364:4:23","nodeType":"VariableDeclaration","scope":7877,"src":"4356:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7865,"name":"address","nodeType":"ElementaryTypeName","src":"4356:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4355:14:23"},"returnParameters":{"id":7870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7877,"src":"4393:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7868,"name":"bool","nodeType":"ElementaryTypeName","src":"4393:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4392:6:23"},"scope":8630,"src":"4339:101:23","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7894,"nodeType":"Block","src":"4531:67:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7884,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4545:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7885,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4560:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"36","id":7886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4574:1:23","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"4560:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7888,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4559:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4545:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7890,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4544:33:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7891,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7879,"src":"4580:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4544:49:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7883,"id":7893,"nodeType":"Return","src":"4537:56:23"}]},"functionSelector":"3f6ecd48","id":7895,"implemented":true,"kind":"function","modifiers":[],"name":"getPrizeAmountToBuyPacks","nameLocation":"4453:24:23","nodeType":"FunctionDefinition","parameters":{"id":7880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7879,"mutability":"mutable","name":"numberOfPacks","nameLocation":"4486:13:23","nodeType":"VariableDeclaration","scope":7895,"src":"4478:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7878,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4477:23:23"},"returnParameters":{"id":7883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7895,"src":"4522:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7881,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4521:9:23"},"scope":8630,"src":"4444:154:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7915,"nodeType":"Block","src":"4699:130:23","statements":[{"assignments":[7903],"declarations":[{"constant":false,"id":7903,"mutability":"mutable","name":"prizesAmount","nameLocation":"4713:12:23","nodeType":"VariableDeclaration","scope":7915,"src":"4705:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7902,"name":"uint256","nodeType":"ElementaryTypeName","src":"4705:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7907,"initialValue":{"arguments":[{"id":7905,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"4753:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7904,"name":"getPrizeAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"4728:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4728:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4705:62:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7908,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4781:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7909,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"4795:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4781:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4780:29:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7912,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"4812:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4780:44:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7901,"id":7914,"nodeType":"Return","src":"4773:51:23"}]},"functionSelector":"01321c4d","id":7916,"implemented":true,"kind":"function","modifiers":[],"name":"getPrizeNoFAccountAmountToBuyPacks","nameLocation":"4611:34:23","nodeType":"FunctionDefinition","parameters":{"id":7898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7897,"mutability":"mutable","name":"numberOfPacks","nameLocation":"4654:13:23","nodeType":"VariableDeclaration","scope":7916,"src":"4646:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4646:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4645:23:23"},"returnParameters":{"id":7901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7916,"src":"4690:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7899,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4689:9:23"},"scope":8630,"src":"4602:227:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7939,"nodeType":"Block","src":"4923:199:23","statements":[{"assignments":[7924],"declarations":[{"constant":false,"id":7924,"mutability":"mutable","name":"prizesAmount","nameLocation":"4937:12:23","nodeType":"VariableDeclaration","scope":7939,"src":"4929:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7923,"name":"uint256","nodeType":"ElementaryTypeName","src":"4929:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7928,"initialValue":{"arguments":[{"id":7926,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4977:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7925,"name":"getPrizeAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"4952:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4952:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4929:62:23"},{"assignments":[7930],"declarations":[{"constant":false,"id":7930,"mutability":"mutable","name":"NoFAccountAmount","nameLocation":"5005:16:23","nodeType":"VariableDeclaration","scope":7939,"src":"4997:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7929,"name":"uint256","nodeType":"ElementaryTypeName","src":"4997:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7934,"initialValue":{"arguments":[{"id":7932,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"5059:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7931,"name":"getPrizeNoFAccountAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7916,"src":"5024:34:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4997:76:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7935,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7924,"src":"5086:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7936,"name":"NoFAccountAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"5101:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5086:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7922,"id":7938,"nodeType":"Return","src":"5079:38:23"}]},"functionSelector":"b48ce653","id":7940,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountRequiredToBuyPacks","nameLocation":"4842:27:23","nodeType":"FunctionDefinition","parameters":{"id":7919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7918,"mutability":"mutable","name":"numberOfPacks","nameLocation":"4878:13:23","nodeType":"VariableDeclaration","scope":7940,"src":"4870:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7917,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4869:23:23"},"returnParameters":{"id":7922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7921,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7940,"src":"4914:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7920,"name":"uint256","nodeType":"ElementaryTypeName","src":"4914:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4913:9:23"},"scope":8630,"src":"4833:289:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7952,"nodeType":"Block","src":"5204:38:23","statements":[{"expression":{"baseExpression":{"id":7948,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"5217:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":7950,"indexExpression":{"id":7949,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"5231:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5217:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"functionReturnParameters":7947,"id":7951,"nodeType":"Return","src":"5210:27:23"}]},"functionSelector":"8fd5baf7","id":7953,"implemented":true,"kind":"function","modifiers":[],"name":"getPacksByUser","nameLocation":"5135:14:23","nodeType":"FunctionDefinition","parameters":{"id":7943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7942,"mutability":"mutable","name":"owner","nameLocation":"5158:5:23","nodeType":"VariableDeclaration","scope":7953,"src":"5150:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7941,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5149:15:23"},"returnParameters":{"id":7947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7953,"src":"5186:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7944,"name":"uint256","nodeType":"ElementaryTypeName","src":"5186:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7945,"nodeType":"ArrayTypeName","src":"5186:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5185:18:23"},"scope":8630,"src":"5126:116:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7964,"nodeType":"Block","src":"5315:34:23","statements":[{"expression":{"baseExpression":{"id":7960,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"5328:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7962,"indexExpression":{"id":7961,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7955,"src":"5336:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5328:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7959,"id":7963,"nodeType":"Return","src":"5321:23:23"}]},"functionSelector":"d3e6a7ad","id":7965,"implemented":true,"kind":"function","modifiers":[],"name":"getPackOwner","nameLocation":"5255:12:23","nodeType":"FunctionDefinition","parameters":{"id":7956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7955,"mutability":"mutable","name":"tokenId","nameLocation":"5276:7:23","nodeType":"VariableDeclaration","scope":7965,"src":"5268:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7954,"name":"uint256","nodeType":"ElementaryTypeName","src":"5268:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5267:17:23"},"returnParameters":{"id":7959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7965,"src":"5306:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7957,"name":"address","nodeType":"ElementaryTypeName","src":"5306:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5305:9:23"},"scope":8630,"src":"5246:103:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7986,"nodeType":"Block","src":"5440:123:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7972,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7967,"src":"5450:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5467:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5450:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7978,"nodeType":"IfStatement","src":"5446:53:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7975,"name":"InvalidNumberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"5477:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5477:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7977,"nodeType":"RevertStatement","src":"5470:29:23"}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7979,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"5513:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7980,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7967,"src":"5530:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5513:30:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7982,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5512:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7983,"name":"TOTALSUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"5547:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5512:46:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7971,"id":7985,"nodeType":"Return","src":"5505:53:23"}]},"functionSelector":"d6a4c3e4","id":7987,"implemented":true,"kind":"function","modifiers":[],"name":"meetQuantityConditionsToBuy","nameLocation":"5362:27:23","nodeType":"FunctionDefinition","parameters":{"id":7968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7967,"mutability":"mutable","name":"numberOfPacks","nameLocation":"5398:13:23","nodeType":"VariableDeclaration","scope":7987,"src":"5390:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7966,"name":"uint256","nodeType":"ElementaryTypeName","src":"5390:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5389:23:23"},"returnParameters":{"id":7971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7987,"src":"5434:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7969,"name":"bool","nodeType":"ElementaryTypeName","src":"5434:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5433:6:23"},"scope":8630,"src":"5353:210:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7997,"nodeType":"Block","src":"5611:38:23","statements":[{"expression":{"arguments":[{"expression":{"id":7993,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5633:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5637:6:23","memberName":"sender","nodeType":"MemberAccess","src":"5633:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7992,"name":"_buyPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8067,"src":"5624:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5624:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7991,"id":7996,"nodeType":"Return","src":"5617:27:23"}]},"functionSelector":"c37b9bcd","id":7998,"implemented":true,"kind":"function","modifiers":[],"name":"buyPack","nameLocation":"5576:7:23","nodeType":"FunctionDefinition","parameters":{"id":7988,"nodeType":"ParameterList","parameters":[],"src":"5583:2:23"},"returnParameters":{"id":7991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7998,"src":"5602:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7989,"name":"uint256","nodeType":"ElementaryTypeName","src":"5602:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5601:9:23"},"scope":8630,"src":"5567:82:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8012,"nodeType":"Block","src":"5728:54:23","statements":[{"expression":{"arguments":[{"expression":{"id":8007,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5751:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5755:6:23","memberName":"sender","nodeType":"MemberAccess","src":"5751:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8009,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8000,"src":"5763:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8006,"name":"_buyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"5741:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256) returns (uint256[] memory)"}},"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5741:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8005,"id":8011,"nodeType":"Return","src":"5734:43:23"}]},"functionSelector":"6adbaf75","id":8013,"implemented":true,"kind":"function","modifiers":[],"name":"buyPacks","nameLocation":"5662:8:23","nodeType":"FunctionDefinition","parameters":{"id":8001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8000,"mutability":"mutable","name":"numberOfPacks","nameLocation":"5679:13:23","nodeType":"VariableDeclaration","scope":8013,"src":"5671:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7999,"name":"uint256","nodeType":"ElementaryTypeName","src":"5671:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5670:23:23"},"returnParameters":{"id":8005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8013,"src":"5710:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8002,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8003,"nodeType":"ArrayTypeName","src":"5710:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5709:18:23"},"scope":8630,"src":"5653:129:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8026,"nodeType":"Block","src":"5859:32:23","statements":[{"expression":{"arguments":[{"id":8023,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8015,"src":"5881:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8022,"name":"_buyPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8067,"src":"5872:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":8024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5872:14:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8021,"id":8025,"nodeType":"Return","src":"5865:21:23"}]},"functionSelector":"967ed63d","id":8027,"implemented":true,"kind":"function","modifiers":[{"id":8018,"kind":"modifierInvocation","modifierName":{"id":8017,"name":"onlyOwners","nameLocations":["5830:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"5830:10:23"},"nodeType":"ModifierInvocation","src":"5830:10:23"}],"name":"buyPackByUser","nameLocation":"5795:13:23","nodeType":"FunctionDefinition","parameters":{"id":8016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8015,"mutability":"mutable","name":"user","nameLocation":"5817:4:23","nodeType":"VariableDeclaration","scope":8027,"src":"5809:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8014,"name":"address","nodeType":"ElementaryTypeName","src":"5809:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5808:14:23"},"returnParameters":{"id":8021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8027,"src":"5850:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8019,"name":"uint256","nodeType":"ElementaryTypeName","src":"5850:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5849:9:23"},"scope":8630,"src":"5786:105:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8044,"nodeType":"Block","src":"6013:48:23","statements":[{"expression":{"arguments":[{"id":8040,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"6036:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8041,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"6042:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8039,"name":"_buyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"6026:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256) returns (uint256[] memory)"}},"id":8042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6026:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8038,"id":8043,"nodeType":"Return","src":"6019:37:23"}]},"functionSelector":"62e21878","id":8045,"implemented":true,"kind":"function","modifiers":[{"id":8034,"kind":"modifierInvocation","modifierName":{"id":8033,"name":"onlyOwners","nameLocations":["5975:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"5975:10:23"},"nodeType":"ModifierInvocation","src":"5975:10:23"}],"name":"buyPacksByUser","nameLocation":"5904:14:23","nodeType":"FunctionDefinition","parameters":{"id":8032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8029,"mutability":"mutable","name":"user","nameLocation":"5932:4:23","nodeType":"VariableDeclaration","scope":8045,"src":"5924:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8028,"name":"address","nodeType":"ElementaryTypeName","src":"5924:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8031,"mutability":"mutable","name":"numberOfPacks","nameLocation":"5950:13:23","nodeType":"VariableDeclaration","scope":8045,"src":"5942:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8030,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5918:49:23"},"returnParameters":{"id":8038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8045,"src":"5995:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8035,"name":"uint256","nodeType":"ElementaryTypeName","src":"5995:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8036,"nodeType":"ArrayTypeName","src":"5995:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5994:18:23"},"scope":8630,"src":"5895:166:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8066,"nodeType":"Block","src":"6123:81:23","statements":[{"assignments":[8056],"declarations":[{"constant":false,"id":8056,"mutability":"mutable","name":"tokenIds","nameLocation":"6146:8:23","nodeType":"VariableDeclaration","scope":8066,"src":"6129:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8054,"name":"uint256","nodeType":"ElementaryTypeName","src":"6129:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8055,"nodeType":"ArrayTypeName","src":"6129:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":8061,"initialValue":{"arguments":[{"id":8058,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8047,"src":"6167:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":8059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6173:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":8057,"name":"_buyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"6157:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256) returns (uint256[] memory)"}},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6157:18:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6129:46:23"},{"expression":{"baseExpression":{"id":8062,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8056,"src":"6188:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8064,"indexExpression":{"hexValue":"30","id":8063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6197:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6188:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8051,"id":8065,"nodeType":"Return","src":"6181:18:23"}]},"id":8067,"implemented":true,"kind":"function","modifiers":[],"name":"_buyPack","nameLocation":"6074:8:23","nodeType":"FunctionDefinition","parameters":{"id":8048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8047,"mutability":"mutable","name":"user","nameLocation":"6091:4:23","nodeType":"VariableDeclaration","scope":8067,"src":"6083:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8046,"name":"address","nodeType":"ElementaryTypeName","src":"6083:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6082:14:23"},"returnParameters":{"id":8051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8067,"src":"6114:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8049,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6113:9:23"},"scope":8630,"src":"6065:139:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8202,"nodeType":"Block","src":"6299:1000:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8077,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6309:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6325:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6317:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8078,"name":"address","nodeType":"ElementaryTypeName","src":"6317:7:23","typeDescriptions":{}}},"id":8081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6309:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8086,"nodeType":"IfStatement","src":"6305:47:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8083,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"6336:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6336:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8085,"nodeType":"RevertStatement","src":"6329:23:23"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8087,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6362:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6379:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6362:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8090,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6384:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":8091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6400:3:23","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"6384:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6362:41:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8097,"nodeType":"IfStatement","src":"6358:76:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8094,"name":"InvalidNumberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"6412:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6412:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8096,"nodeType":"RevertStatement","src":"6405:29:23"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8098,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"6445:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8099,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6462:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:30:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6444:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8102,"name":"TOTALSUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"6480:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6444:47:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8107,"nodeType":"IfStatement","src":"6440:88:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8104,"name":"InsufficientPacksAvailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"6500:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6500:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8106,"nodeType":"RevertStatement","src":"6493:35:23"}},{"assignments":[8112],"declarations":[{"constant":false,"id":8112,"mutability":"mutable","name":"tokenIds","nameLocation":"6551:8:23","nodeType":"VariableDeclaration","scope":8202,"src":"6534:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8110,"name":"uint256","nodeType":"ElementaryTypeName","src":"6534:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8111,"nodeType":"ArrayTypeName","src":"6534:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":8118,"initialValue":{"arguments":[{"id":8116,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6576:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6562:13:23","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":8113,"name":"uint256","nodeType":"ElementaryTypeName","src":"6566:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8114,"nodeType":"ArrayTypeName","src":"6566:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6562:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6534:56:23"},{"assignments":[8120],"declarations":[{"constant":false,"id":8120,"mutability":"mutable","name":"m_packsCounter","nameLocation":"6604:14:23","nodeType":"VariableDeclaration","scope":8202,"src":"6596:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8119,"name":"uint256","nodeType":"ElementaryTypeName","src":"6596:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8122,"initialValue":{"id":8121,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"6621:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6596:39:23"},{"body":{"id":8162,"nodeType":"Block","src":"6678:271:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8129,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6690:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8130,"name":"TOTALSUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"6708:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6690:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8135,"nodeType":"IfStatement","src":"6686:70:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8132,"name":"InsufficientPacksAvailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"6728:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6728:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8134,"nodeType":"RevertStatement","src":"6721:35:23"}},{"expression":{"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8136,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"6764:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8138,"indexExpression":{"id":8137,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6772:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6764:23:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8139,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6790:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6764:30:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8141,"nodeType":"ExpressionStatement","src":"6764:30:23"},{"expression":{"arguments":[{"id":8146,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6827:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":8142,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"6802:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8144,"indexExpression":{"id":8143,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6816:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6802:19:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6822:4:23","memberName":"push","nodeType":"MemberAccess","src":"6802:24:23","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6802:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8148,"nodeType":"ExpressionStatement","src":"6802:40:23"},{"expression":{"id":8153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8149,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"6850:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8151,"indexExpression":{"id":8150,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8124,"src":"6859:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6850:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8152,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6864:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:28:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8154,"nodeType":"ExpressionStatement","src":"6850:28:23"},{"expression":{"id":8156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6886:16:23","subExpression":{"id":8155,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6886:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8157,"nodeType":"ExpressionStatement","src":"6886:16:23"},{"id":8161,"nodeType":"UncheckedBlock","src":"6910:33:23","statements":[{"expression":{"id":8159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6931:3:23","subExpression":{"id":8158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8124,"src":"6931:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8160,"nodeType":"ExpressionStatement","src":"6931:3:23"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8124,"src":"6658:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8127,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6662:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6658:17:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8163,"initializationExpression":{"assignments":[8124],"declarations":[{"constant":false,"id":8124,"mutability":"mutable","name":"i","nameLocation":"6655:1:23","nodeType":"VariableDeclaration","scope":8163,"src":"6647:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6647:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8125,"nodeType":"VariableDeclarationStatement","src":"6647:9:23"},"nodeType":"ForStatement","src":"6642:307:23"},{"expression":{"id":8166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8164,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"6959:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8165,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6976:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6959:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8167,"nodeType":"ExpressionStatement","src":"6959:31:23"},{"assignments":[8169],"declarations":[{"constant":false,"id":8169,"mutability":"mutable","name":"transferPrizeResult","nameLocation":"7002:19:23","nodeType":"VariableDeclaration","scope":8202,"src":"6997:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8168,"name":"bool","nodeType":"ElementaryTypeName","src":"6997:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8174,"initialValue":{"arguments":[{"id":8171,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7047:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8172,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"7053:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8170,"name":"_transferPrizesAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"7024:22:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":8173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7024:43:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6997:70:23"},{"condition":{"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7077:20:23","subExpression":{"id":8175,"name":"transferPrizeResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"7078:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8181,"nodeType":"IfStatement","src":"7073:57:23","trueBody":{"errorCall":{"arguments":[{"id":8178,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7125:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8177,"name":"TransferPrizeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7496,"src":"7106:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7106:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8180,"nodeType":"RevertStatement","src":"7099:31:23"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8182,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"7141:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":8183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7158:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7141:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8198,"nodeType":"Block","src":"7219:50:23","statements":[{"eventCall":{"arguments":[{"id":8194,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7247:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8195,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7253:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":8193,"name":"PacksPurchased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7595,"src":"7232:14:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint256[] memory)"}},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7232:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8197,"nodeType":"EmitStatement","src":"7227:35:23"}]},"id":8199,"nodeType":"IfStatement","src":"7137:132:23","trueBody":{"id":8192,"nodeType":"Block","src":"7161:52:23","statements":[{"eventCall":{"arguments":[{"id":8186,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7188:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8187,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7194:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8189,"indexExpression":{"hexValue":"30","id":8188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7203:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7194:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8185,"name":"PackPurchased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7588,"src":"7174:13:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7174:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8191,"nodeType":"EmitStatement","src":"7169:37:23"}]}},{"expression":{"id":8200,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7286:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8076,"id":8201,"nodeType":"Return","src":"7279:15:23"}]},"id":8203,"implemented":true,"kind":"function","modifiers":[],"name":"_buyPacks","nameLocation":"6217:9:23","nodeType":"FunctionDefinition","parameters":{"id":8072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8069,"mutability":"mutable","name":"user","nameLocation":"6235:4:23","nodeType":"VariableDeclaration","scope":8203,"src":"6227:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8068,"name":"address","nodeType":"ElementaryTypeName","src":"6227:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8071,"mutability":"mutable","name":"numberOfPacks","nameLocation":"6249:13:23","nodeType":"VariableDeclaration","scope":8203,"src":"6241:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6241:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6226:37:23"},"returnParameters":{"id":8076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8203,"src":"6281:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8073,"name":"uint256","nodeType":"ElementaryTypeName","src":"6281:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8074,"nodeType":"ArrayTypeName","src":"6281:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6280:18:23"},"scope":8630,"src":"6208:1091:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8314,"nodeType":"Block","src":"7395:993:23","statements":[{"assignments":[8213],"declarations":[{"constant":false,"id":8213,"mutability":"mutable","name":"prizesAmount","nameLocation":"7409:12:23","nodeType":"VariableDeclaration","scope":8314,"src":"7401:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8212,"name":"uint256","nodeType":"ElementaryTypeName","src":"7401:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8217,"initialValue":{"arguments":[{"id":8215,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"7449:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8214,"name":"getPrizeAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"7424:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":8216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7424:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7401:62:23"},{"assignments":[8219],"declarations":[{"constant":false,"id":8219,"mutability":"mutable","name":"prizeNoFAccount","nameLocation":"7477:15:23","nodeType":"VariableDeclaration","scope":8314,"src":"7469:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8218,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8223,"initialValue":{"arguments":[{"id":8221,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"7530:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8220,"name":"getPrizeNoFAccountAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7916,"src":"7495:34:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7495:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7469:75:23"},{"expression":{"arguments":[{"id":8227,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"7586:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8224,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"7550:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":8226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7569:16:23","memberName":"setPrizesBalance","nodeType":"MemberAccess","referencedDeclaration":7509,"src":"7550:35:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":8228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8229,"nodeType":"ExpressionStatement","src":"7550:49:23"},{"condition":{"id":8230,"name":"s_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"7610:13:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8311,"nodeType":"IfStatement","src":"7606:761:23","trueBody":{"id":8310,"nodeType":"Block","src":"7625:742:23","statements":[{"assignments":[8233],"declarations":[{"constant":false,"id":8233,"mutability":"mutable","name":"erc20Token","nameLocation":"7640:10:23","nodeType":"VariableDeclaration","scope":8310,"src":"7633:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"},"typeName":{"id":8232,"nodeType":"UserDefinedTypeName","pathNode":{"id":8231,"name":"IERC20","nameLocations":["7633:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":394,"src":"7633:6:23"},"referencedDeclaration":394,"src":"7633:6:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"visibility":"internal"}],"id":8237,"initialValue":{"arguments":[{"id":8235,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7547,"src":"7660:9:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8234,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"7653:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":8236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7653:17:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"7633:37:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8240,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"7704:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8243,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7718:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaPacksV3_$8630","typeString":"contract NofGammaPacksV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaPacksV3_$8630","typeString":"contract NofGammaPacksV3"}],"id":8242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7710:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8241,"name":"address","nodeType":"ElementaryTypeName","src":"7710:7:23","typeDescriptions":{}}},"id":8244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7710:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8238,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7683:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7694:9:23","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":371,"src":"7683:20:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7683:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8246,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"7728:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8247,"name":"prizeNoFAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"7743:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7728:30:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7727:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7683:76:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8254,"nodeType":"IfStatement","src":"7679:112:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8251,"name":"InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7498,"src":"7768:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7768:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8253,"nodeType":"RevertStatement","src":"7761:30:23"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8257,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"7824:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8255,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7803:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7814:9:23","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"7803:20:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":8258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7803:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8259,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"7832:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7803:41:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8263,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"7869:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8261,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7848:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7859:9:23","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"7848:20:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":8264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7848:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8265,"name":"prizeNoFAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"7877:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:44:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7803:89:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8271,"nodeType":"IfStatement","src":"7799:131:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8268,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7500,"src":"7909:19:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7909:21:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8270,"nodeType":"RevertStatement","src":"7902:28:23"}},{"assignments":[8273],"declarations":[{"constant":false,"id":8273,"mutability":"mutable","name":"successTx1","nameLocation":"7992:10:23","nodeType":"VariableDeclaration","scope":8310,"src":"7987:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8272,"name":"bool","nodeType":"ElementaryTypeName","src":"7987:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8283,"initialValue":{"arguments":[{"id":8276,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"8029:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8279,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"8043:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}],"id":8278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8035:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8277,"name":"address","nodeType":"ElementaryTypeName","src":"8035:7:23","typeDescriptions":{}}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8035:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8281,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"8064:12:23","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":8274,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"8005:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8016:12:23","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":393,"src":"8005:23:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":8282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8005:72:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"7987:90:23"},{"condition":{"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8089:11:23","subExpression":{"id":8284,"name":"successTx1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"8090:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8293,"nodeType":"IfStatement","src":"8085:71:23","trueBody":{"errorCall":{"arguments":[{"arguments":[{"id":8289,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"8136:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}],"id":8288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8128:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8287,"name":"address","nodeType":"ElementaryTypeName","src":"8128:7:23","typeDescriptions":{}}},"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8128:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8286,"name":"TransferPrizeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7496,"src":"8109:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8109:47:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8292,"nodeType":"RevertStatement","src":"8102:54:23"}},{"assignments":[8295],"declarations":[{"constant":false,"id":8295,"mutability":"mutable","name":"successTx2","nameLocation":"8213:10:23","nodeType":"VariableDeclaration","scope":8310,"src":"8208:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8294,"name":"bool","nodeType":"ElementaryTypeName","src":"8208:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8302,"initialValue":{"arguments":[{"id":8298,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"8250:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8299,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"8256:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8300,"name":"prizeNoFAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"8275:15:23","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":8296,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"8226:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8237:12:23","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":393,"src":"8226:23:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":8301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8226:65:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8208:83:23"},{"condition":{"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8303:11:23","subExpression":{"id":8303,"name":"successTx2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8295,"src":"8304:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8309,"nodeType":"IfStatement","src":"8299:61:23","trueBody":{"errorCall":{"arguments":[{"id":8306,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"8342:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8305,"name":"TransferPrizeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7496,"src":"8323:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8323:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8308,"nodeType":"RevertStatement","src":"8316:44:23"}}]}},{"expression":{"hexValue":"74727565","id":8312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8379:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8211,"id":8313,"nodeType":"Return","src":"8372:11:23"}]},"id":8315,"implemented":true,"kind":"function","modifiers":[],"name":"_transferPrizesAmounts","nameLocation":"7312:22:23","nodeType":"FunctionDefinition","parameters":{"id":8208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8205,"mutability":"mutable","name":"user","nameLocation":"7343:4:23","nodeType":"VariableDeclaration","scope":8315,"src":"7335:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8204,"name":"address","nodeType":"ElementaryTypeName","src":"7335:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8207,"mutability":"mutable","name":"numberOfPacks","nameLocation":"7357:13:23","nodeType":"VariableDeclaration","scope":8315,"src":"7349:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8206,"name":"uint256","nodeType":"ElementaryTypeName","src":"7349:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7334:37:23"},"returnParameters":{"id":8211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8315,"src":"7389:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8209,"name":"bool","nodeType":"ElementaryTypeName","src":"7389:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7388:6:23"},"scope":8630,"src":"7303:1085:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8373,"nodeType":"Block","src":"8456:318:23","statements":[{"assignments":[8323],"declarations":[{"constant":false,"id":8323,"mutability":"mutable","name":"packsByUserLength","nameLocation":"8470:17:23","nodeType":"VariableDeclaration","scope":8373,"src":"8462:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8322,"name":"uint256","nodeType":"ElementaryTypeName","src":"8462:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8328,"initialValue":{"expression":{"baseExpression":{"id":8324,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8490:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8326,"indexExpression":{"id":8325,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8504:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8490:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8511:6:23","memberName":"length","nodeType":"MemberAccess","src":"8490:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8462:55:23"},{"body":{"id":8371,"nodeType":"Block","src":"8567:203:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":8338,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8579:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8340,"indexExpression":{"id":8339,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8593:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8579:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8342,"indexExpression":{"id":8341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8600:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8579:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8343,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8317,"src":"8606:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8579:34:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8370,"nodeType":"IfStatement","src":"8575:189:23","trueBody":{"id":8369,"nodeType":"Block","src":"8615:149:23","statements":[{"expression":{"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":8345,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8625:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8348,"indexExpression":{"id":8346,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8639:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8625:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8349,"indexExpression":{"id":8347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8646:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8625:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":8350,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8651:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8352,"indexExpression":{"id":8351,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8665:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8651:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8359,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":8353,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8672:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8355,"indexExpression":{"id":8354,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8686:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8672:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8693:6:23","memberName":"length","nodeType":"MemberAccess","src":"8672:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8702:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8672:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8651:53:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8625:79:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8361,"nodeType":"ExpressionStatement","src":"8625:79:23"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":8362,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8714:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8364,"indexExpression":{"id":8363,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8728:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8714:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8735:3:23","memberName":"pop","nodeType":"MemberAccess","src":"8714:24:23","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer)"}},"id":8366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8714:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8367,"nodeType":"ExpressionStatement","src":"8714:26:23"},{"id":8368,"nodeType":"Break","src":"8750:5:23"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8539:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8333,"name":"packsByUserLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8323,"src":"8543:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8539:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8372,"initializationExpression":{"assignments":[8330],"declarations":[{"constant":false,"id":8330,"mutability":"mutable","name":"i","nameLocation":"8536:1:23","nodeType":"VariableDeclaration","scope":8372,"src":"8528:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8329,"name":"uint256","nodeType":"ElementaryTypeName","src":"8528:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8331,"nodeType":"VariableDeclarationStatement","src":"8528:9:23"},"loopExpression":{"expression":{"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8562:3:23","subExpression":{"id":8335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8562:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8337,"nodeType":"ExpressionStatement","src":"8562:3:23"},"nodeType":"ForStatement","src":"8523:247:23"}]},"id":8374,"implemented":true,"kind":"function","modifiers":[],"name":"deleteTokenId","nameLocation":"8401:13:23","nodeType":"FunctionDefinition","parameters":{"id":8320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8317,"mutability":"mutable","name":"tokenId","nameLocation":"8423:7:23","nodeType":"VariableDeclaration","scope":8374,"src":"8415:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8316,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8319,"mutability":"mutable","name":"owner","nameLocation":"8440:5:23","nodeType":"VariableDeclaration","scope":8374,"src":"8432:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8318,"name":"address","nodeType":"ElementaryTypeName","src":"8432:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8414:32:23"},"returnParameters":{"id":8321,"nodeType":"ParameterList","parameters":[],"src":"8456:0:23"},"scope":8630,"src":"8392:382:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8386,"nodeType":"Block","src":"8836:37:23","statements":[{"expression":{"arguments":[{"id":8382,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"8856:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8383,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"8860:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8381,"name":"_transferPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"8842:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8842:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8385,"nodeType":"ExpressionStatement","src":"8842:26:23"}]},"functionSelector":"d611713e","id":8387,"implemented":true,"kind":"function","modifiers":[],"name":"transferPack","nameLocation":"8787:12:23","nodeType":"FunctionDefinition","parameters":{"id":8379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8376,"mutability":"mutable","name":"to","nameLocation":"8808:2:23","nodeType":"VariableDeclaration","scope":8387,"src":"8800:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8375,"name":"address","nodeType":"ElementaryTypeName","src":"8800:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8378,"mutability":"mutable","name":"tokenId","nameLocation":"8820:7:23","nodeType":"VariableDeclaration","scope":8387,"src":"8812:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8377,"name":"uint256","nodeType":"ElementaryTypeName","src":"8812:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8799:29:23"},"returnParameters":{"id":8380,"nodeType":"ParameterList","parameters":[],"src":"8836:0:23"},"scope":8630,"src":"8778:95:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8426,"nodeType":"Block","src":"8946:186:23","statements":[{"body":{"id":8417,"nodeType":"Block","src":"8998:78:23","statements":[{"assignments":[8407],"declarations":[{"constant":false,"id":8407,"mutability":"mutable","name":"tokenId","nameLocation":"9014:7:23","nodeType":"VariableDeclaration","scope":8417,"src":"9006:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8406,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8411,"initialValue":{"baseExpression":{"id":8408,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"9024:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8410,"indexExpression":{"id":8409,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"9033:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9024:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:29:23"},{"expression":{"arguments":[{"id":8413,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"9057:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8414,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"9061:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8412,"name":"_transferPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"9043:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8416,"nodeType":"ExpressionStatement","src":"9043:26:23"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8399,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"8972:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8400,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"8976:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8985:6:23","memberName":"length","nodeType":"MemberAccess","src":"8976:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8972:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8418,"initializationExpression":{"assignments":[8396],"declarations":[{"constant":false,"id":8396,"mutability":"mutable","name":"i","nameLocation":"8965:1:23","nodeType":"VariableDeclaration","scope":8418,"src":"8957:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8395,"name":"uint256","nodeType":"ElementaryTypeName","src":"8957:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8398,"initialValue":{"hexValue":"30","id":8397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8957:13:23"},"loopExpression":{"expression":{"id":8404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8993:3:23","subExpression":{"id":8403,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"8993:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8405,"nodeType":"ExpressionStatement","src":"8993:3:23"},"nodeType":"ForStatement","src":"8952:124:23"},{"eventCall":{"arguments":[{"expression":{"id":8420,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9102:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9106:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9102:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8422,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"9114:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8423,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"9118:8:23","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"}],"id":8419,"name":"PacksTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"9086:15:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory)"}},"id":8424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9086:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8425,"nodeType":"EmitStatement","src":"9081:46:23"}]},"functionSelector":"ab4bdbc8","id":8427,"implemented":true,"kind":"function","modifiers":[],"name":"transferPacks","nameLocation":"8886:13:23","nodeType":"FunctionDefinition","parameters":{"id":8393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8389,"mutability":"mutable","name":"to","nameLocation":"8908:2:23","nodeType":"VariableDeclaration","scope":8427,"src":"8900:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8388,"name":"address","nodeType":"ElementaryTypeName","src":"8900:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8392,"mutability":"mutable","name":"tokenIds","nameLocation":"8929:8:23","nodeType":"VariableDeclaration","scope":8427,"src":"8912:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8390,"name":"uint256","nodeType":"ElementaryTypeName","src":"8912:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8391,"nodeType":"ArrayTypeName","src":"8912:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"8899:39:23"},"returnParameters":{"id":8394,"nodeType":"ParameterList","parameters":[],"src":"8946:0:23"},"scope":8630,"src":"8877:255:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8480,"nodeType":"Block","src":"9196:272:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8434,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9206:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9220:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9212:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8435,"name":"address","nodeType":"ElementaryTypeName","src":"9212:7:23","typeDescriptions":{}}},"id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9212:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9206:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8443,"nodeType":"IfStatement","src":"9202:45:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8440,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"9231:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9231:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8442,"nodeType":"RevertStatement","src":"9224:23:23"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8444,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"9257:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8446,"indexExpression":{"id":8445,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9265:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9257:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9277:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9281:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9277:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9257:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8453,"nodeType":"IfStatement","src":"9253:56:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8450,"name":"NotYourPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"9296:11:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9296:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8452,"nodeType":"RevertStatement","src":"9289:20:23"}},{"expression":{"id":8458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8454,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"9315:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8456,"indexExpression":{"id":8455,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9323:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9315:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8457,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9334:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9315:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8459,"nodeType":"ExpressionStatement","src":"9315:21:23"},{"expression":{"arguments":[{"id":8461,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9356:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8462,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9365:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9369:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9365:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8460,"name":"deleteTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"9342:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9342:34:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8465,"nodeType":"ExpressionStatement","src":"9342:34:23"},{"expression":{"arguments":[{"id":8470,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9405:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":8466,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"9382:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8468,"indexExpression":{"id":8467,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9396:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9382:17:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9400:4:23","memberName":"push","nodeType":"MemberAccess","src":"9382:22:23","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9382:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8472,"nodeType":"ExpressionStatement","src":"9382:31:23"},{"eventCall":{"arguments":[{"expression":{"id":8474,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9439:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9443:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9439:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8476,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9451:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8477,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9455:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8473,"name":"PackTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7603,"src":"9424:14:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9424:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8479,"nodeType":"EmitStatement","src":"9419:44:23"}]},"id":8481,"implemented":true,"kind":"function","modifiers":[],"name":"_transferPack","nameLocation":"9145:13:23","nodeType":"FunctionDefinition","parameters":{"id":8432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8429,"mutability":"mutable","name":"to","nameLocation":"9167:2:23","nodeType":"VariableDeclaration","scope":8481,"src":"9159:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8428,"name":"address","nodeType":"ElementaryTypeName","src":"9159:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8431,"mutability":"mutable","name":"tokenId","nameLocation":"9179:7:23","nodeType":"VariableDeclaration","scope":8481,"src":"9171:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8430,"name":"uint256","nodeType":"ElementaryTypeName","src":"9171:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9158:29:23"},"returnParameters":{"id":8433,"nodeType":"ParameterList","parameters":[],"src":"9196:0:23"},"scope":8630,"src":"9136:332:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8495,"nodeType":"Block","src":"9552:36:23","statements":[{"expression":{"arguments":[{"id":8491,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8483,"src":"9568:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8492,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"9577:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8490,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"9558:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8494,"nodeType":"ExpressionStatement","src":"9558:25:23"}]},"functionSelector":"80f2540b","id":8496,"implemented":true,"kind":"function","modifiers":[{"id":8488,"kind":"modifierInvocation","modifierName":{"id":8487,"name":"onlyGammaCardsContract","nameLocations":["9529:22:23"],"nodeType":"IdentifierPath","referencedDeclaration":7637,"src":"9529:22:23"},"nodeType":"ModifierInvocation","src":"9529:22:23"}],"name":"openPack","nameLocation":"9481:8:23","nodeType":"FunctionDefinition","parameters":{"id":8486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8483,"mutability":"mutable","name":"tokenId","nameLocation":"9498:7:23","nodeType":"VariableDeclaration","scope":8496,"src":"9490:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8482,"name":"uint256","nodeType":"ElementaryTypeName","src":"9490:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8485,"mutability":"mutable","name":"owner","nameLocation":"9515:5:23","nodeType":"VariableDeclaration","scope":8496,"src":"9507:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8484,"name":"address","nodeType":"ElementaryTypeName","src":"9507:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9489:32:23"},"returnParameters":{"id":8489,"nodeType":"ParameterList","parameters":[],"src":"9552:0:23"},"scope":8630,"src":"9472:116:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8530,"nodeType":"Block","src":"9683:133:23","statements":[{"body":{"id":8528,"nodeType":"Block","src":"9735:77:23","statements":[{"assignments":[8518],"declarations":[{"constant":false,"id":8518,"mutability":"mutable","name":"tokenId","nameLocation":"9751:7:23","nodeType":"VariableDeclaration","scope":8528,"src":"9743:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8517,"name":"uint256","nodeType":"ElementaryTypeName","src":"9743:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8522,"initialValue":{"baseExpression":{"id":8519,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8499,"src":"9761:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8521,"indexExpression":{"id":8520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"9770:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9761:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9743:29:23"},{"expression":{"arguments":[{"id":8524,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8518,"src":"9790:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8525,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8501,"src":"9799:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8523,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"9780:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8527,"nodeType":"ExpressionStatement","src":"9780:25:23"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8510,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"9709:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8511,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8499,"src":"9713:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9722:6:23","memberName":"length","nodeType":"MemberAccess","src":"9713:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9709:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8529,"initializationExpression":{"assignments":[8507],"declarations":[{"constant":false,"id":8507,"mutability":"mutable","name":"i","nameLocation":"9702:1:23","nodeType":"VariableDeclaration","scope":8529,"src":"9694:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8506,"name":"uint256","nodeType":"ElementaryTypeName","src":"9694:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8509,"initialValue":{"hexValue":"30","id":8508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9706:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9694:13:23"},"loopExpression":{"expression":{"id":8515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9730:3:23","subExpression":{"id":8514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"9730:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8516,"nodeType":"ExpressionStatement","src":"9730:3:23"},"nodeType":"ForStatement","src":"9689:123:23"}]},"functionSelector":"97f8b3d3","id":8531,"implemented":true,"kind":"function","modifiers":[{"id":8504,"kind":"modifierInvocation","modifierName":{"id":8503,"name":"onlyGammaCardsContract","nameLocations":["9660:22:23"],"nodeType":"IdentifierPath","referencedDeclaration":7637,"src":"9660:22:23"},"nodeType":"ModifierInvocation","src":"9660:22:23"}],"name":"openPacks","nameLocation":"9601:9:23","nodeType":"FunctionDefinition","parameters":{"id":8502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8499,"mutability":"mutable","name":"tokenIds","nameLocation":"9628:8:23","nodeType":"VariableDeclaration","scope":8531,"src":"9611:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8497,"name":"uint256","nodeType":"ElementaryTypeName","src":"9611:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8498,"nodeType":"ArrayTypeName","src":"9611:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8501,"mutability":"mutable","name":"owner","nameLocation":"9646:5:23","nodeType":"VariableDeclaration","scope":8531,"src":"9638:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8500,"name":"address","nodeType":"ElementaryTypeName","src":"9638:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9610:42:23"},"returnParameters":{"id":8505,"nodeType":"ParameterList","parameters":[],"src":"9683:0:23"},"scope":8630,"src":"9592:224:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8553,"nodeType":"Block","src":"9879:106:23","statements":[{"expression":{"arguments":[{"id":8539,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"9899:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8540,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8535,"src":"9908:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8538,"name":"deleteTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"9885:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9885:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8542,"nodeType":"ExpressionStatement","src":"9885:29:23"},{"expression":{"id":8546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9920:23:23","subExpression":{"baseExpression":{"id":8543,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"9927:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8545,"indexExpression":{"id":8544,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"9935:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9927:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8547,"nodeType":"ExpressionStatement","src":"9920:23:23"},{"eventCall":{"arguments":[{"id":8549,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8535,"src":"9965:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8550,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"9972:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8548,"name":"PackOpened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"9954:10:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9954:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8552,"nodeType":"EmitStatement","src":"9949:31:23"}]},"id":8554,"implemented":true,"kind":"function","modifiers":[],"name":"_openPack","nameLocation":"9829:9:23","nodeType":"FunctionDefinition","parameters":{"id":8536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8533,"mutability":"mutable","name":"tokenId","nameLocation":"9847:7:23","nodeType":"VariableDeclaration","scope":8554,"src":"9839:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8532,"name":"uint256","nodeType":"ElementaryTypeName","src":"9839:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8535,"mutability":"mutable","name":"owner","nameLocation":"9864:5:23","nodeType":"VariableDeclaration","scope":8554,"src":"9856:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8534,"name":"address","nodeType":"ElementaryTypeName","src":"9856:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9838:32:23"},"returnParameters":{"id":8537,"nodeType":"ParameterList","parameters":[],"src":"9879:0:23"},"scope":8630,"src":"9820:165:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8578,"nodeType":"Block","src":"10017:472:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8559,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"10035:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}],"id":8558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10027:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8557,"name":"address","nodeType":"ElementaryTypeName","src":"10027:7:23","typeDescriptions":{}}},"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10027:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10068:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10060:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8561,"name":"address","nodeType":"ElementaryTypeName","src":"10060:7:23","typeDescriptions":{}}},"id":8564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10060:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10027:43:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8569,"nodeType":"IfStatement","src":"10023:79:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8566,"name":"ContractAddressNotSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7504,"src":"10079:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"RevertStatement","src":"10072:30:23"}},{"condition":{"id":8570,"name":"s_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"10317:13:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8572,"nodeType":"IfStatement","src":"10313:74:23","trueBody":{"id":8571,"nodeType":"Block","src":"10332:55:23","statements":[]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8573,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"10445:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"id":8575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10466:16:23","memberName":"deleteAllTickets","nodeType":"MemberAccess","referencedDeclaration":7529,"src":"10445:37:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":8576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10445:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8577,"nodeType":"ExpressionStatement","src":"10445:39:23"}]},"id":8579,"implemented":true,"kind":"function","modifiers":[],"name":"_lottery","nameLocation":"9998:8:23","nodeType":"FunctionDefinition","parameters":{"id":8555,"nodeType":"ParameterList","parameters":[],"src":"10006:2:23"},"returnParameters":{"id":8556,"nodeType":"ParameterList","parameters":[],"src":"10017:0:23"},"scope":8630,"src":"9989:500:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8593,"nodeType":"Block","src":"10625:36:23","statements":[{"expression":{"arguments":[{"id":8589,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"10641:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8590,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"10650:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8588,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"10631:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8592,"nodeType":"ExpressionStatement","src":"10631:25:23"}]},"functionSelector":"39e8d3ec","id":8594,"implemented":true,"kind":"function","modifiers":[{"id":8586,"kind":"modifierInvocation","modifierName":{"id":8585,"name":"onlyOwners","nameLocations":["10614:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"10614:10:23"},"nodeType":"ModifierInvocation","src":"10614:10:23"}],"name":"testOpenPack","nameLocation":"10562:12:23","nodeType":"FunctionDefinition","parameters":{"id":8584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8581,"mutability":"mutable","name":"tokenId","nameLocation":"10583:7:23","nodeType":"VariableDeclaration","scope":8594,"src":"10575:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8580,"name":"uint256","nodeType":"ElementaryTypeName","src":"10575:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8583,"mutability":"mutable","name":"owner","nameLocation":"10600:5:23","nodeType":"VariableDeclaration","scope":8594,"src":"10592:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8582,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10574:32:23"},"returnParameters":{"id":8587,"nodeType":"ParameterList","parameters":[],"src":"10625:0:23"},"scope":8630,"src":"10553:108:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8628,"nodeType":"Block","src":"10748:133:23","statements":[{"body":{"id":8626,"nodeType":"Block","src":"10800:77:23","statements":[{"assignments":[8616],"declarations":[{"constant":false,"id":8616,"mutability":"mutable","name":"tokenId","nameLocation":"10816:7:23","nodeType":"VariableDeclaration","scope":8626,"src":"10808:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8615,"name":"uint256","nodeType":"ElementaryTypeName","src":"10808:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8620,"initialValue":{"baseExpression":{"id":8617,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"10826:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8619,"indexExpression":{"id":8618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"10835:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10826:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10808:29:23"},{"expression":{"arguments":[{"id":8622,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8616,"src":"10855:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8623,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8599,"src":"10864:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8621,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"10845:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10845:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8625,"nodeType":"ExpressionStatement","src":"10845:25:23"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"10774:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8609,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"10778:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10787:6:23","memberName":"length","nodeType":"MemberAccess","src":"10778:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10774:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8627,"initializationExpression":{"assignments":[8605],"declarations":[{"constant":false,"id":8605,"mutability":"mutable","name":"i","nameLocation":"10767:1:23","nodeType":"VariableDeclaration","scope":8627,"src":"10759:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8604,"name":"uint256","nodeType":"ElementaryTypeName","src":"10759:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8607,"initialValue":{"hexValue":"30","id":8606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10771:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10759:13:23"},"loopExpression":{"expression":{"id":8613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10795:3:23","subExpression":{"id":8612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"10795:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8614,"nodeType":"ExpressionStatement","src":"10795:3:23"},"nodeType":"ForStatement","src":"10754:123:23"}]},"functionSelector":"0c3e5c00","id":8629,"implemented":true,"kind":"function","modifiers":[{"id":8602,"kind":"modifierInvocation","modifierName":{"id":8601,"name":"onlyOwners","nameLocations":["10737:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"10737:10:23"},"nodeType":"ModifierInvocation","src":"10737:10:23"}],"name":"testOpenPacks","nameLocation":"10674:13:23","nodeType":"FunctionDefinition","parameters":{"id":8600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8597,"mutability":"mutable","name":"tokenIds","nameLocation":"10705:8:23","nodeType":"VariableDeclaration","scope":8629,"src":"10688:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8595,"name":"uint256","nodeType":"ElementaryTypeName","src":"10688:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8596,"nodeType":"ArrayTypeName","src":"10688:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8599,"mutability":"mutable","name":"owner","nameLocation":"10723:5:23","nodeType":"VariableDeclaration","scope":8629,"src":"10715:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8598,"name":"address","nodeType":"ElementaryTypeName","src":"10715:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10687:42:23"},"returnParameters":{"id":8603,"nodeType":"ParameterList","parameters":[],"src":"10748:0:23"},"scope":8630,"src":"10665:216:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8631,"src":"947:9996:23","usedErrors":[13,18,7484,7486,7488,7490,7492,7496,7498,7500,7502],"usedEvents":[24,7574,7578,7582,7588,7595,7603,7612,7618,7622]}],"src":"32:10912:23"},"id":23},"contracts/gamma/libs/LibControlMgmt.sol":{"ast":{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","exportedSymbols":{"LibControlMgmt":[8832]},"id":8833,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8632,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:24"},{"abstract":false,"baseContracts":[],"canonicalName":"LibControlMgmt","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8832,"linearizedBaseContracts":[8832],"name":"LibControlMgmt","nameLocation":"66:14:24","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LibControlMgmt.Data","id":8641,"members":[{"constant":false,"id":8636,"mutability":"mutable","name":"owners","nameLocation":"134:6:24","nodeType":"VariableDeclaration","scope":8641,"src":"109:31:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8635,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8633,"name":"address","nodeType":"ElementaryTypeName","src":"117:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"109:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8634,"name":"bool","nodeType":"ElementaryTypeName","src":"128:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":8640,"mutability":"mutable","name":"signers","nameLocation":"175:7:24","nodeType":"VariableDeclaration","scope":8641,"src":"150:32:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8639,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8637,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"150:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8638,"name":"bool","nodeType":"ElementaryTypeName","src":"169:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"}],"name":"Data","nameLocation":"94:4:24","nodeType":"StructDefinition","scope":8832,"src":"87:102:24","visibility":"public"},{"anonymous":false,"eventSelector":"6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d","id":8645,"name":"NewOwnerAdded","nameLocation":"201:13:24","nodeType":"EventDefinition","parameters":{"id":8644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8643,"indexed":false,"mutability":"mutable","name":"newOwner","nameLocation":"223:8:24","nodeType":"VariableDeclaration","scope":8645,"src":"215:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8642,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"214:18:24"},"src":"195:38:24"},{"anonymous":false,"eventSelector":"58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da","id":8649,"name":"OwnerRemoved","nameLocation":"244:12:24","nodeType":"EventDefinition","parameters":{"id":8648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8647,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"265:5:24","nodeType":"VariableDeclaration","scope":8649,"src":"257:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8646,"name":"address","nodeType":"ElementaryTypeName","src":"257:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"256:15:24"},"src":"238:34:24"},{"anonymous":false,"eventSelector":"72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa3","id":8653,"name":"NewSignerAdded","nameLocation":"283:14:24","nodeType":"EventDefinition","parameters":{"id":8652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8651,"indexed":false,"mutability":"mutable","name":"newSigner","nameLocation":"306:9:24","nodeType":"VariableDeclaration","scope":8653,"src":"298:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8650,"name":"address","nodeType":"ElementaryTypeName","src":"298:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"297:19:24"},"src":"277:40:24"},{"anonymous":false,"eventSelector":"3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b","id":8657,"name":"SignerRemoved","nameLocation":"328:13:24","nodeType":"EventDefinition","parameters":{"id":8656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8655,"indexed":false,"mutability":"mutable","name":"signer","nameLocation":"350:6:24","nodeType":"VariableDeclaration","scope":8657,"src":"342:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8654,"name":"address","nodeType":"ElementaryTypeName","src":"342:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"341:16:24"},"src":"322:36:24"},{"body":{"id":8696,"nodeType":"Block","src":"428:217:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8666,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"446:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"466:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"458:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8667,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:24","typeDescriptions":{}}},"id":8670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"446:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"470:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"438:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"438:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8674,"nodeType":"ExpressionStatement","src":"438:51:24"},{"expression":{"arguments":[{"id":8680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"507:22:24","subExpression":{"baseExpression":{"expression":{"id":8676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8660,"src":"508:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"513:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"508:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8679,"indexExpression":{"id":8678,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"520:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"508:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4164647265737320697320616c726561647920616e206f776e65722e","id":8681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"531:30:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f","typeString":"literal_string \"Address is already an owner.\""},"value":"Address is already an owner."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f","typeString":"literal_string \"Address is already an owner.\""}],"id":8675,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"499:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"499:63:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8683,"nodeType":"ExpressionStatement","src":"499:63:24"},{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8684,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8660,"src":"572:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"577:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"572:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8688,"indexExpression":{"id":8686,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"584:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"572:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"596:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"572:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8691,"nodeType":"ExpressionStatement","src":"572:28:24"},{"eventCall":{"arguments":[{"id":8693,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"629:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8692,"name":"NewOwnerAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"615:13:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"615:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8695,"nodeType":"EmitStatement","src":"610:28:24"}]},"functionSelector":"b4d78ae4","id":8697,"implemented":true,"kind":"function","modifiers":[],"name":"addOwner","nameLocation":"373:8:24","nodeType":"FunctionDefinition","parameters":{"id":8663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8660,"mutability":"mutable","name":"self","nameLocation":"395:4:24","nodeType":"VariableDeclaration","scope":8697,"src":"382:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8659,"nodeType":"UserDefinedTypeName","pathNode":{"id":8658,"name":"Data","nameLocations":["382:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"382:4:24"},"referencedDeclaration":8641,"src":"382:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8662,"mutability":"mutable","name":"newOwner","nameLocation":"409:8:24","nodeType":"VariableDeclaration","scope":8697,"src":"401:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8661,"name":"address","nodeType":"ElementaryTypeName","src":"401:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"381:37:24"},"returnParameters":{"id":8664,"nodeType":"ParameterList","parameters":[],"src":"428:0:24"},"scope":8832,"src":"364:281:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8743,"nodeType":"Block","src":"723:321:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8706,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"741:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"766:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"758:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8707,"name":"address","nodeType":"ElementaryTypeName","src":"758:7:24","typeDescriptions":{}}},"id":8710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"758:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"741:27:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"770:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8705,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"733:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:56:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8714,"nodeType":"ExpressionStatement","src":"733:56:24"},{"expression":{"arguments":[{"baseExpression":{"expression":{"id":8716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"807:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"812:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"807:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8719,"indexExpression":{"id":8718,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"819:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"807:26:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206973206e6f7420616e206f776e65722e","id":8720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"835:26:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502","typeString":"literal_string \"Address is not an owner.\""},"value":"Address is not an owner."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502","typeString":"literal_string \"Address is not an owner.\""}],"id":8715,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"799:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:63:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8722,"nodeType":"ExpressionStatement","src":"799:63:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8724,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"880:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"897:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"901:6:24","memberName":"sender","nodeType":"MemberAccess","src":"897:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"880:27:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e206f776e65722e","id":8728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"909:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75","typeString":"literal_string \"You cannot remove yourself as an owner.\""},"value":"You cannot remove yourself as an owner."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75","typeString":"literal_string \"You cannot remove yourself as an owner.\""}],"id":8723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"872:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:79:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8730,"nodeType":"ExpressionStatement","src":"872:79:24"},{"expression":{"id":8737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8731,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"961:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"966:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"961:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8735,"indexExpression":{"id":8733,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"973:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"961:26:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"990:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"961:34:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8738,"nodeType":"ExpressionStatement","src":"961:34:24"},{"eventCall":{"arguments":[{"id":8740,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"1023:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8739,"name":"OwnerRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8649,"src":"1010:12:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8742,"nodeType":"EmitStatement","src":"1005:32:24"}]},"functionSelector":"b764b1a4","id":8744,"implemented":true,"kind":"function","modifiers":[],"name":"removeOwner","nameLocation":"660:11:24","nodeType":"FunctionDefinition","parameters":{"id":8703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8700,"mutability":"mutable","name":"self","nameLocation":"685:4:24","nodeType":"VariableDeclaration","scope":8744,"src":"672:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8699,"nodeType":"UserDefinedTypeName","pathNode":{"id":8698,"name":"Data","nameLocations":["672:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"672:4:24"},"referencedDeclaration":8641,"src":"672:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8702,"mutability":"mutable","name":"ownerToRemove","nameLocation":"699:13:24","nodeType":"VariableDeclaration","scope":8744,"src":"691:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8701,"name":"address","nodeType":"ElementaryTypeName","src":"691:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:42:24"},"returnParameters":{"id":8704,"nodeType":"ParameterList","parameters":[],"src":"723:0:24"},"scope":8832,"src":"651:393:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8783,"nodeType":"Block","src":"1116:224:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8753,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1134:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1155:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8754,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:24","typeDescriptions":{}}},"id":8757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1134:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1159:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1126:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1126:52:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8761,"nodeType":"ExpressionStatement","src":"1126:52:24"},{"expression":{"arguments":[{"id":8767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1196:24:24","subExpression":{"baseExpression":{"expression":{"id":8763,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8747,"src":"1197:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1202:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1197:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8766,"indexExpression":{"id":8765,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1210:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1197:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4164647265737320697320616c72656164792061207369676e65722e","id":8768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1222:30:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9","typeString":"literal_string \"Address is already a signer.\""},"value":"Address is already a signer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9","typeString":"literal_string \"Address is already a signer.\""}],"id":8762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1188:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8770,"nodeType":"ExpressionStatement","src":"1188:65:24"},{"expression":{"id":8777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8771,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8747,"src":"1263:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1268:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1263:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8775,"indexExpression":{"id":8773,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1276:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1263:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1289:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1263:30:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8778,"nodeType":"ExpressionStatement","src":"1263:30:24"},{"eventCall":{"arguments":[{"id":8780,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1323:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8779,"name":"NewSignerAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8653,"src":"1308:14:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1308:25:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8782,"nodeType":"EmitStatement","src":"1303:30:24"}]},"functionSelector":"773b6d12","id":8784,"implemented":true,"kind":"function","modifiers":[],"name":"addSigner","nameLocation":"1059:9:24","nodeType":"FunctionDefinition","parameters":{"id":8750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8747,"mutability":"mutable","name":"self","nameLocation":"1082:4:24","nodeType":"VariableDeclaration","scope":8784,"src":"1069:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8746,"nodeType":"UserDefinedTypeName","pathNode":{"id":8745,"name":"Data","nameLocations":["1069:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1069:4:24"},"referencedDeclaration":8641,"src":"1069:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8749,"mutability":"mutable","name":"newSigner","nameLocation":"1096:9:24","nodeType":"VariableDeclaration","scope":8784,"src":"1088:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8748,"name":"address","nodeType":"ElementaryTypeName","src":"1088:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1068:38:24"},"returnParameters":{"id":8751,"nodeType":"ParameterList","parameters":[],"src":"1116:0:24"},"scope":8832,"src":"1050:290:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8830,"nodeType":"Block","src":"1420:329:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8793,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1438:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1464:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1456:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8794,"name":"address","nodeType":"ElementaryTypeName","src":"1456:7:24","typeDescriptions":{}}},"id":8797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1456:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1438:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1468:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1430:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8801,"nodeType":"ExpressionStatement","src":"1430:57:24"},{"expression":{"arguments":[{"baseExpression":{"expression":{"id":8803,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8787,"src":"1505:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1510:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1505:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8806,"indexExpression":{"id":8805,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1518:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1505:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206973206e6f742061207369676e65722e","id":8807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1535:26:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d","typeString":"literal_string \"Address is not a signer.\""},"value":"Address is not a signer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d","typeString":"literal_string \"Address is not a signer.\""}],"id":8802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1497:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1497:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8809,"nodeType":"ExpressionStatement","src":"1497:65:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8811,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1580:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1598:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1602:6:24","memberName":"sender","nodeType":"MemberAccess","src":"1598:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1580:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c662061732061207369676e65722e","id":8815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1610:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed","typeString":"literal_string \"You cannot remove yourself as a signer.\""},"value":"You cannot remove yourself as a signer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed","typeString":"literal_string \"You cannot remove yourself as a signer.\""}],"id":8810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1572:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:80:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8817,"nodeType":"ExpressionStatement","src":"1572:80:24"},{"expression":{"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8818,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8787,"src":"1662:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1667:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1662:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8822,"indexExpression":{"id":8820,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1675:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1662:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1693:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1662:36:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8825,"nodeType":"ExpressionStatement","src":"1662:36:24"},{"eventCall":{"arguments":[{"id":8827,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1727:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8826,"name":"SignerRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8657,"src":"1713:13:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:29:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8829,"nodeType":"EmitStatement","src":"1708:34:24"}]},"functionSelector":"982088f0","id":8831,"implemented":true,"kind":"function","modifiers":[],"name":"removeSigner","nameLocation":"1355:12:24","nodeType":"FunctionDefinition","parameters":{"id":8790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8787,"mutability":"mutable","name":"self","nameLocation":"1381:4:24","nodeType":"VariableDeclaration","scope":8831,"src":"1368:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8786,"nodeType":"UserDefinedTypeName","pathNode":{"id":8785,"name":"Data","nameLocations":["1368:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1368:4:24"},"referencedDeclaration":8641,"src":"1368:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8789,"mutability":"mutable","name":"signerToRemove","nameLocation":"1395:14:24","nodeType":"VariableDeclaration","scope":8831,"src":"1387:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8788,"name":"address","nodeType":"ElementaryTypeName","src":"1387:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1367:43:24"},"returnParameters":{"id":8791,"nodeType":"ParameterList","parameters":[],"src":"1420:0:24"},"scope":8832,"src":"1346:403:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8833,"src":"58:1693:24","usedErrors":[],"usedEvents":[8645,8649,8653,8657]}],"src":"32:1720:24"},"id":24},"contracts/gamma/libs/LibPackVerifier.sol":{"ast":{"absolutePath":"contracts/gamma/libs/LibPackVerifier.sol","exportedSymbols":{"ECDSA":[2354],"LibPackVerifier":[8881],"MessageHashUtils":[2428],"Strings":[2006]},"id":8882,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8834,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:25"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":8835,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8882,"sourceUnit":2355,"src":"58:62:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","id":8836,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8882,"sourceUnit":2429,"src":"121:73:25","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"LibPackVerifier","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8881,"linearizedBaseContracts":[8881],"name":"LibPackVerifier","nameLocation":"205:15:25","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8839,"libraryName":{"id":8837,"name":"ECDSA","nameLocations":["233:5:25"],"nodeType":"IdentifierPath","referencedDeclaration":2354,"src":"233:5:25"},"nodeType":"UsingForDirective","src":"227:24:25","typeName":{"id":8838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":8842,"libraryName":{"id":8840,"name":"MessageHashUtils","nameLocations":["262:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":2428,"src":"262:16:25"},"nodeType":"UsingForDirective","src":"256:35:25","typeName":{"id":8841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":8879,"nodeType":"Block","src":"478:288:25","statements":[{"assignments":[8857],"declarations":[{"constant":false,"id":8857,"mutability":"mutable","name":"messageHash","nameLocation":"496:11:25","nodeType":"VariableDeclaration","scope":8879,"src":"488:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"488:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8869,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":8861,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8844,"src":"550:6:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8862,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8846,"src":"558:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8863,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8849,"src":"570:8:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"hexValue":"307866316444373138393565343962313536333639333936396465353038393831393763444633343831","id":8864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"580:44:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be","typeString":"literal_string \"0xf1dD71895e49b1563693969de50898197cDF3481\""},"value":"0xf1dD71895e49b1563693969de50898197cDF3481"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be","typeString":"literal_string \"0xf1dD71895e49b1563693969de50898197cDF3481\""}],"expression":{"id":8859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"533:3:25","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"537:12:25","memberName":"encodePacked","nodeType":"MemberAccess","src":"533:16:25","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"533:92:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8858,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"510:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"510:125:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"636:22:25","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":2369,"src":"510:148:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":8868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"510:150:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"488:172:25"},{"assignments":[8871],"declarations":[{"constant":false,"id":8871,"mutability":"mutable","name":"recoveredSigner","nameLocation":"679:15:25","nodeType":"VariableDeclaration","scope":8879,"src":"671:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8870,"name":"address","nodeType":"ElementaryTypeName","src":"671:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8876,"initialValue":{"arguments":[{"id":8874,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8851,"src":"717:9:25","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8872,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"697:11:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"709:7:25","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":2110,"src":"697:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":8875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:30:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"671:56:25"},{"expression":{"id":8877,"name":"recoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8871,"src":"744:15:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8855,"id":8878,"nodeType":"Return","src":"737:22:25"}]},"functionSelector":"38fb7d8b","id":8880,"implemented":true,"kind":"function","modifiers":[],"name":"verifyPackSigner","nameLocation":"306:16:25","nodeType":"FunctionDefinition","parameters":{"id":8852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8844,"mutability":"mutable","name":"sender","nameLocation":"340:6:25","nodeType":"VariableDeclaration","scope":8880,"src":"332:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8843,"name":"address","nodeType":"ElementaryTypeName","src":"332:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8846,"mutability":"mutable","name":"packNumber","nameLocation":"364:10:25","nodeType":"VariableDeclaration","scope":8880,"src":"356:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8845,"name":"uint256","nodeType":"ElementaryTypeName","src":"356:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8849,"mutability":"mutable","name":"packData","nameLocation":"399:8:25","nodeType":"VariableDeclaration","scope":8880,"src":"384:23:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":8847,"name":"uint8","nodeType":"ElementaryTypeName","src":"384:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8848,"nodeType":"ArrayTypeName","src":"384:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":8851,"mutability":"mutable","name":"signature","nameLocation":"432:9:25","nodeType":"VariableDeclaration","scope":8880,"src":"417:24:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8850,"name":"bytes","nodeType":"ElementaryTypeName","src":"417:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"322:125:25"},"returnParameters":{"id":8855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8880,"src":"469:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8853,"name":"address","nodeType":"ElementaryTypeName","src":"469:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"468:9:25"},"scope":8881,"src":"297:469:25","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":8882,"src":"197:571:25","usedErrors":[2017,2022,2027],"usedEvents":[]}],"src":"32:737:25"},"id":25},"contracts/gamma/libs/LibStringUtils.sol":{"ast":{"absolutePath":"contracts/gamma/libs/LibStringUtils.sol","exportedSymbols":{"LibStringUtils":[8962]},"id":8963,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8883,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:26"},{"abstract":false,"baseContracts":[],"canonicalName":"LibStringUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8962,"linearizedBaseContracts":[8962],"name":"LibStringUtils","nameLocation":"66:14:26","nodeType":"ContractDefinition","nodes":[{"body":{"id":8960,"nodeType":"Block","src":"323:379:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"334:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"334:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8896,"nodeType":"IfStatement","src":"330:43:26","trueBody":{"id":8895,"nodeType":"Block","src":"346:27:26","statements":[{"expression":{"hexValue":"30","id":8893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"363:3:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":8889,"id":8894,"nodeType":"Return","src":"356:10:26"}]}},{"assignments":[8898],"declarations":[{"constant":false,"id":8898,"mutability":"mutable","name":"temp","nameLocation":"386:4:26","nodeType":"VariableDeclaration","scope":8960,"src":"378:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8897,"name":"uint256","nodeType":"ElementaryTypeName","src":"378:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8900,"initialValue":{"id":8899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"393:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"378:20:26"},{"assignments":[8902],"declarations":[{"constant":false,"id":8902,"mutability":"mutable","name":"digits","nameLocation":"412:6:26","nodeType":"VariableDeclaration","scope":8960,"src":"404:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8901,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8903,"nodeType":"VariableDeclarationStatement","src":"404:14:26"},{"body":{"id":8914,"nodeType":"Block","src":"442:45:26","statements":[{"expression":{"id":8908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"452:8:26","subExpression":{"id":8907,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"452:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8909,"nodeType":"ExpressionStatement","src":"452:8:26"},{"expression":{"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8910,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8898,"src":"470:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"478:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"470:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8913,"nodeType":"ExpressionStatement","src":"470:10:26"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8904,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8898,"src":"431:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"439:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"431:9:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8915,"nodeType":"WhileStatement","src":"424:63:26"},{"assignments":[8917],"declarations":[{"constant":false,"id":8917,"mutability":"mutable","name":"buffer","nameLocation":"505:6:26","nodeType":"VariableDeclaration","scope":8960,"src":"492:19:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8916,"name":"bytes","nodeType":"ElementaryTypeName","src":"492:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8922,"initialValue":{"arguments":[{"id":8920,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"524:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"514:9:26","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8918,"name":"bytes","nodeType":"ElementaryTypeName","src":"518:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"492:39:26"},{"body":{"id":8953,"nodeType":"Block","src":"556:115:26","statements":[{"expression":{"id":8928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8926,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"566:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":8927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"576:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"566:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8929,"nodeType":"ExpressionStatement","src":"566:11:26"},{"expression":{"id":8947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8930,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"587:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8932,"indexExpression":{"id":8931,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"594:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"587:14:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":8937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"617:2:26","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"630:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":8941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"630:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"622:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8938,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:26","typeDescriptions":{}}},"id":8943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"622:19:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"617:24:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"611:5:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8935,"name":"uint8","nodeType":"ElementaryTypeName","src":"611:5:26","typeDescriptions":{}}},"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:31:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"604:6:26","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8933,"name":"bytes1","nodeType":"ElementaryTypeName","src":"604:6:26","typeDescriptions":{}}},"id":8946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"604:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"587:56:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8948,"nodeType":"ExpressionStatement","src":"587:56:26"},{"expression":{"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8949,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"653:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"653:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8952,"nodeType":"ExpressionStatement","src":"653:11:26"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"544:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"553:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"544:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8954,"nodeType":"WhileStatement","src":"537:134:26"},{"expression":{"arguments":[{"id":8957,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"690:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"683:6:26","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8955,"name":"string","nodeType":"ElementaryTypeName","src":"683:6:26","typeDescriptions":{}}},"id":8958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"683:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8889,"id":8959,"nodeType":"Return","src":"676:21:26"}]},"functionSelector":"6900a3ae","id":8961,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"263:8:26","nodeType":"FunctionDefinition","parameters":{"id":8886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8885,"mutability":"mutable","name":"value","nameLocation":"280:5:26","nodeType":"VariableDeclaration","scope":8961,"src":"272:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8884,"name":"uint256","nodeType":"ElementaryTypeName","src":"272:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"271:15:26"},"returnParameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8961,"src":"308:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8887,"name":"string","nodeType":"ElementaryTypeName","src":"308:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"307:15:26"},"scope":8962,"src":"254:448:26","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":8963,"src":"58:647:26","usedErrors":[],"usedEvents":[]}],"src":"32:674:26"},"id":26},"contracts/testDai/TestDAI.v3.sol":{"ast":{"absolutePath":"contracts/testDai/TestDAI.v3.sol","exportedSymbols":{"AccessControl":[10703],"AccessControlMixin":[10741],"Address":[9466],"ChainConstants":[11095],"Context":[8991],"ContextMixin":[11135],"EIP712Base":[10884],"ERC20":[9998],"EnumerableSet":[10421],"IChildToken":[10750],"IERC20":[9068],"Initializable":[10769],"NativeMetaTransaction":[11078],"NofTestDAIV3":[11432],"SafeMath":[9263],"UChildERC20":[11286]},"id":11433,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8964,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:27"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8991,"linearizedBaseContracts":[8991],"name":"Context","nameLocation":"576:7:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":8978,"nodeType":"Block","src":"660:52:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8973,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"693:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"697:6:27","memberName":"sender","nodeType":"MemberAccess","src":"693:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"685:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8971,"name":"address","nodeType":"ElementaryTypeName","src":"685:7:27","typeDescriptions":{}}},"id":8975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"677:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":8969,"name":"address","nodeType":"ElementaryTypeName","src":"677:8:27","stateMutability":"payable","typeDescriptions":{}}},"id":8976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"677:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":8968,"id":8977,"nodeType":"Return","src":"670:35:27"}]},"id":8979,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"599:10:27","nodeType":"FunctionDefinition","parameters":{"id":8965,"nodeType":"ParameterList","parameters":[],"src":"609:2:27"},"returnParameters":{"id":8968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8979,"src":"643:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":8966,"name":"address","nodeType":"ElementaryTypeName","src":"643:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"642:17:27"},"scope":8991,"src":"590:122:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8989,"nodeType":"Block","src":"783:194:27","statements":[{"expression":{"id":8984,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"940:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$8991","typeString":"contract Context"}},"id":8985,"nodeType":"ExpressionStatement","src":"940:4:27"},{"expression":{"expression":{"id":8986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"962:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"966:4:27","memberName":"data","nodeType":"MemberAccess","src":"962:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8983,"id":8988,"nodeType":"Return","src":"955:15:27"}]},"id":8990,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"727:8:27","nodeType":"FunctionDefinition","parameters":{"id":8980,"nodeType":"ParameterList","parameters":[],"src":"735:2:27"},"returnParameters":{"id":8983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8990,"src":"769:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8981,"name":"bytes","nodeType":"ElementaryTypeName","src":"769:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"768:14:27"},"scope":8991,"src":"718:259:27","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":11433,"src":"558:421:27","usedErrors":[],"usedEvents":[]},{"id":8992,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"1040:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":8993,"nodeType":"StructuredDocumentation","src":"1066:70:27","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":9068,"linearizedBaseContracts":[9068],"name":"IERC20","nameLocation":"1147:6:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8994,"nodeType":"StructuredDocumentation","src":"1160:66:27","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8999,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1240:11:27","nodeType":"FunctionDefinition","parameters":{"id":8995,"nodeType":"ParameterList","parameters":[],"src":"1251:2:27"},"returnParameters":{"id":8998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8999,"src":"1277:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1276:9:27"},"scope":9068,"src":"1231:55:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9000,"nodeType":"StructuredDocumentation","src":"1292:72:27","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":9007,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1378:9:27","nodeType":"FunctionDefinition","parameters":{"id":9003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9002,"mutability":"mutable","name":"account","nameLocation":"1396:7:27","nodeType":"VariableDeclaration","scope":9007,"src":"1388:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9001,"name":"address","nodeType":"ElementaryTypeName","src":"1388:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1387:17:27"},"returnParameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9007,"src":"1428:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1428:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1427:9:27"},"scope":9068,"src":"1369:68:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9008,"nodeType":"StructuredDocumentation","src":"1443:209:27","text":" @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":9017,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1666:8:27","nodeType":"FunctionDefinition","parameters":{"id":9013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9010,"mutability":"mutable","name":"recipient","nameLocation":"1683:9:27","nodeType":"VariableDeclaration","scope":9017,"src":"1675:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9009,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9012,"mutability":"mutable","name":"amount","nameLocation":"1702:6:27","nodeType":"VariableDeclaration","scope":9017,"src":"1694:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1674:35:27"},"returnParameters":{"id":9016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9017,"src":"1728:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9014,"name":"bool","nodeType":"ElementaryTypeName","src":"1728:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1727:6:27"},"scope":9068,"src":"1657:77:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9018,"nodeType":"StructuredDocumentation","src":"1740:264:27","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":9027,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"2018:9:27","nodeType":"FunctionDefinition","parameters":{"id":9023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"owner","nameLocation":"2036:5:27","nodeType":"VariableDeclaration","scope":9027,"src":"2028:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"2028:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9022,"mutability":"mutable","name":"spender","nameLocation":"2051:7:27","nodeType":"VariableDeclaration","scope":9027,"src":"2043:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9021,"name":"address","nodeType":"ElementaryTypeName","src":"2043:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2027:32:27"},"returnParameters":{"id":9026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9027,"src":"2083:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2082:9:27"},"scope":9068,"src":"2009:83:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9028,"nodeType":"StructuredDocumentation","src":"2098:642:27","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":9037,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2754:7:27","nodeType":"FunctionDefinition","parameters":{"id":9033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9030,"mutability":"mutable","name":"spender","nameLocation":"2770:7:27","nodeType":"VariableDeclaration","scope":9037,"src":"2762:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9029,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9032,"mutability":"mutable","name":"amount","nameLocation":"2787:6:27","nodeType":"VariableDeclaration","scope":9037,"src":"2779:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9031,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2761:33:27"},"returnParameters":{"id":9036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9037,"src":"2813:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9034,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2812:6:27"},"scope":9068,"src":"2745:74:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9038,"nodeType":"StructuredDocumentation","src":"2825:296:27","text":" @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":9049,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3135:12:27","nodeType":"FunctionDefinition","parameters":{"id":9045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9040,"mutability":"mutable","name":"sender","nameLocation":"3156:6:27","nodeType":"VariableDeclaration","scope":9049,"src":"3148:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9039,"name":"address","nodeType":"ElementaryTypeName","src":"3148:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9042,"mutability":"mutable","name":"recipient","nameLocation":"3172:9:27","nodeType":"VariableDeclaration","scope":9049,"src":"3164:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9041,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9044,"mutability":"mutable","name":"amount","nameLocation":"3191:6:27","nodeType":"VariableDeclaration","scope":9049,"src":"3183:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9043,"name":"uint256","nodeType":"ElementaryTypeName","src":"3183:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3147:51:27"},"returnParameters":{"id":9048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9049,"src":"3217:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9046,"name":"bool","nodeType":"ElementaryTypeName","src":"3217:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3216:6:27"},"scope":9068,"src":"3126:97:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"documentation":{"id":9050,"nodeType":"StructuredDocumentation","src":"3229:158:27","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":9058,"name":"Transfer","nameLocation":"3398:8:27","nodeType":"EventDefinition","parameters":{"id":9057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9052,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3423:4:27","nodeType":"VariableDeclaration","scope":9058,"src":"3407:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9051,"name":"address","nodeType":"ElementaryTypeName","src":"3407:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9054,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3445:2:27","nodeType":"VariableDeclaration","scope":9058,"src":"3429:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9053,"name":"address","nodeType":"ElementaryTypeName","src":"3429:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9056,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"3457:5:27","nodeType":"VariableDeclaration","scope":9058,"src":"3449:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9055,"name":"uint256","nodeType":"ElementaryTypeName","src":"3449:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3406:57:27"},"src":"3392:72:27"},{"anonymous":false,"documentation":{"id":9059,"nodeType":"StructuredDocumentation","src":"3470:148:27","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":9067,"name":"Approval","nameLocation":"3629:8:27","nodeType":"EventDefinition","parameters":{"id":9066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9061,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3654:5:27","nodeType":"VariableDeclaration","scope":9067,"src":"3638:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9060,"name":"address","nodeType":"ElementaryTypeName","src":"3638:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9063,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"3677:7:27","nodeType":"VariableDeclaration","scope":9067,"src":"3661:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9062,"name":"address","nodeType":"ElementaryTypeName","src":"3661:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9065,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"3694:5:27","nodeType":"VariableDeclaration","scope":9067,"src":"3686:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9064,"name":"uint256","nodeType":"ElementaryTypeName","src":"3686:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3637:63:27"},"src":"3623:78:27"}],"scope":11433,"src":"1137:2566:27","usedErrors":[],"usedEvents":[9058,9067]},{"id":9069,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"3759:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeMath","contractDependencies":[],"contractKind":"library","documentation":{"id":9070,"nodeType":"StructuredDocumentation","src":"3785:563:27","text":" @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n 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":9263,"linearizedBaseContracts":[9263],"name":"SafeMath","nameLocation":"4357:8:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":9095,"nodeType":"Block","src":"4668:109:27","statements":[{"assignments":[9081],"declarations":[{"constant":false,"id":9081,"mutability":"mutable","name":"c","nameLocation":"4686:1:27","nodeType":"VariableDeclaration","scope":9095,"src":"4678:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9080,"name":"uint256","nodeType":"ElementaryTypeName","src":"4678:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9082,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"4690:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9083,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"4694:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4690:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4678:17:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9087,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"4713:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9088,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"4718:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4713:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","id":9090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4721:29:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""},"value":"SafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""}],"id":9086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4705:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:46:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9092,"nodeType":"ExpressionStatement","src":"4705:46:27"},{"expression":{"id":9093,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"4769:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9079,"id":9094,"nodeType":"Return","src":"4762:8:27"}]},"documentation":{"id":9071,"nodeType":"StructuredDocumentation","src":"4372:224:27","text":" @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."},"id":9096,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"4610:3:27","nodeType":"FunctionDefinition","parameters":{"id":9076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9073,"mutability":"mutable","name":"a","nameLocation":"4622:1:27","nodeType":"VariableDeclaration","scope":9096,"src":"4614:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9072,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9075,"mutability":"mutable","name":"b","nameLocation":"4633:1:27","nodeType":"VariableDeclaration","scope":9096,"src":"4625:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9074,"name":"uint256","nodeType":"ElementaryTypeName","src":"4625:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4613:22:27"},"returnParameters":{"id":9079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9096,"src":"4659:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9077,"name":"uint256","nodeType":"ElementaryTypeName","src":"4659:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4658:9:27"},"scope":9263,"src":"4601:176:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9112,"nodeType":"Block","src":"5115:67:27","statements":[{"expression":{"arguments":[{"id":9107,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9099,"src":"5136:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9108,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9101,"src":"5139:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":9109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5142:32:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""},"value":"SafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""}],"id":9106,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[9113,9141],"referencedDeclaration":9141,"src":"5132:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5132:43:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9105,"id":9111,"nodeType":"Return","src":"5125:50:27"}]},"documentation":{"id":9097,"nodeType":"StructuredDocumentation","src":"4783:260:27","text":" @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":9113,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"5057:3:27","nodeType":"FunctionDefinition","parameters":{"id":9102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9099,"mutability":"mutable","name":"a","nameLocation":"5069:1:27","nodeType":"VariableDeclaration","scope":9113,"src":"5061:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9098,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9101,"mutability":"mutable","name":"b","nameLocation":"5080:1:27","nodeType":"VariableDeclaration","scope":9113,"src":"5072:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9100,"name":"uint256","nodeType":"ElementaryTypeName","src":"5072:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:22:27"},"returnParameters":{"id":9105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9113,"src":"5106:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9103,"name":"uint256","nodeType":"ElementaryTypeName","src":"5106:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5105:9:27"},"scope":9263,"src":"5048:134:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9140,"nodeType":"Block","src":"5568:92:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9126,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"5586:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":9127,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"5591:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5586:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9129,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9120,"src":"5594:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9125,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5578:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9131,"nodeType":"ExpressionStatement","src":"5578:29:27"},{"assignments":[9133],"declarations":[{"constant":false,"id":9133,"mutability":"mutable","name":"c","nameLocation":"5625:1:27","nodeType":"VariableDeclaration","scope":9140,"src":"5617:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9132,"name":"uint256","nodeType":"ElementaryTypeName","src":"5617:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9137,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9134,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"5629:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9135,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"5633:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5629:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5617:17:27"},{"expression":{"id":9138,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9133,"src":"5652:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9124,"id":9139,"nodeType":"Return","src":"5645:8:27"}]},"documentation":{"id":9114,"nodeType":"StructuredDocumentation","src":"5188:280:27","text":" @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":9141,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"5482:3:27","nodeType":"FunctionDefinition","parameters":{"id":9121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9116,"mutability":"mutable","name":"a","nameLocation":"5494:1:27","nodeType":"VariableDeclaration","scope":9141,"src":"5486:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9115,"name":"uint256","nodeType":"ElementaryTypeName","src":"5486:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9118,"mutability":"mutable","name":"b","nameLocation":"5505:1:27","nodeType":"VariableDeclaration","scope":9141,"src":"5497:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9117,"name":"uint256","nodeType":"ElementaryTypeName","src":"5497:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9120,"mutability":"mutable","name":"errorMessage","nameLocation":"5522:12:27","nodeType":"VariableDeclaration","scope":9141,"src":"5508:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9119,"name":"string","nodeType":"ElementaryTypeName","src":"5508:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5485:50:27"},"returnParameters":{"id":9124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9141,"src":"5559:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"5559:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5558:9:27"},"scope":9263,"src":"5473:187:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9175,"nodeType":"Block","src":"5974:392:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9151,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"6206:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6211:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6206:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9157,"nodeType":"IfStatement","src":"6202:45:27","trueBody":{"id":9156,"nodeType":"Block","src":"6214:33:27","statements":[{"expression":{"hexValue":"30","id":9154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6235:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":9150,"id":9155,"nodeType":"Return","src":"6228:8:27"}]}},{"assignments":[9159],"declarations":[{"constant":false,"id":9159,"mutability":"mutable","name":"c","nameLocation":"6265:1:27","nodeType":"VariableDeclaration","scope":9175,"src":"6257:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9158,"name":"uint256","nodeType":"ElementaryTypeName","src":"6257:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9163,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9160,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"6269:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9161,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9146,"src":"6273:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6269:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6257:17:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9165,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9159,"src":"6292:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9166,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"6296:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6292:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9168,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9146,"src":"6301:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6292:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6304:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""},"value":"SafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""}],"id":9164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6284:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6284:56:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9172,"nodeType":"ExpressionStatement","src":"6284:56:27"},{"expression":{"id":9173,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9159,"src":"6358:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9150,"id":9174,"nodeType":"Return","src":"6351:8:27"}]},"documentation":{"id":9142,"nodeType":"StructuredDocumentation","src":"5666:236:27","text":" @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."},"id":9176,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"5916:3:27","nodeType":"FunctionDefinition","parameters":{"id":9147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9144,"mutability":"mutable","name":"a","nameLocation":"5928:1:27","nodeType":"VariableDeclaration","scope":9176,"src":"5920:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9143,"name":"uint256","nodeType":"ElementaryTypeName","src":"5920:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9146,"mutability":"mutable","name":"b","nameLocation":"5939:1:27","nodeType":"VariableDeclaration","scope":9176,"src":"5931:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9145,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5919:22:27"},"returnParameters":{"id":9150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9176,"src":"5965:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9148,"name":"uint256","nodeType":"ElementaryTypeName","src":"5965:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5964:9:27"},"scope":9263,"src":"5907:459:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9192,"nodeType":"Block","src":"6895:63:27","statements":[{"expression":{"arguments":[{"id":9187,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9179,"src":"6916:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9188,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9181,"src":"6919:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"536166654d6174683a206469766973696f6e206279207a65726f","id":9189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6922:28:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""},"value":"SafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""}],"id":9186,"name":"div","nodeType":"Identifier","overloadedDeclarations":[9193,9221],"referencedDeclaration":9221,"src":"6912:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6912:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9185,"id":9191,"nodeType":"Return","src":"6905:46:27"}]},"documentation":{"id":9177,"nodeType":"StructuredDocumentation","src":"6372:451:27","text":" @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9193,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"6837:3:27","nodeType":"FunctionDefinition","parameters":{"id":9182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9179,"mutability":"mutable","name":"a","nameLocation":"6849:1:27","nodeType":"VariableDeclaration","scope":9193,"src":"6841:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9178,"name":"uint256","nodeType":"ElementaryTypeName","src":"6841:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9181,"mutability":"mutable","name":"b","nameLocation":"6860:1:27","nodeType":"VariableDeclaration","scope":9193,"src":"6852:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9180,"name":"uint256","nodeType":"ElementaryTypeName","src":"6852:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6840:22:27"},"returnParameters":{"id":9185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9193,"src":"6886:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9183,"name":"uint256","nodeType":"ElementaryTypeName","src":"6886:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6885:9:27"},"scope":9263,"src":"6828:130:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9220,"nodeType":"Block","src":"7535:177:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9206,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"7553:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7557:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7553:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9209,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"7560:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7545:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7545:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9211,"nodeType":"ExpressionStatement","src":"7545:28:27"},{"assignments":[9213],"declarations":[{"constant":false,"id":9213,"mutability":"mutable","name":"c","nameLocation":"7591:1:27","nodeType":"VariableDeclaration","scope":9220,"src":"7583:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9212,"name":"uint256","nodeType":"ElementaryTypeName","src":"7583:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9217,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9214,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9196,"src":"7595:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9215,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"7599:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7595:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7583:17:27"},{"expression":{"id":9218,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"7704:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9204,"id":9219,"nodeType":"Return","src":"7697:8:27"}]},"documentation":{"id":9194,"nodeType":"StructuredDocumentation","src":"6964:471:27","text":" @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9221,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"7449:3:27","nodeType":"FunctionDefinition","parameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9196,"mutability":"mutable","name":"a","nameLocation":"7461:1:27","nodeType":"VariableDeclaration","scope":9221,"src":"7453:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9195,"name":"uint256","nodeType":"ElementaryTypeName","src":"7453:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9198,"mutability":"mutable","name":"b","nameLocation":"7472:1:27","nodeType":"VariableDeclaration","scope":9221,"src":"7464:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9197,"name":"uint256","nodeType":"ElementaryTypeName","src":"7464:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9200,"mutability":"mutable","name":"errorMessage","nameLocation":"7489:12:27","nodeType":"VariableDeclaration","scope":9221,"src":"7475:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9199,"name":"string","nodeType":"ElementaryTypeName","src":"7475:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7452:50:27"},"returnParameters":{"id":9204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9221,"src":"7526:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"7526:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7525:9:27"},"scope":9263,"src":"7440:272:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9237,"nodeType":"Block","src":"8230:61:27","statements":[{"expression":{"arguments":[{"id":9232,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9224,"src":"8251:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9233,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9226,"src":"8254:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"536166654d6174683a206d6f64756c6f206279207a65726f","id":9234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8257:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""},"value":"SafeMath: modulo by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""}],"id":9231,"name":"mod","nodeType":"Identifier","overloadedDeclarations":[9238,9262],"referencedDeclaration":9262,"src":"8247:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8247:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9230,"id":9236,"nodeType":"Return","src":"8240:44:27"}]},"documentation":{"id":9222,"nodeType":"StructuredDocumentation","src":"7718:440:27","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9238,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"8172:3:27","nodeType":"FunctionDefinition","parameters":{"id":9227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9224,"mutability":"mutable","name":"a","nameLocation":"8184:1:27","nodeType":"VariableDeclaration","scope":9238,"src":"8176:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9223,"name":"uint256","nodeType":"ElementaryTypeName","src":"8176:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9226,"mutability":"mutable","name":"b","nameLocation":"8195:1:27","nodeType":"VariableDeclaration","scope":9238,"src":"8187:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9225,"name":"uint256","nodeType":"ElementaryTypeName","src":"8187:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8175:22:27"},"returnParameters":{"id":9230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9238,"src":"8221:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9228,"name":"uint256","nodeType":"ElementaryTypeName","src":"8221:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8220:9:27"},"scope":9263,"src":"8163:128:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9261,"nodeType":"Block","src":"8857:68:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9251,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9243,"src":"8875:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8880:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8875:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9254,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9245,"src":"8883:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9250,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8867:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8867:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9256,"nodeType":"ExpressionStatement","src":"8867:29:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9257,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9241,"src":"8913:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":9258,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9243,"src":"8917:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8913:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9249,"id":9260,"nodeType":"Return","src":"8906:12:27"}]},"documentation":{"id":9239,"nodeType":"StructuredDocumentation","src":"8297:460:27","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9262,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"8771:3:27","nodeType":"FunctionDefinition","parameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9241,"mutability":"mutable","name":"a","nameLocation":"8783:1:27","nodeType":"VariableDeclaration","scope":9262,"src":"8775:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9240,"name":"uint256","nodeType":"ElementaryTypeName","src":"8775:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9243,"mutability":"mutable","name":"b","nameLocation":"8794:1:27","nodeType":"VariableDeclaration","scope":9262,"src":"8786:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9242,"name":"uint256","nodeType":"ElementaryTypeName","src":"8786:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9245,"mutability":"mutable","name":"errorMessage","nameLocation":"8811:12:27","nodeType":"VariableDeclaration","scope":9262,"src":"8797:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9244,"name":"string","nodeType":"ElementaryTypeName","src":"8797:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8774:50:27"},"returnParameters":{"id":9249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9262,"src":"8848:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9247,"name":"uint256","nodeType":"ElementaryTypeName","src":"8848:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8847:9:27"},"scope":9263,"src":"8762:163:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":11433,"src":"4349:4578:27","usedErrors":[],"usedEvents":[]},{"id":9264,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"8983:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":9265,"nodeType":"StructuredDocumentation","src":"9009:67:27","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":9466,"linearizedBaseContracts":[9466],"name":"Address","nameLocation":"9085:7:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":9290,"nodeType":"Block","src":"9735:544:27","statements":[{"assignments":[9274],"declarations":[{"constant":false,"id":9274,"mutability":"mutable","name":"codehash","nameLocation":"9995:8:27","nodeType":"VariableDeclaration","scope":9290,"src":"9987:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9987:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9275,"nodeType":"VariableDeclarationStatement","src":"9987:16:27"},{"assignments":[9277],"declarations":[{"constant":false,"id":9277,"mutability":"mutable","name":"accountHash","nameLocation":"10021:11:27","nodeType":"VariableDeclaration","scope":9290,"src":"10013:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10013:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9279,"initialValue":{"hexValue":"307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730","id":9278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10035:66:27","typeDescriptions":{"typeIdentifier":"t_rational_89477152217924674838424037953991966239322087453347756267410168184682657981552_by_1","typeString":"int_const 8947...(69 digits omitted)...1552"},"value":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"},"nodeType":"VariableDeclarationStatement","src":"10013:88:27"},{"AST":{"nodeType":"YulBlock","src":"10176:36:27","statements":[{"nodeType":"YulAssignment","src":"10178:32:27","value":{"arguments":[{"name":"account","nodeType":"YulIdentifier","src":"10202:7:27"}],"functionName":{"name":"extcodehash","nodeType":"YulIdentifier","src":"10190:11:27"},"nodeType":"YulFunctionCall","src":"10190:20:27"},"variableNames":[{"name":"codehash","nodeType":"YulIdentifier","src":"10178:8:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":9268,"isOffset":false,"isSlot":false,"src":"10202:7:27","valueSize":1},{"declaration":9274,"isOffset":false,"isSlot":false,"src":"10178:8:27","valueSize":1}],"id":9280,"nodeType":"InlineAssembly","src":"10167:45:27"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9281,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"10229:8:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9282,"name":"accountHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9277,"src":"10241:11:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10229:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9284,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"10256:8:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307830","id":9285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10268:3:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"src":"10256:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10229:42:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10228:44:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9272,"id":9289,"nodeType":"Return","src":"10221:51:27"}]},"documentation":{"id":9266,"nodeType":"StructuredDocumentation","src":"9099:565:27","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ===="},"id":9291,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"9678:10:27","nodeType":"FunctionDefinition","parameters":{"id":9269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9268,"mutability":"mutable","name":"account","nameLocation":"9697:7:27","nodeType":"VariableDeclaration","scope":9291,"src":"9689:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9267,"name":"address","nodeType":"ElementaryTypeName","src":"9689:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9688:17:27"},"returnParameters":{"id":9272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9291,"src":"9729:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9270,"name":"bool","nodeType":"ElementaryTypeName","src":"9729:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9728:6:27"},"scope":9466,"src":"9669:610:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9324,"nodeType":"Block","src":"11106:320:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9302,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11132:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}],"id":9301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11124:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9300,"name":"address","nodeType":"ElementaryTypeName","src":"11124:7:27","typeDescriptions":{}}},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11138:7:27","memberName":"balance","nodeType":"MemberAccess","src":"11124:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9305,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9296,"src":"11149:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11124:31:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":9307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11157:31:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":9299,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11116:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11116:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9309,"nodeType":"ExpressionStatement","src":"11116:73:27"},{"assignments":[9311,null],"declarations":[{"constant":false,"id":9311,"mutability":"mutable","name":"success","nameLocation":"11283:7:27","nodeType":"VariableDeclaration","scope":9324,"src":"11278:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9310,"name":"bool","nodeType":"ElementaryTypeName","src":"11278:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":9318,"initialValue":{"arguments":[{"hexValue":"","id":9316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11328:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":9312,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9294,"src":"11296:9:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11306:4:27","memberName":"call","nodeType":"MemberAccess","src":"11296:14:27","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":9315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9314,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9296,"src":"11319:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"11296:31:27","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":9317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11277:54:27"},{"expression":{"arguments":[{"id":9320,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9311,"src":"11349:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":9321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11358:60:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":9319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11341:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:78:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9323,"nodeType":"ExpressionStatement","src":"11341:78:27"}]},"documentation":{"id":9292,"nodeType":"StructuredDocumentation","src":"10285:745:27","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the"},"id":9325,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"11044:9:27","nodeType":"FunctionDefinition","parameters":{"id":9297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9294,"mutability":"mutable","name":"recipient","nameLocation":"11070:9:27","nodeType":"VariableDeclaration","scope":9325,"src":"11054:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9293,"name":"address","nodeType":"ElementaryTypeName","src":"11054:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9296,"mutability":"mutable","name":"amount","nameLocation":"11089:6:27","nodeType":"VariableDeclaration","scope":9325,"src":"11081:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9295,"name":"uint256","nodeType":"ElementaryTypeName","src":"11081:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11053:43:27"},"returnParameters":{"id":9298,"nodeType":"ParameterList","parameters":[],"src":"11106:0:27"},"scope":9466,"src":"11035:391:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9341,"nodeType":"Block","src":"12099:82:27","statements":[{"expression":{"arguments":[{"id":9336,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9328,"src":"12127:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9337,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9330,"src":"12135:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":9338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12141:32:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":9335,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[9342,9362],"referencedDeclaration":9362,"src":"12114:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":9339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12114:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9334,"id":9340,"nodeType":"Return","src":"12107:67:27"}]},"documentation":{"id":9326,"nodeType":"StructuredDocumentation","src":"11432:573:27","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":9342,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"12019:12:27","nodeType":"FunctionDefinition","parameters":{"id":9331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9328,"mutability":"mutable","name":"target","nameLocation":"12040:6:27","nodeType":"VariableDeclaration","scope":9342,"src":"12032:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9327,"name":"address","nodeType":"ElementaryTypeName","src":"12032:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9330,"mutability":"mutable","name":"data","nameLocation":"12061:4:27","nodeType":"VariableDeclaration","scope":9342,"src":"12048:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9329,"name":"bytes","nodeType":"ElementaryTypeName","src":"12048:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12031:35:27"},"returnParameters":{"id":9334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9342,"src":"12085:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9332,"name":"bytes","nodeType":"ElementaryTypeName","src":"12085:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12084:14:27"},"scope":9466,"src":"12010:171:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9361,"nodeType":"Block","src":"12529:77:27","statements":[{"expression":{"arguments":[{"id":9355,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"12569:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9356,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9347,"src":"12577:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":9357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9358,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9349,"src":"12586:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9354,"name":"_functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9465,"src":"12546:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":9359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12546:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9353,"id":9360,"nodeType":"Return","src":"12539:60:27"}]},"documentation":{"id":9343,"nodeType":"StructuredDocumentation","src":"12187:211:27","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":9362,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"12412:12:27","nodeType":"FunctionDefinition","parameters":{"id":9350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9345,"mutability":"mutable","name":"target","nameLocation":"12433:6:27","nodeType":"VariableDeclaration","scope":9362,"src":"12425:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9344,"name":"address","nodeType":"ElementaryTypeName","src":"12425:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9347,"mutability":"mutable","name":"data","nameLocation":"12454:4:27","nodeType":"VariableDeclaration","scope":9362,"src":"12441:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9346,"name":"bytes","nodeType":"ElementaryTypeName","src":"12441:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9349,"mutability":"mutable","name":"errorMessage","nameLocation":"12474:12:27","nodeType":"VariableDeclaration","scope":9362,"src":"12460:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9348,"name":"string","nodeType":"ElementaryTypeName","src":"12460:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12424:63:27"},"returnParameters":{"id":9353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9362,"src":"12515:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9351,"name":"bytes","nodeType":"ElementaryTypeName","src":"12515:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12514:14:27"},"scope":9466,"src":"12403:203:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9381,"nodeType":"Block","src":"13081:111:27","statements":[{"expression":{"arguments":[{"id":9375,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9365,"src":"13120:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9376,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"13128:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"13134:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":9378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13141:43:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":9374,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[9382,9415],"referencedDeclaration":9415,"src":"13098:21:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":9379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13098:87:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9373,"id":9380,"nodeType":"Return","src":"13091:94:27"}]},"documentation":{"id":9363,"nodeType":"StructuredDocumentation","src":"12612:351:27","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":9382,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"12977:21:27","nodeType":"FunctionDefinition","parameters":{"id":9370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9365,"mutability":"mutable","name":"target","nameLocation":"13007:6:27","nodeType":"VariableDeclaration","scope":9382,"src":"12999:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9364,"name":"address","nodeType":"ElementaryTypeName","src":"12999:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9367,"mutability":"mutable","name":"data","nameLocation":"13028:4:27","nodeType":"VariableDeclaration","scope":9382,"src":"13015:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9366,"name":"bytes","nodeType":"ElementaryTypeName","src":"13015:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9369,"mutability":"mutable","name":"value","nameLocation":"13042:5:27","nodeType":"VariableDeclaration","scope":9382,"src":"13034:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9368,"name":"uint256","nodeType":"ElementaryTypeName","src":"13034:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12998:50:27"},"returnParameters":{"id":9373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9382,"src":"13067:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9371,"name":"bytes","nodeType":"ElementaryTypeName","src":"13067:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13066:14:27"},"scope":9466,"src":"12968:224:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9414,"nodeType":"Block","src":"13599:173:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9399,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13626:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}],"id":9398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13618:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9397,"name":"address","nodeType":"ElementaryTypeName","src":"13618:7:27","typeDescriptions":{}}},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13618:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13632:7:27","memberName":"balance","nodeType":"MemberAccess","src":"13618:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"13643:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13618:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":9404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13650:40:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":9396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13610:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13610:81:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9406,"nodeType":"ExpressionStatement","src":"13610:81:27"},{"expression":{"arguments":[{"id":9408,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"13731:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9409,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"13739:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"13745:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9411,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"13752:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9407,"name":"_functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9465,"src":"13708:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":9412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13708:57:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9395,"id":9413,"nodeType":"Return","src":"13701:64:27"}]},"documentation":{"id":9383,"nodeType":"StructuredDocumentation","src":"13198:237:27","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":9415,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"13449:21:27","nodeType":"FunctionDefinition","parameters":{"id":9392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9385,"mutability":"mutable","name":"target","nameLocation":"13488:6:27","nodeType":"VariableDeclaration","scope":9415,"src":"13480:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9384,"name":"address","nodeType":"ElementaryTypeName","src":"13480:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9387,"mutability":"mutable","name":"data","nameLocation":"13509:4:27","nodeType":"VariableDeclaration","scope":9415,"src":"13496:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9386,"name":"bytes","nodeType":"ElementaryTypeName","src":"13496:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9389,"mutability":"mutable","name":"value","nameLocation":"13532:5:27","nodeType":"VariableDeclaration","scope":9415,"src":"13524:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9388,"name":"uint256","nodeType":"ElementaryTypeName","src":"13524:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9391,"mutability":"mutable","name":"errorMessage","nameLocation":"13553:12:27","nodeType":"VariableDeclaration","scope":9415,"src":"13539:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9390,"name":"string","nodeType":"ElementaryTypeName","src":"13539:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13470:96:27"},"returnParameters":{"id":9395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9415,"src":"13585:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9393,"name":"bytes","nodeType":"ElementaryTypeName","src":"13585:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13584:14:27"},"scope":9466,"src":"13440:332:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9464,"nodeType":"Block","src":"13940:823:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":9430,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"13978:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9429,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9291,"src":"13967:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":9432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13987:31:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":9428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13959:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13959:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9434,"nodeType":"ExpressionStatement","src":"13959:60:27"},{"assignments":[9436,9438],"declarations":[{"constant":false,"id":9436,"mutability":"mutable","name":"success","nameLocation":"14095:7:27","nodeType":"VariableDeclaration","scope":9464,"src":"14090:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9435,"name":"bool","nodeType":"ElementaryTypeName","src":"14090:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9438,"mutability":"mutable","name":"returndata","nameLocation":"14117:10:27","nodeType":"VariableDeclaration","scope":9464,"src":"14104:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9437,"name":"bytes","nodeType":"ElementaryTypeName","src":"14104:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9445,"initialValue":{"arguments":[{"id":9443,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9419,"src":"14162:4:27","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":9439,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"14131:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14138:4:27","memberName":"call","nodeType":"MemberAccess","src":"14131:11:27","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":9442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9441,"name":"weiValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"14151:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"14131:30:27","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":9444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14131:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"14089:78:27"},{"condition":{"id":9446,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"14181:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9462,"nodeType":"Block","src":"14238:519:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9450,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"14322:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14333:6:27","memberName":"length","nodeType":"MemberAccess","src":"14322:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14322:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9460,"nodeType":"Block","src":"14694:53:27","statements":[{"expression":{"arguments":[{"id":9457,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9423,"src":"14719:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9456,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14712:6:27","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14712:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9459,"nodeType":"ExpressionStatement","src":"14712:20:27"}]},"id":9461,"nodeType":"IfStatement","src":"14318:429:27","trueBody":{"id":9455,"nodeType":"Block","src":"14345:343:27","statements":[{"AST":{"nodeType":"YulBlock","src":"14529:145:27","statements":[{"nodeType":"YulVariableDeclaration","src":"14551:40:27","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"14580:10:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14574:5:27"},"nodeType":"YulFunctionCall","src":"14574:17:27"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"14555:15:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14623:2:27","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"14627:10:27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14619:3:27"},"nodeType":"YulFunctionCall","src":"14619:19:27"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"14640:15:27"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14612:6:27"},"nodeType":"YulFunctionCall","src":"14612:44:27"},"nodeType":"YulExpressionStatement","src":"14612:44:27"}]},"evmVersion":"paris","externalReferences":[{"declaration":9438,"isOffset":false,"isSlot":false,"src":"14580:10:27","valueSize":1},{"declaration":9438,"isOffset":false,"isSlot":false,"src":"14627:10:27","valueSize":1}],"id":9454,"nodeType":"InlineAssembly","src":"14520:154:27"}]}}]},"id":9463,"nodeType":"IfStatement","src":"14177:580:27","trueBody":{"id":9449,"nodeType":"Block","src":"14190:42:27","statements":[{"expression":{"id":9447,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"14211:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9427,"id":9448,"nodeType":"Return","src":"14204:17:27"}]}}]},"id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"_functionCallWithValue","nameLocation":"13787:22:27","nodeType":"FunctionDefinition","parameters":{"id":9424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9417,"mutability":"mutable","name":"target","nameLocation":"13827:6:27","nodeType":"VariableDeclaration","scope":9465,"src":"13819:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9416,"name":"address","nodeType":"ElementaryTypeName","src":"13819:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9419,"mutability":"mutable","name":"data","nameLocation":"13848:4:27","nodeType":"VariableDeclaration","scope":9465,"src":"13835:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9418,"name":"bytes","nodeType":"ElementaryTypeName","src":"13835:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9421,"mutability":"mutable","name":"weiValue","nameLocation":"13871:8:27","nodeType":"VariableDeclaration","scope":9465,"src":"13863:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9420,"name":"uint256","nodeType":"ElementaryTypeName","src":"13863:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9423,"mutability":"mutable","name":"errorMessage","nameLocation":"13895:12:27","nodeType":"VariableDeclaration","scope":9465,"src":"13881:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9422,"name":"string","nodeType":"ElementaryTypeName","src":"13881:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13809:99:27"},"returnParameters":{"id":9427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9465,"src":"13926:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9425,"name":"bytes","nodeType":"ElementaryTypeName","src":"13926:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13925:14:27"},"scope":9466,"src":"13778:985:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":11433,"src":"9077:5688:27","usedErrors":[],"usedEvents":[]},{"id":9467,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"14838:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":9469,"name":"Context","nameLocations":["16344:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":8991,"src":"16344:7:27"},"id":9470,"nodeType":"InheritanceSpecifier","src":"16344:7:27"},{"baseName":{"id":9471,"name":"IERC20","nameLocations":["16353:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":9068,"src":"16353:6:27"},"id":9472,"nodeType":"InheritanceSpecifier","src":"16353:6:27"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":9468,"nodeType":"StructuredDocumentation","src":"15062:1263:27","text":" @dev openzeppelin Implementation of the {IERC20} interface.\n Modified to add setters for name, symbol and decimals. This was needed\n because\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin guidelines: functions revert instead\n of returning `false` on failure. This behavior is nonetheless conventional\n and does not conflict with the expectations of ERC20 applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":9998,"linearizedBaseContracts":[9998,9068,8991],"name":"ERC20","nameLocation":"16335:5:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":9475,"libraryName":{"id":9473,"name":"SafeMath","nameLocations":["16372:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":9263,"src":"16372:8:27"},"nodeType":"UsingForDirective","src":"16366:27:27","typeName":{"id":9474,"name":"uint256","nodeType":"ElementaryTypeName","src":"16385:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":9478,"libraryName":{"id":9476,"name":"Address","nameLocations":["16404:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":9466,"src":"16404:7:27"},"nodeType":"UsingForDirective","src":"16398:26:27","typeName":{"id":9477,"name":"address","nodeType":"ElementaryTypeName","src":"16416:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":9482,"mutability":"mutable","name":"_balances","nameLocation":"16467:9:27","nodeType":"VariableDeclaration","scope":9998,"src":"16430:46:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9481,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9479,"name":"address","nodeType":"ElementaryTypeName","src":"16439:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"16430:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9480,"name":"uint256","nodeType":"ElementaryTypeName","src":"16450:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":9488,"mutability":"mutable","name":"_allowances","nameLocation":"16541:11:27","nodeType":"VariableDeclaration","scope":9998,"src":"16483:69:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":9487,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9483,"name":"address","nodeType":"ElementaryTypeName","src":"16492:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"16483:49:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9486,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9484,"name":"address","nodeType":"ElementaryTypeName","src":"16512:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"16503:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9485,"name":"uint256","nodeType":"ElementaryTypeName","src":"16523:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":9490,"mutability":"mutable","name":"_totalSupply","nameLocation":"16575:12:27","nodeType":"VariableDeclaration","scope":9998,"src":"16559:28:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9489,"name":"uint256","nodeType":"ElementaryTypeName","src":"16559:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":9492,"mutability":"mutable","name":"_name","nameLocation":"16609:5:27","nodeType":"VariableDeclaration","scope":9998,"src":"16594:20:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9491,"name":"string","nodeType":"ElementaryTypeName","src":"16594:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9494,"mutability":"mutable","name":"_symbol","nameLocation":"16635:7:27","nodeType":"VariableDeclaration","scope":9998,"src":"16620:22:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9493,"name":"string","nodeType":"ElementaryTypeName","src":"16620:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9496,"mutability":"mutable","name":"_decimals","nameLocation":"16662:9:27","nodeType":"VariableDeclaration","scope":9998,"src":"16648:23:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9495,"name":"uint8","nodeType":"ElementaryTypeName","src":"16648:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":9516,"nodeType":"Block","src":"17053:83:27","statements":[{"expression":{"id":9506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9504,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"17063:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9505,"name":"__name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"17071:6:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17063:14:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9507,"nodeType":"ExpressionStatement","src":"17063:14:27"},{"expression":{"id":9510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9508,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"17087:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9509,"name":"__symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9501,"src":"17097:8:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17087:18:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9511,"nodeType":"ExpressionStatement","src":"17087:18:27"},{"expression":{"id":9514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9512,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"17115:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3138","id":9513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17127:2:27","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"17115:14:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9515,"nodeType":"ExpressionStatement","src":"17115:14:27"}]},"documentation":{"id":9497,"nodeType":"StructuredDocumentation","src":"16678:311:27","text":" @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction."},"id":9517,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9499,"mutability":"mutable","name":"__name","nameLocation":"17021:6:27","nodeType":"VariableDeclaration","scope":9517,"src":"17007:20:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9498,"name":"string","nodeType":"ElementaryTypeName","src":"17007:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9501,"mutability":"mutable","name":"__symbol","nameLocation":"17043:8:27","nodeType":"VariableDeclaration","scope":9517,"src":"17029:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9500,"name":"string","nodeType":"ElementaryTypeName","src":"17029:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17006:46:27"},"returnParameters":{"id":9503,"nodeType":"ParameterList","parameters":[],"src":"17053:0:27"},"scope":9998,"src":"16994:142:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9525,"nodeType":"Block","src":"17253:29:27","statements":[{"expression":{"id":9523,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"17270:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9522,"id":9524,"nodeType":"Return","src":"17263:12:27"}]},"documentation":{"id":9518,"nodeType":"StructuredDocumentation","src":"17142:54:27","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":9526,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"17210:4:27","nodeType":"FunctionDefinition","parameters":{"id":9519,"nodeType":"ParameterList","parameters":[],"src":"17214:2:27"},"returnParameters":{"id":9522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9526,"src":"17238:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9520,"name":"string","nodeType":"ElementaryTypeName","src":"17238:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17237:15:27"},"scope":9998,"src":"17201:81:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9535,"nodeType":"Block","src":"17337:30:27","statements":[{"expression":{"id":9533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9531,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"17345:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9532,"name":"newName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"17353:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17345:15:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9534,"nodeType":"ExpressionStatement","src":"17345:15:27"}]},"id":9536,"implemented":true,"kind":"function","modifiers":[],"name":"setName","nameLocation":"17297:7:27","nodeType":"FunctionDefinition","parameters":{"id":9529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9528,"mutability":"mutable","name":"newName","nameLocation":"17319:7:27","nodeType":"VariableDeclaration","scope":9536,"src":"17305:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9527,"name":"string","nodeType":"ElementaryTypeName","src":"17305:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17304:23:27"},"returnParameters":{"id":9530,"nodeType":"ParameterList","parameters":[],"src":"17337:0:27"},"scope":9998,"src":"17288:79:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9544,"nodeType":"Block","src":"17534:31:27","statements":[{"expression":{"id":9542,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"17551:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9541,"id":9543,"nodeType":"Return","src":"17544:14:27"}]},"documentation":{"id":9537,"nodeType":"StructuredDocumentation","src":"17373:102:27","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":9545,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"17489:6:27","nodeType":"FunctionDefinition","parameters":{"id":9538,"nodeType":"ParameterList","parameters":[],"src":"17495:2:27"},"returnParameters":{"id":9541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9545,"src":"17519:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9539,"name":"string","nodeType":"ElementaryTypeName","src":"17519:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17518:15:27"},"scope":9998,"src":"17480:85:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9554,"nodeType":"Block","src":"17624:34:27","statements":[{"expression":{"id":9552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9550,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"17632:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9551,"name":"newSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9547,"src":"17642:9:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17632:19:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9553,"nodeType":"ExpressionStatement","src":"17632:19:27"}]},"id":9555,"implemented":true,"kind":"function","modifiers":[],"name":"setSymbol","nameLocation":"17580:9:27","nodeType":"FunctionDefinition","parameters":{"id":9548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9547,"mutability":"mutable","name":"newSymbol","nameLocation":"17604:9:27","nodeType":"VariableDeclaration","scope":9555,"src":"17590:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9546,"name":"string","nodeType":"ElementaryTypeName","src":"17590:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17589:25:27"},"returnParameters":{"id":9549,"nodeType":"ParameterList","parameters":[],"src":"17624:0:27"},"scope":9998,"src":"17571:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9563,"nodeType":"Block","src":"18329:33:27","statements":[{"expression":{"id":9561,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"18346:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9560,"id":9562,"nodeType":"Return","src":"18339:16:27"}]},"documentation":{"id":9556,"nodeType":"StructuredDocumentation","src":"17664:612:27","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":9564,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"18290:8:27","nodeType":"FunctionDefinition","parameters":{"id":9557,"nodeType":"ParameterList","parameters":[],"src":"18298:2:27"},"returnParameters":{"id":9560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9564,"src":"18322:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9558,"name":"uint8","nodeType":"ElementaryTypeName","src":"18322:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18321:7:27"},"scope":9998,"src":"18281:81:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9573,"nodeType":"Block","src":"18417:38:27","statements":[{"expression":{"id":9571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9569,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"18425:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9570,"name":"newDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"18437:11:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"18425:23:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9572,"nodeType":"ExpressionStatement","src":"18425:23:27"}]},"id":9574,"implemented":true,"kind":"function","modifiers":[],"name":"setDecimals","nameLocation":"18377:11:27","nodeType":"FunctionDefinition","parameters":{"id":9567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9566,"mutability":"mutable","name":"newDecimals","nameLocation":"18395:11:27","nodeType":"VariableDeclaration","scope":9574,"src":"18389:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9565,"name":"uint8","nodeType":"ElementaryTypeName","src":"18389:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18388:19:27"},"returnParameters":{"id":9568,"nodeType":"ParameterList","parameters":[],"src":"18417:0:27"},"scope":9998,"src":"18368:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[8999],"body":{"id":9583,"nodeType":"Block","src":"18577:36:27","statements":[{"expression":{"id":9581,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"18594:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9580,"id":9582,"nodeType":"Return","src":"18587:19:27"}]},"documentation":{"id":9575,"nodeType":"StructuredDocumentation","src":"18461:49:27","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":9584,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"18524:11:27","nodeType":"FunctionDefinition","overrides":{"id":9577,"nodeType":"OverrideSpecifier","overrides":[],"src":"18550:8:27"},"parameters":{"id":9576,"nodeType":"ParameterList","parameters":[],"src":"18535:2:27"},"returnParameters":{"id":9580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9584,"src":"18568:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9578,"name":"uint256","nodeType":"ElementaryTypeName","src":"18568:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18567:9:27"},"scope":9998,"src":"18515:98:27","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[9007],"body":{"id":9597,"nodeType":"Block","src":"18746:42:27","statements":[{"expression":{"baseExpression":{"id":9593,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"18763:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9595,"indexExpression":{"id":9594,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9587,"src":"18773:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18763:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9592,"id":9596,"nodeType":"Return","src":"18756:25:27"}]},"documentation":{"id":9585,"nodeType":"StructuredDocumentation","src":"18619:47:27","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":9598,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"18680:9:27","nodeType":"FunctionDefinition","overrides":{"id":9589,"nodeType":"OverrideSpecifier","overrides":[],"src":"18719:8:27"},"parameters":{"id":9588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9587,"mutability":"mutable","name":"account","nameLocation":"18698:7:27","nodeType":"VariableDeclaration","scope":9598,"src":"18690:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9586,"name":"address","nodeType":"ElementaryTypeName","src":"18690:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18689:17:27"},"returnParameters":{"id":9592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9598,"src":"18737:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9590,"name":"uint256","nodeType":"ElementaryTypeName","src":"18737:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18736:9:27"},"scope":9998,"src":"18671:117:27","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[9017],"body":{"id":9618,"nodeType":"Block","src":"19083:80:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9610,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"19103:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9612,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9601,"src":"19117:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9613,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9603,"src":"19128:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9609,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9819,"src":"19093:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19093:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9615,"nodeType":"ExpressionStatement","src":"19093:42:27"},{"expression":{"hexValue":"74727565","id":9616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19152:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9608,"id":9617,"nodeType":"Return","src":"19145:11:27"}]},"documentation":{"id":9599,"nodeType":"StructuredDocumentation","src":"18794:192:27","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":9619,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"19000:8:27","nodeType":"FunctionDefinition","overrides":{"id":9605,"nodeType":"OverrideSpecifier","overrides":[],"src":"19059:8:27"},"parameters":{"id":9604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9601,"mutability":"mutable","name":"recipient","nameLocation":"19017:9:27","nodeType":"VariableDeclaration","scope":9619,"src":"19009:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9600,"name":"address","nodeType":"ElementaryTypeName","src":"19009:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9603,"mutability":"mutable","name":"amount","nameLocation":"19036:6:27","nodeType":"VariableDeclaration","scope":9619,"src":"19028:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9602,"name":"uint256","nodeType":"ElementaryTypeName","src":"19028:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19008:35:27"},"returnParameters":{"id":9608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9619,"src":"19077:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9606,"name":"bool","nodeType":"ElementaryTypeName","src":"19077:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19076:6:27"},"scope":9998,"src":"18991:172:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9027],"body":{"id":9636,"nodeType":"Block","src":"19319:51:27","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":9630,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"19336:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9632,"indexExpression":{"id":9631,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"19348:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19336:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9634,"indexExpression":{"id":9633,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"19355:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19336:27:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9629,"id":9635,"nodeType":"Return","src":"19329:34:27"}]},"documentation":{"id":9620,"nodeType":"StructuredDocumentation","src":"19169:47:27","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":9637,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"19230:9:27","nodeType":"FunctionDefinition","overrides":{"id":9626,"nodeType":"OverrideSpecifier","overrides":[],"src":"19292:8:27"},"parameters":{"id":9625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9622,"mutability":"mutable","name":"owner","nameLocation":"19248:5:27","nodeType":"VariableDeclaration","scope":9637,"src":"19240:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9621,"name":"address","nodeType":"ElementaryTypeName","src":"19240:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9624,"mutability":"mutable","name":"spender","nameLocation":"19263:7:27","nodeType":"VariableDeclaration","scope":9637,"src":"19255:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9623,"name":"address","nodeType":"ElementaryTypeName","src":"19255:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19239:32:27"},"returnParameters":{"id":9629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9637,"src":"19310:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9627,"name":"uint256","nodeType":"ElementaryTypeName","src":"19310:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19309:9:27"},"scope":9998,"src":"19221:149:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9037],"body":{"id":9657,"nodeType":"Block","src":"19597:77:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9649,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"19616:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19616:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9651,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"19630:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9652,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9642,"src":"19639:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9648,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"19607:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19607:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9654,"nodeType":"ExpressionStatement","src":"19607:39:27"},{"expression":{"hexValue":"74727565","id":9655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19663:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9647,"id":9656,"nodeType":"Return","src":"19656:11:27"}]},"documentation":{"id":9638,"nodeType":"StructuredDocumentation","src":"19376:127:27","text":" @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":9658,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"19517:7:27","nodeType":"FunctionDefinition","overrides":{"id":9644,"nodeType":"OverrideSpecifier","overrides":[],"src":"19573:8:27"},"parameters":{"id":9643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9640,"mutability":"mutable","name":"spender","nameLocation":"19533:7:27","nodeType":"VariableDeclaration","scope":9658,"src":"19525:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9639,"name":"address","nodeType":"ElementaryTypeName","src":"19525:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9642,"mutability":"mutable","name":"amount","nameLocation":"19550:6:27","nodeType":"VariableDeclaration","scope":9658,"src":"19542:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9641,"name":"uint256","nodeType":"ElementaryTypeName","src":"19542:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19524:33:27"},"returnParameters":{"id":9647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9658,"src":"19591:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9645,"name":"bool","nodeType":"ElementaryTypeName","src":"19591:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19590:6:27"},"scope":9998,"src":"19508:166:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9049],"body":{"id":9695,"nodeType":"Block","src":"20246:218:27","statements":[{"expression":{"arguments":[{"id":9672,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"20266:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9673,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9663,"src":"20274:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"20285:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9671,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9819,"src":"20256:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20256:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9676,"nodeType":"ExpressionStatement","src":"20256:36:27"},{"expression":{"arguments":[{"id":9678,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"20311:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":9679,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"20319:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":9688,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"20371:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365","id":9689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20392:42:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""},"value":"ERC20: transfer amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""}],"expression":{"baseExpression":{"baseExpression":{"id":9681,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"20333:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9683,"indexExpression":{"id":9682,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"20345:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20333:19:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9686,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"20353:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20353:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20333:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20367:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"20333:37:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20333:102:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9677,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"20302:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:134:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9692,"nodeType":"ExpressionStatement","src":"20302:134:27"},{"expression":{"hexValue":"74727565","id":9693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20453:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9670,"id":9694,"nodeType":"Return","src":"20446:11:27"}]},"documentation":{"id":9659,"nodeType":"StructuredDocumentation","src":"19680:449:27","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20};\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":9696,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"20143:12:27","nodeType":"FunctionDefinition","overrides":{"id":9667,"nodeType":"OverrideSpecifier","overrides":[],"src":"20222:8:27"},"parameters":{"id":9666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9661,"mutability":"mutable","name":"sender","nameLocation":"20164:6:27","nodeType":"VariableDeclaration","scope":9696,"src":"20156:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9660,"name":"address","nodeType":"ElementaryTypeName","src":"20156:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9663,"mutability":"mutable","name":"recipient","nameLocation":"20180:9:27","nodeType":"VariableDeclaration","scope":9696,"src":"20172:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9662,"name":"address","nodeType":"ElementaryTypeName","src":"20172:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9665,"mutability":"mutable","name":"amount","nameLocation":"20199:6:27","nodeType":"VariableDeclaration","scope":9696,"src":"20191:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9664,"name":"uint256","nodeType":"ElementaryTypeName","src":"20191:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20155:51:27"},"returnParameters":{"id":9670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9696,"src":"20240:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9668,"name":"bool","nodeType":"ElementaryTypeName","src":"20240:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20239:6:27"},"scope":9998,"src":"20134:330:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9723,"nodeType":"Block","src":"20953:121:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9707,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"20972:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20972:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9709,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"20986:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":9717,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9701,"src":"21034:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"baseExpression":{"id":9710,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"20995:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9713,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9711,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"21007:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21007:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20995:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9715,"indexExpression":{"id":9714,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"21021:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20995:34:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"20995:38:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20995:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9706,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"20963:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:83:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9720,"nodeType":"ExpressionStatement","src":"20963:83:27"},{"expression":{"hexValue":"74727565","id":9721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21063:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9705,"id":9722,"nodeType":"Return","src":"21056:11:27"}]},"documentation":{"id":9697,"nodeType":"StructuredDocumentation","src":"20470:384:27","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":9724,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"20868:17:27","nodeType":"FunctionDefinition","parameters":{"id":9702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9699,"mutability":"mutable","name":"spender","nameLocation":"20894:7:27","nodeType":"VariableDeclaration","scope":9724,"src":"20886:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9698,"name":"address","nodeType":"ElementaryTypeName","src":"20886:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9701,"mutability":"mutable","name":"addedValue","nameLocation":"20911:10:27","nodeType":"VariableDeclaration","scope":9724,"src":"20903:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9700,"name":"uint256","nodeType":"ElementaryTypeName","src":"20903:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20885:37:27"},"returnParameters":{"id":9705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9724,"src":"20947:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9703,"name":"bool","nodeType":"ElementaryTypeName","src":"20947:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20946:6:27"},"scope":9998,"src":"20859:215:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9752,"nodeType":"Block","src":"21660:180:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9735,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"21679:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21679:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9737,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9727,"src":"21693:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":9745,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9729,"src":"21741:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":9746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21771:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"expression":{"baseExpression":{"baseExpression":{"id":9738,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"21702:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9741,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9739,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"21714:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21714:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21702:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9743,"indexExpression":{"id":9742,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9727,"src":"21728:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21702:34:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21737:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"21702:38:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21702:109:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9734,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"21670:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:142:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9749,"nodeType":"ExpressionStatement","src":"21670:142:27"},{"expression":{"hexValue":"74727565","id":9750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21829:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9733,"id":9751,"nodeType":"Return","src":"21822:11:27"}]},"documentation":{"id":9725,"nodeType":"StructuredDocumentation","src":"21080:476:27","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":9753,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"21570:17:27","nodeType":"FunctionDefinition","parameters":{"id":9730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9727,"mutability":"mutable","name":"spender","nameLocation":"21596:7:27","nodeType":"VariableDeclaration","scope":9753,"src":"21588:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9726,"name":"address","nodeType":"ElementaryTypeName","src":"21588:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9729,"mutability":"mutable","name":"subtractedValue","nameLocation":"21613:15:27","nodeType":"VariableDeclaration","scope":9753,"src":"21605:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9728,"name":"uint256","nodeType":"ElementaryTypeName","src":"21605:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21587:42:27"},"returnParameters":{"id":9733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9753,"src":"21654:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9731,"name":"bool","nodeType":"ElementaryTypeName","src":"21654:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21653:6:27"},"scope":9998,"src":"21561:279:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9818,"nodeType":"Block","src":"22401:443:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9764,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22419:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22437:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22429:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9765,"name":"address","nodeType":"ElementaryTypeName","src":"22429:7:27","typeDescriptions":{}}},"id":9768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22429:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22419:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":9770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22441:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":9763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22411:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22411:70:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9772,"nodeType":"ExpressionStatement","src":"22411:70:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9774,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22499:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22520:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22512:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9775,"name":"address","nodeType":"ElementaryTypeName","src":"22512:7:27","typeDescriptions":{}}},"id":9778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22512:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22499:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":9780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22524:37:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":9773,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22491:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22491:71:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9782,"nodeType":"ExpressionStatement","src":"22491:71:27"},{"expression":{"arguments":[{"id":9784,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22594:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9785,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22602:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9786,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22613:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9783,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"22573:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9788,"nodeType":"ExpressionStatement","src":"22573:47:27"},{"expression":{"id":9799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9789,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22631:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9791,"indexExpression":{"id":9790,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22641:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22631:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9796,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22673:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":9797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22681:40:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"expression":{"baseExpression":{"id":9792,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22651:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9794,"indexExpression":{"id":9793,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22661:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22651:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22669:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"22651:21:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22651:71:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22631:91:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9800,"nodeType":"ExpressionStatement","src":"22631:91:27"},{"expression":{"id":9810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9801,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22732:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9803,"indexExpression":{"id":9802,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22742:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22732:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22780:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":9804,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22755:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9806,"indexExpression":{"id":9805,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22765:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22755:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22776:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"22755:24:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22755:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22732:55:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9811,"nodeType":"ExpressionStatement","src":"22732:55:27"},{"eventCall":{"arguments":[{"id":9813,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22811:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9814,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22819:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9815,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22830:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9812,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"22802:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22802:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9817,"nodeType":"EmitStatement","src":"22797:40:27"}]},"documentation":{"id":9754,"nodeType":"StructuredDocumentation","src":"21846:463:27","text":" @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."},"id":9819,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"22323:9:27","nodeType":"FunctionDefinition","parameters":{"id":9761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9756,"mutability":"mutable","name":"sender","nameLocation":"22341:6:27","nodeType":"VariableDeclaration","scope":9819,"src":"22333:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9755,"name":"address","nodeType":"ElementaryTypeName","src":"22333:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9758,"mutability":"mutable","name":"recipient","nameLocation":"22357:9:27","nodeType":"VariableDeclaration","scope":9819,"src":"22349:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9757,"name":"address","nodeType":"ElementaryTypeName","src":"22349:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9760,"mutability":"mutable","name":"amount","nameLocation":"22376:6:27","nodeType":"VariableDeclaration","scope":9819,"src":"22368:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9759,"name":"uint256","nodeType":"ElementaryTypeName","src":"22368:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22332:51:27"},"returnParameters":{"id":9762,"nodeType":"ParameterList","parameters":[],"src":"22401:0:27"},"scope":9998,"src":"22314:530:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9873,"nodeType":"Block","src":"23178:306:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9828,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23197:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23216:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23208:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9829,"name":"address","nodeType":"ElementaryTypeName","src":"23208:7:27","typeDescriptions":{}}},"id":9832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23208:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23197:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":9834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23220:33:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":9827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23189:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23189:65:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9836,"nodeType":"ExpressionStatement","src":"23189:65:27"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23294:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23286:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9838,"name":"address","nodeType":"ElementaryTypeName","src":"23286:7:27","typeDescriptions":{}}},"id":9841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23286:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9842,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23298:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9843,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23307:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9837,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"23265:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23265:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9845,"nodeType":"ExpressionStatement","src":"23265:49:27"},{"expression":{"id":9851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9846,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23325:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9849,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23357:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9847,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23340:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23353:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"23340:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23340:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23325:39:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9852,"nodeType":"ExpressionStatement","src":"23325:39:27"},{"expression":{"id":9862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9853,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"23374:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9855,"indexExpression":{"id":9854,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23384:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23374:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23418:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":9856,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"23395:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9858,"indexExpression":{"id":9857,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23405:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23395:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23414:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"23395:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23395:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23374:51:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9863,"nodeType":"ExpressionStatement","src":"23374:51:27"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23457:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23449:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9865,"name":"address","nodeType":"ElementaryTypeName","src":"23449:7:27","typeDescriptions":{}}},"id":9868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23449:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9869,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23461:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9870,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23470:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9864,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"23440:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23440:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9872,"nodeType":"EmitStatement","src":"23435:42:27"}]},"documentation":{"id":9820,"nodeType":"StructuredDocumentation","src":"22850:260:27","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address. "},"functionSelector":"4e6ec247","id":9874,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"23124:5:27","nodeType":"FunctionDefinition","parameters":{"id":9825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9822,"mutability":"mutable","name":"account","nameLocation":"23138:7:27","nodeType":"VariableDeclaration","scope":9874,"src":"23130:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9821,"name":"address","nodeType":"ElementaryTypeName","src":"23130:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9824,"mutability":"mutable","name":"amount","nameLocation":"23155:6:27","nodeType":"VariableDeclaration","scope":9874,"src":"23147:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9823,"name":"uint256","nodeType":"ElementaryTypeName","src":"23147:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23129:33:27"},"returnParameters":{"id":9826,"nodeType":"ParameterList","parameters":[],"src":"23178:0:27"},"scope":9998,"src":"23115:369:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9929,"nodeType":"Block","src":"23868:345:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9883,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"23886:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23905:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23897:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9884,"name":"address","nodeType":"ElementaryTypeName","src":"23897:7:27","typeDescriptions":{}}},"id":9887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23897:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23886:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":9889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23909:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":9882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23878:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23878:67:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9891,"nodeType":"ExpressionStatement","src":"23878:67:27"},{"expression":{"arguments":[{"id":9893,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"23977:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23994:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23986:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9894,"name":"address","nodeType":"ElementaryTypeName","src":"23986:7:27","typeDescriptions":{}}},"id":9897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23986:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"23998:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9892,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"23956:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23956:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9900,"nodeType":"ExpressionStatement","src":"23956:49:27"},{"expression":{"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9901,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"24016:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9903,"indexExpression":{"id":9902,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"24026:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24016:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"24060:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":9909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24068:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"expression":{"baseExpression":{"id":9904,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"24037:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9906,"indexExpression":{"id":9905,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"24047:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24037:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24056:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"24037:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24037:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24016:89:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9912,"nodeType":"ExpressionStatement","src":"24016:89:27"},{"expression":{"id":9918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9913,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"24115:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"24147:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9914,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"24130:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24143:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9113,"src":"24130:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24130:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24115:39:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9919,"nodeType":"ExpressionStatement","src":"24115:39:27"},{"eventCall":{"arguments":[{"id":9921,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"24178:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24195:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24187:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9922,"name":"address","nodeType":"ElementaryTypeName","src":"24187:7:27","typeDescriptions":{}}},"id":9925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24187:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9926,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"24199:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9920,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"24169:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9928,"nodeType":"EmitStatement","src":"24164:42:27"}]},"documentation":{"id":9875,"nodeType":"StructuredDocumentation","src":"23490:308:27","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":9930,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"23812:5:27","nodeType":"FunctionDefinition","parameters":{"id":9880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9877,"mutability":"mutable","name":"account","nameLocation":"23826:7:27","nodeType":"VariableDeclaration","scope":9930,"src":"23818:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9876,"name":"address","nodeType":"ElementaryTypeName","src":"23818:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9879,"mutability":"mutable","name":"amount","nameLocation":"23843:6:27","nodeType":"VariableDeclaration","scope":9930,"src":"23835:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9878,"name":"uint256","nodeType":"ElementaryTypeName","src":"23835:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23817:33:27"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[],"src":"23868:0:27"},"scope":9998,"src":"23803:410:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9974,"nodeType":"Block","src":"24721:257:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9941,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"24739:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24756:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24748:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9942,"name":"address","nodeType":"ElementaryTypeName","src":"24748:7:27","typeDescriptions":{}}},"id":9945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24748:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24739:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":9947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24760:38:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":9940,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24731:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24731:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9949,"nodeType":"ExpressionStatement","src":"24731:68:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9951,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"24817:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24836:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24828:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9952,"name":"address","nodeType":"ElementaryTypeName","src":"24828:7:27","typeDescriptions":{}}},"id":9955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24828:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24817:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":9957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24840:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":9950,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24809:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24809:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9959,"nodeType":"ExpressionStatement","src":"24809:68:27"},{"expression":{"id":9966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9960,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"24888:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9963,"indexExpression":{"id":9961,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"24900:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24888:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9964,"indexExpression":{"id":9962,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"24907:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24888:27:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9965,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9937,"src":"24918:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24888:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9967,"nodeType":"ExpressionStatement","src":"24888:36:27"},{"eventCall":{"arguments":[{"id":9969,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"24948:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9970,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"24955:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9971,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9937,"src":"24964:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9968,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9067,"src":"24939:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24939:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9973,"nodeType":"EmitStatement","src":"24934:37:27"}]},"documentation":{"id":9931,"nodeType":"StructuredDocumentation","src":"24219:414:27","text":" @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n This is internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":9975,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"24647:8:27","nodeType":"FunctionDefinition","parameters":{"id":9938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9933,"mutability":"mutable","name":"owner","nameLocation":"24664:5:27","nodeType":"VariableDeclaration","scope":9975,"src":"24656:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9932,"name":"address","nodeType":"ElementaryTypeName","src":"24656:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9935,"mutability":"mutable","name":"spender","nameLocation":"24679:7:27","nodeType":"VariableDeclaration","scope":9975,"src":"24671:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9934,"name":"address","nodeType":"ElementaryTypeName","src":"24671:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9937,"mutability":"mutable","name":"amount","nameLocation":"24696:6:27","nodeType":"VariableDeclaration","scope":9975,"src":"24688:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9936,"name":"uint256","nodeType":"ElementaryTypeName","src":"24688:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24655:48:27"},"returnParameters":{"id":9939,"nodeType":"ParameterList","parameters":[],"src":"24721:0:27"},"scope":9998,"src":"24638:340:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9985,"nodeType":"Block","src":"25351:38:27","statements":[{"expression":{"id":9983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9981,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"25361:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9982,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9978,"src":"25373:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"25361:21:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9984,"nodeType":"ExpressionStatement","src":"25361:21:27"}]},"documentation":{"id":9976,"nodeType":"StructuredDocumentation","src":"24984:312:27","text":" @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."},"id":9986,"implemented":true,"kind":"function","modifiers":[],"name":"_setupDecimals","nameLocation":"25310:14:27","nodeType":"FunctionDefinition","parameters":{"id":9979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9978,"mutability":"mutable","name":"decimals_","nameLocation":"25331:9:27","nodeType":"VariableDeclaration","scope":9986,"src":"25325:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9977,"name":"uint8","nodeType":"ElementaryTypeName","src":"25325:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"25324:17:27"},"returnParameters":{"id":9980,"nodeType":"ParameterList","parameters":[],"src":"25351:0:27"},"scope":9998,"src":"25301:88:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9996,"nodeType":"Block","src":"26065:3:27","statements":[]},"documentation":{"id":9987,"nodeType":"StructuredDocumentation","src":"25395:576:27","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":9997,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"25985:20:27","nodeType":"FunctionDefinition","parameters":{"id":9994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9989,"mutability":"mutable","name":"from","nameLocation":"26014:4:27","nodeType":"VariableDeclaration","scope":9997,"src":"26006:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9988,"name":"address","nodeType":"ElementaryTypeName","src":"26006:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9991,"mutability":"mutable","name":"to","nameLocation":"26028:2:27","nodeType":"VariableDeclaration","scope":9997,"src":"26020:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9990,"name":"address","nodeType":"ElementaryTypeName","src":"26020:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9993,"mutability":"mutable","name":"amount","nameLocation":"26040:6:27","nodeType":"VariableDeclaration","scope":9997,"src":"26032:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9992,"name":"uint256","nodeType":"ElementaryTypeName","src":"26032:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26005:42:27"},"returnParameters":{"id":9995,"nodeType":"ParameterList","parameters":[],"src":"26065:0:27"},"scope":9998,"src":"25976:92:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":11433,"src":"16326:9744:27","usedErrors":[],"usedEvents":[9058,9067]},{"id":9999,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"26132:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":10000,"nodeType":"StructuredDocumentation","src":"26158:665:27","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`\n (`UintSet`) are supported."},"fullyImplemented":true,"id":10421,"linearizedBaseContracts":[10421],"name":"EnumerableSet","nameLocation":"26832:13:27","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":10008,"members":[{"constant":false,"id":10003,"mutability":"mutable","name":"_values","nameLocation":"27356:7:27","nodeType":"VariableDeclaration","scope":10008,"src":"27346:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":10001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27346:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10002,"nodeType":"ArrayTypeName","src":"27346:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":10007,"mutability":"mutable","name":"_indexes","nameLocation":"27526:8:27","nodeType":"VariableDeclaration","scope":10008,"src":"27497:37:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":10006,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27506:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"27497:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10005,"name":"uint256","nodeType":"ElementaryTypeName","src":"27517:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"27299:3:27","nodeType":"StructDefinition","scope":10421,"src":"27292:249:27","visibility":"public"},{"body":{"id":10049,"nodeType":"Block","src":"27780:335:27","statements":[{"condition":{"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27794:22:27","subExpression":{"arguments":[{"id":10020,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"27805:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":10021,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"27810:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10019,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"27795:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27795:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10047,"nodeType":"Block","src":"28072:37:27","statements":[{"expression":{"hexValue":"66616c7365","id":10045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28093:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10018,"id":10046,"nodeType":"Return","src":"28086:12:27"}]},"id":10048,"nodeType":"IfStatement","src":"27790:319:27","trueBody":{"id":10044,"nodeType":"Block","src":"27818:248:27","statements":[{"expression":{"arguments":[{"id":10029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"27849:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":10024,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"27832:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27836:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"27832:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27844:4:27","memberName":"push","nodeType":"MemberAccess","src":"27832:16:27","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":10030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27832:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10031,"nodeType":"ExpressionStatement","src":"27832:23:27"},{"expression":{"id":10040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10032,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"27990:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27994:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"27990:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10036,"indexExpression":{"id":10034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"28003:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27990:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":10037,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"28012:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28016:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"28012:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28024:6:27","memberName":"length","nodeType":"MemberAccess","src":"28012:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27990:40:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10041,"nodeType":"ExpressionStatement","src":"27990:40:27"},{"expression":{"hexValue":"74727565","id":10042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28051:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10018,"id":10043,"nodeType":"Return","src":"28044:11:27"}]}}]},"documentation":{"id":10009,"nodeType":"StructuredDocumentation","src":"27547:159:27","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10050,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"27720:4:27","nodeType":"FunctionDefinition","parameters":{"id":10015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10012,"mutability":"mutable","name":"set","nameLocation":"27737:3:27","nodeType":"VariableDeclaration","scope":10050,"src":"27725:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10011,"nodeType":"UserDefinedTypeName","pathNode":{"id":10010,"name":"Set","nameLocations":["27725:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"27725:3:27"},"referencedDeclaration":10008,"src":"27725:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10014,"mutability":"mutable","name":"value","nameLocation":"27750:5:27","nodeType":"VariableDeclaration","scope":10050,"src":"27742:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27742:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27724:32:27"},"returnParameters":{"id":10018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10050,"src":"27774:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10016,"name":"bool","nodeType":"ElementaryTypeName","src":"27774:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27773:6:27"},"scope":10421,"src":"27711:404:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10130,"nodeType":"Block","src":"28355:1440:27","statements":[{"assignments":[10062],"declarations":[{"constant":false,"id":10062,"mutability":"mutable","name":"valueIndex","nameLocation":"28473:10:27","nodeType":"VariableDeclaration","scope":10130,"src":"28465:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10061,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10067,"initialValue":{"baseExpression":{"expression":{"id":10063,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"28486:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28490:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"28486:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10066,"indexExpression":{"id":10065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10056,"src":"28499:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28486:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:40:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10068,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"28520:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28534:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28520:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10128,"nodeType":"Block","src":"29752:37:27","statements":[{"expression":{"hexValue":"66616c7365","id":10126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29773:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10060,"id":10127,"nodeType":"Return","src":"29766:12:27"}]},"id":10129,"nodeType":"IfStatement","src":"28516:1273:27","trueBody":{"id":10125,"nodeType":"Block","src":"28537:1209:27","statements":[{"assignments":[10072],"declarations":[{"constant":false,"id":10072,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"28885:13:27","nodeType":"VariableDeclaration","scope":10125,"src":"28877:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10071,"name":"uint256","nodeType":"ElementaryTypeName","src":"28877:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10076,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10073,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"28901:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28914:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28901:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28877:38:27"},{"assignments":[10078],"declarations":[{"constant":false,"id":10078,"mutability":"mutable","name":"lastIndex","nameLocation":"28937:9:27","nodeType":"VariableDeclaration","scope":10125,"src":"28929:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10077,"name":"uint256","nodeType":"ElementaryTypeName","src":"28929:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10084,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10079,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"28949:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28953:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"28949:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28961:6:27","memberName":"length","nodeType":"MemberAccess","src":"28949:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28970:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28949:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28929:42:27"},{"assignments":[10086],"declarations":[{"constant":false,"id":10086,"mutability":"mutable","name":"lastvalue","nameLocation":"29219:9:27","nodeType":"VariableDeclaration","scope":10125,"src":"29211:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29211:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10091,"initialValue":{"baseExpression":{"expression":{"id":10087,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29231:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29235:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"29231:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10090,"indexExpression":{"id":10089,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"29243:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29231:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"29211:42:27"},{"expression":{"id":10098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10092,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29345:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29349:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"29345:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10096,"indexExpression":{"id":10094,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10072,"src":"29357:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29345:26:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10097,"name":"lastvalue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"29374:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29345:38:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10099,"nodeType":"ExpressionStatement","src":"29345:38:27"},{"expression":{"id":10108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10100,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29449:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29453:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"29449:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10104,"indexExpression":{"id":10102,"name":"lastvalue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"29462:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29449:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10105,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10072,"src":"29475:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29491:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29475:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29449:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10109,"nodeType":"ExpressionStatement","src":"29449:43:27"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10110,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29598:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29602:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"29598:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29610:3:27","memberName":"pop","nodeType":"MemberAccess","src":"29598:15:27","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":10115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29598:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10116,"nodeType":"ExpressionStatement","src":"29598:17:27"},{"expression":{"id":10121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"29683:26:27","subExpression":{"baseExpression":{"expression":{"id":10117,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29690:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29694:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"29690:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10120,"indexExpression":{"id":10119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10056,"src":"29703:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29690:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10122,"nodeType":"ExpressionStatement","src":"29683:26:27"},{"expression":{"hexValue":"74727565","id":10123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29731:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10060,"id":10124,"nodeType":"Return","src":"29724:11:27"}]}}]},"documentation":{"id":10051,"nodeType":"StructuredDocumentation","src":"28121:157:27","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10131,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"28292:7:27","nodeType":"FunctionDefinition","parameters":{"id":10057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10054,"mutability":"mutable","name":"set","nameLocation":"28312:3:27","nodeType":"VariableDeclaration","scope":10131,"src":"28300:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10053,"nodeType":"UserDefinedTypeName","pathNode":{"id":10052,"name":"Set","nameLocations":["28300:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"28300:3:27"},"referencedDeclaration":10008,"src":"28300:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10056,"mutability":"mutable","name":"value","nameLocation":"28325:5:27","nodeType":"VariableDeclaration","scope":10131,"src":"28317:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28317:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"28299:32:27"},"returnParameters":{"id":10060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10131,"src":"28349:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10058,"name":"bool","nodeType":"ElementaryTypeName","src":"28349:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28348:6:27"},"scope":10421,"src":"28283:1512:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10149,"nodeType":"Block","src":"29955:48:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":10142,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10135,"src":"29972:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29976:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"29972:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10145,"indexExpression":{"id":10144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10137,"src":"29985:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29972:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29995:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29972:24:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10141,"id":10148,"nodeType":"Return","src":"29965:31:27"}]},"documentation":{"id":10132,"nodeType":"StructuredDocumentation","src":"29801:70:27","text":" @dev Returns true if the value is in the set. O(1)."},"id":10150,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"29885:9:27","nodeType":"FunctionDefinition","parameters":{"id":10138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10135,"mutability":"mutable","name":"set","nameLocation":"29907:3:27","nodeType":"VariableDeclaration","scope":10150,"src":"29895:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10134,"nodeType":"UserDefinedTypeName","pathNode":{"id":10133,"name":"Set","nameLocations":["29895:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"29895:3:27"},"referencedDeclaration":10008,"src":"29895:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10137,"mutability":"mutable","name":"value","nameLocation":"29920:5:27","nodeType":"VariableDeclaration","scope":10150,"src":"29912:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29912:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"29894:32:27"},"returnParameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10150,"src":"29949:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10139,"name":"bool","nodeType":"ElementaryTypeName","src":"29949:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29948:6:27"},"scope":10421,"src":"29876:127:27","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10163,"nodeType":"Block","src":"30149:42:27","statements":[{"expression":{"expression":{"expression":{"id":10159,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"30166:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30170:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"30166:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30178:6:27","memberName":"length","nodeType":"MemberAccess","src":"30166:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10158,"id":10162,"nodeType":"Return","src":"30159:25:27"}]},"documentation":{"id":10151,"nodeType":"StructuredDocumentation","src":"30009:70:27","text":" @dev Returns the number of values on the set. O(1)."},"id":10164,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"30093:7:27","nodeType":"FunctionDefinition","parameters":{"id":10155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10154,"mutability":"mutable","name":"set","nameLocation":"30113:3:27","nodeType":"VariableDeclaration","scope":10164,"src":"30101:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10153,"nodeType":"UserDefinedTypeName","pathNode":{"id":10152,"name":"Set","nameLocations":["30101:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"30101:3:27"},"referencedDeclaration":10008,"src":"30101:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"30100:17:27"},"returnParameters":{"id":10158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10164,"src":"30140:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10156,"name":"uint256","nodeType":"ElementaryTypeName","src":"30140:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30139:9:27"},"scope":10421,"src":"30084:107:27","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10189,"nodeType":"Block","src":"30599:125:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10176,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10168,"src":"30617:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30621:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"30617:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30629:6:27","memberName":"length","nodeType":"MemberAccess","src":"30617:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10179,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"30638:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30617:26:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473","id":10181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30645:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb","typeString":"literal_string \"EnumerableSet: index out of bounds\""},"value":"EnumerableSet: index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb","typeString":"literal_string \"EnumerableSet: index out of bounds\""}],"id":10175,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30609:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30609:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10183,"nodeType":"ExpressionStatement","src":"30609:73:27"},{"expression":{"baseExpression":{"expression":{"id":10184,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10168,"src":"30699:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"30699:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10187,"indexExpression":{"id":10186,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"30711:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30699:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10174,"id":10188,"nodeType":"Return","src":"30692:25:27"}]},"documentation":{"id":10165,"nodeType":"StructuredDocumentation","src":"30196:322:27","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":10190,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"30532:3:27","nodeType":"FunctionDefinition","parameters":{"id":10171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10168,"mutability":"mutable","name":"set","nameLocation":"30548:3:27","nodeType":"VariableDeclaration","scope":10190,"src":"30536:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10167,"nodeType":"UserDefinedTypeName","pathNode":{"id":10166,"name":"Set","nameLocations":["30536:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"30536:3:27"},"referencedDeclaration":10008,"src":"30536:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10170,"mutability":"mutable","name":"index","nameLocation":"30561:5:27","nodeType":"VariableDeclaration","scope":10190,"src":"30553:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10169,"name":"uint256","nodeType":"ElementaryTypeName","src":"30553:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30535:32:27"},"returnParameters":{"id":10174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10190,"src":"30590:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30590:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30589:9:27"},"scope":10421,"src":"30523:201:27","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.AddressSet","id":10194,"members":[{"constant":false,"id":10193,"mutability":"mutable","name":"_inner","nameLocation":"30781:6:27","nodeType":"VariableDeclaration","scope":10194,"src":"30777:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10192,"nodeType":"UserDefinedTypeName","pathNode":{"id":10191,"name":"Set","nameLocations":["30777:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"30777:3:27"},"referencedDeclaration":10008,"src":"30777:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"30756:10:27","nodeType":"StructDefinition","scope":10421,"src":"30749:45:27","visibility":"public"},{"body":{"id":10220,"nodeType":"Block","src":"31040:74:27","statements":[{"expression":{"arguments":[{"expression":{"id":10206,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"31062:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31066:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31062:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":10214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"31098:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31090:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10212,"name":"uint160","nodeType":"ElementaryTypeName","src":"31090:7:27","typeDescriptions":{}}},"id":10215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31090:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31082:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31082:7:27","typeDescriptions":{}}},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31082:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31074:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31074:7:27","typeDescriptions":{}}},"id":10217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31074:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10205,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"31057:4:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31057:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10204,"id":10219,"nodeType":"Return","src":"31050:57:27"}]},"documentation":{"id":10195,"nodeType":"StructuredDocumentation","src":"30800:159:27","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10221,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"30973:3:27","nodeType":"FunctionDefinition","parameters":{"id":10201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"set","nameLocation":"30996:3:27","nodeType":"VariableDeclaration","scope":10221,"src":"30977:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10197,"nodeType":"UserDefinedTypeName","pathNode":{"id":10196,"name":"AddressSet","nameLocations":["30977:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"30977:10:27"},"referencedDeclaration":10194,"src":"30977:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10200,"mutability":"mutable","name":"value","nameLocation":"31009:5:27","nodeType":"VariableDeclaration","scope":10221,"src":"31001:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10199,"name":"address","nodeType":"ElementaryTypeName","src":"31001:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30976:39:27"},"returnParameters":{"id":10204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10221,"src":"31034:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10202,"name":"bool","nodeType":"ElementaryTypeName","src":"31034:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31033:6:27"},"scope":10421,"src":"30964:150:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10247,"nodeType":"Block","src":"31361:77:27","statements":[{"expression":{"arguments":[{"expression":{"id":10233,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10225,"src":"31386:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31390:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31386:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":10241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10227,"src":"31422:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31414:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10239,"name":"uint160","nodeType":"ElementaryTypeName","src":"31414:7:27","typeDescriptions":{}}},"id":10242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31414:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31406:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10237,"name":"uint256","nodeType":"ElementaryTypeName","src":"31406:7:27","typeDescriptions":{}}},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31406:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31398:7:27","typeDescriptions":{}}},"id":10244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10232,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"31378:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10231,"id":10246,"nodeType":"Return","src":"31371:60:27"}]},"documentation":{"id":10222,"nodeType":"StructuredDocumentation","src":"31120:157:27","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10248,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"31291:6:27","nodeType":"FunctionDefinition","parameters":{"id":10228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10225,"mutability":"mutable","name":"set","nameLocation":"31317:3:27","nodeType":"VariableDeclaration","scope":10248,"src":"31298:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10224,"nodeType":"UserDefinedTypeName","pathNode":{"id":10223,"name":"AddressSet","nameLocations":["31298:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"31298:10:27"},"referencedDeclaration":10194,"src":"31298:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10227,"mutability":"mutable","name":"value","nameLocation":"31330:5:27","nodeType":"VariableDeclaration","scope":10248,"src":"31322:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10226,"name":"address","nodeType":"ElementaryTypeName","src":"31322:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31297:39:27"},"returnParameters":{"id":10231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10248,"src":"31355:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10229,"name":"bool","nodeType":"ElementaryTypeName","src":"31355:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31354:6:27"},"scope":10421,"src":"31282:156:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10274,"nodeType":"Block","src":"31605:79:27","statements":[{"expression":{"arguments":[{"expression":{"id":10260,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10252,"src":"31632:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31636:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31632:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":10268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"31668:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31660:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10266,"name":"uint160","nodeType":"ElementaryTypeName","src":"31660:7:27","typeDescriptions":{}}},"id":10269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31660:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31652:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10264,"name":"uint256","nodeType":"ElementaryTypeName","src":"31652:7:27","typeDescriptions":{}}},"id":10270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31652:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31644:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31644:7:27","typeDescriptions":{}}},"id":10271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31644:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10259,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"31622:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31622:55:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10258,"id":10273,"nodeType":"Return","src":"31615:62:27"}]},"documentation":{"id":10249,"nodeType":"StructuredDocumentation","src":"31444:70:27","text":" @dev Returns true if the value is in the set. O(1)."},"id":10275,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"31528:8:27","nodeType":"FunctionDefinition","parameters":{"id":10255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10252,"mutability":"mutable","name":"set","nameLocation":"31556:3:27","nodeType":"VariableDeclaration","scope":10275,"src":"31537:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10251,"nodeType":"UserDefinedTypeName","pathNode":{"id":10250,"name":"AddressSet","nameLocations":["31537:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"31537:10:27"},"referencedDeclaration":10194,"src":"31537:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10254,"mutability":"mutable","name":"value","nameLocation":"31569:5:27","nodeType":"VariableDeclaration","scope":10275,"src":"31561:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10253,"name":"address","nodeType":"ElementaryTypeName","src":"31561:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31536:39:27"},"returnParameters":{"id":10258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10275,"src":"31599:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10256,"name":"bool","nodeType":"ElementaryTypeName","src":"31599:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31598:6:27"},"scope":10421,"src":"31519:165:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10289,"nodeType":"Block","src":"31837:43:27","statements":[{"expression":{"arguments":[{"expression":{"id":10285,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10279,"src":"31862:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31866:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31862:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":10284,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"31854:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":10287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31854:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10283,"id":10288,"nodeType":"Return","src":"31847:26:27"}]},"documentation":{"id":10276,"nodeType":"StructuredDocumentation","src":"31690:70:27","text":" @dev Returns the number of values in the set. O(1)."},"id":10290,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"31774:6:27","nodeType":"FunctionDefinition","parameters":{"id":10280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10279,"mutability":"mutable","name":"set","nameLocation":"31800:3:27","nodeType":"VariableDeclaration","scope":10290,"src":"31781:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10278,"nodeType":"UserDefinedTypeName","pathNode":{"id":10277,"name":"AddressSet","nameLocations":["31781:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"31781:10:27"},"referencedDeclaration":10194,"src":"31781:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"31780:24:27"},"returnParameters":{"id":10283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10290,"src":"31828:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10281,"name":"uint256","nodeType":"ElementaryTypeName","src":"31828:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31827:9:27"},"scope":10421,"src":"31765:115:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10316,"nodeType":"Block","src":"32295:73:27","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":10308,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10294,"src":"32340:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32344:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"32340:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":10310,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10296,"src":"32352:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10307,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10190,"src":"32336:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":10311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32336:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32328:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10305,"name":"uint256","nodeType":"ElementaryTypeName","src":"32328:7:27","typeDescriptions":{}}},"id":10312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32328:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32320:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10303,"name":"uint160","nodeType":"ElementaryTypeName","src":"32320:7:27","typeDescriptions":{}}},"id":10313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32320:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32312:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10301,"name":"address","nodeType":"ElementaryTypeName","src":"32312:7:27","typeDescriptions":{}}},"id":10314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32312:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10300,"id":10315,"nodeType":"Return","src":"32305:56:27"}]},"documentation":{"id":10291,"nodeType":"StructuredDocumentation","src":"31885:322:27","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":10317,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"32221:2:27","nodeType":"FunctionDefinition","parameters":{"id":10297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10294,"mutability":"mutable","name":"set","nameLocation":"32243:3:27","nodeType":"VariableDeclaration","scope":10317,"src":"32224:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10293,"nodeType":"UserDefinedTypeName","pathNode":{"id":10292,"name":"AddressSet","nameLocations":["32224:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"32224:10:27"},"referencedDeclaration":10194,"src":"32224:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10296,"mutability":"mutable","name":"index","nameLocation":"32256:5:27","nodeType":"VariableDeclaration","scope":10317,"src":"32248:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10295,"name":"uint256","nodeType":"ElementaryTypeName","src":"32248:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32223:39:27"},"returnParameters":{"id":10300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10317,"src":"32286:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10298,"name":"address","nodeType":"ElementaryTypeName","src":"32286:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32285:9:27"},"scope":10421,"src":"32212:156:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":10321,"members":[{"constant":false,"id":10320,"mutability":"mutable","name":"_inner","nameLocation":"32420:6:27","nodeType":"VariableDeclaration","scope":10321,"src":"32416:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10319,"nodeType":"UserDefinedTypeName","pathNode":{"id":10318,"name":"Set","nameLocations":["32416:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"32416:3:27"},"referencedDeclaration":10008,"src":"32416:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"32398:7:27","nodeType":"StructDefinition","scope":10421,"src":"32391:42:27","visibility":"public"},{"body":{"id":10341,"nodeType":"Block","src":"32676:56:27","statements":[{"expression":{"arguments":[{"expression":{"id":10333,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"32698:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32702:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"32698:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":10337,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10327,"src":"32718:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32710:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32710:7:27","typeDescriptions":{}}},"id":10338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32710:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10332,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"32693:4:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32693:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10331,"id":10340,"nodeType":"Return","src":"32686:39:27"}]},"documentation":{"id":10322,"nodeType":"StructuredDocumentation","src":"32439:159:27","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10342,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"32612:3:27","nodeType":"FunctionDefinition","parameters":{"id":10328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10325,"mutability":"mutable","name":"set","nameLocation":"32632:3:27","nodeType":"VariableDeclaration","scope":10342,"src":"32616:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10324,"nodeType":"UserDefinedTypeName","pathNode":{"id":10323,"name":"UintSet","nameLocations":["32616:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"32616:7:27"},"referencedDeclaration":10321,"src":"32616:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10327,"mutability":"mutable","name":"value","nameLocation":"32645:5:27","nodeType":"VariableDeclaration","scope":10342,"src":"32637:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10326,"name":"uint256","nodeType":"ElementaryTypeName","src":"32637:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32615:36:27"},"returnParameters":{"id":10331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10342,"src":"32670:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10329,"name":"bool","nodeType":"ElementaryTypeName","src":"32670:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32669:6:27"},"scope":10421,"src":"32603:129:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10362,"nodeType":"Block","src":"32976:59:27","statements":[{"expression":{"arguments":[{"expression":{"id":10354,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10346,"src":"33001:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33005:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33001:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":10358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10348,"src":"33021:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33013:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33013:7:27","typeDescriptions":{}}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33013:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10353,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"32993:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32993:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10352,"id":10361,"nodeType":"Return","src":"32986:42:27"}]},"documentation":{"id":10343,"nodeType":"StructuredDocumentation","src":"32738:157:27","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10363,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"32909:6:27","nodeType":"FunctionDefinition","parameters":{"id":10349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10346,"mutability":"mutable","name":"set","nameLocation":"32932:3:27","nodeType":"VariableDeclaration","scope":10363,"src":"32916:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10345,"nodeType":"UserDefinedTypeName","pathNode":{"id":10344,"name":"UintSet","nameLocations":["32916:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"32916:7:27"},"referencedDeclaration":10321,"src":"32916:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10348,"mutability":"mutable","name":"value","nameLocation":"32945:5:27","nodeType":"VariableDeclaration","scope":10363,"src":"32937:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10347,"name":"uint256","nodeType":"ElementaryTypeName","src":"32937:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32915:36:27"},"returnParameters":{"id":10352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10363,"src":"32970:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10350,"name":"bool","nodeType":"ElementaryTypeName","src":"32970:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32969:6:27"},"scope":10421,"src":"32900:135:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10383,"nodeType":"Block","src":"33199:61:27","statements":[{"expression":{"arguments":[{"expression":{"id":10375,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10367,"src":"33226:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33230:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33226:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":10379,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10369,"src":"33246:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33238:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33238:7:27","typeDescriptions":{}}},"id":10380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33238:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10374,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"33216:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33216:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10373,"id":10382,"nodeType":"Return","src":"33209:44:27"}]},"documentation":{"id":10364,"nodeType":"StructuredDocumentation","src":"33041:70:27","text":" @dev Returns true if the value is in the set. O(1)."},"id":10384,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"33125:8:27","nodeType":"FunctionDefinition","parameters":{"id":10370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10367,"mutability":"mutable","name":"set","nameLocation":"33150:3:27","nodeType":"VariableDeclaration","scope":10384,"src":"33134:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10366,"nodeType":"UserDefinedTypeName","pathNode":{"id":10365,"name":"UintSet","nameLocations":["33134:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"33134:7:27"},"referencedDeclaration":10321,"src":"33134:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10369,"mutability":"mutable","name":"value","nameLocation":"33163:5:27","nodeType":"VariableDeclaration","scope":10384,"src":"33155:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10368,"name":"uint256","nodeType":"ElementaryTypeName","src":"33155:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33133:36:27"},"returnParameters":{"id":10373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10384,"src":"33193:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10371,"name":"bool","nodeType":"ElementaryTypeName","src":"33193:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33192:6:27"},"scope":10421,"src":"33116:144:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10398,"nodeType":"Block","src":"33410:43:27","statements":[{"expression":{"arguments":[{"expression":{"id":10394,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10388,"src":"33435:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33439:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33435:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":10393,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"33427:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":10396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33427:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10392,"id":10397,"nodeType":"Return","src":"33420:26:27"}]},"documentation":{"id":10385,"nodeType":"StructuredDocumentation","src":"33266:70:27","text":" @dev Returns the number of values on the set. O(1)."},"id":10399,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"33350:6:27","nodeType":"FunctionDefinition","parameters":{"id":10389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10388,"mutability":"mutable","name":"set","nameLocation":"33373:3:27","nodeType":"VariableDeclaration","scope":10399,"src":"33357:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10387,"nodeType":"UserDefinedTypeName","pathNode":{"id":10386,"name":"UintSet","nameLocations":["33357:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"33357:7:27"},"referencedDeclaration":10321,"src":"33357:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"33356:21:27"},"returnParameters":{"id":10392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10399,"src":"33401:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10390,"name":"uint256","nodeType":"ElementaryTypeName","src":"33401:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33400:9:27"},"scope":10421,"src":"33341:112:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10419,"nodeType":"Block","src":"33865:55:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":10413,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10403,"src":"33894:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33898:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33894:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":10415,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10405,"src":"33906:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10412,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10190,"src":"33890:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":10416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33890:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33882:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10410,"name":"uint256","nodeType":"ElementaryTypeName","src":"33882:7:27","typeDescriptions":{}}},"id":10417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33882:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10409,"id":10418,"nodeType":"Return","src":"33875:38:27"}]},"documentation":{"id":10400,"nodeType":"StructuredDocumentation","src":"33458:322:27","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":10420,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"33794:2:27","nodeType":"FunctionDefinition","parameters":{"id":10406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10403,"mutability":"mutable","name":"set","nameLocation":"33813:3:27","nodeType":"VariableDeclaration","scope":10420,"src":"33797:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10402,"nodeType":"UserDefinedTypeName","pathNode":{"id":10401,"name":"UintSet","nameLocations":["33797:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"33797:7:27"},"referencedDeclaration":10321,"src":"33797:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10405,"mutability":"mutable","name":"index","nameLocation":"33826:5:27","nodeType":"VariableDeclaration","scope":10420,"src":"33818:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10404,"name":"uint256","nodeType":"ElementaryTypeName","src":"33818:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33796:36:27"},"returnParameters":{"id":10409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10420,"src":"33856:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10407,"name":"uint256","nodeType":"ElementaryTypeName","src":"33856:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33855:9:27"},"scope":10421,"src":"33785:135:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"26824:7098:27","usedErrors":[],"usedEvents":[]},{"id":10422,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33985:24:27"},{"abstract":true,"baseContracts":[{"baseName":{"id":10424,"name":"Context","nameLocations":["35326:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":8991,"src":"35326:7:27"},"id":10425,"nodeType":"InheritanceSpecifier","src":"35326:7:27"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":10423,"nodeType":"StructuredDocumentation","src":"34014:1276:27","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":10703,"linearizedBaseContracts":[10703,8991],"name":"AccessControl","nameLocation":"35309:13:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10429,"libraryName":{"id":10426,"name":"EnumerableSet","nameLocations":["35346:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":10421,"src":"35346:13:27"},"nodeType":"UsingForDirective","src":"35340:49:27","typeName":{"id":10428,"nodeType":"UserDefinedTypeName","pathNode":{"id":10427,"name":"EnumerableSet.AddressSet","nameLocations":["35364:13:27","35378:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"35364:24:27"},"referencedDeclaration":10194,"src":"35364:24:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"global":false,"id":10432,"libraryName":{"id":10430,"name":"Address","nameLocations":["35400:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":9466,"src":"35400:7:27"},"nodeType":"UsingForDirective","src":"35394:26:27","typeName":{"id":10431,"name":"address","nodeType":"ElementaryTypeName","src":"35412:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"AccessControl.RoleData","id":10438,"members":[{"constant":false,"id":10435,"mutability":"mutable","name":"members","nameLocation":"35477:7:27","nodeType":"VariableDeclaration","scope":10438,"src":"35452:32:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10434,"nodeType":"UserDefinedTypeName","pathNode":{"id":10433,"name":"EnumerableSet.AddressSet","nameLocations":["35452:13:27","35466:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"35452:24:27"},"referencedDeclaration":10194,"src":"35452:24:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10437,"mutability":"mutable","name":"adminRole","nameLocation":"35502:9:27","nodeType":"VariableDeclaration","scope":10438,"src":"35494:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35494:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"35433:8:27","nodeType":"StructDefinition","scope":10703,"src":"35426:92:27","visibility":"public"},{"constant":false,"id":10443,"mutability":"mutable","name":"_roles","nameLocation":"35562:6:27","nodeType":"VariableDeclaration","scope":10703,"src":"35524:44:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":10442,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35533:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"35524:29:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10441,"nodeType":"UserDefinedTypeName","pathNode":{"id":10440,"name":"RoleData","nameLocations":["35544:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":10438,"src":"35544:8:27"},"referencedDeclaration":10438,"src":"35544:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":10446,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"35599:18:27","nodeType":"VariableDeclaration","scope":10703,"src":"35575:49:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35575:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":10445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35620:4:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"anonymous":false,"documentation":{"id":10447,"nodeType":"StructuredDocumentation","src":"35631:292:27","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":10455,"name":"RoleAdminChanged","nameLocation":"35934:16:27","nodeType":"EventDefinition","parameters":{"id":10454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10449,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"35967:4:27","nodeType":"VariableDeclaration","scope":10455,"src":"35951:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35951:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10451,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"35989:17:27","nodeType":"VariableDeclaration","scope":10455,"src":"35973:33:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35973:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10453,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"36024:12:27","nodeType":"VariableDeclaration","scope":10455,"src":"36008:28:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36008:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35950:87:27"},"src":"35928:110:27"},{"anonymous":false,"documentation":{"id":10456,"nodeType":"StructuredDocumentation","src":"36044:198:27","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":10464,"name":"RoleGranted","nameLocation":"36253:11:27","nodeType":"EventDefinition","parameters":{"id":10463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10458,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"36281:4:27","nodeType":"VariableDeclaration","scope":10464,"src":"36265:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36265:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10460,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"36303:7:27","nodeType":"VariableDeclaration","scope":10464,"src":"36287:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10459,"name":"address","nodeType":"ElementaryTypeName","src":"36287:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10462,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"36328:6:27","nodeType":"VariableDeclaration","scope":10464,"src":"36312:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10461,"name":"address","nodeType":"ElementaryTypeName","src":"36312:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36264:71:27"},"src":"36247:89:27"},{"anonymous":false,"documentation":{"id":10465,"nodeType":"StructuredDocumentation","src":"36342:275:27","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":10473,"name":"RoleRevoked","nameLocation":"36628:11:27","nodeType":"EventDefinition","parameters":{"id":10472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10467,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"36656:4:27","nodeType":"VariableDeclaration","scope":10473,"src":"36640:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36640:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10469,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"36678:7:27","nodeType":"VariableDeclaration","scope":10473,"src":"36662:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10468,"name":"address","nodeType":"ElementaryTypeName","src":"36662:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10471,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"36703:6:27","nodeType":"VariableDeclaration","scope":10473,"src":"36687:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10470,"name":"address","nodeType":"ElementaryTypeName","src":"36687:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36639:71:27"},"src":"36622:89:27"},{"body":{"id":10491,"nodeType":"Block","src":"36873:62:27","statements":[{"expression":{"arguments":[{"id":10488,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10478,"src":"36920:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":10483,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"36890:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10485,"indexExpression":{"id":10484,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10476,"src":"36897:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36890:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36903:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"36890:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36911:8:27","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":10275,"src":"36890:29:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$10194_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":10489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36890:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10482,"id":10490,"nodeType":"Return","src":"36883:45:27"}]},"documentation":{"id":10474,"nodeType":"StructuredDocumentation","src":"36717:76:27","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":10492,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"36807:7:27","nodeType":"FunctionDefinition","parameters":{"id":10479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10476,"mutability":"mutable","name":"role","nameLocation":"36823:4:27","nodeType":"VariableDeclaration","scope":10492,"src":"36815:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36815:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10478,"mutability":"mutable","name":"account","nameLocation":"36837:7:27","nodeType":"VariableDeclaration","scope":10492,"src":"36829:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10477,"name":"address","nodeType":"ElementaryTypeName","src":"36829:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36814:31:27"},"returnParameters":{"id":10482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10492,"src":"36867:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10480,"name":"bool","nodeType":"ElementaryTypeName","src":"36867:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36866:6:27"},"scope":10703,"src":"36798:137:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10507,"nodeType":"Block","src":"37175:53:27","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":10500,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"37192:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10502,"indexExpression":{"id":10501,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"37199:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37192:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37205:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"37192:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37213:6:27","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":10290,"src":"37192:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$10194_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":10505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37192:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10499,"id":10506,"nodeType":"Return","src":"37185:36:27"}]},"documentation":{"id":10493,"nodeType":"StructuredDocumentation","src":"36941:157:27","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":10508,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"37112:18:27","nodeType":"FunctionDefinition","parameters":{"id":10496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10495,"mutability":"mutable","name":"role","nameLocation":"37139:4:27","nodeType":"VariableDeclaration","scope":10508,"src":"37131:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37131:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"37130:14:27"},"returnParameters":{"id":10499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10508,"src":"37166:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10497,"name":"uint256","nodeType":"ElementaryTypeName","src":"37166:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37165:9:27"},"scope":10703,"src":"37103:125:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10526,"nodeType":"Block","src":"37883:54:27","statements":[{"expression":{"arguments":[{"id":10523,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10513,"src":"37924:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":10518,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"37900:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10520,"indexExpression":{"id":10519,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10511,"src":"37907:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37900:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37913:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"37900:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37921:2:27","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":10317,"src":"37900:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$10194_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37900:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10517,"id":10525,"nodeType":"Return","src":"37893:37:27"}]},"documentation":{"id":10509,"nodeType":"StructuredDocumentation","src":"37234:562:27","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296\n for more information."},"functionSelector":"9010d07c","id":10527,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"37810:13:27","nodeType":"FunctionDefinition","parameters":{"id":10514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10511,"mutability":"mutable","name":"role","nameLocation":"37832:4:27","nodeType":"VariableDeclaration","scope":10527,"src":"37824:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37824:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10513,"mutability":"mutable","name":"index","nameLocation":"37846:5:27","nodeType":"VariableDeclaration","scope":10527,"src":"37838:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10512,"name":"uint256","nodeType":"ElementaryTypeName","src":"37838:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37823:29:27"},"returnParameters":{"id":10517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10527,"src":"37874:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10515,"name":"address","nodeType":"ElementaryTypeName","src":"37874:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37873:9:27"},"scope":10703,"src":"37801:136:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10540,"nodeType":"Block","src":"38184:46:27","statements":[{"expression":{"expression":{"baseExpression":{"id":10535,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"38201:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10537,"indexExpression":{"id":10536,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10530,"src":"38208:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38201:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38214:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"38201:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10534,"id":10539,"nodeType":"Return","src":"38194:29:27"}]},"documentation":{"id":10528,"nodeType":"StructuredDocumentation","src":"37943:170:27","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":10541,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"38127:12:27","nodeType":"FunctionDefinition","parameters":{"id":10531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10530,"mutability":"mutable","name":"role","nameLocation":"38148:4:27","nodeType":"VariableDeclaration","scope":10541,"src":"38140:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38140:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38139:14:27"},"returnParameters":{"id":10534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10541,"src":"38175:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38175:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38174:9:27"},"scope":10703,"src":"38118:112:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10566,"nodeType":"Block","src":"38545:158:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":10551,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"38571:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10553,"indexExpression":{"id":10552,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10544,"src":"38578:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38571:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38584:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"38571:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10555,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"38595:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38595:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10550,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"38563:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38563:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74","id":10558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38610:49:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811","typeString":"literal_string \"AccessControl: sender must be an admin to grant\""},"value":"AccessControl: sender must be an admin to grant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811","typeString":"literal_string \"AccessControl: sender must be an admin to grant\""}],"id":10549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"38555:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38555:105:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10560,"nodeType":"ExpressionStatement","src":"38555:105:27"},{"expression":{"arguments":[{"id":10562,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10544,"src":"38682:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10563,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10546,"src":"38688:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10561,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"38671:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38671:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10565,"nodeType":"ExpressionStatement","src":"38671:25:27"}]},"documentation":{"id":10542,"nodeType":"StructuredDocumentation","src":"38236:239:27","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":10567,"implemented":true,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"38489:9:27","nodeType":"FunctionDefinition","parameters":{"id":10547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10544,"mutability":"mutable","name":"role","nameLocation":"38507:4:27","nodeType":"VariableDeclaration","scope":10567,"src":"38499:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38499:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10546,"mutability":"mutable","name":"account","nameLocation":"38521:7:27","nodeType":"VariableDeclaration","scope":10567,"src":"38513:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10545,"name":"address","nodeType":"ElementaryTypeName","src":"38513:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38498:31:27"},"returnParameters":{"id":10548,"nodeType":"ParameterList","parameters":[],"src":"38545:0:27"},"scope":10703,"src":"38480:223:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10592,"nodeType":"Block","src":"39003:160:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":10577,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"39029:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10579,"indexExpression":{"id":10578,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10570,"src":"39036:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39029:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39042:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"39029:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10581,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"39053:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39053:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10576,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"39021:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39021:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65","id":10584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39068:50:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3","typeString":"literal_string \"AccessControl: sender must be an admin to revoke\""},"value":"AccessControl: sender must be an admin to revoke"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3","typeString":"literal_string \"AccessControl: sender must be an admin to revoke\""}],"id":10575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"39013:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39013:106:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10586,"nodeType":"ExpressionStatement","src":"39013:106:27"},{"expression":{"arguments":[{"id":10588,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10570,"src":"39142:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10589,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10572,"src":"39148:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10587,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10702,"src":"39130:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39130:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10591,"nodeType":"ExpressionStatement","src":"39130:26:27"}]},"documentation":{"id":10568,"nodeType":"StructuredDocumentation","src":"38709:223:27","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":10593,"implemented":true,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"38946:10:27","nodeType":"FunctionDefinition","parameters":{"id":10573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10570,"mutability":"mutable","name":"role","nameLocation":"38965:4:27","nodeType":"VariableDeclaration","scope":10593,"src":"38957:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38957:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10572,"mutability":"mutable","name":"account","nameLocation":"38979:7:27","nodeType":"VariableDeclaration","scope":10593,"src":"38971:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10571,"name":"address","nodeType":"ElementaryTypeName","src":"38971:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38956:31:27"},"returnParameters":{"id":10574,"nodeType":"ParameterList","parameters":[],"src":"39003:0:27"},"scope":10703,"src":"38937:226:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10614,"nodeType":"Block","src":"39722:137:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10602,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10598,"src":"39740:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10603,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"39751:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39751:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"39740:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":10606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39765:49:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":10601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"39732:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39732:83:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10608,"nodeType":"ExpressionStatement","src":"39732:83:27"},{"expression":{"arguments":[{"id":10610,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10596,"src":"39838:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10611,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10598,"src":"39844:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10609,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10702,"src":"39826:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39826:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10613,"nodeType":"ExpressionStatement","src":"39826:26:27"}]},"documentation":{"id":10594,"nodeType":"StructuredDocumentation","src":"39169:480:27","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":10615,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"39663:12:27","nodeType":"FunctionDefinition","parameters":{"id":10599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10596,"mutability":"mutable","name":"role","nameLocation":"39684:4:27","nodeType":"VariableDeclaration","scope":10615,"src":"39676:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39676:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10598,"mutability":"mutable","name":"account","nameLocation":"39698:7:27","nodeType":"VariableDeclaration","scope":10615,"src":"39690:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10597,"name":"address","nodeType":"ElementaryTypeName","src":"39690:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39675:31:27"},"returnParameters":{"id":10600,"nodeType":"ParameterList","parameters":[],"src":"39722:0:27"},"scope":10703,"src":"39654:205:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10628,"nodeType":"Block","src":"40492:42:27","statements":[{"expression":{"arguments":[{"id":10624,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10618,"src":"40513:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10625,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"40519:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10623,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"40502:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40502:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10627,"nodeType":"ExpressionStatement","src":"40502:25:27"}]},"documentation":{"id":10616,"nodeType":"StructuredDocumentation","src":"39865:554:27","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ===="},"id":10629,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"40433:10:27","nodeType":"FunctionDefinition","parameters":{"id":10621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10618,"mutability":"mutable","name":"role","nameLocation":"40452:4:27","nodeType":"VariableDeclaration","scope":10629,"src":"40444:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40444:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10620,"mutability":"mutable","name":"account","nameLocation":"40466:7:27","nodeType":"VariableDeclaration","scope":10629,"src":"40458:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10619,"name":"address","nodeType":"ElementaryTypeName","src":"40458:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40443:31:27"},"returnParameters":{"id":10622,"nodeType":"ParameterList","parameters":[],"src":"40492:0:27"},"scope":10703,"src":"40424:110:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10653,"nodeType":"Block","src":"40732:123:27","statements":[{"eventCall":{"arguments":[{"id":10638,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"40764:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"baseExpression":{"id":10639,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"40770:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10641,"indexExpression":{"id":10640,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"40777:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40770:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40783:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"40770:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10643,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"40794:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10637,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10455,"src":"40747:16:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":10644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40747:57:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10645,"nodeType":"EmitStatement","src":"40742:62:27"},{"expression":{"id":10651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":10646,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"40814:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10648,"indexExpression":{"id":10647,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"40821:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40814:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"40827:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"40814:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10650,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"40839:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40814:34:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10652,"nodeType":"ExpressionStatement","src":"40814:34:27"}]},"documentation":{"id":10630,"nodeType":"StructuredDocumentation","src":"40540:114:27","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":10654,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"40668:13:27","nodeType":"FunctionDefinition","parameters":{"id":10635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10632,"mutability":"mutable","name":"role","nameLocation":"40690:4:27","nodeType":"VariableDeclaration","scope":10654,"src":"40682:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40682:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10634,"mutability":"mutable","name":"adminRole","nameLocation":"40704:9:27","nodeType":"VariableDeclaration","scope":10654,"src":"40696:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40696:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40681:33:27"},"returnParameters":{"id":10636,"nodeType":"ParameterList","parameters":[],"src":"40732:0:27"},"scope":10703,"src":"40659:196:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10677,"nodeType":"Block","src":"40920:125:27","statements":[{"condition":{"arguments":[{"id":10666,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10658,"src":"40959:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":10661,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"40934:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10663,"indexExpression":{"id":10662,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10656,"src":"40941:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40934:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40947:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"40934:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40955:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":10221,"src":"40934:24:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$10194_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":10667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40934:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10676,"nodeType":"IfStatement","src":"40930:109:27","trueBody":{"id":10675,"nodeType":"Block","src":"40969:70:27","statements":[{"eventCall":{"arguments":[{"id":10669,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10656,"src":"41000:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10670,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10658,"src":"41006:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10671,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"41015:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41015:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10668,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10464,"src":"40988:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":10673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40988:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10674,"nodeType":"EmitStatement","src":"40983:45:27"}]}}]},"id":10678,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"40870:10:27","nodeType":"FunctionDefinition","parameters":{"id":10659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10656,"mutability":"mutable","name":"role","nameLocation":"40889:4:27","nodeType":"VariableDeclaration","scope":10678,"src":"40881:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40881:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10658,"mutability":"mutable","name":"account","nameLocation":"40903:7:27","nodeType":"VariableDeclaration","scope":10678,"src":"40895:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10657,"name":"address","nodeType":"ElementaryTypeName","src":"40895:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40880:31:27"},"returnParameters":{"id":10660,"nodeType":"ParameterList","parameters":[],"src":"40920:0:27"},"scope":10703,"src":"40861:184:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10701,"nodeType":"Block","src":"41111:128:27","statements":[{"condition":{"arguments":[{"id":10690,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"41153:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":10685,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"41125:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10687,"indexExpression":{"id":10686,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"41132:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41125:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41138:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"41125:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41146:6:27","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":10248,"src":"41125:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$10194_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":10691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41125:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10700,"nodeType":"IfStatement","src":"41121:112:27","trueBody":{"id":10699,"nodeType":"Block","src":"41163:70:27","statements":[{"eventCall":{"arguments":[{"id":10693,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"41194:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10694,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"41200:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10695,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"41209:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41209:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10692,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"41182:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":10697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41182:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10698,"nodeType":"EmitStatement","src":"41177:45:27"}]}}]},"id":10702,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"41060:11:27","nodeType":"FunctionDefinition","parameters":{"id":10683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10680,"mutability":"mutable","name":"role","nameLocation":"41080:4:27","nodeType":"VariableDeclaration","scope":10702,"src":"41072:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41072:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10682,"mutability":"mutable","name":"account","nameLocation":"41094:7:27","nodeType":"VariableDeclaration","scope":10702,"src":"41086:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10681,"name":"address","nodeType":"ElementaryTypeName","src":"41086:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41071:31:27"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[],"src":"41111:0:27"},"scope":10703,"src":"41051:188:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":11433,"src":"35291:5950:27","usedErrors":[],"usedEvents":[10455,10464,10473]},{"id":10704,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"41293:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":10705,"name":"AccessControl","nameLocations":["41351:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":10703,"src":"41351:13:27"},"id":10706,"nodeType":"InheritanceSpecifier","src":"41351:13:27"}],"canonicalName":"AccessControlMixin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10741,"linearizedBaseContracts":[10741,10703,8991],"name":"AccessControlMixin","nameLocation":"41329:18:27","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10708,"mutability":"mutable","name":"_revertMsg","nameLocation":"41386:10:27","nodeType":"VariableDeclaration","scope":10741,"src":"41371:25:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":10707,"name":"string","nodeType":"ElementaryTypeName","src":"41371:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":10724,"nodeType":"Block","src":"41463:96:27","statements":[{"expression":{"id":10722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10713,"name":"_revertMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"41473:10:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":10718,"name":"contractId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"41510:10:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3a20494e53554646494349454e545f5045524d495353494f4e53","id":10719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41522:28:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7","typeString":"literal_string \": INSUFFICIENT_PERMISSIONS\""},"value":": INSUFFICIENT_PERMISSIONS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7","typeString":"literal_string \": INSUFFICIENT_PERMISSIONS\""}],"expression":{"id":10716,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41493:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41497:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"41493:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41493:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41486:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":10714,"name":"string","nodeType":"ElementaryTypeName","src":"41486:6:27","typeDescriptions":{}}},"id":10721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41486:66:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41473:79:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":10723,"nodeType":"ExpressionStatement","src":"41473:79:27"}]},"id":10725,"implemented":true,"kind":"function","modifiers":[],"name":"_setupContractId","nameLocation":"41411:16:27","nodeType":"FunctionDefinition","parameters":{"id":10711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10710,"mutability":"mutable","name":"contractId","nameLocation":"41442:10:27","nodeType":"VariableDeclaration","scope":10725,"src":"41428:24:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10709,"name":"string","nodeType":"ElementaryTypeName","src":"41428:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41427:26:27"},"returnParameters":{"id":10712,"nodeType":"ParameterList","parameters":[],"src":"41463:0:27"},"scope":10741,"src":"41402:157:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10739,"nodeType":"Block","src":"41593:110:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":10731,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10727,"src":"41632:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10732,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"41638:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41638:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10730,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"41624:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41624:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10735,"name":"_revertMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"41665:10:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":10729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"41603:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41603:82:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10737,"nodeType":"ExpressionStatement","src":"41603:82:27"},{"id":10738,"nodeType":"PlaceholderStatement","src":"41695:1:27"}]},"id":10740,"name":"only","nameLocation":"41574:4:27","nodeType":"ModifierDefinition","parameters":{"id":10728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10727,"mutability":"mutable","name":"role","nameLocation":"41587:4:27","nodeType":"VariableDeclaration","scope":10740,"src":"41579:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41579:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41578:14:27"},"src":"41565:138:27","virtual":false,"visibility":"internal"}],"scope":11433,"src":"41320:385:27","usedErrors":[],"usedEvents":[10455,10464,10473]},{"id":10742,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"41760:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"IChildToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":10750,"linearizedBaseContracts":[10750],"name":"IChildToken","nameLocation":"41796:11:27","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cf2c52cb","id":10749,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"41823:7:27","nodeType":"FunctionDefinition","parameters":{"id":10747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10744,"mutability":"mutable","name":"user","nameLocation":"41839:4:27","nodeType":"VariableDeclaration","scope":10749,"src":"41831:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10743,"name":"address","nodeType":"ElementaryTypeName","src":"41831:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10746,"mutability":"mutable","name":"depositData","nameLocation":"41860:11:27","nodeType":"VariableDeclaration","scope":10749,"src":"41845:26:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10745,"name":"bytes","nodeType":"ElementaryTypeName","src":"41845:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"41830:42:27"},"returnParameters":{"id":10748,"nodeType":"ParameterList","parameters":[],"src":"41881:0:27"},"scope":10750,"src":"41814:68:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11433,"src":"41786:98:27","usedErrors":[],"usedEvents":[]},{"id":10751,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"41931:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10769,"linearizedBaseContracts":[10769],"name":"Initializable","nameLocation":"41966:13:27","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10754,"mutability":"mutable","name":"inited","nameLocation":"41991:6:27","nodeType":"VariableDeclaration","scope":10769,"src":"41986:19:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10752,"name":"bool","nodeType":"ElementaryTypeName","src":"41986:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":10753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42000:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"body":{"id":10767,"nodeType":"Block","src":"42035:85:27","statements":[{"expression":{"arguments":[{"id":10758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42053:7:27","subExpression":{"id":10757,"name":"inited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"42054:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c726561647920696e69746564","id":10759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42062:16:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247","typeString":"literal_string \"already inited\""},"value":"already inited"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247","typeString":"literal_string \"already inited\""}],"id":10756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"42045:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42045:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10761,"nodeType":"ExpressionStatement","src":"42045:34:27"},{"id":10762,"nodeType":"PlaceholderStatement","src":"42089:1:27"},{"expression":{"id":10765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10763,"name":"inited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"42100:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":10764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42109:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"42100:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10766,"nodeType":"ExpressionStatement","src":"42100:13:27"}]},"id":10768,"name":"initializer","nameLocation":"42021:11:27","nodeType":"ModifierDefinition","parameters":{"id":10755,"nodeType":"ParameterList","parameters":[],"src":"42032:2:27"},"src":"42012:108:27","virtual":false,"visibility":"internal"}],"scope":11433,"src":"41957:165:27","usedErrors":[],"usedEvents":[]},{"id":10770,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"42166:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":10771,"name":"Initializable","nameLocations":["42216:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":10769,"src":"42216:13:27"},"id":10772,"nodeType":"InheritanceSpecifier","src":"42216:13:27"}],"canonicalName":"EIP712Base","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10884,"linearizedBaseContracts":[10884,10769],"name":"EIP712Base","nameLocation":"42202:10:27","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EIP712Base.EIP712Domain","id":10781,"members":[{"constant":false,"id":10774,"mutability":"mutable","name":"name","nameLocation":"42273:4:27","nodeType":"VariableDeclaration","scope":10781,"src":"42266:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":10773,"name":"string","nodeType":"ElementaryTypeName","src":"42266:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10776,"mutability":"mutable","name":"version","nameLocation":"42294:7:27","nodeType":"VariableDeclaration","scope":10781,"src":"42287:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":10775,"name":"string","nodeType":"ElementaryTypeName","src":"42287:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10778,"mutability":"mutable","name":"verifyingContract","nameLocation":"42319:17:27","nodeType":"VariableDeclaration","scope":10781,"src":"42311:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10777,"name":"address","nodeType":"ElementaryTypeName","src":"42311:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10780,"mutability":"mutable","name":"salt","nameLocation":"42354:4:27","nodeType":"VariableDeclaration","scope":10781,"src":"42346:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42346:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"EIP712Domain","nameLocation":"42243:12:27","nodeType":"StructDefinition","scope":10884,"src":"42236:129:27","visibility":"public"},{"constant":true,"id":10789,"mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"42397:22:27","nodeType":"VariableDeclaration","scope":10884,"src":"42371:186:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42371:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429","id":10786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42460:81:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7","typeString":"literal_string \"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\""},"value":"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7","typeString":"literal_string \"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\""}],"id":10785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42441:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10784,"name":"bytes","nodeType":"ElementaryTypeName","src":"42441:5:27","typeDescriptions":{}}},"id":10787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42441:110:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10783,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42422:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42422:135:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10791,"mutability":"mutable","name":"domainSeperator","nameLocation":"42580:15:27","nodeType":"VariableDeclaration","scope":10884,"src":"42563:32:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42563:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":10805,"nodeType":"Block","src":"42925:51:27","statements":[{"expression":{"arguments":[{"id":10801,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10793,"src":"42955:4:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10802,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10795,"src":"42961:7:27","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":10800,"name":"_setDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10844,"src":"42935:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":10803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42935:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10804,"nodeType":"ExpressionStatement","src":"42935:34:27"}]},"id":10806,"implemented":true,"kind":"function","modifiers":[{"id":10798,"kind":"modifierInvocation","modifierName":{"id":10797,"name":"initializer","nameLocations":["42909:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":10768,"src":"42909:11:27"},"nodeType":"ModifierInvocation","src":"42909:11:27"}],"name":"_initializeEIP712","nameLocation":"42801:17:27","nodeType":"FunctionDefinition","parameters":{"id":10796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10793,"mutability":"mutable","name":"name","nameLocation":"42842:4:27","nodeType":"VariableDeclaration","scope":10806,"src":"42828:18:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10792,"name":"string","nodeType":"ElementaryTypeName","src":"42828:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10795,"mutability":"mutable","name":"version","nameLocation":"42870:7:27","nodeType":"VariableDeclaration","scope":10806,"src":"42856:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10794,"name":"string","nodeType":"ElementaryTypeName","src":"42856:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42818:65:27"},"returnParameters":{"id":10799,"nodeType":"ParameterList","parameters":[],"src":"42925:0:27"},"scope":10884,"src":"42792:184:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10843,"nodeType":"Block","src":"43063:285:27","statements":[{"expression":{"id":10841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10813,"name":"domainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"43073:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":10817,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10789,"src":"43142:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":10821,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10808,"src":"43198:4:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43192:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10819,"name":"bytes","nodeType":"ElementaryTypeName","src":"43192:5:27","typeDescriptions":{}}},"id":10822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43192:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10818,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43182:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43182:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":10827,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10810,"src":"43238:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43232:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10825,"name":"bytes","nodeType":"ElementaryTypeName","src":"43232:5:27","typeDescriptions":{}}},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43232:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10824,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43222:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43222:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":10832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"43273:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712Base_$10884","typeString":"contract EIP712Base"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712Base_$10884","typeString":"contract EIP712Base"}],"id":10831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43265:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10830,"name":"address","nodeType":"ElementaryTypeName","src":"43265:7:27","typeDescriptions":{}}},"id":10833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43265:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":10836,"name":"getChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10864,"src":"43304:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":10837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43304:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43296:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43296:7:27","typeDescriptions":{}}},"id":10838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43296:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43114:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43118:6:27","memberName":"encode","nodeType":"MemberAccess","src":"43114:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43114:217:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10814,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43091:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43091:250:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"43073:268:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10842,"nodeType":"ExpressionStatement","src":"43073:268:27"}]},"id":10844,"implemented":true,"kind":"function","modifiers":[],"name":"_setDomainSeperator","nameLocation":"42991:19:27","nodeType":"FunctionDefinition","parameters":{"id":10811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10808,"mutability":"mutable","name":"name","nameLocation":"43025:4:27","nodeType":"VariableDeclaration","scope":10844,"src":"43011:18:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10807,"name":"string","nodeType":"ElementaryTypeName","src":"43011:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10810,"mutability":"mutable","name":"version","nameLocation":"43045:7:27","nodeType":"VariableDeclaration","scope":10844,"src":"43031:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10809,"name":"string","nodeType":"ElementaryTypeName","src":"43031:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43010:43:27"},"returnParameters":{"id":10812,"nodeType":"ParameterList","parameters":[],"src":"43063:0:27"},"scope":10884,"src":"42982:366:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10851,"nodeType":"Block","src":"43414:39:27","statements":[{"expression":{"id":10849,"name":"domainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"43431:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10848,"id":10850,"nodeType":"Return","src":"43424:22:27"}]},"functionSelector":"20379ee5","id":10852,"implemented":true,"kind":"function","modifiers":[],"name":"getDomainSeperator","nameLocation":"43363:18:27","nodeType":"FunctionDefinition","parameters":{"id":10845,"nodeType":"ParameterList","parameters":[],"src":"43381:2:27"},"returnParameters":{"id":10848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10852,"src":"43405:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43405:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43404:9:27"},"scope":10884,"src":"43354:99:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10863,"nodeType":"Block","src":"43511:103:27","statements":[{"assignments":[10858],"declarations":[{"constant":false,"id":10858,"mutability":"mutable","name":"id","nameLocation":"43529:2:27","nodeType":"VariableDeclaration","scope":10863,"src":"43521:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10857,"name":"uint256","nodeType":"ElementaryTypeName","src":"43521:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10859,"nodeType":"VariableDeclarationStatement","src":"43521:10:27"},{"AST":{"nodeType":"YulBlock","src":"43550:39:27","statements":[{"nodeType":"YulAssignment","src":"43564:15:27","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"43570:7:27"},"nodeType":"YulFunctionCall","src":"43570:9:27"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"43564:2:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10858,"isOffset":false,"isSlot":false,"src":"43564:2:27","valueSize":1}],"id":10860,"nodeType":"InlineAssembly","src":"43541:48:27"},{"expression":{"id":10861,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"43605:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10856,"id":10862,"nodeType":"Return","src":"43598:9:27"}]},"functionSelector":"3408e470","id":10864,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"43468:10:27","nodeType":"FunctionDefinition","parameters":{"id":10853,"nodeType":"ParameterList","parameters":[],"src":"43478:2:27"},"returnParameters":{"id":10856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10864,"src":"43502:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10854,"name":"uint256","nodeType":"ElementaryTypeName","src":"43502:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43501:9:27"},"scope":10884,"src":"43459:155:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10882,"nodeType":"Block","src":"44083:140:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":10875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44156:10:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":10876,"name":"getDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"44168:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":10877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44168:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10878,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10867,"src":"44190:11:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44139:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44143:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"44139:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44139:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10872,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44112:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44112:104:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10871,"id":10881,"nodeType":"Return","src":"44093:123:27"}]},"documentation":{"id":10865,"nodeType":"StructuredDocumentation","src":"43620:349:27","text":" Accept message hash and returns hash message in EIP712 compatible form\n So that it can be used to recover signer from signature signed using EIP712 formatted data\n https://eips.ethereum.org/EIPS/eip-712\n \"\\\\x19\" makes the encoding deterministic\n \"\\\\x01\" is the version byte to make it compatible to EIP-191"},"id":10883,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedMessageHash","nameLocation":"43983:18:27","nodeType":"FunctionDefinition","parameters":{"id":10868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10867,"mutability":"mutable","name":"messageHash","nameLocation":"44010:11:27","nodeType":"VariableDeclaration","scope":10883,"src":"44002:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44002:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"44001:21:27"},"returnParameters":{"id":10871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10883,"src":"44070:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44070:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"44069:9:27"},"scope":10884,"src":"43974:249:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"42193:2032:27","usedErrors":[],"usedEvents":[]},{"id":10885,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"44280:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":10886,"name":"EIP712Base","nameLocations":["44342:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10884,"src":"44342:10:27"},"id":10887,"nodeType":"InheritanceSpecifier","src":"44342:10:27"}],"canonicalName":"NativeMetaTransaction","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11078,"linearizedBaseContracts":[11078,10884,10769],"name":"NativeMetaTransaction","nameLocation":"44317:21:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10890,"libraryName":{"id":10888,"name":"SafeMath","nameLocations":["44365:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":9263,"src":"44365:8:27"},"nodeType":"UsingForDirective","src":"44359:27:27","typeName":{"id":10889,"name":"uint256","nodeType":"ElementaryTypeName","src":"44378:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":10898,"mutability":"constant","name":"META_TRANSACTION_TYPEHASH","nameLocation":"44416:25:27","nodeType":"VariableDeclaration","scope":11078,"src":"44391:176:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44391:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529","id":10895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44482:69:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_23d10def3caacba2e4042e0c75d44a42d2558aabcf5ce951d0642a8032e1e653","typeString":"literal_string \"MetaTransaction(uint256 nonce,address from,bytes functionSignature)\""},"value":"MetaTransaction(uint256 nonce,address from,bytes functionSignature)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23d10def3caacba2e4042e0c75d44a42d2558aabcf5ce951d0642a8032e1e653","typeString":"literal_string \"MetaTransaction(uint256 nonce,address from,bytes functionSignature)\""}],"id":10894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44463:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10893,"name":"bytes","nodeType":"ElementaryTypeName","src":"44463:5:27","typeDescriptions":{}}},"id":10896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44463:98:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10892,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44444:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44444:123:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"anonymous":false,"eventSelector":"5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b","id":10906,"name":"MetaTransactionExecuted","nameLocation":"44579:23:27","nodeType":"EventDefinition","parameters":{"id":10905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10900,"indexed":false,"mutability":"mutable","name":"userAddress","nameLocation":"44620:11:27","nodeType":"VariableDeclaration","scope":10906,"src":"44612:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10899,"name":"address","nodeType":"ElementaryTypeName","src":"44612:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10902,"indexed":false,"mutability":"mutable","name":"relayerAddress","nameLocation":"44657:14:27","nodeType":"VariableDeclaration","scope":10906,"src":"44641:30:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":10901,"name":"address","nodeType":"ElementaryTypeName","src":"44641:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":10904,"indexed":false,"mutability":"mutable","name":"functionSignature","nameLocation":"44687:17:27","nodeType":"VariableDeclaration","scope":10906,"src":"44681:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10903,"name":"bytes","nodeType":"ElementaryTypeName","src":"44681:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"44602:108:27"},"src":"44573:138:27"},{"constant":false,"id":10910,"mutability":"mutable","name":"nonces","nameLocation":"44744:6:27","nodeType":"VariableDeclaration","scope":11078,"src":"44716:34:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":10909,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10907,"name":"address","nodeType":"ElementaryTypeName","src":"44724:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"44716:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10908,"name":"uint256","nodeType":"ElementaryTypeName","src":"44735:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"canonicalName":"NativeMetaTransaction.MetaTransaction","id":10917,"members":[{"constant":false,"id":10912,"mutability":"mutable","name":"nonce","nameLocation":"45032:5:27","nodeType":"VariableDeclaration","scope":10917,"src":"45024:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10911,"name":"uint256","nodeType":"ElementaryTypeName","src":"45024:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10914,"mutability":"mutable","name":"from","nameLocation":"45055:4:27","nodeType":"VariableDeclaration","scope":10917,"src":"45047:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10913,"name":"address","nodeType":"ElementaryTypeName","src":"45047:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10916,"mutability":"mutable","name":"functionSignature","nameLocation":"45075:17:27","nodeType":"VariableDeclaration","scope":10917,"src":"45069:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":10915,"name":"bytes","nodeType":"ElementaryTypeName","src":"45069:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"MetaTransaction","nameLocation":"44998:15:27","nodeType":"StructDefinition","scope":11078,"src":"44991:108:27","visibility":"public"},{"body":{"id":10998,"nodeType":"Block","src":"45314:908:27","statements":[{"assignments":[10934],"declarations":[{"constant":false,"id":10934,"mutability":"mutable","name":"metaTx","nameLocation":"45347:6:27","nodeType":"VariableDeclaration","scope":10998,"src":"45324:29:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"},"typeName":{"id":10933,"nodeType":"UserDefinedTypeName","pathNode":{"id":10932,"name":"MetaTransaction","nameLocations":["45324:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":10917,"src":"45324:15:27"},"referencedDeclaration":10917,"src":"45324:15:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_storage_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"}},"visibility":"internal"}],"id":10942,"initialValue":{"arguments":[{"baseExpression":{"id":10936,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"45393:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10938,"indexExpression":{"id":10937,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45400:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45393:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10939,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45432:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10940,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"45476:17:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10935,"name":"MetaTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10917,"src":"45356:15:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MetaTransaction_$10917_storage_ptr_$","typeString":"type(struct NativeMetaTransaction.MetaTransaction storage pointer)"}},"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["45386:5:27","45426:4:27","45457:17:27"],"names":["nonce","from","functionSignature"],"nodeType":"FunctionCall","src":"45356:148:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"nodeType":"VariableDeclarationStatement","src":"45324:180:27"},{"expression":{"arguments":[{"arguments":[{"id":10945,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45543:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10946,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10934,"src":"45556:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},{"id":10947,"name":"sigR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10923,"src":"45564:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10948,"name":"sigS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10925,"src":"45570:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10949,"name":"sigV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10927,"src":"45576:4:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":10944,"name":"verify","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11077,"src":"45536:6:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_struct$_MetaTransaction_$10917_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,struct NativeMetaTransaction.MetaTransaction memory,bytes32,bytes32,uint8) view returns (bool)"}},"id":10950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45536:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d61746368","id":10951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45595:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda","typeString":"literal_string \"Signer and signature do not match\""},"value":"Signer and signature do not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda","typeString":"literal_string \"Signer and signature do not match\""}],"id":10943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"45515:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45515:125:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10953,"nodeType":"ExpressionStatement","src":"45515:125:27"},{"expression":{"id":10963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10954,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"45704:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10956,"indexExpression":{"id":10955,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45711:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"45704:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":10961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45750:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"baseExpression":{"id":10957,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"45726:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10959,"indexExpression":{"id":10958,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45733:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45726:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45746:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"45726:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45726:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45704:48:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10964,"nodeType":"ExpressionStatement","src":"45704:48:27"},{"eventCall":{"arguments":[{"id":10966,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45805:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":10969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"45838:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45842:6:27","memberName":"sender","nodeType":"MemberAccess","src":"45838:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45830:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":10967,"name":"address","nodeType":"ElementaryTypeName","src":"45830:8:27","stateMutability":"payable","typeDescriptions":{}}},"id":10971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45830:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":10972,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"45863:17:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10965,"name":"MetaTransactionExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10906,"src":"45768:23:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_payable_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address payable,bytes memory)"}},"id":10973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45768:122:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10974,"nodeType":"EmitStatement","src":"45763:127:27"},{"assignments":[10976,10978],"declarations":[{"constant":false,"id":10976,"mutability":"mutable","name":"success","nameLocation":"46003:7:27","nodeType":"VariableDeclaration","scope":10998,"src":"45998:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10975,"name":"bool","nodeType":"ElementaryTypeName","src":"45998:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10978,"mutability":"mutable","name":"returnData","nameLocation":"46025:10:27","nodeType":"VariableDeclaration","scope":10998,"src":"46012:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10977,"name":"bytes","nodeType":"ElementaryTypeName","src":"46012:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10990,"initialValue":{"arguments":[{"arguments":[{"id":10986,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"46088:17:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10987,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"46107:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46071:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46075:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"46071:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46071:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":10981,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"46047:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_NativeMetaTransaction_$11078","typeString":"contract NativeMetaTransaction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NativeMetaTransaction_$11078","typeString":"contract NativeMetaTransaction"}],"id":10980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"46039:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10979,"name":"address","nodeType":"ElementaryTypeName","src":"46039:7:27","typeDescriptions":{}}},"id":10982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46039:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46053:4:27","memberName":"call","nodeType":"MemberAccess","src":"46039:18:27","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":10989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46039:90:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"45997:132:27"},{"expression":{"arguments":[{"id":10992,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10976,"src":"46147:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","id":10993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46156:30:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3","typeString":"literal_string \"Function call not successful\""},"value":"Function call not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3","typeString":"literal_string \"Function call not successful\""}],"id":10991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"46139:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46139:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10995,"nodeType":"ExpressionStatement","src":"46139:48:27"},{"expression":{"id":10996,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10978,"src":"46205:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10931,"id":10997,"nodeType":"Return","src":"46198:17:27"}]},"functionSelector":"0c53c51c","id":10999,"implemented":true,"kind":"function","modifiers":[],"name":"executeMetaTransaction","nameLocation":"45114:22:27","nodeType":"FunctionDefinition","parameters":{"id":10928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10919,"mutability":"mutable","name":"userAddress","nameLocation":"45154:11:27","nodeType":"VariableDeclaration","scope":10999,"src":"45146:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10918,"name":"address","nodeType":"ElementaryTypeName","src":"45146:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10921,"mutability":"mutable","name":"functionSignature","nameLocation":"45188:17:27","nodeType":"VariableDeclaration","scope":10999,"src":"45175:30:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10920,"name":"bytes","nodeType":"ElementaryTypeName","src":"45175:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10923,"mutability":"mutable","name":"sigR","nameLocation":"45223:4:27","nodeType":"VariableDeclaration","scope":10999,"src":"45215:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45215:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10925,"mutability":"mutable","name":"sigS","nameLocation":"45245:4:27","nodeType":"VariableDeclaration","scope":10999,"src":"45237:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45237:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10927,"mutability":"mutable","name":"sigV","nameLocation":"45265:4:27","nodeType":"VariableDeclaration","scope":10999,"src":"45259:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10926,"name":"uint8","nodeType":"ElementaryTypeName","src":"45259:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"45136:139:27"},"returnParameters":{"id":10931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10999,"src":"45300:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10929,"name":"bytes","nodeType":"ElementaryTypeName","src":"45300:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"45299:14:27"},"scope":11078,"src":"45105:1117:27","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":11022,"nodeType":"Block","src":"46348:276:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":11010,"name":"META_TRANSACTION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10898,"src":"46436:25:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":11011,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"46483:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"id":11012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46490:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":10912,"src":"46483:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":11013,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"46517:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"id":11014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46524:4:27","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":10914,"src":"46517:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":11016,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"46560:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"id":11017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46567:17:27","memberName":"functionSignature","nodeType":"MemberAccess","referencedDeclaration":10916,"src":"46560:24:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11015,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"46550:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46550:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46404:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46408:6:27","memberName":"encode","nodeType":"MemberAccess","src":"46404:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46404:199:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11007,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"46377:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46377:240:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11006,"id":11021,"nodeType":"Return","src":"46358:259:27"}]},"id":11023,"implemented":true,"kind":"function","modifiers":[],"name":"hashMetaTransaction","nameLocation":"46237:19:27","nodeType":"FunctionDefinition","parameters":{"id":11003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11002,"mutability":"mutable","name":"metaTx","nameLocation":"46280:6:27","nodeType":"VariableDeclaration","scope":11023,"src":"46257:29:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"},"typeName":{"id":11001,"nodeType":"UserDefinedTypeName","pathNode":{"id":11000,"name":"MetaTransaction","nameLocations":["46257:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":10917,"src":"46257:15:27"},"referencedDeclaration":10917,"src":"46257:15:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_storage_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"}},"visibility":"internal"}],"src":"46256:31:27"},"returnParameters":{"id":11006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11023,"src":"46335:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46335:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46334:9:27"},"scope":11078,"src":"46228:396:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11036,"nodeType":"Block","src":"46698:37:27","statements":[{"expression":{"id":11034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11030,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11028,"src":"46708:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":11031,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"46716:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11033,"indexExpression":{"id":11032,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"46723:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46716:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46708:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11035,"nodeType":"ExpressionStatement","src":"46708:20:27"}]},"functionSelector":"2d0335ab","id":11037,"implemented":true,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"46639:8:27","nodeType":"FunctionDefinition","parameters":{"id":11026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11025,"mutability":"mutable","name":"user","nameLocation":"46656:4:27","nodeType":"VariableDeclaration","scope":11037,"src":"46648:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11024,"name":"address","nodeType":"ElementaryTypeName","src":"46648:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46647:14:27"},"returnParameters":{"id":11029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11028,"mutability":"mutable","name":"nonce","nameLocation":"46691:5:27","nodeType":"VariableDeclaration","scope":11037,"src":"46683:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11027,"name":"uint256","nodeType":"ElementaryTypeName","src":"46683:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46682:15:27"},"scope":11078,"src":"46630:105:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":11076,"nodeType":"Block","src":"46919:292:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11054,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"46937:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46955:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"46947:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11055,"name":"address","nodeType":"ElementaryTypeName","src":"46947:7:27","typeDescriptions":{}}},"id":11058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46947:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"46937:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5349474e4552","id":11060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46959:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273","typeString":"literal_string \"NativeMetaTransaction: INVALID_SIGNER\""},"value":"NativeMetaTransaction: INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273","typeString":"literal_string \"NativeMetaTransaction: INVALID_SIGNER\""}],"id":11053,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"46929:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46929:70:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11062,"nodeType":"ExpressionStatement","src":"46929:70:27"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11063,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"47028:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":11067,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11042,"src":"47116:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}],"id":11066,"name":"hashMetaTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"47096:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_MetaTransaction_$10917_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct NativeMetaTransaction.MetaTransaction memory) pure returns (bytes32)"}},"id":11068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47096:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11065,"name":"toTypedMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"47077:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":11069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47077:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11070,"name":"sigV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11048,"src":"47142:4:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11071,"name":"sigR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11044,"src":"47164:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11072,"name":"sigS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"47186:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11064,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"47050:9:27","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":11073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47050:154:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47028:176:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11052,"id":11075,"nodeType":"Return","src":"47009:195:27"}]},"id":11077,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"46750:6:27","nodeType":"FunctionDefinition","parameters":{"id":11049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11039,"mutability":"mutable","name":"signer","nameLocation":"46774:6:27","nodeType":"VariableDeclaration","scope":11077,"src":"46766:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11038,"name":"address","nodeType":"ElementaryTypeName","src":"46766:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11042,"mutability":"mutable","name":"metaTx","nameLocation":"46813:6:27","nodeType":"VariableDeclaration","scope":11077,"src":"46790:29:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"},"typeName":{"id":11041,"nodeType":"UserDefinedTypeName","pathNode":{"id":11040,"name":"MetaTransaction","nameLocations":["46790:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":10917,"src":"46790:15:27"},"referencedDeclaration":10917,"src":"46790:15:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_storage_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"}},"visibility":"internal"},{"constant":false,"id":11044,"mutability":"mutable","name":"sigR","nameLocation":"46837:4:27","nodeType":"VariableDeclaration","scope":11077,"src":"46829:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46829:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11046,"mutability":"mutable","name":"sigS","nameLocation":"46859:4:27","nodeType":"VariableDeclaration","scope":11077,"src":"46851:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46851:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11048,"mutability":"mutable","name":"sigV","nameLocation":"46879:4:27","nodeType":"VariableDeclaration","scope":11077,"src":"46873:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11047,"name":"uint8","nodeType":"ElementaryTypeName","src":"46873:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"46756:133:27"},"returnParameters":{"id":11052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11077,"src":"46913:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11050,"name":"bool","nodeType":"ElementaryTypeName","src":"46913:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46912:6:27"},"scope":11078,"src":"46741:470:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"44308:2905:27","usedErrors":[],"usedEvents":[10906]},{"id":11079,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"47254:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"ChainConstants","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11095,"linearizedBaseContracts":[11095],"name":"ChainConstants","nameLocation":"47289:14:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"0f7e5970","id":11082,"mutability":"constant","name":"ERC712_VERSION","nameLocation":"47333:14:27","nodeType":"VariableDeclaration","scope":11095,"src":"47310:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11080,"name":"string","nodeType":"ElementaryTypeName","src":"47310:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":11081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47350:3:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"public"},{"constant":true,"functionSelector":"8acfcaf7","id":11085,"mutability":"constant","name":"ROOT_CHAIN_ID","nameLocation":"47384:13:27","nodeType":"VariableDeclaration","scope":11095,"src":"47360:41:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11083,"name":"uint256","nodeType":"ElementaryTypeName","src":"47360:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":11084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47400:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":true,"functionSelector":"0dd7531a","id":11088,"mutability":"constant","name":"ROOT_CHAIN_ID_BYTES","nameLocation":"47429:19:27","nodeType":"VariableDeclaration","scope":11095,"src":"47407:51:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11086,"name":"bytes","nodeType":"ElementaryTypeName","src":"47407:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"hexValue":"01","id":11087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"47451:7:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},"visibility":"public"},{"constant":true,"functionSelector":"626381a0","id":11091,"mutability":"constant","name":"CHILD_CHAIN_ID","nameLocation":"47489:14:27","nodeType":"VariableDeclaration","scope":11095,"src":"47465:44:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11089,"name":"uint256","nodeType":"ElementaryTypeName","src":"47465:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313337","id":11090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47506:3:27","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"visibility":"public"},{"constant":true,"functionSelector":"0b54817c","id":11094,"mutability":"constant","name":"CHILD_CHAIN_ID_BYTES","nameLocation":"47537:20:27","nodeType":"VariableDeclaration","scope":11095,"src":"47515:52:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11092,"name":"bytes","nodeType":"ElementaryTypeName","src":"47515:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"hexValue":"89","id":11093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"47560:7:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_75dd4ce35898634c43d8e291c5edc041d288f0c0a531e92d5528804add589d1f","typeString":"literal_string hex\"89\""}},"visibility":"public"}],"scope":11433,"src":"47280:290:27","usedErrors":[],"usedEvents":[]},{"id":11096,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"47616:24:27"},{"abstract":true,"baseContracts":[],"canonicalName":"ContextMixin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11135,"linearizedBaseContracts":[11135],"name":"ContextMixin","nameLocation":"47660:12:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":11133,"nodeType":"Block","src":"47775:535:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11101,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47789:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47793:6:27","memberName":"sender","nodeType":"MemberAccess","src":"47789:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":11105,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"47811:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_ContextMixin_$11135","typeString":"contract ContextMixin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContextMixin_$11135","typeString":"contract ContextMixin"}],"id":11104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"47803:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11103,"name":"address","nodeType":"ElementaryTypeName","src":"47803:7:27","typeDescriptions":{}}},"id":11106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47803:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47789:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11129,"nodeType":"Block","src":"48228:53:27","statements":[{"expression":{"id":11127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11121,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11099,"src":"48242:6:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":11124,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48259:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48263:6:27","memberName":"sender","nodeType":"MemberAccess","src":"48259:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48251:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11122,"name":"address","nodeType":"ElementaryTypeName","src":"48251:8:27","stateMutability":"payable","typeDescriptions":{}}},"id":11126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48251:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"48242:28:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11128,"nodeType":"ExpressionStatement","src":"48242:28:27"}]},"id":11130,"nodeType":"IfStatement","src":"47785:496:27","trueBody":{"id":11120,"nodeType":"Block","src":"47818:404:27","statements":[{"assignments":[11109],"declarations":[{"constant":false,"id":11109,"mutability":"mutable","name":"array","nameLocation":"47845:5:27","nodeType":"VariableDeclaration","scope":11120,"src":"47832:18:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11108,"name":"bytes","nodeType":"ElementaryTypeName","src":"47832:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":11112,"initialValue":{"expression":{"id":11110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47853:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47857:4:27","memberName":"data","nodeType":"MemberAccess","src":"47853:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"47832:29:27"},{"assignments":[11114],"declarations":[{"constant":false,"id":11114,"mutability":"mutable","name":"index","nameLocation":"47883:5:27","nodeType":"VariableDeclaration","scope":11120,"src":"47875:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11113,"name":"uint256","nodeType":"ElementaryTypeName","src":"47875:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11118,"initialValue":{"expression":{"expression":{"id":11115,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47891:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47895:4:27","memberName":"data","nodeType":"MemberAccess","src":"47891:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47900:6:27","memberName":"length","nodeType":"MemberAccess","src":"47891:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47875:31:27"},{"AST":{"nodeType":"YulBlock","src":"47929:283:27","statements":[{"nodeType":"YulAssignment","src":"48057:141:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"48102:5:27"},{"name":"index","nodeType":"YulIdentifier","src":"48109:5:27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48098:3:27"},"nodeType":"YulFunctionCall","src":"48098:17:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"48092:5:27"},"nodeType":"YulFunctionCall","src":"48092:24:27"},{"kind":"number","nodeType":"YulLiteral","src":"48138:42:27","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"48067:3:27"},"nodeType":"YulFunctionCall","src":"48067:131:27"},"variableNames":[{"name":"sender","nodeType":"YulIdentifier","src":"48057:6:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11109,"isOffset":false,"isSlot":false,"src":"48102:5:27","valueSize":1},{"declaration":11114,"isOffset":false,"isSlot":false,"src":"48109:5:27","valueSize":1},{"declaration":11099,"isOffset":false,"isSlot":false,"src":"48057:6:27","valueSize":1}],"id":11119,"nodeType":"InlineAssembly","src":"47920:292:27"}]}},{"expression":{"id":11131,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11099,"src":"48297:6:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11100,"id":11132,"nodeType":"Return","src":"48290:13:27"}]},"id":11134,"implemented":true,"kind":"function","modifiers":[],"name":"msgSender","nameLocation":"47688:9:27","nodeType":"FunctionDefinition","parameters":{"id":11097,"nodeType":"ParameterList","parameters":[],"src":"47697:2:27"},"returnParameters":{"id":11100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11099,"mutability":"mutable","name":"sender","nameLocation":"47763:6:27","nodeType":"VariableDeclaration","scope":11134,"src":"47747:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11098,"name":"address","nodeType":"ElementaryTypeName","src":"47747:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"47746:24:27"},"scope":11135,"src":"47679:631:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"47642:670:27","usedErrors":[],"usedEvents":[]},{"id":11136,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"48389:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":11137,"name":"ERC20","nameLocations":["48444:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":9998,"src":"48444:5:27"},"id":11138,"nodeType":"InheritanceSpecifier","src":"48444:5:27"},{"baseName":{"id":11139,"name":"IChildToken","nameLocations":["48455:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":10750,"src":"48455:11:27"},"id":11140,"nodeType":"InheritanceSpecifier","src":"48455:11:27"},{"baseName":{"id":11141,"name":"AccessControlMixin","nameLocations":["48472:18:27"],"nodeType":"IdentifierPath","referencedDeclaration":10741,"src":"48472:18:27"},"id":11142,"nodeType":"InheritanceSpecifier","src":"48472:18:27"},{"baseName":{"id":11143,"name":"NativeMetaTransaction","nameLocations":["48496:21:27"],"nodeType":"IdentifierPath","referencedDeclaration":11078,"src":"48496:21:27"},"id":11144,"nodeType":"InheritanceSpecifier","src":"48496:21:27"},{"baseName":{"id":11145,"name":"ChainConstants","nameLocations":["48523:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":11095,"src":"48523:14:27"},"id":11146,"nodeType":"InheritanceSpecifier","src":"48523:14:27"},{"baseName":{"id":11147,"name":"ContextMixin","nameLocations":["48543:12:27"],"nodeType":"IdentifierPath","referencedDeclaration":11135,"src":"48543:12:27"},"id":11148,"nodeType":"InheritanceSpecifier","src":"48543:12:27"}],"canonicalName":"UChildERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11286,"linearizedBaseContracts":[11286,11135,11095,11078,10884,10769,10741,10703,10750,9998,9068,8991],"name":"UChildERC20","nameLocation":"48425:11:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3b0b5a3","id":11153,"mutability":"constant","name":"DEPOSITOR_ROLE","nameLocation":"48586:14:27","nodeType":"VariableDeclaration","scope":11286,"src":"48562:68:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48562:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4445504f5349544f525f524f4c45","id":11151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48613:16:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9","typeString":"literal_string \"DEPOSITOR_ROLE\""},"value":"DEPOSITOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9","typeString":"literal_string \"DEPOSITOR_ROLE\""}],"id":11150,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"48603:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48603:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":11160,"nodeType":"Block","src":"48671:2:27","statements":[]},"id":11161,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"444149","id":11156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48657:5:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568","typeString":"literal_string \"DAI\""},"value":"DAI"},{"hexValue":"444149","id":11157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48664:5:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568","typeString":"literal_string \"DAI\""},"value":"DAI"}],"id":11158,"kind":"baseConstructorSpecifier","modifierName":{"id":11155,"name":"ERC20","nameLocations":["48651:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":9998,"src":"48651:5:27"},"nodeType":"ModifierInvocation","src":"48651:19:27"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11154,"nodeType":"ParameterList","parameters":[],"src":"48648:2:27"},"returnParameters":{"id":11159,"nodeType":"ParameterList","parameters":[],"src":"48671:0:27"},"scope":11286,"src":"48637:36:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11214,"nodeType":"Block","src":"49018:306:27","statements":[{"expression":{"arguments":[{"id":11176,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11164,"src":"49034:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11175,"name":"setName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"49026:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49026:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11178,"nodeType":"ExpressionStatement","src":"49026:14:27"},{"expression":{"arguments":[{"id":11180,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11166,"src":"49058:7:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11179,"name":"setSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9555,"src":"49048:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49048:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11182,"nodeType":"ExpressionStatement","src":"49048:18:27"},{"expression":{"arguments":[{"id":11184,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"49086:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":11183,"name":"setDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"49074:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49074:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11186,"nodeType":"ExpressionStatement","src":"49074:22:27"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4368696c64","id":11192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49145:7:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93","typeString":"literal_string \"Child\""},"value":"Child"},{"id":11193,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11166,"src":"49154:7:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93","typeString":"literal_string \"Child\""},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":11190,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49128:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49132:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"49128:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49128:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49121:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":11188,"name":"string","nodeType":"ElementaryTypeName","src":"49121:6:27","typeDescriptions":{}}},"id":11195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49121:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11187,"name":"_setupContractId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10725,"src":"49104:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49104:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11197,"nodeType":"ExpressionStatement","src":"49104:60:27"},{"expression":{"arguments":[{"id":11199,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"49183:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":11200,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[11226],"referencedDeclaration":11226,"src":"49203:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49203:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11198,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"49172:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":11202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49172:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11203,"nodeType":"ExpressionStatement","src":"49172:44:27"},{"expression":{"arguments":[{"id":11205,"name":"DEPOSITOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"49235:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11206,"name":"childChainManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11170,"src":"49251:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11204,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"49224:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49224:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11208,"nodeType":"ExpressionStatement","src":"49224:45:27"},{"expression":{"arguments":[{"id":11210,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11164,"src":"49295:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":11211,"name":"ERC712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11082,"src":"49302:14:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11209,"name":"_initializeEIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10806,"src":"49277:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":11212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49277:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11213,"nodeType":"ExpressionStatement","src":"49277:40:27"}]},"documentation":{"id":11162,"nodeType":"StructuredDocumentation","src":"48679:143:27","text":" @notice Initialize the contract after it has been proxified\n @dev meant to be called once immediately after deployment"},"functionSelector":"de7ea79d","id":11215,"implemented":true,"kind":"function","modifiers":[{"id":11173,"kind":"modifierInvocation","modifierName":{"id":11172,"name":"initializer","nameLocations":["49002:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":10768,"src":"49002:11:27"},"nodeType":"ModifierInvocation","src":"49002:11:27"}],"name":"initialize","nameLocation":"48836:10:27","nodeType":"FunctionDefinition","parameters":{"id":11171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11164,"mutability":"mutable","name":"name_","nameLocation":"48872:5:27","nodeType":"VariableDeclaration","scope":11215,"src":"48856:21:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11163,"name":"string","nodeType":"ElementaryTypeName","src":"48856:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11166,"mutability":"mutable","name":"symbol_","nameLocation":"48903:7:27","nodeType":"VariableDeclaration","scope":11215,"src":"48887:23:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11165,"name":"string","nodeType":"ElementaryTypeName","src":"48887:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11168,"mutability":"mutable","name":"decimals_","nameLocation":"48926:9:27","nodeType":"VariableDeclaration","scope":11215,"src":"48920:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11167,"name":"uint8","nodeType":"ElementaryTypeName","src":"48920:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11170,"mutability":"mutable","name":"childChainManager","nameLocation":"48953:17:27","nodeType":"VariableDeclaration","scope":11215,"src":"48945:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"48945:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48846:130:27"},"returnParameters":{"id":11174,"nodeType":"ParameterList","parameters":[],"src":"49018:0:27"},"scope":11286,"src":"48827:497:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8979],"body":{"id":11225,"nodeType":"Block","src":"49558:48:27","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11221,"name":"ContextMixin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11135,"src":"49575:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContextMixin_$11135_$","typeString":"type(contract ContextMixin)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49588:9:27","memberName":"msgSender","nodeType":"MemberAccess","referencedDeclaration":11134,"src":"49575:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":11223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49575:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11220,"id":11224,"nodeType":"Return","src":"49568:31:27"}]},"id":11226,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"49453:10:27","nodeType":"FunctionDefinition","overrides":{"id":11217,"nodeType":"OverrideSpecifier","overrides":[],"src":"49491:8:27"},"parameters":{"id":11216,"nodeType":"ParameterList","parameters":[],"src":"49463:2:27"},"returnParameters":{"id":11220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11219,"mutability":"mutable","name":"sender","nameLocation":"49546:6:27","nodeType":"VariableDeclaration","scope":11226,"src":"49530:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11218,"name":"address","nodeType":"ElementaryTypeName","src":"49530:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"49529:24:27"},"scope":11286,"src":"49444:162:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11243,"nodeType":"Block","src":"49689:83:27","statements":[{"expression":{"arguments":[{"id":11235,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"49707:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11234,"name":"setName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"49699:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49699:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11237,"nodeType":"ExpressionStatement","src":"49699:14:27"},{"expression":{"arguments":[{"id":11239,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"49743:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":11240,"name":"ERC712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11082,"src":"49750:14:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11238,"name":"_setDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10844,"src":"49723:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":11241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49723:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11242,"nodeType":"ExpressionStatement","src":"49723:42:27"}]},"functionSelector":"5353a2d8","id":11244,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11231,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"49669:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11232,"kind":"modifierInvocation","modifierName":{"id":11230,"name":"only","nameLocations":["49664:4:27"],"nodeType":"IdentifierPath","referencedDeclaration":10740,"src":"49664:4:27"},"nodeType":"ModifierInvocation","src":"49664:24:27"}],"name":"changeName","nameLocation":"49621:10:27","nodeType":"FunctionDefinition","parameters":{"id":11229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11228,"mutability":"mutable","name":"name_","nameLocation":"49648:5:27","nodeType":"VariableDeclaration","scope":11244,"src":"49632:21:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11227,"name":"string","nodeType":"ElementaryTypeName","src":"49632:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49631:23:27"},"returnParameters":{"id":11233,"nodeType":"ParameterList","parameters":[],"src":"49689:0:27"},"scope":11286,"src":"49612:160:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[10749],"body":{"id":11271,"nodeType":"Block","src":"50269:97:27","statements":[{"assignments":[11257],"declarations":[{"constant":false,"id":11257,"mutability":"mutable","name":"amount","nameLocation":"50287:6:27","nodeType":"VariableDeclaration","scope":11271,"src":"50279:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11256,"name":"uint256","nodeType":"ElementaryTypeName","src":"50279:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11265,"initialValue":{"arguments":[{"id":11260,"name":"depositData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11249,"src":"50307:11:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":11262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"50321:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11261,"name":"uint256","nodeType":"ElementaryTypeName","src":"50321:7:27","typeDescriptions":{}}}],"id":11263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"50320:9:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50296:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50300:6:27","memberName":"decode","nodeType":"MemberAccess","src":"50296:10:27","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50296:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"50279:51:27"},{"expression":{"arguments":[{"id":11267,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"50346:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11268,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11257,"src":"50352:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11266,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9874,"src":"50340:5:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50340:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11270,"nodeType":"ExpressionStatement","src":"50340:19:27"}]},"documentation":{"id":11245,"nodeType":"StructuredDocumentation","src":"49778:360:27","text":" @notice called when token is deposited on root chain\n @dev Should be callable only by ChildChainManager\n Should handle deposit by minting the required amount for user\n Make sure minting is done only by this function\n @param user user address for whom deposit is being done\n @param depositData abi encoded amount"},"functionSelector":"cf2c52cb","id":11272,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11253,"name":"DEPOSITOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"50249:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11254,"kind":"modifierInvocation","modifierName":{"id":11252,"name":"only","nameLocations":["50244:4:27"],"nodeType":"IdentifierPath","referencedDeclaration":10740,"src":"50244:4:27"},"nodeType":"ModifierInvocation","src":"50244:20:27"}],"name":"deposit","nameLocation":"50152:7:27","nodeType":"FunctionDefinition","overrides":{"id":11251,"nodeType":"OverrideSpecifier","overrides":[],"src":"50227:8:27"},"parameters":{"id":11250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11247,"mutability":"mutable","name":"user","nameLocation":"50168:4:27","nodeType":"VariableDeclaration","scope":11272,"src":"50160:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11246,"name":"address","nodeType":"ElementaryTypeName","src":"50160:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11249,"mutability":"mutable","name":"depositData","nameLocation":"50189:11:27","nodeType":"VariableDeclaration","scope":11272,"src":"50174:26:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11248,"name":"bytes","nodeType":"ElementaryTypeName","src":"50174:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"50159:42:27"},"returnParameters":{"id":11255,"nodeType":"ParameterList","parameters":[],"src":"50269:0:27"},"scope":11286,"src":"50143:223:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11284,"nodeType":"Block","src":"50657:44:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11279,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[11226],"referencedDeclaration":11226,"src":"50673:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50673:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":11281,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"50687:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11278,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9930,"src":"50667:5:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50667:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11283,"nodeType":"ExpressionStatement","src":"50667:27:27"}]},"documentation":{"id":11273,"nodeType":"StructuredDocumentation","src":"50372:237:27","text":" @notice called when user wants to withdraw tokens back to root chain\n @dev Should burn user's tokens. This transaction will be verified when exiting on root chain\n @param amount amount of tokens to withdraw"},"functionSelector":"2e1a7d4d","id":11285,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"50623:8:27","nodeType":"FunctionDefinition","parameters":{"id":11276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11275,"mutability":"mutable","name":"amount","nameLocation":"50640:6:27","nodeType":"VariableDeclaration","scope":11285,"src":"50632:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11274,"name":"uint256","nodeType":"ElementaryTypeName","src":"50632:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50631:16:27"},"returnParameters":{"id":11277,"nodeType":"ParameterList","parameters":[],"src":"50657:0:27"},"scope":11286,"src":"50614:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11433,"src":"48416:2287:27","usedErrors":[],"usedEvents":[9058,9067,10455,10464,10473,10906]},{"id":11287,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"50767:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":11288,"name":"UChildERC20","nameLocations":["50819:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":11286,"src":"50819:11:27"},"id":11289,"nodeType":"InheritanceSpecifier","src":"50819:11:27"}],"canonicalName":"NofTestDAIV3","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11432,"linearizedBaseContracts":[11432,11286,11135,11095,11078,10884,10769,10741,10703,10750,9998,9068,8991],"name":"NofTestDAIV3","nameLocation":"50803:12:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"30adf81f","id":11292,"mutability":"constant","name":"PERMIT_TYPEHASH","nameLocation":"51014:15:27","nodeType":"VariableDeclaration","scope":11432,"src":"50990:108:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50990:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307865613261613061316265313161303765643836643735356339333436376634663832333632623435323337316431626139346431373135313233353131616362","id":11291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51032:66:27","typeDescriptions":{"typeIdentifier":"t_rational_105916522785188513640362517802612480037966763957092682311465172263008277174987_by_1","typeString":"int_const 1059...(70 digits omitted)...4987"},"value":"0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb"},"visibility":"public"},{"body":{"id":11306,"nodeType":"Block","src":"51172:51:27","statements":[{"expression":{"arguments":[{"expression":{"id":11300,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51195:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51199:6:27","memberName":"sender","nodeType":"MemberAccess","src":"51195:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11302,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11294,"src":"51207:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11303,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11296,"src":"51212:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11299,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"51182:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":11304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51182:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11305,"nodeType":"ExpressionStatement","src":"51182:34:27"}]},"functionSelector":"b753a98c","id":11307,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"51135:4:27","nodeType":"FunctionDefinition","parameters":{"id":11297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11294,"mutability":"mutable","name":"usr","nameLocation":"51148:3:27","nodeType":"VariableDeclaration","scope":11307,"src":"51140:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11293,"name":"address","nodeType":"ElementaryTypeName","src":"51140:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11296,"mutability":"mutable","name":"wad","nameLocation":"51158:3:27","nodeType":"VariableDeclaration","scope":11307,"src":"51153:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11295,"name":"uint","nodeType":"ElementaryTypeName","src":"51153:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51139:23:27"},"returnParameters":{"id":11298,"nodeType":"ParameterList","parameters":[],"src":"51172:0:27"},"scope":11432,"src":"51126:97:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11321,"nodeType":"Block","src":"51274:51:27","statements":[{"expression":{"arguments":[{"id":11315,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"51297:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":11316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51302:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51306:6:27","memberName":"sender","nodeType":"MemberAccess","src":"51302:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11318,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"51314:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11314,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"51284:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":11319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51284:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11320,"nodeType":"ExpressionStatement","src":"51284:34:27"}]},"functionSelector":"f2d5d56b","id":11322,"implemented":true,"kind":"function","modifiers":[],"name":"pull","nameLocation":"51237:4:27","nodeType":"FunctionDefinition","parameters":{"id":11312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11309,"mutability":"mutable","name":"usr","nameLocation":"51250:3:27","nodeType":"VariableDeclaration","scope":11322,"src":"51242:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11308,"name":"address","nodeType":"ElementaryTypeName","src":"51242:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11311,"mutability":"mutable","name":"wad","nameLocation":"51260:3:27","nodeType":"VariableDeclaration","scope":11322,"src":"51255:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11310,"name":"uint","nodeType":"ElementaryTypeName","src":"51255:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51241:23:27"},"returnParameters":{"id":11313,"nodeType":"ParameterList","parameters":[],"src":"51274:0:27"},"scope":11432,"src":"51228:97:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11337,"nodeType":"Block","src":"51389:44:27","statements":[{"expression":{"arguments":[{"id":11332,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"51412:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11333,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11326,"src":"51417:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11334,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11328,"src":"51422:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11331,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"51399:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51399:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11336,"nodeType":"ExpressionStatement","src":"51399:27:27"}]},"functionSelector":"bb35783b","id":11338,"implemented":true,"kind":"function","modifiers":[],"name":"move","nameLocation":"51339:4:27","nodeType":"FunctionDefinition","parameters":{"id":11329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11324,"mutability":"mutable","name":"src","nameLocation":"51352:3:27","nodeType":"VariableDeclaration","scope":11338,"src":"51344:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11323,"name":"address","nodeType":"ElementaryTypeName","src":"51344:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11326,"mutability":"mutable","name":"dst","nameLocation":"51365:3:27","nodeType":"VariableDeclaration","scope":11338,"src":"51357:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11325,"name":"address","nodeType":"ElementaryTypeName","src":"51357:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11328,"mutability":"mutable","name":"wad","nameLocation":"51375:3:27","nodeType":"VariableDeclaration","scope":11338,"src":"51370:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11327,"name":"uint","nodeType":"ElementaryTypeName","src":"51370:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51343:36:27"},"returnParameters":{"id":11330,"nodeType":"ParameterList","parameters":[],"src":"51389:0:27"},"scope":11432,"src":"51330:103:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11430,"nodeType":"Block","src":"51679:785:27","statements":[{"assignments":[11358],"declarations":[{"constant":false,"id":11358,"mutability":"mutable","name":"digest","nameLocation":"51697:6:27","nodeType":"VariableDeclaration","scope":11430,"src":"51689:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51689:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11378,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":11362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51763:10:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":11363,"name":"getDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"51791:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":11364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51791:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":11368,"name":"PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11292,"src":"51896:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11369,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"51937:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11370,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11342,"src":"51969:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11344,"src":"52002:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11372,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"52033:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11373,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"52065:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51860:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51864:6:27","memberName":"encode","nodeType":"MemberAccess","src":"51860:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51860:234:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11365,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"51829:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51829:283:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51729:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51733:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"51729:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51729:393:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11359,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"51706:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51706:417:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"51689:434:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11380,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"52142:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":11382,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"52162:6:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11383,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11350,"src":"52170:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11384,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11352,"src":"52173:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11385,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11354,"src":"52176:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11381,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"52152:9:27","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":11386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52152:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"52142:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554368696c644441493a20494e56414c49442d5045524d4954","id":11388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52180:27:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53","typeString":"literal_string \"UChildDAI: INVALID-PERMIT\""},"value":"UChildDAI: INVALID-PERMIT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53","typeString":"literal_string \"UChildDAI: INVALID-PERMIT\""}],"id":11379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"52134:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52134:74:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11390,"nodeType":"ExpressionStatement","src":"52134:74:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11392,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"52226:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52236:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52226:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11395,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"52241:5:27","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52247:9:27","memberName":"timestamp","nodeType":"MemberAccess","src":"52241:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11397,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"52260:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"52241:25:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"52226:40:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554368696c644441493a205045524d49542d45585049524544","id":11400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52268:27:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe","typeString":"literal_string \"UChildDAI: PERMIT-EXPIRED\""},"value":"UChildDAI: PERMIT-EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe","typeString":"literal_string \"UChildDAI: PERMIT-EXPIRED\""}],"id":11391,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"52218:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52218:78:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11402,"nodeType":"ExpressionStatement","src":"52218:78:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11404,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11344,"src":"52314:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"52323:16:27","subExpression":{"baseExpression":{"id":11405,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"52323:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11407,"indexExpression":{"id":11406,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"52330:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"52323:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"52314:25:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554368696c644441493a20494e56414c49442d4e4f4e4345","id":11410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52341:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5","typeString":"literal_string \"UChildDAI: INVALID-NONCE\""},"value":"UChildDAI: INVALID-NONCE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5","typeString":"literal_string \"UChildDAI: INVALID-NONCE\""}],"id":11403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"52306:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52306:62:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11412,"nodeType":"ExpressionStatement","src":"52306:62:27"},{"assignments":[11414],"declarations":[{"constant":false,"id":11414,"mutability":"mutable","name":"wad","nameLocation":"52383:3:27","nodeType":"VariableDeclaration","scope":11430,"src":"52378:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11413,"name":"uint","nodeType":"ElementaryTypeName","src":"52378:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11423,"initialValue":{"condition":{"id":11415,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"52389:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":11421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52416:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"52389:28:27","trueExpression":{"expression":{"arguments":[{"id":11418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"52404:4:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11417,"name":"uint","nodeType":"ElementaryTypeName","src":"52404:4:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11416,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"52399:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52399:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52410:3:27","memberName":"max","nodeType":"MemberAccess","src":"52399:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"52378:39:27"},{"expression":{"arguments":[{"id":11425,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"52436:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11426,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11342,"src":"52444:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11427,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11414,"src":"52453:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11424,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"52427:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52427:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11429,"nodeType":"ExpressionStatement","src":"52427:30:27"}]},"functionSelector":"8fcbaf0c","id":11431,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"51484:6:27","nodeType":"FunctionDefinition","parameters":{"id":11355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11340,"mutability":"mutable","name":"holder","nameLocation":"51508:6:27","nodeType":"VariableDeclaration","scope":11431,"src":"51500:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11339,"name":"address","nodeType":"ElementaryTypeName","src":"51500:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11342,"mutability":"mutable","name":"spender","nameLocation":"51532:7:27","nodeType":"VariableDeclaration","scope":11431,"src":"51524:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11341,"name":"address","nodeType":"ElementaryTypeName","src":"51524:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11344,"mutability":"mutable","name":"nonce","nameLocation":"51557:5:27","nodeType":"VariableDeclaration","scope":11431,"src":"51549:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11343,"name":"uint256","nodeType":"ElementaryTypeName","src":"51549:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11346,"mutability":"mutable","name":"expiry","nameLocation":"51580:6:27","nodeType":"VariableDeclaration","scope":11431,"src":"51572:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11345,"name":"uint256","nodeType":"ElementaryTypeName","src":"51572:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11348,"mutability":"mutable","name":"allowed","nameLocation":"51601:7:27","nodeType":"VariableDeclaration","scope":11431,"src":"51596:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11347,"name":"bool","nodeType":"ElementaryTypeName","src":"51596:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11350,"mutability":"mutable","name":"v","nameLocation":"51624:1:27","nodeType":"VariableDeclaration","scope":11431,"src":"51618:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11349,"name":"uint8","nodeType":"ElementaryTypeName","src":"51618:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11352,"mutability":"mutable","name":"r","nameLocation":"51643:1:27","nodeType":"VariableDeclaration","scope":11431,"src":"51635:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51635:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11354,"mutability":"mutable","name":"s","nameLocation":"51662:1:27","nodeType":"VariableDeclaration","scope":11431,"src":"51654:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51654:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51490:179:27"},"returnParameters":{"id":11356,"nodeType":"ParameterList","parameters":[],"src":"51679:0:27"},"scope":11432,"src":"51475:989:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11433,"src":"50794:1672:27","usedErrors":[],"usedEvents":[9058,9067,10455,10464,10473,10906]}],"src":"32:52434:27"},"id":27},"hardhat/console.sol":{"ast":{"absolutePath":"hardhat/console.sol","exportedSymbols":{"console":[19517]},"id":19518,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11434,"literals":["solidity",">=","0.4",".22","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:32:28"},{"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":19517,"linearizedBaseContracts":[19517],"name":"console","nameLocation":"74:7:28","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":11437,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"105:15:28","nodeType":"VariableDeclaration","scope":19517,"src":"88:85:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11435,"name":"address","nodeType":"ElementaryTypeName","src":"88:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:42:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"body":{"id":11447,"nodeType":"Block","src":"255:388:28","statements":[{"assignments":[11443],"declarations":[{"constant":false,"id":11443,"mutability":"mutable","name":"consoleAddress","nameLocation":"273:14:28","nodeType":"VariableDeclaration","scope":11447,"src":"265:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11442,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11445,"initialValue":{"id":11444,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11437,"src":"290:15:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"265:40:28"},{"AST":{"nodeType":"YulBlock","src":"367:270:28","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"434:3:28"},"nodeType":"YulFunctionCall","src":"434:5:28"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"461:14:28"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"501:7:28"},{"kind":"number","nodeType":"YulLiteral","src":"510:2:28","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"497:3:28"},"nodeType":"YulFunctionCall","src":"497:16:28"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"541:7:28"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"535:5:28"},"nodeType":"YulFunctionCall","src":"535:14:28"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:28","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"594:1:28","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"402:10:28"},"nodeType":"YulFunctionCall","src":"402:211:28"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"381:3:28"},"nodeType":"YulFunctionCall","src":"381:246:28"},"nodeType":"YulExpressionStatement","src":"381:246:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":11443,"isOffset":false,"isSlot":false,"src":"461:14:28","valueSize":1},{"declaration":11439,"isOffset":false,"isSlot":false,"src":"501:7:28","valueSize":1},{"declaration":11439,"isOffset":false,"isSlot":false,"src":"541:7:28","valueSize":1}],"id":11446,"nodeType":"InlineAssembly","src":"358:279:28"}]},"id":11448,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadImplementation","nameLocation":"189:29:28","nodeType":"FunctionDefinition","parameters":{"id":11440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11439,"mutability":"mutable","name":"payload","nameLocation":"232:7:28","nodeType":"VariableDeclaration","scope":11448,"src":"219:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11438,"name":"bytes","nodeType":"ElementaryTypeName","src":"219:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"218:22:28"},"returnParameters":{"id":11441,"nodeType":"ParameterList","parameters":[],"src":"255:0:28"},"scope":19517,"src":"180:463:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11464,"nodeType":"Block","src":"783:62:28","statements":[{"AST":{"nodeType":"YulBlock","src":"802:37:28","statements":[{"nodeType":"YulAssignment","src":"816:13:28","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"825:4:28"},"variableNames":[{"name":"fnOut","nodeType":"YulIdentifier","src":"816:5:28"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11454,"isOffset":false,"isSlot":false,"src":"825:4:28","valueSize":1},{"declaration":11461,"isOffset":false,"isSlot":false,"src":"816:5:28","valueSize":1}],"id":11463,"nodeType":"InlineAssembly","src":"793:46:28"}]},"id":11465,"implemented":true,"kind":"function","modifiers":[],"name":"_castToPure","nameLocation":"658:11:28","nodeType":"FunctionDefinition","parameters":{"id":11455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11454,"mutability":"mutable","name":"fnIn","nameLocation":"714:4:28","nodeType":"VariableDeclaration","scope":11465,"src":"677:41:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":11453,"nodeType":"FunctionTypeName","parameterTypes":{"id":11451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11453,"src":"686:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11449,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"685:14:28"},"returnParameterTypes":{"id":11452,"nodeType":"ParameterList","parameters":[],"src":"714:0:28"},"src":"677:41:28","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"669:55:28"},"returnParameters":{"id":11462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11461,"mutability":"mutable","name":"fnOut","nameLocation":"776:5:28","nodeType":"VariableDeclaration","scope":11465,"src":"748:33:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":11460,"nodeType":"FunctionTypeName","parameterTypes":{"id":11458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11460,"src":"757:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11456,"name":"bytes","nodeType":"ElementaryTypeName","src":"757:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"756:14:28"},"returnParameterTypes":{"id":11459,"nodeType":"ParameterList","parameters":[],"src":"776:0:28"},"src":"748:33:28","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"747:35:28"},"scope":19517,"src":"649:196:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11476,"nodeType":"Block","src":"912:68:28","statements":[{"expression":{"arguments":[{"id":11473,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11467,"src":"965:7:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":11471,"name":"_sendLogPayloadImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11448,"src":"934:29:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":11470,"name":"_castToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"922:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:51:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11475,"nodeType":"ExpressionStatement","src":"922:51:28"}]},"id":11477,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"860:15:28","nodeType":"FunctionDefinition","parameters":{"id":11468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11467,"mutability":"mutable","name":"payload","nameLocation":"889:7:28","nodeType":"VariableDeclaration","scope":11477,"src":"876:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11466,"name":"bytes","nodeType":"ElementaryTypeName","src":"876:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"875:22:28"},"returnParameters":{"id":11469,"nodeType":"ParameterList","parameters":[],"src":"912:0:28"},"scope":19517,"src":"851:129:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11487,"nodeType":"Block","src":"1015:66:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":11483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1065:7:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":11481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1041:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1045:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1041:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1025:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1025:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11486,"nodeType":"ExpressionStatement","src":"1025:49:28"}]},"id":11488,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"995:3:28","nodeType":"FunctionDefinition","parameters":{"id":11478,"nodeType":"ParameterList","parameters":[],"src":"998:2:28"},"returnParameters":{"id":11479,"nodeType":"ParameterList","parameters":[],"src":"1015:0:28"},"scope":19517,"src":"986:95:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11501,"nodeType":"Block","src":"1127:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":11496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1177:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":11497,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11490,"src":"1192:2:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":11494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1153:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1157:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1153:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11493,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1137:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11500,"nodeType":"ExpressionStatement","src":"1137:59:28"}]},"id":11502,"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"1095:6:28","nodeType":"FunctionDefinition","parameters":{"id":11491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11490,"mutability":"mutable","name":"p0","nameLocation":"1109:2:28","nodeType":"VariableDeclaration","scope":11502,"src":"1102:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11489,"name":"int256","nodeType":"ElementaryTypeName","src":"1102:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1101:11:28"},"returnParameters":{"id":11492,"nodeType":"ParameterList","parameters":[],"src":"1127:0:28"},"scope":19517,"src":"1086:117:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11515,"nodeType":"Block","src":"1252:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":11510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1302:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":11511,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11504,"src":"1318:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11508,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1278:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1282:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1278:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11507,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1262:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11514,"nodeType":"ExpressionStatement","src":"1262:60:28"}]},"id":11516,"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"1218:7:28","nodeType":"FunctionDefinition","parameters":{"id":11505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11504,"mutability":"mutable","name":"p0","nameLocation":"1234:2:28","nodeType":"VariableDeclaration","scope":11516,"src":"1226:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1225:12:28"},"returnParameters":{"id":11506,"nodeType":"ParameterList","parameters":[],"src":"1252:0:28"},"scope":19517,"src":"1209:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11529,"nodeType":"Block","src":"1386:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":11524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1436:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":11525,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"1451:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11522,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1412:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1416:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1412:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11521,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1396:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11528,"nodeType":"ExpressionStatement","src":"1396:59:28"}]},"id":11530,"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"1344:9:28","nodeType":"FunctionDefinition","parameters":{"id":11519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11518,"mutability":"mutable","name":"p0","nameLocation":"1368:2:28","nodeType":"VariableDeclaration","scope":11530,"src":"1354:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11517,"name":"string","nodeType":"ElementaryTypeName","src":"1354:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1353:18:28"},"returnParameters":{"id":11520,"nodeType":"ParameterList","parameters":[],"src":"1386:0:28"},"scope":19517,"src":"1335:127:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11543,"nodeType":"Block","src":"1508:74:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":11538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1558:11:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":11539,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11532,"src":"1571:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1534:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1538:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1534:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11535,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1518:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:57:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11542,"nodeType":"ExpressionStatement","src":"1518:57:28"}]},"id":11544,"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1477:7:28","nodeType":"FunctionDefinition","parameters":{"id":11533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11532,"mutability":"mutable","name":"p0","nameLocation":"1490:2:28","nodeType":"VariableDeclaration","scope":11544,"src":"1485:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11531,"name":"bool","nodeType":"ElementaryTypeName","src":"1485:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1484:9:28"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[],"src":"1508:0:28"},"scope":19517,"src":"1468:114:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11557,"nodeType":"Block","src":"1634:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":11552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":11553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11546,"src":"1700:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1660:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1664:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1660:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1644:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11556,"nodeType":"ExpressionStatement","src":"1644:60:28"}]},"id":11558,"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1597:10:28","nodeType":"FunctionDefinition","parameters":{"id":11547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11546,"mutability":"mutable","name":"p0","nameLocation":"1616:2:28","nodeType":"VariableDeclaration","scope":11558,"src":"1608:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11545,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1607:12:28"},"returnParameters":{"id":11548,"nodeType":"ParameterList","parameters":[],"src":"1634:0:28"},"scope":19517,"src":"1588:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11571,"nodeType":"Block","src":"1766:75:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":11566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1816:12:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":11567,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11560,"src":"1830:2:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1792:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1796:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1792:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11563,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1776:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11570,"nodeType":"ExpressionStatement","src":"1776:58:28"}]},"id":11572,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1726:8:28","nodeType":"FunctionDefinition","parameters":{"id":11561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11560,"mutability":"mutable","name":"p0","nameLocation":"1748:2:28","nodeType":"VariableDeclaration","scope":11572,"src":"1735:15:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11559,"name":"bytes","nodeType":"ElementaryTypeName","src":"1735:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1734:17:28"},"returnParameters":{"id":11562,"nodeType":"ParameterList","parameters":[],"src":"1766:0:28"},"scope":19517,"src":"1717:124:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11585,"nodeType":"Block","src":"1891:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":11580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":11581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11574,"src":"1956:2:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":11578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1917:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1921:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1917:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1901:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11584,"nodeType":"ExpressionStatement","src":"1901:59:28"}]},"id":11586,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1856:9:28","nodeType":"FunctionDefinition","parameters":{"id":11575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11574,"mutability":"mutable","name":"p0","nameLocation":"1873:2:28","nodeType":"VariableDeclaration","scope":11586,"src":"1866:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":11573,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1866:6:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1865:11:28"},"returnParameters":{"id":11576,"nodeType":"ParameterList","parameters":[],"src":"1891:0:28"},"scope":19517,"src":"1847:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11599,"nodeType":"Block","src":"2017:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":11594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2067:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":11595,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11588,"src":"2082:2:28","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":11592,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2043:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2047:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2043:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11591,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2027:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11598,"nodeType":"ExpressionStatement","src":"2027:59:28"}]},"id":11600,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1982:9:28","nodeType":"FunctionDefinition","parameters":{"id":11589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11588,"mutability":"mutable","name":"p0","nameLocation":"1999:2:28","nodeType":"VariableDeclaration","scope":11600,"src":"1992:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":11587,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1992:6:28","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1991:11:28"},"returnParameters":{"id":11590,"nodeType":"ParameterList","parameters":[],"src":"2017:0:28"},"scope":19517,"src":"1973:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11613,"nodeType":"Block","src":"2143:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":11608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":11609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"2208:2:28","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":11606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2169:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2173:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2169:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2153:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11612,"nodeType":"ExpressionStatement","src":"2153:59:28"}]},"id":11614,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"2108:9:28","nodeType":"FunctionDefinition","parameters":{"id":11603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11602,"mutability":"mutable","name":"p0","nameLocation":"2125:2:28","nodeType":"VariableDeclaration","scope":11614,"src":"2118:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":11601,"name":"bytes3","nodeType":"ElementaryTypeName","src":"2118:6:28","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"2117:11:28"},"returnParameters":{"id":11604,"nodeType":"ParameterList","parameters":[],"src":"2143:0:28"},"scope":19517,"src":"2099:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11627,"nodeType":"Block","src":"2269:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":11622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2319:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":11623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11616,"src":"2334:2:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":11620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2295:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2299:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2295:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2279:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11626,"nodeType":"ExpressionStatement","src":"2279:59:28"}]},"id":11628,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"2234:9:28","nodeType":"FunctionDefinition","parameters":{"id":11617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11616,"mutability":"mutable","name":"p0","nameLocation":"2251:2:28","nodeType":"VariableDeclaration","scope":11628,"src":"2244:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11615,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2244:6:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2243:11:28"},"returnParameters":{"id":11618,"nodeType":"ParameterList","parameters":[],"src":"2269:0:28"},"scope":19517,"src":"2225:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11641,"nodeType":"Block","src":"2395:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":11636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2445:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":11637,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11630,"src":"2460:2:28","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":11634,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2421:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2425:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2421:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11633,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2405:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2405:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11640,"nodeType":"ExpressionStatement","src":"2405:59:28"}]},"id":11642,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"2360:9:28","nodeType":"FunctionDefinition","parameters":{"id":11631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11630,"mutability":"mutable","name":"p0","nameLocation":"2377:2:28","nodeType":"VariableDeclaration","scope":11642,"src":"2370:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":11629,"name":"bytes5","nodeType":"ElementaryTypeName","src":"2370:6:28","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"2369:11:28"},"returnParameters":{"id":11632,"nodeType":"ParameterList","parameters":[],"src":"2395:0:28"},"scope":19517,"src":"2351:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11655,"nodeType":"Block","src":"2521:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":11650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2571:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":11651,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"2586:2:28","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":11648,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2547:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2551:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2547:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11647,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2531:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11654,"nodeType":"ExpressionStatement","src":"2531:59:28"}]},"id":11656,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2486:9:28","nodeType":"FunctionDefinition","parameters":{"id":11645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11644,"mutability":"mutable","name":"p0","nameLocation":"2503:2:28","nodeType":"VariableDeclaration","scope":11656,"src":"2496:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":11643,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2496:6:28","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2495:11:28"},"returnParameters":{"id":11646,"nodeType":"ParameterList","parameters":[],"src":"2521:0:28"},"scope":19517,"src":"2477:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11669,"nodeType":"Block","src":"2647:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":11664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2697:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":11665,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"2712:2:28","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":11662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2673:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2677:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2673:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11661,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2657:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11668,"nodeType":"ExpressionStatement","src":"2657:59:28"}]},"id":11670,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2612:9:28","nodeType":"FunctionDefinition","parameters":{"id":11659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11658,"mutability":"mutable","name":"p0","nameLocation":"2629:2:28","nodeType":"VariableDeclaration","scope":11670,"src":"2622:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":11657,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2622:6:28","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2621:11:28"},"returnParameters":{"id":11660,"nodeType":"ParameterList","parameters":[],"src":"2647:0:28"},"scope":19517,"src":"2603:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11683,"nodeType":"Block","src":"2773:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":11678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2823:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":11679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11672,"src":"2838:2:28","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":11676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2803:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2799:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2783:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11682,"nodeType":"ExpressionStatement","src":"2783:59:28"}]},"id":11684,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2738:9:28","nodeType":"FunctionDefinition","parameters":{"id":11673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11672,"mutability":"mutable","name":"p0","nameLocation":"2755:2:28","nodeType":"VariableDeclaration","scope":11684,"src":"2748:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":11671,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2748:6:28","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2747:11:28"},"returnParameters":{"id":11674,"nodeType":"ParameterList","parameters":[],"src":"2773:0:28"},"scope":19517,"src":"2729:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11697,"nodeType":"Block","src":"2899:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":11692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2949:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":11693,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11686,"src":"2964:2:28","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":11690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2925:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11689,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2909:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2909:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11696,"nodeType":"ExpressionStatement","src":"2909:59:28"}]},"id":11698,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2864:9:28","nodeType":"FunctionDefinition","parameters":{"id":11687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11686,"mutability":"mutable","name":"p0","nameLocation":"2881:2:28","nodeType":"VariableDeclaration","scope":11698,"src":"2874:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":11685,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2874:6:28","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2873:11:28"},"returnParameters":{"id":11688,"nodeType":"ParameterList","parameters":[],"src":"2899:0:28"},"scope":19517,"src":"2855:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11711,"nodeType":"Block","src":"3027:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":11706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3077:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":11707,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11700,"src":"3093:2:28","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":11704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3053:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3057:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3053:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3053:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11703,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3037:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3037:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11710,"nodeType":"ExpressionStatement","src":"3037:60:28"}]},"id":11712,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2990:10:28","nodeType":"FunctionDefinition","parameters":{"id":11701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11700,"mutability":"mutable","name":"p0","nameLocation":"3009:2:28","nodeType":"VariableDeclaration","scope":11712,"src":"3001:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":11699,"name":"bytes10","nodeType":"ElementaryTypeName","src":"3001:7:28","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"3000:12:28"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[],"src":"3027:0:28"},"scope":19517,"src":"2981:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11725,"nodeType":"Block","src":"3156:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":11720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3206:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":11721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"3222:2:28","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":11718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3182:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3186:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3182:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3166:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3166:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11724,"nodeType":"ExpressionStatement","src":"3166:60:28"}]},"id":11726,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"3119:10:28","nodeType":"FunctionDefinition","parameters":{"id":11715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11714,"mutability":"mutable","name":"p0","nameLocation":"3138:2:28","nodeType":"VariableDeclaration","scope":11726,"src":"3130:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":11713,"name":"bytes11","nodeType":"ElementaryTypeName","src":"3130:7:28","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"3129:12:28"},"returnParameters":{"id":11716,"nodeType":"ParameterList","parameters":[],"src":"3156:0:28"},"scope":19517,"src":"3110:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11739,"nodeType":"Block","src":"3285:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":11734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":11735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11728,"src":"3351:2:28","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":11732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3311:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3315:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3311:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3311:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3295:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3295:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11738,"nodeType":"ExpressionStatement","src":"3295:60:28"}]},"id":11740,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"3248:10:28","nodeType":"FunctionDefinition","parameters":{"id":11729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11728,"mutability":"mutable","name":"p0","nameLocation":"3267:2:28","nodeType":"VariableDeclaration","scope":11740,"src":"3259:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":11727,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3259:7:28","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"3258:12:28"},"returnParameters":{"id":11730,"nodeType":"ParameterList","parameters":[],"src":"3285:0:28"},"scope":19517,"src":"3239:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11753,"nodeType":"Block","src":"3414:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":11748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3464:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":11749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"3480:2:28","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":11746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3440:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3444:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3440:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3424:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11752,"nodeType":"ExpressionStatement","src":"3424:60:28"}]},"id":11754,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"3377:10:28","nodeType":"FunctionDefinition","parameters":{"id":11743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11742,"mutability":"mutable","name":"p0","nameLocation":"3396:2:28","nodeType":"VariableDeclaration","scope":11754,"src":"3388:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":11741,"name":"bytes13","nodeType":"ElementaryTypeName","src":"3388:7:28","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"3387:12:28"},"returnParameters":{"id":11744,"nodeType":"ParameterList","parameters":[],"src":"3414:0:28"},"scope":19517,"src":"3368:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11767,"nodeType":"Block","src":"3543:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":11762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3593:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":11763,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11756,"src":"3609:2:28","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":11760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3569:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3573:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3569:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3569:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11759,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3553:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11766,"nodeType":"ExpressionStatement","src":"3553:60:28"}]},"id":11768,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3506:10:28","nodeType":"FunctionDefinition","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11756,"mutability":"mutable","name":"p0","nameLocation":"3525:2:28","nodeType":"VariableDeclaration","scope":11768,"src":"3517:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":11755,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3517:7:28","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3516:12:28"},"returnParameters":{"id":11758,"nodeType":"ParameterList","parameters":[],"src":"3543:0:28"},"scope":19517,"src":"3497:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11781,"nodeType":"Block","src":"3672:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":11776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3722:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":11777,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"3738:2:28","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":11774,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3698:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3702:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3698:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11773,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3682:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3682:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11780,"nodeType":"ExpressionStatement","src":"3682:60:28"}]},"id":11782,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3635:10:28","nodeType":"FunctionDefinition","parameters":{"id":11771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11770,"mutability":"mutable","name":"p0","nameLocation":"3654:2:28","nodeType":"VariableDeclaration","scope":11782,"src":"3646:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":11769,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3646:7:28","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3645:12:28"},"returnParameters":{"id":11772,"nodeType":"ParameterList","parameters":[],"src":"3672:0:28"},"scope":19517,"src":"3626:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11795,"nodeType":"Block","src":"3801:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":11790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3851:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":11791,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"3867:2:28","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":11788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3827:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3831:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3827:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11787,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3811:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11794,"nodeType":"ExpressionStatement","src":"3811:60:28"}]},"id":11796,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3764:10:28","nodeType":"FunctionDefinition","parameters":{"id":11785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11784,"mutability":"mutable","name":"p0","nameLocation":"3783:2:28","nodeType":"VariableDeclaration","scope":11796,"src":"3775:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":11783,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3775:7:28","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3774:12:28"},"returnParameters":{"id":11786,"nodeType":"ParameterList","parameters":[],"src":"3801:0:28"},"scope":19517,"src":"3755:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11809,"nodeType":"Block","src":"3930:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":11804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3980:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":11805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11798,"src":"3996:2:28","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":11802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3956:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3960:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3956:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3940:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3940:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11808,"nodeType":"ExpressionStatement","src":"3940:60:28"}]},"id":11810,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3893:10:28","nodeType":"FunctionDefinition","parameters":{"id":11799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11798,"mutability":"mutable","name":"p0","nameLocation":"3912:2:28","nodeType":"VariableDeclaration","scope":11810,"src":"3904:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":11797,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3904:7:28","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3903:12:28"},"returnParameters":{"id":11800,"nodeType":"ParameterList","parameters":[],"src":"3930:0:28"},"scope":19517,"src":"3884:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11823,"nodeType":"Block","src":"4059:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":11818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4109:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":11819,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11812,"src":"4125:2:28","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":11816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4085:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4089:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4085:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11815,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4069:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11822,"nodeType":"ExpressionStatement","src":"4069:60:28"}]},"id":11824,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"4022:10:28","nodeType":"FunctionDefinition","parameters":{"id":11813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11812,"mutability":"mutable","name":"p0","nameLocation":"4041:2:28","nodeType":"VariableDeclaration","scope":11824,"src":"4033:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":11811,"name":"bytes18","nodeType":"ElementaryTypeName","src":"4033:7:28","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"4032:12:28"},"returnParameters":{"id":11814,"nodeType":"ParameterList","parameters":[],"src":"4059:0:28"},"scope":19517,"src":"4013:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11837,"nodeType":"Block","src":"4188:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":11832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4238:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":11833,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"4254:2:28","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":11830,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4214:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4218:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4214:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11829,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4198:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4198:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11836,"nodeType":"ExpressionStatement","src":"4198:60:28"}]},"id":11838,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"4151:10:28","nodeType":"FunctionDefinition","parameters":{"id":11827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11826,"mutability":"mutable","name":"p0","nameLocation":"4170:2:28","nodeType":"VariableDeclaration","scope":11838,"src":"4162:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":11825,"name":"bytes19","nodeType":"ElementaryTypeName","src":"4162:7:28","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"4161:12:28"},"returnParameters":{"id":11828,"nodeType":"ParameterList","parameters":[],"src":"4188:0:28"},"scope":19517,"src":"4142:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11851,"nodeType":"Block","src":"4317:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":11846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4367:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":11847,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11840,"src":"4383:2:28","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":11844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4343:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4347:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4343:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11843,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4327:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11850,"nodeType":"ExpressionStatement","src":"4327:60:28"}]},"id":11852,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"4280:10:28","nodeType":"FunctionDefinition","parameters":{"id":11841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11840,"mutability":"mutable","name":"p0","nameLocation":"4299:2:28","nodeType":"VariableDeclaration","scope":11852,"src":"4291:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":11839,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4291:7:28","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"4290:12:28"},"returnParameters":{"id":11842,"nodeType":"ParameterList","parameters":[],"src":"4317:0:28"},"scope":19517,"src":"4271:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11865,"nodeType":"Block","src":"4446:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":11860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4496:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":11861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11854,"src":"4512:2:28","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":11858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4472:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4476:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4472:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4472:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4456:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11864,"nodeType":"ExpressionStatement","src":"4456:60:28"}]},"id":11866,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"4409:10:28","nodeType":"FunctionDefinition","parameters":{"id":11855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11854,"mutability":"mutable","name":"p0","nameLocation":"4428:2:28","nodeType":"VariableDeclaration","scope":11866,"src":"4420:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":11853,"name":"bytes21","nodeType":"ElementaryTypeName","src":"4420:7:28","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"4419:12:28"},"returnParameters":{"id":11856,"nodeType":"ParameterList","parameters":[],"src":"4446:0:28"},"scope":19517,"src":"4400:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11879,"nodeType":"Block","src":"4575:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":11874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4625:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":11875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11868,"src":"4641:2:28","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":11872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4601:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4605:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4601:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4585:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11878,"nodeType":"ExpressionStatement","src":"4585:60:28"}]},"id":11880,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4538:10:28","nodeType":"FunctionDefinition","parameters":{"id":11869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11868,"mutability":"mutable","name":"p0","nameLocation":"4557:2:28","nodeType":"VariableDeclaration","scope":11880,"src":"4549:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":11867,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4549:7:28","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4548:12:28"},"returnParameters":{"id":11870,"nodeType":"ParameterList","parameters":[],"src":"4575:0:28"},"scope":19517,"src":"4529:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11893,"nodeType":"Block","src":"4704:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":11888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4754:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":11889,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11882,"src":"4770:2:28","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":11886,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4730:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4734:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4730:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11885,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4714:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11892,"nodeType":"ExpressionStatement","src":"4714:60:28"}]},"id":11894,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4667:10:28","nodeType":"FunctionDefinition","parameters":{"id":11883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11882,"mutability":"mutable","name":"p0","nameLocation":"4686:2:28","nodeType":"VariableDeclaration","scope":11894,"src":"4678:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":11881,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4678:7:28","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4677:12:28"},"returnParameters":{"id":11884,"nodeType":"ParameterList","parameters":[],"src":"4704:0:28"},"scope":19517,"src":"4658:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11907,"nodeType":"Block","src":"4833:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":11902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4883:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":11903,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11896,"src":"4899:2:28","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":11900,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4859:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4863:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4859:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4859:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11899,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4843:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4843:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11906,"nodeType":"ExpressionStatement","src":"4843:60:28"}]},"id":11908,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4796:10:28","nodeType":"FunctionDefinition","parameters":{"id":11897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11896,"mutability":"mutable","name":"p0","nameLocation":"4815:2:28","nodeType":"VariableDeclaration","scope":11908,"src":"4807:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":11895,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4807:7:28","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4806:12:28"},"returnParameters":{"id":11898,"nodeType":"ParameterList","parameters":[],"src":"4833:0:28"},"scope":19517,"src":"4787:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11921,"nodeType":"Block","src":"4962:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":11916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5012:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":11917,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"5028:2:28","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":11914,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4988:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4992:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4988:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4988:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11913,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4972:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4972:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11920,"nodeType":"ExpressionStatement","src":"4972:60:28"}]},"id":11922,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4925:10:28","nodeType":"FunctionDefinition","parameters":{"id":11911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11910,"mutability":"mutable","name":"p0","nameLocation":"4944:2:28","nodeType":"VariableDeclaration","scope":11922,"src":"4936:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":11909,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4936:7:28","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4935:12:28"},"returnParameters":{"id":11912,"nodeType":"ParameterList","parameters":[],"src":"4962:0:28"},"scope":19517,"src":"4916:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11935,"nodeType":"Block","src":"5091:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":11930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5141:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":11931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11924,"src":"5157:2:28","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":11928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5117:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5121:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5117:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5101:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5101:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11934,"nodeType":"ExpressionStatement","src":"5101:60:28"}]},"id":11936,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"5054:10:28","nodeType":"FunctionDefinition","parameters":{"id":11925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11924,"mutability":"mutable","name":"p0","nameLocation":"5073:2:28","nodeType":"VariableDeclaration","scope":11936,"src":"5065:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":11923,"name":"bytes26","nodeType":"ElementaryTypeName","src":"5065:7:28","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"5064:12:28"},"returnParameters":{"id":11926,"nodeType":"ParameterList","parameters":[],"src":"5091:0:28"},"scope":19517,"src":"5045:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11949,"nodeType":"Block","src":"5220:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":11944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5270:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":11945,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"5286:2:28","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":11942,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5246:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5250:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5246:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11941,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5230:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11948,"nodeType":"ExpressionStatement","src":"5230:60:28"}]},"id":11950,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"5183:10:28","nodeType":"FunctionDefinition","parameters":{"id":11939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11938,"mutability":"mutable","name":"p0","nameLocation":"5202:2:28","nodeType":"VariableDeclaration","scope":11950,"src":"5194:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":11937,"name":"bytes27","nodeType":"ElementaryTypeName","src":"5194:7:28","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"5193:12:28"},"returnParameters":{"id":11940,"nodeType":"ParameterList","parameters":[],"src":"5220:0:28"},"scope":19517,"src":"5174:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11963,"nodeType":"Block","src":"5349:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":11958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5399:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":11959,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11952,"src":"5415:2:28","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":11956,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5375:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5379:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5375:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11955,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5359:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5359:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11962,"nodeType":"ExpressionStatement","src":"5359:60:28"}]},"id":11964,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"5312:10:28","nodeType":"FunctionDefinition","parameters":{"id":11953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11952,"mutability":"mutable","name":"p0","nameLocation":"5331:2:28","nodeType":"VariableDeclaration","scope":11964,"src":"5323:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":11951,"name":"bytes28","nodeType":"ElementaryTypeName","src":"5323:7:28","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"5322:12:28"},"returnParameters":{"id":11954,"nodeType":"ParameterList","parameters":[],"src":"5349:0:28"},"scope":19517,"src":"5303:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11977,"nodeType":"Block","src":"5478:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":11972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5528:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":11973,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11966,"src":"5544:2:28","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":11970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5504:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5508:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5504:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11969,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5488:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11976,"nodeType":"ExpressionStatement","src":"5488:60:28"}]},"id":11978,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5441:10:28","nodeType":"FunctionDefinition","parameters":{"id":11967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11966,"mutability":"mutable","name":"p0","nameLocation":"5460:2:28","nodeType":"VariableDeclaration","scope":11978,"src":"5452:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":11965,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5452:7:28","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5451:12:28"},"returnParameters":{"id":11968,"nodeType":"ParameterList","parameters":[],"src":"5478:0:28"},"scope":19517,"src":"5432:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11991,"nodeType":"Block","src":"5607:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":11986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5657:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":11987,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"5673:2:28","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":11984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5633:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5637:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5633:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5633:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11983,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5617:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5617:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11990,"nodeType":"ExpressionStatement","src":"5617:60:28"}]},"id":11992,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5570:10:28","nodeType":"FunctionDefinition","parameters":{"id":11981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11980,"mutability":"mutable","name":"p0","nameLocation":"5589:2:28","nodeType":"VariableDeclaration","scope":11992,"src":"5581:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":11979,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5581:7:28","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5580:12:28"},"returnParameters":{"id":11982,"nodeType":"ParameterList","parameters":[],"src":"5607:0:28"},"scope":19517,"src":"5561:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12005,"nodeType":"Block","src":"5736:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":12000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":12001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11994,"src":"5802:2:28","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":11998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5762:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5766:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5762:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5746:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12004,"nodeType":"ExpressionStatement","src":"5746:60:28"}]},"id":12006,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5699:10:28","nodeType":"FunctionDefinition","parameters":{"id":11995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11994,"mutability":"mutable","name":"p0","nameLocation":"5718:2:28","nodeType":"VariableDeclaration","scope":12006,"src":"5710:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":11993,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5710:7:28","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5709:12:28"},"returnParameters":{"id":11996,"nodeType":"ParameterList","parameters":[],"src":"5736:0:28"},"scope":19517,"src":"5690:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12019,"nodeType":"Block","src":"5865:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":12014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5915:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":12015,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12008,"src":"5931:2:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12012,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5891:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5895:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5891:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12011,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5875:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12018,"nodeType":"ExpressionStatement","src":"5875:60:28"}]},"id":12020,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5828:10:28","nodeType":"FunctionDefinition","parameters":{"id":12009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12008,"mutability":"mutable","name":"p0","nameLocation":"5847:2:28","nodeType":"VariableDeclaration","scope":12020,"src":"5839:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5839:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5838:12:28"},"returnParameters":{"id":12010,"nodeType":"ParameterList","parameters":[],"src":"5865:0:28"},"scope":19517,"src":"5819:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12033,"nodeType":"Block","src":"5987:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":12028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6037:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":12029,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"6053:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12026,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6013:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6017:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6013:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12025,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5997:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5997:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12032,"nodeType":"ExpressionStatement","src":"5997:60:28"}]},"id":12034,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5957:3:28","nodeType":"FunctionDefinition","parameters":{"id":12023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12022,"mutability":"mutable","name":"p0","nameLocation":"5969:2:28","nodeType":"VariableDeclaration","scope":12034,"src":"5961:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5961:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5960:12:28"},"returnParameters":{"id":12024,"nodeType":"ParameterList","parameters":[],"src":"5987:0:28"},"scope":19517,"src":"5948:116:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12047,"nodeType":"Block","src":"6115:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":12042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6165:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":12043,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12036,"src":"6180:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12040,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6141:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6145:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6141:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12039,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6125:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12046,"nodeType":"ExpressionStatement","src":"6125:59:28"}]},"id":12048,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6079:3:28","nodeType":"FunctionDefinition","parameters":{"id":12037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12036,"mutability":"mutable","name":"p0","nameLocation":"6097:2:28","nodeType":"VariableDeclaration","scope":12048,"src":"6083:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12035,"name":"string","nodeType":"ElementaryTypeName","src":"6083:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6082:18:28"},"returnParameters":{"id":12038,"nodeType":"ParameterList","parameters":[],"src":"6115:0:28"},"scope":19517,"src":"6070:121:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12061,"nodeType":"Block","src":"6233:74:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":12056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6283:11:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":12057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"6296:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6259:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6263:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6259:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6259:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6243:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6243:57:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12060,"nodeType":"ExpressionStatement","src":"6243:57:28"}]},"id":12062,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6206:3:28","nodeType":"FunctionDefinition","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12050,"mutability":"mutable","name":"p0","nameLocation":"6215:2:28","nodeType":"VariableDeclaration","scope":12062,"src":"6210:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12049,"name":"bool","nodeType":"ElementaryTypeName","src":"6210:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6209:9:28"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"6233:0:28"},"scope":19517,"src":"6197:110:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12075,"nodeType":"Block","src":"6352:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":12070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6402:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":12071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"6418:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6378:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6378:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6362:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12074,"nodeType":"ExpressionStatement","src":"6362:60:28"}]},"id":12076,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6322:3:28","nodeType":"FunctionDefinition","parameters":{"id":12065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12064,"mutability":"mutable","name":"p0","nameLocation":"6334:2:28","nodeType":"VariableDeclaration","scope":12076,"src":"6326:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12063,"name":"address","nodeType":"ElementaryTypeName","src":"6326:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6325:12:28"},"returnParameters":{"id":12066,"nodeType":"ParameterList","parameters":[],"src":"6352:0:28"},"scope":19517,"src":"6313:116:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12092,"nodeType":"Block","src":"6486:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":12086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6536:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":12087,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"6560:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12088,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"6564:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12084,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6512:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6516:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6512:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6512:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12083,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6496:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12091,"nodeType":"ExpressionStatement","src":"6496:72:28"}]},"id":12093,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6444:3:28","nodeType":"FunctionDefinition","parameters":{"id":12081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12078,"mutability":"mutable","name":"p0","nameLocation":"6456:2:28","nodeType":"VariableDeclaration","scope":12093,"src":"6448:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6448:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12080,"mutability":"mutable","name":"p1","nameLocation":"6468:2:28","nodeType":"VariableDeclaration","scope":12093,"src":"6460:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12079,"name":"uint256","nodeType":"ElementaryTypeName","src":"6460:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6447:24:28"},"returnParameters":{"id":12082,"nodeType":"ParameterList","parameters":[],"src":"6486:0:28"},"scope":19517,"src":"6435:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12109,"nodeType":"Block","src":"6638:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":12103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6688:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":12104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12095,"src":"6711:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12097,"src":"6715:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6664:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6668:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6664:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6664:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6648:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12108,"nodeType":"ExpressionStatement","src":"6648:71:28"}]},"id":12110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6590:3:28","nodeType":"FunctionDefinition","parameters":{"id":12098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12095,"mutability":"mutable","name":"p0","nameLocation":"6602:2:28","nodeType":"VariableDeclaration","scope":12110,"src":"6594:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12094,"name":"uint256","nodeType":"ElementaryTypeName","src":"6594:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12097,"mutability":"mutable","name":"p1","nameLocation":"6620:2:28","nodeType":"VariableDeclaration","scope":12110,"src":"6606:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12096,"name":"string","nodeType":"ElementaryTypeName","src":"6606:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6593:30:28"},"returnParameters":{"id":12099,"nodeType":"ParameterList","parameters":[],"src":"6638:0:28"},"scope":19517,"src":"6581:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12126,"nodeType":"Block","src":"6780:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":12120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6830:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":12121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"6851:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"6855:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6806:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6810:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6806:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6790:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6790:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12125,"nodeType":"ExpressionStatement","src":"6790:69:28"}]},"id":12127,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6741:3:28","nodeType":"FunctionDefinition","parameters":{"id":12115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12112,"mutability":"mutable","name":"p0","nameLocation":"6753:2:28","nodeType":"VariableDeclaration","scope":12127,"src":"6745:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6745:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"p1","nameLocation":"6762:2:28","nodeType":"VariableDeclaration","scope":12127,"src":"6757:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12113,"name":"bool","nodeType":"ElementaryTypeName","src":"6757:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6744:21:28"},"returnParameters":{"id":12116,"nodeType":"ParameterList","parameters":[],"src":"6780:0:28"},"scope":19517,"src":"6732:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12143,"nodeType":"Block","src":"6923:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":12137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6973:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":12138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12129,"src":"6997:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"7001:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6949:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6953:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6949:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6949:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6933:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6933:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12142,"nodeType":"ExpressionStatement","src":"6933:72:28"}]},"id":12144,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6881:3:28","nodeType":"FunctionDefinition","parameters":{"id":12132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12129,"mutability":"mutable","name":"p0","nameLocation":"6893:2:28","nodeType":"VariableDeclaration","scope":12144,"src":"6885:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12128,"name":"uint256","nodeType":"ElementaryTypeName","src":"6885:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12131,"mutability":"mutable","name":"p1","nameLocation":"6905:2:28","nodeType":"VariableDeclaration","scope":12144,"src":"6897:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12130,"name":"address","nodeType":"ElementaryTypeName","src":"6897:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6884:24:28"},"returnParameters":{"id":12133,"nodeType":"ParameterList","parameters":[],"src":"6923:0:28"},"scope":19517,"src":"6872:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12160,"nodeType":"Block","src":"7075:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":12154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7125:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":12155,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12146,"src":"7148:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12156,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12148,"src":"7152:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12152,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7101:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7105:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7101:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7101:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12151,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7085:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7085:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12159,"nodeType":"ExpressionStatement","src":"7085:71:28"}]},"id":12161,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7027:3:28","nodeType":"FunctionDefinition","parameters":{"id":12149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12146,"mutability":"mutable","name":"p0","nameLocation":"7045:2:28","nodeType":"VariableDeclaration","scope":12161,"src":"7031:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12145,"name":"string","nodeType":"ElementaryTypeName","src":"7031:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12148,"mutability":"mutable","name":"p1","nameLocation":"7057:2:28","nodeType":"VariableDeclaration","scope":12161,"src":"7049:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12147,"name":"uint256","nodeType":"ElementaryTypeName","src":"7049:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7030:30:28"},"returnParameters":{"id":12150,"nodeType":"ParameterList","parameters":[],"src":"7075:0:28"},"scope":19517,"src":"7018:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12177,"nodeType":"Block","src":"7232:87:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":12171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7282:20:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":12172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12163,"src":"7304:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12165,"src":"7308:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7258:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7262:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7258:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7258:53:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7242:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12176,"nodeType":"ExpressionStatement","src":"7242:70:28"}]},"id":12178,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7178:3:28","nodeType":"FunctionDefinition","parameters":{"id":12166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12163,"mutability":"mutable","name":"p0","nameLocation":"7196:2:28","nodeType":"VariableDeclaration","scope":12178,"src":"7182:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12162,"name":"string","nodeType":"ElementaryTypeName","src":"7182:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12165,"mutability":"mutable","name":"p1","nameLocation":"7214:2:28","nodeType":"VariableDeclaration","scope":12178,"src":"7200:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12164,"name":"string","nodeType":"ElementaryTypeName","src":"7200:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7181:36:28"},"returnParameters":{"id":12167,"nodeType":"ParameterList","parameters":[],"src":"7232:0:28"},"scope":19517,"src":"7169:150:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12194,"nodeType":"Block","src":"7379:85:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":12188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:18:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":12189,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12180,"src":"7449:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12190,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12182,"src":"7453:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7405:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7409:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7405:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7405:51:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12185,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7389:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7389:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12193,"nodeType":"ExpressionStatement","src":"7389:68:28"}]},"id":12195,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7334:3:28","nodeType":"FunctionDefinition","parameters":{"id":12183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12180,"mutability":"mutable","name":"p0","nameLocation":"7352:2:28","nodeType":"VariableDeclaration","scope":12195,"src":"7338:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12179,"name":"string","nodeType":"ElementaryTypeName","src":"7338:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12182,"mutability":"mutable","name":"p1","nameLocation":"7361:2:28","nodeType":"VariableDeclaration","scope":12195,"src":"7356:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12181,"name":"bool","nodeType":"ElementaryTypeName","src":"7356:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7337:27:28"},"returnParameters":{"id":12184,"nodeType":"ParameterList","parameters":[],"src":"7379:0:28"},"scope":19517,"src":"7325:139:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12211,"nodeType":"Block","src":"7527:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":12205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7577:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":12206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12197,"src":"7600:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12199,"src":"7604:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7553:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7557:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7553:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7553:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7537:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12210,"nodeType":"ExpressionStatement","src":"7537:71:28"}]},"id":12212,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7479:3:28","nodeType":"FunctionDefinition","parameters":{"id":12200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12197,"mutability":"mutable","name":"p0","nameLocation":"7497:2:28","nodeType":"VariableDeclaration","scope":12212,"src":"7483:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12196,"name":"string","nodeType":"ElementaryTypeName","src":"7483:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12199,"mutability":"mutable","name":"p1","nameLocation":"7509:2:28","nodeType":"VariableDeclaration","scope":12212,"src":"7501:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12198,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7482:30:28"},"returnParameters":{"id":12201,"nodeType":"ParameterList","parameters":[],"src":"7527:0:28"},"scope":19517,"src":"7470:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12228,"nodeType":"Block","src":"7669:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":12222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7719:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":12223,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12214,"src":"7740:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12224,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"7744:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7695:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7699:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7695:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7695:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7679:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12227,"nodeType":"ExpressionStatement","src":"7679:69:28"}]},"id":12229,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7630:3:28","nodeType":"FunctionDefinition","parameters":{"id":12217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12214,"mutability":"mutable","name":"p0","nameLocation":"7639:2:28","nodeType":"VariableDeclaration","scope":12229,"src":"7634:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12213,"name":"bool","nodeType":"ElementaryTypeName","src":"7634:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12216,"mutability":"mutable","name":"p1","nameLocation":"7651:2:28","nodeType":"VariableDeclaration","scope":12229,"src":"7643:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12215,"name":"uint256","nodeType":"ElementaryTypeName","src":"7643:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7633:21:28"},"returnParameters":{"id":12218,"nodeType":"ParameterList","parameters":[],"src":"7669:0:28"},"scope":19517,"src":"7621:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12245,"nodeType":"Block","src":"7815:85:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":12239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7865:18:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":12240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"7885:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12233,"src":"7889:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7841:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7845:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7841:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7841:51:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7825:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12244,"nodeType":"ExpressionStatement","src":"7825:68:28"}]},"id":12246,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7770:3:28","nodeType":"FunctionDefinition","parameters":{"id":12234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12231,"mutability":"mutable","name":"p0","nameLocation":"7779:2:28","nodeType":"VariableDeclaration","scope":12246,"src":"7774:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12230,"name":"bool","nodeType":"ElementaryTypeName","src":"7774:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12233,"mutability":"mutable","name":"p1","nameLocation":"7797:2:28","nodeType":"VariableDeclaration","scope":12246,"src":"7783:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12232,"name":"string","nodeType":"ElementaryTypeName","src":"7783:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7773:27:28"},"returnParameters":{"id":12235,"nodeType":"ParameterList","parameters":[],"src":"7815:0:28"},"scope":19517,"src":"7761:139:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12262,"nodeType":"Block","src":"7951:83:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":12256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8001:16:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":12257,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"8019:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12258,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"8023:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12254,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7977:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7981:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7977:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12253,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7961:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7961:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12261,"nodeType":"ExpressionStatement","src":"7961:66:28"}]},"id":12263,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7915:3:28","nodeType":"FunctionDefinition","parameters":{"id":12251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12248,"mutability":"mutable","name":"p0","nameLocation":"7924:2:28","nodeType":"VariableDeclaration","scope":12263,"src":"7919:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12247,"name":"bool","nodeType":"ElementaryTypeName","src":"7919:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12250,"mutability":"mutable","name":"p1","nameLocation":"7933:2:28","nodeType":"VariableDeclaration","scope":12263,"src":"7928:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12249,"name":"bool","nodeType":"ElementaryTypeName","src":"7928:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7918:18:28"},"returnParameters":{"id":12252,"nodeType":"ParameterList","parameters":[],"src":"7951:0:28"},"scope":19517,"src":"7906:128:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12279,"nodeType":"Block","src":"8088:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":12273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8138:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":12274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"8159:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12275,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12267,"src":"8163:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8114:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8118:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8114:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8098:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8098:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12278,"nodeType":"ExpressionStatement","src":"8098:69:28"}]},"id":12280,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8049:3:28","nodeType":"FunctionDefinition","parameters":{"id":12268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12265,"mutability":"mutable","name":"p0","nameLocation":"8058:2:28","nodeType":"VariableDeclaration","scope":12280,"src":"8053:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12264,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12267,"mutability":"mutable","name":"p1","nameLocation":"8070:2:28","nodeType":"VariableDeclaration","scope":12280,"src":"8062:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12266,"name":"address","nodeType":"ElementaryTypeName","src":"8062:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8052:21:28"},"returnParameters":{"id":12269,"nodeType":"ParameterList","parameters":[],"src":"8088:0:28"},"scope":19517,"src":"8040:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12296,"nodeType":"Block","src":"8231:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":12290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8281:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":12291,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12282,"src":"8305:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12292,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12284,"src":"8309:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8257:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8261:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8257:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12287,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8241:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8241:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12295,"nodeType":"ExpressionStatement","src":"8241:72:28"}]},"id":12297,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8189:3:28","nodeType":"FunctionDefinition","parameters":{"id":12285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12282,"mutability":"mutable","name":"p0","nameLocation":"8201:2:28","nodeType":"VariableDeclaration","scope":12297,"src":"8193:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12281,"name":"address","nodeType":"ElementaryTypeName","src":"8193:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12284,"mutability":"mutable","name":"p1","nameLocation":"8213:2:28","nodeType":"VariableDeclaration","scope":12297,"src":"8205:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12283,"name":"uint256","nodeType":"ElementaryTypeName","src":"8205:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8192:24:28"},"returnParameters":{"id":12286,"nodeType":"ParameterList","parameters":[],"src":"8231:0:28"},"scope":19517,"src":"8180:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12313,"nodeType":"Block","src":"8383:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":12307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8433:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":12308,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"8456:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12309,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12301,"src":"8460:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12305,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8409:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8413:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8409:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8409:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12304,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8393:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8393:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12312,"nodeType":"ExpressionStatement","src":"8393:71:28"}]},"id":12314,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8335:3:28","nodeType":"FunctionDefinition","parameters":{"id":12302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12299,"mutability":"mutable","name":"p0","nameLocation":"8347:2:28","nodeType":"VariableDeclaration","scope":12314,"src":"8339:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12298,"name":"address","nodeType":"ElementaryTypeName","src":"8339:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12301,"mutability":"mutable","name":"p1","nameLocation":"8365:2:28","nodeType":"VariableDeclaration","scope":12314,"src":"8351:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12300,"name":"string","nodeType":"ElementaryTypeName","src":"8351:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8338:30:28"},"returnParameters":{"id":12303,"nodeType":"ParameterList","parameters":[],"src":"8383:0:28"},"scope":19517,"src":"8326:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12330,"nodeType":"Block","src":"8525:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":12324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8575:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":12325,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12316,"src":"8596:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12326,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12318,"src":"8600:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8551:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8555:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8551:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8551:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8535:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12329,"nodeType":"ExpressionStatement","src":"8535:69:28"}]},"id":12331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8486:3:28","nodeType":"FunctionDefinition","parameters":{"id":12319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12316,"mutability":"mutable","name":"p0","nameLocation":"8498:2:28","nodeType":"VariableDeclaration","scope":12331,"src":"8490:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12315,"name":"address","nodeType":"ElementaryTypeName","src":"8490:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12318,"mutability":"mutable","name":"p1","nameLocation":"8507:2:28","nodeType":"VariableDeclaration","scope":12331,"src":"8502:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12317,"name":"bool","nodeType":"ElementaryTypeName","src":"8502:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8489:21:28"},"returnParameters":{"id":12320,"nodeType":"ParameterList","parameters":[],"src":"8525:0:28"},"scope":19517,"src":"8477:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12347,"nodeType":"Block","src":"8668:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":12341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8718:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":12342,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"8742:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12343,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"8746:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12339,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8694:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8698:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8694:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8694:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12338,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8678:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8678:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12346,"nodeType":"ExpressionStatement","src":"8678:72:28"}]},"id":12348,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8626:3:28","nodeType":"FunctionDefinition","parameters":{"id":12336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"mutability":"mutable","name":"p0","nameLocation":"8638:2:28","nodeType":"VariableDeclaration","scope":12348,"src":"8630:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12332,"name":"address","nodeType":"ElementaryTypeName","src":"8630:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12335,"mutability":"mutable","name":"p1","nameLocation":"8650:2:28","nodeType":"VariableDeclaration","scope":12348,"src":"8642:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12334,"name":"address","nodeType":"ElementaryTypeName","src":"8642:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8629:24:28"},"returnParameters":{"id":12337,"nodeType":"ParameterList","parameters":[],"src":"8668:0:28"},"scope":19517,"src":"8617:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12367,"nodeType":"Block","src":"8826:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":12360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8876:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":12361,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12350,"src":"8908:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12362,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12352,"src":"8912:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12363,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"8916:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8852:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8856:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8852:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8852:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8836:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8836:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12366,"nodeType":"ExpressionStatement","src":"8836:84:28"}]},"id":12368,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8772:3:28","nodeType":"FunctionDefinition","parameters":{"id":12355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12350,"mutability":"mutable","name":"p0","nameLocation":"8784:2:28","nodeType":"VariableDeclaration","scope":12368,"src":"8776:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12349,"name":"uint256","nodeType":"ElementaryTypeName","src":"8776:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12352,"mutability":"mutable","name":"p1","nameLocation":"8796:2:28","nodeType":"VariableDeclaration","scope":12368,"src":"8788:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12351,"name":"uint256","nodeType":"ElementaryTypeName","src":"8788:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12354,"mutability":"mutable","name":"p2","nameLocation":"8808:2:28","nodeType":"VariableDeclaration","scope":12368,"src":"8800:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12353,"name":"uint256","nodeType":"ElementaryTypeName","src":"8800:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8775:36:28"},"returnParameters":{"id":12356,"nodeType":"ParameterList","parameters":[],"src":"8826:0:28"},"scope":19517,"src":"8763:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12387,"nodeType":"Block","src":"9002:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":12380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9052:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":12381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"9083:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"9087:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12374,"src":"9091:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9028:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9032:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9028:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9028:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9012:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12386,"nodeType":"ExpressionStatement","src":"9012:83:28"}]},"id":12388,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8942:3:28","nodeType":"FunctionDefinition","parameters":{"id":12375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12370,"mutability":"mutable","name":"p0","nameLocation":"8954:2:28","nodeType":"VariableDeclaration","scope":12388,"src":"8946:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12369,"name":"uint256","nodeType":"ElementaryTypeName","src":"8946:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12372,"mutability":"mutable","name":"p1","nameLocation":"8966:2:28","nodeType":"VariableDeclaration","scope":12388,"src":"8958:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12371,"name":"uint256","nodeType":"ElementaryTypeName","src":"8958:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12374,"mutability":"mutable","name":"p2","nameLocation":"8984:2:28","nodeType":"VariableDeclaration","scope":12388,"src":"8970:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12373,"name":"string","nodeType":"ElementaryTypeName","src":"8970:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8945:42:28"},"returnParameters":{"id":12376,"nodeType":"ParameterList","parameters":[],"src":"9002:0:28"},"scope":19517,"src":"8933:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12407,"nodeType":"Block","src":"9168:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":12400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9218:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":12401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12390,"src":"9247:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"9251:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"9255:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9194:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9198:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9194:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9194:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9178:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9178:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12406,"nodeType":"ExpressionStatement","src":"9178:81:28"}]},"id":12408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9117:3:28","nodeType":"FunctionDefinition","parameters":{"id":12395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12390,"mutability":"mutable","name":"p0","nameLocation":"9129:2:28","nodeType":"VariableDeclaration","scope":12408,"src":"9121:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12389,"name":"uint256","nodeType":"ElementaryTypeName","src":"9121:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12392,"mutability":"mutable","name":"p1","nameLocation":"9141:2:28","nodeType":"VariableDeclaration","scope":12408,"src":"9133:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12391,"name":"uint256","nodeType":"ElementaryTypeName","src":"9133:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12394,"mutability":"mutable","name":"p2","nameLocation":"9150:2:28","nodeType":"VariableDeclaration","scope":12408,"src":"9145:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12393,"name":"bool","nodeType":"ElementaryTypeName","src":"9145:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9120:33:28"},"returnParameters":{"id":12396,"nodeType":"ParameterList","parameters":[],"src":"9168:0:28"},"scope":19517,"src":"9108:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12427,"nodeType":"Block","src":"9335:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":12420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9385:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":12421,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"9417:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12422,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12412,"src":"9421:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12423,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"9425:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9361:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9365:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9361:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9361:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9345:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12426,"nodeType":"ExpressionStatement","src":"9345:84:28"}]},"id":12428,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9281:3:28","nodeType":"FunctionDefinition","parameters":{"id":12415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12410,"mutability":"mutable","name":"p0","nameLocation":"9293:2:28","nodeType":"VariableDeclaration","scope":12428,"src":"9285:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12409,"name":"uint256","nodeType":"ElementaryTypeName","src":"9285:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12412,"mutability":"mutable","name":"p1","nameLocation":"9305:2:28","nodeType":"VariableDeclaration","scope":12428,"src":"9297:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12411,"name":"uint256","nodeType":"ElementaryTypeName","src":"9297:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12414,"mutability":"mutable","name":"p2","nameLocation":"9317:2:28","nodeType":"VariableDeclaration","scope":12428,"src":"9309:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12413,"name":"address","nodeType":"ElementaryTypeName","src":"9309:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9284:36:28"},"returnParameters":{"id":12416,"nodeType":"ParameterList","parameters":[],"src":"9335:0:28"},"scope":19517,"src":"9272:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12447,"nodeType":"Block","src":"9511:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":12440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9561:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":12441,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"9592:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12442,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"9596:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12443,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"9600:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9537:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9541:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9537:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9537:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9521:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9521:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12446,"nodeType":"ExpressionStatement","src":"9521:83:28"}]},"id":12448,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9451:3:28","nodeType":"FunctionDefinition","parameters":{"id":12435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12430,"mutability":"mutable","name":"p0","nameLocation":"9463:2:28","nodeType":"VariableDeclaration","scope":12448,"src":"9455:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12429,"name":"uint256","nodeType":"ElementaryTypeName","src":"9455:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12432,"mutability":"mutable","name":"p1","nameLocation":"9481:2:28","nodeType":"VariableDeclaration","scope":12448,"src":"9467:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12431,"name":"string","nodeType":"ElementaryTypeName","src":"9467:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12434,"mutability":"mutable","name":"p2","nameLocation":"9493:2:28","nodeType":"VariableDeclaration","scope":12448,"src":"9485:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12433,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9454:42:28"},"returnParameters":{"id":12436,"nodeType":"ParameterList","parameters":[],"src":"9511:0:28"},"scope":19517,"src":"9442:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12467,"nodeType":"Block","src":"9692:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9742:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":12461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"9772:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12452,"src":"9776:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12454,"src":"9780:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9718:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9722:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9718:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9718:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9702:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12466,"nodeType":"ExpressionStatement","src":"9702:82:28"}]},"id":12468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9626:3:28","nodeType":"FunctionDefinition","parameters":{"id":12455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12450,"mutability":"mutable","name":"p0","nameLocation":"9638:2:28","nodeType":"VariableDeclaration","scope":12468,"src":"9630:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12449,"name":"uint256","nodeType":"ElementaryTypeName","src":"9630:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12452,"mutability":"mutable","name":"p1","nameLocation":"9656:2:28","nodeType":"VariableDeclaration","scope":12468,"src":"9642:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12451,"name":"string","nodeType":"ElementaryTypeName","src":"9642:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12454,"mutability":"mutable","name":"p2","nameLocation":"9674:2:28","nodeType":"VariableDeclaration","scope":12468,"src":"9660:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12453,"name":"string","nodeType":"ElementaryTypeName","src":"9660:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9629:48:28"},"returnParameters":{"id":12456,"nodeType":"ParameterList","parameters":[],"src":"9692:0:28"},"scope":19517,"src":"9617:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12487,"nodeType":"Block","src":"9863:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":12480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9913:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":12481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"9941:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"9945:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"9949:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9889:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9893:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9889:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9873:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12486,"nodeType":"ExpressionStatement","src":"9873:80:28"}]},"id":12488,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9806:3:28","nodeType":"FunctionDefinition","parameters":{"id":12475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12470,"mutability":"mutable","name":"p0","nameLocation":"9818:2:28","nodeType":"VariableDeclaration","scope":12488,"src":"9810:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12469,"name":"uint256","nodeType":"ElementaryTypeName","src":"9810:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12472,"mutability":"mutable","name":"p1","nameLocation":"9836:2:28","nodeType":"VariableDeclaration","scope":12488,"src":"9822:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12471,"name":"string","nodeType":"ElementaryTypeName","src":"9822:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12474,"mutability":"mutable","name":"p2","nameLocation":"9845:2:28","nodeType":"VariableDeclaration","scope":12488,"src":"9840:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12473,"name":"bool","nodeType":"ElementaryTypeName","src":"9840:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9809:39:28"},"returnParameters":{"id":12476,"nodeType":"ParameterList","parameters":[],"src":"9863:0:28"},"scope":19517,"src":"9797:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12507,"nodeType":"Block","src":"10035:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":12500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10085:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":12501,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12490,"src":"10116:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12502,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12492,"src":"10120:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12503,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12494,"src":"10124:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12498,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10061:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10065:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10061:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10045:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10045:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12506,"nodeType":"ExpressionStatement","src":"10045:83:28"}]},"id":12508,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9975:3:28","nodeType":"FunctionDefinition","parameters":{"id":12495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12490,"mutability":"mutable","name":"p0","nameLocation":"9987:2:28","nodeType":"VariableDeclaration","scope":12508,"src":"9979:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12489,"name":"uint256","nodeType":"ElementaryTypeName","src":"9979:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12492,"mutability":"mutable","name":"p1","nameLocation":"10005:2:28","nodeType":"VariableDeclaration","scope":12508,"src":"9991:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12491,"name":"string","nodeType":"ElementaryTypeName","src":"9991:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12494,"mutability":"mutable","name":"p2","nameLocation":"10017:2:28","nodeType":"VariableDeclaration","scope":12508,"src":"10009:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12493,"name":"address","nodeType":"ElementaryTypeName","src":"10009:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9978:42:28"},"returnParameters":{"id":12496,"nodeType":"ParameterList","parameters":[],"src":"10035:0:28"},"scope":19517,"src":"9966:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12527,"nodeType":"Block","src":"10201:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":12520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10251:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":12521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12510,"src":"10280:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12512,"src":"10284:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12514,"src":"10288:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10227:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10231:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10227:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10227:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10211:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10211:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12526,"nodeType":"ExpressionStatement","src":"10211:81:28"}]},"id":12528,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10150:3:28","nodeType":"FunctionDefinition","parameters":{"id":12515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12510,"mutability":"mutable","name":"p0","nameLocation":"10162:2:28","nodeType":"VariableDeclaration","scope":12528,"src":"10154:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12509,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12512,"mutability":"mutable","name":"p1","nameLocation":"10171:2:28","nodeType":"VariableDeclaration","scope":12528,"src":"10166:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12511,"name":"bool","nodeType":"ElementaryTypeName","src":"10166:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12514,"mutability":"mutable","name":"p2","nameLocation":"10183:2:28","nodeType":"VariableDeclaration","scope":12528,"src":"10175:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12513,"name":"uint256","nodeType":"ElementaryTypeName","src":"10175:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:33:28"},"returnParameters":{"id":12516,"nodeType":"ParameterList","parameters":[],"src":"10201:0:28"},"scope":19517,"src":"10141:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12547,"nodeType":"Block","src":"10371:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":12540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10421:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":12541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"10449:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12532,"src":"10453:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12534,"src":"10457:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10397:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10401:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10397:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10397:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10381:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10381:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12546,"nodeType":"ExpressionStatement","src":"10381:80:28"}]},"id":12548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10314:3:28","nodeType":"FunctionDefinition","parameters":{"id":12535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12530,"mutability":"mutable","name":"p0","nameLocation":"10326:2:28","nodeType":"VariableDeclaration","scope":12548,"src":"10318:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"10318:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12532,"mutability":"mutable","name":"p1","nameLocation":"10335:2:28","nodeType":"VariableDeclaration","scope":12548,"src":"10330:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12531,"name":"bool","nodeType":"ElementaryTypeName","src":"10330:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12534,"mutability":"mutable","name":"p2","nameLocation":"10353:2:28","nodeType":"VariableDeclaration","scope":12548,"src":"10339:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12533,"name":"string","nodeType":"ElementaryTypeName","src":"10339:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10317:39:28"},"returnParameters":{"id":12536,"nodeType":"ParameterList","parameters":[],"src":"10371:0:28"},"scope":19517,"src":"10305:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12567,"nodeType":"Block","src":"10531:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":12560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10581:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":12561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12550,"src":"10607:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12552,"src":"10611:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12554,"src":"10615:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10557:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10561:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10557:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10557:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10541:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10541:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12566,"nodeType":"ExpressionStatement","src":"10541:78:28"}]},"id":12568,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10483:3:28","nodeType":"FunctionDefinition","parameters":{"id":12555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12550,"mutability":"mutable","name":"p0","nameLocation":"10495:2:28","nodeType":"VariableDeclaration","scope":12568,"src":"10487:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12549,"name":"uint256","nodeType":"ElementaryTypeName","src":"10487:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12552,"mutability":"mutable","name":"p1","nameLocation":"10504:2:28","nodeType":"VariableDeclaration","scope":12568,"src":"10499:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12551,"name":"bool","nodeType":"ElementaryTypeName","src":"10499:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12554,"mutability":"mutable","name":"p2","nameLocation":"10513:2:28","nodeType":"VariableDeclaration","scope":12568,"src":"10508:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12553,"name":"bool","nodeType":"ElementaryTypeName","src":"10508:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10486:30:28"},"returnParameters":{"id":12556,"nodeType":"ParameterList","parameters":[],"src":"10531:0:28"},"scope":19517,"src":"10474:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12587,"nodeType":"Block","src":"10692:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":12580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10742:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":12581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"10771:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12572,"src":"10775:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"10779:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10718:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10722:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10718:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10718:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10702:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10702:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"ExpressionStatement","src":"10702:81:28"}]},"id":12588,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10641:3:28","nodeType":"FunctionDefinition","parameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12570,"mutability":"mutable","name":"p0","nameLocation":"10653:2:28","nodeType":"VariableDeclaration","scope":12588,"src":"10645:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12569,"name":"uint256","nodeType":"ElementaryTypeName","src":"10645:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12572,"mutability":"mutable","name":"p1","nameLocation":"10662:2:28","nodeType":"VariableDeclaration","scope":12588,"src":"10657:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12571,"name":"bool","nodeType":"ElementaryTypeName","src":"10657:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12574,"mutability":"mutable","name":"p2","nameLocation":"10674:2:28","nodeType":"VariableDeclaration","scope":12588,"src":"10666:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12573,"name":"address","nodeType":"ElementaryTypeName","src":"10666:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10644:33:28"},"returnParameters":{"id":12576,"nodeType":"ParameterList","parameters":[],"src":"10692:0:28"},"scope":19517,"src":"10632:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12607,"nodeType":"Block","src":"10859:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":12600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10909:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":12601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12590,"src":"10941:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12592,"src":"10945:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12594,"src":"10949:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10885:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10889:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10885:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10885:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10869:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10869:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12606,"nodeType":"ExpressionStatement","src":"10869:84:28"}]},"id":12608,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10805:3:28","nodeType":"FunctionDefinition","parameters":{"id":12595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12590,"mutability":"mutable","name":"p0","nameLocation":"10817:2:28","nodeType":"VariableDeclaration","scope":12608,"src":"10809:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12589,"name":"uint256","nodeType":"ElementaryTypeName","src":"10809:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12592,"mutability":"mutable","name":"p1","nameLocation":"10829:2:28","nodeType":"VariableDeclaration","scope":12608,"src":"10821:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12591,"name":"address","nodeType":"ElementaryTypeName","src":"10821:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12594,"mutability":"mutable","name":"p2","nameLocation":"10841:2:28","nodeType":"VariableDeclaration","scope":12608,"src":"10833:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12593,"name":"uint256","nodeType":"ElementaryTypeName","src":"10833:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10808:36:28"},"returnParameters":{"id":12596,"nodeType":"ParameterList","parameters":[],"src":"10859:0:28"},"scope":19517,"src":"10796:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12627,"nodeType":"Block","src":"11035:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":12620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11085:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":12621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12610,"src":"11116:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12612,"src":"11120:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12614,"src":"11124:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11061:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11065:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11061:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11061:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11045:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12626,"nodeType":"ExpressionStatement","src":"11045:83:28"}]},"id":12628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10975:3:28","nodeType":"FunctionDefinition","parameters":{"id":12615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12610,"mutability":"mutable","name":"p0","nameLocation":"10987:2:28","nodeType":"VariableDeclaration","scope":12628,"src":"10979:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12609,"name":"uint256","nodeType":"ElementaryTypeName","src":"10979:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12612,"mutability":"mutable","name":"p1","nameLocation":"10999:2:28","nodeType":"VariableDeclaration","scope":12628,"src":"10991:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"10991:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12614,"mutability":"mutable","name":"p2","nameLocation":"11017:2:28","nodeType":"VariableDeclaration","scope":12628,"src":"11003:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12613,"name":"string","nodeType":"ElementaryTypeName","src":"11003:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10978:42:28"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"11035:0:28"},"scope":19517,"src":"10966:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12647,"nodeType":"Block","src":"11201:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":12640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11251:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":12641,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12630,"src":"11280:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12642,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"11284:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12643,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12634,"src":"11288:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11227:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11231:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11227:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12637,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11211:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11211:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12646,"nodeType":"ExpressionStatement","src":"11211:81:28"}]},"id":12648,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11150:3:28","nodeType":"FunctionDefinition","parameters":{"id":12635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12630,"mutability":"mutable","name":"p0","nameLocation":"11162:2:28","nodeType":"VariableDeclaration","scope":12648,"src":"11154:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12629,"name":"uint256","nodeType":"ElementaryTypeName","src":"11154:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12632,"mutability":"mutable","name":"p1","nameLocation":"11174:2:28","nodeType":"VariableDeclaration","scope":12648,"src":"11166:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12631,"name":"address","nodeType":"ElementaryTypeName","src":"11166:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12634,"mutability":"mutable","name":"p2","nameLocation":"11183:2:28","nodeType":"VariableDeclaration","scope":12648,"src":"11178:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12633,"name":"bool","nodeType":"ElementaryTypeName","src":"11178:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11153:33:28"},"returnParameters":{"id":12636,"nodeType":"ParameterList","parameters":[],"src":"11201:0:28"},"scope":19517,"src":"11141:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12667,"nodeType":"Block","src":"11368:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":12660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11418:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":12661,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12650,"src":"11450:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12662,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12652,"src":"11454:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12663,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12654,"src":"11458:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11394:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11398:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11394:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11394:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11378:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11378:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12666,"nodeType":"ExpressionStatement","src":"11378:84:28"}]},"id":12668,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11314:3:28","nodeType":"FunctionDefinition","parameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12650,"mutability":"mutable","name":"p0","nameLocation":"11326:2:28","nodeType":"VariableDeclaration","scope":12668,"src":"11318:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12649,"name":"uint256","nodeType":"ElementaryTypeName","src":"11318:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12652,"mutability":"mutable","name":"p1","nameLocation":"11338:2:28","nodeType":"VariableDeclaration","scope":12668,"src":"11330:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12651,"name":"address","nodeType":"ElementaryTypeName","src":"11330:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12654,"mutability":"mutable","name":"p2","nameLocation":"11350:2:28","nodeType":"VariableDeclaration","scope":12668,"src":"11342:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12653,"name":"address","nodeType":"ElementaryTypeName","src":"11342:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11317:36:28"},"returnParameters":{"id":12656,"nodeType":"ParameterList","parameters":[],"src":"11368:0:28"},"scope":19517,"src":"11305:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12687,"nodeType":"Block","src":"11544:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":12680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11594:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":12681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"11625:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12672,"src":"11629:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"11633:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11570:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11574:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11570:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11570:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11554:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11554:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12686,"nodeType":"ExpressionStatement","src":"11554:83:28"}]},"id":12688,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11484:3:28","nodeType":"FunctionDefinition","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12670,"mutability":"mutable","name":"p0","nameLocation":"11502:2:28","nodeType":"VariableDeclaration","scope":12688,"src":"11488:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12669,"name":"string","nodeType":"ElementaryTypeName","src":"11488:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12672,"mutability":"mutable","name":"p1","nameLocation":"11514:2:28","nodeType":"VariableDeclaration","scope":12688,"src":"11506:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12671,"name":"uint256","nodeType":"ElementaryTypeName","src":"11506:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12674,"mutability":"mutable","name":"p2","nameLocation":"11526:2:28","nodeType":"VariableDeclaration","scope":12688,"src":"11518:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12673,"name":"uint256","nodeType":"ElementaryTypeName","src":"11518:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11487:42:28"},"returnParameters":{"id":12676,"nodeType":"ParameterList","parameters":[],"src":"11544:0:28"},"scope":19517,"src":"11475:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12707,"nodeType":"Block","src":"11725:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":12700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":12701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12690,"src":"11805:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12692,"src":"11809:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12694,"src":"11813:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11751:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11755:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11751:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11751:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11735:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11735:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12706,"nodeType":"ExpressionStatement","src":"11735:82:28"}]},"id":12708,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11659:3:28","nodeType":"FunctionDefinition","parameters":{"id":12695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12690,"mutability":"mutable","name":"p0","nameLocation":"11677:2:28","nodeType":"VariableDeclaration","scope":12708,"src":"11663:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12689,"name":"string","nodeType":"ElementaryTypeName","src":"11663:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12692,"mutability":"mutable","name":"p1","nameLocation":"11689:2:28","nodeType":"VariableDeclaration","scope":12708,"src":"11681:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12691,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12694,"mutability":"mutable","name":"p2","nameLocation":"11707:2:28","nodeType":"VariableDeclaration","scope":12708,"src":"11693:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12693,"name":"string","nodeType":"ElementaryTypeName","src":"11693:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11662:48:28"},"returnParameters":{"id":12696,"nodeType":"ParameterList","parameters":[],"src":"11725:0:28"},"scope":19517,"src":"11650:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12727,"nodeType":"Block","src":"11896:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":12720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11946:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":12721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"11974:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12722,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12712,"src":"11978:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12723,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12714,"src":"11982:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11922:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11926:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11922:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11922:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11906:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11906:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12726,"nodeType":"ExpressionStatement","src":"11906:80:28"}]},"id":12728,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11839:3:28","nodeType":"FunctionDefinition","parameters":{"id":12715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12710,"mutability":"mutable","name":"p0","nameLocation":"11857:2:28","nodeType":"VariableDeclaration","scope":12728,"src":"11843:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12709,"name":"string","nodeType":"ElementaryTypeName","src":"11843:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12712,"mutability":"mutable","name":"p1","nameLocation":"11869:2:28","nodeType":"VariableDeclaration","scope":12728,"src":"11861:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12711,"name":"uint256","nodeType":"ElementaryTypeName","src":"11861:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12714,"mutability":"mutable","name":"p2","nameLocation":"11878:2:28","nodeType":"VariableDeclaration","scope":12728,"src":"11873:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12713,"name":"bool","nodeType":"ElementaryTypeName","src":"11873:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11842:39:28"},"returnParameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"11896:0:28"},"scope":19517,"src":"11830:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12747,"nodeType":"Block","src":"12068:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":12740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12118:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":12741,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12730,"src":"12149:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12742,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"12153:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12743,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12734,"src":"12157:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12738,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12094:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12098:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12094:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12094:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12737,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12078:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12746,"nodeType":"ExpressionStatement","src":"12078:83:28"}]},"id":12748,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12008:3:28","nodeType":"FunctionDefinition","parameters":{"id":12735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12730,"mutability":"mutable","name":"p0","nameLocation":"12026:2:28","nodeType":"VariableDeclaration","scope":12748,"src":"12012:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12729,"name":"string","nodeType":"ElementaryTypeName","src":"12012:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12732,"mutability":"mutable","name":"p1","nameLocation":"12038:2:28","nodeType":"VariableDeclaration","scope":12748,"src":"12030:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12731,"name":"uint256","nodeType":"ElementaryTypeName","src":"12030:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12734,"mutability":"mutable","name":"p2","nameLocation":"12050:2:28","nodeType":"VariableDeclaration","scope":12748,"src":"12042:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12733,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12011:42:28"},"returnParameters":{"id":12736,"nodeType":"ParameterList","parameters":[],"src":"12068:0:28"},"scope":19517,"src":"11999:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12767,"nodeType":"Block","src":"12249:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":12760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12299:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":12761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12750,"src":"12329:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12752,"src":"12333:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12754,"src":"12337:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12275:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12279:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12275:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12275:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12259:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12259:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12766,"nodeType":"ExpressionStatement","src":"12259:82:28"}]},"id":12768,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12183:3:28","nodeType":"FunctionDefinition","parameters":{"id":12755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12750,"mutability":"mutable","name":"p0","nameLocation":"12201:2:28","nodeType":"VariableDeclaration","scope":12768,"src":"12187:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12749,"name":"string","nodeType":"ElementaryTypeName","src":"12187:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12752,"mutability":"mutable","name":"p1","nameLocation":"12219:2:28","nodeType":"VariableDeclaration","scope":12768,"src":"12205:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12751,"name":"string","nodeType":"ElementaryTypeName","src":"12205:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12754,"mutability":"mutable","name":"p2","nameLocation":"12231:2:28","nodeType":"VariableDeclaration","scope":12768,"src":"12223:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12753,"name":"uint256","nodeType":"ElementaryTypeName","src":"12223:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12186:48:28"},"returnParameters":{"id":12756,"nodeType":"ParameterList","parameters":[],"src":"12249:0:28"},"scope":19517,"src":"12174:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12787,"nodeType":"Block","src":"12435:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":12780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12485:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":12781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12770,"src":"12514:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12772,"src":"12518:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12774,"src":"12522:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12461:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12465:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12461:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12461:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12445:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12445:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12786,"nodeType":"ExpressionStatement","src":"12445:81:28"}]},"id":12788,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12363:3:28","nodeType":"FunctionDefinition","parameters":{"id":12775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12770,"mutability":"mutable","name":"p0","nameLocation":"12381:2:28","nodeType":"VariableDeclaration","scope":12788,"src":"12367:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12769,"name":"string","nodeType":"ElementaryTypeName","src":"12367:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12772,"mutability":"mutable","name":"p1","nameLocation":"12399:2:28","nodeType":"VariableDeclaration","scope":12788,"src":"12385:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12771,"name":"string","nodeType":"ElementaryTypeName","src":"12385:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12774,"mutability":"mutable","name":"p2","nameLocation":"12417:2:28","nodeType":"VariableDeclaration","scope":12788,"src":"12403:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12773,"name":"string","nodeType":"ElementaryTypeName","src":"12403:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12366:54:28"},"returnParameters":{"id":12776,"nodeType":"ParameterList","parameters":[],"src":"12435:0:28"},"scope":19517,"src":"12354:179:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12807,"nodeType":"Block","src":"12611:96:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":12800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12661:25:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":12801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12790,"src":"12688:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12802,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"12692:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12803,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12794,"src":"12696:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12637:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12641:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12637:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12637:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12621:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12621:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12806,"nodeType":"ExpressionStatement","src":"12621:79:28"}]},"id":12808,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12548:3:28","nodeType":"FunctionDefinition","parameters":{"id":12795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12790,"mutability":"mutable","name":"p0","nameLocation":"12566:2:28","nodeType":"VariableDeclaration","scope":12808,"src":"12552:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12789,"name":"string","nodeType":"ElementaryTypeName","src":"12552:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12792,"mutability":"mutable","name":"p1","nameLocation":"12584:2:28","nodeType":"VariableDeclaration","scope":12808,"src":"12570:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12791,"name":"string","nodeType":"ElementaryTypeName","src":"12570:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12794,"mutability":"mutable","name":"p2","nameLocation":"12593:2:28","nodeType":"VariableDeclaration","scope":12808,"src":"12588:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12793,"name":"bool","nodeType":"ElementaryTypeName","src":"12588:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12551:45:28"},"returnParameters":{"id":12796,"nodeType":"ParameterList","parameters":[],"src":"12611:0:28"},"scope":19517,"src":"12539:168:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12827,"nodeType":"Block","src":"12788:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":12820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12838:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":12821,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12810,"src":"12868:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12822,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12812,"src":"12872:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12823,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12814,"src":"12876:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12814:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12818:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12814:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12814:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12817,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12798:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12798:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12826,"nodeType":"ExpressionStatement","src":"12798:82:28"}]},"id":12828,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12722:3:28","nodeType":"FunctionDefinition","parameters":{"id":12815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12810,"mutability":"mutable","name":"p0","nameLocation":"12740:2:28","nodeType":"VariableDeclaration","scope":12828,"src":"12726:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12809,"name":"string","nodeType":"ElementaryTypeName","src":"12726:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12812,"mutability":"mutable","name":"p1","nameLocation":"12758:2:28","nodeType":"VariableDeclaration","scope":12828,"src":"12744:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12811,"name":"string","nodeType":"ElementaryTypeName","src":"12744:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12814,"mutability":"mutable","name":"p2","nameLocation":"12770:2:28","nodeType":"VariableDeclaration","scope":12828,"src":"12762:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12813,"name":"address","nodeType":"ElementaryTypeName","src":"12762:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12725:48:28"},"returnParameters":{"id":12816,"nodeType":"ParameterList","parameters":[],"src":"12788:0:28"},"scope":19517,"src":"12713:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12847,"nodeType":"Block","src":"12959:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":12840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13009:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":12841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12830,"src":"13037:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12832,"src":"13041:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12834,"src":"13045:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12985:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12989:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12985:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12985:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12969:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12969:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12846,"nodeType":"ExpressionStatement","src":"12969:80:28"}]},"id":12848,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12902:3:28","nodeType":"FunctionDefinition","parameters":{"id":12835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12830,"mutability":"mutable","name":"p0","nameLocation":"12920:2:28","nodeType":"VariableDeclaration","scope":12848,"src":"12906:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12829,"name":"string","nodeType":"ElementaryTypeName","src":"12906:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12832,"mutability":"mutable","name":"p1","nameLocation":"12929:2:28","nodeType":"VariableDeclaration","scope":12848,"src":"12924:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12831,"name":"bool","nodeType":"ElementaryTypeName","src":"12924:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12834,"mutability":"mutable","name":"p2","nameLocation":"12941:2:28","nodeType":"VariableDeclaration","scope":12848,"src":"12933:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12833,"name":"uint256","nodeType":"ElementaryTypeName","src":"12933:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12905:39:28"},"returnParameters":{"id":12836,"nodeType":"ParameterList","parameters":[],"src":"12959:0:28"},"scope":19517,"src":"12893:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12867,"nodeType":"Block","src":"13134:96:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":12860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13184:25:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":12861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12850,"src":"13211:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12862,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"13215:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12863,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12854,"src":"13219:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13160:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13164:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13160:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13160:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13144:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13144:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12866,"nodeType":"ExpressionStatement","src":"13144:79:28"}]},"id":12868,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13071:3:28","nodeType":"FunctionDefinition","parameters":{"id":12855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12850,"mutability":"mutable","name":"p0","nameLocation":"13089:2:28","nodeType":"VariableDeclaration","scope":12868,"src":"13075:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12849,"name":"string","nodeType":"ElementaryTypeName","src":"13075:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12852,"mutability":"mutable","name":"p1","nameLocation":"13098:2:28","nodeType":"VariableDeclaration","scope":12868,"src":"13093:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12851,"name":"bool","nodeType":"ElementaryTypeName","src":"13093:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12854,"mutability":"mutable","name":"p2","nameLocation":"13116:2:28","nodeType":"VariableDeclaration","scope":12868,"src":"13102:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12853,"name":"string","nodeType":"ElementaryTypeName","src":"13102:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13074:45:28"},"returnParameters":{"id":12856,"nodeType":"ParameterList","parameters":[],"src":"13134:0:28"},"scope":19517,"src":"13062:168:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12887,"nodeType":"Block","src":"13299:94:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":12880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13349:23:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":12881,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12870,"src":"13374:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12882,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"13378:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12883,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"13382:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13325:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13329:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13325:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13325:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13309:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13309:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12886,"nodeType":"ExpressionStatement","src":"13309:77:28"}]},"id":12888,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13245:3:28","nodeType":"FunctionDefinition","parameters":{"id":12875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12870,"mutability":"mutable","name":"p0","nameLocation":"13263:2:28","nodeType":"VariableDeclaration","scope":12888,"src":"13249:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12869,"name":"string","nodeType":"ElementaryTypeName","src":"13249:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12872,"mutability":"mutable","name":"p1","nameLocation":"13272:2:28","nodeType":"VariableDeclaration","scope":12888,"src":"13267:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12871,"name":"bool","nodeType":"ElementaryTypeName","src":"13267:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12874,"mutability":"mutable","name":"p2","nameLocation":"13281:2:28","nodeType":"VariableDeclaration","scope":12888,"src":"13276:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12873,"name":"bool","nodeType":"ElementaryTypeName","src":"13276:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13248:36:28"},"returnParameters":{"id":12876,"nodeType":"ParameterList","parameters":[],"src":"13299:0:28"},"scope":19517,"src":"13236:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12907,"nodeType":"Block","src":"13465:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":12900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13515:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":12901,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"13543:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12902,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12892,"src":"13547:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12903,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"13551:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13491:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13495:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13491:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12897,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13475:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13475:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12906,"nodeType":"ExpressionStatement","src":"13475:80:28"}]},"id":12908,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13408:3:28","nodeType":"FunctionDefinition","parameters":{"id":12895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12890,"mutability":"mutable","name":"p0","nameLocation":"13426:2:28","nodeType":"VariableDeclaration","scope":12908,"src":"13412:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12889,"name":"string","nodeType":"ElementaryTypeName","src":"13412:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12892,"mutability":"mutable","name":"p1","nameLocation":"13435:2:28","nodeType":"VariableDeclaration","scope":12908,"src":"13430:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12891,"name":"bool","nodeType":"ElementaryTypeName","src":"13430:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12894,"mutability":"mutable","name":"p2","nameLocation":"13447:2:28","nodeType":"VariableDeclaration","scope":12908,"src":"13439:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12893,"name":"address","nodeType":"ElementaryTypeName","src":"13439:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13411:39:28"},"returnParameters":{"id":12896,"nodeType":"ParameterList","parameters":[],"src":"13465:0:28"},"scope":19517,"src":"13399:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12927,"nodeType":"Block","src":"13637:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":12920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13687:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":12921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12910,"src":"13718:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12912,"src":"13722:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"13726:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13663:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13667:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13663:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13663:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13647:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13647:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12926,"nodeType":"ExpressionStatement","src":"13647:83:28"}]},"id":12928,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13577:3:28","nodeType":"FunctionDefinition","parameters":{"id":12915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12910,"mutability":"mutable","name":"p0","nameLocation":"13595:2:28","nodeType":"VariableDeclaration","scope":12928,"src":"13581:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12909,"name":"string","nodeType":"ElementaryTypeName","src":"13581:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12912,"mutability":"mutable","name":"p1","nameLocation":"13607:2:28","nodeType":"VariableDeclaration","scope":12928,"src":"13599:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12911,"name":"address","nodeType":"ElementaryTypeName","src":"13599:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12914,"mutability":"mutable","name":"p2","nameLocation":"13619:2:28","nodeType":"VariableDeclaration","scope":12928,"src":"13611:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12913,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13580:42:28"},"returnParameters":{"id":12916,"nodeType":"ParameterList","parameters":[],"src":"13637:0:28"},"scope":19517,"src":"13568:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12947,"nodeType":"Block","src":"13818:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":12940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13868:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":12941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"13898:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12942,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12932,"src":"13902:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12943,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12934,"src":"13906:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13844:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13848:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13844:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13844:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13828:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12946,"nodeType":"ExpressionStatement","src":"13828:82:28"}]},"id":12948,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13752:3:28","nodeType":"FunctionDefinition","parameters":{"id":12935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12930,"mutability":"mutable","name":"p0","nameLocation":"13770:2:28","nodeType":"VariableDeclaration","scope":12948,"src":"13756:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12929,"name":"string","nodeType":"ElementaryTypeName","src":"13756:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12932,"mutability":"mutable","name":"p1","nameLocation":"13782:2:28","nodeType":"VariableDeclaration","scope":12948,"src":"13774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12931,"name":"address","nodeType":"ElementaryTypeName","src":"13774:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12934,"mutability":"mutable","name":"p2","nameLocation":"13800:2:28","nodeType":"VariableDeclaration","scope":12948,"src":"13786:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12933,"name":"string","nodeType":"ElementaryTypeName","src":"13786:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13755:48:28"},"returnParameters":{"id":12936,"nodeType":"ParameterList","parameters":[],"src":"13818:0:28"},"scope":19517,"src":"13743:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12967,"nodeType":"Block","src":"13989:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":12960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14039:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":12961,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12950,"src":"14067:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12962,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12952,"src":"14071:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12963,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12954,"src":"14075:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14015:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14019:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14015:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14015:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12957,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13999:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13999:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12966,"nodeType":"ExpressionStatement","src":"13999:80:28"}]},"id":12968,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13932:3:28","nodeType":"FunctionDefinition","parameters":{"id":12955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12950,"mutability":"mutable","name":"p0","nameLocation":"13950:2:28","nodeType":"VariableDeclaration","scope":12968,"src":"13936:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12949,"name":"string","nodeType":"ElementaryTypeName","src":"13936:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12952,"mutability":"mutable","name":"p1","nameLocation":"13962:2:28","nodeType":"VariableDeclaration","scope":12968,"src":"13954:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12951,"name":"address","nodeType":"ElementaryTypeName","src":"13954:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12954,"mutability":"mutable","name":"p2","nameLocation":"13971:2:28","nodeType":"VariableDeclaration","scope":12968,"src":"13966:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12953,"name":"bool","nodeType":"ElementaryTypeName","src":"13966:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13935:39:28"},"returnParameters":{"id":12956,"nodeType":"ParameterList","parameters":[],"src":"13989:0:28"},"scope":19517,"src":"13923:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12987,"nodeType":"Block","src":"14161:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":12980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14211:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":12981,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12970,"src":"14242:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12982,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"14246:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12983,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12974,"src":"14250:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14187:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14191:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14187:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14187:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12977,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14171:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14171:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12986,"nodeType":"ExpressionStatement","src":"14171:83:28"}]},"id":12988,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14101:3:28","nodeType":"FunctionDefinition","parameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12970,"mutability":"mutable","name":"p0","nameLocation":"14119:2:28","nodeType":"VariableDeclaration","scope":12988,"src":"14105:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12969,"name":"string","nodeType":"ElementaryTypeName","src":"14105:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12972,"mutability":"mutable","name":"p1","nameLocation":"14131:2:28","nodeType":"VariableDeclaration","scope":12988,"src":"14123:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12971,"name":"address","nodeType":"ElementaryTypeName","src":"14123:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"p2","nameLocation":"14143:2:28","nodeType":"VariableDeclaration","scope":12988,"src":"14135:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12973,"name":"address","nodeType":"ElementaryTypeName","src":"14135:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14104:42:28"},"returnParameters":{"id":12976,"nodeType":"ParameterList","parameters":[],"src":"14161:0:28"},"scope":19517,"src":"14092:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13007,"nodeType":"Block","src":"14327:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":13000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14377:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":13001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12990,"src":"14406:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"14410:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"14414:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14353:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14357:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14353:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14353:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14337:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14337:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13006,"nodeType":"ExpressionStatement","src":"14337:81:28"}]},"id":13008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14276:3:28","nodeType":"FunctionDefinition","parameters":{"id":12995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12990,"mutability":"mutable","name":"p0","nameLocation":"14285:2:28","nodeType":"VariableDeclaration","scope":13008,"src":"14280:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12989,"name":"bool","nodeType":"ElementaryTypeName","src":"14280:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12992,"mutability":"mutable","name":"p1","nameLocation":"14297:2:28","nodeType":"VariableDeclaration","scope":13008,"src":"14289:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12991,"name":"uint256","nodeType":"ElementaryTypeName","src":"14289:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12994,"mutability":"mutable","name":"p2","nameLocation":"14309:2:28","nodeType":"VariableDeclaration","scope":13008,"src":"14301:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12993,"name":"uint256","nodeType":"ElementaryTypeName","src":"14301:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14279:33:28"},"returnParameters":{"id":12996,"nodeType":"ParameterList","parameters":[],"src":"14327:0:28"},"scope":19517,"src":"14267:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13027,"nodeType":"Block","src":"14497:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":13020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14547:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":13021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13010,"src":"14575:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13022,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13012,"src":"14579:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13023,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13014,"src":"14583:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14523:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14527:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14523:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14523:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14507:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14507:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13026,"nodeType":"ExpressionStatement","src":"14507:80:28"}]},"id":13028,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14440:3:28","nodeType":"FunctionDefinition","parameters":{"id":13015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13010,"mutability":"mutable","name":"p0","nameLocation":"14449:2:28","nodeType":"VariableDeclaration","scope":13028,"src":"14444:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13009,"name":"bool","nodeType":"ElementaryTypeName","src":"14444:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13012,"mutability":"mutable","name":"p1","nameLocation":"14461:2:28","nodeType":"VariableDeclaration","scope":13028,"src":"14453:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13011,"name":"uint256","nodeType":"ElementaryTypeName","src":"14453:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13014,"mutability":"mutable","name":"p2","nameLocation":"14479:2:28","nodeType":"VariableDeclaration","scope":13028,"src":"14465:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13013,"name":"string","nodeType":"ElementaryTypeName","src":"14465:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14443:39:28"},"returnParameters":{"id":13016,"nodeType":"ParameterList","parameters":[],"src":"14497:0:28"},"scope":19517,"src":"14431:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13047,"nodeType":"Block","src":"14657:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":13040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14707:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":13041,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"14733:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13042,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13032,"src":"14737:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13043,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13034,"src":"14741:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13038,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14683:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14687:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14683:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14683:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13037,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14667:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14667:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13046,"nodeType":"ExpressionStatement","src":"14667:78:28"}]},"id":13048,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14609:3:28","nodeType":"FunctionDefinition","parameters":{"id":13035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13030,"mutability":"mutable","name":"p0","nameLocation":"14618:2:28","nodeType":"VariableDeclaration","scope":13048,"src":"14613:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13029,"name":"bool","nodeType":"ElementaryTypeName","src":"14613:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13032,"mutability":"mutable","name":"p1","nameLocation":"14630:2:28","nodeType":"VariableDeclaration","scope":13048,"src":"14622:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13031,"name":"uint256","nodeType":"ElementaryTypeName","src":"14622:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13034,"mutability":"mutable","name":"p2","nameLocation":"14639:2:28","nodeType":"VariableDeclaration","scope":13048,"src":"14634:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13033,"name":"bool","nodeType":"ElementaryTypeName","src":"14634:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14612:30:28"},"returnParameters":{"id":13036,"nodeType":"ParameterList","parameters":[],"src":"14657:0:28"},"scope":19517,"src":"14600:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13067,"nodeType":"Block","src":"14818:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":13060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14868:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":13061,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13050,"src":"14897:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13062,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"14901:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13063,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13054,"src":"14905:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14844:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14848:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14844:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14844:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13057,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14828:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14828:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13066,"nodeType":"ExpressionStatement","src":"14828:81:28"}]},"id":13068,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14767:3:28","nodeType":"FunctionDefinition","parameters":{"id":13055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13050,"mutability":"mutable","name":"p0","nameLocation":"14776:2:28","nodeType":"VariableDeclaration","scope":13068,"src":"14771:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13049,"name":"bool","nodeType":"ElementaryTypeName","src":"14771:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13052,"mutability":"mutable","name":"p1","nameLocation":"14788:2:28","nodeType":"VariableDeclaration","scope":13068,"src":"14780:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13051,"name":"uint256","nodeType":"ElementaryTypeName","src":"14780:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13054,"mutability":"mutable","name":"p2","nameLocation":"14800:2:28","nodeType":"VariableDeclaration","scope":13068,"src":"14792:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13053,"name":"address","nodeType":"ElementaryTypeName","src":"14792:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14770:33:28"},"returnParameters":{"id":13056,"nodeType":"ParameterList","parameters":[],"src":"14818:0:28"},"scope":19517,"src":"14758:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13087,"nodeType":"Block","src":"14988:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":13080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15038:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":13081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13070,"src":"15066:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13072,"src":"15070:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13074,"src":"15074:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15014:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15018:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15014:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14998:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13086,"nodeType":"ExpressionStatement","src":"14998:80:28"}]},"id":13088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14931:3:28","nodeType":"FunctionDefinition","parameters":{"id":13075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13070,"mutability":"mutable","name":"p0","nameLocation":"14940:2:28","nodeType":"VariableDeclaration","scope":13088,"src":"14935:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13069,"name":"bool","nodeType":"ElementaryTypeName","src":"14935:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13072,"mutability":"mutable","name":"p1","nameLocation":"14958:2:28","nodeType":"VariableDeclaration","scope":13088,"src":"14944:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13071,"name":"string","nodeType":"ElementaryTypeName","src":"14944:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13074,"mutability":"mutable","name":"p2","nameLocation":"14970:2:28","nodeType":"VariableDeclaration","scope":13088,"src":"14962:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13073,"name":"uint256","nodeType":"ElementaryTypeName","src":"14962:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14934:39:28"},"returnParameters":{"id":13076,"nodeType":"ParameterList","parameters":[],"src":"14988:0:28"},"scope":19517,"src":"14922:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13107,"nodeType":"Block","src":"15163:96:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":13100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15213:25:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":13101,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13090,"src":"15240:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13102,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13092,"src":"15244:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13103,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13094,"src":"15248:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13098,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15189:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15193:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15189:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15189:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13097,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15173:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15173:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13106,"nodeType":"ExpressionStatement","src":"15173:79:28"}]},"id":13108,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15100:3:28","nodeType":"FunctionDefinition","parameters":{"id":13095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13090,"mutability":"mutable","name":"p0","nameLocation":"15109:2:28","nodeType":"VariableDeclaration","scope":13108,"src":"15104:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13089,"name":"bool","nodeType":"ElementaryTypeName","src":"15104:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13092,"mutability":"mutable","name":"p1","nameLocation":"15127:2:28","nodeType":"VariableDeclaration","scope":13108,"src":"15113:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13091,"name":"string","nodeType":"ElementaryTypeName","src":"15113:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13094,"mutability":"mutable","name":"p2","nameLocation":"15145:2:28","nodeType":"VariableDeclaration","scope":13108,"src":"15131:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13093,"name":"string","nodeType":"ElementaryTypeName","src":"15131:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15103:45:28"},"returnParameters":{"id":13096,"nodeType":"ParameterList","parameters":[],"src":"15163:0:28"},"scope":19517,"src":"15091:168:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13127,"nodeType":"Block","src":"15328:94:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":13120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15378:23:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":13121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"15403:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13112,"src":"15407:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13123,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"15411:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15354:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15358:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15354:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15354:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15338:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13126,"nodeType":"ExpressionStatement","src":"15338:77:28"}]},"id":13128,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15274:3:28","nodeType":"FunctionDefinition","parameters":{"id":13115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13110,"mutability":"mutable","name":"p0","nameLocation":"15283:2:28","nodeType":"VariableDeclaration","scope":13128,"src":"15278:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13109,"name":"bool","nodeType":"ElementaryTypeName","src":"15278:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13112,"mutability":"mutable","name":"p1","nameLocation":"15301:2:28","nodeType":"VariableDeclaration","scope":13128,"src":"15287:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13111,"name":"string","nodeType":"ElementaryTypeName","src":"15287:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13114,"mutability":"mutable","name":"p2","nameLocation":"15310:2:28","nodeType":"VariableDeclaration","scope":13128,"src":"15305:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13113,"name":"bool","nodeType":"ElementaryTypeName","src":"15305:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15277:36:28"},"returnParameters":{"id":13116,"nodeType":"ParameterList","parameters":[],"src":"15328:0:28"},"scope":19517,"src":"15265:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13147,"nodeType":"Block","src":"15494:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":13140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15544:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":13141,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13130,"src":"15572:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13142,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13132,"src":"15576:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13143,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13134,"src":"15580:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15520:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15524:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15520:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15520:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13137,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15504:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15504:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13146,"nodeType":"ExpressionStatement","src":"15504:80:28"}]},"id":13148,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15437:3:28","nodeType":"FunctionDefinition","parameters":{"id":13135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13130,"mutability":"mutable","name":"p0","nameLocation":"15446:2:28","nodeType":"VariableDeclaration","scope":13148,"src":"15441:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13129,"name":"bool","nodeType":"ElementaryTypeName","src":"15441:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13132,"mutability":"mutable","name":"p1","nameLocation":"15464:2:28","nodeType":"VariableDeclaration","scope":13148,"src":"15450:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13131,"name":"string","nodeType":"ElementaryTypeName","src":"15450:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13134,"mutability":"mutable","name":"p2","nameLocation":"15476:2:28","nodeType":"VariableDeclaration","scope":13148,"src":"15468:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13133,"name":"address","nodeType":"ElementaryTypeName","src":"15468:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15440:39:28"},"returnParameters":{"id":13136,"nodeType":"ParameterList","parameters":[],"src":"15494:0:28"},"scope":19517,"src":"15428:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13167,"nodeType":"Block","src":"15654:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":13160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15704:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":13161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13150,"src":"15730:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13152,"src":"15734:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"15738:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15680:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15684:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15680:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15680:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15664:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15664:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13166,"nodeType":"ExpressionStatement","src":"15664:78:28"}]},"id":13168,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15606:3:28","nodeType":"FunctionDefinition","parameters":{"id":13155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13150,"mutability":"mutable","name":"p0","nameLocation":"15615:2:28","nodeType":"VariableDeclaration","scope":13168,"src":"15610:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13149,"name":"bool","nodeType":"ElementaryTypeName","src":"15610:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13152,"mutability":"mutable","name":"p1","nameLocation":"15624:2:28","nodeType":"VariableDeclaration","scope":13168,"src":"15619:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13151,"name":"bool","nodeType":"ElementaryTypeName","src":"15619:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13154,"mutability":"mutable","name":"p2","nameLocation":"15636:2:28","nodeType":"VariableDeclaration","scope":13168,"src":"15628:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13153,"name":"uint256","nodeType":"ElementaryTypeName","src":"15628:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15609:30:28"},"returnParameters":{"id":13156,"nodeType":"ParameterList","parameters":[],"src":"15654:0:28"},"scope":19517,"src":"15597:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13187,"nodeType":"Block","src":"15818:94:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":13180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15868:23:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":13181,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"15893:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13182,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"15897:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13183,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13174,"src":"15901:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15844:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15848:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15844:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15844:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13177,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15828:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15828:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13186,"nodeType":"ExpressionStatement","src":"15828:77:28"}]},"id":13188,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15764:3:28","nodeType":"FunctionDefinition","parameters":{"id":13175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13170,"mutability":"mutable","name":"p0","nameLocation":"15773:2:28","nodeType":"VariableDeclaration","scope":13188,"src":"15768:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13169,"name":"bool","nodeType":"ElementaryTypeName","src":"15768:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13172,"mutability":"mutable","name":"p1","nameLocation":"15782:2:28","nodeType":"VariableDeclaration","scope":13188,"src":"15777:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13171,"name":"bool","nodeType":"ElementaryTypeName","src":"15777:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13174,"mutability":"mutable","name":"p2","nameLocation":"15800:2:28","nodeType":"VariableDeclaration","scope":13188,"src":"15786:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13173,"name":"string","nodeType":"ElementaryTypeName","src":"15786:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15767:36:28"},"returnParameters":{"id":13176,"nodeType":"ParameterList","parameters":[],"src":"15818:0:28"},"scope":19517,"src":"15755:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13207,"nodeType":"Block","src":"15972:92:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":13200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16022:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":13201,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13190,"src":"16045:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13202,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"16049:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13203,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13194,"src":"16053:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15998:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16002:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15998:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15998:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13197,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15982:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15982:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13206,"nodeType":"ExpressionStatement","src":"15982:75:28"}]},"id":13208,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15927:3:28","nodeType":"FunctionDefinition","parameters":{"id":13195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13190,"mutability":"mutable","name":"p0","nameLocation":"15936:2:28","nodeType":"VariableDeclaration","scope":13208,"src":"15931:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13189,"name":"bool","nodeType":"ElementaryTypeName","src":"15931:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13192,"mutability":"mutable","name":"p1","nameLocation":"15945:2:28","nodeType":"VariableDeclaration","scope":13208,"src":"15940:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13191,"name":"bool","nodeType":"ElementaryTypeName","src":"15940:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13194,"mutability":"mutable","name":"p2","nameLocation":"15954:2:28","nodeType":"VariableDeclaration","scope":13208,"src":"15949:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13193,"name":"bool","nodeType":"ElementaryTypeName","src":"15949:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15930:27:28"},"returnParameters":{"id":13196,"nodeType":"ParameterList","parameters":[],"src":"15972:0:28"},"scope":19517,"src":"15918:146:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13227,"nodeType":"Block","src":"16127:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":13220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16177:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":13221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13210,"src":"16203:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13222,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13212,"src":"16207:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13223,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13214,"src":"16211:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16153:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16157:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16153:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16153:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16137:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16137:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13226,"nodeType":"ExpressionStatement","src":"16137:78:28"}]},"id":13228,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16079:3:28","nodeType":"FunctionDefinition","parameters":{"id":13215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13210,"mutability":"mutable","name":"p0","nameLocation":"16088:2:28","nodeType":"VariableDeclaration","scope":13228,"src":"16083:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13209,"name":"bool","nodeType":"ElementaryTypeName","src":"16083:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13212,"mutability":"mutable","name":"p1","nameLocation":"16097:2:28","nodeType":"VariableDeclaration","scope":13228,"src":"16092:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13211,"name":"bool","nodeType":"ElementaryTypeName","src":"16092:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13214,"mutability":"mutable","name":"p2","nameLocation":"16109:2:28","nodeType":"VariableDeclaration","scope":13228,"src":"16101:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13213,"name":"address","nodeType":"ElementaryTypeName","src":"16101:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16082:30:28"},"returnParameters":{"id":13216,"nodeType":"ParameterList","parameters":[],"src":"16127:0:28"},"scope":19517,"src":"16070:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13247,"nodeType":"Block","src":"16288:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":13240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16338:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":13241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13230,"src":"16367:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13232,"src":"16371:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13234,"src":"16375:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16314:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16318:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16314:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16314:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16298:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16298:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13246,"nodeType":"ExpressionStatement","src":"16298:81:28"}]},"id":13248,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16237:3:28","nodeType":"FunctionDefinition","parameters":{"id":13235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13230,"mutability":"mutable","name":"p0","nameLocation":"16246:2:28","nodeType":"VariableDeclaration","scope":13248,"src":"16241:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13229,"name":"bool","nodeType":"ElementaryTypeName","src":"16241:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13232,"mutability":"mutable","name":"p1","nameLocation":"16258:2:28","nodeType":"VariableDeclaration","scope":13248,"src":"16250:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13231,"name":"address","nodeType":"ElementaryTypeName","src":"16250:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13234,"mutability":"mutable","name":"p2","nameLocation":"16270:2:28","nodeType":"VariableDeclaration","scope":13248,"src":"16262:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13233,"name":"uint256","nodeType":"ElementaryTypeName","src":"16262:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16240:33:28"},"returnParameters":{"id":13236,"nodeType":"ParameterList","parameters":[],"src":"16288:0:28"},"scope":19517,"src":"16228:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13267,"nodeType":"Block","src":"16458:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":13260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16508:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":13261,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13250,"src":"16536:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13262,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13252,"src":"16540:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13263,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13254,"src":"16544:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16484:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16488:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16484:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16484:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13257,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16468:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13266,"nodeType":"ExpressionStatement","src":"16468:80:28"}]},"id":13268,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16401:3:28","nodeType":"FunctionDefinition","parameters":{"id":13255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13250,"mutability":"mutable","name":"p0","nameLocation":"16410:2:28","nodeType":"VariableDeclaration","scope":13268,"src":"16405:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13249,"name":"bool","nodeType":"ElementaryTypeName","src":"16405:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13252,"mutability":"mutable","name":"p1","nameLocation":"16422:2:28","nodeType":"VariableDeclaration","scope":13268,"src":"16414:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13251,"name":"address","nodeType":"ElementaryTypeName","src":"16414:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13254,"mutability":"mutable","name":"p2","nameLocation":"16440:2:28","nodeType":"VariableDeclaration","scope":13268,"src":"16426:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13253,"name":"string","nodeType":"ElementaryTypeName","src":"16426:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16404:39:28"},"returnParameters":{"id":13256,"nodeType":"ParameterList","parameters":[],"src":"16458:0:28"},"scope":19517,"src":"16392:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13287,"nodeType":"Block","src":"16618:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":13280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16668:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":13281,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"16694:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13282,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13272,"src":"16698:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13283,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13274,"src":"16702:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13278,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16644:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16648:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16644:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16644:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13277,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16628:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16628:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13286,"nodeType":"ExpressionStatement","src":"16628:78:28"}]},"id":13288,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16570:3:28","nodeType":"FunctionDefinition","parameters":{"id":13275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13270,"mutability":"mutable","name":"p0","nameLocation":"16579:2:28","nodeType":"VariableDeclaration","scope":13288,"src":"16574:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13269,"name":"bool","nodeType":"ElementaryTypeName","src":"16574:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13272,"mutability":"mutable","name":"p1","nameLocation":"16591:2:28","nodeType":"VariableDeclaration","scope":13288,"src":"16583:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13271,"name":"address","nodeType":"ElementaryTypeName","src":"16583:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13274,"mutability":"mutable","name":"p2","nameLocation":"16600:2:28","nodeType":"VariableDeclaration","scope":13288,"src":"16595:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13273,"name":"bool","nodeType":"ElementaryTypeName","src":"16595:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16573:30:28"},"returnParameters":{"id":13276,"nodeType":"ParameterList","parameters":[],"src":"16618:0:28"},"scope":19517,"src":"16561:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13307,"nodeType":"Block","src":"16779:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":13300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16829:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":13301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13290,"src":"16858:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13292,"src":"16862:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"16866:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16805:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16809:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16805:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16805:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16789:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16789:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13306,"nodeType":"ExpressionStatement","src":"16789:81:28"}]},"id":13308,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16728:3:28","nodeType":"FunctionDefinition","parameters":{"id":13295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13290,"mutability":"mutable","name":"p0","nameLocation":"16737:2:28","nodeType":"VariableDeclaration","scope":13308,"src":"16732:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13289,"name":"bool","nodeType":"ElementaryTypeName","src":"16732:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13292,"mutability":"mutable","name":"p1","nameLocation":"16749:2:28","nodeType":"VariableDeclaration","scope":13308,"src":"16741:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13291,"name":"address","nodeType":"ElementaryTypeName","src":"16741:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13294,"mutability":"mutable","name":"p2","nameLocation":"16761:2:28","nodeType":"VariableDeclaration","scope":13308,"src":"16753:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13293,"name":"address","nodeType":"ElementaryTypeName","src":"16753:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16731:33:28"},"returnParameters":{"id":13296,"nodeType":"ParameterList","parameters":[],"src":"16779:0:28"},"scope":19517,"src":"16719:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13327,"nodeType":"Block","src":"16946:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":13320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16996:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":13321,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13310,"src":"17028:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13322,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13312,"src":"17032:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13323,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"17036:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16972:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16976:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16972:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16972:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16956:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16956:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13326,"nodeType":"ExpressionStatement","src":"16956:84:28"}]},"id":13328,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16892:3:28","nodeType":"FunctionDefinition","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13310,"mutability":"mutable","name":"p0","nameLocation":"16904:2:28","nodeType":"VariableDeclaration","scope":13328,"src":"16896:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13309,"name":"address","nodeType":"ElementaryTypeName","src":"16896:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13312,"mutability":"mutable","name":"p1","nameLocation":"16916:2:28","nodeType":"VariableDeclaration","scope":13328,"src":"16908:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13311,"name":"uint256","nodeType":"ElementaryTypeName","src":"16908:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"p2","nameLocation":"16928:2:28","nodeType":"VariableDeclaration","scope":13328,"src":"16920:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13313,"name":"uint256","nodeType":"ElementaryTypeName","src":"16920:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16895:36:28"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"16946:0:28"},"scope":19517,"src":"16883:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13347,"nodeType":"Block","src":"17122:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":13340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17172:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":13341,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13330,"src":"17203:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13342,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13332,"src":"17207:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13343,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13334,"src":"17211:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17148:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17152:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17148:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17148:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13337,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17132:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13346,"nodeType":"ExpressionStatement","src":"17132:83:28"}]},"id":13348,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17062:3:28","nodeType":"FunctionDefinition","parameters":{"id":13335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13330,"mutability":"mutable","name":"p0","nameLocation":"17074:2:28","nodeType":"VariableDeclaration","scope":13348,"src":"17066:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13329,"name":"address","nodeType":"ElementaryTypeName","src":"17066:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13332,"mutability":"mutable","name":"p1","nameLocation":"17086:2:28","nodeType":"VariableDeclaration","scope":13348,"src":"17078:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13331,"name":"uint256","nodeType":"ElementaryTypeName","src":"17078:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13334,"mutability":"mutable","name":"p2","nameLocation":"17104:2:28","nodeType":"VariableDeclaration","scope":13348,"src":"17090:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13333,"name":"string","nodeType":"ElementaryTypeName","src":"17090:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17065:42:28"},"returnParameters":{"id":13336,"nodeType":"ParameterList","parameters":[],"src":"17122:0:28"},"scope":19517,"src":"17053:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13367,"nodeType":"Block","src":"17288:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":13360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17338:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":13361,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"17367:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13362,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13352,"src":"17371:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13363,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"17375:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17314:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17318:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17314:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17314:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17298:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17298:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13366,"nodeType":"ExpressionStatement","src":"17298:81:28"}]},"id":13368,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17237:3:28","nodeType":"FunctionDefinition","parameters":{"id":13355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13350,"mutability":"mutable","name":"p0","nameLocation":"17249:2:28","nodeType":"VariableDeclaration","scope":13368,"src":"17241:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13349,"name":"address","nodeType":"ElementaryTypeName","src":"17241:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13352,"mutability":"mutable","name":"p1","nameLocation":"17261:2:28","nodeType":"VariableDeclaration","scope":13368,"src":"17253:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13351,"name":"uint256","nodeType":"ElementaryTypeName","src":"17253:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13354,"mutability":"mutable","name":"p2","nameLocation":"17270:2:28","nodeType":"VariableDeclaration","scope":13368,"src":"17265:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13353,"name":"bool","nodeType":"ElementaryTypeName","src":"17265:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17240:33:28"},"returnParameters":{"id":13356,"nodeType":"ParameterList","parameters":[],"src":"17288:0:28"},"scope":19517,"src":"17228:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13387,"nodeType":"Block","src":"17455:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":13380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17505:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":13381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"17537:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13372,"src":"17541:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13374,"src":"17545:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17481:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17485:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17481:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17481:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17465:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17465:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13386,"nodeType":"ExpressionStatement","src":"17465:84:28"}]},"id":13388,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17401:3:28","nodeType":"FunctionDefinition","parameters":{"id":13375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13370,"mutability":"mutable","name":"p0","nameLocation":"17413:2:28","nodeType":"VariableDeclaration","scope":13388,"src":"17405:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13369,"name":"address","nodeType":"ElementaryTypeName","src":"17405:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13372,"mutability":"mutable","name":"p1","nameLocation":"17425:2:28","nodeType":"VariableDeclaration","scope":13388,"src":"17417:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13371,"name":"uint256","nodeType":"ElementaryTypeName","src":"17417:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13374,"mutability":"mutable","name":"p2","nameLocation":"17437:2:28","nodeType":"VariableDeclaration","scope":13388,"src":"17429:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13373,"name":"address","nodeType":"ElementaryTypeName","src":"17429:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17404:36:28"},"returnParameters":{"id":13376,"nodeType":"ParameterList","parameters":[],"src":"17455:0:28"},"scope":19517,"src":"17392:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13407,"nodeType":"Block","src":"17631:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":13400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17681:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":13401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"17712:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"17716:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"17720:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17657:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17661:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17657:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17641:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13406,"nodeType":"ExpressionStatement","src":"17641:83:28"}]},"id":13408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17571:3:28","nodeType":"FunctionDefinition","parameters":{"id":13395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13390,"mutability":"mutable","name":"p0","nameLocation":"17583:2:28","nodeType":"VariableDeclaration","scope":13408,"src":"17575:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13389,"name":"address","nodeType":"ElementaryTypeName","src":"17575:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13392,"mutability":"mutable","name":"p1","nameLocation":"17601:2:28","nodeType":"VariableDeclaration","scope":13408,"src":"17587:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13391,"name":"string","nodeType":"ElementaryTypeName","src":"17587:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13394,"mutability":"mutable","name":"p2","nameLocation":"17613:2:28","nodeType":"VariableDeclaration","scope":13408,"src":"17605:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13393,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17574:42:28"},"returnParameters":{"id":13396,"nodeType":"ParameterList","parameters":[],"src":"17631:0:28"},"scope":19517,"src":"17562:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13427,"nodeType":"Block","src":"17812:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":13420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17862:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":13421,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13410,"src":"17892:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13422,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"17896:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13423,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13414,"src":"17900:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17838:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17842:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17838:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17838:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17822:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17822:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13426,"nodeType":"ExpressionStatement","src":"17822:82:28"}]},"id":13428,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17746:3:28","nodeType":"FunctionDefinition","parameters":{"id":13415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13410,"mutability":"mutable","name":"p0","nameLocation":"17758:2:28","nodeType":"VariableDeclaration","scope":13428,"src":"17750:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13409,"name":"address","nodeType":"ElementaryTypeName","src":"17750:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13412,"mutability":"mutable","name":"p1","nameLocation":"17776:2:28","nodeType":"VariableDeclaration","scope":13428,"src":"17762:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13411,"name":"string","nodeType":"ElementaryTypeName","src":"17762:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13414,"mutability":"mutable","name":"p2","nameLocation":"17794:2:28","nodeType":"VariableDeclaration","scope":13428,"src":"17780:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13413,"name":"string","nodeType":"ElementaryTypeName","src":"17780:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17749:48:28"},"returnParameters":{"id":13416,"nodeType":"ParameterList","parameters":[],"src":"17812:0:28"},"scope":19517,"src":"17737:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13447,"nodeType":"Block","src":"17983:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":13440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18033:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":13441,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13430,"src":"18061:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13442,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13432,"src":"18065:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13443,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"18069:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18009:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18013:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18009:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18009:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17993:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17993:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13446,"nodeType":"ExpressionStatement","src":"17993:80:28"}]},"id":13448,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17926:3:28","nodeType":"FunctionDefinition","parameters":{"id":13435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13430,"mutability":"mutable","name":"p0","nameLocation":"17938:2:28","nodeType":"VariableDeclaration","scope":13448,"src":"17930:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13429,"name":"address","nodeType":"ElementaryTypeName","src":"17930:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13432,"mutability":"mutable","name":"p1","nameLocation":"17956:2:28","nodeType":"VariableDeclaration","scope":13448,"src":"17942:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13431,"name":"string","nodeType":"ElementaryTypeName","src":"17942:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13434,"mutability":"mutable","name":"p2","nameLocation":"17965:2:28","nodeType":"VariableDeclaration","scope":13448,"src":"17960:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13433,"name":"bool","nodeType":"ElementaryTypeName","src":"17960:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17929:39:28"},"returnParameters":{"id":13436,"nodeType":"ParameterList","parameters":[],"src":"17983:0:28"},"scope":19517,"src":"17917:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13467,"nodeType":"Block","src":"18155:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":13460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18205:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":13461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"18236:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13452,"src":"18240:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13454,"src":"18244:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18181:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18185:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18181:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18181:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18165:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13466,"nodeType":"ExpressionStatement","src":"18165:83:28"}]},"id":13468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18095:3:28","nodeType":"FunctionDefinition","parameters":{"id":13455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13450,"mutability":"mutable","name":"p0","nameLocation":"18107:2:28","nodeType":"VariableDeclaration","scope":13468,"src":"18099:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13449,"name":"address","nodeType":"ElementaryTypeName","src":"18099:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13452,"mutability":"mutable","name":"p1","nameLocation":"18125:2:28","nodeType":"VariableDeclaration","scope":13468,"src":"18111:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13451,"name":"string","nodeType":"ElementaryTypeName","src":"18111:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13454,"mutability":"mutable","name":"p2","nameLocation":"18137:2:28","nodeType":"VariableDeclaration","scope":13468,"src":"18129:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13453,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18098:42:28"},"returnParameters":{"id":13456,"nodeType":"ParameterList","parameters":[],"src":"18155:0:28"},"scope":19517,"src":"18086:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13487,"nodeType":"Block","src":"18321:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":13480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18371:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":13481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13470,"src":"18400:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13472,"src":"18404:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13474,"src":"18408:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18347:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18351:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18347:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18347:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18331:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13486,"nodeType":"ExpressionStatement","src":"18331:81:28"}]},"id":13488,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18270:3:28","nodeType":"FunctionDefinition","parameters":{"id":13475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13470,"mutability":"mutable","name":"p0","nameLocation":"18282:2:28","nodeType":"VariableDeclaration","scope":13488,"src":"18274:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13469,"name":"address","nodeType":"ElementaryTypeName","src":"18274:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13472,"mutability":"mutable","name":"p1","nameLocation":"18291:2:28","nodeType":"VariableDeclaration","scope":13488,"src":"18286:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13471,"name":"bool","nodeType":"ElementaryTypeName","src":"18286:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13474,"mutability":"mutable","name":"p2","nameLocation":"18303:2:28","nodeType":"VariableDeclaration","scope":13488,"src":"18295:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13473,"name":"uint256","nodeType":"ElementaryTypeName","src":"18295:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18273:33:28"},"returnParameters":{"id":13476,"nodeType":"ParameterList","parameters":[],"src":"18321:0:28"},"scope":19517,"src":"18261:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13507,"nodeType":"Block","src":"18491:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":13500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18541:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":13501,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13490,"src":"18569:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13502,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"18573:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13503,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"18577:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13498,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18517:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18521:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18517:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18501:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18501:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13506,"nodeType":"ExpressionStatement","src":"18501:80:28"}]},"id":13508,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18434:3:28","nodeType":"FunctionDefinition","parameters":{"id":13495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13490,"mutability":"mutable","name":"p0","nameLocation":"18446:2:28","nodeType":"VariableDeclaration","scope":13508,"src":"18438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13489,"name":"address","nodeType":"ElementaryTypeName","src":"18438:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13492,"mutability":"mutable","name":"p1","nameLocation":"18455:2:28","nodeType":"VariableDeclaration","scope":13508,"src":"18450:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13491,"name":"bool","nodeType":"ElementaryTypeName","src":"18450:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13494,"mutability":"mutable","name":"p2","nameLocation":"18473:2:28","nodeType":"VariableDeclaration","scope":13508,"src":"18459:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13493,"name":"string","nodeType":"ElementaryTypeName","src":"18459:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18437:39:28"},"returnParameters":{"id":13496,"nodeType":"ParameterList","parameters":[],"src":"18491:0:28"},"scope":19517,"src":"18425:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13527,"nodeType":"Block","src":"18651:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":13520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18701:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":13521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"18727:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13512,"src":"18731:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13514,"src":"18735:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18677:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18681:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18677:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18677:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18661:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18661:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13526,"nodeType":"ExpressionStatement","src":"18661:78:28"}]},"id":13528,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18603:3:28","nodeType":"FunctionDefinition","parameters":{"id":13515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13510,"mutability":"mutable","name":"p0","nameLocation":"18615:2:28","nodeType":"VariableDeclaration","scope":13528,"src":"18607:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13509,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13512,"mutability":"mutable","name":"p1","nameLocation":"18624:2:28","nodeType":"VariableDeclaration","scope":13528,"src":"18619:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13511,"name":"bool","nodeType":"ElementaryTypeName","src":"18619:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13514,"mutability":"mutable","name":"p2","nameLocation":"18633:2:28","nodeType":"VariableDeclaration","scope":13528,"src":"18628:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13513,"name":"bool","nodeType":"ElementaryTypeName","src":"18628:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18606:30:28"},"returnParameters":{"id":13516,"nodeType":"ParameterList","parameters":[],"src":"18651:0:28"},"scope":19517,"src":"18594:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13547,"nodeType":"Block","src":"18812:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":13540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18862:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":13541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"18891:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"18895:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13534,"src":"18899:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18838:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18838:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18838:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18822:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18822:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13546,"nodeType":"ExpressionStatement","src":"18822:81:28"}]},"id":13548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18761:3:28","nodeType":"FunctionDefinition","parameters":{"id":13535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13530,"mutability":"mutable","name":"p0","nameLocation":"18773:2:28","nodeType":"VariableDeclaration","scope":13548,"src":"18765:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13529,"name":"address","nodeType":"ElementaryTypeName","src":"18765:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13532,"mutability":"mutable","name":"p1","nameLocation":"18782:2:28","nodeType":"VariableDeclaration","scope":13548,"src":"18777:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13531,"name":"bool","nodeType":"ElementaryTypeName","src":"18777:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"p2","nameLocation":"18794:2:28","nodeType":"VariableDeclaration","scope":13548,"src":"18786:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13533,"name":"address","nodeType":"ElementaryTypeName","src":"18786:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18764:33:28"},"returnParameters":{"id":13536,"nodeType":"ParameterList","parameters":[],"src":"18812:0:28"},"scope":19517,"src":"18752:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13567,"nodeType":"Block","src":"18979:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":13560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19029:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":13561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13550,"src":"19061:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"19065:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13554,"src":"19069:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19005:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19009:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19005:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19005:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18989:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18989:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13566,"nodeType":"ExpressionStatement","src":"18989:84:28"}]},"id":13568,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18925:3:28","nodeType":"FunctionDefinition","parameters":{"id":13555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13550,"mutability":"mutable","name":"p0","nameLocation":"18937:2:28","nodeType":"VariableDeclaration","scope":13568,"src":"18929:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13549,"name":"address","nodeType":"ElementaryTypeName","src":"18929:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13552,"mutability":"mutable","name":"p1","nameLocation":"18949:2:28","nodeType":"VariableDeclaration","scope":13568,"src":"18941:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13551,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13554,"mutability":"mutable","name":"p2","nameLocation":"18961:2:28","nodeType":"VariableDeclaration","scope":13568,"src":"18953:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13553,"name":"uint256","nodeType":"ElementaryTypeName","src":"18953:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18928:36:28"},"returnParameters":{"id":13556,"nodeType":"ParameterList","parameters":[],"src":"18979:0:28"},"scope":19517,"src":"18916:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13587,"nodeType":"Block","src":"19155:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":13580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19205:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":13581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13570,"src":"19236:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13572,"src":"19240:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"19244:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19181:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19185:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19181:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19181:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19165:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19165:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13586,"nodeType":"ExpressionStatement","src":"19165:83:28"}]},"id":13588,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19095:3:28","nodeType":"FunctionDefinition","parameters":{"id":13575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13570,"mutability":"mutable","name":"p0","nameLocation":"19107:2:28","nodeType":"VariableDeclaration","scope":13588,"src":"19099:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13569,"name":"address","nodeType":"ElementaryTypeName","src":"19099:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13572,"mutability":"mutable","name":"p1","nameLocation":"19119:2:28","nodeType":"VariableDeclaration","scope":13588,"src":"19111:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13571,"name":"address","nodeType":"ElementaryTypeName","src":"19111:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13574,"mutability":"mutable","name":"p2","nameLocation":"19137:2:28","nodeType":"VariableDeclaration","scope":13588,"src":"19123:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13573,"name":"string","nodeType":"ElementaryTypeName","src":"19123:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19098:42:28"},"returnParameters":{"id":13576,"nodeType":"ParameterList","parameters":[],"src":"19155:0:28"},"scope":19517,"src":"19086:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13607,"nodeType":"Block","src":"19321:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":13600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19371:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":13601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13590,"src":"19400:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13592,"src":"19404:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13594,"src":"19408:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19347:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19351:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19347:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19347:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19331:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19331:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13606,"nodeType":"ExpressionStatement","src":"19331:81:28"}]},"id":13608,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19270:3:28","nodeType":"FunctionDefinition","parameters":{"id":13595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13590,"mutability":"mutable","name":"p0","nameLocation":"19282:2:28","nodeType":"VariableDeclaration","scope":13608,"src":"19274:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13589,"name":"address","nodeType":"ElementaryTypeName","src":"19274:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13592,"mutability":"mutable","name":"p1","nameLocation":"19294:2:28","nodeType":"VariableDeclaration","scope":13608,"src":"19286:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13591,"name":"address","nodeType":"ElementaryTypeName","src":"19286:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13594,"mutability":"mutable","name":"p2","nameLocation":"19303:2:28","nodeType":"VariableDeclaration","scope":13608,"src":"19298:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13593,"name":"bool","nodeType":"ElementaryTypeName","src":"19298:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19273:33:28"},"returnParameters":{"id":13596,"nodeType":"ParameterList","parameters":[],"src":"19321:0:28"},"scope":19517,"src":"19261:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13627,"nodeType":"Block","src":"19488:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":13620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19538:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":13621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13610,"src":"19570:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13612,"src":"19574:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13614,"src":"19578:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19514:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19518:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19514:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19514:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19498:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19498:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13626,"nodeType":"ExpressionStatement","src":"19498:84:28"}]},"id":13628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19434:3:28","nodeType":"FunctionDefinition","parameters":{"id":13615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13610,"mutability":"mutable","name":"p0","nameLocation":"19446:2:28","nodeType":"VariableDeclaration","scope":13628,"src":"19438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13609,"name":"address","nodeType":"ElementaryTypeName","src":"19438:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13612,"mutability":"mutable","name":"p1","nameLocation":"19458:2:28","nodeType":"VariableDeclaration","scope":13628,"src":"19450:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13611,"name":"address","nodeType":"ElementaryTypeName","src":"19450:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13614,"mutability":"mutable","name":"p2","nameLocation":"19470:2:28","nodeType":"VariableDeclaration","scope":13628,"src":"19462:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13613,"name":"address","nodeType":"ElementaryTypeName","src":"19462:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19437:36:28"},"returnParameters":{"id":13616,"nodeType":"ParameterList","parameters":[],"src":"19488:0:28"},"scope":19517,"src":"19425:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13650,"nodeType":"Block","src":"19670:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":13642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19720:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":13643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13630,"src":"19760:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13644,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13632,"src":"19764:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13645,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13634,"src":"19768:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13646,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"19772:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19696:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19700:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19696:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19680:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19680:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13649,"nodeType":"ExpressionStatement","src":"19680:96:28"}]},"id":13651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19604:3:28","nodeType":"FunctionDefinition","parameters":{"id":13637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13630,"mutability":"mutable","name":"p0","nameLocation":"19616:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19608:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13629,"name":"uint256","nodeType":"ElementaryTypeName","src":"19608:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13632,"mutability":"mutable","name":"p1","nameLocation":"19628:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19620:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13631,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13634,"mutability":"mutable","name":"p2","nameLocation":"19640:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19632:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13633,"name":"uint256","nodeType":"ElementaryTypeName","src":"19632:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13636,"mutability":"mutable","name":"p3","nameLocation":"19652:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19644:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13635,"name":"uint256","nodeType":"ElementaryTypeName","src":"19644:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19607:48:28"},"returnParameters":{"id":13638,"nodeType":"ParameterList","parameters":[],"src":"19670:0:28"},"scope":19517,"src":"19595:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13673,"nodeType":"Block","src":"19870:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":13665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19920:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":13666,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13653,"src":"19959:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13667,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13655,"src":"19963:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13668,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"19967:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13669,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13659,"src":"19971:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19896:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19900:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19896:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19896:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13662,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19880:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19880:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13672,"nodeType":"ExpressionStatement","src":"19880:95:28"}]},"id":13674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19798:3:28","nodeType":"FunctionDefinition","parameters":{"id":13660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13653,"mutability":"mutable","name":"p0","nameLocation":"19810:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19802:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13652,"name":"uint256","nodeType":"ElementaryTypeName","src":"19802:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13655,"mutability":"mutable","name":"p1","nameLocation":"19822:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19814:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13654,"name":"uint256","nodeType":"ElementaryTypeName","src":"19814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13657,"mutability":"mutable","name":"p2","nameLocation":"19834:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19826:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13656,"name":"uint256","nodeType":"ElementaryTypeName","src":"19826:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13659,"mutability":"mutable","name":"p3","nameLocation":"19852:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19838:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13658,"name":"string","nodeType":"ElementaryTypeName","src":"19838:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19801:54:28"},"returnParameters":{"id":13661,"nodeType":"ParameterList","parameters":[],"src":"19870:0:28"},"scope":19517,"src":"19789:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13696,"nodeType":"Block","src":"20060:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":13688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20110:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":13689,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13676,"src":"20147:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13690,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13678,"src":"20151:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13691,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"20155:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13692,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"20159:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13686,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20086:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20090:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20086:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20086:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13685,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20070:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20070:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13695,"nodeType":"ExpressionStatement","src":"20070:93:28"}]},"id":13697,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19997:3:28","nodeType":"FunctionDefinition","parameters":{"id":13683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13676,"mutability":"mutable","name":"p0","nameLocation":"20009:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20001:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13675,"name":"uint256","nodeType":"ElementaryTypeName","src":"20001:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13678,"mutability":"mutable","name":"p1","nameLocation":"20021:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20013:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13677,"name":"uint256","nodeType":"ElementaryTypeName","src":"20013:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13680,"mutability":"mutable","name":"p2","nameLocation":"20033:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20025:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13679,"name":"uint256","nodeType":"ElementaryTypeName","src":"20025:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13682,"mutability":"mutable","name":"p3","nameLocation":"20042:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20037:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13681,"name":"bool","nodeType":"ElementaryTypeName","src":"20037:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20000:45:28"},"returnParameters":{"id":13684,"nodeType":"ParameterList","parameters":[],"src":"20060:0:28"},"scope":19517,"src":"19988:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13719,"nodeType":"Block","src":"20251:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":13711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20301:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":13712,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"20341:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13713,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"20345:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13714,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13703,"src":"20349:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13715,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"20353:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20277:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20281:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20277:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20277:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13708,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20261:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20261:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13718,"nodeType":"ExpressionStatement","src":"20261:96:28"}]},"id":13720,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20185:3:28","nodeType":"FunctionDefinition","parameters":{"id":13706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13699,"mutability":"mutable","name":"p0","nameLocation":"20197:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20189:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13698,"name":"uint256","nodeType":"ElementaryTypeName","src":"20189:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13701,"mutability":"mutable","name":"p1","nameLocation":"20209:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20201:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13700,"name":"uint256","nodeType":"ElementaryTypeName","src":"20201:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13703,"mutability":"mutable","name":"p2","nameLocation":"20221:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20213:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13702,"name":"uint256","nodeType":"ElementaryTypeName","src":"20213:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13705,"mutability":"mutable","name":"p3","nameLocation":"20233:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20225:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13704,"name":"address","nodeType":"ElementaryTypeName","src":"20225:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20188:48:28"},"returnParameters":{"id":13707,"nodeType":"ParameterList","parameters":[],"src":"20251:0:28"},"scope":19517,"src":"20176:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13742,"nodeType":"Block","src":"20451:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":13734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20501:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":13735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13722,"src":"20540:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13736,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13724,"src":"20544:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13737,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13726,"src":"20548:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13738,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13728,"src":"20552:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20477:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20481:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20477:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20477:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20461:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20461:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13741,"nodeType":"ExpressionStatement","src":"20461:95:28"}]},"id":13743,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20379:3:28","nodeType":"FunctionDefinition","parameters":{"id":13729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13722,"mutability":"mutable","name":"p0","nameLocation":"20391:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20383:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13721,"name":"uint256","nodeType":"ElementaryTypeName","src":"20383:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13724,"mutability":"mutable","name":"p1","nameLocation":"20403:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20395:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13723,"name":"uint256","nodeType":"ElementaryTypeName","src":"20395:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13726,"mutability":"mutable","name":"p2","nameLocation":"20421:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20407:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13725,"name":"string","nodeType":"ElementaryTypeName","src":"20407:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13728,"mutability":"mutable","name":"p3","nameLocation":"20433:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20425:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13727,"name":"uint256","nodeType":"ElementaryTypeName","src":"20425:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20382:54:28"},"returnParameters":{"id":13730,"nodeType":"ParameterList","parameters":[],"src":"20451:0:28"},"scope":19517,"src":"20370:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13765,"nodeType":"Block","src":"20656:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":13757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20706:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":13758,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13745,"src":"20744:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13759,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"20748:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13760,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13749,"src":"20752:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13761,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13751,"src":"20756:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20682:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20686:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20682:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20682:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13754,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20666:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13764,"nodeType":"ExpressionStatement","src":"20666:94:28"}]},"id":13766,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20578:3:28","nodeType":"FunctionDefinition","parameters":{"id":13752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13745,"mutability":"mutable","name":"p0","nameLocation":"20590:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20582:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13744,"name":"uint256","nodeType":"ElementaryTypeName","src":"20582:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13747,"mutability":"mutable","name":"p1","nameLocation":"20602:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20594:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13746,"name":"uint256","nodeType":"ElementaryTypeName","src":"20594:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13749,"mutability":"mutable","name":"p2","nameLocation":"20620:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20606:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13748,"name":"string","nodeType":"ElementaryTypeName","src":"20606:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13751,"mutability":"mutable","name":"p3","nameLocation":"20638:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20624:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13750,"name":"string","nodeType":"ElementaryTypeName","src":"20624:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20581:60:28"},"returnParameters":{"id":13753,"nodeType":"ParameterList","parameters":[],"src":"20656:0:28"},"scope":19517,"src":"20569:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13788,"nodeType":"Block","src":"20851:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":13780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20901:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":13781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13768,"src":"20937:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13770,"src":"20941:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13772,"src":"20945:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13784,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13774,"src":"20949:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20877:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20881:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20877:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20877:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20861:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20861:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13787,"nodeType":"ExpressionStatement","src":"20861:92:28"}]},"id":13789,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20782:3:28","nodeType":"FunctionDefinition","parameters":{"id":13775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13768,"mutability":"mutable","name":"p0","nameLocation":"20794:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20786:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13767,"name":"uint256","nodeType":"ElementaryTypeName","src":"20786:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13770,"mutability":"mutable","name":"p1","nameLocation":"20806:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20798:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13769,"name":"uint256","nodeType":"ElementaryTypeName","src":"20798:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"p2","nameLocation":"20824:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20810:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13771,"name":"string","nodeType":"ElementaryTypeName","src":"20810:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13774,"mutability":"mutable","name":"p3","nameLocation":"20833:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20828:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13773,"name":"bool","nodeType":"ElementaryTypeName","src":"20828:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20785:51:28"},"returnParameters":{"id":13776,"nodeType":"ParameterList","parameters":[],"src":"20851:0:28"},"scope":19517,"src":"20773:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13811,"nodeType":"Block","src":"21047:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":13803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21097:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":13804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"21136:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13793,"src":"21140:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13795,"src":"21144:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13807,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13797,"src":"21148:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21073:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21077:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21073:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21073:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21057:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21057:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13810,"nodeType":"ExpressionStatement","src":"21057:95:28"}]},"id":13812,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20975:3:28","nodeType":"FunctionDefinition","parameters":{"id":13798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13791,"mutability":"mutable","name":"p0","nameLocation":"20987:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"20979:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13790,"name":"uint256","nodeType":"ElementaryTypeName","src":"20979:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13793,"mutability":"mutable","name":"p1","nameLocation":"20999:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"20991:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13792,"name":"uint256","nodeType":"ElementaryTypeName","src":"20991:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13795,"mutability":"mutable","name":"p2","nameLocation":"21017:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"21003:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13794,"name":"string","nodeType":"ElementaryTypeName","src":"21003:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13797,"mutability":"mutable","name":"p3","nameLocation":"21029:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"21021:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13796,"name":"address","nodeType":"ElementaryTypeName","src":"21021:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20978:54:28"},"returnParameters":{"id":13799,"nodeType":"ParameterList","parameters":[],"src":"21047:0:28"},"scope":19517,"src":"20966:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13834,"nodeType":"Block","src":"21237:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":13826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21287:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":13827,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13814,"src":"21324:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13828,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13816,"src":"21328:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13829,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13818,"src":"21332:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13830,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13820,"src":"21336:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21263:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21263:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21263:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21247:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21247:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13833,"nodeType":"ExpressionStatement","src":"21247:93:28"}]},"id":13835,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21174:3:28","nodeType":"FunctionDefinition","parameters":{"id":13821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13814,"mutability":"mutable","name":"p0","nameLocation":"21186:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21178:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13813,"name":"uint256","nodeType":"ElementaryTypeName","src":"21178:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13816,"mutability":"mutable","name":"p1","nameLocation":"21198:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21190:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13815,"name":"uint256","nodeType":"ElementaryTypeName","src":"21190:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"p2","nameLocation":"21207:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21202:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13817,"name":"bool","nodeType":"ElementaryTypeName","src":"21202:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13820,"mutability":"mutable","name":"p3","nameLocation":"21219:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21211:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13819,"name":"uint256","nodeType":"ElementaryTypeName","src":"21211:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21177:45:28"},"returnParameters":{"id":13822,"nodeType":"ParameterList","parameters":[],"src":"21237:0:28"},"scope":19517,"src":"21165:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13857,"nodeType":"Block","src":"21431:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":13849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21481:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":13850,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"21517:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13851,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"21521:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13852,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13841,"src":"21525:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13853,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"21529:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21457:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21461:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21457:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21457:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13846,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21441:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21441:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13856,"nodeType":"ExpressionStatement","src":"21441:92:28"}]},"id":13858,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21362:3:28","nodeType":"FunctionDefinition","parameters":{"id":13844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13837,"mutability":"mutable","name":"p0","nameLocation":"21374:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21366:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13836,"name":"uint256","nodeType":"ElementaryTypeName","src":"21366:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13839,"mutability":"mutable","name":"p1","nameLocation":"21386:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21378:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13838,"name":"uint256","nodeType":"ElementaryTypeName","src":"21378:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13841,"mutability":"mutable","name":"p2","nameLocation":"21395:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21390:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13840,"name":"bool","nodeType":"ElementaryTypeName","src":"21390:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13843,"mutability":"mutable","name":"p3","nameLocation":"21413:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21399:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13842,"name":"string","nodeType":"ElementaryTypeName","src":"21399:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21365:51:28"},"returnParameters":{"id":13845,"nodeType":"ParameterList","parameters":[],"src":"21431:0:28"},"scope":19517,"src":"21353:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13880,"nodeType":"Block","src":"21615:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":13872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21665:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":13873,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13860,"src":"21699:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13874,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13862,"src":"21703:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13875,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13864,"src":"21707:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13876,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13866,"src":"21711:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13870,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21641:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21645:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21641:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21641:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13869,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21625:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21625:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13879,"nodeType":"ExpressionStatement","src":"21625:90:28"}]},"id":13881,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21555:3:28","nodeType":"FunctionDefinition","parameters":{"id":13867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13860,"mutability":"mutable","name":"p0","nameLocation":"21567:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21559:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13859,"name":"uint256","nodeType":"ElementaryTypeName","src":"21559:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13862,"mutability":"mutable","name":"p1","nameLocation":"21579:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21571:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13861,"name":"uint256","nodeType":"ElementaryTypeName","src":"21571:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13864,"mutability":"mutable","name":"p2","nameLocation":"21588:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21583:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13863,"name":"bool","nodeType":"ElementaryTypeName","src":"21583:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13866,"mutability":"mutable","name":"p3","nameLocation":"21597:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21592:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13865,"name":"bool","nodeType":"ElementaryTypeName","src":"21592:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21558:42:28"},"returnParameters":{"id":13868,"nodeType":"ParameterList","parameters":[],"src":"21615:0:28"},"scope":19517,"src":"21546:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13903,"nodeType":"Block","src":"21800:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":13895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21850:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":13896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13883,"src":"21887:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13897,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13885,"src":"21891:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13898,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"21895:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13899,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13889,"src":"21899:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21826:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21830:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21826:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21826:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21810:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21810:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13902,"nodeType":"ExpressionStatement","src":"21810:93:28"}]},"id":13904,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21737:3:28","nodeType":"FunctionDefinition","parameters":{"id":13890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13883,"mutability":"mutable","name":"p0","nameLocation":"21749:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21741:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13882,"name":"uint256","nodeType":"ElementaryTypeName","src":"21741:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13885,"mutability":"mutable","name":"p1","nameLocation":"21761:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21753:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13884,"name":"uint256","nodeType":"ElementaryTypeName","src":"21753:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13887,"mutability":"mutable","name":"p2","nameLocation":"21770:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21765:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13886,"name":"bool","nodeType":"ElementaryTypeName","src":"21765:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13889,"mutability":"mutable","name":"p3","nameLocation":"21782:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13888,"name":"address","nodeType":"ElementaryTypeName","src":"21774:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:45:28"},"returnParameters":{"id":13891,"nodeType":"ParameterList","parameters":[],"src":"21800:0:28"},"scope":19517,"src":"21728:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13926,"nodeType":"Block","src":"21991:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":13918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22041:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":13919,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13906,"src":"22081:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13920,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13908,"src":"22085:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13921,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13910,"src":"22089:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13922,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"22093:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22017:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22021:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22017:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22017:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13915,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22001:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22001:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13925,"nodeType":"ExpressionStatement","src":"22001:96:28"}]},"id":13927,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21925:3:28","nodeType":"FunctionDefinition","parameters":{"id":13913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13906,"mutability":"mutable","name":"p0","nameLocation":"21937:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21929:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13905,"name":"uint256","nodeType":"ElementaryTypeName","src":"21929:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13908,"mutability":"mutable","name":"p1","nameLocation":"21949:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21941:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13907,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13910,"mutability":"mutable","name":"p2","nameLocation":"21961:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21953:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13909,"name":"address","nodeType":"ElementaryTypeName","src":"21953:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13912,"mutability":"mutable","name":"p3","nameLocation":"21973:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21965:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13911,"name":"uint256","nodeType":"ElementaryTypeName","src":"21965:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21928:48:28"},"returnParameters":{"id":13914,"nodeType":"ParameterList","parameters":[],"src":"21991:0:28"},"scope":19517,"src":"21916:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13949,"nodeType":"Block","src":"22191:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":13941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22241:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":13942,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"22280:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13943,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13931,"src":"22284:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13944,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"22288:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13945,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"22292:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22217:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22221:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22217:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22217:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13938,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22201:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22201:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13948,"nodeType":"ExpressionStatement","src":"22201:95:28"}]},"id":13950,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22119:3:28","nodeType":"FunctionDefinition","parameters":{"id":13936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13929,"mutability":"mutable","name":"p0","nameLocation":"22131:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22123:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13928,"name":"uint256","nodeType":"ElementaryTypeName","src":"22123:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13931,"mutability":"mutable","name":"p1","nameLocation":"22143:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22135:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13930,"name":"uint256","nodeType":"ElementaryTypeName","src":"22135:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13933,"mutability":"mutable","name":"p2","nameLocation":"22155:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22147:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13932,"name":"address","nodeType":"ElementaryTypeName","src":"22147:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13935,"mutability":"mutable","name":"p3","nameLocation":"22173:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22159:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13934,"name":"string","nodeType":"ElementaryTypeName","src":"22159:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22122:54:28"},"returnParameters":{"id":13937,"nodeType":"ParameterList","parameters":[],"src":"22191:0:28"},"scope":19517,"src":"22110:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13972,"nodeType":"Block","src":"22381:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":13964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22431:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":13965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"22468:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13966,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"22472:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13967,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13956,"src":"22476:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13968,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13958,"src":"22480:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22407:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22411:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22407:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22407:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22391:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22391:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13971,"nodeType":"ExpressionStatement","src":"22391:93:28"}]},"id":13973,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22318:3:28","nodeType":"FunctionDefinition","parameters":{"id":13959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13952,"mutability":"mutable","name":"p0","nameLocation":"22330:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22322:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13951,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13954,"mutability":"mutable","name":"p1","nameLocation":"22342:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22334:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13953,"name":"uint256","nodeType":"ElementaryTypeName","src":"22334:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13956,"mutability":"mutable","name":"p2","nameLocation":"22354:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22346:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13955,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13958,"mutability":"mutable","name":"p3","nameLocation":"22363:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22358:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13957,"name":"bool","nodeType":"ElementaryTypeName","src":"22358:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22321:45:28"},"returnParameters":{"id":13960,"nodeType":"ParameterList","parameters":[],"src":"22381:0:28"},"scope":19517,"src":"22309:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13995,"nodeType":"Block","src":"22572:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":13987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22622:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":13988,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13975,"src":"22662:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13989,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13977,"src":"22666:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13990,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13979,"src":"22670:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13991,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13981,"src":"22674:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22598:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22602:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22598:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22598:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13984,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22582:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22582:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13994,"nodeType":"ExpressionStatement","src":"22582:96:28"}]},"id":13996,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22506:3:28","nodeType":"FunctionDefinition","parameters":{"id":13982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13975,"mutability":"mutable","name":"p0","nameLocation":"22518:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22510:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13974,"name":"uint256","nodeType":"ElementaryTypeName","src":"22510:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13977,"mutability":"mutable","name":"p1","nameLocation":"22530:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22522:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13976,"name":"uint256","nodeType":"ElementaryTypeName","src":"22522:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13979,"mutability":"mutable","name":"p2","nameLocation":"22542:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22534:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13978,"name":"address","nodeType":"ElementaryTypeName","src":"22534:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13981,"mutability":"mutable","name":"p3","nameLocation":"22554:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22546:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13980,"name":"address","nodeType":"ElementaryTypeName","src":"22546:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22509:48:28"},"returnParameters":{"id":13983,"nodeType":"ParameterList","parameters":[],"src":"22572:0:28"},"scope":19517,"src":"22497:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14018,"nodeType":"Block","src":"22772:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":14010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22822:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":14011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"22861:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14012,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14000,"src":"22865:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14013,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14002,"src":"22869:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14014,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"22873:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22798:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22802:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22798:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22798:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22782:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22782:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14017,"nodeType":"ExpressionStatement","src":"22782:95:28"}]},"id":14019,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22700:3:28","nodeType":"FunctionDefinition","parameters":{"id":14005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13998,"mutability":"mutable","name":"p0","nameLocation":"22712:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22704:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13997,"name":"uint256","nodeType":"ElementaryTypeName","src":"22704:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14000,"mutability":"mutable","name":"p1","nameLocation":"22730:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22716:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13999,"name":"string","nodeType":"ElementaryTypeName","src":"22716:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14002,"mutability":"mutable","name":"p2","nameLocation":"22742:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22734:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14001,"name":"uint256","nodeType":"ElementaryTypeName","src":"22734:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14004,"mutability":"mutable","name":"p3","nameLocation":"22754:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22746:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14003,"name":"uint256","nodeType":"ElementaryTypeName","src":"22746:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22703:54:28"},"returnParameters":{"id":14006,"nodeType":"ParameterList","parameters":[],"src":"22772:0:28"},"scope":19517,"src":"22691:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14041,"nodeType":"Block","src":"22977:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":14033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23027:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":14034,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14021,"src":"23065:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14035,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14023,"src":"23069:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14036,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14025,"src":"23073:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14037,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14027,"src":"23077:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23003:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23007:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23003:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23003:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14030,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22987:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22987:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14040,"nodeType":"ExpressionStatement","src":"22987:94:28"}]},"id":14042,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22899:3:28","nodeType":"FunctionDefinition","parameters":{"id":14028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14021,"mutability":"mutable","name":"p0","nameLocation":"22911:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22903:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14020,"name":"uint256","nodeType":"ElementaryTypeName","src":"22903:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14023,"mutability":"mutable","name":"p1","nameLocation":"22929:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22915:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14022,"name":"string","nodeType":"ElementaryTypeName","src":"22915:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14025,"mutability":"mutable","name":"p2","nameLocation":"22941:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22933:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14024,"name":"uint256","nodeType":"ElementaryTypeName","src":"22933:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14027,"mutability":"mutable","name":"p3","nameLocation":"22959:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22945:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14026,"name":"string","nodeType":"ElementaryTypeName","src":"22945:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22902:60:28"},"returnParameters":{"id":14029,"nodeType":"ParameterList","parameters":[],"src":"22977:0:28"},"scope":19517,"src":"22890:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14064,"nodeType":"Block","src":"23172:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":14056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23222:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":14057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14044,"src":"23258:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14058,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14046,"src":"23262:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14059,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14048,"src":"23266:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14060,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14050,"src":"23270:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23198:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23202:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23198:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23198:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23182:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23182:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14063,"nodeType":"ExpressionStatement","src":"23182:92:28"}]},"id":14065,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23103:3:28","nodeType":"FunctionDefinition","parameters":{"id":14051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14044,"mutability":"mutable","name":"p0","nameLocation":"23115:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23107:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14043,"name":"uint256","nodeType":"ElementaryTypeName","src":"23107:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14046,"mutability":"mutable","name":"p1","nameLocation":"23133:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23119:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14045,"name":"string","nodeType":"ElementaryTypeName","src":"23119:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14048,"mutability":"mutable","name":"p2","nameLocation":"23145:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23137:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14047,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14050,"mutability":"mutable","name":"p3","nameLocation":"23154:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23149:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14049,"name":"bool","nodeType":"ElementaryTypeName","src":"23149:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23106:51:28"},"returnParameters":{"id":14052,"nodeType":"ParameterList","parameters":[],"src":"23172:0:28"},"scope":19517,"src":"23094:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14087,"nodeType":"Block","src":"23368:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":14079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23418:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":14080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"23457:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"23461:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14071,"src":"23465:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14083,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14073,"src":"23469:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23394:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23398:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23394:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23394:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23378:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23378:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14086,"nodeType":"ExpressionStatement","src":"23378:95:28"}]},"id":14088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23296:3:28","nodeType":"FunctionDefinition","parameters":{"id":14074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14067,"mutability":"mutable","name":"p0","nameLocation":"23308:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23300:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14066,"name":"uint256","nodeType":"ElementaryTypeName","src":"23300:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14069,"mutability":"mutable","name":"p1","nameLocation":"23326:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23312:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14068,"name":"string","nodeType":"ElementaryTypeName","src":"23312:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14071,"mutability":"mutable","name":"p2","nameLocation":"23338:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23330:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14070,"name":"uint256","nodeType":"ElementaryTypeName","src":"23330:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14073,"mutability":"mutable","name":"p3","nameLocation":"23350:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23342:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14072,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23299:54:28"},"returnParameters":{"id":14075,"nodeType":"ParameterList","parameters":[],"src":"23368:0:28"},"scope":19517,"src":"23287:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14110,"nodeType":"Block","src":"23573:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":14102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23623:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":14103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"23661:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14092,"src":"23665:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14094,"src":"23669:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14106,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14096,"src":"23673:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23599:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23603:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23599:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23599:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23583:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23583:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14109,"nodeType":"ExpressionStatement","src":"23583:94:28"}]},"id":14111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23495:3:28","nodeType":"FunctionDefinition","parameters":{"id":14097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14090,"mutability":"mutable","name":"p0","nameLocation":"23507:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23499:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14089,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14092,"mutability":"mutable","name":"p1","nameLocation":"23525:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23511:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14091,"name":"string","nodeType":"ElementaryTypeName","src":"23511:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14094,"mutability":"mutable","name":"p2","nameLocation":"23543:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23529:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14093,"name":"string","nodeType":"ElementaryTypeName","src":"23529:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14096,"mutability":"mutable","name":"p3","nameLocation":"23555:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23547:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14095,"name":"uint256","nodeType":"ElementaryTypeName","src":"23547:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23498:60:28"},"returnParameters":{"id":14098,"nodeType":"ParameterList","parameters":[],"src":"23573:0:28"},"scope":19517,"src":"23486:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14133,"nodeType":"Block","src":"23783:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":14125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23833:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":14126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14113,"src":"23870:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14115,"src":"23874:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14117,"src":"23878:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14129,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"23882:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23809:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23813:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23809:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23809:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23793:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23793:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14132,"nodeType":"ExpressionStatement","src":"23793:93:28"}]},"id":14134,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23699:3:28","nodeType":"FunctionDefinition","parameters":{"id":14120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14113,"mutability":"mutable","name":"p0","nameLocation":"23711:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23703:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14112,"name":"uint256","nodeType":"ElementaryTypeName","src":"23703:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14115,"mutability":"mutable","name":"p1","nameLocation":"23729:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23715:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14114,"name":"string","nodeType":"ElementaryTypeName","src":"23715:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14117,"mutability":"mutable","name":"p2","nameLocation":"23747:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23733:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14116,"name":"string","nodeType":"ElementaryTypeName","src":"23733:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14119,"mutability":"mutable","name":"p3","nameLocation":"23765:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23751:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14118,"name":"string","nodeType":"ElementaryTypeName","src":"23751:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23702:66:28"},"returnParameters":{"id":14121,"nodeType":"ParameterList","parameters":[],"src":"23783:0:28"},"scope":19517,"src":"23690:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14156,"nodeType":"Block","src":"23983:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":14148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24033:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":14149,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14136,"src":"24068:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14150,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14138,"src":"24072:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14151,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14140,"src":"24076:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14152,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14142,"src":"24080:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24009:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24013:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24009:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14145,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23993:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23993:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14155,"nodeType":"ExpressionStatement","src":"23993:91:28"}]},"id":14157,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23908:3:28","nodeType":"FunctionDefinition","parameters":{"id":14143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14136,"mutability":"mutable","name":"p0","nameLocation":"23920:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23912:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14135,"name":"uint256","nodeType":"ElementaryTypeName","src":"23912:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14138,"mutability":"mutable","name":"p1","nameLocation":"23938:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23924:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14137,"name":"string","nodeType":"ElementaryTypeName","src":"23924:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14140,"mutability":"mutable","name":"p2","nameLocation":"23956:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23942:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14139,"name":"string","nodeType":"ElementaryTypeName","src":"23942:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14142,"mutability":"mutable","name":"p3","nameLocation":"23965:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23960:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14141,"name":"bool","nodeType":"ElementaryTypeName","src":"23960:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23911:57:28"},"returnParameters":{"id":14144,"nodeType":"ParameterList","parameters":[],"src":"23983:0:28"},"scope":19517,"src":"23899:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14179,"nodeType":"Block","src":"24184:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":14171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24234:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":14172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"24272:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14161,"src":"24276:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14174,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14163,"src":"24280:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14175,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14165,"src":"24284:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24210:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24214:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24210:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24210:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24194:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24194:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14178,"nodeType":"ExpressionStatement","src":"24194:94:28"}]},"id":14180,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24106:3:28","nodeType":"FunctionDefinition","parameters":{"id":14166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14159,"mutability":"mutable","name":"p0","nameLocation":"24118:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24110:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14158,"name":"uint256","nodeType":"ElementaryTypeName","src":"24110:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14161,"mutability":"mutable","name":"p1","nameLocation":"24136:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24122:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14160,"name":"string","nodeType":"ElementaryTypeName","src":"24122:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14163,"mutability":"mutable","name":"p2","nameLocation":"24154:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24140:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14162,"name":"string","nodeType":"ElementaryTypeName","src":"24140:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14165,"mutability":"mutable","name":"p3","nameLocation":"24166:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24158:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14164,"name":"address","nodeType":"ElementaryTypeName","src":"24158:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24109:60:28"},"returnParameters":{"id":14167,"nodeType":"ParameterList","parameters":[],"src":"24184:0:28"},"scope":19517,"src":"24097:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14202,"nodeType":"Block","src":"24379:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":14194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24429:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":14195,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14182,"src":"24465:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14196,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14184,"src":"24469:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14197,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14186,"src":"24473:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14198,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14188,"src":"24477:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24405:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24409:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24405:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24405:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14191,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24389:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24389:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14201,"nodeType":"ExpressionStatement","src":"24389:92:28"}]},"id":14203,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24310:3:28","nodeType":"FunctionDefinition","parameters":{"id":14189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14182,"mutability":"mutable","name":"p0","nameLocation":"24322:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24314:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14181,"name":"uint256","nodeType":"ElementaryTypeName","src":"24314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14184,"mutability":"mutable","name":"p1","nameLocation":"24340:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24326:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14183,"name":"string","nodeType":"ElementaryTypeName","src":"24326:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14186,"mutability":"mutable","name":"p2","nameLocation":"24349:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24344:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14185,"name":"bool","nodeType":"ElementaryTypeName","src":"24344:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14188,"mutability":"mutable","name":"p3","nameLocation":"24361:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24353:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14187,"name":"uint256","nodeType":"ElementaryTypeName","src":"24353:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24313:51:28"},"returnParameters":{"id":14190,"nodeType":"ParameterList","parameters":[],"src":"24379:0:28"},"scope":19517,"src":"24301:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14225,"nodeType":"Block","src":"24578:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":14217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24628:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":14218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14205,"src":"24663:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14207,"src":"24667:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14220,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14209,"src":"24671:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14221,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14211,"src":"24675:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24604:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24608:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24604:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24604:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24588:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24588:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14224,"nodeType":"ExpressionStatement","src":"24588:91:28"}]},"id":14226,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24503:3:28","nodeType":"FunctionDefinition","parameters":{"id":14212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14205,"mutability":"mutable","name":"p0","nameLocation":"24515:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14204,"name":"uint256","nodeType":"ElementaryTypeName","src":"24507:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14207,"mutability":"mutable","name":"p1","nameLocation":"24533:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24519:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14206,"name":"string","nodeType":"ElementaryTypeName","src":"24519:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14209,"mutability":"mutable","name":"p2","nameLocation":"24542:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24537:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14208,"name":"bool","nodeType":"ElementaryTypeName","src":"24537:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14211,"mutability":"mutable","name":"p3","nameLocation":"24560:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24546:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14210,"name":"string","nodeType":"ElementaryTypeName","src":"24546:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24506:57:28"},"returnParameters":{"id":14213,"nodeType":"ParameterList","parameters":[],"src":"24578:0:28"},"scope":19517,"src":"24494:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14248,"nodeType":"Block","src":"24767:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":14240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24817:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":14241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"24850:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14230,"src":"24854:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14232,"src":"24858:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14244,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14234,"src":"24862:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24793:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24797:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24793:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24793:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24777:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24777:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14247,"nodeType":"ExpressionStatement","src":"24777:89:28"}]},"id":14249,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24701:3:28","nodeType":"FunctionDefinition","parameters":{"id":14235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14228,"mutability":"mutable","name":"p0","nameLocation":"24713:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24705:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14227,"name":"uint256","nodeType":"ElementaryTypeName","src":"24705:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14230,"mutability":"mutable","name":"p1","nameLocation":"24731:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24717:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14229,"name":"string","nodeType":"ElementaryTypeName","src":"24717:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14232,"mutability":"mutable","name":"p2","nameLocation":"24740:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24735:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14231,"name":"bool","nodeType":"ElementaryTypeName","src":"24735:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14234,"mutability":"mutable","name":"p3","nameLocation":"24749:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14233,"name":"bool","nodeType":"ElementaryTypeName","src":"24744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24704:48:28"},"returnParameters":{"id":14236,"nodeType":"ParameterList","parameters":[],"src":"24767:0:28"},"scope":19517,"src":"24692:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14271,"nodeType":"Block","src":"24957:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":14263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25007:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":14264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14251,"src":"25043:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"25047:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14255,"src":"25051:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14267,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"25055:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24983:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24983:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24983:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24967:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24967:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14270,"nodeType":"ExpressionStatement","src":"24967:92:28"}]},"id":14272,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24888:3:28","nodeType":"FunctionDefinition","parameters":{"id":14258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14251,"mutability":"mutable","name":"p0","nameLocation":"24900:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24892:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14250,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14253,"mutability":"mutable","name":"p1","nameLocation":"24918:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24904:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14252,"name":"string","nodeType":"ElementaryTypeName","src":"24904:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14255,"mutability":"mutable","name":"p2","nameLocation":"24927:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24922:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14254,"name":"bool","nodeType":"ElementaryTypeName","src":"24922:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14257,"mutability":"mutable","name":"p3","nameLocation":"24939:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24931:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14256,"name":"address","nodeType":"ElementaryTypeName","src":"24931:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24891:51:28"},"returnParameters":{"id":14259,"nodeType":"ParameterList","parameters":[],"src":"24957:0:28"},"scope":19517,"src":"24879:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14294,"nodeType":"Block","src":"25153:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":14286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25203:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":14287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14274,"src":"25242:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14288,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"25246:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14289,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14278,"src":"25250:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14290,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"25254:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25179:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25183:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25179:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25179:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25163:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25163:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14293,"nodeType":"ExpressionStatement","src":"25163:95:28"}]},"id":14295,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25081:3:28","nodeType":"FunctionDefinition","parameters":{"id":14281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14274,"mutability":"mutable","name":"p0","nameLocation":"25093:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25085:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14273,"name":"uint256","nodeType":"ElementaryTypeName","src":"25085:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14276,"mutability":"mutable","name":"p1","nameLocation":"25111:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25097:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14275,"name":"string","nodeType":"ElementaryTypeName","src":"25097:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14278,"mutability":"mutable","name":"p2","nameLocation":"25123:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25115:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14277,"name":"address","nodeType":"ElementaryTypeName","src":"25115:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14280,"mutability":"mutable","name":"p3","nameLocation":"25135:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25127:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14279,"name":"uint256","nodeType":"ElementaryTypeName","src":"25127:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25084:54:28"},"returnParameters":{"id":14282,"nodeType":"ParameterList","parameters":[],"src":"25153:0:28"},"scope":19517,"src":"25072:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14317,"nodeType":"Block","src":"25358:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":14309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25408:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":14310,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14297,"src":"25446:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14311,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14299,"src":"25450:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14301,"src":"25454:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14313,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14303,"src":"25458:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25384:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25388:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25384:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25384:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25368:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25368:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14316,"nodeType":"ExpressionStatement","src":"25368:94:28"}]},"id":14318,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25280:3:28","nodeType":"FunctionDefinition","parameters":{"id":14304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14297,"mutability":"mutable","name":"p0","nameLocation":"25292:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25284:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14296,"name":"uint256","nodeType":"ElementaryTypeName","src":"25284:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14299,"mutability":"mutable","name":"p1","nameLocation":"25310:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25296:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14298,"name":"string","nodeType":"ElementaryTypeName","src":"25296:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14301,"mutability":"mutable","name":"p2","nameLocation":"25322:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25314:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14300,"name":"address","nodeType":"ElementaryTypeName","src":"25314:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14303,"mutability":"mutable","name":"p3","nameLocation":"25340:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25326:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14302,"name":"string","nodeType":"ElementaryTypeName","src":"25326:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25283:60:28"},"returnParameters":{"id":14305,"nodeType":"ParameterList","parameters":[],"src":"25358:0:28"},"scope":19517,"src":"25271:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14340,"nodeType":"Block","src":"25553:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":14332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25603:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":14333,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14320,"src":"25639:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14334,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14322,"src":"25643:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14335,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14324,"src":"25647:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14336,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"25651:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25579:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25583:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25579:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25563:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25563:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14339,"nodeType":"ExpressionStatement","src":"25563:92:28"}]},"id":14341,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25484:3:28","nodeType":"FunctionDefinition","parameters":{"id":14327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14320,"mutability":"mutable","name":"p0","nameLocation":"25496:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25488:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14319,"name":"uint256","nodeType":"ElementaryTypeName","src":"25488:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14322,"mutability":"mutable","name":"p1","nameLocation":"25514:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25500:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14321,"name":"string","nodeType":"ElementaryTypeName","src":"25500:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14324,"mutability":"mutable","name":"p2","nameLocation":"25526:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25518:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14323,"name":"address","nodeType":"ElementaryTypeName","src":"25518:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14326,"mutability":"mutable","name":"p3","nameLocation":"25535:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25530:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14325,"name":"bool","nodeType":"ElementaryTypeName","src":"25530:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25487:51:28"},"returnParameters":{"id":14328,"nodeType":"ParameterList","parameters":[],"src":"25553:0:28"},"scope":19517,"src":"25475:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14363,"nodeType":"Block","src":"25749:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":14355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25799:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":14356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14343,"src":"25838:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"25842:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"25846:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14359,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14349,"src":"25850:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25775:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25779:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25775:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25759:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25759:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14362,"nodeType":"ExpressionStatement","src":"25759:95:28"}]},"id":14364,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25677:3:28","nodeType":"FunctionDefinition","parameters":{"id":14350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14343,"mutability":"mutable","name":"p0","nameLocation":"25689:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25681:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14342,"name":"uint256","nodeType":"ElementaryTypeName","src":"25681:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14345,"mutability":"mutable","name":"p1","nameLocation":"25707:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25693:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14344,"name":"string","nodeType":"ElementaryTypeName","src":"25693:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14347,"mutability":"mutable","name":"p2","nameLocation":"25719:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25711:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14346,"name":"address","nodeType":"ElementaryTypeName","src":"25711:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14349,"mutability":"mutable","name":"p3","nameLocation":"25731:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25723:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14348,"name":"address","nodeType":"ElementaryTypeName","src":"25723:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25680:54:28"},"returnParameters":{"id":14351,"nodeType":"ParameterList","parameters":[],"src":"25749:0:28"},"scope":19517,"src":"25668:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14386,"nodeType":"Block","src":"25939:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":14378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25989:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":14379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14366,"src":"26026:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"26030:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14370,"src":"26034:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14382,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14372,"src":"26038:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25965:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25969:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25965:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25965:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25949:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25949:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14385,"nodeType":"ExpressionStatement","src":"25949:93:28"}]},"id":14387,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25876:3:28","nodeType":"FunctionDefinition","parameters":{"id":14373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14366,"mutability":"mutable","name":"p0","nameLocation":"25888:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25880:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14365,"name":"uint256","nodeType":"ElementaryTypeName","src":"25880:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14368,"mutability":"mutable","name":"p1","nameLocation":"25897:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25892:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14367,"name":"bool","nodeType":"ElementaryTypeName","src":"25892:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14370,"mutability":"mutable","name":"p2","nameLocation":"25909:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25901:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14369,"name":"uint256","nodeType":"ElementaryTypeName","src":"25901:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14372,"mutability":"mutable","name":"p3","nameLocation":"25921:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25913:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14371,"name":"uint256","nodeType":"ElementaryTypeName","src":"25913:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25879:45:28"},"returnParameters":{"id":14374,"nodeType":"ParameterList","parameters":[],"src":"25939:0:28"},"scope":19517,"src":"25867:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14409,"nodeType":"Block","src":"26133:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":14401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26183:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":14402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14389,"src":"26219:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14403,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14391,"src":"26223:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14404,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"26227:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14405,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14395,"src":"26231:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26159:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26163:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26159:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26159:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26143:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26143:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14408,"nodeType":"ExpressionStatement","src":"26143:92:28"}]},"id":14410,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26064:3:28","nodeType":"FunctionDefinition","parameters":{"id":14396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14389,"mutability":"mutable","name":"p0","nameLocation":"26076:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26068:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14388,"name":"uint256","nodeType":"ElementaryTypeName","src":"26068:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14391,"mutability":"mutable","name":"p1","nameLocation":"26085:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26080:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14390,"name":"bool","nodeType":"ElementaryTypeName","src":"26080:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14393,"mutability":"mutable","name":"p2","nameLocation":"26097:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26089:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14392,"name":"uint256","nodeType":"ElementaryTypeName","src":"26089:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14395,"mutability":"mutable","name":"p3","nameLocation":"26115:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26101:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14394,"name":"string","nodeType":"ElementaryTypeName","src":"26101:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26067:51:28"},"returnParameters":{"id":14397,"nodeType":"ParameterList","parameters":[],"src":"26133:0:28"},"scope":19517,"src":"26055:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14432,"nodeType":"Block","src":"26317:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":14424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26367:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":14425,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14412,"src":"26401:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14426,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14414,"src":"26405:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14427,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14416,"src":"26409:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14428,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14418,"src":"26413:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26343:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26347:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26343:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26343:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14421,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26327:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26327:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14431,"nodeType":"ExpressionStatement","src":"26327:90:28"}]},"id":14433,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26257:3:28","nodeType":"FunctionDefinition","parameters":{"id":14419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14412,"mutability":"mutable","name":"p0","nameLocation":"26269:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26261:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14411,"name":"uint256","nodeType":"ElementaryTypeName","src":"26261:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14414,"mutability":"mutable","name":"p1","nameLocation":"26278:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26273:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14413,"name":"bool","nodeType":"ElementaryTypeName","src":"26273:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14416,"mutability":"mutable","name":"p2","nameLocation":"26290:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26282:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14415,"name":"uint256","nodeType":"ElementaryTypeName","src":"26282:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14418,"mutability":"mutable","name":"p3","nameLocation":"26299:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26294:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14417,"name":"bool","nodeType":"ElementaryTypeName","src":"26294:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26260:42:28"},"returnParameters":{"id":14420,"nodeType":"ParameterList","parameters":[],"src":"26317:0:28"},"scope":19517,"src":"26248:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14455,"nodeType":"Block","src":"26502:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":14447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26552:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":14448,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14435,"src":"26589:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14449,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14437,"src":"26593:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14450,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14439,"src":"26597:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14451,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14441,"src":"26601:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26528:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26532:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26528:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26528:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26512:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26512:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14454,"nodeType":"ExpressionStatement","src":"26512:93:28"}]},"id":14456,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26439:3:28","nodeType":"FunctionDefinition","parameters":{"id":14442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14435,"mutability":"mutable","name":"p0","nameLocation":"26451:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26443:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14434,"name":"uint256","nodeType":"ElementaryTypeName","src":"26443:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14437,"mutability":"mutable","name":"p1","nameLocation":"26460:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26455:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14436,"name":"bool","nodeType":"ElementaryTypeName","src":"26455:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14439,"mutability":"mutable","name":"p2","nameLocation":"26472:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26464:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14438,"name":"uint256","nodeType":"ElementaryTypeName","src":"26464:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14441,"mutability":"mutable","name":"p3","nameLocation":"26484:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26476:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14440,"name":"address","nodeType":"ElementaryTypeName","src":"26476:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26442:45:28"},"returnParameters":{"id":14443,"nodeType":"ParameterList","parameters":[],"src":"26502:0:28"},"scope":19517,"src":"26430:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14478,"nodeType":"Block","src":"26696:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":14470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26746:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":14471,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14458,"src":"26782:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14472,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14460,"src":"26786:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14473,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"26790:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14474,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"26794:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14468,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26722:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26726:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26722:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14467,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26706:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26706:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14477,"nodeType":"ExpressionStatement","src":"26706:92:28"}]},"id":14479,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26627:3:28","nodeType":"FunctionDefinition","parameters":{"id":14465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14458,"mutability":"mutable","name":"p0","nameLocation":"26639:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26631:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14457,"name":"uint256","nodeType":"ElementaryTypeName","src":"26631:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14460,"mutability":"mutable","name":"p1","nameLocation":"26648:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26643:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14459,"name":"bool","nodeType":"ElementaryTypeName","src":"26643:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14462,"mutability":"mutable","name":"p2","nameLocation":"26666:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26652:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14461,"name":"string","nodeType":"ElementaryTypeName","src":"26652:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14464,"mutability":"mutable","name":"p3","nameLocation":"26678:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26670:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14463,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26630:51:28"},"returnParameters":{"id":14466,"nodeType":"ParameterList","parameters":[],"src":"26696:0:28"},"scope":19517,"src":"26618:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14501,"nodeType":"Block","src":"26895:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":14493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26945:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":14494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"26980:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14483,"src":"26984:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14496,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14485,"src":"26988:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14497,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"26992:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26921:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26925:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26921:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26921:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26905:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14500,"nodeType":"ExpressionStatement","src":"26905:91:28"}]},"id":14502,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26820:3:28","nodeType":"FunctionDefinition","parameters":{"id":14488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14481,"mutability":"mutable","name":"p0","nameLocation":"26832:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26824:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14480,"name":"uint256","nodeType":"ElementaryTypeName","src":"26824:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14483,"mutability":"mutable","name":"p1","nameLocation":"26841:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26836:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14482,"name":"bool","nodeType":"ElementaryTypeName","src":"26836:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14485,"mutability":"mutable","name":"p2","nameLocation":"26859:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26845:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14484,"name":"string","nodeType":"ElementaryTypeName","src":"26845:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14487,"mutability":"mutable","name":"p3","nameLocation":"26877:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26863:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14486,"name":"string","nodeType":"ElementaryTypeName","src":"26863:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26823:57:28"},"returnParameters":{"id":14489,"nodeType":"ParameterList","parameters":[],"src":"26895:0:28"},"scope":19517,"src":"26811:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14524,"nodeType":"Block","src":"27084:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":14516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27134:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":14517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14504,"src":"27167:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14506,"src":"27171:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14519,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"27175:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14520,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14510,"src":"27179:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27110:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27114:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27110:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27110:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27094:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27094:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14523,"nodeType":"ExpressionStatement","src":"27094:89:28"}]},"id":14525,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27018:3:28","nodeType":"FunctionDefinition","parameters":{"id":14511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14504,"mutability":"mutable","name":"p0","nameLocation":"27030:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27022:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14503,"name":"uint256","nodeType":"ElementaryTypeName","src":"27022:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14506,"mutability":"mutable","name":"p1","nameLocation":"27039:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27034:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14505,"name":"bool","nodeType":"ElementaryTypeName","src":"27034:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14508,"mutability":"mutable","name":"p2","nameLocation":"27057:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27043:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14507,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14510,"mutability":"mutable","name":"p3","nameLocation":"27066:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27061:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14509,"name":"bool","nodeType":"ElementaryTypeName","src":"27061:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27021:48:28"},"returnParameters":{"id":14512,"nodeType":"ParameterList","parameters":[],"src":"27084:0:28"},"scope":19517,"src":"27009:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14547,"nodeType":"Block","src":"27274:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":14539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27324:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":14540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14527,"src":"27360:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14529,"src":"27364:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14531,"src":"27368:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14543,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14533,"src":"27372:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27300:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27304:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27300:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27300:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27284:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27284:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14546,"nodeType":"ExpressionStatement","src":"27284:92:28"}]},"id":14548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27205:3:28","nodeType":"FunctionDefinition","parameters":{"id":14534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14527,"mutability":"mutable","name":"p0","nameLocation":"27217:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27209:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14526,"name":"uint256","nodeType":"ElementaryTypeName","src":"27209:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14529,"mutability":"mutable","name":"p1","nameLocation":"27226:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27221:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14528,"name":"bool","nodeType":"ElementaryTypeName","src":"27221:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14531,"mutability":"mutable","name":"p2","nameLocation":"27244:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27230:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14530,"name":"string","nodeType":"ElementaryTypeName","src":"27230:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14533,"mutability":"mutable","name":"p3","nameLocation":"27256:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27248:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14532,"name":"address","nodeType":"ElementaryTypeName","src":"27248:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27208:51:28"},"returnParameters":{"id":14535,"nodeType":"ParameterList","parameters":[],"src":"27274:0:28"},"scope":19517,"src":"27196:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14570,"nodeType":"Block","src":"27458:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":14562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27508:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":14563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"27542:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"27546:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"27550:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14566,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"27554:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27484:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27488:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27484:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27468:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27468:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14569,"nodeType":"ExpressionStatement","src":"27468:90:28"}]},"id":14571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27398:3:28","nodeType":"FunctionDefinition","parameters":{"id":14557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14550,"mutability":"mutable","name":"p0","nameLocation":"27410:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27402:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14549,"name":"uint256","nodeType":"ElementaryTypeName","src":"27402:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14552,"mutability":"mutable","name":"p1","nameLocation":"27419:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27414:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14551,"name":"bool","nodeType":"ElementaryTypeName","src":"27414:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14554,"mutability":"mutable","name":"p2","nameLocation":"27428:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27423:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14553,"name":"bool","nodeType":"ElementaryTypeName","src":"27423:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14556,"mutability":"mutable","name":"p3","nameLocation":"27440:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27432:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14555,"name":"uint256","nodeType":"ElementaryTypeName","src":"27432:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27401:42:28"},"returnParameters":{"id":14558,"nodeType":"ParameterList","parameters":[],"src":"27458:0:28"},"scope":19517,"src":"27389:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14593,"nodeType":"Block","src":"27646:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":14585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27696:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":14586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14573,"src":"27729:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"27733:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14577,"src":"27737:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14589,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14579,"src":"27741:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27672:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27676:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27672:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27672:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27656:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27656:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14592,"nodeType":"ExpressionStatement","src":"27656:89:28"}]},"id":14594,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27580:3:28","nodeType":"FunctionDefinition","parameters":{"id":14580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14573,"mutability":"mutable","name":"p0","nameLocation":"27592:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27584:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14572,"name":"uint256","nodeType":"ElementaryTypeName","src":"27584:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14575,"mutability":"mutable","name":"p1","nameLocation":"27601:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27596:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14574,"name":"bool","nodeType":"ElementaryTypeName","src":"27596:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14577,"mutability":"mutable","name":"p2","nameLocation":"27610:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27605:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14576,"name":"bool","nodeType":"ElementaryTypeName","src":"27605:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14579,"mutability":"mutable","name":"p3","nameLocation":"27628:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27614:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14578,"name":"string","nodeType":"ElementaryTypeName","src":"27614:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27583:48:28"},"returnParameters":{"id":14581,"nodeType":"ParameterList","parameters":[],"src":"27646:0:28"},"scope":19517,"src":"27571:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14616,"nodeType":"Block","src":"27824:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":14608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27874:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":14609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14596,"src":"27905:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14610,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14598,"src":"27909:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14611,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14600,"src":"27913:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14612,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14602,"src":"27917:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27850:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27854:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27850:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27850:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27834:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27834:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14615,"nodeType":"ExpressionStatement","src":"27834:87:28"}]},"id":14617,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27767:3:28","nodeType":"FunctionDefinition","parameters":{"id":14603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14596,"mutability":"mutable","name":"p0","nameLocation":"27779:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27771:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14595,"name":"uint256","nodeType":"ElementaryTypeName","src":"27771:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14598,"mutability":"mutable","name":"p1","nameLocation":"27788:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27783:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14597,"name":"bool","nodeType":"ElementaryTypeName","src":"27783:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14600,"mutability":"mutable","name":"p2","nameLocation":"27797:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27792:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14599,"name":"bool","nodeType":"ElementaryTypeName","src":"27792:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14602,"mutability":"mutable","name":"p3","nameLocation":"27806:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27801:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14601,"name":"bool","nodeType":"ElementaryTypeName","src":"27801:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27770:39:28"},"returnParameters":{"id":14604,"nodeType":"ParameterList","parameters":[],"src":"27824:0:28"},"scope":19517,"src":"27758:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14639,"nodeType":"Block","src":"28003:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":14631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28053:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":14632,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14619,"src":"28087:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14633,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14621,"src":"28091:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14634,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14623,"src":"28095:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14635,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14625,"src":"28099:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28029:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28033:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28029:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28029:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14628,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28013:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28013:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14638,"nodeType":"ExpressionStatement","src":"28013:90:28"}]},"id":14640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27943:3:28","nodeType":"FunctionDefinition","parameters":{"id":14626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14619,"mutability":"mutable","name":"p0","nameLocation":"27955:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27947:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14618,"name":"uint256","nodeType":"ElementaryTypeName","src":"27947:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14621,"mutability":"mutable","name":"p1","nameLocation":"27964:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27959:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14620,"name":"bool","nodeType":"ElementaryTypeName","src":"27959:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14623,"mutability":"mutable","name":"p2","nameLocation":"27973:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27968:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14622,"name":"bool","nodeType":"ElementaryTypeName","src":"27968:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14625,"mutability":"mutable","name":"p3","nameLocation":"27985:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27977:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14624,"name":"address","nodeType":"ElementaryTypeName","src":"27977:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27946:42:28"},"returnParameters":{"id":14627,"nodeType":"ParameterList","parameters":[],"src":"28003:0:28"},"scope":19517,"src":"27934:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14662,"nodeType":"Block","src":"28188:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":14654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28238:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":14655,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14642,"src":"28275:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14656,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"28279:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14657,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14646,"src":"28283:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14658,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14648,"src":"28287:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28214:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28218:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28214:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28214:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28198:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14661,"nodeType":"ExpressionStatement","src":"28198:93:28"}]},"id":14663,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28125:3:28","nodeType":"FunctionDefinition","parameters":{"id":14649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14642,"mutability":"mutable","name":"p0","nameLocation":"28137:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28129:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14641,"name":"uint256","nodeType":"ElementaryTypeName","src":"28129:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14644,"mutability":"mutable","name":"p1","nameLocation":"28146:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28141:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14643,"name":"bool","nodeType":"ElementaryTypeName","src":"28141:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14646,"mutability":"mutable","name":"p2","nameLocation":"28158:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28150:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14645,"name":"address","nodeType":"ElementaryTypeName","src":"28150:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14648,"mutability":"mutable","name":"p3","nameLocation":"28170:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28162:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14647,"name":"uint256","nodeType":"ElementaryTypeName","src":"28162:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28128:45:28"},"returnParameters":{"id":14650,"nodeType":"ParameterList","parameters":[],"src":"28188:0:28"},"scope":19517,"src":"28116:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14685,"nodeType":"Block","src":"28382:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":14677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28432:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":14678,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14665,"src":"28468:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14679,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14667,"src":"28472:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14680,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14669,"src":"28476:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14681,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14671,"src":"28480:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28408:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28412:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28408:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28408:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14674,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28392:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28392:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14684,"nodeType":"ExpressionStatement","src":"28392:92:28"}]},"id":14686,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28313:3:28","nodeType":"FunctionDefinition","parameters":{"id":14672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14665,"mutability":"mutable","name":"p0","nameLocation":"28325:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28317:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14664,"name":"uint256","nodeType":"ElementaryTypeName","src":"28317:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14667,"mutability":"mutable","name":"p1","nameLocation":"28334:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28329:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14666,"name":"bool","nodeType":"ElementaryTypeName","src":"28329:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14669,"mutability":"mutable","name":"p2","nameLocation":"28346:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28338:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14668,"name":"address","nodeType":"ElementaryTypeName","src":"28338:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14671,"mutability":"mutable","name":"p3","nameLocation":"28364:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28350:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14670,"name":"string","nodeType":"ElementaryTypeName","src":"28350:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28316:51:28"},"returnParameters":{"id":14673,"nodeType":"ParameterList","parameters":[],"src":"28382:0:28"},"scope":19517,"src":"28304:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14708,"nodeType":"Block","src":"28566:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":14700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28616:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":14701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14688,"src":"28650:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14690,"src":"28654:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14692,"src":"28658:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14704,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14694,"src":"28662:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28592:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28596:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28592:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28592:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28576:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28576:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14707,"nodeType":"ExpressionStatement","src":"28576:90:28"}]},"id":14709,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28506:3:28","nodeType":"FunctionDefinition","parameters":{"id":14695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14688,"mutability":"mutable","name":"p0","nameLocation":"28518:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28510:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14687,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14690,"mutability":"mutable","name":"p1","nameLocation":"28527:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28522:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14689,"name":"bool","nodeType":"ElementaryTypeName","src":"28522:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14692,"mutability":"mutable","name":"p2","nameLocation":"28539:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28531:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14691,"name":"address","nodeType":"ElementaryTypeName","src":"28531:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14694,"mutability":"mutable","name":"p3","nameLocation":"28548:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28543:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14693,"name":"bool","nodeType":"ElementaryTypeName","src":"28543:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28509:42:28"},"returnParameters":{"id":14696,"nodeType":"ParameterList","parameters":[],"src":"28566:0:28"},"scope":19517,"src":"28497:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14731,"nodeType":"Block","src":"28751:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":14723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28801:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":14724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"28838:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14713,"src":"28842:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14715,"src":"28846:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14727,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14717,"src":"28850:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28777:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28781:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28777:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28777:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28761:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28761:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14730,"nodeType":"ExpressionStatement","src":"28761:93:28"}]},"id":14732,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28688:3:28","nodeType":"FunctionDefinition","parameters":{"id":14718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14711,"mutability":"mutable","name":"p0","nameLocation":"28700:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28692:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14710,"name":"uint256","nodeType":"ElementaryTypeName","src":"28692:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14713,"mutability":"mutable","name":"p1","nameLocation":"28709:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28704:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14712,"name":"bool","nodeType":"ElementaryTypeName","src":"28704:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14715,"mutability":"mutable","name":"p2","nameLocation":"28721:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28713:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14714,"name":"address","nodeType":"ElementaryTypeName","src":"28713:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14717,"mutability":"mutable","name":"p3","nameLocation":"28733:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28725:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14716,"name":"address","nodeType":"ElementaryTypeName","src":"28725:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28691:45:28"},"returnParameters":{"id":14719,"nodeType":"ParameterList","parameters":[],"src":"28751:0:28"},"scope":19517,"src":"28679:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14754,"nodeType":"Block","src":"28942:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":14746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28992:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":14747,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14734,"src":"29032:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14748,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14736,"src":"29036:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14749,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"29040:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14750,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14740,"src":"29044:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28968:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28972:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28968:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28968:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28952:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28952:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14753,"nodeType":"ExpressionStatement","src":"28952:96:28"}]},"id":14755,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28876:3:28","nodeType":"FunctionDefinition","parameters":{"id":14741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14734,"mutability":"mutable","name":"p0","nameLocation":"28888:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28880:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14733,"name":"uint256","nodeType":"ElementaryTypeName","src":"28880:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14736,"mutability":"mutable","name":"p1","nameLocation":"28900:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28892:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14735,"name":"address","nodeType":"ElementaryTypeName","src":"28892:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14738,"mutability":"mutable","name":"p2","nameLocation":"28912:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28904:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14737,"name":"uint256","nodeType":"ElementaryTypeName","src":"28904:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14740,"mutability":"mutable","name":"p3","nameLocation":"28924:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28916:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14739,"name":"uint256","nodeType":"ElementaryTypeName","src":"28916:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28879:48:28"},"returnParameters":{"id":14742,"nodeType":"ParameterList","parameters":[],"src":"28942:0:28"},"scope":19517,"src":"28867:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14777,"nodeType":"Block","src":"29142:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":14769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29192:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":14770,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14757,"src":"29231:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14771,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14759,"src":"29235:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14772,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"29239:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14773,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"29243:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29168:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29172:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29168:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29168:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29152:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29152:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14776,"nodeType":"ExpressionStatement","src":"29152:95:28"}]},"id":14778,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29070:3:28","nodeType":"FunctionDefinition","parameters":{"id":14764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14757,"mutability":"mutable","name":"p0","nameLocation":"29082:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29074:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14756,"name":"uint256","nodeType":"ElementaryTypeName","src":"29074:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14759,"mutability":"mutable","name":"p1","nameLocation":"29094:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29086:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14758,"name":"address","nodeType":"ElementaryTypeName","src":"29086:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14761,"mutability":"mutable","name":"p2","nameLocation":"29106:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29098:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14760,"name":"uint256","nodeType":"ElementaryTypeName","src":"29098:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14763,"mutability":"mutable","name":"p3","nameLocation":"29124:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29110:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14762,"name":"string","nodeType":"ElementaryTypeName","src":"29110:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29073:54:28"},"returnParameters":{"id":14765,"nodeType":"ParameterList","parameters":[],"src":"29142:0:28"},"scope":19517,"src":"29061:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14800,"nodeType":"Block","src":"29332:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":14792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29382:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":14793,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14780,"src":"29419:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14794,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14782,"src":"29423:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14795,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"29427:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14796,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"29431:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29358:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29362:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29358:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29358:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14789,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29342:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29342:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14799,"nodeType":"ExpressionStatement","src":"29342:93:28"}]},"id":14801,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29269:3:28","nodeType":"FunctionDefinition","parameters":{"id":14787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14780,"mutability":"mutable","name":"p0","nameLocation":"29281:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29273:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14779,"name":"uint256","nodeType":"ElementaryTypeName","src":"29273:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14782,"mutability":"mutable","name":"p1","nameLocation":"29293:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29285:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14781,"name":"address","nodeType":"ElementaryTypeName","src":"29285:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14784,"mutability":"mutable","name":"p2","nameLocation":"29305:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29297:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14783,"name":"uint256","nodeType":"ElementaryTypeName","src":"29297:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14786,"mutability":"mutable","name":"p3","nameLocation":"29314:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29309:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14785,"name":"bool","nodeType":"ElementaryTypeName","src":"29309:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29272:45:28"},"returnParameters":{"id":14788,"nodeType":"ParameterList","parameters":[],"src":"29332:0:28"},"scope":19517,"src":"29260:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14823,"nodeType":"Block","src":"29523:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":14815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29573:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":14816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"29613:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14805,"src":"29617:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"29621:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14819,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14809,"src":"29625:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29549:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29553:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29549:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29533:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14822,"nodeType":"ExpressionStatement","src":"29533:96:28"}]},"id":14824,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29457:3:28","nodeType":"FunctionDefinition","parameters":{"id":14810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14803,"mutability":"mutable","name":"p0","nameLocation":"29469:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29461:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14802,"name":"uint256","nodeType":"ElementaryTypeName","src":"29461:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14805,"mutability":"mutable","name":"p1","nameLocation":"29481:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29473:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14804,"name":"address","nodeType":"ElementaryTypeName","src":"29473:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14807,"mutability":"mutable","name":"p2","nameLocation":"29493:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29485:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14806,"name":"uint256","nodeType":"ElementaryTypeName","src":"29485:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14809,"mutability":"mutable","name":"p3","nameLocation":"29505:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29497:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14808,"name":"address","nodeType":"ElementaryTypeName","src":"29497:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29460:48:28"},"returnParameters":{"id":14811,"nodeType":"ParameterList","parameters":[],"src":"29523:0:28"},"scope":19517,"src":"29448:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14846,"nodeType":"Block","src":"29723:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":14838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29773:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":14839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"29812:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14828,"src":"29816:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14830,"src":"29820:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14842,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14832,"src":"29824:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29749:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29753:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29749:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29749:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29733:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29733:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14845,"nodeType":"ExpressionStatement","src":"29733:95:28"}]},"id":14847,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29651:3:28","nodeType":"FunctionDefinition","parameters":{"id":14833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14826,"mutability":"mutable","name":"p0","nameLocation":"29663:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29655:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14825,"name":"uint256","nodeType":"ElementaryTypeName","src":"29655:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14828,"mutability":"mutable","name":"p1","nameLocation":"29675:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29667:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14827,"name":"address","nodeType":"ElementaryTypeName","src":"29667:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14830,"mutability":"mutable","name":"p2","nameLocation":"29693:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29679:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14829,"name":"string","nodeType":"ElementaryTypeName","src":"29679:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14832,"mutability":"mutable","name":"p3","nameLocation":"29705:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29697:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14831,"name":"uint256","nodeType":"ElementaryTypeName","src":"29697:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29654:54:28"},"returnParameters":{"id":14834,"nodeType":"ParameterList","parameters":[],"src":"29723:0:28"},"scope":19517,"src":"29642:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14869,"nodeType":"Block","src":"29928:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":14861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29978:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":14862,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14849,"src":"30016:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14863,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14851,"src":"30020:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14864,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14853,"src":"30024:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14865,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14855,"src":"30028:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29954:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29958:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29954:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29954:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29938:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29938:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14868,"nodeType":"ExpressionStatement","src":"29938:94:28"}]},"id":14870,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29850:3:28","nodeType":"FunctionDefinition","parameters":{"id":14856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14849,"mutability":"mutable","name":"p0","nameLocation":"29862:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29854:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14848,"name":"uint256","nodeType":"ElementaryTypeName","src":"29854:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14851,"mutability":"mutable","name":"p1","nameLocation":"29874:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29866:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14850,"name":"address","nodeType":"ElementaryTypeName","src":"29866:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14853,"mutability":"mutable","name":"p2","nameLocation":"29892:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29878:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14852,"name":"string","nodeType":"ElementaryTypeName","src":"29878:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14855,"mutability":"mutable","name":"p3","nameLocation":"29910:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29896:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14854,"name":"string","nodeType":"ElementaryTypeName","src":"29896:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29853:60:28"},"returnParameters":{"id":14857,"nodeType":"ParameterList","parameters":[],"src":"29928:0:28"},"scope":19517,"src":"29841:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14892,"nodeType":"Block","src":"30123:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":14884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30173:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":14885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"30209:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14886,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14874,"src":"30213:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14887,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14876,"src":"30217:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14888,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14878,"src":"30221:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30149:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30153:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30149:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30149:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30133:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30133:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14891,"nodeType":"ExpressionStatement","src":"30133:92:28"}]},"id":14893,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30054:3:28","nodeType":"FunctionDefinition","parameters":{"id":14879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14872,"mutability":"mutable","name":"p0","nameLocation":"30066:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30058:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14871,"name":"uint256","nodeType":"ElementaryTypeName","src":"30058:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14874,"mutability":"mutable","name":"p1","nameLocation":"30078:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30070:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14873,"name":"address","nodeType":"ElementaryTypeName","src":"30070:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14876,"mutability":"mutable","name":"p2","nameLocation":"30096:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30082:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14875,"name":"string","nodeType":"ElementaryTypeName","src":"30082:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14878,"mutability":"mutable","name":"p3","nameLocation":"30105:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30100:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14877,"name":"bool","nodeType":"ElementaryTypeName","src":"30100:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30057:51:28"},"returnParameters":{"id":14880,"nodeType":"ParameterList","parameters":[],"src":"30123:0:28"},"scope":19517,"src":"30045:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14915,"nodeType":"Block","src":"30319:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":14907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30369:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":14908,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"30408:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14909,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14897,"src":"30412:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14910,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14899,"src":"30416:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14911,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14901,"src":"30420:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30345:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30349:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30345:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30345:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14904,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30329:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30329:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14914,"nodeType":"ExpressionStatement","src":"30329:95:28"}]},"id":14916,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30247:3:28","nodeType":"FunctionDefinition","parameters":{"id":14902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14895,"mutability":"mutable","name":"p0","nameLocation":"30259:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30251:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14894,"name":"uint256","nodeType":"ElementaryTypeName","src":"30251:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14897,"mutability":"mutable","name":"p1","nameLocation":"30271:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30263:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14896,"name":"address","nodeType":"ElementaryTypeName","src":"30263:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14899,"mutability":"mutable","name":"p2","nameLocation":"30289:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30275:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14898,"name":"string","nodeType":"ElementaryTypeName","src":"30275:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14901,"mutability":"mutable","name":"p3","nameLocation":"30301:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30293:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14900,"name":"address","nodeType":"ElementaryTypeName","src":"30293:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:54:28"},"returnParameters":{"id":14903,"nodeType":"ParameterList","parameters":[],"src":"30319:0:28"},"scope":19517,"src":"30238:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14938,"nodeType":"Block","src":"30509:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":14930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30559:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":14931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14918,"src":"30596:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14932,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14920,"src":"30600:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14933,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14922,"src":"30604:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14934,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14924,"src":"30608:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30535:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30539:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30535:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30535:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30519:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30519:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14937,"nodeType":"ExpressionStatement","src":"30519:93:28"}]},"id":14939,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30446:3:28","nodeType":"FunctionDefinition","parameters":{"id":14925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14918,"mutability":"mutable","name":"p0","nameLocation":"30458:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30450:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14917,"name":"uint256","nodeType":"ElementaryTypeName","src":"30450:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14920,"mutability":"mutable","name":"p1","nameLocation":"30470:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30462:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14919,"name":"address","nodeType":"ElementaryTypeName","src":"30462:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14922,"mutability":"mutable","name":"p2","nameLocation":"30479:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30474:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14921,"name":"bool","nodeType":"ElementaryTypeName","src":"30474:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14924,"mutability":"mutable","name":"p3","nameLocation":"30491:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30483:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14923,"name":"uint256","nodeType":"ElementaryTypeName","src":"30483:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30449:45:28"},"returnParameters":{"id":14926,"nodeType":"ParameterList","parameters":[],"src":"30509:0:28"},"scope":19517,"src":"30437:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14961,"nodeType":"Block","src":"30703:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":14953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30753:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":14954,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14941,"src":"30789:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14955,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14943,"src":"30793:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14956,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14945,"src":"30797:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14957,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14947,"src":"30801:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30729:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30733:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30729:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30729:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14950,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30713:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30713:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14960,"nodeType":"ExpressionStatement","src":"30713:92:28"}]},"id":14962,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30634:3:28","nodeType":"FunctionDefinition","parameters":{"id":14948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14941,"mutability":"mutable","name":"p0","nameLocation":"30646:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30638:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14940,"name":"uint256","nodeType":"ElementaryTypeName","src":"30638:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14943,"mutability":"mutable","name":"p1","nameLocation":"30658:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30650:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14942,"name":"address","nodeType":"ElementaryTypeName","src":"30650:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14945,"mutability":"mutable","name":"p2","nameLocation":"30667:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30662:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14944,"name":"bool","nodeType":"ElementaryTypeName","src":"30662:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14947,"mutability":"mutable","name":"p3","nameLocation":"30685:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30671:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14946,"name":"string","nodeType":"ElementaryTypeName","src":"30671:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30637:51:28"},"returnParameters":{"id":14949,"nodeType":"ParameterList","parameters":[],"src":"30703:0:28"},"scope":19517,"src":"30625:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14984,"nodeType":"Block","src":"30887:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":14976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30937:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":14977,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14964,"src":"30971:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14978,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14966,"src":"30975:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14979,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14968,"src":"30979:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14980,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14970,"src":"30983:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30913:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30917:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30913:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30913:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14973,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30897:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30897:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14983,"nodeType":"ExpressionStatement","src":"30897:90:28"}]},"id":14985,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30827:3:28","nodeType":"FunctionDefinition","parameters":{"id":14971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14964,"mutability":"mutable","name":"p0","nameLocation":"30839:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30831:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14963,"name":"uint256","nodeType":"ElementaryTypeName","src":"30831:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14966,"mutability":"mutable","name":"p1","nameLocation":"30851:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30843:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14965,"name":"address","nodeType":"ElementaryTypeName","src":"30843:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14968,"mutability":"mutable","name":"p2","nameLocation":"30860:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30855:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14967,"name":"bool","nodeType":"ElementaryTypeName","src":"30855:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14970,"mutability":"mutable","name":"p3","nameLocation":"30869:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30864:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14969,"name":"bool","nodeType":"ElementaryTypeName","src":"30864:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30830:42:28"},"returnParameters":{"id":14972,"nodeType":"ParameterList","parameters":[],"src":"30887:0:28"},"scope":19517,"src":"30818:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15007,"nodeType":"Block","src":"31072:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":14999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31122:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":15000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14987,"src":"31159:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14989,"src":"31163:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14991,"src":"31167:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15003,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14993,"src":"31171:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31098:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31102:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31098:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31098:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31082:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31082:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15006,"nodeType":"ExpressionStatement","src":"31082:93:28"}]},"id":15008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31009:3:28","nodeType":"FunctionDefinition","parameters":{"id":14994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14987,"mutability":"mutable","name":"p0","nameLocation":"31021:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31013:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14986,"name":"uint256","nodeType":"ElementaryTypeName","src":"31013:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14989,"mutability":"mutable","name":"p1","nameLocation":"31033:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31025:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14988,"name":"address","nodeType":"ElementaryTypeName","src":"31025:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14991,"mutability":"mutable","name":"p2","nameLocation":"31042:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31037:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14990,"name":"bool","nodeType":"ElementaryTypeName","src":"31037:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14993,"mutability":"mutable","name":"p3","nameLocation":"31054:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31046:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14992,"name":"address","nodeType":"ElementaryTypeName","src":"31046:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31012:45:28"},"returnParameters":{"id":14995,"nodeType":"ParameterList","parameters":[],"src":"31072:0:28"},"scope":19517,"src":"31000:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15030,"nodeType":"Block","src":"31263:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":15022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31313:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":15023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"31353:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15012,"src":"31357:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15014,"src":"31361:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15026,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"31365:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31289:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31293:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31289:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31289:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31273:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31273:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15029,"nodeType":"ExpressionStatement","src":"31273:96:28"}]},"id":15031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31197:3:28","nodeType":"FunctionDefinition","parameters":{"id":15017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15010,"mutability":"mutable","name":"p0","nameLocation":"31209:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31201:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15009,"name":"uint256","nodeType":"ElementaryTypeName","src":"31201:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15012,"mutability":"mutable","name":"p1","nameLocation":"31221:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31213:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15011,"name":"address","nodeType":"ElementaryTypeName","src":"31213:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15014,"mutability":"mutable","name":"p2","nameLocation":"31233:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31225:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15013,"name":"address","nodeType":"ElementaryTypeName","src":"31225:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15016,"mutability":"mutable","name":"p3","nameLocation":"31245:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31237:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15015,"name":"uint256","nodeType":"ElementaryTypeName","src":"31237:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31200:48:28"},"returnParameters":{"id":15018,"nodeType":"ParameterList","parameters":[],"src":"31263:0:28"},"scope":19517,"src":"31188:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15053,"nodeType":"Block","src":"31463:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":15045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31513:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":15046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15033,"src":"31552:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"31556:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15037,"src":"31560:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15049,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15039,"src":"31564:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31489:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31493:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31489:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31489:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31473:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31473:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15052,"nodeType":"ExpressionStatement","src":"31473:95:28"}]},"id":15054,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31391:3:28","nodeType":"FunctionDefinition","parameters":{"id":15040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15033,"mutability":"mutable","name":"p0","nameLocation":"31403:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31395:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15032,"name":"uint256","nodeType":"ElementaryTypeName","src":"31395:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15035,"mutability":"mutable","name":"p1","nameLocation":"31415:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31407:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15034,"name":"address","nodeType":"ElementaryTypeName","src":"31407:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15037,"mutability":"mutable","name":"p2","nameLocation":"31427:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31419:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15036,"name":"address","nodeType":"ElementaryTypeName","src":"31419:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15039,"mutability":"mutable","name":"p3","nameLocation":"31445:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31431:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15038,"name":"string","nodeType":"ElementaryTypeName","src":"31431:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31394:54:28"},"returnParameters":{"id":15041,"nodeType":"ParameterList","parameters":[],"src":"31463:0:28"},"scope":19517,"src":"31382:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15076,"nodeType":"Block","src":"31653:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":15068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31703:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":15069,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15056,"src":"31740:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15070,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"31744:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15071,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15060,"src":"31748:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15072,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15062,"src":"31752:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31679:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31683:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31679:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31679:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15065,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31663:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31663:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15075,"nodeType":"ExpressionStatement","src":"31663:93:28"}]},"id":15077,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31590:3:28","nodeType":"FunctionDefinition","parameters":{"id":15063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15056,"mutability":"mutable","name":"p0","nameLocation":"31602:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31594:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15055,"name":"uint256","nodeType":"ElementaryTypeName","src":"31594:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15058,"mutability":"mutable","name":"p1","nameLocation":"31614:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31606:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15057,"name":"address","nodeType":"ElementaryTypeName","src":"31606:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15060,"mutability":"mutable","name":"p2","nameLocation":"31626:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31618:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15059,"name":"address","nodeType":"ElementaryTypeName","src":"31618:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15062,"mutability":"mutable","name":"p3","nameLocation":"31635:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31630:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15061,"name":"bool","nodeType":"ElementaryTypeName","src":"31630:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31593:45:28"},"returnParameters":{"id":15064,"nodeType":"ParameterList","parameters":[],"src":"31653:0:28"},"scope":19517,"src":"31581:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15099,"nodeType":"Block","src":"31844:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":15091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31894:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":15092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15079,"src":"31934:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15093,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"31938:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15094,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15083,"src":"31942:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15095,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15085,"src":"31946:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31870:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31874:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31870:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31870:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31854:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31854:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15098,"nodeType":"ExpressionStatement","src":"31854:96:28"}]},"id":15100,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31778:3:28","nodeType":"FunctionDefinition","parameters":{"id":15086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15079,"mutability":"mutable","name":"p0","nameLocation":"31790:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31782:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15078,"name":"uint256","nodeType":"ElementaryTypeName","src":"31782:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15081,"mutability":"mutable","name":"p1","nameLocation":"31802:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31794:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15080,"name":"address","nodeType":"ElementaryTypeName","src":"31794:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15083,"mutability":"mutable","name":"p2","nameLocation":"31814:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31806:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15082,"name":"address","nodeType":"ElementaryTypeName","src":"31806:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15085,"mutability":"mutable","name":"p3","nameLocation":"31826:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31818:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15084,"name":"address","nodeType":"ElementaryTypeName","src":"31818:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31781:48:28"},"returnParameters":{"id":15087,"nodeType":"ParameterList","parameters":[],"src":"31844:0:28"},"scope":19517,"src":"31769:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15122,"nodeType":"Block","src":"32044:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":15114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32094:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":15115,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15102,"src":"32133:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15116,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15104,"src":"32137:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15117,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15106,"src":"32141:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15118,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15108,"src":"32145:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32070:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32074:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32070:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32070:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15111,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32054:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32054:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15121,"nodeType":"ExpressionStatement","src":"32054:95:28"}]},"id":15123,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31972:3:28","nodeType":"FunctionDefinition","parameters":{"id":15109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15102,"mutability":"mutable","name":"p0","nameLocation":"31990:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"31976:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15101,"name":"string","nodeType":"ElementaryTypeName","src":"31976:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15104,"mutability":"mutable","name":"p1","nameLocation":"32002:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"31994:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15103,"name":"uint256","nodeType":"ElementaryTypeName","src":"31994:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15106,"mutability":"mutable","name":"p2","nameLocation":"32014:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"32006:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15105,"name":"uint256","nodeType":"ElementaryTypeName","src":"32006:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15108,"mutability":"mutable","name":"p3","nameLocation":"32026:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"32018:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15107,"name":"uint256","nodeType":"ElementaryTypeName","src":"32018:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31975:54:28"},"returnParameters":{"id":15110,"nodeType":"ParameterList","parameters":[],"src":"32044:0:28"},"scope":19517,"src":"31963:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15145,"nodeType":"Block","src":"32249:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":15137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32299:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":15138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15125,"src":"32337:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"32341:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15140,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15129,"src":"32345:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15141,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"32349:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32275:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32279:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32275:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32275:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32259:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32259:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15144,"nodeType":"ExpressionStatement","src":"32259:94:28"}]},"id":15146,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32171:3:28","nodeType":"FunctionDefinition","parameters":{"id":15132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15125,"mutability":"mutable","name":"p0","nameLocation":"32189:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32175:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15124,"name":"string","nodeType":"ElementaryTypeName","src":"32175:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15127,"mutability":"mutable","name":"p1","nameLocation":"32201:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32193:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15126,"name":"uint256","nodeType":"ElementaryTypeName","src":"32193:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15129,"mutability":"mutable","name":"p2","nameLocation":"32213:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32205:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15128,"name":"uint256","nodeType":"ElementaryTypeName","src":"32205:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15131,"mutability":"mutable","name":"p3","nameLocation":"32231:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32217:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15130,"name":"string","nodeType":"ElementaryTypeName","src":"32217:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32174:60:28"},"returnParameters":{"id":15133,"nodeType":"ParameterList","parameters":[],"src":"32249:0:28"},"scope":19517,"src":"32162:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15168,"nodeType":"Block","src":"32444:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":15160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32494:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":15161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"32530:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15150,"src":"32534:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15152,"src":"32538:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15164,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"32542:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32470:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32474:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32470:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32470:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32454:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32454:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15167,"nodeType":"ExpressionStatement","src":"32454:92:28"}]},"id":15169,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32375:3:28","nodeType":"FunctionDefinition","parameters":{"id":15155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15148,"mutability":"mutable","name":"p0","nameLocation":"32393:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32379:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15147,"name":"string","nodeType":"ElementaryTypeName","src":"32379:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15150,"mutability":"mutable","name":"p1","nameLocation":"32405:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32397:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15149,"name":"uint256","nodeType":"ElementaryTypeName","src":"32397:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15152,"mutability":"mutable","name":"p2","nameLocation":"32417:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32409:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15151,"name":"uint256","nodeType":"ElementaryTypeName","src":"32409:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15154,"mutability":"mutable","name":"p3","nameLocation":"32426:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32421:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15153,"name":"bool","nodeType":"ElementaryTypeName","src":"32421:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32378:51:28"},"returnParameters":{"id":15156,"nodeType":"ParameterList","parameters":[],"src":"32444:0:28"},"scope":19517,"src":"32366:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15191,"nodeType":"Block","src":"32640:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":15183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32690:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":15184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15171,"src":"32729:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"32733:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"32737:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15187,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15177,"src":"32741:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32666:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32670:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32666:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32666:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32650:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32650:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15190,"nodeType":"ExpressionStatement","src":"32650:95:28"}]},"id":15192,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32568:3:28","nodeType":"FunctionDefinition","parameters":{"id":15178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15171,"mutability":"mutable","name":"p0","nameLocation":"32586:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32572:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15170,"name":"string","nodeType":"ElementaryTypeName","src":"32572:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15173,"mutability":"mutable","name":"p1","nameLocation":"32598:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32590:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15172,"name":"uint256","nodeType":"ElementaryTypeName","src":"32590:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15175,"mutability":"mutable","name":"p2","nameLocation":"32610:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32602:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15174,"name":"uint256","nodeType":"ElementaryTypeName","src":"32602:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15177,"mutability":"mutable","name":"p3","nameLocation":"32622:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32614:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15176,"name":"address","nodeType":"ElementaryTypeName","src":"32614:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32571:54:28"},"returnParameters":{"id":15179,"nodeType":"ParameterList","parameters":[],"src":"32640:0:28"},"scope":19517,"src":"32559:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15214,"nodeType":"Block","src":"32845:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":15206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32895:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":15207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"32933:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15196,"src":"32937:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15209,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15198,"src":"32941:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15210,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15200,"src":"32945:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32871:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32875:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32871:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32871:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32855:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32855:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15213,"nodeType":"ExpressionStatement","src":"32855:94:28"}]},"id":15215,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32767:3:28","nodeType":"FunctionDefinition","parameters":{"id":15201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15194,"mutability":"mutable","name":"p0","nameLocation":"32785:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32771:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15193,"name":"string","nodeType":"ElementaryTypeName","src":"32771:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15196,"mutability":"mutable","name":"p1","nameLocation":"32797:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32789:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15195,"name":"uint256","nodeType":"ElementaryTypeName","src":"32789:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15198,"mutability":"mutable","name":"p2","nameLocation":"32815:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32801:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15197,"name":"string","nodeType":"ElementaryTypeName","src":"32801:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15200,"mutability":"mutable","name":"p3","nameLocation":"32827:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32819:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15199,"name":"uint256","nodeType":"ElementaryTypeName","src":"32819:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32770:60:28"},"returnParameters":{"id":15202,"nodeType":"ParameterList","parameters":[],"src":"32845:0:28"},"scope":19517,"src":"32758:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15237,"nodeType":"Block","src":"33055:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":15229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33105:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":15230,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15217,"src":"33142:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15231,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"33146:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15232,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15221,"src":"33150:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15233,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15223,"src":"33154:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33081:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33085:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33081:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33081:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15226,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33065:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33065:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15236,"nodeType":"ExpressionStatement","src":"33065:93:28"}]},"id":15238,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32971:3:28","nodeType":"FunctionDefinition","parameters":{"id":15224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15217,"mutability":"mutable","name":"p0","nameLocation":"32989:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"32975:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15216,"name":"string","nodeType":"ElementaryTypeName","src":"32975:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15219,"mutability":"mutable","name":"p1","nameLocation":"33001:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"32993:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15218,"name":"uint256","nodeType":"ElementaryTypeName","src":"32993:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15221,"mutability":"mutable","name":"p2","nameLocation":"33019:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"33005:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15220,"name":"string","nodeType":"ElementaryTypeName","src":"33005:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15223,"mutability":"mutable","name":"p3","nameLocation":"33037:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"33023:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15222,"name":"string","nodeType":"ElementaryTypeName","src":"33023:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32974:66:28"},"returnParameters":{"id":15225,"nodeType":"ParameterList","parameters":[],"src":"33055:0:28"},"scope":19517,"src":"32962:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15260,"nodeType":"Block","src":"33255:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":15252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33305:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":15253,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15240,"src":"33340:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15254,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15242,"src":"33344:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15255,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15244,"src":"33348:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15256,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15246,"src":"33352:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33281:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33285:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33281:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33281:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33265:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33265:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15259,"nodeType":"ExpressionStatement","src":"33265:91:28"}]},"id":15261,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33180:3:28","nodeType":"FunctionDefinition","parameters":{"id":15247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15240,"mutability":"mutable","name":"p0","nameLocation":"33198:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33184:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15239,"name":"string","nodeType":"ElementaryTypeName","src":"33184:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15242,"mutability":"mutable","name":"p1","nameLocation":"33210:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33202:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15241,"name":"uint256","nodeType":"ElementaryTypeName","src":"33202:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15244,"mutability":"mutable","name":"p2","nameLocation":"33228:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33214:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15243,"name":"string","nodeType":"ElementaryTypeName","src":"33214:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15246,"mutability":"mutable","name":"p3","nameLocation":"33237:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33232:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15245,"name":"bool","nodeType":"ElementaryTypeName","src":"33232:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33183:57:28"},"returnParameters":{"id":15248,"nodeType":"ParameterList","parameters":[],"src":"33255:0:28"},"scope":19517,"src":"33171:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15283,"nodeType":"Block","src":"33456:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":15275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33506:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":15276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15263,"src":"33544:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15265,"src":"33548:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15267,"src":"33552:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15279,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15269,"src":"33556:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33482:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33486:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33482:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33482:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33466:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33466:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15282,"nodeType":"ExpressionStatement","src":"33466:94:28"}]},"id":15284,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33378:3:28","nodeType":"FunctionDefinition","parameters":{"id":15270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15263,"mutability":"mutable","name":"p0","nameLocation":"33396:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33382:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15262,"name":"string","nodeType":"ElementaryTypeName","src":"33382:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15265,"mutability":"mutable","name":"p1","nameLocation":"33408:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33400:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15264,"name":"uint256","nodeType":"ElementaryTypeName","src":"33400:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15267,"mutability":"mutable","name":"p2","nameLocation":"33426:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33412:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15266,"name":"string","nodeType":"ElementaryTypeName","src":"33412:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15269,"mutability":"mutable","name":"p3","nameLocation":"33438:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33430:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15268,"name":"address","nodeType":"ElementaryTypeName","src":"33430:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33381:60:28"},"returnParameters":{"id":15271,"nodeType":"ParameterList","parameters":[],"src":"33456:0:28"},"scope":19517,"src":"33369:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15306,"nodeType":"Block","src":"33651:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":15298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33701:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":15299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15286,"src":"33737:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15288,"src":"33741:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15290,"src":"33745:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15302,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15292,"src":"33749:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33677:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33681:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33677:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33677:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33661:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33661:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15305,"nodeType":"ExpressionStatement","src":"33661:92:28"}]},"id":15307,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33582:3:28","nodeType":"FunctionDefinition","parameters":{"id":15293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15286,"mutability":"mutable","name":"p0","nameLocation":"33600:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33586:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15285,"name":"string","nodeType":"ElementaryTypeName","src":"33586:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15288,"mutability":"mutable","name":"p1","nameLocation":"33612:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33604:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15287,"name":"uint256","nodeType":"ElementaryTypeName","src":"33604:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15290,"mutability":"mutable","name":"p2","nameLocation":"33621:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33616:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15289,"name":"bool","nodeType":"ElementaryTypeName","src":"33616:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15292,"mutability":"mutable","name":"p3","nameLocation":"33633:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33625:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15291,"name":"uint256","nodeType":"ElementaryTypeName","src":"33625:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33585:51:28"},"returnParameters":{"id":15294,"nodeType":"ParameterList","parameters":[],"src":"33651:0:28"},"scope":19517,"src":"33573:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15329,"nodeType":"Block","src":"33850:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":15321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33900:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":15322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15309,"src":"33935:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15323,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15311,"src":"33939:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15324,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"33943:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15325,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15315,"src":"33947:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33876:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33880:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33876:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33876:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15318,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33860:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33860:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15328,"nodeType":"ExpressionStatement","src":"33860:91:28"}]},"id":15330,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33775:3:28","nodeType":"FunctionDefinition","parameters":{"id":15316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15309,"mutability":"mutable","name":"p0","nameLocation":"33793:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33779:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15308,"name":"string","nodeType":"ElementaryTypeName","src":"33779:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15311,"mutability":"mutable","name":"p1","nameLocation":"33805:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33797:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15310,"name":"uint256","nodeType":"ElementaryTypeName","src":"33797:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15313,"mutability":"mutable","name":"p2","nameLocation":"33814:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33809:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15312,"name":"bool","nodeType":"ElementaryTypeName","src":"33809:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15315,"mutability":"mutable","name":"p3","nameLocation":"33832:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33818:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15314,"name":"string","nodeType":"ElementaryTypeName","src":"33818:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33778:57:28"},"returnParameters":{"id":15317,"nodeType":"ParameterList","parameters":[],"src":"33850:0:28"},"scope":19517,"src":"33766:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15352,"nodeType":"Block","src":"34039:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":15344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34089:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":15345,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15332,"src":"34122:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15346,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15334,"src":"34126:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15347,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15336,"src":"34130:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15348,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15338,"src":"34134:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34065:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34069:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34065:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34065:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34049:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34049:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15351,"nodeType":"ExpressionStatement","src":"34049:89:28"}]},"id":15353,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33973:3:28","nodeType":"FunctionDefinition","parameters":{"id":15339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15332,"mutability":"mutable","name":"p0","nameLocation":"33991:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"33977:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15331,"name":"string","nodeType":"ElementaryTypeName","src":"33977:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15334,"mutability":"mutable","name":"p1","nameLocation":"34003:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"33995:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15333,"name":"uint256","nodeType":"ElementaryTypeName","src":"33995:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15336,"mutability":"mutable","name":"p2","nameLocation":"34012:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"34007:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15335,"name":"bool","nodeType":"ElementaryTypeName","src":"34007:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15338,"mutability":"mutable","name":"p3","nameLocation":"34021:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"34016:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15337,"name":"bool","nodeType":"ElementaryTypeName","src":"34016:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33976:48:28"},"returnParameters":{"id":15340,"nodeType":"ParameterList","parameters":[],"src":"34039:0:28"},"scope":19517,"src":"33964:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15375,"nodeType":"Block","src":"34229:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":15367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34279:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":15368,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15355,"src":"34315:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15369,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15357,"src":"34319:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15370,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"34323:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15371,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15361,"src":"34327:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34255:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34259:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34255:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34255:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15364,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34239:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34239:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15374,"nodeType":"ExpressionStatement","src":"34239:92:28"}]},"id":15376,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34160:3:28","nodeType":"FunctionDefinition","parameters":{"id":15362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15355,"mutability":"mutable","name":"p0","nameLocation":"34178:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34164:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15354,"name":"string","nodeType":"ElementaryTypeName","src":"34164:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15357,"mutability":"mutable","name":"p1","nameLocation":"34190:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34182:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15356,"name":"uint256","nodeType":"ElementaryTypeName","src":"34182:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15359,"mutability":"mutable","name":"p2","nameLocation":"34199:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34194:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15358,"name":"bool","nodeType":"ElementaryTypeName","src":"34194:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15361,"mutability":"mutable","name":"p3","nameLocation":"34211:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34203:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15360,"name":"address","nodeType":"ElementaryTypeName","src":"34203:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34163:51:28"},"returnParameters":{"id":15363,"nodeType":"ParameterList","parameters":[],"src":"34229:0:28"},"scope":19517,"src":"34151:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15398,"nodeType":"Block","src":"34425:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":15390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34475:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":15391,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15378,"src":"34514:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15392,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15380,"src":"34518:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15393,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15382,"src":"34522:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15394,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"34526:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34451:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34455:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34451:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34451:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15387,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34435:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34435:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15397,"nodeType":"ExpressionStatement","src":"34435:95:28"}]},"id":15399,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34353:3:28","nodeType":"FunctionDefinition","parameters":{"id":15385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"mutability":"mutable","name":"p0","nameLocation":"34371:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34357:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15377,"name":"string","nodeType":"ElementaryTypeName","src":"34357:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15380,"mutability":"mutable","name":"p1","nameLocation":"34383:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34375:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15379,"name":"uint256","nodeType":"ElementaryTypeName","src":"34375:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15382,"mutability":"mutable","name":"p2","nameLocation":"34395:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34387:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15381,"name":"address","nodeType":"ElementaryTypeName","src":"34387:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15384,"mutability":"mutable","name":"p3","nameLocation":"34407:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34399:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15383,"name":"uint256","nodeType":"ElementaryTypeName","src":"34399:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34356:54:28"},"returnParameters":{"id":15386,"nodeType":"ParameterList","parameters":[],"src":"34425:0:28"},"scope":19517,"src":"34344:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15421,"nodeType":"Block","src":"34630:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":15413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34680:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":15414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15401,"src":"34718:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15415,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15403,"src":"34722:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15416,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15405,"src":"34726:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15417,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15407,"src":"34730:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34656:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34660:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34656:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34656:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34640:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34640:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15420,"nodeType":"ExpressionStatement","src":"34640:94:28"}]},"id":15422,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34552:3:28","nodeType":"FunctionDefinition","parameters":{"id":15408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15401,"mutability":"mutable","name":"p0","nameLocation":"34570:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34556:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15400,"name":"string","nodeType":"ElementaryTypeName","src":"34556:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15403,"mutability":"mutable","name":"p1","nameLocation":"34582:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34574:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15402,"name":"uint256","nodeType":"ElementaryTypeName","src":"34574:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15405,"mutability":"mutable","name":"p2","nameLocation":"34594:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34586:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15404,"name":"address","nodeType":"ElementaryTypeName","src":"34586:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15407,"mutability":"mutable","name":"p3","nameLocation":"34612:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34598:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15406,"name":"string","nodeType":"ElementaryTypeName","src":"34598:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34555:60:28"},"returnParameters":{"id":15409,"nodeType":"ParameterList","parameters":[],"src":"34630:0:28"},"scope":19517,"src":"34543:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15444,"nodeType":"Block","src":"34825:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":15436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34875:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":15437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"34911:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15438,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15426,"src":"34915:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15439,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15428,"src":"34919:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15440,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15430,"src":"34923:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34851:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34855:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34851:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34851:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34835:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34835:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15443,"nodeType":"ExpressionStatement","src":"34835:92:28"}]},"id":15445,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34756:3:28","nodeType":"FunctionDefinition","parameters":{"id":15431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15424,"mutability":"mutable","name":"p0","nameLocation":"34774:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34760:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15423,"name":"string","nodeType":"ElementaryTypeName","src":"34760:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15426,"mutability":"mutable","name":"p1","nameLocation":"34786:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34778:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15425,"name":"uint256","nodeType":"ElementaryTypeName","src":"34778:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15428,"mutability":"mutable","name":"p2","nameLocation":"34798:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34790:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15427,"name":"address","nodeType":"ElementaryTypeName","src":"34790:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15430,"mutability":"mutable","name":"p3","nameLocation":"34807:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34802:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15429,"name":"bool","nodeType":"ElementaryTypeName","src":"34802:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34759:51:28"},"returnParameters":{"id":15432,"nodeType":"ParameterList","parameters":[],"src":"34825:0:28"},"scope":19517,"src":"34747:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15467,"nodeType":"Block","src":"35021:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":15459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35071:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":15460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15447,"src":"35110:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15449,"src":"35114:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"35118:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15463,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15453,"src":"35122:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35047:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35051:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35047:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35047:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35031:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35031:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15466,"nodeType":"ExpressionStatement","src":"35031:95:28"}]},"id":15468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34949:3:28","nodeType":"FunctionDefinition","parameters":{"id":15454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15447,"mutability":"mutable","name":"p0","nameLocation":"34967:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34953:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15446,"name":"string","nodeType":"ElementaryTypeName","src":"34953:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15449,"mutability":"mutable","name":"p1","nameLocation":"34979:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34971:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15448,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15451,"mutability":"mutable","name":"p2","nameLocation":"34991:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34983:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15450,"name":"address","nodeType":"ElementaryTypeName","src":"34983:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15453,"mutability":"mutable","name":"p3","nameLocation":"35003:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34995:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15452,"name":"address","nodeType":"ElementaryTypeName","src":"34995:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34952:54:28"},"returnParameters":{"id":15455,"nodeType":"ParameterList","parameters":[],"src":"35021:0:28"},"scope":19517,"src":"34940:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15490,"nodeType":"Block","src":"35226:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":15482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35276:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":15483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15470,"src":"35314:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15472,"src":"35318:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15474,"src":"35322:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15486,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15476,"src":"35326:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35252:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35256:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35252:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35236:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35236:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15489,"nodeType":"ExpressionStatement","src":"35236:94:28"}]},"id":15491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35148:3:28","nodeType":"FunctionDefinition","parameters":{"id":15477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15470,"mutability":"mutable","name":"p0","nameLocation":"35166:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35152:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15469,"name":"string","nodeType":"ElementaryTypeName","src":"35152:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15472,"mutability":"mutable","name":"p1","nameLocation":"35184:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35170:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15471,"name":"string","nodeType":"ElementaryTypeName","src":"35170:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15474,"mutability":"mutable","name":"p2","nameLocation":"35196:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35188:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15473,"name":"uint256","nodeType":"ElementaryTypeName","src":"35188:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15476,"mutability":"mutable","name":"p3","nameLocation":"35208:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35200:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15475,"name":"uint256","nodeType":"ElementaryTypeName","src":"35200:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35151:60:28"},"returnParameters":{"id":15478,"nodeType":"ParameterList","parameters":[],"src":"35226:0:28"},"scope":19517,"src":"35139:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15513,"nodeType":"Block","src":"35436:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":15505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35486:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":15506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15493,"src":"35523:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15495,"src":"35527:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"35531:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15509,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15499,"src":"35535:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35462:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35466:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35462:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35462:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35446:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35446:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15512,"nodeType":"ExpressionStatement","src":"35446:93:28"}]},"id":15514,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35352:3:28","nodeType":"FunctionDefinition","parameters":{"id":15500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15493,"mutability":"mutable","name":"p0","nameLocation":"35370:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35356:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15492,"name":"string","nodeType":"ElementaryTypeName","src":"35356:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15495,"mutability":"mutable","name":"p1","nameLocation":"35388:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35374:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15494,"name":"string","nodeType":"ElementaryTypeName","src":"35374:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15497,"mutability":"mutable","name":"p2","nameLocation":"35400:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35392:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15496,"name":"uint256","nodeType":"ElementaryTypeName","src":"35392:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15499,"mutability":"mutable","name":"p3","nameLocation":"35418:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35404:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15498,"name":"string","nodeType":"ElementaryTypeName","src":"35404:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35355:66:28"},"returnParameters":{"id":15501,"nodeType":"ParameterList","parameters":[],"src":"35436:0:28"},"scope":19517,"src":"35343:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15536,"nodeType":"Block","src":"35636:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":15528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35686:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":15529,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15516,"src":"35721:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15530,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15518,"src":"35725:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15531,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"35729:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15532,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15522,"src":"35733:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15526,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35662:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35666:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35662:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35662:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15525,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35646:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35646:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15535,"nodeType":"ExpressionStatement","src":"35646:91:28"}]},"id":15537,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35561:3:28","nodeType":"FunctionDefinition","parameters":{"id":15523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15516,"mutability":"mutable","name":"p0","nameLocation":"35579:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35565:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15515,"name":"string","nodeType":"ElementaryTypeName","src":"35565:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15518,"mutability":"mutable","name":"p1","nameLocation":"35597:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35583:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15517,"name":"string","nodeType":"ElementaryTypeName","src":"35583:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15520,"mutability":"mutable","name":"p2","nameLocation":"35609:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35601:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15519,"name":"uint256","nodeType":"ElementaryTypeName","src":"35601:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15522,"mutability":"mutable","name":"p3","nameLocation":"35618:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35613:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15521,"name":"bool","nodeType":"ElementaryTypeName","src":"35613:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35564:57:28"},"returnParameters":{"id":15524,"nodeType":"ParameterList","parameters":[],"src":"35636:0:28"},"scope":19517,"src":"35552:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15559,"nodeType":"Block","src":"35837:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":15551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35887:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":15552,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15539,"src":"35925:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15553,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15541,"src":"35929:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15554,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15543,"src":"35933:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15555,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15545,"src":"35937:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35863:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35867:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35863:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35863:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15548,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35847:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15558,"nodeType":"ExpressionStatement","src":"35847:94:28"}]},"id":15560,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35759:3:28","nodeType":"FunctionDefinition","parameters":{"id":15546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15539,"mutability":"mutable","name":"p0","nameLocation":"35777:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35763:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15538,"name":"string","nodeType":"ElementaryTypeName","src":"35763:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15541,"mutability":"mutable","name":"p1","nameLocation":"35795:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35781:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15540,"name":"string","nodeType":"ElementaryTypeName","src":"35781:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15543,"mutability":"mutable","name":"p2","nameLocation":"35807:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35799:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15542,"name":"uint256","nodeType":"ElementaryTypeName","src":"35799:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15545,"mutability":"mutable","name":"p3","nameLocation":"35819:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35811:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15544,"name":"address","nodeType":"ElementaryTypeName","src":"35811:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35762:60:28"},"returnParameters":{"id":15547,"nodeType":"ParameterList","parameters":[],"src":"35837:0:28"},"scope":19517,"src":"35750:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15582,"nodeType":"Block","src":"36047:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":15574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36097:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":15575,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15562,"src":"36134:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15564,"src":"36138:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15577,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"36142:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15578,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"36146:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36073:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36077:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36073:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36073:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36057:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36057:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15581,"nodeType":"ExpressionStatement","src":"36057:93:28"}]},"id":15583,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35963:3:28","nodeType":"FunctionDefinition","parameters":{"id":15569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15562,"mutability":"mutable","name":"p0","nameLocation":"35981:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"35967:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15561,"name":"string","nodeType":"ElementaryTypeName","src":"35967:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15564,"mutability":"mutable","name":"p1","nameLocation":"35999:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"35985:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15563,"name":"string","nodeType":"ElementaryTypeName","src":"35985:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15566,"mutability":"mutable","name":"p2","nameLocation":"36017:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"36003:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15565,"name":"string","nodeType":"ElementaryTypeName","src":"36003:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15568,"mutability":"mutable","name":"p3","nameLocation":"36029:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"36021:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15567,"name":"uint256","nodeType":"ElementaryTypeName","src":"36021:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35966:66:28"},"returnParameters":{"id":15570,"nodeType":"ParameterList","parameters":[],"src":"36047:0:28"},"scope":19517,"src":"35954:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15605,"nodeType":"Block","src":"36262:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":15597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36312:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":15598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15585,"src":"36348:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15599,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15587,"src":"36352:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"36356:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15601,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15591,"src":"36360:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36288:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36292:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36288:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36288:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36272:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36272:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15604,"nodeType":"ExpressionStatement","src":"36272:92:28"}]},"id":15606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36172:3:28","nodeType":"FunctionDefinition","parameters":{"id":15592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15585,"mutability":"mutable","name":"p0","nameLocation":"36190:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36176:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15584,"name":"string","nodeType":"ElementaryTypeName","src":"36176:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15587,"mutability":"mutable","name":"p1","nameLocation":"36208:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36194:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15586,"name":"string","nodeType":"ElementaryTypeName","src":"36194:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15589,"mutability":"mutable","name":"p2","nameLocation":"36226:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36212:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15588,"name":"string","nodeType":"ElementaryTypeName","src":"36212:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15591,"mutability":"mutable","name":"p3","nameLocation":"36244:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36230:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15590,"name":"string","nodeType":"ElementaryTypeName","src":"36230:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36175:72:28"},"returnParameters":{"id":15593,"nodeType":"ParameterList","parameters":[],"src":"36262:0:28"},"scope":19517,"src":"36163:208:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15628,"nodeType":"Block","src":"36467:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":15620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36517:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":15621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15608,"src":"36551:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15610,"src":"36555:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15612,"src":"36559:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15624,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15614,"src":"36563:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36493:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36497:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36493:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36493:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36477:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36477:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15627,"nodeType":"ExpressionStatement","src":"36477:90:28"}]},"id":15629,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36386:3:28","nodeType":"FunctionDefinition","parameters":{"id":15615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15608,"mutability":"mutable","name":"p0","nameLocation":"36404:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36390:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15607,"name":"string","nodeType":"ElementaryTypeName","src":"36390:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15610,"mutability":"mutable","name":"p1","nameLocation":"36422:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36408:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15609,"name":"string","nodeType":"ElementaryTypeName","src":"36408:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15612,"mutability":"mutable","name":"p2","nameLocation":"36440:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36426:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15611,"name":"string","nodeType":"ElementaryTypeName","src":"36426:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15614,"mutability":"mutable","name":"p3","nameLocation":"36449:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36444:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15613,"name":"bool","nodeType":"ElementaryTypeName","src":"36444:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36389:63:28"},"returnParameters":{"id":15616,"nodeType":"ParameterList","parameters":[],"src":"36467:0:28"},"scope":19517,"src":"36377:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15651,"nodeType":"Block","src":"36673:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":15643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36723:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":15644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15631,"src":"36760:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15633,"src":"36764:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15635,"src":"36768:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15647,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15637,"src":"36772:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36699:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36703:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36699:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36699:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36683:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36683:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15650,"nodeType":"ExpressionStatement","src":"36683:93:28"}]},"id":15652,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36589:3:28","nodeType":"FunctionDefinition","parameters":{"id":15638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15631,"mutability":"mutable","name":"p0","nameLocation":"36607:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36593:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15630,"name":"string","nodeType":"ElementaryTypeName","src":"36593:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15633,"mutability":"mutable","name":"p1","nameLocation":"36625:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36611:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15632,"name":"string","nodeType":"ElementaryTypeName","src":"36611:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15635,"mutability":"mutable","name":"p2","nameLocation":"36643:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36629:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15634,"name":"string","nodeType":"ElementaryTypeName","src":"36629:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15637,"mutability":"mutable","name":"p3","nameLocation":"36655:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36647:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15636,"name":"address","nodeType":"ElementaryTypeName","src":"36647:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36592:66:28"},"returnParameters":{"id":15639,"nodeType":"ParameterList","parameters":[],"src":"36673:0:28"},"scope":19517,"src":"36580:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15674,"nodeType":"Block","src":"36873:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":15666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36923:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":15667,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15654,"src":"36958:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15668,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15656,"src":"36962:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15669,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"36966:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15670,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15660,"src":"36970:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36899:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36903:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36899:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36899:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15663,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36883:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36883:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15673,"nodeType":"ExpressionStatement","src":"36883:91:28"}]},"id":15675,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36798:3:28","nodeType":"FunctionDefinition","parameters":{"id":15661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15654,"mutability":"mutable","name":"p0","nameLocation":"36816:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36802:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15653,"name":"string","nodeType":"ElementaryTypeName","src":"36802:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15656,"mutability":"mutable","name":"p1","nameLocation":"36834:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36820:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15655,"name":"string","nodeType":"ElementaryTypeName","src":"36820:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15658,"mutability":"mutable","name":"p2","nameLocation":"36843:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36838:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15657,"name":"bool","nodeType":"ElementaryTypeName","src":"36838:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15660,"mutability":"mutable","name":"p3","nameLocation":"36855:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36847:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15659,"name":"uint256","nodeType":"ElementaryTypeName","src":"36847:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36801:57:28"},"returnParameters":{"id":15662,"nodeType":"ParameterList","parameters":[],"src":"36873:0:28"},"scope":19517,"src":"36789:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15697,"nodeType":"Block","src":"37077:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":15689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37127:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":15690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15677,"src":"37161:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15691,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15679,"src":"37165:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15692,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"37169:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15693,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15683,"src":"37173:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37103:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37107:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37103:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37103:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37087:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37087:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15696,"nodeType":"ExpressionStatement","src":"37087:90:28"}]},"id":15698,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36996:3:28","nodeType":"FunctionDefinition","parameters":{"id":15684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15677,"mutability":"mutable","name":"p0","nameLocation":"37014:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37000:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15676,"name":"string","nodeType":"ElementaryTypeName","src":"37000:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15679,"mutability":"mutable","name":"p1","nameLocation":"37032:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37018:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15678,"name":"string","nodeType":"ElementaryTypeName","src":"37018:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15681,"mutability":"mutable","name":"p2","nameLocation":"37041:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37036:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15680,"name":"bool","nodeType":"ElementaryTypeName","src":"37036:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15683,"mutability":"mutable","name":"p3","nameLocation":"37059:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37045:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15682,"name":"string","nodeType":"ElementaryTypeName","src":"37045:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36999:63:28"},"returnParameters":{"id":15685,"nodeType":"ParameterList","parameters":[],"src":"37077:0:28"},"scope":19517,"src":"36987:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15720,"nodeType":"Block","src":"37271:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":15712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37321:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":15713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15700,"src":"37353:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15714,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"37357:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15715,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15704,"src":"37361:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15716,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"37365:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37297:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37301:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37297:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37297:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37281:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37281:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15719,"nodeType":"ExpressionStatement","src":"37281:88:28"}]},"id":15721,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37199:3:28","nodeType":"FunctionDefinition","parameters":{"id":15707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15700,"mutability":"mutable","name":"p0","nameLocation":"37217:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37203:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15699,"name":"string","nodeType":"ElementaryTypeName","src":"37203:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15702,"mutability":"mutable","name":"p1","nameLocation":"37235:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37221:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15701,"name":"string","nodeType":"ElementaryTypeName","src":"37221:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15704,"mutability":"mutable","name":"p2","nameLocation":"37244:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37239:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15703,"name":"bool","nodeType":"ElementaryTypeName","src":"37239:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15706,"mutability":"mutable","name":"p3","nameLocation":"37253:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37248:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15705,"name":"bool","nodeType":"ElementaryTypeName","src":"37248:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37202:54:28"},"returnParameters":{"id":15708,"nodeType":"ParameterList","parameters":[],"src":"37271:0:28"},"scope":19517,"src":"37190:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15743,"nodeType":"Block","src":"37466:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":15735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37516:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":15736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15723,"src":"37551:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"37555:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"37559:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15739,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15729,"src":"37563:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37492:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37496:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37492:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37492:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37476:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37476:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15742,"nodeType":"ExpressionStatement","src":"37476:91:28"}]},"id":15744,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37391:3:28","nodeType":"FunctionDefinition","parameters":{"id":15730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15723,"mutability":"mutable","name":"p0","nameLocation":"37409:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37395:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15722,"name":"string","nodeType":"ElementaryTypeName","src":"37395:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15725,"mutability":"mutable","name":"p1","nameLocation":"37427:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37413:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15724,"name":"string","nodeType":"ElementaryTypeName","src":"37413:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15727,"mutability":"mutable","name":"p2","nameLocation":"37436:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37431:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15726,"name":"bool","nodeType":"ElementaryTypeName","src":"37431:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15729,"mutability":"mutable","name":"p3","nameLocation":"37448:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37440:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15728,"name":"address","nodeType":"ElementaryTypeName","src":"37440:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37394:57:28"},"returnParameters":{"id":15731,"nodeType":"ParameterList","parameters":[],"src":"37466:0:28"},"scope":19517,"src":"37382:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15766,"nodeType":"Block","src":"37667:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":15758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37717:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":15759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"37755:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15748,"src":"37759:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15750,"src":"37763:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15762,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"37767:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37693:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37697:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37693:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37693:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37677:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37677:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15765,"nodeType":"ExpressionStatement","src":"37677:94:28"}]},"id":15767,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37589:3:28","nodeType":"FunctionDefinition","parameters":{"id":15753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15746,"mutability":"mutable","name":"p0","nameLocation":"37607:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37593:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15745,"name":"string","nodeType":"ElementaryTypeName","src":"37593:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15748,"mutability":"mutable","name":"p1","nameLocation":"37625:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37611:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15747,"name":"string","nodeType":"ElementaryTypeName","src":"37611:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15750,"mutability":"mutable","name":"p2","nameLocation":"37637:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37629:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15749,"name":"address","nodeType":"ElementaryTypeName","src":"37629:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15752,"mutability":"mutable","name":"p3","nameLocation":"37649:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37641:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15751,"name":"uint256","nodeType":"ElementaryTypeName","src":"37641:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37592:60:28"},"returnParameters":{"id":15754,"nodeType":"ParameterList","parameters":[],"src":"37667:0:28"},"scope":19517,"src":"37580:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15789,"nodeType":"Block","src":"37877:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":15781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37927:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":15782,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15769,"src":"37964:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15783,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15771,"src":"37968:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15784,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15773,"src":"37972:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15785,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15775,"src":"37976:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37903:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37907:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37903:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37903:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15778,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37887:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37887:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15788,"nodeType":"ExpressionStatement","src":"37887:93:28"}]},"id":15790,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37793:3:28","nodeType":"FunctionDefinition","parameters":{"id":15776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15769,"mutability":"mutable","name":"p0","nameLocation":"37811:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37797:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15768,"name":"string","nodeType":"ElementaryTypeName","src":"37797:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15771,"mutability":"mutable","name":"p1","nameLocation":"37829:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37815:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15770,"name":"string","nodeType":"ElementaryTypeName","src":"37815:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15773,"mutability":"mutable","name":"p2","nameLocation":"37841:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37833:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15772,"name":"address","nodeType":"ElementaryTypeName","src":"37833:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15775,"mutability":"mutable","name":"p3","nameLocation":"37859:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37845:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15774,"name":"string","nodeType":"ElementaryTypeName","src":"37845:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37796:66:28"},"returnParameters":{"id":15777,"nodeType":"ParameterList","parameters":[],"src":"37877:0:28"},"scope":19517,"src":"37784:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15812,"nodeType":"Block","src":"38077:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":15804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38127:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":15805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15792,"src":"38162:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15806,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15794,"src":"38166:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15807,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15796,"src":"38170:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15808,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15798,"src":"38174:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38103:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38107:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38103:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38103:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38087:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38087:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15811,"nodeType":"ExpressionStatement","src":"38087:91:28"}]},"id":15813,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38002:3:28","nodeType":"FunctionDefinition","parameters":{"id":15799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15792,"mutability":"mutable","name":"p0","nameLocation":"38020:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38006:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15791,"name":"string","nodeType":"ElementaryTypeName","src":"38006:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15794,"mutability":"mutable","name":"p1","nameLocation":"38038:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38024:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15793,"name":"string","nodeType":"ElementaryTypeName","src":"38024:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15796,"mutability":"mutable","name":"p2","nameLocation":"38050:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38042:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15795,"name":"address","nodeType":"ElementaryTypeName","src":"38042:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15798,"mutability":"mutable","name":"p3","nameLocation":"38059:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38054:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15797,"name":"bool","nodeType":"ElementaryTypeName","src":"38054:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38005:57:28"},"returnParameters":{"id":15800,"nodeType":"ParameterList","parameters":[],"src":"38077:0:28"},"scope":19517,"src":"37993:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15835,"nodeType":"Block","src":"38278:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":15827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38328:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":15828,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15815,"src":"38366:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15829,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15817,"src":"38370:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15830,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15819,"src":"38374:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15831,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15821,"src":"38378:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38304:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38308:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38304:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38304:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15824,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38288:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38288:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15834,"nodeType":"ExpressionStatement","src":"38288:94:28"}]},"id":15836,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38200:3:28","nodeType":"FunctionDefinition","parameters":{"id":15822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15815,"mutability":"mutable","name":"p0","nameLocation":"38218:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38204:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15814,"name":"string","nodeType":"ElementaryTypeName","src":"38204:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15817,"mutability":"mutable","name":"p1","nameLocation":"38236:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38222:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15816,"name":"string","nodeType":"ElementaryTypeName","src":"38222:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15819,"mutability":"mutable","name":"p2","nameLocation":"38248:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38240:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15818,"name":"address","nodeType":"ElementaryTypeName","src":"38240:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15821,"mutability":"mutable","name":"p3","nameLocation":"38260:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38252:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15820,"name":"address","nodeType":"ElementaryTypeName","src":"38252:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38203:60:28"},"returnParameters":{"id":15823,"nodeType":"ParameterList","parameters":[],"src":"38278:0:28"},"scope":19517,"src":"38191:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15858,"nodeType":"Block","src":"38473:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":15850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38523:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":15851,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15838,"src":"38559:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15852,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15840,"src":"38563:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15853,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15842,"src":"38567:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15854,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15844,"src":"38571:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38499:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38503:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38499:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38499:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15847,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38483:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38483:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15857,"nodeType":"ExpressionStatement","src":"38483:92:28"}]},"id":15859,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38404:3:28","nodeType":"FunctionDefinition","parameters":{"id":15845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15838,"mutability":"mutable","name":"p0","nameLocation":"38422:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38408:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15837,"name":"string","nodeType":"ElementaryTypeName","src":"38408:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15840,"mutability":"mutable","name":"p1","nameLocation":"38431:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38426:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15839,"name":"bool","nodeType":"ElementaryTypeName","src":"38426:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15842,"mutability":"mutable","name":"p2","nameLocation":"38443:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38435:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15841,"name":"uint256","nodeType":"ElementaryTypeName","src":"38435:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15844,"mutability":"mutable","name":"p3","nameLocation":"38455:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38447:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15843,"name":"uint256","nodeType":"ElementaryTypeName","src":"38447:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38407:51:28"},"returnParameters":{"id":15846,"nodeType":"ParameterList","parameters":[],"src":"38473:0:28"},"scope":19517,"src":"38395:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15881,"nodeType":"Block","src":"38672:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":15873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38722:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":15874,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15861,"src":"38757:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15875,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"38761:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15876,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15865,"src":"38765:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15877,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"38769:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38698:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38702:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38698:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38698:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15870,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38682:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38682:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15880,"nodeType":"ExpressionStatement","src":"38682:91:28"}]},"id":15882,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38597:3:28","nodeType":"FunctionDefinition","parameters":{"id":15868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15861,"mutability":"mutable","name":"p0","nameLocation":"38615:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38601:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15860,"name":"string","nodeType":"ElementaryTypeName","src":"38601:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15863,"mutability":"mutable","name":"p1","nameLocation":"38624:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38619:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15862,"name":"bool","nodeType":"ElementaryTypeName","src":"38619:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15865,"mutability":"mutable","name":"p2","nameLocation":"38636:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38628:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15864,"name":"uint256","nodeType":"ElementaryTypeName","src":"38628:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15867,"mutability":"mutable","name":"p3","nameLocation":"38654:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38640:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15866,"name":"string","nodeType":"ElementaryTypeName","src":"38640:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38600:57:28"},"returnParameters":{"id":15869,"nodeType":"ParameterList","parameters":[],"src":"38672:0:28"},"scope":19517,"src":"38588:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15904,"nodeType":"Block","src":"38861:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":15896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38911:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":15897,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15884,"src":"38944:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15898,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15886,"src":"38948:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15899,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15888,"src":"38952:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15900,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15890,"src":"38956:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15894,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38887:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38891:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38887:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38887:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15893,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38871:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38871:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15903,"nodeType":"ExpressionStatement","src":"38871:89:28"}]},"id":15905,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38795:3:28","nodeType":"FunctionDefinition","parameters":{"id":15891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15884,"mutability":"mutable","name":"p0","nameLocation":"38813:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38799:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15883,"name":"string","nodeType":"ElementaryTypeName","src":"38799:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15886,"mutability":"mutable","name":"p1","nameLocation":"38822:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38817:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15885,"name":"bool","nodeType":"ElementaryTypeName","src":"38817:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15888,"mutability":"mutable","name":"p2","nameLocation":"38834:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38826:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15887,"name":"uint256","nodeType":"ElementaryTypeName","src":"38826:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15890,"mutability":"mutable","name":"p3","nameLocation":"38843:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38838:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15889,"name":"bool","nodeType":"ElementaryTypeName","src":"38838:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38798:48:28"},"returnParameters":{"id":15892,"nodeType":"ParameterList","parameters":[],"src":"38861:0:28"},"scope":19517,"src":"38786:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15927,"nodeType":"Block","src":"39051:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":15919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39101:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":15920,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15907,"src":"39137:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15921,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15909,"src":"39141:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15922,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15911,"src":"39145:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15923,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15913,"src":"39149:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39077:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39081:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39077:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39077:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15916,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39061:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39061:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15926,"nodeType":"ExpressionStatement","src":"39061:92:28"}]},"id":15928,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38982:3:28","nodeType":"FunctionDefinition","parameters":{"id":15914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15907,"mutability":"mutable","name":"p0","nameLocation":"39000:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"38986:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15906,"name":"string","nodeType":"ElementaryTypeName","src":"38986:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15909,"mutability":"mutable","name":"p1","nameLocation":"39009:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"39004:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15908,"name":"bool","nodeType":"ElementaryTypeName","src":"39004:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15911,"mutability":"mutable","name":"p2","nameLocation":"39021:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"39013:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15910,"name":"uint256","nodeType":"ElementaryTypeName","src":"39013:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15913,"mutability":"mutable","name":"p3","nameLocation":"39033:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"39025:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15912,"name":"address","nodeType":"ElementaryTypeName","src":"39025:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38985:51:28"},"returnParameters":{"id":15915,"nodeType":"ParameterList","parameters":[],"src":"39051:0:28"},"scope":19517,"src":"38973:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15950,"nodeType":"Block","src":"39250:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":15942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39300:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":15943,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15930,"src":"39335:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15944,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15932,"src":"39339:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15945,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"39343:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15946,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"39347:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15940,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39276:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39280:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39276:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39276:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15939,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39260:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39260:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15949,"nodeType":"ExpressionStatement","src":"39260:91:28"}]},"id":15951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39175:3:28","nodeType":"FunctionDefinition","parameters":{"id":15937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15930,"mutability":"mutable","name":"p0","nameLocation":"39193:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39179:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15929,"name":"string","nodeType":"ElementaryTypeName","src":"39179:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15932,"mutability":"mutable","name":"p1","nameLocation":"39202:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39197:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15931,"name":"bool","nodeType":"ElementaryTypeName","src":"39197:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15934,"mutability":"mutable","name":"p2","nameLocation":"39220:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39206:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15933,"name":"string","nodeType":"ElementaryTypeName","src":"39206:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15936,"mutability":"mutable","name":"p3","nameLocation":"39232:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39224:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15935,"name":"uint256","nodeType":"ElementaryTypeName","src":"39224:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39178:57:28"},"returnParameters":{"id":15938,"nodeType":"ParameterList","parameters":[],"src":"39250:0:28"},"scope":19517,"src":"39166:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15973,"nodeType":"Block","src":"39454:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":15965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39504:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":15966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15953,"src":"39538:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15967,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15955,"src":"39542:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15968,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15957,"src":"39546:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15969,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"39550:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39480:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39484:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39480:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39480:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39464:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39464:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15972,"nodeType":"ExpressionStatement","src":"39464:90:28"}]},"id":15974,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39373:3:28","nodeType":"FunctionDefinition","parameters":{"id":15960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15953,"mutability":"mutable","name":"p0","nameLocation":"39391:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39377:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15952,"name":"string","nodeType":"ElementaryTypeName","src":"39377:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15955,"mutability":"mutable","name":"p1","nameLocation":"39400:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39395:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15954,"name":"bool","nodeType":"ElementaryTypeName","src":"39395:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15957,"mutability":"mutable","name":"p2","nameLocation":"39418:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39404:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15956,"name":"string","nodeType":"ElementaryTypeName","src":"39404:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15959,"mutability":"mutable","name":"p3","nameLocation":"39436:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39422:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15958,"name":"string","nodeType":"ElementaryTypeName","src":"39422:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39376:63:28"},"returnParameters":{"id":15961,"nodeType":"ParameterList","parameters":[],"src":"39454:0:28"},"scope":19517,"src":"39364:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15996,"nodeType":"Block","src":"39648:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":15988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39698:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":15989,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15976,"src":"39730:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15990,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15978,"src":"39734:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15991,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15980,"src":"39738:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15992,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15982,"src":"39742:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39674:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39678:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39674:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39674:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15985,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39658:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39658:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15995,"nodeType":"ExpressionStatement","src":"39658:88:28"}]},"id":15997,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39576:3:28","nodeType":"FunctionDefinition","parameters":{"id":15983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15976,"mutability":"mutable","name":"p0","nameLocation":"39594:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39580:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15975,"name":"string","nodeType":"ElementaryTypeName","src":"39580:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15978,"mutability":"mutable","name":"p1","nameLocation":"39603:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39598:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15977,"name":"bool","nodeType":"ElementaryTypeName","src":"39598:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15980,"mutability":"mutable","name":"p2","nameLocation":"39621:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39607:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15979,"name":"string","nodeType":"ElementaryTypeName","src":"39607:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15982,"mutability":"mutable","name":"p3","nameLocation":"39630:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39625:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15981,"name":"bool","nodeType":"ElementaryTypeName","src":"39625:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39579:54:28"},"returnParameters":{"id":15984,"nodeType":"ParameterList","parameters":[],"src":"39648:0:28"},"scope":19517,"src":"39567:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16019,"nodeType":"Block","src":"39843:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":16011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39893:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":16012,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"39928:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16013,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16001,"src":"39932:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16014,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16003,"src":"39936:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16015,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16005,"src":"39940:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39869:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39873:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39869:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39869:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16008,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39853:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39853:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16018,"nodeType":"ExpressionStatement","src":"39853:91:28"}]},"id":16020,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39768:3:28","nodeType":"FunctionDefinition","parameters":{"id":16006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15999,"mutability":"mutable","name":"p0","nameLocation":"39786:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39772:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15998,"name":"string","nodeType":"ElementaryTypeName","src":"39772:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16001,"mutability":"mutable","name":"p1","nameLocation":"39795:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39790:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16000,"name":"bool","nodeType":"ElementaryTypeName","src":"39790:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16003,"mutability":"mutable","name":"p2","nameLocation":"39813:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39799:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16002,"name":"string","nodeType":"ElementaryTypeName","src":"39799:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16005,"mutability":"mutable","name":"p3","nameLocation":"39825:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39817:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16004,"name":"address","nodeType":"ElementaryTypeName","src":"39817:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39771:57:28"},"returnParameters":{"id":16007,"nodeType":"ParameterList","parameters":[],"src":"39843:0:28"},"scope":19517,"src":"39759:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16042,"nodeType":"Block","src":"40032:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":16034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40082:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":16035,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16022,"src":"40115:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16036,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16024,"src":"40119:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16037,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16026,"src":"40123:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16038,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16028,"src":"40127:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40058:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40062:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40058:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40058:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40042:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40042:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16041,"nodeType":"ExpressionStatement","src":"40042:89:28"}]},"id":16043,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39966:3:28","nodeType":"FunctionDefinition","parameters":{"id":16029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16022,"mutability":"mutable","name":"p0","nameLocation":"39984:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"39970:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16021,"name":"string","nodeType":"ElementaryTypeName","src":"39970:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16024,"mutability":"mutable","name":"p1","nameLocation":"39993:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"39988:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16023,"name":"bool","nodeType":"ElementaryTypeName","src":"39988:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16026,"mutability":"mutable","name":"p2","nameLocation":"40002:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"39997:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16025,"name":"bool","nodeType":"ElementaryTypeName","src":"39997:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16028,"mutability":"mutable","name":"p3","nameLocation":"40014:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"40006:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16027,"name":"uint256","nodeType":"ElementaryTypeName","src":"40006:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39969:48:28"},"returnParameters":{"id":16030,"nodeType":"ParameterList","parameters":[],"src":"40032:0:28"},"scope":19517,"src":"39957:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16065,"nodeType":"Block","src":"40225:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":16057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40275:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":16058,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16045,"src":"40307:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16059,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"40311:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16060,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16049,"src":"40315:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16061,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"40319:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40251:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40255:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40251:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40251:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16054,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40235:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40235:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16064,"nodeType":"ExpressionStatement","src":"40235:88:28"}]},"id":16066,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40153:3:28","nodeType":"FunctionDefinition","parameters":{"id":16052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16045,"mutability":"mutable","name":"p0","nameLocation":"40171:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40157:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16044,"name":"string","nodeType":"ElementaryTypeName","src":"40157:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16047,"mutability":"mutable","name":"p1","nameLocation":"40180:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40175:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16046,"name":"bool","nodeType":"ElementaryTypeName","src":"40175:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16049,"mutability":"mutable","name":"p2","nameLocation":"40189:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40184:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16048,"name":"bool","nodeType":"ElementaryTypeName","src":"40184:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16051,"mutability":"mutable","name":"p3","nameLocation":"40207:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40193:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16050,"name":"string","nodeType":"ElementaryTypeName","src":"40193:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40156:54:28"},"returnParameters":{"id":16053,"nodeType":"ParameterList","parameters":[],"src":"40225:0:28"},"scope":19517,"src":"40144:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16088,"nodeType":"Block","src":"40408:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":16080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40458:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":16081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16068,"src":"40488:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"40492:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16072,"src":"40496:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16084,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"40500:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40434:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40438:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40434:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40434:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40418:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40418:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16087,"nodeType":"ExpressionStatement","src":"40418:86:28"}]},"id":16089,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40345:3:28","nodeType":"FunctionDefinition","parameters":{"id":16075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16068,"mutability":"mutable","name":"p0","nameLocation":"40363:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40349:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16067,"name":"string","nodeType":"ElementaryTypeName","src":"40349:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16070,"mutability":"mutable","name":"p1","nameLocation":"40372:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40367:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16069,"name":"bool","nodeType":"ElementaryTypeName","src":"40367:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16072,"mutability":"mutable","name":"p2","nameLocation":"40381:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40376:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16071,"name":"bool","nodeType":"ElementaryTypeName","src":"40376:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16074,"mutability":"mutable","name":"p3","nameLocation":"40390:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40385:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16073,"name":"bool","nodeType":"ElementaryTypeName","src":"40385:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40348:45:28"},"returnParameters":{"id":16076,"nodeType":"ParameterList","parameters":[],"src":"40408:0:28"},"scope":19517,"src":"40336:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16111,"nodeType":"Block","src":"40592:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":16103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40642:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":16104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16091,"src":"40675:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16093,"src":"40679:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16106,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16095,"src":"40683:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16107,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16097,"src":"40687:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40618:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40622:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40618:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40618:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40602:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40602:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16110,"nodeType":"ExpressionStatement","src":"40602:89:28"}]},"id":16112,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40526:3:28","nodeType":"FunctionDefinition","parameters":{"id":16098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16091,"mutability":"mutable","name":"p0","nameLocation":"40544:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40530:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16090,"name":"string","nodeType":"ElementaryTypeName","src":"40530:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16093,"mutability":"mutable","name":"p1","nameLocation":"40553:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40548:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16092,"name":"bool","nodeType":"ElementaryTypeName","src":"40548:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16095,"mutability":"mutable","name":"p2","nameLocation":"40562:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40557:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16094,"name":"bool","nodeType":"ElementaryTypeName","src":"40557:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16097,"mutability":"mutable","name":"p3","nameLocation":"40574:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40566:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16096,"name":"address","nodeType":"ElementaryTypeName","src":"40566:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40529:48:28"},"returnParameters":{"id":16099,"nodeType":"ParameterList","parameters":[],"src":"40592:0:28"},"scope":19517,"src":"40517:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16134,"nodeType":"Block","src":"40782:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":16126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40832:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":16127,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16114,"src":"40868:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16128,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"40872:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16129,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16118,"src":"40876:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16130,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16120,"src":"40880:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40808:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40812:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40808:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40808:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40792:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40792:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16133,"nodeType":"ExpressionStatement","src":"40792:92:28"}]},"id":16135,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40713:3:28","nodeType":"FunctionDefinition","parameters":{"id":16121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16114,"mutability":"mutable","name":"p0","nameLocation":"40731:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40717:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16113,"name":"string","nodeType":"ElementaryTypeName","src":"40717:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16116,"mutability":"mutable","name":"p1","nameLocation":"40740:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40735:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16115,"name":"bool","nodeType":"ElementaryTypeName","src":"40735:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16118,"mutability":"mutable","name":"p2","nameLocation":"40752:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40744:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16117,"name":"address","nodeType":"ElementaryTypeName","src":"40744:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16120,"mutability":"mutable","name":"p3","nameLocation":"40764:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40756:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16119,"name":"uint256","nodeType":"ElementaryTypeName","src":"40756:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40716:51:28"},"returnParameters":{"id":16122,"nodeType":"ParameterList","parameters":[],"src":"40782:0:28"},"scope":19517,"src":"40704:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16157,"nodeType":"Block","src":"40981:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":16149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41031:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":16150,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16137,"src":"41066:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16151,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16139,"src":"41070:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16152,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16141,"src":"41074:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16153,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16143,"src":"41078:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41007:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41011:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41007:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41007:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16146,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40991:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40991:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16156,"nodeType":"ExpressionStatement","src":"40991:91:28"}]},"id":16158,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40906:3:28","nodeType":"FunctionDefinition","parameters":{"id":16144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16137,"mutability":"mutable","name":"p0","nameLocation":"40924:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40910:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16136,"name":"string","nodeType":"ElementaryTypeName","src":"40910:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16139,"mutability":"mutable","name":"p1","nameLocation":"40933:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40928:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16138,"name":"bool","nodeType":"ElementaryTypeName","src":"40928:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16141,"mutability":"mutable","name":"p2","nameLocation":"40945:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40937:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16140,"name":"address","nodeType":"ElementaryTypeName","src":"40937:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16143,"mutability":"mutable","name":"p3","nameLocation":"40963:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40949:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16142,"name":"string","nodeType":"ElementaryTypeName","src":"40949:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40909:57:28"},"returnParameters":{"id":16145,"nodeType":"ParameterList","parameters":[],"src":"40981:0:28"},"scope":19517,"src":"40897:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16180,"nodeType":"Block","src":"41170:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":16172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41220:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":16173,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16160,"src":"41253:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16174,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16162,"src":"41257:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16175,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16164,"src":"41261:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16176,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16166,"src":"41265:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16170,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41196:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41200:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41196:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41196:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16169,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41180:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41180:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16179,"nodeType":"ExpressionStatement","src":"41180:89:28"}]},"id":16181,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41104:3:28","nodeType":"FunctionDefinition","parameters":{"id":16167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16160,"mutability":"mutable","name":"p0","nameLocation":"41122:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41108:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16159,"name":"string","nodeType":"ElementaryTypeName","src":"41108:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16162,"mutability":"mutable","name":"p1","nameLocation":"41131:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41126:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16161,"name":"bool","nodeType":"ElementaryTypeName","src":"41126:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16164,"mutability":"mutable","name":"p2","nameLocation":"41143:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41135:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16163,"name":"address","nodeType":"ElementaryTypeName","src":"41135:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16166,"mutability":"mutable","name":"p3","nameLocation":"41152:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41147:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16165,"name":"bool","nodeType":"ElementaryTypeName","src":"41147:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41107:48:28"},"returnParameters":{"id":16168,"nodeType":"ParameterList","parameters":[],"src":"41170:0:28"},"scope":19517,"src":"41095:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16203,"nodeType":"Block","src":"41360:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":16195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41410:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":16196,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16183,"src":"41446:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16197,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16185,"src":"41450:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16198,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16187,"src":"41454:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16199,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16189,"src":"41458:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16193,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41386:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41390:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41386:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41386:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16192,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41370:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41370:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16202,"nodeType":"ExpressionStatement","src":"41370:92:28"}]},"id":16204,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41291:3:28","nodeType":"FunctionDefinition","parameters":{"id":16190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16183,"mutability":"mutable","name":"p0","nameLocation":"41309:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41295:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16182,"name":"string","nodeType":"ElementaryTypeName","src":"41295:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16185,"mutability":"mutable","name":"p1","nameLocation":"41318:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41313:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16184,"name":"bool","nodeType":"ElementaryTypeName","src":"41313:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16187,"mutability":"mutable","name":"p2","nameLocation":"41330:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41322:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16186,"name":"address","nodeType":"ElementaryTypeName","src":"41322:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16189,"mutability":"mutable","name":"p3","nameLocation":"41342:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41334:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16188,"name":"address","nodeType":"ElementaryTypeName","src":"41334:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41294:51:28"},"returnParameters":{"id":16191,"nodeType":"ParameterList","parameters":[],"src":"41360:0:28"},"scope":19517,"src":"41282:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16226,"nodeType":"Block","src":"41556:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":16218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41606:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":16219,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16206,"src":"41645:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16220,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16208,"src":"41649:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16221,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16210,"src":"41653:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16222,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16212,"src":"41657:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16216,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41582:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41586:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41582:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41582:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16215,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41566:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41566:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16225,"nodeType":"ExpressionStatement","src":"41566:95:28"}]},"id":16227,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41484:3:28","nodeType":"FunctionDefinition","parameters":{"id":16213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16206,"mutability":"mutable","name":"p0","nameLocation":"41502:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41488:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16205,"name":"string","nodeType":"ElementaryTypeName","src":"41488:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16208,"mutability":"mutable","name":"p1","nameLocation":"41514:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41506:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16207,"name":"address","nodeType":"ElementaryTypeName","src":"41506:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16210,"mutability":"mutable","name":"p2","nameLocation":"41526:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41518:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16209,"name":"uint256","nodeType":"ElementaryTypeName","src":"41518:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16212,"mutability":"mutable","name":"p3","nameLocation":"41538:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41530:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16211,"name":"uint256","nodeType":"ElementaryTypeName","src":"41530:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41487:54:28"},"returnParameters":{"id":16214,"nodeType":"ParameterList","parameters":[],"src":"41556:0:28"},"scope":19517,"src":"41475:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16249,"nodeType":"Block","src":"41761:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":16241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41811:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":16242,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"41849:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16243,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16231,"src":"41853:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16244,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16233,"src":"41857:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16245,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16235,"src":"41861:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16239,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41787:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41791:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41787:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41787:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16238,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41771:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41771:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16248,"nodeType":"ExpressionStatement","src":"41771:94:28"}]},"id":16250,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41683:3:28","nodeType":"FunctionDefinition","parameters":{"id":16236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16229,"mutability":"mutable","name":"p0","nameLocation":"41701:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41687:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16228,"name":"string","nodeType":"ElementaryTypeName","src":"41687:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16231,"mutability":"mutable","name":"p1","nameLocation":"41713:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41705:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16230,"name":"address","nodeType":"ElementaryTypeName","src":"41705:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16233,"mutability":"mutable","name":"p2","nameLocation":"41725:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41717:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16232,"name":"uint256","nodeType":"ElementaryTypeName","src":"41717:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16235,"mutability":"mutable","name":"p3","nameLocation":"41743:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41729:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16234,"name":"string","nodeType":"ElementaryTypeName","src":"41729:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41686:60:28"},"returnParameters":{"id":16237,"nodeType":"ParameterList","parameters":[],"src":"41761:0:28"},"scope":19517,"src":"41674:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16272,"nodeType":"Block","src":"41956:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":16264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42006:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":16265,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16252,"src":"42042:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16266,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16254,"src":"42046:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16267,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16256,"src":"42050:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16268,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16258,"src":"42054:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16262,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41982:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41986:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41982:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41982:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16261,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41966:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41966:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16271,"nodeType":"ExpressionStatement","src":"41966:92:28"}]},"id":16273,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41887:3:28","nodeType":"FunctionDefinition","parameters":{"id":16259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16252,"mutability":"mutable","name":"p0","nameLocation":"41905:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41891:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16251,"name":"string","nodeType":"ElementaryTypeName","src":"41891:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16254,"mutability":"mutable","name":"p1","nameLocation":"41917:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41909:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16253,"name":"address","nodeType":"ElementaryTypeName","src":"41909:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16256,"mutability":"mutable","name":"p2","nameLocation":"41929:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41921:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16255,"name":"uint256","nodeType":"ElementaryTypeName","src":"41921:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16258,"mutability":"mutable","name":"p3","nameLocation":"41938:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41933:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16257,"name":"bool","nodeType":"ElementaryTypeName","src":"41933:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41890:51:28"},"returnParameters":{"id":16260,"nodeType":"ParameterList","parameters":[],"src":"41956:0:28"},"scope":19517,"src":"41878:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16295,"nodeType":"Block","src":"42152:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":16287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42202:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":16288,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16275,"src":"42241:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16289,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16277,"src":"42245:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16290,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"42249:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16291,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16281,"src":"42253:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42178:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42182:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42178:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42178:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16284,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42162:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42162:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16294,"nodeType":"ExpressionStatement","src":"42162:95:28"}]},"id":16296,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42080:3:28","nodeType":"FunctionDefinition","parameters":{"id":16282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16275,"mutability":"mutable","name":"p0","nameLocation":"42098:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42084:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16274,"name":"string","nodeType":"ElementaryTypeName","src":"42084:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16277,"mutability":"mutable","name":"p1","nameLocation":"42110:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42102:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16276,"name":"address","nodeType":"ElementaryTypeName","src":"42102:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16279,"mutability":"mutable","name":"p2","nameLocation":"42122:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42114:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16278,"name":"uint256","nodeType":"ElementaryTypeName","src":"42114:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16281,"mutability":"mutable","name":"p3","nameLocation":"42134:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42126:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16280,"name":"address","nodeType":"ElementaryTypeName","src":"42126:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42083:54:28"},"returnParameters":{"id":16283,"nodeType":"ParameterList","parameters":[],"src":"42152:0:28"},"scope":19517,"src":"42071:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16318,"nodeType":"Block","src":"42357:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":16310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42407:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":16311,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16298,"src":"42445:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16312,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"42449:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16313,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16302,"src":"42453:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16314,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16304,"src":"42457:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16308,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42383:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42387:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42383:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42383:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16307,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42367:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42367:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16317,"nodeType":"ExpressionStatement","src":"42367:94:28"}]},"id":16319,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42279:3:28","nodeType":"FunctionDefinition","parameters":{"id":16305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16298,"mutability":"mutable","name":"p0","nameLocation":"42297:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42283:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16297,"name":"string","nodeType":"ElementaryTypeName","src":"42283:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16300,"mutability":"mutable","name":"p1","nameLocation":"42309:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42301:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16299,"name":"address","nodeType":"ElementaryTypeName","src":"42301:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16302,"mutability":"mutable","name":"p2","nameLocation":"42327:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42313:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16301,"name":"string","nodeType":"ElementaryTypeName","src":"42313:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16304,"mutability":"mutable","name":"p3","nameLocation":"42339:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42331:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16303,"name":"uint256","nodeType":"ElementaryTypeName","src":"42331:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42282:60:28"},"returnParameters":{"id":16306,"nodeType":"ParameterList","parameters":[],"src":"42357:0:28"},"scope":19517,"src":"42270:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16341,"nodeType":"Block","src":"42567:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":16333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42617:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":16334,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16321,"src":"42654:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16335,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16323,"src":"42658:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16336,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16325,"src":"42662:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16337,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"42666:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16331,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42593:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42597:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42593:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42593:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16330,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42577:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42577:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16340,"nodeType":"ExpressionStatement","src":"42577:93:28"}]},"id":16342,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42483:3:28","nodeType":"FunctionDefinition","parameters":{"id":16328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16321,"mutability":"mutable","name":"p0","nameLocation":"42501:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42487:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16320,"name":"string","nodeType":"ElementaryTypeName","src":"42487:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16323,"mutability":"mutable","name":"p1","nameLocation":"42513:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42505:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16322,"name":"address","nodeType":"ElementaryTypeName","src":"42505:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16325,"mutability":"mutable","name":"p2","nameLocation":"42531:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42517:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16324,"name":"string","nodeType":"ElementaryTypeName","src":"42517:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16327,"mutability":"mutable","name":"p3","nameLocation":"42549:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42535:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16326,"name":"string","nodeType":"ElementaryTypeName","src":"42535:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42486:66:28"},"returnParameters":{"id":16329,"nodeType":"ParameterList","parameters":[],"src":"42567:0:28"},"scope":19517,"src":"42474:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16364,"nodeType":"Block","src":"42767:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":16356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42817:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":16357,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16344,"src":"42852:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16358,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16346,"src":"42856:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16359,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16348,"src":"42860:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16360,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16350,"src":"42864:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42793:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42797:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42793:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42793:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16353,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42777:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42777:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16363,"nodeType":"ExpressionStatement","src":"42777:91:28"}]},"id":16365,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42692:3:28","nodeType":"FunctionDefinition","parameters":{"id":16351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16344,"mutability":"mutable","name":"p0","nameLocation":"42710:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42696:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16343,"name":"string","nodeType":"ElementaryTypeName","src":"42696:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16346,"mutability":"mutable","name":"p1","nameLocation":"42722:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42714:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16345,"name":"address","nodeType":"ElementaryTypeName","src":"42714:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16348,"mutability":"mutable","name":"p2","nameLocation":"42740:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42726:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16347,"name":"string","nodeType":"ElementaryTypeName","src":"42726:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16350,"mutability":"mutable","name":"p3","nameLocation":"42749:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16349,"name":"bool","nodeType":"ElementaryTypeName","src":"42744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42695:57:28"},"returnParameters":{"id":16352,"nodeType":"ParameterList","parameters":[],"src":"42767:0:28"},"scope":19517,"src":"42683:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16387,"nodeType":"Block","src":"42968:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":16379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43018:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":16380,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16367,"src":"43056:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16381,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16369,"src":"43060:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16382,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16371,"src":"43064:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16383,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16373,"src":"43068:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42994:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42998:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42994:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42994:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16376,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42978:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42978:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16386,"nodeType":"ExpressionStatement","src":"42978:94:28"}]},"id":16388,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42890:3:28","nodeType":"FunctionDefinition","parameters":{"id":16374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16367,"mutability":"mutable","name":"p0","nameLocation":"42908:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42894:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16366,"name":"string","nodeType":"ElementaryTypeName","src":"42894:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16369,"mutability":"mutable","name":"p1","nameLocation":"42920:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42912:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16368,"name":"address","nodeType":"ElementaryTypeName","src":"42912:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16371,"mutability":"mutable","name":"p2","nameLocation":"42938:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42924:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16370,"name":"string","nodeType":"ElementaryTypeName","src":"42924:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16373,"mutability":"mutable","name":"p3","nameLocation":"42950:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42942:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16372,"name":"address","nodeType":"ElementaryTypeName","src":"42942:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42893:60:28"},"returnParameters":{"id":16375,"nodeType":"ParameterList","parameters":[],"src":"42968:0:28"},"scope":19517,"src":"42881:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16410,"nodeType":"Block","src":"43163:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":16402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43213:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":16403,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"43249:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16404,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"43253:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16405,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16394,"src":"43257:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16406,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16396,"src":"43261:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43189:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43193:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43189:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43189:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16399,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43173:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43173:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16409,"nodeType":"ExpressionStatement","src":"43173:92:28"}]},"id":16411,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43094:3:28","nodeType":"FunctionDefinition","parameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16390,"mutability":"mutable","name":"p0","nameLocation":"43112:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43098:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16389,"name":"string","nodeType":"ElementaryTypeName","src":"43098:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16392,"mutability":"mutable","name":"p1","nameLocation":"43124:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43116:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16391,"name":"address","nodeType":"ElementaryTypeName","src":"43116:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16394,"mutability":"mutable","name":"p2","nameLocation":"43133:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43128:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16393,"name":"bool","nodeType":"ElementaryTypeName","src":"43128:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16396,"mutability":"mutable","name":"p3","nameLocation":"43145:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43137:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16395,"name":"uint256","nodeType":"ElementaryTypeName","src":"43137:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43097:51:28"},"returnParameters":{"id":16398,"nodeType":"ParameterList","parameters":[],"src":"43163:0:28"},"scope":19517,"src":"43085:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16433,"nodeType":"Block","src":"43362:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":16425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43412:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":16426,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16413,"src":"43447:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16427,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16415,"src":"43451:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16428,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"43455:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16429,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16419,"src":"43459:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43388:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43392:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43388:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43388:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16422,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43372:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43372:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16432,"nodeType":"ExpressionStatement","src":"43372:91:28"}]},"id":16434,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43287:3:28","nodeType":"FunctionDefinition","parameters":{"id":16420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16413,"mutability":"mutable","name":"p0","nameLocation":"43305:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43291:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16412,"name":"string","nodeType":"ElementaryTypeName","src":"43291:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16415,"mutability":"mutable","name":"p1","nameLocation":"43317:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43309:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16414,"name":"address","nodeType":"ElementaryTypeName","src":"43309:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16417,"mutability":"mutable","name":"p2","nameLocation":"43326:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43321:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16416,"name":"bool","nodeType":"ElementaryTypeName","src":"43321:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16419,"mutability":"mutable","name":"p3","nameLocation":"43344:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43330:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16418,"name":"string","nodeType":"ElementaryTypeName","src":"43330:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43290:57:28"},"returnParameters":{"id":16421,"nodeType":"ParameterList","parameters":[],"src":"43362:0:28"},"scope":19517,"src":"43278:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16456,"nodeType":"Block","src":"43551:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":16448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43601:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":16449,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16436,"src":"43634:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16450,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16438,"src":"43638:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16451,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"43642:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16452,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"43646:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16446,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43577:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43581:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43577:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43577:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16445,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43561:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43561:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16455,"nodeType":"ExpressionStatement","src":"43561:89:28"}]},"id":16457,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43485:3:28","nodeType":"FunctionDefinition","parameters":{"id":16443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16436,"mutability":"mutable","name":"p0","nameLocation":"43503:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43489:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16435,"name":"string","nodeType":"ElementaryTypeName","src":"43489:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16438,"mutability":"mutable","name":"p1","nameLocation":"43515:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16437,"name":"address","nodeType":"ElementaryTypeName","src":"43507:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16440,"mutability":"mutable","name":"p2","nameLocation":"43524:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43519:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16439,"name":"bool","nodeType":"ElementaryTypeName","src":"43519:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16442,"mutability":"mutable","name":"p3","nameLocation":"43533:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43528:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16441,"name":"bool","nodeType":"ElementaryTypeName","src":"43528:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43488:48:28"},"returnParameters":{"id":16444,"nodeType":"ParameterList","parameters":[],"src":"43551:0:28"},"scope":19517,"src":"43476:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16479,"nodeType":"Block","src":"43741:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":16471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43791:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":16472,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16459,"src":"43827:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16473,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16461,"src":"43831:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16474,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16463,"src":"43835:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16475,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16465,"src":"43839:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43767:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43771:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43767:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43767:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16468,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43751:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43751:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16478,"nodeType":"ExpressionStatement","src":"43751:92:28"}]},"id":16480,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43672:3:28","nodeType":"FunctionDefinition","parameters":{"id":16466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16459,"mutability":"mutable","name":"p0","nameLocation":"43690:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43676:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16458,"name":"string","nodeType":"ElementaryTypeName","src":"43676:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16461,"mutability":"mutable","name":"p1","nameLocation":"43702:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43694:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16460,"name":"address","nodeType":"ElementaryTypeName","src":"43694:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16463,"mutability":"mutable","name":"p2","nameLocation":"43711:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43706:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16462,"name":"bool","nodeType":"ElementaryTypeName","src":"43706:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16465,"mutability":"mutable","name":"p3","nameLocation":"43723:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43715:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16464,"name":"address","nodeType":"ElementaryTypeName","src":"43715:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43675:51:28"},"returnParameters":{"id":16467,"nodeType":"ParameterList","parameters":[],"src":"43741:0:28"},"scope":19517,"src":"43663:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16502,"nodeType":"Block","src":"43937:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":16494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43987:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":16495,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"44026:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16496,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"44030:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16497,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"44034:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16498,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16488,"src":"44038:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16492,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43963:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43967:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43963:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43963:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16491,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43947:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43947:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16501,"nodeType":"ExpressionStatement","src":"43947:95:28"}]},"id":16503,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43865:3:28","nodeType":"FunctionDefinition","parameters":{"id":16489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16482,"mutability":"mutable","name":"p0","nameLocation":"43883:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43869:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16481,"name":"string","nodeType":"ElementaryTypeName","src":"43869:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16484,"mutability":"mutable","name":"p1","nameLocation":"43895:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43887:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16483,"name":"address","nodeType":"ElementaryTypeName","src":"43887:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16486,"mutability":"mutable","name":"p2","nameLocation":"43907:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43899:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16485,"name":"address","nodeType":"ElementaryTypeName","src":"43899:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16488,"mutability":"mutable","name":"p3","nameLocation":"43919:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43911:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16487,"name":"uint256","nodeType":"ElementaryTypeName","src":"43911:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43868:54:28"},"returnParameters":{"id":16490,"nodeType":"ParameterList","parameters":[],"src":"43937:0:28"},"scope":19517,"src":"43856:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16525,"nodeType":"Block","src":"44142:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":16517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44192:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":16518,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16505,"src":"44230:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16519,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"44234:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16520,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16509,"src":"44238:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16521,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16511,"src":"44242:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16515,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44168:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44172:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44168:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44168:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16514,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44152:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44152:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16524,"nodeType":"ExpressionStatement","src":"44152:94:28"}]},"id":16526,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44064:3:28","nodeType":"FunctionDefinition","parameters":{"id":16512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16505,"mutability":"mutable","name":"p0","nameLocation":"44082:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44068:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16504,"name":"string","nodeType":"ElementaryTypeName","src":"44068:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16507,"mutability":"mutable","name":"p1","nameLocation":"44094:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44086:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16506,"name":"address","nodeType":"ElementaryTypeName","src":"44086:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16509,"mutability":"mutable","name":"p2","nameLocation":"44106:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44098:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16508,"name":"address","nodeType":"ElementaryTypeName","src":"44098:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16511,"mutability":"mutable","name":"p3","nameLocation":"44124:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44110:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16510,"name":"string","nodeType":"ElementaryTypeName","src":"44110:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44067:60:28"},"returnParameters":{"id":16513,"nodeType":"ParameterList","parameters":[],"src":"44142:0:28"},"scope":19517,"src":"44055:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16548,"nodeType":"Block","src":"44337:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":16540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44387:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":16541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16528,"src":"44423:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16530,"src":"44427:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16532,"src":"44431:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16544,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"44435:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44363:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44367:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44363:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44363:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44347:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44347:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16547,"nodeType":"ExpressionStatement","src":"44347:92:28"}]},"id":16549,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44268:3:28","nodeType":"FunctionDefinition","parameters":{"id":16535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16528,"mutability":"mutable","name":"p0","nameLocation":"44286:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44272:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16527,"name":"string","nodeType":"ElementaryTypeName","src":"44272:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16530,"mutability":"mutable","name":"p1","nameLocation":"44298:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44290:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16529,"name":"address","nodeType":"ElementaryTypeName","src":"44290:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16532,"mutability":"mutable","name":"p2","nameLocation":"44310:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44302:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16531,"name":"address","nodeType":"ElementaryTypeName","src":"44302:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16534,"mutability":"mutable","name":"p3","nameLocation":"44319:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44314:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16533,"name":"bool","nodeType":"ElementaryTypeName","src":"44314:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44271:51:28"},"returnParameters":{"id":16536,"nodeType":"ParameterList","parameters":[],"src":"44337:0:28"},"scope":19517,"src":"44259:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16571,"nodeType":"Block","src":"44533:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":16563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44583:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":16564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16551,"src":"44622:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16565,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16553,"src":"44626:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16566,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16555,"src":"44630:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16567,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16557,"src":"44634:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44559:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44563:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44559:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44559:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44543:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44543:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16570,"nodeType":"ExpressionStatement","src":"44543:95:28"}]},"id":16572,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44461:3:28","nodeType":"FunctionDefinition","parameters":{"id":16558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16551,"mutability":"mutable","name":"p0","nameLocation":"44479:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44465:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16550,"name":"string","nodeType":"ElementaryTypeName","src":"44465:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16553,"mutability":"mutable","name":"p1","nameLocation":"44491:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44483:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16552,"name":"address","nodeType":"ElementaryTypeName","src":"44483:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16555,"mutability":"mutable","name":"p2","nameLocation":"44503:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44495:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16554,"name":"address","nodeType":"ElementaryTypeName","src":"44495:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16557,"mutability":"mutable","name":"p3","nameLocation":"44515:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16556,"name":"address","nodeType":"ElementaryTypeName","src":"44507:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44464:54:28"},"returnParameters":{"id":16559,"nodeType":"ParameterList","parameters":[],"src":"44533:0:28"},"scope":19517,"src":"44452:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16594,"nodeType":"Block","src":"44723:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":16586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44773:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":16587,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16574,"src":"44810:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16588,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"44814:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16589,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16578,"src":"44818:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16590,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"44822:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16584,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44749:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44753:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44749:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44749:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16583,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44733:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44733:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16593,"nodeType":"ExpressionStatement","src":"44733:93:28"}]},"id":16595,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44660:3:28","nodeType":"FunctionDefinition","parameters":{"id":16581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16574,"mutability":"mutable","name":"p0","nameLocation":"44669:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44664:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16573,"name":"bool","nodeType":"ElementaryTypeName","src":"44664:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16576,"mutability":"mutable","name":"p1","nameLocation":"44681:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44673:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16575,"name":"uint256","nodeType":"ElementaryTypeName","src":"44673:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16578,"mutability":"mutable","name":"p2","nameLocation":"44693:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44685:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16577,"name":"uint256","nodeType":"ElementaryTypeName","src":"44685:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16580,"mutability":"mutable","name":"p3","nameLocation":"44705:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44697:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16579,"name":"uint256","nodeType":"ElementaryTypeName","src":"44697:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44663:45:28"},"returnParameters":{"id":16582,"nodeType":"ParameterList","parameters":[],"src":"44723:0:28"},"scope":19517,"src":"44651:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16617,"nodeType":"Block","src":"44917:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":16609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44967:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":16610,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16597,"src":"45003:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16611,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16599,"src":"45007:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16612,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16601,"src":"45011:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16613,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16603,"src":"45015:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44943:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44947:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44943:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44943:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16606,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44927:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44927:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16616,"nodeType":"ExpressionStatement","src":"44927:92:28"}]},"id":16618,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44848:3:28","nodeType":"FunctionDefinition","parameters":{"id":16604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16597,"mutability":"mutable","name":"p0","nameLocation":"44857:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44852:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16596,"name":"bool","nodeType":"ElementaryTypeName","src":"44852:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16599,"mutability":"mutable","name":"p1","nameLocation":"44869:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44861:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16598,"name":"uint256","nodeType":"ElementaryTypeName","src":"44861:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16601,"mutability":"mutable","name":"p2","nameLocation":"44881:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44873:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16600,"name":"uint256","nodeType":"ElementaryTypeName","src":"44873:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16603,"mutability":"mutable","name":"p3","nameLocation":"44899:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44885:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16602,"name":"string","nodeType":"ElementaryTypeName","src":"44885:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44851:51:28"},"returnParameters":{"id":16605,"nodeType":"ParameterList","parameters":[],"src":"44917:0:28"},"scope":19517,"src":"44839:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16640,"nodeType":"Block","src":"45101:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":16632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45151:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":16633,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16620,"src":"45185:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16634,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16622,"src":"45189:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16635,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16624,"src":"45193:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16636,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16626,"src":"45197:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45127:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45131:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45127:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45127:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16629,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45111:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45111:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16639,"nodeType":"ExpressionStatement","src":"45111:90:28"}]},"id":16641,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45041:3:28","nodeType":"FunctionDefinition","parameters":{"id":16627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16620,"mutability":"mutable","name":"p0","nameLocation":"45050:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45045:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16619,"name":"bool","nodeType":"ElementaryTypeName","src":"45045:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16622,"mutability":"mutable","name":"p1","nameLocation":"45062:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45054:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16621,"name":"uint256","nodeType":"ElementaryTypeName","src":"45054:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16624,"mutability":"mutable","name":"p2","nameLocation":"45074:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45066:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16623,"name":"uint256","nodeType":"ElementaryTypeName","src":"45066:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16626,"mutability":"mutable","name":"p3","nameLocation":"45083:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45078:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16625,"name":"bool","nodeType":"ElementaryTypeName","src":"45078:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45044:42:28"},"returnParameters":{"id":16628,"nodeType":"ParameterList","parameters":[],"src":"45101:0:28"},"scope":19517,"src":"45032:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16663,"nodeType":"Block","src":"45286:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":16655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45336:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":16656,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16643,"src":"45373:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16657,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"45377:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16658,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"45381:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16659,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16649,"src":"45385:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45312:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45316:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45312:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45312:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16652,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45296:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45296:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16662,"nodeType":"ExpressionStatement","src":"45296:93:28"}]},"id":16664,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45223:3:28","nodeType":"FunctionDefinition","parameters":{"id":16650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16643,"mutability":"mutable","name":"p0","nameLocation":"45232:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45227:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16642,"name":"bool","nodeType":"ElementaryTypeName","src":"45227:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16645,"mutability":"mutable","name":"p1","nameLocation":"45244:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45236:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16644,"name":"uint256","nodeType":"ElementaryTypeName","src":"45236:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16647,"mutability":"mutable","name":"p2","nameLocation":"45256:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45248:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16646,"name":"uint256","nodeType":"ElementaryTypeName","src":"45248:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16649,"mutability":"mutable","name":"p3","nameLocation":"45268:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45260:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16648,"name":"address","nodeType":"ElementaryTypeName","src":"45260:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45226:45:28"},"returnParameters":{"id":16651,"nodeType":"ParameterList","parameters":[],"src":"45286:0:28"},"scope":19517,"src":"45214:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16686,"nodeType":"Block","src":"45480:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":16678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45530:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":16679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16666,"src":"45566:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16680,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16668,"src":"45570:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16681,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16670,"src":"45574:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16682,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16672,"src":"45578:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45506:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45510:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45506:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45506:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45490:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45490:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16685,"nodeType":"ExpressionStatement","src":"45490:92:28"}]},"id":16687,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45411:3:28","nodeType":"FunctionDefinition","parameters":{"id":16673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16666,"mutability":"mutable","name":"p0","nameLocation":"45420:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45415:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16665,"name":"bool","nodeType":"ElementaryTypeName","src":"45415:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16668,"mutability":"mutable","name":"p1","nameLocation":"45432:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45424:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16667,"name":"uint256","nodeType":"ElementaryTypeName","src":"45424:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16670,"mutability":"mutable","name":"p2","nameLocation":"45450:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45436:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16669,"name":"string","nodeType":"ElementaryTypeName","src":"45436:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16672,"mutability":"mutable","name":"p3","nameLocation":"45462:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45454:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16671,"name":"uint256","nodeType":"ElementaryTypeName","src":"45454:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45414:51:28"},"returnParameters":{"id":16674,"nodeType":"ParameterList","parameters":[],"src":"45480:0:28"},"scope":19517,"src":"45402:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16709,"nodeType":"Block","src":"45679:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":16701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45729:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":16702,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16689,"src":"45764:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16703,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16691,"src":"45768:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16704,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16693,"src":"45772:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16705,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16695,"src":"45776:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16699,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45705:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45709:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45705:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45705:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16698,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45689:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45689:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16708,"nodeType":"ExpressionStatement","src":"45689:91:28"}]},"id":16710,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45604:3:28","nodeType":"FunctionDefinition","parameters":{"id":16696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16689,"mutability":"mutable","name":"p0","nameLocation":"45613:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45608:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16688,"name":"bool","nodeType":"ElementaryTypeName","src":"45608:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16691,"mutability":"mutable","name":"p1","nameLocation":"45625:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45617:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16690,"name":"uint256","nodeType":"ElementaryTypeName","src":"45617:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16693,"mutability":"mutable","name":"p2","nameLocation":"45643:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45629:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16692,"name":"string","nodeType":"ElementaryTypeName","src":"45629:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16695,"mutability":"mutable","name":"p3","nameLocation":"45661:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45647:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16694,"name":"string","nodeType":"ElementaryTypeName","src":"45647:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45607:57:28"},"returnParameters":{"id":16697,"nodeType":"ParameterList","parameters":[],"src":"45679:0:28"},"scope":19517,"src":"45595:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16732,"nodeType":"Block","src":"45868:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":16724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45918:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":16725,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16712,"src":"45951:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16726,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16714,"src":"45955:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16727,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16716,"src":"45959:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16728,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16718,"src":"45963:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16722,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45894:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45898:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45894:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45894:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16721,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45878:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45878:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16731,"nodeType":"ExpressionStatement","src":"45878:89:28"}]},"id":16733,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45802:3:28","nodeType":"FunctionDefinition","parameters":{"id":16719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16712,"mutability":"mutable","name":"p0","nameLocation":"45811:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45806:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16711,"name":"bool","nodeType":"ElementaryTypeName","src":"45806:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16714,"mutability":"mutable","name":"p1","nameLocation":"45823:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45815:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16713,"name":"uint256","nodeType":"ElementaryTypeName","src":"45815:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16716,"mutability":"mutable","name":"p2","nameLocation":"45841:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45827:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16715,"name":"string","nodeType":"ElementaryTypeName","src":"45827:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16718,"mutability":"mutable","name":"p3","nameLocation":"45850:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45845:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16717,"name":"bool","nodeType":"ElementaryTypeName","src":"45845:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45805:48:28"},"returnParameters":{"id":16720,"nodeType":"ParameterList","parameters":[],"src":"45868:0:28"},"scope":19517,"src":"45793:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16755,"nodeType":"Block","src":"46058:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":16747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46108:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":16748,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16735,"src":"46144:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16749,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16737,"src":"46148:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16750,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"46152:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16751,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16741,"src":"46156:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46084:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46088:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46084:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46084:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16744,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46068:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46068:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16754,"nodeType":"ExpressionStatement","src":"46068:92:28"}]},"id":16756,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45989:3:28","nodeType":"FunctionDefinition","parameters":{"id":16742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16735,"mutability":"mutable","name":"p0","nameLocation":"45998:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"45993:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16734,"name":"bool","nodeType":"ElementaryTypeName","src":"45993:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16737,"mutability":"mutable","name":"p1","nameLocation":"46010:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"46002:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16736,"name":"uint256","nodeType":"ElementaryTypeName","src":"46002:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16739,"mutability":"mutable","name":"p2","nameLocation":"46028:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"46014:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16738,"name":"string","nodeType":"ElementaryTypeName","src":"46014:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16741,"mutability":"mutable","name":"p3","nameLocation":"46040:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"46032:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16740,"name":"address","nodeType":"ElementaryTypeName","src":"46032:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45992:51:28"},"returnParameters":{"id":16743,"nodeType":"ParameterList","parameters":[],"src":"46058:0:28"},"scope":19517,"src":"45980:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16778,"nodeType":"Block","src":"46242:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":16770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46292:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":16771,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16758,"src":"46326:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16772,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"46330:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16773,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"46334:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16774,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16764,"src":"46338:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16768,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46268:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46272:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46268:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46268:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16767,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46252:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46252:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16777,"nodeType":"ExpressionStatement","src":"46252:90:28"}]},"id":16779,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46182:3:28","nodeType":"FunctionDefinition","parameters":{"id":16765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16758,"mutability":"mutable","name":"p0","nameLocation":"46191:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46186:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16757,"name":"bool","nodeType":"ElementaryTypeName","src":"46186:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16760,"mutability":"mutable","name":"p1","nameLocation":"46203:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46195:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16759,"name":"uint256","nodeType":"ElementaryTypeName","src":"46195:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16762,"mutability":"mutable","name":"p2","nameLocation":"46212:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46207:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16761,"name":"bool","nodeType":"ElementaryTypeName","src":"46207:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16764,"mutability":"mutable","name":"p3","nameLocation":"46224:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46216:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16763,"name":"uint256","nodeType":"ElementaryTypeName","src":"46216:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46185:42:28"},"returnParameters":{"id":16766,"nodeType":"ParameterList","parameters":[],"src":"46242:0:28"},"scope":19517,"src":"46173:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16801,"nodeType":"Block","src":"46430:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":16793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46480:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":16794,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16781,"src":"46513:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16795,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"46517:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16796,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16785,"src":"46521:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16797,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16787,"src":"46525:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46456:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46460:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46456:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46456:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16790,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46440:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46440:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16800,"nodeType":"ExpressionStatement","src":"46440:89:28"}]},"id":16802,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46364:3:28","nodeType":"FunctionDefinition","parameters":{"id":16788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16781,"mutability":"mutable","name":"p0","nameLocation":"46373:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46368:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16780,"name":"bool","nodeType":"ElementaryTypeName","src":"46368:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16783,"mutability":"mutable","name":"p1","nameLocation":"46385:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46377:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16782,"name":"uint256","nodeType":"ElementaryTypeName","src":"46377:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16785,"mutability":"mutable","name":"p2","nameLocation":"46394:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46389:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16784,"name":"bool","nodeType":"ElementaryTypeName","src":"46389:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16787,"mutability":"mutable","name":"p3","nameLocation":"46412:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46398:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16786,"name":"string","nodeType":"ElementaryTypeName","src":"46398:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46367:48:28"},"returnParameters":{"id":16789,"nodeType":"ParameterList","parameters":[],"src":"46430:0:28"},"scope":19517,"src":"46355:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16824,"nodeType":"Block","src":"46608:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":16816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46658:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":16817,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"46689:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16818,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16806,"src":"46693:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16819,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16808,"src":"46697:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16820,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16810,"src":"46701:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46634:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46638:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46634:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46634:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16813,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46618:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46618:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16823,"nodeType":"ExpressionStatement","src":"46618:87:28"}]},"id":16825,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46551:3:28","nodeType":"FunctionDefinition","parameters":{"id":16811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16804,"mutability":"mutable","name":"p0","nameLocation":"46560:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46555:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16803,"name":"bool","nodeType":"ElementaryTypeName","src":"46555:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16806,"mutability":"mutable","name":"p1","nameLocation":"46572:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46564:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16805,"name":"uint256","nodeType":"ElementaryTypeName","src":"46564:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16808,"mutability":"mutable","name":"p2","nameLocation":"46581:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46576:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16807,"name":"bool","nodeType":"ElementaryTypeName","src":"46576:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16810,"mutability":"mutable","name":"p3","nameLocation":"46590:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46585:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16809,"name":"bool","nodeType":"ElementaryTypeName","src":"46585:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46554:39:28"},"returnParameters":{"id":16812,"nodeType":"ParameterList","parameters":[],"src":"46608:0:28"},"scope":19517,"src":"46542:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16847,"nodeType":"Block","src":"46787:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":16839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46837:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":16840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16827,"src":"46871:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16841,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16829,"src":"46875:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16842,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16831,"src":"46879:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16843,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16833,"src":"46883:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46813:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46817:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46813:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46813:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46797:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46797:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16846,"nodeType":"ExpressionStatement","src":"46797:90:28"}]},"id":16848,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46727:3:28","nodeType":"FunctionDefinition","parameters":{"id":16834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16827,"mutability":"mutable","name":"p0","nameLocation":"46736:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46731:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16826,"name":"bool","nodeType":"ElementaryTypeName","src":"46731:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16829,"mutability":"mutable","name":"p1","nameLocation":"46748:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46740:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16828,"name":"uint256","nodeType":"ElementaryTypeName","src":"46740:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16831,"mutability":"mutable","name":"p2","nameLocation":"46757:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46752:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16830,"name":"bool","nodeType":"ElementaryTypeName","src":"46752:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16833,"mutability":"mutable","name":"p3","nameLocation":"46769:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46761:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16832,"name":"address","nodeType":"ElementaryTypeName","src":"46761:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46730:42:28"},"returnParameters":{"id":16835,"nodeType":"ParameterList","parameters":[],"src":"46787:0:28"},"scope":19517,"src":"46718:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16870,"nodeType":"Block","src":"46972:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":16862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47022:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":16863,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16850,"src":"47059:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16864,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16852,"src":"47063:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16865,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16854,"src":"47067:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16866,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16856,"src":"47071:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46998:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47002:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46998:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46998:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46982:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46982:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16869,"nodeType":"ExpressionStatement","src":"46982:93:28"}]},"id":16871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46909:3:28","nodeType":"FunctionDefinition","parameters":{"id":16857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16850,"mutability":"mutable","name":"p0","nameLocation":"46918:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46913:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16849,"name":"bool","nodeType":"ElementaryTypeName","src":"46913:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16852,"mutability":"mutable","name":"p1","nameLocation":"46930:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46922:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16851,"name":"uint256","nodeType":"ElementaryTypeName","src":"46922:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16854,"mutability":"mutable","name":"p2","nameLocation":"46942:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46934:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16853,"name":"address","nodeType":"ElementaryTypeName","src":"46934:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16856,"mutability":"mutable","name":"p3","nameLocation":"46954:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46946:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16855,"name":"uint256","nodeType":"ElementaryTypeName","src":"46946:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46912:45:28"},"returnParameters":{"id":16858,"nodeType":"ParameterList","parameters":[],"src":"46972:0:28"},"scope":19517,"src":"46900:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16893,"nodeType":"Block","src":"47166:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":16885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47216:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":16886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16873,"src":"47252:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16875,"src":"47256:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16877,"src":"47260:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16889,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16879,"src":"47264:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47192:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47196:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47192:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47192:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47176:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47176:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16892,"nodeType":"ExpressionStatement","src":"47176:92:28"}]},"id":16894,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47097:3:28","nodeType":"FunctionDefinition","parameters":{"id":16880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16873,"mutability":"mutable","name":"p0","nameLocation":"47106:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47101:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16872,"name":"bool","nodeType":"ElementaryTypeName","src":"47101:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16875,"mutability":"mutable","name":"p1","nameLocation":"47118:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47110:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16874,"name":"uint256","nodeType":"ElementaryTypeName","src":"47110:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16877,"mutability":"mutable","name":"p2","nameLocation":"47130:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47122:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16876,"name":"address","nodeType":"ElementaryTypeName","src":"47122:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16879,"mutability":"mutable","name":"p3","nameLocation":"47148:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47134:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16878,"name":"string","nodeType":"ElementaryTypeName","src":"47134:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47100:51:28"},"returnParameters":{"id":16881,"nodeType":"ParameterList","parameters":[],"src":"47166:0:28"},"scope":19517,"src":"47088:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16916,"nodeType":"Block","src":"47350:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":16908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47400:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":16909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16896,"src":"47434:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16910,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16898,"src":"47438:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16911,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16900,"src":"47442:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16912,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16902,"src":"47446:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47376:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47380:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47376:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47376:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47360:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47360:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16915,"nodeType":"ExpressionStatement","src":"47360:90:28"}]},"id":16917,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47290:3:28","nodeType":"FunctionDefinition","parameters":{"id":16903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16896,"mutability":"mutable","name":"p0","nameLocation":"47299:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47294:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16895,"name":"bool","nodeType":"ElementaryTypeName","src":"47294:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16898,"mutability":"mutable","name":"p1","nameLocation":"47311:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47303:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16897,"name":"uint256","nodeType":"ElementaryTypeName","src":"47303:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16900,"mutability":"mutable","name":"p2","nameLocation":"47323:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47315:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16899,"name":"address","nodeType":"ElementaryTypeName","src":"47315:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16902,"mutability":"mutable","name":"p3","nameLocation":"47332:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47327:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16901,"name":"bool","nodeType":"ElementaryTypeName","src":"47327:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47293:42:28"},"returnParameters":{"id":16904,"nodeType":"ParameterList","parameters":[],"src":"47350:0:28"},"scope":19517,"src":"47281:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16939,"nodeType":"Block","src":"47535:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":16931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47585:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":16932,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16919,"src":"47622:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16933,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16921,"src":"47626:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16934,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16923,"src":"47630:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16935,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"47634:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47561:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47565:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47561:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47561:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16928,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47545:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47545:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16938,"nodeType":"ExpressionStatement","src":"47545:93:28"}]},"id":16940,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47472:3:28","nodeType":"FunctionDefinition","parameters":{"id":16926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16919,"mutability":"mutable","name":"p0","nameLocation":"47481:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47476:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16918,"name":"bool","nodeType":"ElementaryTypeName","src":"47476:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16921,"mutability":"mutable","name":"p1","nameLocation":"47493:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47485:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16920,"name":"uint256","nodeType":"ElementaryTypeName","src":"47485:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16923,"mutability":"mutable","name":"p2","nameLocation":"47505:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47497:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16922,"name":"address","nodeType":"ElementaryTypeName","src":"47497:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16925,"mutability":"mutable","name":"p3","nameLocation":"47517:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47509:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16924,"name":"address","nodeType":"ElementaryTypeName","src":"47509:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47475:45:28"},"returnParameters":{"id":16927,"nodeType":"ParameterList","parameters":[],"src":"47535:0:28"},"scope":19517,"src":"47463:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16962,"nodeType":"Block","src":"47729:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":16954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47779:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":16955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16942,"src":"47815:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16956,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16944,"src":"47819:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16957,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"47823:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16958,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16948,"src":"47827:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47755:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47759:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47755:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47755:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47739:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47739:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16961,"nodeType":"ExpressionStatement","src":"47739:92:28"}]},"id":16963,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47660:3:28","nodeType":"FunctionDefinition","parameters":{"id":16949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16942,"mutability":"mutable","name":"p0","nameLocation":"47669:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47664:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16941,"name":"bool","nodeType":"ElementaryTypeName","src":"47664:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16944,"mutability":"mutable","name":"p1","nameLocation":"47687:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47673:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16943,"name":"string","nodeType":"ElementaryTypeName","src":"47673:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16946,"mutability":"mutable","name":"p2","nameLocation":"47699:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47691:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16945,"name":"uint256","nodeType":"ElementaryTypeName","src":"47691:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16948,"mutability":"mutable","name":"p3","nameLocation":"47711:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47703:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16947,"name":"uint256","nodeType":"ElementaryTypeName","src":"47703:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47663:51:28"},"returnParameters":{"id":16950,"nodeType":"ParameterList","parameters":[],"src":"47729:0:28"},"scope":19517,"src":"47651:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16985,"nodeType":"Block","src":"47928:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":16977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47978:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":16978,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16965,"src":"48013:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16979,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16967,"src":"48017:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16980,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"48021:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16981,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16971,"src":"48025:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47954:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47958:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47954:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47954:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16974,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47938:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47938:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16984,"nodeType":"ExpressionStatement","src":"47938:91:28"}]},"id":16986,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47853:3:28","nodeType":"FunctionDefinition","parameters":{"id":16972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16965,"mutability":"mutable","name":"p0","nameLocation":"47862:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47857:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16964,"name":"bool","nodeType":"ElementaryTypeName","src":"47857:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16967,"mutability":"mutable","name":"p1","nameLocation":"47880:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47866:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16966,"name":"string","nodeType":"ElementaryTypeName","src":"47866:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16969,"mutability":"mutable","name":"p2","nameLocation":"47892:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47884:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16968,"name":"uint256","nodeType":"ElementaryTypeName","src":"47884:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16971,"mutability":"mutable","name":"p3","nameLocation":"47910:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47896:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16970,"name":"string","nodeType":"ElementaryTypeName","src":"47896:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47856:57:28"},"returnParameters":{"id":16973,"nodeType":"ParameterList","parameters":[],"src":"47928:0:28"},"scope":19517,"src":"47844:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17008,"nodeType":"Block","src":"48117:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":17000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48167:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":17001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"48200:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16990,"src":"48204:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16992,"src":"48208:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17004,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16994,"src":"48212:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48143:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48147:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48143:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48143:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48127:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48127:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17007,"nodeType":"ExpressionStatement","src":"48127:89:28"}]},"id":17009,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48051:3:28","nodeType":"FunctionDefinition","parameters":{"id":16995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16988,"mutability":"mutable","name":"p0","nameLocation":"48060:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48055:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16987,"name":"bool","nodeType":"ElementaryTypeName","src":"48055:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16990,"mutability":"mutable","name":"p1","nameLocation":"48078:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48064:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16989,"name":"string","nodeType":"ElementaryTypeName","src":"48064:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16992,"mutability":"mutable","name":"p2","nameLocation":"48090:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48082:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16991,"name":"uint256","nodeType":"ElementaryTypeName","src":"48082:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16994,"mutability":"mutable","name":"p3","nameLocation":"48099:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48094:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16993,"name":"bool","nodeType":"ElementaryTypeName","src":"48094:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48054:48:28"},"returnParameters":{"id":16996,"nodeType":"ParameterList","parameters":[],"src":"48117:0:28"},"scope":19517,"src":"48042:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17031,"nodeType":"Block","src":"48307:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":17023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48357:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":17024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"48393:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17013,"src":"48397:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17015,"src":"48401:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17027,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17017,"src":"48405:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48333:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48337:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48333:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48333:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48317:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48317:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17030,"nodeType":"ExpressionStatement","src":"48317:92:28"}]},"id":17032,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48238:3:28","nodeType":"FunctionDefinition","parameters":{"id":17018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17011,"mutability":"mutable","name":"p0","nameLocation":"48247:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48242:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17010,"name":"bool","nodeType":"ElementaryTypeName","src":"48242:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17013,"mutability":"mutable","name":"p1","nameLocation":"48265:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48251:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17012,"name":"string","nodeType":"ElementaryTypeName","src":"48251:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17015,"mutability":"mutable","name":"p2","nameLocation":"48277:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48269:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17014,"name":"uint256","nodeType":"ElementaryTypeName","src":"48269:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17017,"mutability":"mutable","name":"p3","nameLocation":"48289:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48281:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17016,"name":"address","nodeType":"ElementaryTypeName","src":"48281:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48241:51:28"},"returnParameters":{"id":17019,"nodeType":"ParameterList","parameters":[],"src":"48307:0:28"},"scope":19517,"src":"48229:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17054,"nodeType":"Block","src":"48506:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":17046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48556:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":17047,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17034,"src":"48591:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17048,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17036,"src":"48595:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17049,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17038,"src":"48599:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17050,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"48603:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17044,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48532:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48536:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48532:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48532:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17043,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48516:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48516:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17053,"nodeType":"ExpressionStatement","src":"48516:91:28"}]},"id":17055,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48431:3:28","nodeType":"FunctionDefinition","parameters":{"id":17041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17034,"mutability":"mutable","name":"p0","nameLocation":"48440:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48435:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17033,"name":"bool","nodeType":"ElementaryTypeName","src":"48435:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17036,"mutability":"mutable","name":"p1","nameLocation":"48458:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48444:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17035,"name":"string","nodeType":"ElementaryTypeName","src":"48444:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17038,"mutability":"mutable","name":"p2","nameLocation":"48476:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48462:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17037,"name":"string","nodeType":"ElementaryTypeName","src":"48462:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17040,"mutability":"mutable","name":"p3","nameLocation":"48488:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48480:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17039,"name":"uint256","nodeType":"ElementaryTypeName","src":"48480:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48434:57:28"},"returnParameters":{"id":17042,"nodeType":"ParameterList","parameters":[],"src":"48506:0:28"},"scope":19517,"src":"48422:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17077,"nodeType":"Block","src":"48710:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":17069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48760:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":17070,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17057,"src":"48794:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17071,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17059,"src":"48798:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17072,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17061,"src":"48802:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17073,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17063,"src":"48806:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48736:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48740:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48736:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48736:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17066,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48720:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48720:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17076,"nodeType":"ExpressionStatement","src":"48720:90:28"}]},"id":17078,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48629:3:28","nodeType":"FunctionDefinition","parameters":{"id":17064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17057,"mutability":"mutable","name":"p0","nameLocation":"48638:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48633:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17056,"name":"bool","nodeType":"ElementaryTypeName","src":"48633:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17059,"mutability":"mutable","name":"p1","nameLocation":"48656:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48642:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17058,"name":"string","nodeType":"ElementaryTypeName","src":"48642:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17061,"mutability":"mutable","name":"p2","nameLocation":"48674:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48660:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17060,"name":"string","nodeType":"ElementaryTypeName","src":"48660:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17063,"mutability":"mutable","name":"p3","nameLocation":"48692:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48678:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17062,"name":"string","nodeType":"ElementaryTypeName","src":"48678:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48632:63:28"},"returnParameters":{"id":17065,"nodeType":"ParameterList","parameters":[],"src":"48710:0:28"},"scope":19517,"src":"48620:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17100,"nodeType":"Block","src":"48904:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":17092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48954:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":17093,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17080,"src":"48986:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17094,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17082,"src":"48990:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17095,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17084,"src":"48994:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17096,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17086,"src":"48998:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48930:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48934:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48930:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48930:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17089,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48914:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48914:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17099,"nodeType":"ExpressionStatement","src":"48914:88:28"}]},"id":17101,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48832:3:28","nodeType":"FunctionDefinition","parameters":{"id":17087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17080,"mutability":"mutable","name":"p0","nameLocation":"48841:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48836:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17079,"name":"bool","nodeType":"ElementaryTypeName","src":"48836:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17082,"mutability":"mutable","name":"p1","nameLocation":"48859:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48845:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17081,"name":"string","nodeType":"ElementaryTypeName","src":"48845:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17084,"mutability":"mutable","name":"p2","nameLocation":"48877:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48863:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17083,"name":"string","nodeType":"ElementaryTypeName","src":"48863:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17086,"mutability":"mutable","name":"p3","nameLocation":"48886:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48881:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17085,"name":"bool","nodeType":"ElementaryTypeName","src":"48881:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48835:54:28"},"returnParameters":{"id":17088,"nodeType":"ParameterList","parameters":[],"src":"48904:0:28"},"scope":19517,"src":"48823:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17123,"nodeType":"Block","src":"49099:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":17115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49149:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":17116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17103,"src":"49184:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17105,"src":"49188:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17118,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"49192:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17119,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17109,"src":"49196:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49125:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49129:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49125:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49109:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49109:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17122,"nodeType":"ExpressionStatement","src":"49109:91:28"}]},"id":17124,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49024:3:28","nodeType":"FunctionDefinition","parameters":{"id":17110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17103,"mutability":"mutable","name":"p0","nameLocation":"49033:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49028:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17102,"name":"bool","nodeType":"ElementaryTypeName","src":"49028:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17105,"mutability":"mutable","name":"p1","nameLocation":"49051:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49037:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17104,"name":"string","nodeType":"ElementaryTypeName","src":"49037:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17107,"mutability":"mutable","name":"p2","nameLocation":"49069:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49055:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17106,"name":"string","nodeType":"ElementaryTypeName","src":"49055:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17109,"mutability":"mutable","name":"p3","nameLocation":"49081:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49073:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17108,"name":"address","nodeType":"ElementaryTypeName","src":"49073:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49027:57:28"},"returnParameters":{"id":17111,"nodeType":"ParameterList","parameters":[],"src":"49099:0:28"},"scope":19517,"src":"49015:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17146,"nodeType":"Block","src":"49288:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":17138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49338:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":17139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17126,"src":"49371:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17128,"src":"49375:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17141,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"49379:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17142,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17132,"src":"49383:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49314:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49318:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49314:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49314:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49298:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49298:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17145,"nodeType":"ExpressionStatement","src":"49298:89:28"}]},"id":17147,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49222:3:28","nodeType":"FunctionDefinition","parameters":{"id":17133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17126,"mutability":"mutable","name":"p0","nameLocation":"49231:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49226:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17125,"name":"bool","nodeType":"ElementaryTypeName","src":"49226:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17128,"mutability":"mutable","name":"p1","nameLocation":"49249:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49235:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17127,"name":"string","nodeType":"ElementaryTypeName","src":"49235:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17130,"mutability":"mutable","name":"p2","nameLocation":"49258:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49253:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17129,"name":"bool","nodeType":"ElementaryTypeName","src":"49253:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17132,"mutability":"mutable","name":"p3","nameLocation":"49270:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49262:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17131,"name":"uint256","nodeType":"ElementaryTypeName","src":"49262:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49225:48:28"},"returnParameters":{"id":17134,"nodeType":"ParameterList","parameters":[],"src":"49288:0:28"},"scope":19517,"src":"49213:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17169,"nodeType":"Block","src":"49481:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":17161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49531:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":17162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17149,"src":"49563:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17163,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17151,"src":"49567:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17164,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"49571:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17165,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17155,"src":"49575:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49507:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49511:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49507:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49507:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49491:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49491:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17168,"nodeType":"ExpressionStatement","src":"49491:88:28"}]},"id":17170,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49409:3:28","nodeType":"FunctionDefinition","parameters":{"id":17156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17149,"mutability":"mutable","name":"p0","nameLocation":"49418:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49413:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17148,"name":"bool","nodeType":"ElementaryTypeName","src":"49413:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17151,"mutability":"mutable","name":"p1","nameLocation":"49436:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49422:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17150,"name":"string","nodeType":"ElementaryTypeName","src":"49422:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17153,"mutability":"mutable","name":"p2","nameLocation":"49445:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49440:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17152,"name":"bool","nodeType":"ElementaryTypeName","src":"49440:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17155,"mutability":"mutable","name":"p3","nameLocation":"49463:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49449:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17154,"name":"string","nodeType":"ElementaryTypeName","src":"49449:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49412:54:28"},"returnParameters":{"id":17157,"nodeType":"ParameterList","parameters":[],"src":"49481:0:28"},"scope":19517,"src":"49400:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17192,"nodeType":"Block","src":"49664:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":17184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49714:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":17185,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17172,"src":"49744:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17186,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"49748:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17187,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17176,"src":"49752:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17188,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17178,"src":"49756:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17182,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49690:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49694:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49690:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49690:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17181,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49674:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49674:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17191,"nodeType":"ExpressionStatement","src":"49674:86:28"}]},"id":17193,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49601:3:28","nodeType":"FunctionDefinition","parameters":{"id":17179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17172,"mutability":"mutable","name":"p0","nameLocation":"49610:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49605:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17171,"name":"bool","nodeType":"ElementaryTypeName","src":"49605:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17174,"mutability":"mutable","name":"p1","nameLocation":"49628:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49614:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17173,"name":"string","nodeType":"ElementaryTypeName","src":"49614:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17176,"mutability":"mutable","name":"p2","nameLocation":"49637:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49632:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17175,"name":"bool","nodeType":"ElementaryTypeName","src":"49632:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17178,"mutability":"mutable","name":"p3","nameLocation":"49646:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49641:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17177,"name":"bool","nodeType":"ElementaryTypeName","src":"49641:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49604:45:28"},"returnParameters":{"id":17180,"nodeType":"ParameterList","parameters":[],"src":"49664:0:28"},"scope":19517,"src":"49592:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17215,"nodeType":"Block","src":"49848:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":17207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49898:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":17208,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17195,"src":"49931:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17209,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17197,"src":"49935:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17210,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17199,"src":"49939:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17211,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17201,"src":"49943:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49874:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49878:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49874:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49874:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17204,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49858:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49858:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17214,"nodeType":"ExpressionStatement","src":"49858:89:28"}]},"id":17216,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49782:3:28","nodeType":"FunctionDefinition","parameters":{"id":17202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17195,"mutability":"mutable","name":"p0","nameLocation":"49791:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49786:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17194,"name":"bool","nodeType":"ElementaryTypeName","src":"49786:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17197,"mutability":"mutable","name":"p1","nameLocation":"49809:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49795:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17196,"name":"string","nodeType":"ElementaryTypeName","src":"49795:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17199,"mutability":"mutable","name":"p2","nameLocation":"49818:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49813:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17198,"name":"bool","nodeType":"ElementaryTypeName","src":"49813:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17201,"mutability":"mutable","name":"p3","nameLocation":"49830:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49822:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17200,"name":"address","nodeType":"ElementaryTypeName","src":"49822:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49785:48:28"},"returnParameters":{"id":17203,"nodeType":"ParameterList","parameters":[],"src":"49848:0:28"},"scope":19517,"src":"49773:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17238,"nodeType":"Block","src":"50038:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":17230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50088:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":17231,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17218,"src":"50124:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17232,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17220,"src":"50128:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17233,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"50132:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17234,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17224,"src":"50136:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50064:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50068:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50064:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50064:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50048:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50048:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17237,"nodeType":"ExpressionStatement","src":"50048:92:28"}]},"id":17239,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49969:3:28","nodeType":"FunctionDefinition","parameters":{"id":17225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17218,"mutability":"mutable","name":"p0","nameLocation":"49978:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"49973:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17217,"name":"bool","nodeType":"ElementaryTypeName","src":"49973:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17220,"mutability":"mutable","name":"p1","nameLocation":"49996:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"49982:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17219,"name":"string","nodeType":"ElementaryTypeName","src":"49982:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17222,"mutability":"mutable","name":"p2","nameLocation":"50008:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"50000:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17221,"name":"address","nodeType":"ElementaryTypeName","src":"50000:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17224,"mutability":"mutable","name":"p3","nameLocation":"50020:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"50012:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17223,"name":"uint256","nodeType":"ElementaryTypeName","src":"50012:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49972:51:28"},"returnParameters":{"id":17226,"nodeType":"ParameterList","parameters":[],"src":"50038:0:28"},"scope":19517,"src":"49960:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17261,"nodeType":"Block","src":"50237:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":17253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50287:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":17254,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17241,"src":"50322:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17255,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17243,"src":"50326:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17256,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17245,"src":"50330:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17257,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"50334:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50263:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50267:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50263:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50263:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17250,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50247:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50247:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17260,"nodeType":"ExpressionStatement","src":"50247:91:28"}]},"id":17262,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50162:3:28","nodeType":"FunctionDefinition","parameters":{"id":17248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17241,"mutability":"mutable","name":"p0","nameLocation":"50171:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50166:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17240,"name":"bool","nodeType":"ElementaryTypeName","src":"50166:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17243,"mutability":"mutable","name":"p1","nameLocation":"50189:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50175:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17242,"name":"string","nodeType":"ElementaryTypeName","src":"50175:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17245,"mutability":"mutable","name":"p2","nameLocation":"50201:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50193:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17244,"name":"address","nodeType":"ElementaryTypeName","src":"50193:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17247,"mutability":"mutable","name":"p3","nameLocation":"50219:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50205:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17246,"name":"string","nodeType":"ElementaryTypeName","src":"50205:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50165:57:28"},"returnParameters":{"id":17249,"nodeType":"ParameterList","parameters":[],"src":"50237:0:28"},"scope":19517,"src":"50153:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17284,"nodeType":"Block","src":"50426:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":17276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50476:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":17277,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17264,"src":"50509:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17278,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17266,"src":"50513:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17279,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17268,"src":"50517:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17280,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17270,"src":"50521:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50452:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50456:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50452:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50452:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50436:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50436:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17283,"nodeType":"ExpressionStatement","src":"50436:89:28"}]},"id":17285,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50360:3:28","nodeType":"FunctionDefinition","parameters":{"id":17271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17264,"mutability":"mutable","name":"p0","nameLocation":"50369:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50364:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17263,"name":"bool","nodeType":"ElementaryTypeName","src":"50364:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17266,"mutability":"mutable","name":"p1","nameLocation":"50387:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50373:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17265,"name":"string","nodeType":"ElementaryTypeName","src":"50373:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17268,"mutability":"mutable","name":"p2","nameLocation":"50399:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50391:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17267,"name":"address","nodeType":"ElementaryTypeName","src":"50391:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17270,"mutability":"mutable","name":"p3","nameLocation":"50408:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50403:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17269,"name":"bool","nodeType":"ElementaryTypeName","src":"50403:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50363:48:28"},"returnParameters":{"id":17272,"nodeType":"ParameterList","parameters":[],"src":"50426:0:28"},"scope":19517,"src":"50351:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17307,"nodeType":"Block","src":"50616:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":17299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50666:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":17300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"50702:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17289,"src":"50706:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17291,"src":"50710:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17303,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"50714:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50642:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50646:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50642:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50642:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50626:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50626:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17306,"nodeType":"ExpressionStatement","src":"50626:92:28"}]},"id":17308,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50547:3:28","nodeType":"FunctionDefinition","parameters":{"id":17294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17287,"mutability":"mutable","name":"p0","nameLocation":"50556:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50551:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17286,"name":"bool","nodeType":"ElementaryTypeName","src":"50551:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17289,"mutability":"mutable","name":"p1","nameLocation":"50574:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50560:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17288,"name":"string","nodeType":"ElementaryTypeName","src":"50560:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17291,"mutability":"mutable","name":"p2","nameLocation":"50586:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50578:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17290,"name":"address","nodeType":"ElementaryTypeName","src":"50578:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17293,"mutability":"mutable","name":"p3","nameLocation":"50598:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50590:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17292,"name":"address","nodeType":"ElementaryTypeName","src":"50590:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50550:51:28"},"returnParameters":{"id":17295,"nodeType":"ParameterList","parameters":[],"src":"50616:0:28"},"scope":19517,"src":"50538:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17330,"nodeType":"Block","src":"50800:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":17322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50850:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":17323,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"50884:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17324,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"50888:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17325,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"50892:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17326,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17316,"src":"50896:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17320,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50826:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50830:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50826:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50826:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17319,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50810:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50810:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17329,"nodeType":"ExpressionStatement","src":"50810:90:28"}]},"id":17331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50740:3:28","nodeType":"FunctionDefinition","parameters":{"id":17317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17310,"mutability":"mutable","name":"p0","nameLocation":"50749:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17309,"name":"bool","nodeType":"ElementaryTypeName","src":"50744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17312,"mutability":"mutable","name":"p1","nameLocation":"50758:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50753:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17311,"name":"bool","nodeType":"ElementaryTypeName","src":"50753:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17314,"mutability":"mutable","name":"p2","nameLocation":"50770:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50762:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17313,"name":"uint256","nodeType":"ElementaryTypeName","src":"50762:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17316,"mutability":"mutable","name":"p3","nameLocation":"50782:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17315,"name":"uint256","nodeType":"ElementaryTypeName","src":"50774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50743:42:28"},"returnParameters":{"id":17318,"nodeType":"ParameterList","parameters":[],"src":"50800:0:28"},"scope":19517,"src":"50731:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17353,"nodeType":"Block","src":"50988:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":17345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51038:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":17346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"51071:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17347,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17335,"src":"51075:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17348,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"51079:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17349,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17339,"src":"51083:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51014:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51018:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51014:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51014:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50998:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50998:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17352,"nodeType":"ExpressionStatement","src":"50998:89:28"}]},"id":17354,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50922:3:28","nodeType":"FunctionDefinition","parameters":{"id":17340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17333,"mutability":"mutable","name":"p0","nameLocation":"50931:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50926:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17332,"name":"bool","nodeType":"ElementaryTypeName","src":"50926:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17335,"mutability":"mutable","name":"p1","nameLocation":"50940:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50935:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17334,"name":"bool","nodeType":"ElementaryTypeName","src":"50935:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17337,"mutability":"mutable","name":"p2","nameLocation":"50952:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50944:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17336,"name":"uint256","nodeType":"ElementaryTypeName","src":"50944:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17339,"mutability":"mutable","name":"p3","nameLocation":"50970:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50956:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17338,"name":"string","nodeType":"ElementaryTypeName","src":"50956:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50925:48:28"},"returnParameters":{"id":17341,"nodeType":"ParameterList","parameters":[],"src":"50988:0:28"},"scope":19517,"src":"50913:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17376,"nodeType":"Block","src":"51166:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":17368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51216:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":17369,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17356,"src":"51247:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17370,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17358,"src":"51251:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17371,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17360,"src":"51255:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17372,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17362,"src":"51259:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51192:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51196:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51192:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51192:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51176:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51176:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17375,"nodeType":"ExpressionStatement","src":"51176:87:28"}]},"id":17377,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51109:3:28","nodeType":"FunctionDefinition","parameters":{"id":17363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17356,"mutability":"mutable","name":"p0","nameLocation":"51118:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51113:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17355,"name":"bool","nodeType":"ElementaryTypeName","src":"51113:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17358,"mutability":"mutable","name":"p1","nameLocation":"51127:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51122:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17357,"name":"bool","nodeType":"ElementaryTypeName","src":"51122:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17360,"mutability":"mutable","name":"p2","nameLocation":"51139:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51131:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17359,"name":"uint256","nodeType":"ElementaryTypeName","src":"51131:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17362,"mutability":"mutable","name":"p3","nameLocation":"51148:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51143:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17361,"name":"bool","nodeType":"ElementaryTypeName","src":"51143:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51112:39:28"},"returnParameters":{"id":17364,"nodeType":"ParameterList","parameters":[],"src":"51166:0:28"},"scope":19517,"src":"51100:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17399,"nodeType":"Block","src":"51345:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":17391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51395:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":17392,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17379,"src":"51429:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17393,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17381,"src":"51433:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17394,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17383,"src":"51437:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17395,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17385,"src":"51441:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17389,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51371:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51375:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51371:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51371:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17388,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51355:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51355:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17398,"nodeType":"ExpressionStatement","src":"51355:90:28"}]},"id":17400,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51285:3:28","nodeType":"FunctionDefinition","parameters":{"id":17386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17379,"mutability":"mutable","name":"p0","nameLocation":"51294:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51289:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17378,"name":"bool","nodeType":"ElementaryTypeName","src":"51289:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17381,"mutability":"mutable","name":"p1","nameLocation":"51303:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51298:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17380,"name":"bool","nodeType":"ElementaryTypeName","src":"51298:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17383,"mutability":"mutable","name":"p2","nameLocation":"51315:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51307:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17382,"name":"uint256","nodeType":"ElementaryTypeName","src":"51307:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17385,"mutability":"mutable","name":"p3","nameLocation":"51327:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51319:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17384,"name":"address","nodeType":"ElementaryTypeName","src":"51319:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51288:42:28"},"returnParameters":{"id":17387,"nodeType":"ParameterList","parameters":[],"src":"51345:0:28"},"scope":19517,"src":"51276:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17422,"nodeType":"Block","src":"51533:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":17414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51583:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":17415,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"51616:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17416,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17404,"src":"51620:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17417,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17406,"src":"51624:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17418,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17408,"src":"51628:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51559:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51563:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51559:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51559:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17411,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51543:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51543:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17421,"nodeType":"ExpressionStatement","src":"51543:89:28"}]},"id":17423,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51467:3:28","nodeType":"FunctionDefinition","parameters":{"id":17409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17402,"mutability":"mutable","name":"p0","nameLocation":"51476:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51471:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17401,"name":"bool","nodeType":"ElementaryTypeName","src":"51471:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17404,"mutability":"mutable","name":"p1","nameLocation":"51485:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51480:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17403,"name":"bool","nodeType":"ElementaryTypeName","src":"51480:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17406,"mutability":"mutable","name":"p2","nameLocation":"51503:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51489:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17405,"name":"string","nodeType":"ElementaryTypeName","src":"51489:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17408,"mutability":"mutable","name":"p3","nameLocation":"51515:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17407,"name":"uint256","nodeType":"ElementaryTypeName","src":"51507:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51470:48:28"},"returnParameters":{"id":17410,"nodeType":"ParameterList","parameters":[],"src":"51533:0:28"},"scope":19517,"src":"51458:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17445,"nodeType":"Block","src":"51726:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":17437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51776:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":17438,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17425,"src":"51808:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17439,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17427,"src":"51812:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17440,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17429,"src":"51816:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17441,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17431,"src":"51820:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51752:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51756:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51752:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51752:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17434,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51736:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51736:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17444,"nodeType":"ExpressionStatement","src":"51736:88:28"}]},"id":17446,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51654:3:28","nodeType":"FunctionDefinition","parameters":{"id":17432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17425,"mutability":"mutable","name":"p0","nameLocation":"51663:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51658:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17424,"name":"bool","nodeType":"ElementaryTypeName","src":"51658:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17427,"mutability":"mutable","name":"p1","nameLocation":"51672:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51667:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17426,"name":"bool","nodeType":"ElementaryTypeName","src":"51667:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17429,"mutability":"mutable","name":"p2","nameLocation":"51690:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51676:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17428,"name":"string","nodeType":"ElementaryTypeName","src":"51676:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17431,"mutability":"mutable","name":"p3","nameLocation":"51708:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51694:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17430,"name":"string","nodeType":"ElementaryTypeName","src":"51694:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51657:54:28"},"returnParameters":{"id":17433,"nodeType":"ParameterList","parameters":[],"src":"51726:0:28"},"scope":19517,"src":"51645:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17468,"nodeType":"Block","src":"51909:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":17460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51959:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":17461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17448,"src":"51989:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17450,"src":"51993:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17452,"src":"51997:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17464,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17454,"src":"52001:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51935:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51939:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51935:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51935:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51919:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51919:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17467,"nodeType":"ExpressionStatement","src":"51919:86:28"}]},"id":17469,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51846:3:28","nodeType":"FunctionDefinition","parameters":{"id":17455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17448,"mutability":"mutable","name":"p0","nameLocation":"51855:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51850:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17447,"name":"bool","nodeType":"ElementaryTypeName","src":"51850:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17450,"mutability":"mutable","name":"p1","nameLocation":"51864:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51859:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17449,"name":"bool","nodeType":"ElementaryTypeName","src":"51859:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17452,"mutability":"mutable","name":"p2","nameLocation":"51882:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51868:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17451,"name":"string","nodeType":"ElementaryTypeName","src":"51868:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17454,"mutability":"mutable","name":"p3","nameLocation":"51891:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51886:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17453,"name":"bool","nodeType":"ElementaryTypeName","src":"51886:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51849:45:28"},"returnParameters":{"id":17456,"nodeType":"ParameterList","parameters":[],"src":"51909:0:28"},"scope":19517,"src":"51837:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17491,"nodeType":"Block","src":"52093:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":17483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52143:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":17484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17471,"src":"52176:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17473,"src":"52180:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17475,"src":"52184:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17487,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17477,"src":"52188:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52119:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52123:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52119:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52119:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52103:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52103:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17490,"nodeType":"ExpressionStatement","src":"52103:89:28"}]},"id":17492,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52027:3:28","nodeType":"FunctionDefinition","parameters":{"id":17478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17471,"mutability":"mutable","name":"p0","nameLocation":"52036:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52031:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17470,"name":"bool","nodeType":"ElementaryTypeName","src":"52031:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17473,"mutability":"mutable","name":"p1","nameLocation":"52045:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52040:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17472,"name":"bool","nodeType":"ElementaryTypeName","src":"52040:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17475,"mutability":"mutable","name":"p2","nameLocation":"52063:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52049:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17474,"name":"string","nodeType":"ElementaryTypeName","src":"52049:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17477,"mutability":"mutable","name":"p3","nameLocation":"52075:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52067:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17476,"name":"address","nodeType":"ElementaryTypeName","src":"52067:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52030:48:28"},"returnParameters":{"id":17479,"nodeType":"ParameterList","parameters":[],"src":"52093:0:28"},"scope":19517,"src":"52018:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17514,"nodeType":"Block","src":"52271:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":17506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52321:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":17507,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17494,"src":"52352:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17508,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17496,"src":"52356:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17509,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17498,"src":"52360:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17510,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17500,"src":"52364:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52297:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52301:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52297:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52297:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17503,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52281:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52281:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17513,"nodeType":"ExpressionStatement","src":"52281:87:28"}]},"id":17515,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52214:3:28","nodeType":"FunctionDefinition","parameters":{"id":17501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17494,"mutability":"mutable","name":"p0","nameLocation":"52223:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52218:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17493,"name":"bool","nodeType":"ElementaryTypeName","src":"52218:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17496,"mutability":"mutable","name":"p1","nameLocation":"52232:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52227:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17495,"name":"bool","nodeType":"ElementaryTypeName","src":"52227:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17498,"mutability":"mutable","name":"p2","nameLocation":"52241:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52236:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17497,"name":"bool","nodeType":"ElementaryTypeName","src":"52236:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17500,"mutability":"mutable","name":"p3","nameLocation":"52253:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52245:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17499,"name":"uint256","nodeType":"ElementaryTypeName","src":"52245:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52217:39:28"},"returnParameters":{"id":17502,"nodeType":"ParameterList","parameters":[],"src":"52271:0:28"},"scope":19517,"src":"52205:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17537,"nodeType":"Block","src":"52453:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":17529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52503:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":17530,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17517,"src":"52533:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17531,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17519,"src":"52537:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17532,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17521,"src":"52541:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17533,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"52545:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52479:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52483:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52479:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52479:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17526,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52463:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52463:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17536,"nodeType":"ExpressionStatement","src":"52463:86:28"}]},"id":17538,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52390:3:28","nodeType":"FunctionDefinition","parameters":{"id":17524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17517,"mutability":"mutable","name":"p0","nameLocation":"52399:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52394:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17516,"name":"bool","nodeType":"ElementaryTypeName","src":"52394:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17519,"mutability":"mutable","name":"p1","nameLocation":"52408:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52403:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17518,"name":"bool","nodeType":"ElementaryTypeName","src":"52403:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17521,"mutability":"mutable","name":"p2","nameLocation":"52417:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52412:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17520,"name":"bool","nodeType":"ElementaryTypeName","src":"52412:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17523,"mutability":"mutable","name":"p3","nameLocation":"52435:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52421:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17522,"name":"string","nodeType":"ElementaryTypeName","src":"52421:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52393:45:28"},"returnParameters":{"id":17525,"nodeType":"ParameterList","parameters":[],"src":"52453:0:28"},"scope":19517,"src":"52381:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17560,"nodeType":"Block","src":"52625:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":17552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52675:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":17553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17540,"src":"52703:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17554,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17542,"src":"52707:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17555,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17544,"src":"52711:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17556,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17546,"src":"52715:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52651:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52655:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52651:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52651:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52635:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52635:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17559,"nodeType":"ExpressionStatement","src":"52635:84:28"}]},"id":17561,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52571:3:28","nodeType":"FunctionDefinition","parameters":{"id":17547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17540,"mutability":"mutable","name":"p0","nameLocation":"52580:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52575:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17539,"name":"bool","nodeType":"ElementaryTypeName","src":"52575:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17542,"mutability":"mutable","name":"p1","nameLocation":"52589:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52584:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17541,"name":"bool","nodeType":"ElementaryTypeName","src":"52584:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17544,"mutability":"mutable","name":"p2","nameLocation":"52598:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52593:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17543,"name":"bool","nodeType":"ElementaryTypeName","src":"52593:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17546,"mutability":"mutable","name":"p3","nameLocation":"52607:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52602:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17545,"name":"bool","nodeType":"ElementaryTypeName","src":"52602:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52574:36:28"},"returnParameters":{"id":17548,"nodeType":"ParameterList","parameters":[],"src":"52625:0:28"},"scope":19517,"src":"52562:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17583,"nodeType":"Block","src":"52798:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":17575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52848:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":17576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17563,"src":"52879:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17565,"src":"52883:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17567,"src":"52887:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17579,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17569,"src":"52891:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52824:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52828:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52824:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52824:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52808:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52808:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17582,"nodeType":"ExpressionStatement","src":"52808:87:28"}]},"id":17584,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52741:3:28","nodeType":"FunctionDefinition","parameters":{"id":17570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17563,"mutability":"mutable","name":"p0","nameLocation":"52750:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52745:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17562,"name":"bool","nodeType":"ElementaryTypeName","src":"52745:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17565,"mutability":"mutable","name":"p1","nameLocation":"52759:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52754:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17564,"name":"bool","nodeType":"ElementaryTypeName","src":"52754:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17567,"mutability":"mutable","name":"p2","nameLocation":"52768:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52763:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17566,"name":"bool","nodeType":"ElementaryTypeName","src":"52763:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17569,"mutability":"mutable","name":"p3","nameLocation":"52780:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52772:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17568,"name":"address","nodeType":"ElementaryTypeName","src":"52772:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52744:39:28"},"returnParameters":{"id":17571,"nodeType":"ParameterList","parameters":[],"src":"52798:0:28"},"scope":19517,"src":"52732:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17606,"nodeType":"Block","src":"52977:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":17598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53027:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":17599,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17586,"src":"53061:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17600,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17588,"src":"53065:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17601,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17590,"src":"53069:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17602,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17592,"src":"53073:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53003:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53007:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53003:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53003:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17595,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52987:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52987:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17605,"nodeType":"ExpressionStatement","src":"52987:90:28"}]},"id":17607,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52917:3:28","nodeType":"FunctionDefinition","parameters":{"id":17593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17586,"mutability":"mutable","name":"p0","nameLocation":"52926:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52921:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17585,"name":"bool","nodeType":"ElementaryTypeName","src":"52921:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17588,"mutability":"mutable","name":"p1","nameLocation":"52935:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52930:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17587,"name":"bool","nodeType":"ElementaryTypeName","src":"52930:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17590,"mutability":"mutable","name":"p2","nameLocation":"52947:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52939:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17589,"name":"address","nodeType":"ElementaryTypeName","src":"52939:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17592,"mutability":"mutable","name":"p3","nameLocation":"52959:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52951:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17591,"name":"uint256","nodeType":"ElementaryTypeName","src":"52951:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52920:42:28"},"returnParameters":{"id":17594,"nodeType":"ParameterList","parameters":[],"src":"52977:0:28"},"scope":19517,"src":"52908:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17629,"nodeType":"Block","src":"53165:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":17621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53215:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":17622,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17609,"src":"53248:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17623,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17611,"src":"53252:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17624,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"53256:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17625,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17615,"src":"53260:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53191:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53195:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53191:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53191:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17618,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53175:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53175:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17628,"nodeType":"ExpressionStatement","src":"53175:89:28"}]},"id":17630,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53099:3:28","nodeType":"FunctionDefinition","parameters":{"id":17616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17609,"mutability":"mutable","name":"p0","nameLocation":"53108:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53103:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17608,"name":"bool","nodeType":"ElementaryTypeName","src":"53103:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17611,"mutability":"mutable","name":"p1","nameLocation":"53117:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53112:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17610,"name":"bool","nodeType":"ElementaryTypeName","src":"53112:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17613,"mutability":"mutable","name":"p2","nameLocation":"53129:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53121:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17612,"name":"address","nodeType":"ElementaryTypeName","src":"53121:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17615,"mutability":"mutable","name":"p3","nameLocation":"53147:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53133:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17614,"name":"string","nodeType":"ElementaryTypeName","src":"53133:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53102:48:28"},"returnParameters":{"id":17617,"nodeType":"ParameterList","parameters":[],"src":"53165:0:28"},"scope":19517,"src":"53090:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17652,"nodeType":"Block","src":"53343:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":17644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53393:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":17645,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"53424:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17646,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"53428:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17647,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17636,"src":"53432:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17648,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17638,"src":"53436:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17642,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53369:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53373:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53369:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53369:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17641,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53353:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53353:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17651,"nodeType":"ExpressionStatement","src":"53353:87:28"}]},"id":17653,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53286:3:28","nodeType":"FunctionDefinition","parameters":{"id":17639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17632,"mutability":"mutable","name":"p0","nameLocation":"53295:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53290:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17631,"name":"bool","nodeType":"ElementaryTypeName","src":"53290:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17634,"mutability":"mutable","name":"p1","nameLocation":"53304:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53299:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17633,"name":"bool","nodeType":"ElementaryTypeName","src":"53299:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17636,"mutability":"mutable","name":"p2","nameLocation":"53316:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53308:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17635,"name":"address","nodeType":"ElementaryTypeName","src":"53308:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17638,"mutability":"mutable","name":"p3","nameLocation":"53325:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53320:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17637,"name":"bool","nodeType":"ElementaryTypeName","src":"53320:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53289:39:28"},"returnParameters":{"id":17640,"nodeType":"ParameterList","parameters":[],"src":"53343:0:28"},"scope":19517,"src":"53277:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17675,"nodeType":"Block","src":"53522:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":17667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53572:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":17668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17655,"src":"53606:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17657,"src":"53610:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17670,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17659,"src":"53614:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17671,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17661,"src":"53618:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53548:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53552:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53548:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53548:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53532:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53532:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17674,"nodeType":"ExpressionStatement","src":"53532:90:28"}]},"id":17676,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53462:3:28","nodeType":"FunctionDefinition","parameters":{"id":17662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17655,"mutability":"mutable","name":"p0","nameLocation":"53471:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53466:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17654,"name":"bool","nodeType":"ElementaryTypeName","src":"53466:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17657,"mutability":"mutable","name":"p1","nameLocation":"53480:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53475:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17656,"name":"bool","nodeType":"ElementaryTypeName","src":"53475:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17659,"mutability":"mutable","name":"p2","nameLocation":"53492:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53484:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17658,"name":"address","nodeType":"ElementaryTypeName","src":"53484:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17661,"mutability":"mutable","name":"p3","nameLocation":"53504:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53496:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17660,"name":"address","nodeType":"ElementaryTypeName","src":"53496:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53465:42:28"},"returnParameters":{"id":17663,"nodeType":"ParameterList","parameters":[],"src":"53522:0:28"},"scope":19517,"src":"53453:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17698,"nodeType":"Block","src":"53707:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":17690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53757:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":17691,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"53794:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17692,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"53798:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17693,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17682,"src":"53802:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17694,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17684,"src":"53806:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53733:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53737:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53733:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53733:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17687,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53717:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53717:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17697,"nodeType":"ExpressionStatement","src":"53717:93:28"}]},"id":17699,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53644:3:28","nodeType":"FunctionDefinition","parameters":{"id":17685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17678,"mutability":"mutable","name":"p0","nameLocation":"53653:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53648:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17677,"name":"bool","nodeType":"ElementaryTypeName","src":"53648:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17680,"mutability":"mutable","name":"p1","nameLocation":"53665:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53657:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17679,"name":"address","nodeType":"ElementaryTypeName","src":"53657:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17682,"mutability":"mutable","name":"p2","nameLocation":"53677:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53669:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17681,"name":"uint256","nodeType":"ElementaryTypeName","src":"53669:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17684,"mutability":"mutable","name":"p3","nameLocation":"53689:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53681:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17683,"name":"uint256","nodeType":"ElementaryTypeName","src":"53681:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53647:45:28"},"returnParameters":{"id":17686,"nodeType":"ParameterList","parameters":[],"src":"53707:0:28"},"scope":19517,"src":"53635:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17721,"nodeType":"Block","src":"53901:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":17713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53951:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":17714,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17701,"src":"53987:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17715,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"53991:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17716,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17705,"src":"53995:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17717,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17707,"src":"53999:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53927:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53931:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53927:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53927:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17710,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53911:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53911:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17720,"nodeType":"ExpressionStatement","src":"53911:92:28"}]},"id":17722,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53832:3:28","nodeType":"FunctionDefinition","parameters":{"id":17708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17701,"mutability":"mutable","name":"p0","nameLocation":"53841:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53836:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17700,"name":"bool","nodeType":"ElementaryTypeName","src":"53836:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17703,"mutability":"mutable","name":"p1","nameLocation":"53853:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53845:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17702,"name":"address","nodeType":"ElementaryTypeName","src":"53845:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17705,"mutability":"mutable","name":"p2","nameLocation":"53865:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53857:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17704,"name":"uint256","nodeType":"ElementaryTypeName","src":"53857:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17707,"mutability":"mutable","name":"p3","nameLocation":"53883:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53869:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17706,"name":"string","nodeType":"ElementaryTypeName","src":"53869:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53835:51:28"},"returnParameters":{"id":17709,"nodeType":"ParameterList","parameters":[],"src":"53901:0:28"},"scope":19517,"src":"53823:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17744,"nodeType":"Block","src":"54085:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":17736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54135:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":17737,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"54169:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17738,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17726,"src":"54173:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17739,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17728,"src":"54177:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17740,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"54181:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17734,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54111:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54115:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54111:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54111:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54095:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54095:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17743,"nodeType":"ExpressionStatement","src":"54095:90:28"}]},"id":17745,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54025:3:28","nodeType":"FunctionDefinition","parameters":{"id":17731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17724,"mutability":"mutable","name":"p0","nameLocation":"54034:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54029:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17723,"name":"bool","nodeType":"ElementaryTypeName","src":"54029:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17726,"mutability":"mutable","name":"p1","nameLocation":"54046:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54038:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17725,"name":"address","nodeType":"ElementaryTypeName","src":"54038:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17728,"mutability":"mutable","name":"p2","nameLocation":"54058:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54050:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17727,"name":"uint256","nodeType":"ElementaryTypeName","src":"54050:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17730,"mutability":"mutable","name":"p3","nameLocation":"54067:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54062:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17729,"name":"bool","nodeType":"ElementaryTypeName","src":"54062:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54028:42:28"},"returnParameters":{"id":17732,"nodeType":"ParameterList","parameters":[],"src":"54085:0:28"},"scope":19517,"src":"54016:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17767,"nodeType":"Block","src":"54270:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":17759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54320:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":17760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17747,"src":"54357:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17761,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17749,"src":"54361:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17762,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"54365:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17763,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17753,"src":"54369:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54296:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54300:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54296:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54296:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54280:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54280:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17766,"nodeType":"ExpressionStatement","src":"54280:93:28"}]},"id":17768,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54207:3:28","nodeType":"FunctionDefinition","parameters":{"id":17754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17747,"mutability":"mutable","name":"p0","nameLocation":"54216:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54211:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17746,"name":"bool","nodeType":"ElementaryTypeName","src":"54211:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17749,"mutability":"mutable","name":"p1","nameLocation":"54228:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54220:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17748,"name":"address","nodeType":"ElementaryTypeName","src":"54220:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17751,"mutability":"mutable","name":"p2","nameLocation":"54240:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54232:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17750,"name":"uint256","nodeType":"ElementaryTypeName","src":"54232:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17753,"mutability":"mutable","name":"p3","nameLocation":"54252:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54244:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17752,"name":"address","nodeType":"ElementaryTypeName","src":"54244:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54210:45:28"},"returnParameters":{"id":17755,"nodeType":"ParameterList","parameters":[],"src":"54270:0:28"},"scope":19517,"src":"54198:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17790,"nodeType":"Block","src":"54464:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":17782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54514:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":17783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"54550:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17784,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17772,"src":"54554:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17785,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"54558:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17786,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"54562:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54490:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54494:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54490:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54490:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54474:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54474:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17789,"nodeType":"ExpressionStatement","src":"54474:92:28"}]},"id":17791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54395:3:28","nodeType":"FunctionDefinition","parameters":{"id":17777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17770,"mutability":"mutable","name":"p0","nameLocation":"54404:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54399:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17769,"name":"bool","nodeType":"ElementaryTypeName","src":"54399:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17772,"mutability":"mutable","name":"p1","nameLocation":"54416:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54408:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17771,"name":"address","nodeType":"ElementaryTypeName","src":"54408:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17774,"mutability":"mutable","name":"p2","nameLocation":"54434:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54420:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17773,"name":"string","nodeType":"ElementaryTypeName","src":"54420:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17776,"mutability":"mutable","name":"p3","nameLocation":"54446:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17775,"name":"uint256","nodeType":"ElementaryTypeName","src":"54438:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54398:51:28"},"returnParameters":{"id":17778,"nodeType":"ParameterList","parameters":[],"src":"54464:0:28"},"scope":19517,"src":"54386:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17813,"nodeType":"Block","src":"54663:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":17805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54713:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":17806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17793,"src":"54748:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17795,"src":"54752:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17797,"src":"54756:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17809,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"54760:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54689:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54693:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54689:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54689:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54673:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54673:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17812,"nodeType":"ExpressionStatement","src":"54673:91:28"}]},"id":17814,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54588:3:28","nodeType":"FunctionDefinition","parameters":{"id":17800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17793,"mutability":"mutable","name":"p0","nameLocation":"54597:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54592:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17792,"name":"bool","nodeType":"ElementaryTypeName","src":"54592:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17795,"mutability":"mutable","name":"p1","nameLocation":"54609:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54601:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17794,"name":"address","nodeType":"ElementaryTypeName","src":"54601:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17797,"mutability":"mutable","name":"p2","nameLocation":"54627:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54613:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17796,"name":"string","nodeType":"ElementaryTypeName","src":"54613:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17799,"mutability":"mutable","name":"p3","nameLocation":"54645:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54631:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17798,"name":"string","nodeType":"ElementaryTypeName","src":"54631:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54591:57:28"},"returnParameters":{"id":17801,"nodeType":"ParameterList","parameters":[],"src":"54663:0:28"},"scope":19517,"src":"54579:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17836,"nodeType":"Block","src":"54852:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":17828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54902:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":17829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"54935:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17830,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"54939:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17831,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17820,"src":"54943:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17832,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17822,"src":"54947:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54878:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54882:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54878:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54878:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54862:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54862:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17835,"nodeType":"ExpressionStatement","src":"54862:89:28"}]},"id":17837,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54786:3:28","nodeType":"FunctionDefinition","parameters":{"id":17823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17816,"mutability":"mutable","name":"p0","nameLocation":"54795:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54790:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17815,"name":"bool","nodeType":"ElementaryTypeName","src":"54790:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17818,"mutability":"mutable","name":"p1","nameLocation":"54807:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54799:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17817,"name":"address","nodeType":"ElementaryTypeName","src":"54799:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17820,"mutability":"mutable","name":"p2","nameLocation":"54825:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54811:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17819,"name":"string","nodeType":"ElementaryTypeName","src":"54811:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17822,"mutability":"mutable","name":"p3","nameLocation":"54834:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54829:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17821,"name":"bool","nodeType":"ElementaryTypeName","src":"54829:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54789:48:28"},"returnParameters":{"id":17824,"nodeType":"ParameterList","parameters":[],"src":"54852:0:28"},"scope":19517,"src":"54777:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17859,"nodeType":"Block","src":"55042:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":17851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55092:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":17852,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17839,"src":"55128:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17853,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17841,"src":"55132:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17854,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17843,"src":"55136:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17855,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17845,"src":"55140:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55068:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55072:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55068:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55068:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17848,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55052:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55052:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17858,"nodeType":"ExpressionStatement","src":"55052:92:28"}]},"id":17860,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54973:3:28","nodeType":"FunctionDefinition","parameters":{"id":17846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17839,"mutability":"mutable","name":"p0","nameLocation":"54982:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"54977:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17838,"name":"bool","nodeType":"ElementaryTypeName","src":"54977:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17841,"mutability":"mutable","name":"p1","nameLocation":"54994:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"54986:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17840,"name":"address","nodeType":"ElementaryTypeName","src":"54986:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17843,"mutability":"mutable","name":"p2","nameLocation":"55012:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"54998:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17842,"name":"string","nodeType":"ElementaryTypeName","src":"54998:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17845,"mutability":"mutable","name":"p3","nameLocation":"55024:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"55016:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17844,"name":"address","nodeType":"ElementaryTypeName","src":"55016:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54976:51:28"},"returnParameters":{"id":17847,"nodeType":"ParameterList","parameters":[],"src":"55042:0:28"},"scope":19517,"src":"54964:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17882,"nodeType":"Block","src":"55226:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":17874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55276:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":17875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17862,"src":"55310:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17876,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17864,"src":"55314:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17877,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17866,"src":"55318:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17878,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17868,"src":"55322:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55252:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55256:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55252:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55252:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55236:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55236:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17881,"nodeType":"ExpressionStatement","src":"55236:90:28"}]},"id":17883,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55166:3:28","nodeType":"FunctionDefinition","parameters":{"id":17869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17862,"mutability":"mutable","name":"p0","nameLocation":"55175:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55170:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17861,"name":"bool","nodeType":"ElementaryTypeName","src":"55170:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17864,"mutability":"mutable","name":"p1","nameLocation":"55187:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55179:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17863,"name":"address","nodeType":"ElementaryTypeName","src":"55179:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17866,"mutability":"mutable","name":"p2","nameLocation":"55196:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55191:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17865,"name":"bool","nodeType":"ElementaryTypeName","src":"55191:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17868,"mutability":"mutable","name":"p3","nameLocation":"55208:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55200:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17867,"name":"uint256","nodeType":"ElementaryTypeName","src":"55200:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55169:42:28"},"returnParameters":{"id":17870,"nodeType":"ParameterList","parameters":[],"src":"55226:0:28"},"scope":19517,"src":"55157:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17905,"nodeType":"Block","src":"55414:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":17897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55464:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":17898,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17885,"src":"55497:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17899,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17887,"src":"55501:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17900,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17889,"src":"55505:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17901,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17891,"src":"55509:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17895,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55440:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55444:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55440:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55440:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17894,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55424:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55424:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17904,"nodeType":"ExpressionStatement","src":"55424:89:28"}]},"id":17906,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55348:3:28","nodeType":"FunctionDefinition","parameters":{"id":17892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17885,"mutability":"mutable","name":"p0","nameLocation":"55357:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55352:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17884,"name":"bool","nodeType":"ElementaryTypeName","src":"55352:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17887,"mutability":"mutable","name":"p1","nameLocation":"55369:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55361:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17886,"name":"address","nodeType":"ElementaryTypeName","src":"55361:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17889,"mutability":"mutable","name":"p2","nameLocation":"55378:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55373:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17888,"name":"bool","nodeType":"ElementaryTypeName","src":"55373:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17891,"mutability":"mutable","name":"p3","nameLocation":"55396:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55382:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17890,"name":"string","nodeType":"ElementaryTypeName","src":"55382:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55351:48:28"},"returnParameters":{"id":17893,"nodeType":"ParameterList","parameters":[],"src":"55414:0:28"},"scope":19517,"src":"55339:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17928,"nodeType":"Block","src":"55592:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":17920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55642:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":17921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17908,"src":"55673:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17910,"src":"55677:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17912,"src":"55681:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17924,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17914,"src":"55685:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55618:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55622:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55618:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55618:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55602:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55602:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17927,"nodeType":"ExpressionStatement","src":"55602:87:28"}]},"id":17929,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55535:3:28","nodeType":"FunctionDefinition","parameters":{"id":17915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17908,"mutability":"mutable","name":"p0","nameLocation":"55544:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55539:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17907,"name":"bool","nodeType":"ElementaryTypeName","src":"55539:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17910,"mutability":"mutable","name":"p1","nameLocation":"55556:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55548:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17909,"name":"address","nodeType":"ElementaryTypeName","src":"55548:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17912,"mutability":"mutable","name":"p2","nameLocation":"55565:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55560:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17911,"name":"bool","nodeType":"ElementaryTypeName","src":"55560:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17914,"mutability":"mutable","name":"p3","nameLocation":"55574:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55569:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17913,"name":"bool","nodeType":"ElementaryTypeName","src":"55569:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55538:39:28"},"returnParameters":{"id":17916,"nodeType":"ParameterList","parameters":[],"src":"55592:0:28"},"scope":19517,"src":"55526:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17951,"nodeType":"Block","src":"55771:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":17943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55821:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":17944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17931,"src":"55855:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17933,"src":"55859:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17935,"src":"55863:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17947,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17937,"src":"55867:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55797:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55801:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55797:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55797:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55781:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55781:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17950,"nodeType":"ExpressionStatement","src":"55781:90:28"}]},"id":17952,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55711:3:28","nodeType":"FunctionDefinition","parameters":{"id":17938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17931,"mutability":"mutable","name":"p0","nameLocation":"55720:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55715:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17930,"name":"bool","nodeType":"ElementaryTypeName","src":"55715:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17933,"mutability":"mutable","name":"p1","nameLocation":"55732:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55724:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17932,"name":"address","nodeType":"ElementaryTypeName","src":"55724:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17935,"mutability":"mutable","name":"p2","nameLocation":"55741:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55736:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17934,"name":"bool","nodeType":"ElementaryTypeName","src":"55736:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17937,"mutability":"mutable","name":"p3","nameLocation":"55753:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55745:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17936,"name":"address","nodeType":"ElementaryTypeName","src":"55745:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55714:42:28"},"returnParameters":{"id":17939,"nodeType":"ParameterList","parameters":[],"src":"55771:0:28"},"scope":19517,"src":"55702:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17974,"nodeType":"Block","src":"55956:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":17966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56006:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":17967,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17954,"src":"56043:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17968,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17956,"src":"56047:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17969,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17958,"src":"56051:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17970,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17960,"src":"56055:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55982:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55986:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55982:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55982:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55966:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55966:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17973,"nodeType":"ExpressionStatement","src":"55966:93:28"}]},"id":17975,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55893:3:28","nodeType":"FunctionDefinition","parameters":{"id":17961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17954,"mutability":"mutable","name":"p0","nameLocation":"55902:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55897:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17953,"name":"bool","nodeType":"ElementaryTypeName","src":"55897:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17956,"mutability":"mutable","name":"p1","nameLocation":"55914:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55906:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17955,"name":"address","nodeType":"ElementaryTypeName","src":"55906:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17958,"mutability":"mutable","name":"p2","nameLocation":"55926:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55918:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17957,"name":"address","nodeType":"ElementaryTypeName","src":"55918:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17960,"mutability":"mutable","name":"p3","nameLocation":"55938:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55930:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17959,"name":"uint256","nodeType":"ElementaryTypeName","src":"55930:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55896:45:28"},"returnParameters":{"id":17962,"nodeType":"ParameterList","parameters":[],"src":"55956:0:28"},"scope":19517,"src":"55884:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17997,"nodeType":"Block","src":"56150:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":17989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56200:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":17990,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17977,"src":"56236:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17991,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17979,"src":"56240:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17992,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17981,"src":"56244:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17993,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"56248:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56176:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56180:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56176:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56176:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17986,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56160:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17996,"nodeType":"ExpressionStatement","src":"56160:92:28"}]},"id":17998,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56081:3:28","nodeType":"FunctionDefinition","parameters":{"id":17984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17977,"mutability":"mutable","name":"p0","nameLocation":"56090:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56085:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17976,"name":"bool","nodeType":"ElementaryTypeName","src":"56085:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17979,"mutability":"mutable","name":"p1","nameLocation":"56102:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56094:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17978,"name":"address","nodeType":"ElementaryTypeName","src":"56094:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17981,"mutability":"mutable","name":"p2","nameLocation":"56114:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56106:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17980,"name":"address","nodeType":"ElementaryTypeName","src":"56106:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17983,"mutability":"mutable","name":"p3","nameLocation":"56132:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56118:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17982,"name":"string","nodeType":"ElementaryTypeName","src":"56118:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56084:51:28"},"returnParameters":{"id":17985,"nodeType":"ParameterList","parameters":[],"src":"56150:0:28"},"scope":19517,"src":"56072:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18020,"nodeType":"Block","src":"56334:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":18012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56384:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":18013,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18000,"src":"56418:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18014,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18002,"src":"56422:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18015,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18004,"src":"56426:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18016,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18006,"src":"56430:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56360:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56364:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56360:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56360:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56344:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56344:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18019,"nodeType":"ExpressionStatement","src":"56344:90:28"}]},"id":18021,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56274:3:28","nodeType":"FunctionDefinition","parameters":{"id":18007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18000,"mutability":"mutable","name":"p0","nameLocation":"56283:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56278:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17999,"name":"bool","nodeType":"ElementaryTypeName","src":"56278:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18002,"mutability":"mutable","name":"p1","nameLocation":"56295:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56287:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18001,"name":"address","nodeType":"ElementaryTypeName","src":"56287:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18004,"mutability":"mutable","name":"p2","nameLocation":"56307:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56299:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18003,"name":"address","nodeType":"ElementaryTypeName","src":"56299:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18006,"mutability":"mutable","name":"p3","nameLocation":"56316:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56311:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18005,"name":"bool","nodeType":"ElementaryTypeName","src":"56311:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56277:42:28"},"returnParameters":{"id":18008,"nodeType":"ParameterList","parameters":[],"src":"56334:0:28"},"scope":19517,"src":"56265:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18043,"nodeType":"Block","src":"56519:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":18035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56569:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":18036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18023,"src":"56606:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18025,"src":"56610:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18038,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18027,"src":"56614:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18039,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18029,"src":"56618:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56545:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56549:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56545:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56545:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56529:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56529:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18042,"nodeType":"ExpressionStatement","src":"56529:93:28"}]},"id":18044,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56456:3:28","nodeType":"FunctionDefinition","parameters":{"id":18030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18023,"mutability":"mutable","name":"p0","nameLocation":"56465:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56460:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18022,"name":"bool","nodeType":"ElementaryTypeName","src":"56460:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18025,"mutability":"mutable","name":"p1","nameLocation":"56477:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56469:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18024,"name":"address","nodeType":"ElementaryTypeName","src":"56469:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18027,"mutability":"mutable","name":"p2","nameLocation":"56489:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56481:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18026,"name":"address","nodeType":"ElementaryTypeName","src":"56481:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18029,"mutability":"mutable","name":"p3","nameLocation":"56501:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56493:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18028,"name":"address","nodeType":"ElementaryTypeName","src":"56493:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56459:45:28"},"returnParameters":{"id":18031,"nodeType":"ParameterList","parameters":[],"src":"56519:0:28"},"scope":19517,"src":"56447:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18066,"nodeType":"Block","src":"56710:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":18058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56760:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":18059,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18046,"src":"56800:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18060,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18048,"src":"56804:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18061,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18050,"src":"56808:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18062,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18052,"src":"56812:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56736:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56740:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56736:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56736:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56720:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56720:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18065,"nodeType":"ExpressionStatement","src":"56720:96:28"}]},"id":18067,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56644:3:28","nodeType":"FunctionDefinition","parameters":{"id":18053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18046,"mutability":"mutable","name":"p0","nameLocation":"56656:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56648:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18045,"name":"address","nodeType":"ElementaryTypeName","src":"56648:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18048,"mutability":"mutable","name":"p1","nameLocation":"56668:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56660:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18047,"name":"uint256","nodeType":"ElementaryTypeName","src":"56660:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18050,"mutability":"mutable","name":"p2","nameLocation":"56680:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56672:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18049,"name":"uint256","nodeType":"ElementaryTypeName","src":"56672:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18052,"mutability":"mutable","name":"p3","nameLocation":"56692:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56684:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18051,"name":"uint256","nodeType":"ElementaryTypeName","src":"56684:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56647:48:28"},"returnParameters":{"id":18054,"nodeType":"ParameterList","parameters":[],"src":"56710:0:28"},"scope":19517,"src":"56635:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18089,"nodeType":"Block","src":"56910:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":18081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56960:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":18082,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18069,"src":"56999:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18083,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18071,"src":"57003:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18084,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"57007:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18085,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18075,"src":"57011:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56936:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56940:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56936:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56936:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18078,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56920:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56920:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18088,"nodeType":"ExpressionStatement","src":"56920:95:28"}]},"id":18090,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56838:3:28","nodeType":"FunctionDefinition","parameters":{"id":18076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18069,"mutability":"mutable","name":"p0","nameLocation":"56850:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56842:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18068,"name":"address","nodeType":"ElementaryTypeName","src":"56842:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18071,"mutability":"mutable","name":"p1","nameLocation":"56862:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56854:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18070,"name":"uint256","nodeType":"ElementaryTypeName","src":"56854:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18073,"mutability":"mutable","name":"p2","nameLocation":"56874:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56866:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18072,"name":"uint256","nodeType":"ElementaryTypeName","src":"56866:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18075,"mutability":"mutable","name":"p3","nameLocation":"56892:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56878:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18074,"name":"string","nodeType":"ElementaryTypeName","src":"56878:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56841:54:28"},"returnParameters":{"id":18077,"nodeType":"ParameterList","parameters":[],"src":"56910:0:28"},"scope":19517,"src":"56829:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18112,"nodeType":"Block","src":"57100:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":18104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57150:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":18105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18092,"src":"57187:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18106,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"57191:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18107,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"57195:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18108,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18098,"src":"57199:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57126:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57130:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57126:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57126:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57110:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57110:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18111,"nodeType":"ExpressionStatement","src":"57110:93:28"}]},"id":18113,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57037:3:28","nodeType":"FunctionDefinition","parameters":{"id":18099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18092,"mutability":"mutable","name":"p0","nameLocation":"57049:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57041:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18091,"name":"address","nodeType":"ElementaryTypeName","src":"57041:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18094,"mutability":"mutable","name":"p1","nameLocation":"57061:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57053:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18093,"name":"uint256","nodeType":"ElementaryTypeName","src":"57053:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18096,"mutability":"mutable","name":"p2","nameLocation":"57073:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57065:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18095,"name":"uint256","nodeType":"ElementaryTypeName","src":"57065:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18098,"mutability":"mutable","name":"p3","nameLocation":"57082:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57077:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18097,"name":"bool","nodeType":"ElementaryTypeName","src":"57077:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57040:45:28"},"returnParameters":{"id":18100,"nodeType":"ParameterList","parameters":[],"src":"57100:0:28"},"scope":19517,"src":"57028:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18135,"nodeType":"Block","src":"57291:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":18127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57341:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":18128,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18115,"src":"57381:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18129,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18117,"src":"57385:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18130,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18119,"src":"57389:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18131,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"57393:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57317:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57321:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57317:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57317:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18124,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57301:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57301:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18134,"nodeType":"ExpressionStatement","src":"57301:96:28"}]},"id":18136,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57225:3:28","nodeType":"FunctionDefinition","parameters":{"id":18122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18115,"mutability":"mutable","name":"p0","nameLocation":"57237:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57229:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18114,"name":"address","nodeType":"ElementaryTypeName","src":"57229:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18117,"mutability":"mutable","name":"p1","nameLocation":"57249:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57241:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18116,"name":"uint256","nodeType":"ElementaryTypeName","src":"57241:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18119,"mutability":"mutable","name":"p2","nameLocation":"57261:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57253:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18118,"name":"uint256","nodeType":"ElementaryTypeName","src":"57253:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18121,"mutability":"mutable","name":"p3","nameLocation":"57273:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57265:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18120,"name":"address","nodeType":"ElementaryTypeName","src":"57265:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57228:48:28"},"returnParameters":{"id":18123,"nodeType":"ParameterList","parameters":[],"src":"57291:0:28"},"scope":19517,"src":"57216:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18158,"nodeType":"Block","src":"57491:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":18150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57541:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":18151,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"57580:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18152,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18140,"src":"57584:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18153,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18142,"src":"57588:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18154,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18144,"src":"57592:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57517:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57521:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57517:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57517:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57501:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57501:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18157,"nodeType":"ExpressionStatement","src":"57501:95:28"}]},"id":18159,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57419:3:28","nodeType":"FunctionDefinition","parameters":{"id":18145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18138,"mutability":"mutable","name":"p0","nameLocation":"57431:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57423:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18137,"name":"address","nodeType":"ElementaryTypeName","src":"57423:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18140,"mutability":"mutable","name":"p1","nameLocation":"57443:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57435:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18139,"name":"uint256","nodeType":"ElementaryTypeName","src":"57435:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18142,"mutability":"mutable","name":"p2","nameLocation":"57461:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57447:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18141,"name":"string","nodeType":"ElementaryTypeName","src":"57447:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18144,"mutability":"mutable","name":"p3","nameLocation":"57473:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57465:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18143,"name":"uint256","nodeType":"ElementaryTypeName","src":"57465:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57422:54:28"},"returnParameters":{"id":18146,"nodeType":"ParameterList","parameters":[],"src":"57491:0:28"},"scope":19517,"src":"57410:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18181,"nodeType":"Block","src":"57696:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":18173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57746:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":18174,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18161,"src":"57784:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18175,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18163,"src":"57788:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18176,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18165,"src":"57792:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18177,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18167,"src":"57796:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57722:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57726:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57722:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57722:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18170,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57706:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57706:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18180,"nodeType":"ExpressionStatement","src":"57706:94:28"}]},"id":18182,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57618:3:28","nodeType":"FunctionDefinition","parameters":{"id":18168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18161,"mutability":"mutable","name":"p0","nameLocation":"57630:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57622:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18160,"name":"address","nodeType":"ElementaryTypeName","src":"57622:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18163,"mutability":"mutable","name":"p1","nameLocation":"57642:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57634:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18162,"name":"uint256","nodeType":"ElementaryTypeName","src":"57634:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18165,"mutability":"mutable","name":"p2","nameLocation":"57660:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57646:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18164,"name":"string","nodeType":"ElementaryTypeName","src":"57646:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18167,"mutability":"mutable","name":"p3","nameLocation":"57678:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57664:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18166,"name":"string","nodeType":"ElementaryTypeName","src":"57664:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57621:60:28"},"returnParameters":{"id":18169,"nodeType":"ParameterList","parameters":[],"src":"57696:0:28"},"scope":19517,"src":"57609:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18204,"nodeType":"Block","src":"57891:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":18196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57941:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":18197,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18184,"src":"57977:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18198,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18186,"src":"57981:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18199,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18188,"src":"57985:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18200,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18190,"src":"57989:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18194,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57917:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57921:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57917:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57917:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18193,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57901:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57901:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18203,"nodeType":"ExpressionStatement","src":"57901:92:28"}]},"id":18205,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57822:3:28","nodeType":"FunctionDefinition","parameters":{"id":18191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18184,"mutability":"mutable","name":"p0","nameLocation":"57834:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57826:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18183,"name":"address","nodeType":"ElementaryTypeName","src":"57826:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18186,"mutability":"mutable","name":"p1","nameLocation":"57846:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57838:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18185,"name":"uint256","nodeType":"ElementaryTypeName","src":"57838:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18188,"mutability":"mutable","name":"p2","nameLocation":"57864:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57850:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18187,"name":"string","nodeType":"ElementaryTypeName","src":"57850:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18190,"mutability":"mutable","name":"p3","nameLocation":"57873:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57868:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18189,"name":"bool","nodeType":"ElementaryTypeName","src":"57868:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57825:51:28"},"returnParameters":{"id":18192,"nodeType":"ParameterList","parameters":[],"src":"57891:0:28"},"scope":19517,"src":"57813:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18227,"nodeType":"Block","src":"58087:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":18219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58137:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":18220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18207,"src":"58176:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18221,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18209,"src":"58180:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18222,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"58184:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18223,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18213,"src":"58188:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58113:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58117:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58113:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58113:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58097:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58097:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18226,"nodeType":"ExpressionStatement","src":"58097:95:28"}]},"id":18228,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58015:3:28","nodeType":"FunctionDefinition","parameters":{"id":18214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18207,"mutability":"mutable","name":"p0","nameLocation":"58027:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58019:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18206,"name":"address","nodeType":"ElementaryTypeName","src":"58019:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18209,"mutability":"mutable","name":"p1","nameLocation":"58039:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58031:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18208,"name":"uint256","nodeType":"ElementaryTypeName","src":"58031:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18211,"mutability":"mutable","name":"p2","nameLocation":"58057:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58043:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18210,"name":"string","nodeType":"ElementaryTypeName","src":"58043:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18213,"mutability":"mutable","name":"p3","nameLocation":"58069:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58061:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18212,"name":"address","nodeType":"ElementaryTypeName","src":"58061:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58018:54:28"},"returnParameters":{"id":18215,"nodeType":"ParameterList","parameters":[],"src":"58087:0:28"},"scope":19517,"src":"58006:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18250,"nodeType":"Block","src":"58277:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":18242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58327:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":18243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18230,"src":"58364:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18232,"src":"58368:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18234,"src":"58372:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18246,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"58376:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58303:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58307:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58303:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58303:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58287:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58287:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18249,"nodeType":"ExpressionStatement","src":"58287:93:28"}]},"id":18251,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58214:3:28","nodeType":"FunctionDefinition","parameters":{"id":18237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18230,"mutability":"mutable","name":"p0","nameLocation":"58226:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58218:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18229,"name":"address","nodeType":"ElementaryTypeName","src":"58218:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18232,"mutability":"mutable","name":"p1","nameLocation":"58238:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58230:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18231,"name":"uint256","nodeType":"ElementaryTypeName","src":"58230:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18234,"mutability":"mutable","name":"p2","nameLocation":"58247:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58242:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18233,"name":"bool","nodeType":"ElementaryTypeName","src":"58242:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18236,"mutability":"mutable","name":"p3","nameLocation":"58259:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58251:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18235,"name":"uint256","nodeType":"ElementaryTypeName","src":"58251:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58217:45:28"},"returnParameters":{"id":18238,"nodeType":"ParameterList","parameters":[],"src":"58277:0:28"},"scope":19517,"src":"58205:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18273,"nodeType":"Block","src":"58471:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":18265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58521:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":18266,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18253,"src":"58557:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18267,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"58561:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18268,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18257,"src":"58565:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18269,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18259,"src":"58569:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58497:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58501:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58497:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58497:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18262,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58481:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58481:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18272,"nodeType":"ExpressionStatement","src":"58481:92:28"}]},"id":18274,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58402:3:28","nodeType":"FunctionDefinition","parameters":{"id":18260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18253,"mutability":"mutable","name":"p0","nameLocation":"58414:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58406:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18252,"name":"address","nodeType":"ElementaryTypeName","src":"58406:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18255,"mutability":"mutable","name":"p1","nameLocation":"58426:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58418:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18254,"name":"uint256","nodeType":"ElementaryTypeName","src":"58418:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18257,"mutability":"mutable","name":"p2","nameLocation":"58435:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58430:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18256,"name":"bool","nodeType":"ElementaryTypeName","src":"58430:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18259,"mutability":"mutable","name":"p3","nameLocation":"58453:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58439:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18258,"name":"string","nodeType":"ElementaryTypeName","src":"58439:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58405:51:28"},"returnParameters":{"id":18261,"nodeType":"ParameterList","parameters":[],"src":"58471:0:28"},"scope":19517,"src":"58393:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18296,"nodeType":"Block","src":"58655:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":18288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58705:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":18289,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"58739:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18290,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18278,"src":"58743:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18291,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18280,"src":"58747:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18292,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"58751:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58681:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58685:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58681:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58681:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18285,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58665:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58665:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18295,"nodeType":"ExpressionStatement","src":"58665:90:28"}]},"id":18297,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58595:3:28","nodeType":"FunctionDefinition","parameters":{"id":18283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18276,"mutability":"mutable","name":"p0","nameLocation":"58607:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58599:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18275,"name":"address","nodeType":"ElementaryTypeName","src":"58599:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18278,"mutability":"mutable","name":"p1","nameLocation":"58619:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58611:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18277,"name":"uint256","nodeType":"ElementaryTypeName","src":"58611:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18280,"mutability":"mutable","name":"p2","nameLocation":"58628:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58623:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18279,"name":"bool","nodeType":"ElementaryTypeName","src":"58623:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18282,"mutability":"mutable","name":"p3","nameLocation":"58637:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58632:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18281,"name":"bool","nodeType":"ElementaryTypeName","src":"58632:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58598:42:28"},"returnParameters":{"id":18284,"nodeType":"ParameterList","parameters":[],"src":"58655:0:28"},"scope":19517,"src":"58586:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18319,"nodeType":"Block","src":"58840:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":18311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58890:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":18312,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18299,"src":"58927:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18313,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"58931:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18314,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18303,"src":"58935:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18315,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18305,"src":"58939:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18309,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58866:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58870:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58866:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58866:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18308,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58850:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58850:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18318,"nodeType":"ExpressionStatement","src":"58850:93:28"}]},"id":18320,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58777:3:28","nodeType":"FunctionDefinition","parameters":{"id":18306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18299,"mutability":"mutable","name":"p0","nameLocation":"58789:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58781:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18298,"name":"address","nodeType":"ElementaryTypeName","src":"58781:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18301,"mutability":"mutable","name":"p1","nameLocation":"58801:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58793:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18300,"name":"uint256","nodeType":"ElementaryTypeName","src":"58793:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18303,"mutability":"mutable","name":"p2","nameLocation":"58810:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58805:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18302,"name":"bool","nodeType":"ElementaryTypeName","src":"58805:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18305,"mutability":"mutable","name":"p3","nameLocation":"58822:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58814:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18304,"name":"address","nodeType":"ElementaryTypeName","src":"58814:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58780:45:28"},"returnParameters":{"id":18307,"nodeType":"ParameterList","parameters":[],"src":"58840:0:28"},"scope":19517,"src":"58768:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18342,"nodeType":"Block","src":"59031:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":18334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59081:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":18335,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18322,"src":"59121:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18336,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"59125:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18337,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18326,"src":"59129:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18338,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18328,"src":"59133:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59057:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59061:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59057:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59057:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18331,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59041:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59041:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18341,"nodeType":"ExpressionStatement","src":"59041:96:28"}]},"id":18343,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58965:3:28","nodeType":"FunctionDefinition","parameters":{"id":18329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18322,"mutability":"mutable","name":"p0","nameLocation":"58977:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"58969:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18321,"name":"address","nodeType":"ElementaryTypeName","src":"58969:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18324,"mutability":"mutable","name":"p1","nameLocation":"58989:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"58981:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18323,"name":"uint256","nodeType":"ElementaryTypeName","src":"58981:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18326,"mutability":"mutable","name":"p2","nameLocation":"59001:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"58993:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18325,"name":"address","nodeType":"ElementaryTypeName","src":"58993:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18328,"mutability":"mutable","name":"p3","nameLocation":"59013:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"59005:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18327,"name":"uint256","nodeType":"ElementaryTypeName","src":"59005:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58968:48:28"},"returnParameters":{"id":18330,"nodeType":"ParameterList","parameters":[],"src":"59031:0:28"},"scope":19517,"src":"58956:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18365,"nodeType":"Block","src":"59231:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":18357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59281:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":18358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18345,"src":"59320:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18359,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18347,"src":"59324:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18360,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"59328:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18361,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18351,"src":"59332:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59257:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59261:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59257:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59257:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59241:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59241:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18364,"nodeType":"ExpressionStatement","src":"59241:95:28"}]},"id":18366,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59159:3:28","nodeType":"FunctionDefinition","parameters":{"id":18352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18345,"mutability":"mutable","name":"p0","nameLocation":"59171:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59163:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18344,"name":"address","nodeType":"ElementaryTypeName","src":"59163:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18347,"mutability":"mutable","name":"p1","nameLocation":"59183:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59175:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18346,"name":"uint256","nodeType":"ElementaryTypeName","src":"59175:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18349,"mutability":"mutable","name":"p2","nameLocation":"59195:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59187:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18348,"name":"address","nodeType":"ElementaryTypeName","src":"59187:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18351,"mutability":"mutable","name":"p3","nameLocation":"59213:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59199:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18350,"name":"string","nodeType":"ElementaryTypeName","src":"59199:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59162:54:28"},"returnParameters":{"id":18353,"nodeType":"ParameterList","parameters":[],"src":"59231:0:28"},"scope":19517,"src":"59150:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18388,"nodeType":"Block","src":"59421:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":18380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59471:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":18381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18368,"src":"59508:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18370,"src":"59512:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"59516:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18384,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18374,"src":"59520:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59447:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59451:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59447:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59447:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59431:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59431:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18387,"nodeType":"ExpressionStatement","src":"59431:93:28"}]},"id":18389,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59358:3:28","nodeType":"FunctionDefinition","parameters":{"id":18375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18368,"mutability":"mutable","name":"p0","nameLocation":"59370:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59362:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18367,"name":"address","nodeType":"ElementaryTypeName","src":"59362:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18370,"mutability":"mutable","name":"p1","nameLocation":"59382:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59374:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18369,"name":"uint256","nodeType":"ElementaryTypeName","src":"59374:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18372,"mutability":"mutable","name":"p2","nameLocation":"59394:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59386:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18371,"name":"address","nodeType":"ElementaryTypeName","src":"59386:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18374,"mutability":"mutable","name":"p3","nameLocation":"59403:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59398:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18373,"name":"bool","nodeType":"ElementaryTypeName","src":"59398:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59361:45:28"},"returnParameters":{"id":18376,"nodeType":"ParameterList","parameters":[],"src":"59421:0:28"},"scope":19517,"src":"59349:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18411,"nodeType":"Block","src":"59612:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":18403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59662:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":18404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18391,"src":"59702:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18393,"src":"59706:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18395,"src":"59710:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18407,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18397,"src":"59714:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59638:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59642:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59638:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59638:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59622:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59622:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18410,"nodeType":"ExpressionStatement","src":"59622:96:28"}]},"id":18412,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59546:3:28","nodeType":"FunctionDefinition","parameters":{"id":18398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18391,"mutability":"mutable","name":"p0","nameLocation":"59558:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59550:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18390,"name":"address","nodeType":"ElementaryTypeName","src":"59550:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18393,"mutability":"mutable","name":"p1","nameLocation":"59570:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59562:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18392,"name":"uint256","nodeType":"ElementaryTypeName","src":"59562:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18395,"mutability":"mutable","name":"p2","nameLocation":"59582:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59574:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18394,"name":"address","nodeType":"ElementaryTypeName","src":"59574:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18397,"mutability":"mutable","name":"p3","nameLocation":"59594:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59586:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18396,"name":"address","nodeType":"ElementaryTypeName","src":"59586:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59549:48:28"},"returnParameters":{"id":18399,"nodeType":"ParameterList","parameters":[],"src":"59612:0:28"},"scope":19517,"src":"59537:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18434,"nodeType":"Block","src":"59812:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":18426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59862:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":18427,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18414,"src":"59901:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18428,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18416,"src":"59905:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18429,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"59909:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18430,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18420,"src":"59913:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59838:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59842:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59838:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59838:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18423,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59822:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59822:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18433,"nodeType":"ExpressionStatement","src":"59822:95:28"}]},"id":18435,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59740:3:28","nodeType":"FunctionDefinition","parameters":{"id":18421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18414,"mutability":"mutable","name":"p0","nameLocation":"59752:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59744:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18413,"name":"address","nodeType":"ElementaryTypeName","src":"59744:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18416,"mutability":"mutable","name":"p1","nameLocation":"59770:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59756:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18415,"name":"string","nodeType":"ElementaryTypeName","src":"59756:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18418,"mutability":"mutable","name":"p2","nameLocation":"59782:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18417,"name":"uint256","nodeType":"ElementaryTypeName","src":"59774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18420,"mutability":"mutable","name":"p3","nameLocation":"59794:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59786:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18419,"name":"uint256","nodeType":"ElementaryTypeName","src":"59786:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59743:54:28"},"returnParameters":{"id":18422,"nodeType":"ParameterList","parameters":[],"src":"59812:0:28"},"scope":19517,"src":"59731:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18457,"nodeType":"Block","src":"60017:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":18449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60067:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":18450,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18437,"src":"60105:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18451,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18439,"src":"60109:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18452,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18441,"src":"60113:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18453,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18443,"src":"60117:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60043:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60047:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60043:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60043:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18446,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60027:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60027:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18456,"nodeType":"ExpressionStatement","src":"60027:94:28"}]},"id":18458,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59939:3:28","nodeType":"FunctionDefinition","parameters":{"id":18444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18437,"mutability":"mutable","name":"p0","nameLocation":"59951:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59943:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18436,"name":"address","nodeType":"ElementaryTypeName","src":"59943:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18439,"mutability":"mutable","name":"p1","nameLocation":"59969:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59955:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18438,"name":"string","nodeType":"ElementaryTypeName","src":"59955:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18441,"mutability":"mutable","name":"p2","nameLocation":"59981:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59973:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18440,"name":"uint256","nodeType":"ElementaryTypeName","src":"59973:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18443,"mutability":"mutable","name":"p3","nameLocation":"59999:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59985:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18442,"name":"string","nodeType":"ElementaryTypeName","src":"59985:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59942:60:28"},"returnParameters":{"id":18445,"nodeType":"ParameterList","parameters":[],"src":"60017:0:28"},"scope":19517,"src":"59930:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18480,"nodeType":"Block","src":"60212:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":18472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60262:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":18473,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18460,"src":"60298:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18474,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18462,"src":"60302:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18475,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18464,"src":"60306:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18476,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18466,"src":"60310:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18470,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60238:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60242:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60238:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60238:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18469,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60222:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60222:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18479,"nodeType":"ExpressionStatement","src":"60222:92:28"}]},"id":18481,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60143:3:28","nodeType":"FunctionDefinition","parameters":{"id":18467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18460,"mutability":"mutable","name":"p0","nameLocation":"60155:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60147:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18459,"name":"address","nodeType":"ElementaryTypeName","src":"60147:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18462,"mutability":"mutable","name":"p1","nameLocation":"60173:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60159:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18461,"name":"string","nodeType":"ElementaryTypeName","src":"60159:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18464,"mutability":"mutable","name":"p2","nameLocation":"60185:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60177:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18463,"name":"uint256","nodeType":"ElementaryTypeName","src":"60177:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18466,"mutability":"mutable","name":"p3","nameLocation":"60194:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60189:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18465,"name":"bool","nodeType":"ElementaryTypeName","src":"60189:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60146:51:28"},"returnParameters":{"id":18468,"nodeType":"ParameterList","parameters":[],"src":"60212:0:28"},"scope":19517,"src":"60134:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18503,"nodeType":"Block","src":"60408:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":18495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60458:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":18496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18483,"src":"60497:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18485,"src":"60501:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18487,"src":"60505:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18499,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18489,"src":"60509:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60434:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60438:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60434:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60434:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60418:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60418:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18502,"nodeType":"ExpressionStatement","src":"60418:95:28"}]},"id":18504,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60336:3:28","nodeType":"FunctionDefinition","parameters":{"id":18490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18483,"mutability":"mutable","name":"p0","nameLocation":"60348:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60340:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18482,"name":"address","nodeType":"ElementaryTypeName","src":"60340:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18485,"mutability":"mutable","name":"p1","nameLocation":"60366:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60352:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18484,"name":"string","nodeType":"ElementaryTypeName","src":"60352:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18487,"mutability":"mutable","name":"p2","nameLocation":"60378:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60370:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18486,"name":"uint256","nodeType":"ElementaryTypeName","src":"60370:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18489,"mutability":"mutable","name":"p3","nameLocation":"60390:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60382:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18488,"name":"address","nodeType":"ElementaryTypeName","src":"60382:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60339:54:28"},"returnParameters":{"id":18491,"nodeType":"ParameterList","parameters":[],"src":"60408:0:28"},"scope":19517,"src":"60327:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18526,"nodeType":"Block","src":"60613:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":18518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60663:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":18519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18506,"src":"60701:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18508,"src":"60705:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18510,"src":"60709:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18522,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18512,"src":"60713:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60639:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60643:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60639:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60639:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60623:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60623:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18525,"nodeType":"ExpressionStatement","src":"60623:94:28"}]},"id":18527,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60535:3:28","nodeType":"FunctionDefinition","parameters":{"id":18513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18506,"mutability":"mutable","name":"p0","nameLocation":"60547:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60539:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18505,"name":"address","nodeType":"ElementaryTypeName","src":"60539:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18508,"mutability":"mutable","name":"p1","nameLocation":"60565:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60551:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18507,"name":"string","nodeType":"ElementaryTypeName","src":"60551:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18510,"mutability":"mutable","name":"p2","nameLocation":"60583:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60569:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18509,"name":"string","nodeType":"ElementaryTypeName","src":"60569:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18512,"mutability":"mutable","name":"p3","nameLocation":"60595:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60587:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18511,"name":"uint256","nodeType":"ElementaryTypeName","src":"60587:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60538:60:28"},"returnParameters":{"id":18514,"nodeType":"ParameterList","parameters":[],"src":"60613:0:28"},"scope":19517,"src":"60526:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18549,"nodeType":"Block","src":"60823:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":18541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60873:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":18542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18529,"src":"60910:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18543,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18531,"src":"60914:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18544,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18533,"src":"60918:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18545,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18535,"src":"60922:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60849:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60853:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60849:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60849:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60833:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60833:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18548,"nodeType":"ExpressionStatement","src":"60833:93:28"}]},"id":18550,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60739:3:28","nodeType":"FunctionDefinition","parameters":{"id":18536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18529,"mutability":"mutable","name":"p0","nameLocation":"60751:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60743:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18528,"name":"address","nodeType":"ElementaryTypeName","src":"60743:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18531,"mutability":"mutable","name":"p1","nameLocation":"60769:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60755:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18530,"name":"string","nodeType":"ElementaryTypeName","src":"60755:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18533,"mutability":"mutable","name":"p2","nameLocation":"60787:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60773:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18532,"name":"string","nodeType":"ElementaryTypeName","src":"60773:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18535,"mutability":"mutable","name":"p3","nameLocation":"60805:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60791:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18534,"name":"string","nodeType":"ElementaryTypeName","src":"60791:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60742:66:28"},"returnParameters":{"id":18537,"nodeType":"ParameterList","parameters":[],"src":"60823:0:28"},"scope":19517,"src":"60730:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18572,"nodeType":"Block","src":"61023:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":18564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61073:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":18565,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18552,"src":"61108:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18566,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18554,"src":"61112:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18567,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18556,"src":"61116:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18568,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18558,"src":"61120:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61049:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61053:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61049:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61049:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61033:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61033:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18571,"nodeType":"ExpressionStatement","src":"61033:91:28"}]},"id":18573,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60948:3:28","nodeType":"FunctionDefinition","parameters":{"id":18559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18552,"mutability":"mutable","name":"p0","nameLocation":"60960:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"60952:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18551,"name":"address","nodeType":"ElementaryTypeName","src":"60952:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18554,"mutability":"mutable","name":"p1","nameLocation":"60978:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"60964:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18553,"name":"string","nodeType":"ElementaryTypeName","src":"60964:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18556,"mutability":"mutable","name":"p2","nameLocation":"60996:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"60982:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18555,"name":"string","nodeType":"ElementaryTypeName","src":"60982:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18558,"mutability":"mutable","name":"p3","nameLocation":"61005:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"61000:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18557,"name":"bool","nodeType":"ElementaryTypeName","src":"61000:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60951:57:28"},"returnParameters":{"id":18560,"nodeType":"ParameterList","parameters":[],"src":"61023:0:28"},"scope":19517,"src":"60939:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18595,"nodeType":"Block","src":"61224:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":18587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61274:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":18588,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18575,"src":"61312:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18589,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18577,"src":"61316:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18590,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18579,"src":"61320:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18591,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"61324:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18585,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61250:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61254:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61250:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61250:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18584,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61234:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61234:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18594,"nodeType":"ExpressionStatement","src":"61234:94:28"}]},"id":18596,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61146:3:28","nodeType":"FunctionDefinition","parameters":{"id":18582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18575,"mutability":"mutable","name":"p0","nameLocation":"61158:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61150:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18574,"name":"address","nodeType":"ElementaryTypeName","src":"61150:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18577,"mutability":"mutable","name":"p1","nameLocation":"61176:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61162:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18576,"name":"string","nodeType":"ElementaryTypeName","src":"61162:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18579,"mutability":"mutable","name":"p2","nameLocation":"61194:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61180:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18578,"name":"string","nodeType":"ElementaryTypeName","src":"61180:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18581,"mutability":"mutable","name":"p3","nameLocation":"61206:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61198:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18580,"name":"address","nodeType":"ElementaryTypeName","src":"61198:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61149:60:28"},"returnParameters":{"id":18583,"nodeType":"ParameterList","parameters":[],"src":"61224:0:28"},"scope":19517,"src":"61137:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18618,"nodeType":"Block","src":"61419:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":18610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61469:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":18611,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18598,"src":"61505:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18612,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18600,"src":"61509:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18613,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18602,"src":"61513:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18614,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18604,"src":"61517:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18608,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61445:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61449:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61445:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61445:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18607,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61429:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61429:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18617,"nodeType":"ExpressionStatement","src":"61429:92:28"}]},"id":18619,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61350:3:28","nodeType":"FunctionDefinition","parameters":{"id":18605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18598,"mutability":"mutable","name":"p0","nameLocation":"61362:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61354:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18597,"name":"address","nodeType":"ElementaryTypeName","src":"61354:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18600,"mutability":"mutable","name":"p1","nameLocation":"61380:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61366:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18599,"name":"string","nodeType":"ElementaryTypeName","src":"61366:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18602,"mutability":"mutable","name":"p2","nameLocation":"61389:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61384:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18601,"name":"bool","nodeType":"ElementaryTypeName","src":"61384:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18604,"mutability":"mutable","name":"p3","nameLocation":"61401:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61393:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18603,"name":"uint256","nodeType":"ElementaryTypeName","src":"61393:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61353:51:28"},"returnParameters":{"id":18606,"nodeType":"ParameterList","parameters":[],"src":"61419:0:28"},"scope":19517,"src":"61341:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18641,"nodeType":"Block","src":"61618:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":18633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61668:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":18634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18621,"src":"61703:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18623,"src":"61707:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18636,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"61711:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18637,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18627,"src":"61715:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61644:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61648:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61644:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61644:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61628:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61628:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18640,"nodeType":"ExpressionStatement","src":"61628:91:28"}]},"id":18642,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61543:3:28","nodeType":"FunctionDefinition","parameters":{"id":18628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18621,"mutability":"mutable","name":"p0","nameLocation":"61555:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61547:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18620,"name":"address","nodeType":"ElementaryTypeName","src":"61547:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18623,"mutability":"mutable","name":"p1","nameLocation":"61573:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61559:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18622,"name":"string","nodeType":"ElementaryTypeName","src":"61559:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18625,"mutability":"mutable","name":"p2","nameLocation":"61582:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61577:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18624,"name":"bool","nodeType":"ElementaryTypeName","src":"61577:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18627,"mutability":"mutable","name":"p3","nameLocation":"61600:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61586:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18626,"name":"string","nodeType":"ElementaryTypeName","src":"61586:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61546:57:28"},"returnParameters":{"id":18629,"nodeType":"ParameterList","parameters":[],"src":"61618:0:28"},"scope":19517,"src":"61534:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18664,"nodeType":"Block","src":"61807:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":18656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61857:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":18657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"61890:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18658,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18646,"src":"61894:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18659,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18648,"src":"61898:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18660,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18650,"src":"61902:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61833:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61837:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61833:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61833:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61817:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61817:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18663,"nodeType":"ExpressionStatement","src":"61817:89:28"}]},"id":18665,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61741:3:28","nodeType":"FunctionDefinition","parameters":{"id":18651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18644,"mutability":"mutable","name":"p0","nameLocation":"61753:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61745:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18643,"name":"address","nodeType":"ElementaryTypeName","src":"61745:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18646,"mutability":"mutable","name":"p1","nameLocation":"61771:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61757:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18645,"name":"string","nodeType":"ElementaryTypeName","src":"61757:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18648,"mutability":"mutable","name":"p2","nameLocation":"61780:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61775:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18647,"name":"bool","nodeType":"ElementaryTypeName","src":"61775:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18650,"mutability":"mutable","name":"p3","nameLocation":"61789:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61784:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18649,"name":"bool","nodeType":"ElementaryTypeName","src":"61784:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61744:48:28"},"returnParameters":{"id":18652,"nodeType":"ParameterList","parameters":[],"src":"61807:0:28"},"scope":19517,"src":"61732:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18687,"nodeType":"Block","src":"61997:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":18679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62047:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":18680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"62083:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18669,"src":"62087:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18671,"src":"62091:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18683,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18673,"src":"62095:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62023:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62027:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62023:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62023:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62007:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62007:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18686,"nodeType":"ExpressionStatement","src":"62007:92:28"}]},"id":18688,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61928:3:28","nodeType":"FunctionDefinition","parameters":{"id":18674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18667,"mutability":"mutable","name":"p0","nameLocation":"61940:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61932:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18666,"name":"address","nodeType":"ElementaryTypeName","src":"61932:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18669,"mutability":"mutable","name":"p1","nameLocation":"61958:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61944:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18668,"name":"string","nodeType":"ElementaryTypeName","src":"61944:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18671,"mutability":"mutable","name":"p2","nameLocation":"61967:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61962:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18670,"name":"bool","nodeType":"ElementaryTypeName","src":"61962:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18673,"mutability":"mutable","name":"p3","nameLocation":"61979:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61971:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18672,"name":"address","nodeType":"ElementaryTypeName","src":"61971:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61931:51:28"},"returnParameters":{"id":18675,"nodeType":"ParameterList","parameters":[],"src":"61997:0:28"},"scope":19517,"src":"61919:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18710,"nodeType":"Block","src":"62193:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":18702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62243:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":18703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18690,"src":"62282:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18692,"src":"62286:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18694,"src":"62290:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18706,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18696,"src":"62294:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62219:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62223:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62219:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62219:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62203:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62203:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18709,"nodeType":"ExpressionStatement","src":"62203:95:28"}]},"id":18711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62121:3:28","nodeType":"FunctionDefinition","parameters":{"id":18697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18690,"mutability":"mutable","name":"p0","nameLocation":"62133:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62125:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18689,"name":"address","nodeType":"ElementaryTypeName","src":"62125:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18692,"mutability":"mutable","name":"p1","nameLocation":"62151:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62137:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18691,"name":"string","nodeType":"ElementaryTypeName","src":"62137:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18694,"mutability":"mutable","name":"p2","nameLocation":"62163:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62155:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18693,"name":"address","nodeType":"ElementaryTypeName","src":"62155:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18696,"mutability":"mutable","name":"p3","nameLocation":"62175:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62167:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18695,"name":"uint256","nodeType":"ElementaryTypeName","src":"62167:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62124:54:28"},"returnParameters":{"id":18698,"nodeType":"ParameterList","parameters":[],"src":"62193:0:28"},"scope":19517,"src":"62112:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18733,"nodeType":"Block","src":"62398:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":18725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62448:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":18726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18713,"src":"62486:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18715,"src":"62490:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18717,"src":"62494:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18729,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18719,"src":"62498:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62424:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62428:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62424:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62424:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62408:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62408:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18732,"nodeType":"ExpressionStatement","src":"62408:94:28"}]},"id":18734,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62320:3:28","nodeType":"FunctionDefinition","parameters":{"id":18720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18713,"mutability":"mutable","name":"p0","nameLocation":"62332:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62324:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18712,"name":"address","nodeType":"ElementaryTypeName","src":"62324:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18715,"mutability":"mutable","name":"p1","nameLocation":"62350:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62336:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18714,"name":"string","nodeType":"ElementaryTypeName","src":"62336:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18717,"mutability":"mutable","name":"p2","nameLocation":"62362:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62354:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18716,"name":"address","nodeType":"ElementaryTypeName","src":"62354:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18719,"mutability":"mutable","name":"p3","nameLocation":"62380:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62366:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18718,"name":"string","nodeType":"ElementaryTypeName","src":"62366:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62323:60:28"},"returnParameters":{"id":18721,"nodeType":"ParameterList","parameters":[],"src":"62398:0:28"},"scope":19517,"src":"62311:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18756,"nodeType":"Block","src":"62593:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":18748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62643:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":18749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"62679:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18750,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18738,"src":"62683:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18751,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18740,"src":"62687:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18752,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"62691:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62619:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62623:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62619:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62619:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62603:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62603:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18755,"nodeType":"ExpressionStatement","src":"62603:92:28"}]},"id":18757,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62524:3:28","nodeType":"FunctionDefinition","parameters":{"id":18743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18736,"mutability":"mutable","name":"p0","nameLocation":"62536:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62528:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18735,"name":"address","nodeType":"ElementaryTypeName","src":"62528:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18738,"mutability":"mutable","name":"p1","nameLocation":"62554:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62540:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18737,"name":"string","nodeType":"ElementaryTypeName","src":"62540:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18740,"mutability":"mutable","name":"p2","nameLocation":"62566:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62558:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18739,"name":"address","nodeType":"ElementaryTypeName","src":"62558:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18742,"mutability":"mutable","name":"p3","nameLocation":"62575:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62570:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18741,"name":"bool","nodeType":"ElementaryTypeName","src":"62570:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62527:51:28"},"returnParameters":{"id":18744,"nodeType":"ParameterList","parameters":[],"src":"62593:0:28"},"scope":19517,"src":"62515:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18779,"nodeType":"Block","src":"62789:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":18771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62839:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":18772,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18759,"src":"62878:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18773,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18761,"src":"62882:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18774,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"62886:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18775,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18765,"src":"62890:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62815:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62819:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62815:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62815:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18768,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62799:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62799:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18778,"nodeType":"ExpressionStatement","src":"62799:95:28"}]},"id":18780,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62717:3:28","nodeType":"FunctionDefinition","parameters":{"id":18766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18759,"mutability":"mutable","name":"p0","nameLocation":"62729:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62721:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18758,"name":"address","nodeType":"ElementaryTypeName","src":"62721:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18761,"mutability":"mutable","name":"p1","nameLocation":"62747:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62733:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18760,"name":"string","nodeType":"ElementaryTypeName","src":"62733:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18763,"mutability":"mutable","name":"p2","nameLocation":"62759:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62751:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18762,"name":"address","nodeType":"ElementaryTypeName","src":"62751:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18765,"mutability":"mutable","name":"p3","nameLocation":"62771:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62763:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18764,"name":"address","nodeType":"ElementaryTypeName","src":"62763:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62720:54:28"},"returnParameters":{"id":18767,"nodeType":"ParameterList","parameters":[],"src":"62789:0:28"},"scope":19517,"src":"62708:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18802,"nodeType":"Block","src":"62979:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":18794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63029:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":18795,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18782,"src":"63066:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18796,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18784,"src":"63070:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18797,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"63074:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18798,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18788,"src":"63078:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63005:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63009:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63005:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63005:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62989:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62989:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18801,"nodeType":"ExpressionStatement","src":"62989:93:28"}]},"id":18803,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62916:3:28","nodeType":"FunctionDefinition","parameters":{"id":18789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18782,"mutability":"mutable","name":"p0","nameLocation":"62928:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62920:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18781,"name":"address","nodeType":"ElementaryTypeName","src":"62920:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18784,"mutability":"mutable","name":"p1","nameLocation":"62937:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62932:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18783,"name":"bool","nodeType":"ElementaryTypeName","src":"62932:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18786,"mutability":"mutable","name":"p2","nameLocation":"62949:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62941:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18785,"name":"uint256","nodeType":"ElementaryTypeName","src":"62941:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18788,"mutability":"mutable","name":"p3","nameLocation":"62961:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62953:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18787,"name":"uint256","nodeType":"ElementaryTypeName","src":"62953:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62919:45:28"},"returnParameters":{"id":18790,"nodeType":"ParameterList","parameters":[],"src":"62979:0:28"},"scope":19517,"src":"62907:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18825,"nodeType":"Block","src":"63173:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":18817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63223:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":18818,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"63259:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18819,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"63263:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18820,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18809,"src":"63267:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18821,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18811,"src":"63271:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63199:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63203:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63199:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63199:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18814,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63183:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63183:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18824,"nodeType":"ExpressionStatement","src":"63183:92:28"}]},"id":18826,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63104:3:28","nodeType":"FunctionDefinition","parameters":{"id":18812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18805,"mutability":"mutable","name":"p0","nameLocation":"63116:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63108:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18804,"name":"address","nodeType":"ElementaryTypeName","src":"63108:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18807,"mutability":"mutable","name":"p1","nameLocation":"63125:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63120:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18806,"name":"bool","nodeType":"ElementaryTypeName","src":"63120:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18809,"mutability":"mutable","name":"p2","nameLocation":"63137:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63129:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18808,"name":"uint256","nodeType":"ElementaryTypeName","src":"63129:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18811,"mutability":"mutable","name":"p3","nameLocation":"63155:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63141:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18810,"name":"string","nodeType":"ElementaryTypeName","src":"63141:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63107:51:28"},"returnParameters":{"id":18813,"nodeType":"ParameterList","parameters":[],"src":"63173:0:28"},"scope":19517,"src":"63095:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18848,"nodeType":"Block","src":"63357:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":18840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63407:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":18841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18828,"src":"63441:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18830,"src":"63445:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18832,"src":"63449:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18844,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18834,"src":"63453:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63383:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63387:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63383:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63383:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63367:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63367:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18847,"nodeType":"ExpressionStatement","src":"63367:90:28"}]},"id":18849,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63297:3:28","nodeType":"FunctionDefinition","parameters":{"id":18835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18828,"mutability":"mutable","name":"p0","nameLocation":"63309:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63301:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18827,"name":"address","nodeType":"ElementaryTypeName","src":"63301:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18830,"mutability":"mutable","name":"p1","nameLocation":"63318:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63313:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18829,"name":"bool","nodeType":"ElementaryTypeName","src":"63313:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18832,"mutability":"mutable","name":"p2","nameLocation":"63330:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63322:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18831,"name":"uint256","nodeType":"ElementaryTypeName","src":"63322:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18834,"mutability":"mutable","name":"p3","nameLocation":"63339:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63334:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18833,"name":"bool","nodeType":"ElementaryTypeName","src":"63334:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63300:42:28"},"returnParameters":{"id":18836,"nodeType":"ParameterList","parameters":[],"src":"63357:0:28"},"scope":19517,"src":"63288:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18871,"nodeType":"Block","src":"63542:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":18863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63592:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":18864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18851,"src":"63629:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18853,"src":"63633:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18855,"src":"63637:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18867,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18857,"src":"63641:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63568:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63572:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63568:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63568:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63552:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63552:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18870,"nodeType":"ExpressionStatement","src":"63552:93:28"}]},"id":18872,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63479:3:28","nodeType":"FunctionDefinition","parameters":{"id":18858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18851,"mutability":"mutable","name":"p0","nameLocation":"63491:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63483:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18850,"name":"address","nodeType":"ElementaryTypeName","src":"63483:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18853,"mutability":"mutable","name":"p1","nameLocation":"63500:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63495:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18852,"name":"bool","nodeType":"ElementaryTypeName","src":"63495:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18855,"mutability":"mutable","name":"p2","nameLocation":"63512:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63504:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18854,"name":"uint256","nodeType":"ElementaryTypeName","src":"63504:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18857,"mutability":"mutable","name":"p3","nameLocation":"63524:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63516:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18856,"name":"address","nodeType":"ElementaryTypeName","src":"63516:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63482:45:28"},"returnParameters":{"id":18859,"nodeType":"ParameterList","parameters":[],"src":"63542:0:28"},"scope":19517,"src":"63470:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18894,"nodeType":"Block","src":"63736:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":18886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63786:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":18887,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18874,"src":"63822:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18888,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18876,"src":"63826:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18889,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18878,"src":"63830:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18890,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18880,"src":"63834:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63762:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63766:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63762:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63762:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18883,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63746:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63746:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18893,"nodeType":"ExpressionStatement","src":"63746:92:28"}]},"id":18895,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63667:3:28","nodeType":"FunctionDefinition","parameters":{"id":18881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18874,"mutability":"mutable","name":"p0","nameLocation":"63679:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63671:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18873,"name":"address","nodeType":"ElementaryTypeName","src":"63671:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18876,"mutability":"mutable","name":"p1","nameLocation":"63688:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63683:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18875,"name":"bool","nodeType":"ElementaryTypeName","src":"63683:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18878,"mutability":"mutable","name":"p2","nameLocation":"63706:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63692:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18877,"name":"string","nodeType":"ElementaryTypeName","src":"63692:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18880,"mutability":"mutable","name":"p3","nameLocation":"63718:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63710:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18879,"name":"uint256","nodeType":"ElementaryTypeName","src":"63710:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63670:51:28"},"returnParameters":{"id":18882,"nodeType":"ParameterList","parameters":[],"src":"63736:0:28"},"scope":19517,"src":"63658:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18917,"nodeType":"Block","src":"63935:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":18909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63985:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":18910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18897,"src":"64020:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18911,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18899,"src":"64024:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18912,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18901,"src":"64028:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18913,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18903,"src":"64032:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63961:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63965:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63961:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63961:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63945:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63945:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18916,"nodeType":"ExpressionStatement","src":"63945:91:28"}]},"id":18918,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63860:3:28","nodeType":"FunctionDefinition","parameters":{"id":18904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18897,"mutability":"mutable","name":"p0","nameLocation":"63872:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63864:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18896,"name":"address","nodeType":"ElementaryTypeName","src":"63864:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18899,"mutability":"mutable","name":"p1","nameLocation":"63881:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63876:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18898,"name":"bool","nodeType":"ElementaryTypeName","src":"63876:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18901,"mutability":"mutable","name":"p2","nameLocation":"63899:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63885:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18900,"name":"string","nodeType":"ElementaryTypeName","src":"63885:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18903,"mutability":"mutable","name":"p3","nameLocation":"63917:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63903:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18902,"name":"string","nodeType":"ElementaryTypeName","src":"63903:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63863:57:28"},"returnParameters":{"id":18905,"nodeType":"ParameterList","parameters":[],"src":"63935:0:28"},"scope":19517,"src":"63851:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18940,"nodeType":"Block","src":"64124:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":18932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64174:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":18933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18920,"src":"64207:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18922,"src":"64211:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18935,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18924,"src":"64215:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18936,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18926,"src":"64219:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64150:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64154:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64150:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64150:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64134:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64134:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18939,"nodeType":"ExpressionStatement","src":"64134:89:28"}]},"id":18941,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64058:3:28","nodeType":"FunctionDefinition","parameters":{"id":18927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18920,"mutability":"mutable","name":"p0","nameLocation":"64070:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64062:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18919,"name":"address","nodeType":"ElementaryTypeName","src":"64062:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18922,"mutability":"mutable","name":"p1","nameLocation":"64079:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64074:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18921,"name":"bool","nodeType":"ElementaryTypeName","src":"64074:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18924,"mutability":"mutable","name":"p2","nameLocation":"64097:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64083:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18923,"name":"string","nodeType":"ElementaryTypeName","src":"64083:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18926,"mutability":"mutable","name":"p3","nameLocation":"64106:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64101:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18925,"name":"bool","nodeType":"ElementaryTypeName","src":"64101:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64061:48:28"},"returnParameters":{"id":18928,"nodeType":"ParameterList","parameters":[],"src":"64124:0:28"},"scope":19517,"src":"64049:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18963,"nodeType":"Block","src":"64314:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":18955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64364:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":18956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18943,"src":"64400:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18945,"src":"64404:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"64408:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18959,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18949,"src":"64412:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64340:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64344:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64340:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64340:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64324:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64324:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18962,"nodeType":"ExpressionStatement","src":"64324:92:28"}]},"id":18964,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64245:3:28","nodeType":"FunctionDefinition","parameters":{"id":18950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18943,"mutability":"mutable","name":"p0","nameLocation":"64257:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64249:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18942,"name":"address","nodeType":"ElementaryTypeName","src":"64249:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18945,"mutability":"mutable","name":"p1","nameLocation":"64266:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64261:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18944,"name":"bool","nodeType":"ElementaryTypeName","src":"64261:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18947,"mutability":"mutable","name":"p2","nameLocation":"64284:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64270:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18946,"name":"string","nodeType":"ElementaryTypeName","src":"64270:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18949,"mutability":"mutable","name":"p3","nameLocation":"64296:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64288:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18948,"name":"address","nodeType":"ElementaryTypeName","src":"64288:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64248:51:28"},"returnParameters":{"id":18951,"nodeType":"ParameterList","parameters":[],"src":"64314:0:28"},"scope":19517,"src":"64236:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18986,"nodeType":"Block","src":"64498:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":18978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64548:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":18979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18966,"src":"64582:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18968,"src":"64586:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18970,"src":"64590:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18982,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18972,"src":"64594:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64524:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64528:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64524:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64524:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64508:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64508:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18985,"nodeType":"ExpressionStatement","src":"64508:90:28"}]},"id":18987,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64438:3:28","nodeType":"FunctionDefinition","parameters":{"id":18973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18966,"mutability":"mutable","name":"p0","nameLocation":"64450:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64442:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18965,"name":"address","nodeType":"ElementaryTypeName","src":"64442:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18968,"mutability":"mutable","name":"p1","nameLocation":"64459:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64454:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18967,"name":"bool","nodeType":"ElementaryTypeName","src":"64454:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18970,"mutability":"mutable","name":"p2","nameLocation":"64468:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64463:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18969,"name":"bool","nodeType":"ElementaryTypeName","src":"64463:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18972,"mutability":"mutable","name":"p3","nameLocation":"64480:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64472:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18971,"name":"uint256","nodeType":"ElementaryTypeName","src":"64472:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64441:42:28"},"returnParameters":{"id":18974,"nodeType":"ParameterList","parameters":[],"src":"64498:0:28"},"scope":19517,"src":"64429:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19009,"nodeType":"Block","src":"64686:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":19001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64736:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":19002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18989,"src":"64769:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18991,"src":"64773:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19004,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18993,"src":"64777:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19005,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18995,"src":"64781:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64712:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64716:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64712:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64712:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64696:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64696:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19008,"nodeType":"ExpressionStatement","src":"64696:89:28"}]},"id":19010,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64620:3:28","nodeType":"FunctionDefinition","parameters":{"id":18996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18989,"mutability":"mutable","name":"p0","nameLocation":"64632:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64624:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18988,"name":"address","nodeType":"ElementaryTypeName","src":"64624:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18991,"mutability":"mutable","name":"p1","nameLocation":"64641:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64636:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18990,"name":"bool","nodeType":"ElementaryTypeName","src":"64636:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18993,"mutability":"mutable","name":"p2","nameLocation":"64650:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64645:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18992,"name":"bool","nodeType":"ElementaryTypeName","src":"64645:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18995,"mutability":"mutable","name":"p3","nameLocation":"64668:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64654:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18994,"name":"string","nodeType":"ElementaryTypeName","src":"64654:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64623:48:28"},"returnParameters":{"id":18997,"nodeType":"ParameterList","parameters":[],"src":"64686:0:28"},"scope":19517,"src":"64611:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19032,"nodeType":"Block","src":"64864:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":19024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64914:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":19025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"64945:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19026,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19014,"src":"64949:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19027,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19016,"src":"64953:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19028,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19018,"src":"64957:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64890:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64894:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64890:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64890:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64874:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64874:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19031,"nodeType":"ExpressionStatement","src":"64874:87:28"}]},"id":19033,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64807:3:28","nodeType":"FunctionDefinition","parameters":{"id":19019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19012,"mutability":"mutable","name":"p0","nameLocation":"64819:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64811:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19011,"name":"address","nodeType":"ElementaryTypeName","src":"64811:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19014,"mutability":"mutable","name":"p1","nameLocation":"64828:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64823:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19013,"name":"bool","nodeType":"ElementaryTypeName","src":"64823:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19016,"mutability":"mutable","name":"p2","nameLocation":"64837:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64832:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19015,"name":"bool","nodeType":"ElementaryTypeName","src":"64832:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19018,"mutability":"mutable","name":"p3","nameLocation":"64846:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64841:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19017,"name":"bool","nodeType":"ElementaryTypeName","src":"64841:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64810:39:28"},"returnParameters":{"id":19020,"nodeType":"ParameterList","parameters":[],"src":"64864:0:28"},"scope":19517,"src":"64798:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19055,"nodeType":"Block","src":"65043:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":19047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65093:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":19048,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19035,"src":"65127:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19049,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19037,"src":"65131:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19050,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19039,"src":"65135:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19051,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19041,"src":"65139:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65069:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65073:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65069:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65069:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19044,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65053:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65053:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19054,"nodeType":"ExpressionStatement","src":"65053:90:28"}]},"id":19056,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64983:3:28","nodeType":"FunctionDefinition","parameters":{"id":19042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19035,"mutability":"mutable","name":"p0","nameLocation":"64995:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"64987:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19034,"name":"address","nodeType":"ElementaryTypeName","src":"64987:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19037,"mutability":"mutable","name":"p1","nameLocation":"65004:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"64999:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19036,"name":"bool","nodeType":"ElementaryTypeName","src":"64999:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19039,"mutability":"mutable","name":"p2","nameLocation":"65013:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"65008:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19038,"name":"bool","nodeType":"ElementaryTypeName","src":"65008:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19041,"mutability":"mutable","name":"p3","nameLocation":"65025:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"65017:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19040,"name":"address","nodeType":"ElementaryTypeName","src":"65017:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64986:42:28"},"returnParameters":{"id":19043,"nodeType":"ParameterList","parameters":[],"src":"65043:0:28"},"scope":19517,"src":"64974:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19078,"nodeType":"Block","src":"65228:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":19070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65278:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":19071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19058,"src":"65315:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19060,"src":"65319:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19073,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19062,"src":"65323:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19074,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19064,"src":"65327:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65254:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65258:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65254:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65254:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65238:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65238:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19077,"nodeType":"ExpressionStatement","src":"65238:93:28"}]},"id":19079,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65165:3:28","nodeType":"FunctionDefinition","parameters":{"id":19065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19058,"mutability":"mutable","name":"p0","nameLocation":"65177:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65169:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19057,"name":"address","nodeType":"ElementaryTypeName","src":"65169:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19060,"mutability":"mutable","name":"p1","nameLocation":"65186:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65181:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19059,"name":"bool","nodeType":"ElementaryTypeName","src":"65181:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19062,"mutability":"mutable","name":"p2","nameLocation":"65198:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65190:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19061,"name":"address","nodeType":"ElementaryTypeName","src":"65190:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19064,"mutability":"mutable","name":"p3","nameLocation":"65210:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65202:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19063,"name":"uint256","nodeType":"ElementaryTypeName","src":"65202:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65168:45:28"},"returnParameters":{"id":19066,"nodeType":"ParameterList","parameters":[],"src":"65228:0:28"},"scope":19517,"src":"65156:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19101,"nodeType":"Block","src":"65422:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":19093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65472:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":19094,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19081,"src":"65508:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19095,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19083,"src":"65512:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19096,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"65516:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19097,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19087,"src":"65520:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65448:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65452:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65448:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65448:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19090,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65432:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65432:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19100,"nodeType":"ExpressionStatement","src":"65432:92:28"}]},"id":19102,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65353:3:28","nodeType":"FunctionDefinition","parameters":{"id":19088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19081,"mutability":"mutable","name":"p0","nameLocation":"65365:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65357:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19080,"name":"address","nodeType":"ElementaryTypeName","src":"65357:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19083,"mutability":"mutable","name":"p1","nameLocation":"65374:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65369:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19082,"name":"bool","nodeType":"ElementaryTypeName","src":"65369:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19085,"mutability":"mutable","name":"p2","nameLocation":"65386:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65378:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19084,"name":"address","nodeType":"ElementaryTypeName","src":"65378:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19087,"mutability":"mutable","name":"p3","nameLocation":"65404:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65390:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19086,"name":"string","nodeType":"ElementaryTypeName","src":"65390:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65356:51:28"},"returnParameters":{"id":19089,"nodeType":"ParameterList","parameters":[],"src":"65422:0:28"},"scope":19517,"src":"65344:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19124,"nodeType":"Block","src":"65606:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":19116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65656:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":19117,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19104,"src":"65690:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19118,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19106,"src":"65694:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19119,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19108,"src":"65698:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19120,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19110,"src":"65702:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65632:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65636:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65632:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65632:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19113,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65616:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65616:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19123,"nodeType":"ExpressionStatement","src":"65616:90:28"}]},"id":19125,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65546:3:28","nodeType":"FunctionDefinition","parameters":{"id":19111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19104,"mutability":"mutable","name":"p0","nameLocation":"65558:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65550:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19103,"name":"address","nodeType":"ElementaryTypeName","src":"65550:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19106,"mutability":"mutable","name":"p1","nameLocation":"65567:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65562:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19105,"name":"bool","nodeType":"ElementaryTypeName","src":"65562:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19108,"mutability":"mutable","name":"p2","nameLocation":"65579:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65571:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19107,"name":"address","nodeType":"ElementaryTypeName","src":"65571:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19110,"mutability":"mutable","name":"p3","nameLocation":"65588:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65583:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19109,"name":"bool","nodeType":"ElementaryTypeName","src":"65583:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65549:42:28"},"returnParameters":{"id":19112,"nodeType":"ParameterList","parameters":[],"src":"65606:0:28"},"scope":19517,"src":"65537:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19147,"nodeType":"Block","src":"65791:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":19139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65841:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":19140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19127,"src":"65878:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19129,"src":"65882:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19131,"src":"65886:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19143,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19133,"src":"65890:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65817:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65821:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65817:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65817:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65801:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65801:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19146,"nodeType":"ExpressionStatement","src":"65801:93:28"}]},"id":19148,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65728:3:28","nodeType":"FunctionDefinition","parameters":{"id":19134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19127,"mutability":"mutable","name":"p0","nameLocation":"65740:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65732:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19126,"name":"address","nodeType":"ElementaryTypeName","src":"65732:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19129,"mutability":"mutable","name":"p1","nameLocation":"65749:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19128,"name":"bool","nodeType":"ElementaryTypeName","src":"65744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19131,"mutability":"mutable","name":"p2","nameLocation":"65761:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65753:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19130,"name":"address","nodeType":"ElementaryTypeName","src":"65753:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19133,"mutability":"mutable","name":"p3","nameLocation":"65773:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65765:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19132,"name":"address","nodeType":"ElementaryTypeName","src":"65765:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65731:45:28"},"returnParameters":{"id":19135,"nodeType":"ParameterList","parameters":[],"src":"65791:0:28"},"scope":19517,"src":"65719:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19170,"nodeType":"Block","src":"65982:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":19162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66032:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":19163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19150,"src":"66072:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19152,"src":"66076:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19154,"src":"66080:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19166,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"66084:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66008:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66012:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66008:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66008:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65992:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65992:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19169,"nodeType":"ExpressionStatement","src":"65992:96:28"}]},"id":19171,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65916:3:28","nodeType":"FunctionDefinition","parameters":{"id":19157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19150,"mutability":"mutable","name":"p0","nameLocation":"65928:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65920:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19149,"name":"address","nodeType":"ElementaryTypeName","src":"65920:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19152,"mutability":"mutable","name":"p1","nameLocation":"65940:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65932:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19151,"name":"address","nodeType":"ElementaryTypeName","src":"65932:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19154,"mutability":"mutable","name":"p2","nameLocation":"65952:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65944:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19153,"name":"uint256","nodeType":"ElementaryTypeName","src":"65944:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19156,"mutability":"mutable","name":"p3","nameLocation":"65964:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65956:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19155,"name":"uint256","nodeType":"ElementaryTypeName","src":"65956:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65919:48:28"},"returnParameters":{"id":19158,"nodeType":"ParameterList","parameters":[],"src":"65982:0:28"},"scope":19517,"src":"65907:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19193,"nodeType":"Block","src":"66182:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":19185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66232:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":19186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19173,"src":"66271:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19175,"src":"66275:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19177,"src":"66279:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19189,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19179,"src":"66283:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66208:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66212:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66208:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66208:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66192:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66192:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19192,"nodeType":"ExpressionStatement","src":"66192:95:28"}]},"id":19194,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66110:3:28","nodeType":"FunctionDefinition","parameters":{"id":19180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19173,"mutability":"mutable","name":"p0","nameLocation":"66122:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66114:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19172,"name":"address","nodeType":"ElementaryTypeName","src":"66114:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19175,"mutability":"mutable","name":"p1","nameLocation":"66134:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66126:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19174,"name":"address","nodeType":"ElementaryTypeName","src":"66126:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19177,"mutability":"mutable","name":"p2","nameLocation":"66146:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66138:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19176,"name":"uint256","nodeType":"ElementaryTypeName","src":"66138:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19179,"mutability":"mutable","name":"p3","nameLocation":"66164:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66150:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19178,"name":"string","nodeType":"ElementaryTypeName","src":"66150:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66113:54:28"},"returnParameters":{"id":19181,"nodeType":"ParameterList","parameters":[],"src":"66182:0:28"},"scope":19517,"src":"66101:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19216,"nodeType":"Block","src":"66372:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":19208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66422:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":19209,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19196,"src":"66459:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19210,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19198,"src":"66463:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"66467:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19212,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"66471:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66398:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66402:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66398:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66398:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19205,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66382:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66382:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19215,"nodeType":"ExpressionStatement","src":"66382:93:28"}]},"id":19217,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66309:3:28","nodeType":"FunctionDefinition","parameters":{"id":19203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19196,"mutability":"mutable","name":"p0","nameLocation":"66321:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66313:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19195,"name":"address","nodeType":"ElementaryTypeName","src":"66313:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19198,"mutability":"mutable","name":"p1","nameLocation":"66333:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66325:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19197,"name":"address","nodeType":"ElementaryTypeName","src":"66325:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19200,"mutability":"mutable","name":"p2","nameLocation":"66345:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66337:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19199,"name":"uint256","nodeType":"ElementaryTypeName","src":"66337:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19202,"mutability":"mutable","name":"p3","nameLocation":"66354:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66349:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19201,"name":"bool","nodeType":"ElementaryTypeName","src":"66349:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66312:45:28"},"returnParameters":{"id":19204,"nodeType":"ParameterList","parameters":[],"src":"66372:0:28"},"scope":19517,"src":"66300:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19239,"nodeType":"Block","src":"66563:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":19231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66613:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":19232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"66653:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19233,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19221,"src":"66657:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19234,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19223,"src":"66661:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19235,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19225,"src":"66665:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66589:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66593:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66589:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66589:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66573:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66573:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19238,"nodeType":"ExpressionStatement","src":"66573:96:28"}]},"id":19240,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66497:3:28","nodeType":"FunctionDefinition","parameters":{"id":19226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19219,"mutability":"mutable","name":"p0","nameLocation":"66509:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66501:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19218,"name":"address","nodeType":"ElementaryTypeName","src":"66501:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19221,"mutability":"mutable","name":"p1","nameLocation":"66521:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66513:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19220,"name":"address","nodeType":"ElementaryTypeName","src":"66513:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19223,"mutability":"mutable","name":"p2","nameLocation":"66533:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66525:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19222,"name":"uint256","nodeType":"ElementaryTypeName","src":"66525:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19225,"mutability":"mutable","name":"p3","nameLocation":"66545:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66537:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19224,"name":"address","nodeType":"ElementaryTypeName","src":"66537:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66500:48:28"},"returnParameters":{"id":19227,"nodeType":"ParameterList","parameters":[],"src":"66563:0:28"},"scope":19517,"src":"66488:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19262,"nodeType":"Block","src":"66763:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":19254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66813:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":19255,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19242,"src":"66852:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19244,"src":"66856:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19257,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19246,"src":"66860:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19258,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19248,"src":"66864:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66789:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66793:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66789:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66789:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66773:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66773:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19261,"nodeType":"ExpressionStatement","src":"66773:95:28"}]},"id":19263,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66691:3:28","nodeType":"FunctionDefinition","parameters":{"id":19249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19242,"mutability":"mutable","name":"p0","nameLocation":"66703:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66695:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19241,"name":"address","nodeType":"ElementaryTypeName","src":"66695:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19244,"mutability":"mutable","name":"p1","nameLocation":"66715:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66707:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19243,"name":"address","nodeType":"ElementaryTypeName","src":"66707:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19246,"mutability":"mutable","name":"p2","nameLocation":"66733:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66719:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19245,"name":"string","nodeType":"ElementaryTypeName","src":"66719:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19248,"mutability":"mutable","name":"p3","nameLocation":"66745:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66737:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19247,"name":"uint256","nodeType":"ElementaryTypeName","src":"66737:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66694:54:28"},"returnParameters":{"id":19250,"nodeType":"ParameterList","parameters":[],"src":"66763:0:28"},"scope":19517,"src":"66682:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19285,"nodeType":"Block","src":"66968:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":19277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67018:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":19278,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19265,"src":"67056:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19279,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19267,"src":"67060:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19280,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19269,"src":"67064:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19281,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19271,"src":"67068:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19275,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66994:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66998:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66994:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66994:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19274,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66978:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66978:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19284,"nodeType":"ExpressionStatement","src":"66978:94:28"}]},"id":19286,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66890:3:28","nodeType":"FunctionDefinition","parameters":{"id":19272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19265,"mutability":"mutable","name":"p0","nameLocation":"66902:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66894:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19264,"name":"address","nodeType":"ElementaryTypeName","src":"66894:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19267,"mutability":"mutable","name":"p1","nameLocation":"66914:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66906:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19266,"name":"address","nodeType":"ElementaryTypeName","src":"66906:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19269,"mutability":"mutable","name":"p2","nameLocation":"66932:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66918:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19268,"name":"string","nodeType":"ElementaryTypeName","src":"66918:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19271,"mutability":"mutable","name":"p3","nameLocation":"66950:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66936:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19270,"name":"string","nodeType":"ElementaryTypeName","src":"66936:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66893:60:28"},"returnParameters":{"id":19273,"nodeType":"ParameterList","parameters":[],"src":"66968:0:28"},"scope":19517,"src":"66881:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19308,"nodeType":"Block","src":"67163:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":19300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67213:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":19301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19288,"src":"67249:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19290,"src":"67253:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19292,"src":"67257:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19304,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19294,"src":"67261:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67189:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67193:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67189:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67189:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67173:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67173:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19307,"nodeType":"ExpressionStatement","src":"67173:92:28"}]},"id":19309,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67094:3:28","nodeType":"FunctionDefinition","parameters":{"id":19295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19288,"mutability":"mutable","name":"p0","nameLocation":"67106:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67098:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19287,"name":"address","nodeType":"ElementaryTypeName","src":"67098:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19290,"mutability":"mutable","name":"p1","nameLocation":"67118:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67110:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19289,"name":"address","nodeType":"ElementaryTypeName","src":"67110:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19292,"mutability":"mutable","name":"p2","nameLocation":"67136:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67122:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19291,"name":"string","nodeType":"ElementaryTypeName","src":"67122:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19294,"mutability":"mutable","name":"p3","nameLocation":"67145:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67140:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19293,"name":"bool","nodeType":"ElementaryTypeName","src":"67140:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67097:51:28"},"returnParameters":{"id":19296,"nodeType":"ParameterList","parameters":[],"src":"67163:0:28"},"scope":19517,"src":"67085:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19331,"nodeType":"Block","src":"67359:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":19323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67409:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":19324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19311,"src":"67448:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19313,"src":"67452:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19315,"src":"67456:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19327,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19317,"src":"67460:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67385:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67389:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67385:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67385:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67369:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67369:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19330,"nodeType":"ExpressionStatement","src":"67369:95:28"}]},"id":19332,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67287:3:28","nodeType":"FunctionDefinition","parameters":{"id":19318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19311,"mutability":"mutable","name":"p0","nameLocation":"67299:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67291:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19310,"name":"address","nodeType":"ElementaryTypeName","src":"67291:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19313,"mutability":"mutable","name":"p1","nameLocation":"67311:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67303:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19312,"name":"address","nodeType":"ElementaryTypeName","src":"67303:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19315,"mutability":"mutable","name":"p2","nameLocation":"67329:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67315:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19314,"name":"string","nodeType":"ElementaryTypeName","src":"67315:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19317,"mutability":"mutable","name":"p3","nameLocation":"67341:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67333:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19316,"name":"address","nodeType":"ElementaryTypeName","src":"67333:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67290:54:28"},"returnParameters":{"id":19319,"nodeType":"ParameterList","parameters":[],"src":"67359:0:28"},"scope":19517,"src":"67278:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19354,"nodeType":"Block","src":"67549:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":19346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67599:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":19347,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19334,"src":"67636:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19348,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19336,"src":"67640:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19349,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19338,"src":"67644:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19350,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"67648:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67575:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67579:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67575:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67575:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19343,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67559:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67559:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19353,"nodeType":"ExpressionStatement","src":"67559:93:28"}]},"id":19355,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67486:3:28","nodeType":"FunctionDefinition","parameters":{"id":19341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19334,"mutability":"mutable","name":"p0","nameLocation":"67498:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67490:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19333,"name":"address","nodeType":"ElementaryTypeName","src":"67490:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19336,"mutability":"mutable","name":"p1","nameLocation":"67510:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67502:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19335,"name":"address","nodeType":"ElementaryTypeName","src":"67502:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19338,"mutability":"mutable","name":"p2","nameLocation":"67519:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67514:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19337,"name":"bool","nodeType":"ElementaryTypeName","src":"67514:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19340,"mutability":"mutable","name":"p3","nameLocation":"67531:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67523:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19339,"name":"uint256","nodeType":"ElementaryTypeName","src":"67523:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67489:45:28"},"returnParameters":{"id":19342,"nodeType":"ParameterList","parameters":[],"src":"67549:0:28"},"scope":19517,"src":"67477:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19377,"nodeType":"Block","src":"67743:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":19369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67793:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":19370,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"67829:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19371,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"67833:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19372,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19361,"src":"67837:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19373,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19363,"src":"67841:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67769:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67773:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67769:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67769:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19366,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67753:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67753:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19376,"nodeType":"ExpressionStatement","src":"67753:92:28"}]},"id":19378,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67674:3:28","nodeType":"FunctionDefinition","parameters":{"id":19364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19357,"mutability":"mutable","name":"p0","nameLocation":"67686:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67678:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19356,"name":"address","nodeType":"ElementaryTypeName","src":"67678:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19359,"mutability":"mutable","name":"p1","nameLocation":"67698:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67690:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19358,"name":"address","nodeType":"ElementaryTypeName","src":"67690:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19361,"mutability":"mutable","name":"p2","nameLocation":"67707:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67702:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19360,"name":"bool","nodeType":"ElementaryTypeName","src":"67702:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19363,"mutability":"mutable","name":"p3","nameLocation":"67725:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67711:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19362,"name":"string","nodeType":"ElementaryTypeName","src":"67711:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67677:51:28"},"returnParameters":{"id":19365,"nodeType":"ParameterList","parameters":[],"src":"67743:0:28"},"scope":19517,"src":"67665:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19400,"nodeType":"Block","src":"67927:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":19392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67977:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":19393,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19380,"src":"68011:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19394,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"68015:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19395,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19384,"src":"68019:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19396,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19386,"src":"68023:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67953:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67957:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67953:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67953:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19389,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67937:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67937:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19399,"nodeType":"ExpressionStatement","src":"67937:90:28"}]},"id":19401,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67867:3:28","nodeType":"FunctionDefinition","parameters":{"id":19387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19380,"mutability":"mutable","name":"p0","nameLocation":"67879:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67871:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19379,"name":"address","nodeType":"ElementaryTypeName","src":"67871:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19382,"mutability":"mutable","name":"p1","nameLocation":"67891:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67883:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19381,"name":"address","nodeType":"ElementaryTypeName","src":"67883:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19384,"mutability":"mutable","name":"p2","nameLocation":"67900:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67895:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19383,"name":"bool","nodeType":"ElementaryTypeName","src":"67895:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19386,"mutability":"mutable","name":"p3","nameLocation":"67909:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67904:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19385,"name":"bool","nodeType":"ElementaryTypeName","src":"67904:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67870:42:28"},"returnParameters":{"id":19388,"nodeType":"ParameterList","parameters":[],"src":"67927:0:28"},"scope":19517,"src":"67858:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19423,"nodeType":"Block","src":"68112:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":19415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68162:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":19416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19403,"src":"68199:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19405,"src":"68203:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19407,"src":"68207:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19419,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"68211:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68138:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68142:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68138:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68138:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68122:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68122:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19422,"nodeType":"ExpressionStatement","src":"68122:93:28"}]},"id":19424,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68049:3:28","nodeType":"FunctionDefinition","parameters":{"id":19410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19403,"mutability":"mutable","name":"p0","nameLocation":"68061:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68053:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19402,"name":"address","nodeType":"ElementaryTypeName","src":"68053:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19405,"mutability":"mutable","name":"p1","nameLocation":"68073:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68065:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19404,"name":"address","nodeType":"ElementaryTypeName","src":"68065:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19407,"mutability":"mutable","name":"p2","nameLocation":"68082:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68077:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19406,"name":"bool","nodeType":"ElementaryTypeName","src":"68077:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19409,"mutability":"mutable","name":"p3","nameLocation":"68094:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68086:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19408,"name":"address","nodeType":"ElementaryTypeName","src":"68086:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68052:45:28"},"returnParameters":{"id":19411,"nodeType":"ParameterList","parameters":[],"src":"68112:0:28"},"scope":19517,"src":"68040:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19446,"nodeType":"Block","src":"68303:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":19438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68353:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":19439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19426,"src":"68393:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19428,"src":"68397:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19430,"src":"68401:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19442,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19432,"src":"68405:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68329:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68333:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68329:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68329:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68313:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68313:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19445,"nodeType":"ExpressionStatement","src":"68313:96:28"}]},"id":19447,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68237:3:28","nodeType":"FunctionDefinition","parameters":{"id":19433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19426,"mutability":"mutable","name":"p0","nameLocation":"68249:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68241:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19425,"name":"address","nodeType":"ElementaryTypeName","src":"68241:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19428,"mutability":"mutable","name":"p1","nameLocation":"68261:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68253:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19427,"name":"address","nodeType":"ElementaryTypeName","src":"68253:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19430,"mutability":"mutable","name":"p2","nameLocation":"68273:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68265:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19429,"name":"address","nodeType":"ElementaryTypeName","src":"68265:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19432,"mutability":"mutable","name":"p3","nameLocation":"68285:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68277:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19431,"name":"uint256","nodeType":"ElementaryTypeName","src":"68277:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68240:48:28"},"returnParameters":{"id":19434,"nodeType":"ParameterList","parameters":[],"src":"68303:0:28"},"scope":19517,"src":"68228:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19469,"nodeType":"Block","src":"68503:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":19461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68553:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":19462,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19449,"src":"68592:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19463,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19451,"src":"68596:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19464,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19453,"src":"68600:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19465,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19455,"src":"68604:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68529:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68533:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68529:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68529:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19458,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68513:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68513:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19468,"nodeType":"ExpressionStatement","src":"68513:95:28"}]},"id":19470,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68431:3:28","nodeType":"FunctionDefinition","parameters":{"id":19456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19449,"mutability":"mutable","name":"p0","nameLocation":"68443:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68435:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19448,"name":"address","nodeType":"ElementaryTypeName","src":"68435:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19451,"mutability":"mutable","name":"p1","nameLocation":"68455:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68447:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19450,"name":"address","nodeType":"ElementaryTypeName","src":"68447:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19453,"mutability":"mutable","name":"p2","nameLocation":"68467:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68459:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19452,"name":"address","nodeType":"ElementaryTypeName","src":"68459:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19455,"mutability":"mutable","name":"p3","nameLocation":"68485:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68471:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19454,"name":"string","nodeType":"ElementaryTypeName","src":"68471:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68434:54:28"},"returnParameters":{"id":19457,"nodeType":"ParameterList","parameters":[],"src":"68503:0:28"},"scope":19517,"src":"68422:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19492,"nodeType":"Block","src":"68693:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":19484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68743:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":19485,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19472,"src":"68780:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19474,"src":"68784:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19487,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19476,"src":"68788:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19488,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19478,"src":"68792:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68719:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68723:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68719:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68719:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68703:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68703:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19491,"nodeType":"ExpressionStatement","src":"68703:93:28"}]},"id":19493,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68630:3:28","nodeType":"FunctionDefinition","parameters":{"id":19479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19472,"mutability":"mutable","name":"p0","nameLocation":"68642:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68634:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19471,"name":"address","nodeType":"ElementaryTypeName","src":"68634:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19474,"mutability":"mutable","name":"p1","nameLocation":"68654:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68646:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19473,"name":"address","nodeType":"ElementaryTypeName","src":"68646:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19476,"mutability":"mutable","name":"p2","nameLocation":"68666:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68658:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19475,"name":"address","nodeType":"ElementaryTypeName","src":"68658:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19478,"mutability":"mutable","name":"p3","nameLocation":"68675:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68670:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19477,"name":"bool","nodeType":"ElementaryTypeName","src":"68670:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68633:45:28"},"returnParameters":{"id":19480,"nodeType":"ParameterList","parameters":[],"src":"68693:0:28"},"scope":19517,"src":"68621:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19515,"nodeType":"Block","src":"68884:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":19507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68934:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":19508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"68974:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19509,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"68978:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19499,"src":"68982:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19511,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19501,"src":"68986:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68910:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68914:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68910:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68910:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68894:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68894:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19514,"nodeType":"ExpressionStatement","src":"68894:96:28"}]},"id":19516,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68818:3:28","nodeType":"FunctionDefinition","parameters":{"id":19502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19495,"mutability":"mutable","name":"p0","nameLocation":"68830:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68822:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19494,"name":"address","nodeType":"ElementaryTypeName","src":"68822:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19497,"mutability":"mutable","name":"p1","nameLocation":"68842:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68834:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19496,"name":"address","nodeType":"ElementaryTypeName","src":"68834:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19499,"mutability":"mutable","name":"p2","nameLocation":"68854:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68846:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19498,"name":"address","nodeType":"ElementaryTypeName","src":"68846:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19501,"mutability":"mutable","name":"p3","nameLocation":"68866:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68858:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19500,"name":"address","nodeType":"ElementaryTypeName","src":"68858:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68821:48:28"},"returnParameters":{"id":19503,"nodeType":"ParameterList","parameters":[],"src":"68884:0:28"},"scope":19517,"src":"68809:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":19518,"src":"66:68934:28","usedErrors":[],"usedEvents":[]}],"src":"32:68969:28"},"id":28}},"contracts":{"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"IERC4906":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"EIP-721 Metadata Update Extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC4906.sol\":\"IERC4906\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@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.20+commit.a1b79de6\"},\"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 ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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.20+commit.a1b79de6\"},\"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 ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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.20+commit.a1b79de6\"},\"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 ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 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 EIP-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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol":{"ERC721Burnable":{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","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.20+commit.a1b79de6\"},\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be burned (destroyed).\",\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":\"ERC721Burnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ERC721URIStorage":{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"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/Strings.sol":{"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"MessageHashUtils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3235:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:18;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:18:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"contracts/gamma/GammaCards.v5.sol":{"IgammaOffersContract":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOfferByUserAndCardNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8[]","name":"","type":"uint8[]"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOffersByUserCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeOffersByUser","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":{"getOfferByUserAndCardNumber(address,uint8)":"9f915069","getOffersByUserCounter(address)":"0cdb3117","hasOffer(address,uint8)":"2edb5fcf","removeOffersByUser(address)":"fc9e80fc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOfferByUserAndCardNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getOffersByUserCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeOffersByUser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"IgammaOffersContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"IgammaPacksContract":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPackOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPacks","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getPackOwner(uint256)":"d3e6a7ad","openPack(uint256,address)":"80f2540b","openPacks(uint256[],address)":"97f8b3d3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getPackOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"IgammaPacksContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"IgammaTicketsContract":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"generateTicket","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"generateTicket(address)":"fa8213d3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"generateTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"IgammaTicketsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"NofGammaCardsV5":{"abi":[{"inputs":[{"internalType":"address","name":"_daiTokenAddress","type":"address"},{"internalType":"address","name":"_gammaPacksContract","type":"address"},{"internalType":"address","name":"_gammaOffersContract","type":"address"},{"internalType":"address","name":"_gammaTicketsContract","type":"address"},{"internalType":"string","name":"_baseUri","type":"string"},{"internalType":"address","name":"_signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CannotRemoveUserOffers","type":"error"},{"inputs":[],"name":"CardLimitExceeded","type":"error"},{"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"},{"inputs":[],"name":"IncorrectPrizeAmount","type":"error"},{"inputs":[],"name":"InsufficientCards","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidCardNumber","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidTransfer","type":"error"},{"inputs":[],"name":"MustCompleteAlbum","type":"error"},{"inputs":[],"name":"NotYourPack","type":"error"},{"inputs":[],"name":"OnlyGammaPacksContract","type":"error"},{"inputs":[],"name":"OnlyOffersContract","type":"error"},{"inputs":[],"name":"OnlyOwners","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"UserDoesNotHaveCardOrAlbum","type":"error"},{"inputs":[],"name":"WrongPacksQuantity","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint8","name":"albumClass","type":"uint8"}],"name":"AlbumCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint256","name":"cardTokenId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"albumTokenId","type":"uint256"}],"name":"CardPasted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"CardTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint8[]","name":"cardsNumber","type":"uint8[]"}],"name":"CardsBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint8[]","name":"cardNumber","type":"uint8[]"}],"name":"CardsTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaOffersContract","type":"address"}],"name":"NewGammaOffersContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaPacksContract","type":"address"}],"name":"NewGammaPacksContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaTicketContract","type":"address"}],"name":"NewGammaTicketsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newSigner","type":"address"}],"name":"NewSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"newMainUri","type":"string"},{"indexed":true,"internalType":"string","name":"newSecondaryUri","type":"string"}],"name":"NewUris","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumberFrom","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"cardNumberTo","type":"uint8"}],"name":"OfferCardsExchanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"indexed":true,"internalType":"uint256","name":"packNumber","type":"uint256"}],"name":"PackOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DAI_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSigner","type":"address"}],"name":"addSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"cardNumbers","type":"uint8[]"}],"name":"burnCards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_maxPacksToOpenAtOnce","type":"uint8"}],"name":"changeMaxPacksToOpenAtOnce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPackPrice","type":"uint256"}],"name":"changePackPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"name":"changeRequireOfferValidationInMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"name":"changeRequireOfferValidationInTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"name":"changeRequireOpenPackSignerValidation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint8","name":"cardNumberFrom","type":"uint8"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8","name":"cardNumberTo","type":"uint8"}],"name":"exchangeCardsOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishAlbum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gammaOffersContract","outputs":[{"internalType":"contract IgammaOffersContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gammaPacksContract","outputs":[{"internalType":"contract IgammaPacksContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gammaTicketsContract","outputs":[{"internalType":"contract IgammaTicketsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getBurnedCardQttyByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNum","type":"uint8"}],"name":"getCardQuantityByUser","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getCardsByUser","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"},{"internalType":"uint8[]","name":"","type":"uint8[]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLotteryPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNum","type":"uint8"}],"name":"hasCard","outputs":[{"internalType":"bool","name":"has","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasCardByOffer","outputs":[{"internalType":"bool","name":"has","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNum","type":"uint8"}],"name":"mintCard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"openPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"packsQuantity","type":"uint8"},{"internalType":"uint256[]","name":"packsNumber","type":"uint256[]"},{"internalType":"uint8[][]","name":"packsData","type":"uint8[][]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"openPacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ownerToRemove","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_signerToRemove","type":"address"}],"name":"removeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"restoreCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"s_baseUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"s_burnedCards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"s_cards","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"bool","name":"pasted","type":"bool"},{"internalType":"uint8","name":"class","type":"uint8"},{"internalType":"uint256","name":"completion","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"s_cardsByUser","outputs":[{"internalType":"uint8","name":"amount","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cardNumber","type":"uint256"}],"name":"s_cardsInventory","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_lotteryPrizePercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_mainAlbumPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_mainUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_maxPacksToOpenAtOnce","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_packPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_prizesBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_requireOfferValidationInMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_requireOfferValidationInTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_requireOpenPackSignerValidation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_secondaryAlbumPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_secondaryUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_tokenIdCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaOffersContract","type":"address"}],"name":"setGammaOffersContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaPacksContract","type":"address"}],"name":"setGammaPacksContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaTicketsContract","type":"address"}],"name":"setGammaTicketsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"amount","type":"uint8"}],"name":"setLotteryPrizePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMainAlbumPrize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPrizesBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSecondaryAlbumPrize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newMainUri","type":"string"},{"internalType":"string","name":"newSecondaryUri","type":"string"}],"name":"setUris","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"testAddCards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"}],"name":"testOpenPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"transferCard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8[]","name":"cardNumbers","type":"uint8[]"}],"name":"transferCards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verifyPackSigner","outputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4107":{"entryPoint":null,"id":4107,"parameterSlots":6,"returnSlots":0},"@_464":{"entryPoint":null,"id":464,"parameterSlots":2,"returnSlots":0},"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_5830":{"entryPoint":null,"id":5830,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":771,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":853,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_string_memory_ptrt_address_fromMemory":{"entryPoint":942,"id":null,"parameterSlots":2,"returnSlots":6},"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1568,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":1281,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1364,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":904,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1221,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":1757,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":882,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6370:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:29","statements":[{"nodeType":"YulAssignment","src":"84:22:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:29"},"nodeType":"YulFunctionCall","src":"93:13:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:29"}]},{"body":{"nodeType":"YulBlock","src":"169:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:29"},"nodeType":"YulFunctionCall","src":"171:12:29"},"nodeType":"YulExpressionStatement","src":"171:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:29"},"nodeType":"YulFunctionCall","src":"150:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:29"},"nodeType":"YulFunctionCall","src":"135:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:29"},"nodeType":"YulFunctionCall","src":"125:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:29"},"nodeType":"YulFunctionCall","src":"118:50:29"},"nodeType":"YulIf","src":"115:70:29"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:29","type":""}],"src":"14:177:29"},{"body":{"nodeType":"YulBlock","src":"228:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"245:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"252:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"257:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"248:3:29"},"nodeType":"YulFunctionCall","src":"248:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"238:6:29"},"nodeType":"YulFunctionCall","src":"238:31:29"},"nodeType":"YulExpressionStatement","src":"238:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"285:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"288:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"278:6:29"},"nodeType":"YulFunctionCall","src":"278:15:29"},"nodeType":"YulExpressionStatement","src":"278:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:29"},"nodeType":"YulFunctionCall","src":"302:15:29"},"nodeType":"YulExpressionStatement","src":"302:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"196:127:29"},{"body":{"nodeType":"YulBlock","src":"394:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"404:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"413:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"408:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"473:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"498:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"503:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"494:3:29"},"nodeType":"YulFunctionCall","src":"494:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"517:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"522:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:29"},"nodeType":"YulFunctionCall","src":"513:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"507:5:29"},"nodeType":"YulFunctionCall","src":"507:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"487:6:29"},"nodeType":"YulFunctionCall","src":"487:39:29"},"nodeType":"YulExpressionStatement","src":"487:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"434:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"437:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"431:2:29"},"nodeType":"YulFunctionCall","src":"431:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"445:19:29","statements":[{"nodeType":"YulAssignment","src":"447:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"456:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"459:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"452:3:29"},"nodeType":"YulFunctionCall","src":"452:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"447:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"427:3:29","statements":[]},"src":"423:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"556:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"561:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"552:3:29"},"nodeType":"YulFunctionCall","src":"552:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"570:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"545:6:29"},"nodeType":"YulFunctionCall","src":"545:27:29"},"nodeType":"YulExpressionStatement","src":"545:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"372:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"377:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"382:6:29","type":""}],"src":"328:250:29"},{"body":{"nodeType":"YulBlock","src":"759:1149:29","statements":[{"body":{"nodeType":"YulBlock","src":"806:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"815:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"818:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"808:6:29"},"nodeType":"YulFunctionCall","src":"808:12:29"},"nodeType":"YulExpressionStatement","src":"808:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"780:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"789:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"776:3:29"},"nodeType":"YulFunctionCall","src":"776:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"801:3:29","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"772:3:29"},"nodeType":"YulFunctionCall","src":"772:33:29"},"nodeType":"YulIf","src":"769:53:29"},{"nodeType":"YulAssignment","src":"831:50:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"871:9:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"841:29:29"},"nodeType":"YulFunctionCall","src":"841:40:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"831:6:29"}]},{"nodeType":"YulAssignment","src":"890:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:29"},"nodeType":"YulFunctionCall","src":"930:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"900:29:29"},"nodeType":"YulFunctionCall","src":"900:49:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"890:6:29"}]},{"nodeType":"YulAssignment","src":"958:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1013:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"998:3:29"},"nodeType":"YulFunctionCall","src":"998:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"968:29:29"},"nodeType":"YulFunctionCall","src":"968:49:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:29"}]},{"nodeType":"YulAssignment","src":"1026:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1070:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1081:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:29"},"nodeType":"YulFunctionCall","src":"1066:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1036:29:29"},"nodeType":"YulFunctionCall","src":"1036:49:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1026:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1094:40:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1118:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1129:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1114:3:29"},"nodeType":"YulFunctionCall","src":"1114:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1108:5:29"},"nodeType":"YulFunctionCall","src":"1108:26:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1098:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1143:28:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1161:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1165:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1157:3:29"},"nodeType":"YulFunctionCall","src":"1157:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1169:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1153:3:29"},"nodeType":"YulFunctionCall","src":"1153:18:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1147:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1198:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1207:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1210:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1200:6:29"},"nodeType":"YulFunctionCall","src":"1200:12:29"},"nodeType":"YulExpressionStatement","src":"1200:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1186:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1194:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1183:2:29"},"nodeType":"YulFunctionCall","src":"1183:14:29"},"nodeType":"YulIf","src":"1180:34:29"},{"nodeType":"YulVariableDeclaration","src":"1223:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1237:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1248:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1233:3:29"},"nodeType":"YulFunctionCall","src":"1233:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1227:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1303:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1312:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1315:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1305:6:29"},"nodeType":"YulFunctionCall","src":"1305:12:29"},"nodeType":"YulExpressionStatement","src":"1305:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1282:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1286:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1278:3:29"},"nodeType":"YulFunctionCall","src":"1278:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1293:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1274:3:29"},"nodeType":"YulFunctionCall","src":"1274:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1267:6:29"},"nodeType":"YulFunctionCall","src":"1267:35:29"},"nodeType":"YulIf","src":"1264:55:29"},{"nodeType":"YulVariableDeclaration","src":"1328:19:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1344:2:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1338:5:29"},"nodeType":"YulFunctionCall","src":"1338:9:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1332:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1370:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1372:16:29"},"nodeType":"YulFunctionCall","src":"1372:18:29"},"nodeType":"YulExpressionStatement","src":"1372:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1362:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1366:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1359:2:29"},"nodeType":"YulFunctionCall","src":"1359:10:29"},"nodeType":"YulIf","src":"1356:36:29"},{"nodeType":"YulVariableDeclaration","src":"1401:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1415:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1411:3:29"},"nodeType":"YulFunctionCall","src":"1411:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1405:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1427:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1447:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1441:5:29"},"nodeType":"YulFunctionCall","src":"1441:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1431:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1459:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1481:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1505:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1509:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1501:3:29"},"nodeType":"YulFunctionCall","src":"1501:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1516:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1497:3:29"},"nodeType":"YulFunctionCall","src":"1497:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"1521:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:29"},"nodeType":"YulFunctionCall","src":"1493:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1526:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1489:3:29"},"nodeType":"YulFunctionCall","src":"1489:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1477:3:29"},"nodeType":"YulFunctionCall","src":"1477:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1463:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1589:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1591:16:29"},"nodeType":"YulFunctionCall","src":"1591:18:29"},"nodeType":"YulExpressionStatement","src":"1591:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1548:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1560:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1545:2:29"},"nodeType":"YulFunctionCall","src":"1545:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1568:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1580:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1565:2:29"},"nodeType":"YulFunctionCall","src":"1565:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1542:2:29"},"nodeType":"YulFunctionCall","src":"1542:46:29"},"nodeType":"YulIf","src":"1539:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1627:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1631:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1620:6:29"},"nodeType":"YulFunctionCall","src":"1620:22:29"},"nodeType":"YulExpressionStatement","src":"1620:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1658:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1666:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1651:6:29"},"nodeType":"YulFunctionCall","src":"1651:18:29"},"nodeType":"YulExpressionStatement","src":"1651:18:29"},{"body":{"nodeType":"YulBlock","src":"1715:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1724:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1727:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1717:6:29"},"nodeType":"YulFunctionCall","src":"1717:12:29"},"nodeType":"YulExpressionStatement","src":"1717:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1692:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1696:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1688:3:29"},"nodeType":"YulFunctionCall","src":"1688:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1701:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1684:3:29"},"nodeType":"YulFunctionCall","src":"1684:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1706:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1681:2:29"},"nodeType":"YulFunctionCall","src":"1681:33:29"},"nodeType":"YulIf","src":"1678:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1779:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1783:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1775:3:29"},"nodeType":"YulFunctionCall","src":"1775:11:29"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1792:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1800:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1788:3:29"},"nodeType":"YulFunctionCall","src":"1788:15:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1805:2:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1740:34:29"},"nodeType":"YulFunctionCall","src":"1740:68:29"},"nodeType":"YulExpressionStatement","src":"1740:68:29"},{"nodeType":"YulAssignment","src":"1817:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1827:6:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1817:6:29"}]},{"nodeType":"YulAssignment","src":"1842:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1886:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1897:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1882:3:29"},"nodeType":"YulFunctionCall","src":"1882:19:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1852:29:29"},"nodeType":"YulFunctionCall","src":"1852:50:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1842:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_string_memory_ptrt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"685:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"696:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"708:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"716:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"724:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"732:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"740:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"748:6:29","type":""}],"src":"583:1325:29"},{"body":{"nodeType":"YulBlock","src":"1968:325:29","statements":[{"nodeType":"YulAssignment","src":"1978:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1992:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1995:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1988:3:29"},"nodeType":"YulFunctionCall","src":"1988:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1978:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2009:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2039:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"2045:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2035:3:29"},"nodeType":"YulFunctionCall","src":"2035:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2013:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2086:31:29","statements":[{"nodeType":"YulAssignment","src":"2088:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2102:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2110:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2098:3:29"},"nodeType":"YulFunctionCall","src":"2098:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2088:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2066:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2059:6:29"},"nodeType":"YulFunctionCall","src":"2059:26:29"},"nodeType":"YulIf","src":"2056:61:29"},{"body":{"nodeType":"YulBlock","src":"2176:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2197:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2204:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2209:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2200:3:29"},"nodeType":"YulFunctionCall","src":"2200:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2190:6:29"},"nodeType":"YulFunctionCall","src":"2190:31:29"},"nodeType":"YulExpressionStatement","src":"2190:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2241:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2244:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2234:6:29"},"nodeType":"YulFunctionCall","src":"2234:15:29"},"nodeType":"YulExpressionStatement","src":"2234:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2269:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2272:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2262:6:29"},"nodeType":"YulFunctionCall","src":"2262:15:29"},"nodeType":"YulExpressionStatement","src":"2262:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2132:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2155:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2152:2:29"},"nodeType":"YulFunctionCall","src":"2152:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2129:2:29"},"nodeType":"YulFunctionCall","src":"2129:38:29"},"nodeType":"YulIf","src":"2126:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1948:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1957:6:29","type":""}],"src":"1913:380:29"},{"body":{"nodeType":"YulBlock","src":"2354:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2371:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2374:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2364:6:29"},"nodeType":"YulFunctionCall","src":"2364:14:29"},"nodeType":"YulExpressionStatement","src":"2364:14:29"},{"nodeType":"YulAssignment","src":"2387:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2405:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2408:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2395:9:29"},"nodeType":"YulFunctionCall","src":"2395:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2387:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2337:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2345:4:29","type":""}],"src":"2298:121:29"},{"body":{"nodeType":"YulBlock","src":"2505:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"2538:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2552:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2562:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2556:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2583:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"2587:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2576:6:29"},"nodeType":"YulFunctionCall","src":"2576:17:29"},"nodeType":"YulExpressionStatement","src":"2576:17:29"},{"nodeType":"YulVariableDeclaration","src":"2606:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2628:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2632:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2618:9:29"},"nodeType":"YulFunctionCall","src":"2618:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2610:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2650:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2673:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2683:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2690:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2702:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:29"},"nodeType":"YulFunctionCall","src":"2686:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2679:3:29"},"nodeType":"YulFunctionCall","src":"2679:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2669:3:29"},"nodeType":"YulFunctionCall","src":"2669:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2654:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2744:23:29","statements":[{"nodeType":"YulAssignment","src":"2746:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"2761:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2746:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2726:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2738:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2723:2:29"},"nodeType":"YulFunctionCall","src":"2723:20:29"},"nodeType":"YulIf","src":"2720:47:29"},{"nodeType":"YulVariableDeclaration","src":"2780:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2794:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2804:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2811:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2816:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2807:3:29"},"nodeType":"YulFunctionCall","src":"2807:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2800:3:29"},"nodeType":"YulFunctionCall","src":"2800:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2790:3:29"},"nodeType":"YulFunctionCall","src":"2790:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2784:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2834:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2847:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2838:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2932:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2941:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2948:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2934:6:29"},"nodeType":"YulFunctionCall","src":"2934:17:29"},"nodeType":"YulExpressionStatement","src":"2934:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2882:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2889:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2879:2:29"},"nodeType":"YulFunctionCall","src":"2879:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2893:26:29","statements":[{"nodeType":"YulAssignment","src":"2895:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2908:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2915:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2904:3:29"},"nodeType":"YulFunctionCall","src":"2904:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2895:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2875:3:29","statements":[]},"src":"2871:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2521:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2526:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2518:2:29"},"nodeType":"YulFunctionCall","src":"2518:11:29"},"nodeType":"YulIf","src":"2515:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2477:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"2484:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2489:10:29","type":""}],"src":"2424:545:29"},{"body":{"nodeType":"YulBlock","src":"3059:81:29","statements":[{"nodeType":"YulAssignment","src":"3069:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3084:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3102:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"3105:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3098:3:29"},"nodeType":"YulFunctionCall","src":"3098:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3115:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3111:3:29"},"nodeType":"YulFunctionCall","src":"3111:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3094:3:29"},"nodeType":"YulFunctionCall","src":"3094:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3090:3:29"},"nodeType":"YulFunctionCall","src":"3090:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3080:3:29"},"nodeType":"YulFunctionCall","src":"3080:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3126:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"3129:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3122:3:29"},"nodeType":"YulFunctionCall","src":"3122:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3077:2:29"},"nodeType":"YulFunctionCall","src":"3077:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"3069:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3036:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"3042:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"3050:4:29","type":""}],"src":"2974:166:29"},{"body":{"nodeType":"YulBlock","src":"3241:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3251:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3271:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3265:5:29"},"nodeType":"YulFunctionCall","src":"3265:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"3255:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3318:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3320:16:29"},"nodeType":"YulFunctionCall","src":"3320:18:29"},"nodeType":"YulExpressionStatement","src":"3320:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3290:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3306:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3310:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3302:3:29"},"nodeType":"YulFunctionCall","src":"3302:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"3314:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3298:3:29"},"nodeType":"YulFunctionCall","src":"3298:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3287:2:29"},"nodeType":"YulFunctionCall","src":"3287:30:29"},"nodeType":"YulIf","src":"3284:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3393:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3431:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3425:5:29"},"nodeType":"YulFunctionCall","src":"3425:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3399:25:29"},"nodeType":"YulFunctionCall","src":"3399:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3439:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3349:43:29"},"nodeType":"YulFunctionCall","src":"3349:97:29"},"nodeType":"YulExpressionStatement","src":"3349:97:29"},{"nodeType":"YulVariableDeclaration","src":"3455:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3472:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3459:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3482:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3501:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3486:11:29","type":""}]},{"nodeType":"YulAssignment","src":"3514:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3527:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3514:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3584:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3598:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3617:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3629:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3625:3:29"},"nodeType":"YulFunctionCall","src":"3625:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3613:3:29"},"nodeType":"YulFunctionCall","src":"3613:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3602:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3646:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3690:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3660:29:29"},"nodeType":"YulFunctionCall","src":"3660:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3650:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3708:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3717:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3712:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3795:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3820:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3838:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3843:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3834:3:29"},"nodeType":"YulFunctionCall","src":"3834:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3828:5:29"},"nodeType":"YulFunctionCall","src":"3828:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3813:6:29"},"nodeType":"YulFunctionCall","src":"3813:42:29"},"nodeType":"YulExpressionStatement","src":"3813:42:29"},{"nodeType":"YulAssignment","src":"3872:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3886:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3894:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3882:3:29"},"nodeType":"YulFunctionCall","src":"3882:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3872:6:29"}]},{"nodeType":"YulAssignment","src":"3913:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3930:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3941:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3926:3:29"},"nodeType":"YulFunctionCall","src":"3926:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3913:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3742:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3745:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3739:2:29"},"nodeType":"YulFunctionCall","src":"3739:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3754:28:29","statements":[{"nodeType":"YulAssignment","src":"3756:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3765:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3768:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3761:3:29"},"nodeType":"YulFunctionCall","src":"3761:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3756:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3735:3:29","statements":[]},"src":"3731:236:29"},{"body":{"nodeType":"YulBlock","src":"4015:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4033:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4060:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4065:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4056:3:29"},"nodeType":"YulFunctionCall","src":"4056:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4050:5:29"},"nodeType":"YulFunctionCall","src":"4050:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"4037:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4100:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"4112:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4139:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"4142:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4135:3:29"},"nodeType":"YulFunctionCall","src":"4135:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"4151:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4131:3:29"},"nodeType":"YulFunctionCall","src":"4131:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4161:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4157:3:29"},"nodeType":"YulFunctionCall","src":"4157:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4127:3:29"},"nodeType":"YulFunctionCall","src":"4127:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4123:3:29"},"nodeType":"YulFunctionCall","src":"4123:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4108:3:29"},"nodeType":"YulFunctionCall","src":"4108:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4093:6:29"},"nodeType":"YulFunctionCall","src":"4093:74:29"},"nodeType":"YulExpressionStatement","src":"4093:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3986:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3995:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3983:2:29"},"nodeType":"YulFunctionCall","src":"3983:19:29"},"nodeType":"YulIf","src":"3980:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4201:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4215:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"4218:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4211:3:29"},"nodeType":"YulFunctionCall","src":"4211:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"4227:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4207:3:29"},"nodeType":"YulFunctionCall","src":"4207:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4194:6:29"},"nodeType":"YulFunctionCall","src":"4194:36:29"},"nodeType":"YulExpressionStatement","src":"4194:36:29"}]},"nodeType":"YulCase","src":"3577:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3582:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4257:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4271:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"4284:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4275:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4320:67:29","statements":[{"nodeType":"YulAssignment","src":"4338:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4357:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4362:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4353:3:29"},"nodeType":"YulFunctionCall","src":"4353:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4347:5:29"},"nodeType":"YulFunctionCall","src":"4347:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4338:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"4301:6:29"},"nodeType":"YulIf","src":"4298:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4407:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4466:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"4473:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4413:52:29"},"nodeType":"YulFunctionCall","src":"4413:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4400:6:29"},"nodeType":"YulFunctionCall","src":"4400:81:29"},"nodeType":"YulExpressionStatement","src":"4400:81:29"}]},"nodeType":"YulCase","src":"4249:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3557:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3565:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3554:2:29"},"nodeType":"YulFunctionCall","src":"3554:14:29"},"nodeType":"YulSwitch","src":"3547:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"3226:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"3232:3:29","type":""}],"src":"3145:1352:29"},{"body":{"nodeType":"YulBlock","src":"4603:102:29","statements":[{"nodeType":"YulAssignment","src":"4613:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4625:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4636:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4621:3:29"},"nodeType":"YulFunctionCall","src":"4621:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4613:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4655:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4670:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4686:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4691:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4682:3:29"},"nodeType":"YulFunctionCall","src":"4682:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"4695:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4678:3:29"},"nodeType":"YulFunctionCall","src":"4678:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4666:3:29"},"nodeType":"YulFunctionCall","src":"4666:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4648:6:29"},"nodeType":"YulFunctionCall","src":"4648:51:29"},"nodeType":"YulExpressionStatement","src":"4648:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4572:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4583:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4594:4:29","type":""}],"src":"4502:203:29"},{"body":{"nodeType":"YulBlock","src":"4986:1145:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4996:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5007:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"5000:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5017:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5040:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5034:5:29"},"nodeType":"YulFunctionCall","src":"5034:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"5021:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5056:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5096:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"5070:25:29"},"nodeType":"YulFunctionCall","src":"5070:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5060:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5115:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5125:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5119:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"5176:126:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5197:3:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5206:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5221:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5217:3:29"},"nodeType":"YulFunctionCall","src":"5217:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5202:3:29"},"nodeType":"YulFunctionCall","src":"5202:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5190:6:29"},"nodeType":"YulFunctionCall","src":"5190:37:29"},"nodeType":"YulExpressionStatement","src":"5190:37:29"},{"nodeType":"YulAssignment","src":"5240:52:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5251:3:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5260:6:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5282:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5275:6:29"},"nodeType":"YulFunctionCall","src":"5275:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5268:6:29"},"nodeType":"YulFunctionCall","src":"5268:22:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5256:3:29"},"nodeType":"YulFunctionCall","src":"5256:35:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5247:3:29"},"nodeType":"YulFunctionCall","src":"5247:45:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5240:3:29"}]}]},"nodeType":"YulCase","src":"5169:133:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5174:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5318:349:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5339:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"5342:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5332:6:29"},"nodeType":"YulFunctionCall","src":"5332:17:29"},"nodeType":"YulExpressionStatement","src":"5332:17:29"},{"nodeType":"YulVariableDeclaration","src":"5362:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5372:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5366:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5389:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5414:1:29","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"5417:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5404:9:29"},"nodeType":"YulFunctionCall","src":"5404:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"5393:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5433:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5442:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5437:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5510:111:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5539:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"5544:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5535:3:29"},"nodeType":"YulFunctionCall","src":"5535:11:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"5554:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5548:5:29"},"nodeType":"YulFunctionCall","src":"5548:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5528:6:29"},"nodeType":"YulFunctionCall","src":"5528:35:29"},"nodeType":"YulExpressionStatement","src":"5528:35:29"},{"nodeType":"YulAssignment","src":"5580:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"5595:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5604:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5591:3:29"},"nodeType":"YulFunctionCall","src":"5591:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"5580:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5467:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"5470:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5464:2:29"},"nodeType":"YulFunctionCall","src":"5464:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5478:19:29","statements":[{"nodeType":"YulAssignment","src":"5480:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5489:1:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5492:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5485:3:29"},"nodeType":"YulFunctionCall","src":"5485:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5480:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"5460:3:29","statements":[]},"src":"5456:165:29"},{"nodeType":"YulAssignment","src":"5634:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5645:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"5650:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5641:3:29"},"nodeType":"YulFunctionCall","src":"5641:16:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5634:3:29"}]}]},"nodeType":"YulCase","src":"5311:356:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5316:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5146:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5157:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5142:3:29"},"nodeType":"YulFunctionCall","src":"5142:18:29"},"nodeType":"YulSwitch","src":"5135:532:29"},{"nodeType":"YulVariableDeclaration","src":"5676:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5698:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5692:5:29"},"nodeType":"YulFunctionCall","src":"5692:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"5680:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5753:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5761:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5749:3:29"},"nodeType":"YulFunctionCall","src":"5749:17:29"},{"name":"ret","nodeType":"YulIdentifier","src":"5768:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"5773:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5714:34:29"},"nodeType":"YulFunctionCall","src":"5714:68:29"},"nodeType":"YulExpressionStatement","src":"5714:68:29"},{"nodeType":"YulVariableDeclaration","src":"5791:31:29","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"5808:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"5813:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5804:3:29"},"nodeType":"YulFunctionCall","src":"5804:18:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"5795:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5831:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5853:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5847:5:29"},"nodeType":"YulFunctionCall","src":"5847:13:29"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"5835:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5908:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5916:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5904:3:29"},"nodeType":"YulFunctionCall","src":"5904:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"5923:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"5930:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5869:34:29"},"nodeType":"YulFunctionCall","src":"5869:70:29"},"nodeType":"YulExpressionStatement","src":"5869:70:29"},{"nodeType":"YulVariableDeclaration","src":"5948:30:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"5962:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"5969:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5958:3:29"},"nodeType":"YulFunctionCall","src":"5958:20:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5952:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5987:29:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6009:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6003:5:29"},"nodeType":"YulFunctionCall","src":"6003:13:29"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"5991:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6064:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6072:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6060:3:29"},"nodeType":"YulFunctionCall","src":"6060:17:29"},{"name":"_3","nodeType":"YulIdentifier","src":"6079:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"6083:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6025:34:29"},"nodeType":"YulFunctionCall","src":"6025:67:29"},"nodeType":"YulExpressionStatement","src":"6025:67:29"},{"nodeType":"YulAssignment","src":"6101:24:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6112:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"6116:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6108:3:29"},"nodeType":"YulFunctionCall","src":"6108:17:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6101:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4938:3:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4943:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4951:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4959:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4967:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4978:3:29","type":""}],"src":"4710:1421:29"},{"body":{"nodeType":"YulBlock","src":"6183:185:29","statements":[{"body":{"nodeType":"YulBlock","src":"6222:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6243:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6250:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6255:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6246:3:29"},"nodeType":"YulFunctionCall","src":"6246:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6236:6:29"},"nodeType":"YulFunctionCall","src":"6236:31:29"},"nodeType":"YulExpressionStatement","src":"6236:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6287:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6290:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6280:6:29"},"nodeType":"YulFunctionCall","src":"6280:15:29"},"nodeType":"YulExpressionStatement","src":"6280:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6315:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6318:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6308:6:29"},"nodeType":"YulFunctionCall","src":"6308:15:29"},"nodeType":"YulExpressionStatement","src":"6308:15:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6199:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6210:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6206:3:29"},"nodeType":"YulFunctionCall","src":"6206:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6196:2:29"},"nodeType":"YulFunctionCall","src":"6196:17:29"},"nodeType":"YulIf","src":"6193:140:29"},{"nodeType":"YulAssignment","src":"6342:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6353:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"6360:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6349:3:29"},"nodeType":"YulFunctionCall","src":"6349:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6342:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6165:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"6175:3:29","type":""}],"src":"6136:232:29"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_decode_tuple_t_addresst_addresst_addresst_addresst_string_memory_ptrt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n let offset := mload(add(headStart, 128))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n value4 := memPtr\n value5 := abi_decode_address_fromMemory(add(headStart, 160))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), ret, length_1)\n let end_1 := add(ret, length_1)\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), end_1, length_2)\n let _3 := add(end_1, length_2)\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), _3, length_3)\n end := add(_3, length_3)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":5805},{"length":20,"start":6489},{"length":20,"start":10458},{"length":20,"start":15317}]},"contracts/gamma/libs/LibPackVerifier.sol":{"LibPackVerifier":[{"length":20,"start":6067},{"length":20,"start":15807}]},"contracts/gamma/libs/LibStringUtils.sol":{"LibStringUtils":[{"length":20,"start":14469}]}},"object":"6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040516200592d3803806200592d8339810160408190526200007d91620003ae565b336040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000d1919062000554565b506001620000e0828262000554565b5050506001600160a01b0381166200011257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200011d8162000303565b50336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a805486841690831617905560098054928716929091169190911790556017620001a4838262000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b81840152935162000203946017949390910162000620565b6040516020818303038152906040526015908162000222919062000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b81840152935162000281946017949390910162000620565b60405160208183030381529060405260169081620002a0919062000554565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015620002f6576000818152601a602052604090206001905580620002ed81620006dd565b915050620002c5565b5050505050505062000705565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003a55781810151838201526020016200038b565b50506000910152565b60008060008060008060c08789031215620003c857600080fd5b620003d38762000355565b9550620003e36020880162000355565b9450620003f36040880162000355565b9350620004036060880162000355565b60808801519093506001600160401b03808211156200042157600080fd5b818901915089601f8301126200043657600080fd5b8151818111156200044b576200044b62000372565b604051601f8201601f19908116603f0116810190838211818310171562000476576200047662000372565b816040528281528c60208487010111156200049057600080fd5b620004a383602083016020880162000388565b8096505050505050620004b960a0880162000355565b90509295509295509295565b600181811c90821680620004da57607f821691505b602082108103620004fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054f57600081815260208120601f850160051c810160208610156200052a5750805b601f850160051c820191505b818110156200054b5782815560010162000536565b5050505b505050565b81516001600160401b0381111562000570576200057062000372565b6200058881620005818454620004c5565b8462000501565b602080601f831160018114620005c05760008415620005a75750858301515b600019600386901b1c1916600185901b1785556200054b565b600085815260208120601f198616915b82811015620005f157888601518255948401946001909101908401620005d0565b5085821015620006105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008086546200063081620004c5565b600182811680156200064b5760018114620006615762000692565b60ff198416875282151583028701945062000692565b8a60005260208060002060005b85811015620006895781548a8201529084019082016200066e565b50505082870194505b505050508551620006a8818360208a0162000388565b8551910190620006bd81836020890162000388565b8451910190620006d281836020880162000388565b019695505050505050565b600060018201620006fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b61521880620007156000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xF DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x320A OR SWAP1 SSTORE PUSH8 0x10A741A462780000 PUSH1 0x11 SSTORE PUSH1 0x0 PUSH1 0x12 SSTORE PUSH8 0xD02AB486CEDC0000 PUSH1 0x13 SSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x14 SSTORE PUSH1 0x18 DUP1 SLOAD PUSH3 0xFFFF00 NOT AND PUSH3 0x10100 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x592D CODESIZE SUB DUP1 PUSH3 0x592D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x7D SWAP2 PUSH3 0x3AE JUMP JUMPDEST CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x47616D6D614361726473 PUSH1 0xB0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x4E4F465F4743 PUSH1 0xD0 SHL DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0xE0 DUP3 DUP3 PUSH3 0x554 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x112 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x11D DUP2 PUSH3 0x303 JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH3 0x10000 MUL PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x8 DUP1 SLOAD DUP8 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xA DUP1 SLOAD DUP7 DUP5 AND SWAP1 DUP4 AND OR SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP3 DUP8 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x17 PUSH3 0x1A4 DUP4 DUP3 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x2F PUSH1 0xF8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x31323 PUSH1 0xEC SHL DUP2 DUP4 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH6 0x23173539B7B7 PUSH1 0xD1 SHL DUP2 DUP5 ADD MSTORE SWAP4 MLOAD PUSH3 0x203 SWAP5 PUSH1 0x17 SWAP5 SWAP4 SWAP1 SWAP2 ADD PUSH3 0x620 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x15 SWAP1 DUP2 PUSH3 0x222 SWAP2 SWAP1 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x2F PUSH1 0xF8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x313231 PUSH1 0xE8 SHL DUP2 DUP4 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH6 0x23173539B7B7 PUSH1 0xD1 SHL DUP2 DUP5 ADD MSTORE SWAP4 MLOAD PUSH3 0x281 SWAP5 PUSH1 0x17 SWAP5 SWAP4 SWAP1 SWAP2 ADD PUSH3 0x620 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x16 SWAP1 DUP2 PUSH3 0x2A0 SWAP2 SWAP1 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMPDEST PUSH1 0x7A DUP2 LT ISZERO PUSH3 0x2F6 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE DUP1 PUSH3 0x2ED DUP2 PUSH3 0x6DD JUMP JUMPDEST SWAP2 POP POP PUSH3 0x2C5 JUMP JUMPDEST POP POP POP POP POP POP POP PUSH3 0x705 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x38B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x3D3 DUP8 PUSH3 0x355 JUMP JUMPDEST SWAP6 POP PUSH3 0x3E3 PUSH1 0x20 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST SWAP5 POP PUSH3 0x3F3 PUSH1 0x40 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST SWAP4 POP PUSH3 0x403 PUSH1 0x60 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST PUSH1 0x80 DUP9 ADD MLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x44B JUMPI PUSH3 0x44B PUSH3 0x372 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x476 JUMPI PUSH3 0x476 PUSH3 0x372 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP13 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x4A3 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x388 JUMP JUMPDEST DUP1 SWAP7 POP POP POP POP POP POP PUSH3 0x4B9 PUSH1 0xA0 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x4DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x4FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x54F JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x52A JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x54B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x536 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x570 JUMPI PUSH3 0x570 PUSH3 0x372 JUMP JUMPDEST PUSH3 0x588 DUP2 PUSH3 0x581 DUP5 SLOAD PUSH3 0x4C5 JUMP JUMPDEST DUP5 PUSH3 0x501 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x5C0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x5A7 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x54B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x5F1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x5D0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x610 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 SLOAD PUSH3 0x630 DUP2 PUSH3 0x4C5 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH3 0x64B JUMPI PUSH1 0x1 DUP2 EQ PUSH3 0x661 JUMPI PUSH3 0x692 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH3 0x692 JUMP JUMPDEST DUP11 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH3 0x689 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH3 0x66E JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP6 MLOAD PUSH3 0x6A8 DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH3 0x388 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH3 0x6BD DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH3 0x388 JUMP JUMPDEST DUP5 MLOAD SWAP2 ADD SWAP1 PUSH3 0x6D2 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH3 0x388 JUMP JUMPDEST ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x6FE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0x5218 DUP1 PUSH3 0x715 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x45F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7232D7D4 GT PUSH2 0x24C JUMPI DUP1 PUSH4 0xAD1684FA GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDBFC05CF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE8A7E31D GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE8A7E31D EQ PUSH2 0xA64 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0xA6C JUMPI DUP1 PUSH4 0xEB12D61E EQ PUSH2 0xA7F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xF98FD283 EQ PUSH2 0xAA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDBFC05CF EQ PUSH2 0xA05 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0xA18 JUMPI DUP1 PUSH4 0xE1883C6E EQ PUSH2 0xA2B JUMPI DUP1 PUSH4 0xE4AE0B9B EQ PUSH2 0xA3E JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0xA4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC87B56DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x9BB JUMPI DUP1 PUSH4 0xCAFAA473 EQ PUSH2 0x9CE JUMPI DUP1 PUSH4 0xD322B563 EQ PUSH2 0x9E1 JUMPI DUP1 PUSH4 0xD7093F40 EQ PUSH2 0x9F4 JUMPI DUP1 PUSH4 0xD780C477 EQ PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAD1684FA EQ PUSH2 0x966 JUMPI DUP1 PUSH4 0xB3526185 EQ PUSH2 0x979 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x982 JUMPI DUP1 PUSH4 0xBA6C0FBC EQ PUSH2 0x995 JUMPI DUP1 PUSH4 0xBF400A6A EQ PUSH2 0x9A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x9FF26EFD GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x9FF26EFD EQ PUSH2 0x8F2 JUMPI DUP1 PUSH4 0xA1AF8AD4 EQ PUSH2 0x920 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x933 JUMPI DUP1 PUSH4 0xA419811D EQ PUSH2 0x946 JUMPI DUP1 PUSH4 0xAB535160 EQ PUSH2 0x959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x9038F414 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0x9A5613AD EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0x9C7F707F EQ PUSH2 0x8DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DF73E27 GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x7DF73E27 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0x82D8A118 EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0x886EB60F EQ PUSH2 0x865 JUMPI DUP1 PUSH4 0x88E0EF80 EQ PUSH2 0x878 JUMPI DUP1 PUSH4 0x8BF670C8 EQ PUSH2 0x898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7232D7D4 EQ PUSH2 0x7EF JUMPI DUP1 PUSH4 0x79E8DADC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0x7CE65F7B EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0x7CF86B72 EQ PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D GT PUSH2 0x35D JUMPI DUP1 PUSH4 0x5312EA8E GT PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x6D0AF178 GT PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6D0AF178 EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x7AE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x7C1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x7155A3AC EQ PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5312EA8E EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0x5E31CE48 EQ PUSH2 0x75A JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x76D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x780 JUMPI DUP1 PUSH4 0x68CC5BC1 EQ PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30F5CC58 GT PUSH2 0x32C JUMPI DUP1 PUSH4 0x30F5CC58 EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0x4039327E EQ PUSH2 0x6A7 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x4C03CD0B EQ PUSH2 0x6D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2CA699E7 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x655 JUMPI DUP1 PUSH4 0x2F9E026A EQ PUSH2 0x681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 GT PUSH2 0x3EB JUMPI DUP1 PUSH4 0x203335F6 GT PUSH2 0x3AF JUMPI DUP1 PUSH4 0x203335F6 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0x20965A5F EQ PUSH2 0x5ED JUMPI DUP1 PUSH4 0x21A7C6B0 EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x609 JUMPI DUP1 PUSH4 0x241A08FE EQ PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x155E2F92 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x1585CC4E EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x5C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81812FC GT PUSH2 0x432 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xE316AB7 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x128916DC EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x1306952C EQ PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x435DCAF EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x7B2E246 EQ PUSH2 0x4C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x477 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x4389 JUMP JUMPDEST PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49F PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xAC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4416 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0xE79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP2 SWAP1 PUSH2 0x44D1 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x4D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x4FF CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0xF0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x44FD JUMP JUMPDEST PUSH2 0xF34 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x52F PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xFE9 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x108C JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1118 JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1195 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x47B3 JUMP JUMPDEST PUSH2 0x1266 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5FB CALLDATASIZE PUSH1 0x4 PUSH2 0x48A9 JUMP JUMPDEST PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x617 CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x62A CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x63D CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x1A17 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x650 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1A24 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4946 JUMP JUMPDEST PUSH2 0x1C77 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FAD JUMP JUMPDEST PUSH2 0x717 PUSH2 0x6E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x755 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FB9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x768 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x77B CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2119 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x797 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x2124 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7BC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x7CF CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x21E7 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x222F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7EA CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x2243 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7FD CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x22A3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x22F9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2306 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x82B CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x83E CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x23C3 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x886 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x8A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x241F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x504 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x281E JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x8ED CALLDATASIZE PUSH1 0x4 PUSH2 0x4A49 JUMP JUMPDEST PUSH2 0x282D JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x900 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x92E CALLDATASIZE PUSH1 0x4 PUSH2 0x4AAC JUMP JUMPDEST PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x941 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B00 JUMP JUMPDEST PUSH2 0x2C49 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x954 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2C54 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x974 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B39 JUMP JUMPDEST PUSH2 0x2CF3 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x990 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B91 JUMP JUMPDEST PUSH2 0x2F86 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2FF3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x9C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x323F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9DC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x324A JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x12 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x32ED JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA13 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x331A JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA26 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x335D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA39 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x504 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x3430 JUMP JUMPDEST PUSH2 0x477 PUSH2 0xA7A CALLDATASIZE PUSH1 0x4 PUSH2 0x4C10 JUMP JUMPDEST PUSH2 0x343D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA8D CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x346B JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAA0 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x34E2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAB3 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x3520 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x356A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xCAF JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO PUSH2 0xC9D JUMPI DUP1 DUP6 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 AND DUP4 MSTORE SWAP1 SWAP3 MSTORE KECCAK256 SLOAD DUP6 MLOAD SWAP1 DUP3 AND SWAP2 DUP7 SWAP2 SWAP1 DUP6 AND SWAP1 DUP2 LT PUSH2 0xBE5 JUMPI PUSH2 0xBE5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC6A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST DUP4 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xC7F JUMPI PUSH2 0xC7F PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 PUSH2 0xC99 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 PUSH2 0xCA7 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB46 JUMP JUMPDEST POP PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCD PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCF6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD16 JUMPI PUSH2 0xD16 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD3F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD5F JUMPI PUSH2 0xD5F PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD88 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0xE67 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH2 0xDAB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDC5 JUMPI PUSH2 0xDC5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDEB JUMPI PUSH2 0xDEB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE05 JUMPI PUSH2 0xE05 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xE2B JUMPI PUSH2 0xE2B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE45 JUMPI PUSH2 0xE45 PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP1 PUSH2 0xE5F DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD8E JUMP JUMPDEST POP SWAP2 SWAP11 SWAP1 SWAP10 POP SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF 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 0xEB4 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xED6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF16 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC3 JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 CALLER PUSH2 0x35C8 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF73 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x982088F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x982088F0 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xFE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1019 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1041 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x538B3425A321783393AD250DB10356B8B3523EF29A40DE015C5218213DE0EAD0 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x10CE SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x110F SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x11BF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0xFF DUP6 AND ISZERO DUP1 PUSH2 0x127E JUMPI POP PUSH1 0xF SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND GT JUMPDEST ISZERO PUSH2 0x129C JUMPI PUSH1 0x40 MLOAD PUSH4 0xB154B3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x131D JUMPI PUSH2 0x130B CALLER DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12C0 JUMPI PUSH2 0x12C0 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x12DA JUMPI PUSH2 0x12DA PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP7 DUP2 DUP2 LT PUSH2 0x12F4 JUMPI PUSH2 0x12F4 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x4D97 JUMP JUMPDEST PUSH2 0x35D5 JUMP JUMPDEST DUP1 PUSH2 0x1315 DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x129F JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 SUB PUSH2 0x1363 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x137E SWAP1 DUP4 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3C DUP3 LT PUSH2 0x1436 JUMPI PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FD SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x14 SLOAD DUP2 LT DUP1 PUSH2 0x1412 JUMPI POP PUSH1 0x14 SLOAD PUSH1 0x12 SLOAD LT JUMPDEST ISZERO PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCDB3117 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xCDB3117 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1483 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14A7 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST GT SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x16CE JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x14D8 JUMPI PUSH2 0x14D8 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 ISZERO PUSH2 0x164A JUMPI PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x1551 JUMPI PUSH2 0x1551 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1566 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15D6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST ISZERO PUSH2 0x164A JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 SWAP2 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x15FF JUMPI PUSH2 0x15FF PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1614 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND LT ISZERO PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH4 0x483E9B8D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x166C JUMPI PUSH2 0x166C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1681 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x16A8 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x14AE JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x16EE SWAP1 DUP5 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH2 0x1703 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 CALLER SWAP1 PUSH32 0xDBCDA3B6D52A6F69C85189CA3F35E5BE8A2E3D052FEA47F656FF00384B0C47B1 SWAP1 PUSH1 0x0 SWAP1 LOG3 DUP3 ISZERO PUSH2 0x131D JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND SWAP2 PUSH2 0x1765 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1816 CALLER PUSH1 0x16 DUP1 SLOAD PUSH2 0x178F SWAP1 PUSH2 0x4CBF 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 0x17BB SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1808 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1808 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x79 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x182A SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x14 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18AD SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFA8213D3 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFA8213D3 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x2 SWAP3 POP CALLER SWAP2 POP PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1970 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x197D DUP4 DUP4 CALLER PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x19CB CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x35D5 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x1A8A JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SUB PUSH2 0x1AB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B3A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP10 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x1B6B JUMPI POP DUP1 JUMPDEST PUSH2 0x1B87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1BB6 DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x1C05 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x1B6E5F928A38F442936BBDF4696F128A543B8E43730594344A66C028D0B9C3DA DUP5 PUSH1 0x40 MLOAD PUSH2 0x1C6A SWAP2 SWAP1 PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1CA7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x1D1C SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x1D29 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D3A SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x19CB JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1D5E JUMPI PUSH2 0x1D5E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 EQ PUSH2 0x1DA9 JUMPI PUSH2 0x1389 PUSH1 0x1A PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1D89 JUMPI PUSH2 0x1D89 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB9 GT JUMPDEST PUSH2 0x1E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642063617264496E76656E746F727920706F736974696F6E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1E3C JUMPI PUSH2 0x1E3C PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1E66 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 MLOAD SWAP1 SWAP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1E9A JUMPI PUSH2 0x1E9A PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1ED3 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x1EF7 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1D43 JUMP JUMPDEST PUSH1 0x16 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF 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 0x1F38 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F85 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F5A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F85 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F68 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2F86 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF3F PUSH1 0x0 DUP3 CALLER PUSH2 0x3A4F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1FE9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1FF3 ADDRESS PUSH2 0x21E7 JUMP JUMPDEST LT ISZERO PUSH2 0x2012 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2024 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20A3 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 SWAP1 CALLER SWAP1 PUSH32 0x23D6711A1D031134A36921253C75AA59E967D38E369AC625992824315E204F20 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x20FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2111 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x358F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2154 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x21A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2237 PUSH2 0x3B48 JUMP JUMPDEST PUSH2 0x2241 PUSH1 0x0 PUSH2 0x3B75 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x226E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4E09 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x22D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x22F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SSTORE JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2336 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x235B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23ED JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x244D JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x78 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 SUB PUSH2 0x24BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x12 SLOAD LT ISZERO PUSH2 0x24E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2530 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2554 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x13 SLOAD DUP2 LT ISZERO PUSH2 0x2579 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x78 DUP2 PUSH1 0xFF AND GT PUSH2 0x2608 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x25B6 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x2608 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x25E2 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x257D JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x2627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3DE829 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26BF CALLER PUSH1 0x15 DUP1 SLOAD PUSH2 0x2638 SWAP1 PUSH2 0x4CBF 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 0x2664 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2686 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x26B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2694 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x78 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x13 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x273D SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x13 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2752 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F27A03F PUSH1 0xE2 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFC9E80FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27C6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x27E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE07C7C8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 SWAP1 CALLER SWAP1 PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x285D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x15 PUSH2 0x2869 DUP4 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x16 PUSH2 0x2876 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0x2885 SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH1 0x40 MLOAD PUSH2 0x289B SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0xABFD337AC5625B7DC2DDD3D3BD465FB1DEC15322EEEED81032268B337880BEC6 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x28F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SUB PUSH2 0x2920 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BF5 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x294D JUMPI PUSH2 0x294D PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2962 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x299C JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x29BE JUMPI PUSH2 0x29BE PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x29D3 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x29FA DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x1C PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x2A4C JUMPI PUSH2 0x2A4C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2A61 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x2A88 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x18 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2BE3 JUMPI PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP8 DUP8 DUP7 DUP2 DUP2 LT PUSH2 0x2ADD JUMPI PUSH2 0x2ADD PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2AF2 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B62 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 SWAP1 DUP3 DUP9 DUP9 DUP8 DUP2 DUP2 LT PUSH2 0x2B8B JUMPI PUSH2 0x2B8B PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2BA0 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND GT SWAP1 POP DUP2 ISZERO DUP1 PUSH2 0x2BC4 JUMPI POP DUP1 JUMPDEST PUSH2 0x2BE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST DUP1 PUSH2 0x2BED DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2923 JUMP JUMPDEST POP DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2C06 SWAP3 SWAP2 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 CALLER SWAP1 PUSH32 0x368EB521419FE880268B0D75C05EAA2DA7AE9CCF468BE86A848F7054366D2B9B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0xF3F CALLER DUP4 DUP4 PUSH2 0x3BC7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2C84 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xF3F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2CC7 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x2CEB SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2C87 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D1E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D46 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D6E JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO DUP1 PUSH2 0x2DC9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO JUMPDEST ISZERO PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2E1C DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2E6B DUP4 PUSH2 0x4C87 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2EBA DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2F09 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x52819375A02768CB5083D7B729260C6DB2309FCB5C9161201ADA89D30D00D524 DUP8 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F76 SWAP3 SWAP2 SWAP1 PUSH1 0xFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F91 DUP5 DUP5 DUP5 PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x19CB DUP5 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2FCD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x3031 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3107 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30B7 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x30E8 JUMPI POP DUP1 JUMPDEST PUSH2 0x3104 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x3133 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 PUSH1 0x17 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2F PUSH1 0xF8 SHL DUP2 MSTORE POP DUP4 PUSH1 0xFF AND PUSH20 0x0 PUSH4 0x6900A3AE SWAP1 SWAP2 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31A8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x31C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31ED SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x173539B7B7 PUSH1 0xD9 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x321E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x505A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xF3F CALLER DUP3 DUP5 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAC3 DUP3 PUSH2 0x3D80 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x327A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x32A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5A78287A942B8EA0DA8734A4EB919DF11E564CC48301FFCB582DC8612D98208F SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 PUSH1 0x64 SWAP2 PUSH2 0x330B SWAP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5109 JUMP JUMPDEST PUSH2 0x3315 SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x334A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x338D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x33B5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x342B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x349B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3B9DB689 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x773B6D12 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x34EA PUSH2 0x3B48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3514 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x351D DUP2 PUSH2 0x3B75 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x3550 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0xAC3 JUMPI POP PUSH2 0xAC3 DUP3 PUSH2 0x3E91 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0xAC3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD3E6A7AD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 AND SWAP1 PUSH4 0xD3E6A7AD SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3620 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3644 SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP4 MLOAD LT PUSH2 0x368D JUMPI PUSH1 0x40 MLOAD PUSH4 0x9DCCA733 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3759 JUMPI PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x36DA SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x36F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x371B SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x3757 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8BAA579F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x37CE SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x37DB SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x37EC SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x399A JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3810 JUMPI PUSH2 0x3810 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 SUB PUSH2 0x3875 JUMPI PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB8 LT ISZERO PUSH2 0x3870 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38C7 JUMP JUMPDEST PUSH2 0x1388 PUSH1 0x1A PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x388E JUMPI PUSH2 0x388E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x38C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x38DD JUMPI PUSH2 0x38DD PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3907 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 MLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x393B JUMPI PUSH2 0x393B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3974 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37F5 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x39AA SWAP2 SWAP1 PUSH2 0x5120 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xBABE8F5E83E93AB103DDF917B4292A19335A5128B3530BEDD896A681CDD945E3 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x3A26 DUP6 DUP3 PUSH2 0x3FE7 JUMP JUMPDEST PUSH2 0x3A30 DUP2 DUP6 PUSH2 0x4001 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x10 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3A43 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x3A7C JUMPI PUSH2 0x3A7C DUP2 DUP5 DUP7 PUSH2 0x4051 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3ABA JUMPI PUSH2 0x3A99 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x3AE9 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2241 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3BF9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x3CA0 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x5159 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x3CDB JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x3CD8 SWAP2 DUP2 ADD SWAP1 PUSH2 0x5196 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x3D44 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x3D09 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3D3C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xFE2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D8B DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x3DA5 SWAP1 PUSH2 0x4CBF 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 0x3DD1 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3E1E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DF3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3E1E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3E01 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x3E3C PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3E4E JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x3E80 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3E68 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3E89 DUP5 PUSH2 0x40B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3EC2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xAC3 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xAC3 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x3EF5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x3FB7 JUMPI PUSH1 0x0 PUSH2 0x3F05 DUP5 PUSH2 0x358F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3F31 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3F44 JUMPI POP PUSH2 0x3F42 DUP2 DUP5 PUSH2 0x343D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x3F6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3FB5 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x412A JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x4019 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x405C DUP4 DUP4 DUP4 PUSH2 0x4141 JUMP JUMPDEST PUSH2 0x1FA8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x408A JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x40C0 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x40D8 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x40F8 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x4123 JUMP JUMPDEST DUP1 PUSH2 0x4102 DUP5 PUSH2 0x41A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4113 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x4134 DUP4 DUP4 PUSH2 0x4236 JUMP JUMPDEST PUSH2 0x1FA8 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3E89 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x417B JUMPI POP PUSH2 0x417B DUP5 DUP5 PUSH2 0x343D JUMP JUMPDEST DUP1 PUSH2 0x3E89 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x41B1 DUP4 PUSH2 0x429B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41D0 JUMPI PUSH2 0x41D0 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x4204 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4260 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426E DUP4 DUP4 PUSH1 0x0 PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x42DA JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x4306 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x4324 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x433C JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4350 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4362 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAC3 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x439B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x440B JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x43EC JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4429 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x43D8 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH2 0x443C DUP3 DUP8 PUSH2 0x43D8 JUMP JUMPDEST DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE DUP3 DUP8 ADD SWAP4 POP SWAP1 DUP3 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4473 JUMPI DUP5 MLOAD ISZERO ISZERO DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4455 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x449C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4484 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x44BD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4123 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x451B DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4567 JUMPI PUSH2 0x4567 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4588 JUMPI PUSH2 0x4588 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x45A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x45CE PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST PUSH2 0x453F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x45ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI PUSH2 0x4602 DUP2 PUSH2 0x4592 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x45F1 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x464E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x465A DUP9 DUP4 DUP10 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x46A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x46C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x46D2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x46E0 PUSH1 0x20 DUP5 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x470A PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x474C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x475A DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x45A8 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x472D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x477A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x47CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47D4 DUP7 PUSH2 0x4592 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP1 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x47F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4813 PUSH2 0x45C9 DUP3 PUSH2 0x456F JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP4 ADD DUP5 ADD SWAP1 DUP5 DUP2 ADD SWAP1 DUP13 DUP4 GT ISZERO PUSH2 0x4832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x4850 JUMPI DUP5 CALLDATALOAD DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x4837 JUMP JUMPDEST SWAP9 POP POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x4868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4874 DUP11 DUP5 DUP12 ADD PUSH2 0x46E9 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x488A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4898 DUP9 DUP3 DUP10 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x48BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x48D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48DE DUP6 DUP3 DUP7 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x48FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x490A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x491A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x493D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP3 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x495B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4966 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4988 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4994 DUP7 DUP3 DUP8 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x49E2 JUMPI PUSH2 0x49E2 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49FE PUSH2 0x45C9 DUP5 PUSH2 0x49C9 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x4A12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4A3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x49F0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4A73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A7F DUP7 DUP4 DUP8 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AA2 DUP6 DUP3 DUP7 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4AC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4ACC DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4AE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4AF3 DUP7 DUP3 DUP8 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4B1E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x499E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4B5A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH2 0x4B68 PUSH1 0x20 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x4B78 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B86 PUSH1 0x60 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4BA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4BB2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x4BC2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x4BF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C04 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x49F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4C2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x4C9D JUMPI PUSH2 0x4C9D PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x4CB8 JUMPI PUSH2 0x4CB8 PUSH2 0x4C71 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x4CD3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x23BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP4 ADD DUP2 SWAP1 MSTORE DUP6 MLOAD SWAP1 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP7 DUP2 ADD SWAP2 PUSH1 0xA0 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4D45 JUMPI DUP5 MLOAD PUSH1 0xFF AND DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4D26 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x60 DUP7 ADD MSTORE DUP6 DUP2 MSTORE DUP6 DUP8 DUP4 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP8 ADD DUP4 ADD MSTORE PUSH1 0x1F SWAP1 SWAP6 ADD PUSH1 0x1F NOT AND SWAP1 SWAP5 ADD SWAP1 SWAP4 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND DUP1 PUSH2 0x4E1C JUMPI PUSH2 0x4E1C PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 NOT ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP3 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4E55 JUMPI PUSH1 0xFF PUSH2 0x4E3F DUP4 PUSH2 0x4592 JUMP JUMPDEST AND DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4E2C JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x5468697320636172642068617320616E206F666665722E000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4EC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x4EF3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x131D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4EFF JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F2B JUMPI PUSH2 0x4F2B PUSH2 0x4529 JUMP JUMPDEST PUSH2 0x4F3F DUP2 PUSH2 0x4F39 DUP5 SLOAD PUSH2 0x4CBF JUMP JUMPDEST DUP5 PUSH2 0x4ECC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F74 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F5C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x131D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FA3 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4F84 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x4FC1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4FE3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4481 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4FFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5015 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x5026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x5034 PUSH2 0x45C9 DUP3 PUSH2 0x49C9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x5049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x110F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 SLOAD PUSH2 0x5068 DUP2 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x5080 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x5095 JUMPI PUSH2 0x50C4 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x50C4 JUMP JUMPDEST DUP11 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x50BB JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x50A2 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP6 MLOAD PUSH2 0x50D8 DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH2 0x4481 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50EB DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH2 0x4481 JUMP JUMPDEST DUP5 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50FE DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x514D JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x512E JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x518C SWAP1 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x51C5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x51D9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xE0 BYTE 0xBF SMOD CALLDATASIZE PUSH5 0x11DE543430 0xD2 0xCE OR 0xBD SWAP14 DUP6 0xBB PUSH29 0x4732A9D9486B45E32B9C4A6764736F6C63430008140033000000000000 ","sourceMap":"1668:18927:20:-:0;;;2051:40;;;-1:-1:-1;;2095:42:20;;;;;2233:5;2204:34;;-1:-1:-1;2253:34:20;;2325:5;2291:39;;2414:4;2375:43;;2598:49;;;-1:-1:-1;;2651:53:20;;;;;4770:875;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4976:10;1381:113:6;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:6;:17;1480:7;1470;:17;:::i;:::-;-1:-1:-1;;;;;;;;1273:26:0;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;4648:51:29;4621:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;5012:10:20::1;4994:17;:29:::0;;;:10:::1;:29;::::0;;;;:36;;-1:-1:-1;;4994:36:20::1;5026:4;4994:36;::::0;;5037:9:::1;:28:::0;;-1:-1:-1;;;;;5037:28:20;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;5037:28:20;;::::1;::::0;;;::::1;::::0;;;5071:18:::1;:61:::0;;;;::::1;-1:-1:-1::0;;;;;;5071:61:20;;::::1;;::::0;;;5138:20:::1;:67:::0;;;;::::1;::::0;;::::1;;::::0;;5211:19:::1;:64:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;5282:9:::1;:20;5294:8:::0;5282:9;:20:::1;:::i;:::-;-1:-1:-1::0;5362:10:20::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5362:10:20::1;::::0;;::::1;::::0;;;;5374:12;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5374:12:20;;::::1;::::0;5388:15;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5388:15:20;;::::1;::::0;5327:77;;::::1;::::0;5350:9:::1;::::0;5362:10;5388:15;;5327:77:::1;;:::i;:::-;;;;;;;;;;;;;5308:9;:97;;;;;;:::i;:::-;-1:-1:-1::0;5477:10:20::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5477:10:20::1;::::0;;::::1;::::0;;;;5489:12;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5489:12:20;;::::1;::::0;5503:15;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5503:15:20;;::::1;::::0;5442:77;;::::1;::::0;5465:9:::1;::::0;5477:10;5503:15;;5442:77:::1;;:::i;:::-;;;;;;;;;;;;;5411:14;:114;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;5531:28:20;::::1;;::::0;;;:19;:28:::1;::::0;;;;:35;;-1:-1:-1;;5531:35:20::1;5562:4;5531:35;::::0;;5573:68:::1;5593:3;5589:1;:7;5573:68;;;5611:19;::::0;;;:16:::1;:19;::::0;;;;5633:1:::1;5611:23:::0;;5628:1;5598:3:::1;5628:1:::0;5598:3:::1;:::i;:::-;;;;5573:68;;;;4770:875:::0;;;;;;1668:18927;;2912:187:0;3004:6;;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:177:29:-;93:13;;-1:-1:-1;;;;;135:31:29;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:29;552:16;;545:27;328:250::o;583:1325::-;708:6;716;724;732;740;748;801:3;789:9;780:7;776:23;772:33;769:53;;;818:1;815;808:12;769:53;841:40;871:9;841:40;:::i;:::-;831:50;;900:49;945:2;934:9;930:18;900:49;:::i;:::-;890:59;;968:49;1013:2;1002:9;998:18;968:49;:::i;:::-;958:59;;1036:49;1081:2;1070:9;1066:18;1036:49;:::i;:::-;1129:3;1114:19;;1108:26;1026:59;;-1:-1:-1;;;;;;1183:14:29;;;1180:34;;;1210:1;1207;1200:12;1180:34;1248:6;1237:9;1233:22;1223:32;;1293:7;1286:4;1282:2;1278:13;1274:27;1264:55;;1315:1;1312;1305:12;1264:55;1344:2;1338:9;1366:2;1362;1359:10;1356:36;;;1372:18;;:::i;:::-;1447:2;1441:9;1415:2;1501:13;;-1:-1:-1;;1497:22:29;;;1521:2;1493:31;1489:40;1477:53;;;1545:18;;;1565:22;;;1542:46;1539:72;;;1591:18;;:::i;:::-;1631:10;1627:2;1620:22;1666:2;1658:6;1651:18;1706:7;1701:2;1696;1692;1688:11;1684:20;1681:33;1678:53;;;1727:1;1724;1717:12;1678:53;1740:68;1805:2;1800;1792:6;1788:15;1783:2;1779;1775:11;1740:68;:::i;:::-;1827:6;1817:16;;;;;;;1852:50;1897:3;1886:9;1882:19;1852:50;:::i;:::-;1842:60;;583:1325;;;;;;;;:::o;1913:380::-;1992:1;1988:12;;;;2035;;;2056:61;;2110:4;2102:6;2098:17;2088:27;;2056:61;2163:2;2155:6;2152:14;2132:18;2129:38;2126:161;;2209:10;2204:3;2200:20;2197:1;2190:31;2244:4;2241:1;2234:15;2272:4;2269:1;2262:15;2126:161;;1913:380;;;:::o;2424:545::-;2526:2;2521:3;2518:11;2515:448;;;2562:1;2587:5;2583:2;2576:17;2632:4;2628:2;2618:19;2702:2;2690:10;2686:19;2683:1;2679:27;2673:4;2669:38;2738:4;2726:10;2723:20;2720:47;;;-1:-1:-1;2761:4:29;2720:47;2816:2;2811:3;2807:12;2804:1;2800:20;2794:4;2790:31;2780:41;;2871:82;2889:2;2882:5;2879:13;2871:82;;;2934:17;;;2915:1;2904:13;2871:82;;;2875:3;;;2515:448;2424:545;;;:::o;3145:1352::-;3265:10;;-1:-1:-1;;;;;3287:30:29;;3284:56;;;3320:18;;:::i;:::-;3349:97;3439:6;3399:38;3431:4;3425:11;3399:38;:::i;:::-;3393:4;3349:97;:::i;:::-;3501:4;;3565:2;3554:14;;3582:1;3577:663;;;;4284:1;4301:6;4298:89;;;-1:-1:-1;4353:19:29;;;4347:26;4298:89;-1:-1:-1;;3102:1:29;3098:11;;;3094:24;3090:29;3080:40;3126:1;3122:11;;;3077:57;4400:81;;3547:944;;3577:663;2371:1;2364:14;;;2408:4;2395:18;;-1:-1:-1;;3613:20:29;;;3731:236;3745:7;3742:1;3739:14;3731:236;;;3834:19;;;3828:26;3813:42;;3926:27;;;;3894:1;3882:14;;;;3761:19;;3731:236;;;3735:3;3995:6;3986:7;3983:19;3980:201;;;4056:19;;;4050:26;-1:-1:-1;;4139:1:29;4135:14;;;4151:3;4131:24;4127:37;4123:42;4108:58;4093:74;;3980:201;-1:-1:-1;;;;;4227:1:29;4211:14;;;4207:22;4194:36;;-1:-1:-1;3145:1352:29:o;4710:1421::-;4978:3;5007:1;5040:6;5034:13;5070:36;5096:9;5070:36;:::i;:::-;5125:1;5142:18;;;5169:133;;;;5316:1;5311:356;;;;5135:532;;5169:133;-1:-1:-1;;5202:24:29;;5190:37;;5275:14;;5268:22;5256:35;;5247:45;;;-1:-1:-1;5169:133:29;;5311:356;5342:6;5339:1;5332:17;5372:4;5417:2;5414:1;5404:16;5442:1;5456:165;5470:6;5467:1;5464:13;5456:165;;;5548:14;;5535:11;;;5528:35;5591:16;;;;5485:10;;5456:165;;;5460:3;;;5650:6;5645:3;5641:16;5634:23;;5135:532;;;;;5698:6;5692:13;5714:68;5773:8;5768:3;5761:4;5753:6;5749:17;5714:68;:::i;:::-;5847:13;;5804:18;;;5869:70;5847:13;5804:18;5916:4;5904:17;;5869:70;:::i;:::-;6003:13;;5958:20;;;6025:67;6003:13;5958:20;6072:4;6060:17;;6025:67;:::i;:::-;6108:17;;4710:1421;-1:-1:-1;;;;;;4710:1421:29:o;6136:232::-;6175:3;6196:17;;;6193:140;;6255:10;6250:3;6246:20;6243:1;6236:31;6290:4;6287:1;6280:15;6318:4;6315:1;6308:15;6193:140;-1:-1:-1;6360:1:29;6349:13;;6136:232::o;:::-;1668:18927:20;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DAI_TOKEN_3774":{"entryPoint":null,"id":3774,"parameterSlots":0,"returnSlots":0},"@_approve_1206":{"entryPoint":13768,"id":1206,"parameterSlots":3,"returnSlots":0},"@_approve_1272":{"entryPoint":16097,"id":1272,"parameterSlots":4,"returnSlots":0},"@_baseURI_599":{"entryPoint":null,"id":599,"parameterSlots":0,"returnSlots":1},"@_checkAuthorized_854":{"entryPoint":16465,"id":854,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_1402":{"entryPoint":15454,"id":1402,"parameterSlots":4,"returnSlots":0},"@_checkOwner_84":{"entryPoint":15176,"id":84,"parameterSlots":0,"returnSlots":0},"@_getApproved_781":{"entryPoint":null,"id":781,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_817":{"entryPoint":16705,"id":817,"parameterSlots":3,"returnSlots":1},"@_mint_1010":{"entryPoint":16950,"id":1010,"parameterSlots":2,"returnSlots":0},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_openPack_4925":{"entryPoint":13781,"id":4925,"parameterSlots":5,"returnSlots":0},"@_ownerOf_768":{"entryPoint":null,"id":768,"parameterSlots":1,"returnSlots":1},"@_requireOwned_1338":{"entryPoint":13711,"id":1338,"parameterSlots":1,"returnSlots":1},"@_safeMint_1025":{"entryPoint":16359,"id":1025,"parameterSlots":2,"returnSlots":0},"@_safeMint_1051":{"entryPoint":16682,"id":1051,"parameterSlots":3,"returnSlots":0},"@_setApprovalForAll_1309":{"entryPoint":15303,"id":1309,"parameterSlots":3,"returnSlots":0},"@_setTokenURI_1692":{"entryPoint":16385,"id":1692,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":15221,"id":146,"parameterSlots":1,"returnSlots":0},"@_update_960":{"entryPoint":14927,"id":960,"parameterSlots":3,"returnSlots":1},"@addOwner_4121":{"entryPoint":8560,"id":4121,"parameterSlots":1,"returnSlots":0},"@addSigner_4149":{"entryPoint":13419,"id":4149,"parameterSlots":1,"returnSlots":0},"@approve_615":{"entryPoint":3892,"id":615,"parameterSlots":2,"returnSlots":0},"@balanceOf_523":{"entryPoint":8679,"id":523,"parameterSlots":1,"returnSlots":1},"@burnCards_5521":{"entryPoint":4901,"id":5521,"parameterSlots":2,"returnSlots":0},"@burn_1566":{"entryPoint":8109,"id":1566,"parameterSlots":1,"returnSlots":0},"@changeMaxPacksToOpenAtOnce_4378":{"entryPoint":6609,"id":4378,"parameterSlots":1,"returnSlots":0},"@changePackPrice_4366":{"entryPoint":13312,"id":4366,"parameterSlots":1,"returnSlots":0},"@changeRequireOfferValidationInMint_4342":{"entryPoint":13600,"id":4342,"parameterSlots":1,"returnSlots":0},"@changeRequireOfferValidationInTransfer_4354":{"entryPoint":8484,"id":4354,"parameterSlots":1,"returnSlots":0},"@changeRequireOpenPackSignerValidation_4330":{"entryPoint":13082,"id":4330,"parameterSlots":1,"returnSlots":0},"@emergencyWithdraw_5703":{"entryPoint":8121,"id":5703,"parameterSlots":1,"returnSlots":0},"@exchangeCardsOffer_4999":{"entryPoint":11507,"id":4999,"parameterSlots":4,"returnSlots":0},"@finishAlbum_5320":{"entryPoint":9342,"id":5320,"parameterSlots":0,"returnSlots":1},"@gammaOffersContract_3757":{"entryPoint":null,"id":3757,"parameterSlots":0,"returnSlots":0},"@gammaPacksContract_3754":{"entryPoint":null,"id":3754,"parameterSlots":0,"returnSlots":0},"@gammaTicketsContract_3760":{"entryPoint":null,"id":3760,"parameterSlots":0,"returnSlots":0},"@getApproved_632":{"entryPoint":3851,"id":632,"parameterSlots":1,"returnSlots":1},"@getBurnedCardQttyByUser_4526":{"entryPoint":9079,"id":4526,"parameterSlots":1,"returnSlots":1},"@getCardQuantityByUser_4511":{"entryPoint":4501,"id":4511,"parameterSlots":2,"returnSlots":1},"@getCardsByUser_4700":{"entryPoint":2761,"id":4700,"parameterSlots":1,"returnSlots":3},"@getLotteryPrize_4492":{"entryPoint":13037,"id":4492,"parameterSlots":0,"returnSlots":1},"@hasCardByOffer_4432":{"entryPoint":9247,"id":4432,"parameterSlots":2,"returnSlots":1},"@hasCard_4453":{"entryPoint":9155,"id":4453,"parameterSlots":2,"returnSlots":1},"@isApprovedForAll_665":{"entryPoint":13373,"id":665,"parameterSlots":2,"returnSlots":1},"@isOwner_4466":{"entryPoint":null,"id":4466,"parameterSlots":1,"returnSlots":1},"@isSigner_4479":{"entryPoint":null,"id":4479,"parameterSlots":1,"returnSlots":1},"@log10_3338":{"entryPoint":17051,"id":3338,"parameterSlots":1,"returnSlots":1},"@mintCard_5613":{"entryPoint":12275,"id":5613,"parameterSlots":1,"returnSlots":0},"@name_545":{"entryPoint":3705,"id":545,"parameterSlots":0,"returnSlots":1},"@openPack_4741":{"entryPoint":6679,"id":4741,"parameterSlots":4,"returnSlots":0},"@openPacks_4793":{"entryPoint":4710,"id":4793,"parameterSlots":5,"returnSlots":0},"@ownerOf_536":{"entryPoint":8473,"id":536,"parameterSlots":1,"returnSlots":1},"@owner_67":{"entryPoint":null,"id":67,"parameterSlots":0,"returnSlots":1},"@removeCardByOffer_4395":{"entryPoint":8771,"id":4395,"parameterSlots":2,"returnSlots":0},"@removeOwner_4135":{"entryPoint":4591,"id":4135,"parameterSlots":1,"returnSlots":0},"@removeSigner_4163":{"entryPoint":3907,"id":4163,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":8751,"id":98,"parameterSlots":0,"returnSlots":0},"@restoreCardByOffer_4412":{"entryPoint":4376,"id":4412,"parameterSlots":2,"returnSlots":0},"@s_baseUri_3794":{"entryPoint":13360,"id":3794,"parameterSlots":0,"returnSlots":0},"@s_burnedCards_3826":{"entryPoint":null,"id":3826,"parameterSlots":0,"returnSlots":0},"@s_cardsByUser_3832":{"entryPoint":null,"id":3832,"parameterSlots":0,"returnSlots":0},"@s_cardsInventory_3822":{"entryPoint":null,"id":3822,"parameterSlots":0,"returnSlots":0},"@s_cards_3818":{"entryPoint":null,"id":3818,"parameterSlots":0,"returnSlots":0},"@s_lotteryPrizePercentage_3772":{"entryPoint":null,"id":3772,"parameterSlots":0,"returnSlots":0},"@s_mainAlbumPrize_3785":{"entryPoint":null,"id":3785,"parameterSlots":0,"returnSlots":0},"@s_mainUri_3790":{"entryPoint":8953,"id":3790,"parameterSlots":0,"returnSlots":0},"@s_maxPacksToOpenAtOnce_3769":{"entryPoint":null,"id":3769,"parameterSlots":0,"returnSlots":0},"@s_packPrice_3779":{"entryPoint":null,"id":3779,"parameterSlots":0,"returnSlots":0},"@s_prizesBalance_3782":{"entryPoint":null,"id":3782,"parameterSlots":0,"returnSlots":0},"@s_requireOfferValidationInMint_3799":{"entryPoint":null,"id":3799,"parameterSlots":0,"returnSlots":0},"@s_requireOfferValidationInTransfer_3802":{"entryPoint":null,"id":3802,"parameterSlots":0,"returnSlots":0},"@s_requireOpenPackSignerValidation_3796":{"entryPoint":null,"id":3796,"parameterSlots":0,"returnSlots":0},"@s_secondaryAlbumPrize_3788":{"entryPoint":null,"id":3788,"parameterSlots":0,"returnSlots":0},"@s_secondaryUri_3792":{"entryPoint":7935,"id":3792,"parameterSlots":0,"returnSlots":0},"@s_tokenIdCounter_3776":{"entryPoint":null,"id":3776,"parameterSlots":0,"returnSlots":0},"@safeMint_5664":{"entryPoint":14828,"id":5664,"parameterSlots":4,"returnSlots":0},"@safeTransferFrom_729":{"entryPoint":8077,"id":729,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_755":{"entryPoint":12166,"id":755,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_648":{"entryPoint":11337,"id":648,"parameterSlots":2,"returnSlots":0},"@setGammaOffersContract_4184":{"entryPoint":4073,"id":4184,"parameterSlots":1,"returnSlots":0},"@setGammaPacksContract_4205":{"entryPoint":12874,"id":4205,"parameterSlots":1,"returnSlots":0},"@setGammaTicketsContract_4226":{"entryPoint":13149,"id":4226,"parameterSlots":1,"returnSlots":0},"@setLotteryPrizePercentage_4295":{"entryPoint":8966,"id":4295,"parameterSlots":1,"returnSlots":0},"@setMainAlbumPrize_4257":{"entryPoint":8867,"id":4257,"parameterSlots":1,"returnSlots":0},"@setPrizesBalance_4238":{"entryPoint":8404,"id":4238,"parameterSlots":1,"returnSlots":0},"@setSecondaryAlbumPrize_4276":{"entryPoint":12189,"id":4276,"parameterSlots":1,"returnSlots":0},"@setUris_4318":{"entryPoint":10285,"id":4318,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1616":{"entryPoint":13674,"id":1616,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2451":{"entryPoint":null,"id":2451,"parameterSlots":1,"returnSlots":1},"@supportsInterface_495":{"entryPoint":16017,"id":495,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5876":{"entryPoint":2744,"id":5876,"parameterSlots":1,"returnSlots":1},"@symbol_554":{"entryPoint":10270,"id":554,"parameterSlots":0,"returnSlots":1},"@testAddCards_5729":{"entryPoint":11348,"id":5729,"parameterSlots":1,"returnSlots":0},"@testOpenPack_5807":{"entryPoint":7287,"id":5807,"parameterSlots":3,"returnSlots":0},"@toString_1819":{"entryPoint":16804,"id":1819,"parameterSlots":1,"returnSlots":1},"@tokenURI_1673":{"entryPoint":15744,"id":1673,"parameterSlots":1,"returnSlots":1},"@tokenURI_5860":{"entryPoint":12863,"id":5860,"parameterSlots":1,"returnSlots":1},"@tokenURI_590":{"entryPoint":16565,"id":590,"parameterSlots":1,"returnSlots":1},"@transferCard_5083":{"entryPoint":6692,"id":5083,"parameterSlots":2,"returnSlots":0},"@transferCards_5190":{"entryPoint":10447,"id":5190,"parameterSlots":3,"returnSlots":0},"@transferFrom_711":{"entryPoint":6465,"id":711,"parameterSlots":3,"returnSlots":0},"@transferOwnership_126":{"entryPoint":13538,"id":126,"parameterSlots":1,"returnSlots":0},"@verifyPackSigner_4722":{"entryPoint":4236,"id":4722,"parameterSlots":4,"returnSlots":1},"abi_decode_array_array_uint8_dyn_dyn":{"entryPoint":18153,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_bytes_calldata_dyn_calldata":{"entryPoint":18280,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_array_uint8_dyn":{"entryPoint":17832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_string":{"entryPoint":18928,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_string":{"entryPoint":18985,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":17339,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":19834,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":19472,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":18666,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":19345,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_array$_t_uint8_$dyn_calldata_ptr":{"entryPoint":19116,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bool":{"entryPoint":19200,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":17661,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptr":{"entryPoint":18758,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint8":{"entryPoint":18100,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint8t_addresst_uint8":{"entryPoint":19257,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_uint8_$dyn_calldata_ptr":{"entryPoint":18601,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":18860,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":19540,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":17289,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":20886,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":20461,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr":{"entryPoint":19017,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":17636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":19952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr":{"entryPoint":17946,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint8":{"entryPoint":18731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8t_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":18355,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":17810,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_uint8_dyn":{"entryPoint":17368,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":17573,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_calldata_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20006,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20768,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20570,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20433,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20915,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20825,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_library_reversed":{"entryPoint":19699,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":17430,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaOffersContract_$3734__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaPacksContract_$3694__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaTicketsContract_$3740__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17617,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20083,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__to_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8_t_uint8__to_t_uint8_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":19863,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":17727,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_uint8_dyn":{"entryPoint":17775,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_string":{"entryPoint":18889,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":19933,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":20138,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":20745,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":20064,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":20172,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":20242,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":17537,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint8":{"entryPoint":19977,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":19647,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":19622,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint8":{"entryPoint":19591,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":19569,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":19518,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":17705,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":17318,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":18846,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":17267,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:30879:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:29","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:29"},"nodeType":"YulFunctionCall","src":"125:12:29"},"nodeType":"YulExpressionStatement","src":"125:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:29","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:29"},"nodeType":"YulFunctionCall","src":"99:20:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:29"},"nodeType":"YulFunctionCall","src":"88:32:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:29"},"nodeType":"YulFunctionCall","src":"78:43:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:29"},"nodeType":"YulFunctionCall","src":"71:51:29"},"nodeType":"YulIf","src":"68:71:29"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:29","type":""}],"src":"14:131:29"},{"body":{"nodeType":"YulBlock","src":"219:176:29","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:29"},"nodeType":"YulFunctionCall","src":"267:12:29"},"nodeType":"YulExpressionStatement","src":"267:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:29"},"nodeType":"YulFunctionCall","src":"236:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:29"},"nodeType":"YulFunctionCall","src":"232:32:29"},"nodeType":"YulIf","src":"229:52:29"},{"nodeType":"YulVariableDeclaration","src":"290:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:29"},"nodeType":"YulFunctionCall","src":"303:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:29"},"nodeType":"YulFunctionCall","src":"335:30:29"},"nodeType":"YulExpressionStatement","src":"335:30:29"},{"nodeType":"YulAssignment","src":"374:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:29","type":""}],"src":"150:245:29"},{"body":{"nodeType":"YulBlock","src":"495:92:29","statements":[{"nodeType":"YulAssignment","src":"505:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:29"},"nodeType":"YulFunctionCall","src":"513:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:29"},"nodeType":"YulFunctionCall","src":"565:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:29"},"nodeType":"YulFunctionCall","src":"558:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:29"},"nodeType":"YulFunctionCall","src":"540:41:29"},"nodeType":"YulExpressionStatement","src":"540:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:29","type":""}],"src":"400:187:29"},{"body":{"nodeType":"YulBlock","src":"637:86:29","statements":[{"body":{"nodeType":"YulBlock","src":"701:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"710:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"703:6:29"},"nodeType":"YulFunctionCall","src":"703:12:29"},"nodeType":"YulExpressionStatement","src":"703:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"660:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"671:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"686:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"682:3:29"},"nodeType":"YulFunctionCall","src":"682:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"695:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"678:3:29"},"nodeType":"YulFunctionCall","src":"678:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"667:3:29"},"nodeType":"YulFunctionCall","src":"667:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"657:2:29"},"nodeType":"YulFunctionCall","src":"657:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"650:6:29"},"nodeType":"YulFunctionCall","src":"650:50:29"},"nodeType":"YulIf","src":"647:70:29"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"626:5:29","type":""}],"src":"592:131:29"},{"body":{"nodeType":"YulBlock","src":"798:177:29","statements":[{"body":{"nodeType":"YulBlock","src":"844:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"853:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"856:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"846:6:29"},"nodeType":"YulFunctionCall","src":"846:12:29"},"nodeType":"YulExpressionStatement","src":"846:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"819:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"828:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"815:3:29"},"nodeType":"YulFunctionCall","src":"815:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"840:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"811:3:29"},"nodeType":"YulFunctionCall","src":"811:32:29"},"nodeType":"YulIf","src":"808:52:29"},{"nodeType":"YulVariableDeclaration","src":"869:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"895:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"882:12:29"},"nodeType":"YulFunctionCall","src":"882:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"873:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"939:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"914:24:29"},"nodeType":"YulFunctionCall","src":"914:31:29"},"nodeType":"YulExpressionStatement","src":"914:31:29"},{"nodeType":"YulAssignment","src":"954:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"964:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"954:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"764:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"775:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"787:6:29","type":""}],"src":"728:247:29"},{"body":{"nodeType":"YulBlock","src":"1039:385:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1049:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1069:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1063:5:29"},"nodeType":"YulFunctionCall","src":"1063:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1053:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1091:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"1096:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1084:6:29"},"nodeType":"YulFunctionCall","src":"1084:19:29"},"nodeType":"YulExpressionStatement","src":"1084:19:29"},{"nodeType":"YulVariableDeclaration","src":"1112:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1122:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1116:2:29","type":""}]},{"nodeType":"YulAssignment","src":"1135:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1146:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1151:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1142:3:29"},"nodeType":"YulFunctionCall","src":"1142:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"1135:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"1163:28:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1181:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1188:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:29"},"nodeType":"YulFunctionCall","src":"1177:14:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"1167:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1200:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1209:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1204:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1268:131:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1289:3:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"1304:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1298:5:29"},"nodeType":"YulFunctionCall","src":"1298:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"1313:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1294:3:29"},"nodeType":"YulFunctionCall","src":"1294:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1282:6:29"},"nodeType":"YulFunctionCall","src":"1282:37:29"},"nodeType":"YulExpressionStatement","src":"1282:37:29"},{"nodeType":"YulAssignment","src":"1332:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1343:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1348:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1339:3:29"},"nodeType":"YulFunctionCall","src":"1339:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"1332:3:29"}]},{"nodeType":"YulAssignment","src":"1364:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"1378:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1386:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1374:3:29"},"nodeType":"YulFunctionCall","src":"1374:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"1364:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1230:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"1233:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1227:2:29"},"nodeType":"YulFunctionCall","src":"1227:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1241:18:29","statements":[{"nodeType":"YulAssignment","src":"1243:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1252:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"1255:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1248:3:29"},"nodeType":"YulFunctionCall","src":"1248:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1243:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1223:3:29","statements":[]},"src":"1219:180:29"},{"nodeType":"YulAssignment","src":"1408:10:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"1415:3:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1408:3:29"}]}]},"name":"abi_encode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1016:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1023:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1031:3:29","type":""}],"src":"980:444:29"},{"body":{"nodeType":"YulBlock","src":"1722:713:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1739:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1750:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1732:6:29"},"nodeType":"YulFunctionCall","src":"1732:21:29"},"nodeType":"YulExpressionStatement","src":"1732:21:29"},{"nodeType":"YulVariableDeclaration","src":"1762:68:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1803:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1815:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1826:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:29"},"nodeType":"YulFunctionCall","src":"1811:18:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"1776:26:29"},"nodeType":"YulFunctionCall","src":"1776:54:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"1766:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1839:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1849:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1843:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1871:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1882:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1867:3:29"},"nodeType":"YulFunctionCall","src":"1867:18:29"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"1891:6:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1899:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1887:3:29"},"nodeType":"YulFunctionCall","src":"1887:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1860:6:29"},"nodeType":"YulFunctionCall","src":"1860:50:29"},"nodeType":"YulExpressionStatement","src":"1860:50:29"},{"nodeType":"YulVariableDeclaration","src":"1919:56:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1960:6:29"},{"name":"tail_1","nodeType":"YulIdentifier","src":"1968:6:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"1933:26:29"},"nodeType":"YulFunctionCall","src":"1933:42:29"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"1923:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1995:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2006:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1991:3:29"},"nodeType":"YulFunctionCall","src":"1991:18:29"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"2015:6:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2011:3:29"},"nodeType":"YulFunctionCall","src":"2011:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1984:6:29"},"nodeType":"YulFunctionCall","src":"1984:50:29"},"nodeType":"YulExpressionStatement","src":"1984:50:29"},{"nodeType":"YulVariableDeclaration","src":"2043:17:29","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"2054:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"2047:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2069:27:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2089:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2083:5:29"},"nodeType":"YulFunctionCall","src":"2083:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2073:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"2112:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"2120:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2105:6:29"},"nodeType":"YulFunctionCall","src":"2105:22:29"},"nodeType":"YulExpressionStatement","src":"2105:22:29"},{"nodeType":"YulAssignment","src":"2136:22:29","value":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"2147:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2155:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2143:3:29"},"nodeType":"YulFunctionCall","src":"2143:15:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2136:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"2167:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2185:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2193:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2181:3:29"},"nodeType":"YulFunctionCall","src":"2181:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"2171:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2205:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2214:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2209:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2273:136:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2294:3:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2319:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2313:5:29"},"nodeType":"YulFunctionCall","src":"2313:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2306:6:29"},"nodeType":"YulFunctionCall","src":"2306:21:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2299:6:29"},"nodeType":"YulFunctionCall","src":"2299:29:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2287:6:29"},"nodeType":"YulFunctionCall","src":"2287:42:29"},"nodeType":"YulExpressionStatement","src":"2287:42:29"},{"nodeType":"YulAssignment","src":"2342:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2353:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2358:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2349:3:29"},"nodeType":"YulFunctionCall","src":"2349:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2342:3:29"}]},{"nodeType":"YulAssignment","src":"2374:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2388:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2396:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2384:3:29"},"nodeType":"YulFunctionCall","src":"2384:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2374:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2235:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"2238:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2232:2:29"},"nodeType":"YulFunctionCall","src":"2232:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2246:18:29","statements":[{"nodeType":"YulAssignment","src":"2248:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2257:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"2260:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2253:3:29"},"nodeType":"YulFunctionCall","src":"2253:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2248:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2228:3:29","statements":[]},"src":"2224:185:29"},{"nodeType":"YulAssignment","src":"2418:11:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"2426:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2418:4:29"}]}]},"name":"abi_encode_tuple_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1675:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1686:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1694:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1702:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1713:4:29","type":""}],"src":"1429:1006:29"},{"body":{"nodeType":"YulBlock","src":"2506:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2516:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2525:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2520:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2585:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2610:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"2615:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2606:3:29"},"nodeType":"YulFunctionCall","src":"2606:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2629:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"2634:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2625:3:29"},"nodeType":"YulFunctionCall","src":"2625:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2619:5:29"},"nodeType":"YulFunctionCall","src":"2619:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2599:6:29"},"nodeType":"YulFunctionCall","src":"2599:39:29"},"nodeType":"YulExpressionStatement","src":"2599:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2546:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"2549:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2543:2:29"},"nodeType":"YulFunctionCall","src":"2543:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2557:19:29","statements":[{"nodeType":"YulAssignment","src":"2559:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2568:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"2571:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2564:3:29"},"nodeType":"YulFunctionCall","src":"2564:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2559:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2539:3:29","statements":[]},"src":"2535:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2668:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"2673:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2664:3:29"},"nodeType":"YulFunctionCall","src":"2664:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"2682:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2657:6:29"},"nodeType":"YulFunctionCall","src":"2657:27:29"},"nodeType":"YulExpressionStatement","src":"2657:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2484:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"2489:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"2494:6:29","type":""}],"src":"2440:250:29"},{"body":{"nodeType":"YulBlock","src":"2745:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2755:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2775:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2769:5:29"},"nodeType":"YulFunctionCall","src":"2769:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2759:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2797:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"2802:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2790:6:29"},"nodeType":"YulFunctionCall","src":"2790:19:29"},"nodeType":"YulExpressionStatement","src":"2790:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2857:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2864:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2853:3:29"},"nodeType":"YulFunctionCall","src":"2853:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2875:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2880:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2871:3:29"},"nodeType":"YulFunctionCall","src":"2871:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"2887:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"2818:34:29"},"nodeType":"YulFunctionCall","src":"2818:76:29"},"nodeType":"YulExpressionStatement","src":"2818:76:29"},{"nodeType":"YulAssignment","src":"2903:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2918:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2931:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2939:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2927:3:29"},"nodeType":"YulFunctionCall","src":"2927:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2948:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2944:3:29"},"nodeType":"YulFunctionCall","src":"2944:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2923:3:29"},"nodeType":"YulFunctionCall","src":"2923:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2914:3:29"},"nodeType":"YulFunctionCall","src":"2914:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"2955:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2910:3:29"},"nodeType":"YulFunctionCall","src":"2910:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2903:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2722:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2729:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2737:3:29","type":""}],"src":"2695:271:29"},{"body":{"nodeType":"YulBlock","src":"3092:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3109:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3120:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3102:6:29"},"nodeType":"YulFunctionCall","src":"3102:21:29"},"nodeType":"YulExpressionStatement","src":"3102:21:29"},{"nodeType":"YulAssignment","src":"3132:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3158:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3170:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3181:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3166:3:29"},"nodeType":"YulFunctionCall","src":"3166:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"3140:17:29"},"nodeType":"YulFunctionCall","src":"3140:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3132:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3061:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3072:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3083:4:29","type":""}],"src":"2971:220:29"},{"body":{"nodeType":"YulBlock","src":"3297:76:29","statements":[{"nodeType":"YulAssignment","src":"3307:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3319:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3330:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3315:3:29"},"nodeType":"YulFunctionCall","src":"3315:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3307:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3349:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3360:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3342:6:29"},"nodeType":"YulFunctionCall","src":"3342:25:29"},"nodeType":"YulExpressionStatement","src":"3342:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3266:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3277:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3288:4:29","type":""}],"src":"3196:177:29"},{"body":{"nodeType":"YulBlock","src":"3448:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3494:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3503:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3506:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3496:6:29"},"nodeType":"YulFunctionCall","src":"3496:12:29"},"nodeType":"YulExpressionStatement","src":"3496:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3469:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3465:3:29"},"nodeType":"YulFunctionCall","src":"3465:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3490:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3461:3:29"},"nodeType":"YulFunctionCall","src":"3461:32:29"},"nodeType":"YulIf","src":"3458:52:29"},{"nodeType":"YulAssignment","src":"3519:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3529:12:29"},"nodeType":"YulFunctionCall","src":"3529:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3519:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3414:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3425:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3437:6:29","type":""}],"src":"3378:180:29"},{"body":{"nodeType":"YulBlock","src":"3664:102:29","statements":[{"nodeType":"YulAssignment","src":"3674:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3686:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3697:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3682:3:29"},"nodeType":"YulFunctionCall","src":"3682:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3674:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3716:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3731:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3747:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3752:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3743:3:29"},"nodeType":"YulFunctionCall","src":"3743:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"3756:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3739:3:29"},"nodeType":"YulFunctionCall","src":"3739:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3727:3:29"},"nodeType":"YulFunctionCall","src":"3727:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3709:6:29"},"nodeType":"YulFunctionCall","src":"3709:51:29"},"nodeType":"YulExpressionStatement","src":"3709:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3633:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3644:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3655:4:29","type":""}],"src":"3563:203:29"},{"body":{"nodeType":"YulBlock","src":"3858:228:29","statements":[{"body":{"nodeType":"YulBlock","src":"3904:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3913:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3916:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3906:6:29"},"nodeType":"YulFunctionCall","src":"3906:12:29"},"nodeType":"YulExpressionStatement","src":"3906:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3879:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3888:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3875:3:29"},"nodeType":"YulFunctionCall","src":"3875:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3900:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3871:3:29"},"nodeType":"YulFunctionCall","src":"3871:32:29"},"nodeType":"YulIf","src":"3868:52:29"},{"nodeType":"YulVariableDeclaration","src":"3929:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3955:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3942:12:29"},"nodeType":"YulFunctionCall","src":"3942:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3933:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3999:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3974:24:29"},"nodeType":"YulFunctionCall","src":"3974:31:29"},"nodeType":"YulExpressionStatement","src":"3974:31:29"},{"nodeType":"YulAssignment","src":"4014:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"4024:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4014:6:29"}]},{"nodeType":"YulAssignment","src":"4038:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4065:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4076:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4061:3:29"},"nodeType":"YulFunctionCall","src":"4061:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4048:12:29"},"nodeType":"YulFunctionCall","src":"4048:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4038:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3816:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3827:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3839:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3847:6:29","type":""}],"src":"3771:315:29"},{"body":{"nodeType":"YulBlock","src":"4123:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4140:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4147:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4152:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4143:3:29"},"nodeType":"YulFunctionCall","src":"4143:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4133:6:29"},"nodeType":"YulFunctionCall","src":"4133:31:29"},"nodeType":"YulExpressionStatement","src":"4133:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4180:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4183:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4173:6:29"},"nodeType":"YulFunctionCall","src":"4173:15:29"},"nodeType":"YulExpressionStatement","src":"4173:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4204:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4207:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4197:6:29"},"nodeType":"YulFunctionCall","src":"4197:15:29"},"nodeType":"YulExpressionStatement","src":"4197:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4091:127:29"},{"body":{"nodeType":"YulBlock","src":"4268:230:29","statements":[{"nodeType":"YulAssignment","src":"4278:19:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4294:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4288:5:29"},"nodeType":"YulFunctionCall","src":"4288:9:29"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4278:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4306:58:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4328:6:29"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"4344:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4340:3:29"},"nodeType":"YulFunctionCall","src":"4340:13:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4359:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4355:3:29"},"nodeType":"YulFunctionCall","src":"4355:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4336:3:29"},"nodeType":"YulFunctionCall","src":"4336:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4324:3:29"},"nodeType":"YulFunctionCall","src":"4324:40:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4310:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4439:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4441:16:29"},"nodeType":"YulFunctionCall","src":"4441:18:29"},"nodeType":"YulExpressionStatement","src":"4441:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4382:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"4394:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4379:2:29"},"nodeType":"YulFunctionCall","src":"4379:34:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4418:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4430:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4415:2:29"},"nodeType":"YulFunctionCall","src":"4415:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4376:2:29"},"nodeType":"YulFunctionCall","src":"4376:62:29"},"nodeType":"YulIf","src":"4373:88:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4477:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4481:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4470:6:29"},"nodeType":"YulFunctionCall","src":"4470:22:29"},"nodeType":"YulExpressionStatement","src":"4470:22:29"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"4248:4:29","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4257:6:29","type":""}],"src":"4223:275:29"},{"body":{"nodeType":"YulBlock","src":"4570:114:29","statements":[{"body":{"nodeType":"YulBlock","src":"4614:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4616:16:29"},"nodeType":"YulFunctionCall","src":"4616:18:29"},"nodeType":"YulExpressionStatement","src":"4616:18:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4586:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4594:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4583:2:29"},"nodeType":"YulFunctionCall","src":"4583:30:29"},"nodeType":"YulIf","src":"4580:56:29"},{"nodeType":"YulAssignment","src":"4645:33:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4661:1:29","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"4664:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4657:3:29"},"nodeType":"YulFunctionCall","src":"4657:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"4673:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4653:3:29"},"nodeType":"YulFunctionCall","src":"4653:25:29"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4645:4:29"}]}]},"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4550:6:29","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4561:4:29","type":""}],"src":"4503:181:29"},{"body":{"nodeType":"YulBlock","src":"4736:109:29","statements":[{"nodeType":"YulAssignment","src":"4746:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4768:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4755:12:29"},"nodeType":"YulFunctionCall","src":"4755:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4746:5:29"}]},{"body":{"nodeType":"YulBlock","src":"4823:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4832:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4835:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4825:6:29"},"nodeType":"YulFunctionCall","src":"4825:12:29"},"nodeType":"YulExpressionStatement","src":"4825:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4797:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4808:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"4815:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4804:3:29"},"nodeType":"YulFunctionCall","src":"4804:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4794:2:29"},"nodeType":"YulFunctionCall","src":"4794:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4787:6:29"},"nodeType":"YulFunctionCall","src":"4787:35:29"},"nodeType":"YulIf","src":"4784:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4715:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4726:5:29","type":""}],"src":"4689:156:29"},{"body":{"nodeType":"YulBlock","src":"4912:600:29","statements":[{"body":{"nodeType":"YulBlock","src":"4961:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4970:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4973:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4963:6:29"},"nodeType":"YulFunctionCall","src":"4963:12:29"},"nodeType":"YulExpressionStatement","src":"4963:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4940:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4948:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4936:3:29"},"nodeType":"YulFunctionCall","src":"4936:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"4955:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4932:3:29"},"nodeType":"YulFunctionCall","src":"4932:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4925:6:29"},"nodeType":"YulFunctionCall","src":"4925:35:29"},"nodeType":"YulIf","src":"4922:55:29"},{"nodeType":"YulVariableDeclaration","src":"4986:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5009:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4996:12:29"},"nodeType":"YulFunctionCall","src":"4996:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4990:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5025:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5035:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5029:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5048:69:29","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5113:2:29"}],"functionName":{"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulIdentifier","src":"5075:37:29"},"nodeType":"YulFunctionCall","src":"5075:41:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5059:15:29"},"nodeType":"YulFunctionCall","src":"5059:58:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"5052:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5126:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"5139:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"5130:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5158:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5163:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5151:6:29"},"nodeType":"YulFunctionCall","src":"5151:15:29"},"nodeType":"YulExpressionStatement","src":"5151:15:29"},{"nodeType":"YulAssignment","src":"5175:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5186:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5191:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5182:3:29"},"nodeType":"YulFunctionCall","src":"5182:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5175:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"5203:46:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5225:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5237:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"5240:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5233:3:29"},"nodeType":"YulFunctionCall","src":"5233:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5221:3:29"},"nodeType":"YulFunctionCall","src":"5221:23:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5246:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:29"},"nodeType":"YulFunctionCall","src":"5217:32:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"5207:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5277:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5286:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5289:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5279:6:29"},"nodeType":"YulFunctionCall","src":"5279:12:29"},"nodeType":"YulExpressionStatement","src":"5279:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"5264:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"5272:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5261:2:29"},"nodeType":"YulFunctionCall","src":"5261:15:29"},"nodeType":"YulIf","src":"5258:35:29"},{"nodeType":"YulVariableDeclaration","src":"5302:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5317:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5325:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5313:3:29"},"nodeType":"YulFunctionCall","src":"5313:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"5306:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5393:90:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5414:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5436:3:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"5419:16:29"},"nodeType":"YulFunctionCall","src":"5419:21:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5407:6:29"},"nodeType":"YulFunctionCall","src":"5407:34:29"},"nodeType":"YulExpressionStatement","src":"5407:34:29"},{"nodeType":"YulAssignment","src":"5454:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5465:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5470:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5461:3:29"},"nodeType":"YulFunctionCall","src":"5461:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5454:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5348:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"5353:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5345:2:29"},"nodeType":"YulFunctionCall","src":"5345:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5361:23:29","statements":[{"nodeType":"YulAssignment","src":"5363:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5374:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5379:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5370:3:29"},"nodeType":"YulFunctionCall","src":"5370:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"5363:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"5341:3:29","statements":[]},"src":"5337:146:29"},{"nodeType":"YulAssignment","src":"5492:14:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"5501:5:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"5492:5:29"}]}]},"name":"abi_decode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4886:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"4894:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4902:5:29","type":""}],"src":"4850:662:29"},{"body":{"nodeType":"YulBlock","src":"5663:735:29","statements":[{"body":{"nodeType":"YulBlock","src":"5709:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5718:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5721:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5711:6:29"},"nodeType":"YulFunctionCall","src":"5711:12:29"},"nodeType":"YulExpressionStatement","src":"5711:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5684:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5693:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5680:3:29"},"nodeType":"YulFunctionCall","src":"5680:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5705:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5676:3:29"},"nodeType":"YulFunctionCall","src":"5676:32:29"},"nodeType":"YulIf","src":"5673:52:29"},{"nodeType":"YulAssignment","src":"5734:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5757:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5744:12:29"},"nodeType":"YulFunctionCall","src":"5744:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5734:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"5776:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5807:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5818:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5803:3:29"},"nodeType":"YulFunctionCall","src":"5803:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5790:12:29"},"nodeType":"YulFunctionCall","src":"5790:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5780:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5831:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5841:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5835:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5886:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5895:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5898:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5888:6:29"},"nodeType":"YulFunctionCall","src":"5888:12:29"},"nodeType":"YulExpressionStatement","src":"5888:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5874:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5882:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5871:2:29"},"nodeType":"YulFunctionCall","src":"5871:14:29"},"nodeType":"YulIf","src":"5868:34:29"},{"nodeType":"YulAssignment","src":"5911:69:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5952:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"5963:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5948:3:29"},"nodeType":"YulFunctionCall","src":"5948:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5972:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"5921:26:29"},"nodeType":"YulFunctionCall","src":"5921:59:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5911:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"5989:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6022:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6033:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6018:3:29"},"nodeType":"YulFunctionCall","src":"6018:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6005:12:29"},"nodeType":"YulFunctionCall","src":"6005:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5993:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6066:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6075:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6078:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6068:6:29"},"nodeType":"YulFunctionCall","src":"6068:12:29"},"nodeType":"YulExpressionStatement","src":"6068:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6052:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6062:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6049:2:29"},"nodeType":"YulFunctionCall","src":"6049:16:29"},"nodeType":"YulIf","src":"6046:36:29"},{"nodeType":"YulVariableDeclaration","src":"6091:34:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6105:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6116:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6101:3:29"},"nodeType":"YulFunctionCall","src":"6101:24:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6095:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6173:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6182:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6185:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6175:6:29"},"nodeType":"YulFunctionCall","src":"6175:12:29"},"nodeType":"YulExpressionStatement","src":"6175:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6152:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"6156:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6148:3:29"},"nodeType":"YulFunctionCall","src":"6148:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6163:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6144:3:29"},"nodeType":"YulFunctionCall","src":"6144:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6137:6:29"},"nodeType":"YulFunctionCall","src":"6137:35:29"},"nodeType":"YulIf","src":"6134:55:29"},{"nodeType":"YulVariableDeclaration","src":"6198:30:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6225:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6212:12:29"},"nodeType":"YulFunctionCall","src":"6212:16:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6202:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6255:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6264:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6267:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6257:6:29"},"nodeType":"YulFunctionCall","src":"6257:12:29"},"nodeType":"YulExpressionStatement","src":"6257:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6243:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6251:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6240:2:29"},"nodeType":"YulFunctionCall","src":"6240:14:29"},"nodeType":"YulIf","src":"6237:34:29"},{"body":{"nodeType":"YulBlock","src":"6321:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6330:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6333:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6323:6:29"},"nodeType":"YulFunctionCall","src":"6323:12:29"},"nodeType":"YulExpressionStatement","src":"6323:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6294:2:29"},{"name":"length","nodeType":"YulIdentifier","src":"6298:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6290:3:29"},"nodeType":"YulFunctionCall","src":"6290:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"6307:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6286:3:29"},"nodeType":"YulFunctionCall","src":"6286:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6312:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6283:2:29"},"nodeType":"YulFunctionCall","src":"6283:37:29"},"nodeType":"YulIf","src":"6280:57:29"},{"nodeType":"YulAssignment","src":"6346:21:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6360:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"6364:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6356:3:29"},"nodeType":"YulFunctionCall","src":"6356:11:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6346:6:29"}]},{"nodeType":"YulAssignment","src":"6376:16:29","value":{"name":"length","nodeType":"YulIdentifier","src":"6386:6:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6376:6:29"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5605:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5616:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5628:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5636:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5644:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5652:6:29","type":""}],"src":"5517:881:29"},{"body":{"nodeType":"YulBlock","src":"6534:102:29","statements":[{"nodeType":"YulAssignment","src":"6544:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6556:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6567:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6552:3:29"},"nodeType":"YulFunctionCall","src":"6552:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6544:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6586:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6601:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6617:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6622:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6613:3:29"},"nodeType":"YulFunctionCall","src":"6613:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6626:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6609:3:29"},"nodeType":"YulFunctionCall","src":"6609:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6597:3:29"},"nodeType":"YulFunctionCall","src":"6597:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6579:6:29"},"nodeType":"YulFunctionCall","src":"6579:51:29"},"nodeType":"YulExpressionStatement","src":"6579:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaTicketsContract_$3740__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6503:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6514:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6525:4:29","type":""}],"src":"6403:233:29"},{"body":{"nodeType":"YulBlock","src":"6726:232:29","statements":[{"body":{"nodeType":"YulBlock","src":"6772:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6781:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6784:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6774:6:29"},"nodeType":"YulFunctionCall","src":"6774:12:29"},"nodeType":"YulExpressionStatement","src":"6774:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6747:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6756:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6743:3:29"},"nodeType":"YulFunctionCall","src":"6743:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6768:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6739:3:29"},"nodeType":"YulFunctionCall","src":"6739:32:29"},"nodeType":"YulIf","src":"6736:52:29"},{"nodeType":"YulVariableDeclaration","src":"6797:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6823:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6810:12:29"},"nodeType":"YulFunctionCall","src":"6810:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6801:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6867:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6842:24:29"},"nodeType":"YulFunctionCall","src":"6842:31:29"},"nodeType":"YulExpressionStatement","src":"6842:31:29"},{"nodeType":"YulAssignment","src":"6882:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"6892:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6882:6:29"}]},{"nodeType":"YulAssignment","src":"6906:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6937:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6948:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6933:3:29"},"nodeType":"YulFunctionCall","src":"6933:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"6916:16:29"},"nodeType":"YulFunctionCall","src":"6916:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6906:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6684:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6695:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6707:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6715:6:29","type":""}],"src":"6641:317:29"},{"body":{"nodeType":"YulBlock","src":"7060:87:29","statements":[{"nodeType":"YulAssignment","src":"7070:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7082:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7093:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7078:3:29"},"nodeType":"YulFunctionCall","src":"7078:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7070:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7112:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7127:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7135:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7123:3:29"},"nodeType":"YulFunctionCall","src":"7123:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7105:6:29"},"nodeType":"YulFunctionCall","src":"7105:36:29"},"nodeType":"YulExpressionStatement","src":"7105:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7029:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7040:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7051:4:29","type":""}],"src":"6963:184:29"},{"body":{"nodeType":"YulBlock","src":"7224:832:29","statements":[{"body":{"nodeType":"YulBlock","src":"7273:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7282:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7285:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7275:6:29"},"nodeType":"YulFunctionCall","src":"7275:12:29"},"nodeType":"YulExpressionStatement","src":"7275:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7252:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7260:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7248:3:29"},"nodeType":"YulFunctionCall","src":"7248:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"7267:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7244:3:29"},"nodeType":"YulFunctionCall","src":"7244:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7237:6:29"},"nodeType":"YulFunctionCall","src":"7237:35:29"},"nodeType":"YulIf","src":"7234:55:29"},{"nodeType":"YulVariableDeclaration","src":"7298:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7321:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7308:12:29"},"nodeType":"YulFunctionCall","src":"7308:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7302:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7337:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7347:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7341:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7360:69:29","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"7425:2:29"}],"functionName":{"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulIdentifier","src":"7387:37:29"},"nodeType":"YulFunctionCall","src":"7387:41:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7371:15:29"},"nodeType":"YulFunctionCall","src":"7371:58:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7364:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7438:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"7451:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"7442:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7470:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7475:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7463:6:29"},"nodeType":"YulFunctionCall","src":"7463:15:29"},"nodeType":"YulExpressionStatement","src":"7463:15:29"},{"nodeType":"YulAssignment","src":"7487:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7498:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7503:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7494:3:29"},"nodeType":"YulFunctionCall","src":"7494:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"7487:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"7515:46:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7537:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7549:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"7552:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7545:3:29"},"nodeType":"YulFunctionCall","src":"7545:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7533:3:29"},"nodeType":"YulFunctionCall","src":"7533:23:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7558:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7529:3:29"},"nodeType":"YulFunctionCall","src":"7529:32:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"7519:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7589:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7598:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7601:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7591:6:29"},"nodeType":"YulFunctionCall","src":"7591:12:29"},"nodeType":"YulExpressionStatement","src":"7591:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"7576:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"7584:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7573:2:29"},"nodeType":"YulFunctionCall","src":"7573:15:29"},"nodeType":"YulIf","src":"7570:35:29"},{"nodeType":"YulVariableDeclaration","src":"7614:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7629:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7637:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7625:3:29"},"nodeType":"YulFunctionCall","src":"7625:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"7618:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7705:322:29","statements":[{"nodeType":"YulVariableDeclaration","src":"7719:36:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7751:3:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7738:12:29"},"nodeType":"YulFunctionCall","src":"7738:17:29"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"7723:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7819:74:29","statements":[{"nodeType":"YulVariableDeclaration","src":"7837:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7847:1:29","type":"","value":"0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7841:2:29","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7872:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"7876:2:29"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7865:6:29"},"nodeType":"YulFunctionCall","src":"7865:14:29"},"nodeType":"YulExpressionStatement","src":"7865:14:29"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"7774:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7787:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7771:2:29"},"nodeType":"YulFunctionCall","src":"7771:35:29"},"nodeType":"YulIf","src":"7768:125:29"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7913:3:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7953:6:29"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"7961:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7949:3:29"},"nodeType":"YulFunctionCall","src":"7949:24:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7975:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7945:3:29"},"nodeType":"YulFunctionCall","src":"7945:33:29"},{"name":"end","nodeType":"YulIdentifier","src":"7980:3:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"7918:26:29"},"nodeType":"YulFunctionCall","src":"7918:66:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:29"},"nodeType":"YulFunctionCall","src":"7906:79:29"},"nodeType":"YulExpressionStatement","src":"7906:79:29"},{"nodeType":"YulAssignment","src":"7998:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8009:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"8014:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8005:3:29"},"nodeType":"YulFunctionCall","src":"8005:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"7998:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7660:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"7665:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7657:2:29"},"nodeType":"YulFunctionCall","src":"7657:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7673:23:29","statements":[{"nodeType":"YulAssignment","src":"7675:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7686:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7691:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7682:3:29"},"nodeType":"YulFunctionCall","src":"7682:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"7675:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"7653:3:29","statements":[]},"src":"7649:378:29"},{"nodeType":"YulAssignment","src":"8036:14:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"8045:5:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"8036:5:29"}]}]},"name":"abi_decode_array_array_uint8_dyn_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7198:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"7206:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7214:5:29","type":""}],"src":"7152:904:29"},{"body":{"nodeType":"YulBlock","src":"8152:283:29","statements":[{"body":{"nodeType":"YulBlock","src":"8201:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8210:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8213:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8203:6:29"},"nodeType":"YulFunctionCall","src":"8203:12:29"},"nodeType":"YulExpressionStatement","src":"8203:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8180:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8188:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8176:3:29"},"nodeType":"YulFunctionCall","src":"8176:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"8195:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8172:3:29"},"nodeType":"YulFunctionCall","src":"8172:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8165:6:29"},"nodeType":"YulFunctionCall","src":"8165:35:29"},"nodeType":"YulIf","src":"8162:55:29"},{"nodeType":"YulAssignment","src":"8226:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8249:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8236:12:29"},"nodeType":"YulFunctionCall","src":"8236:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8226:6:29"}]},{"body":{"nodeType":"YulBlock","src":"8299:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8308:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8311:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8301:6:29"},"nodeType":"YulFunctionCall","src":"8301:12:29"},"nodeType":"YulExpressionStatement","src":"8301:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8271:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8279:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8268:2:29"},"nodeType":"YulFunctionCall","src":"8268:30:29"},"nodeType":"YulIf","src":"8265:50:29"},{"nodeType":"YulAssignment","src":"8324:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8340:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8348:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8336:3:29"},"nodeType":"YulFunctionCall","src":"8336:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"8324:8:29"}]},{"body":{"nodeType":"YulBlock","src":"8413:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8422:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8425:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8415:6:29"},"nodeType":"YulFunctionCall","src":"8415:12:29"},"nodeType":"YulExpressionStatement","src":"8415:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8376:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8388:1:29","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"8391:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8384:3:29"},"nodeType":"YulFunctionCall","src":"8384:14:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8372:3:29"},"nodeType":"YulFunctionCall","src":"8372:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"8401:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8368:3:29"},"nodeType":"YulFunctionCall","src":"8368:38:29"},{"name":"end","nodeType":"YulIdentifier","src":"8408:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8365:2:29"},"nodeType":"YulFunctionCall","src":"8365:47:29"},"nodeType":"YulIf","src":"8362:67:29"}]},"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8115:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"8123:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"8131:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"8141:6:29","type":""}],"src":"8061:374:29"},{"body":{"nodeType":"YulBlock","src":"8678:1333:29","statements":[{"body":{"nodeType":"YulBlock","src":"8725:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8734:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8737:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8727:6:29"},"nodeType":"YulFunctionCall","src":"8727:12:29"},"nodeType":"YulExpressionStatement","src":"8727:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8699:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"8708:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8695:3:29"},"nodeType":"YulFunctionCall","src":"8695:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"8720:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8691:3:29"},"nodeType":"YulFunctionCall","src":"8691:33:29"},"nodeType":"YulIf","src":"8688:53:29"},{"nodeType":"YulAssignment","src":"8750:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8777:9:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8760:16:29"},"nodeType":"YulFunctionCall","src":"8760:27:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8750:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"8796:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"8806:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8800:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8817:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8848:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8859:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8844:3:29"},"nodeType":"YulFunctionCall","src":"8844:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8831:12:29"},"nodeType":"YulFunctionCall","src":"8831:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8821:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8872:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"8882:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8876:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"8927:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8936:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8939:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8929:6:29"},"nodeType":"YulFunctionCall","src":"8929:12:29"},"nodeType":"YulExpressionStatement","src":"8929:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8915:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"8923:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8912:2:29"},"nodeType":"YulFunctionCall","src":"8912:14:29"},"nodeType":"YulIf","src":"8909:34:29"},{"nodeType":"YulVariableDeclaration","src":"8952:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8966:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"8977:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8962:3:29"},"nodeType":"YulFunctionCall","src":"8962:22:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"8956:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9032:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9041:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9044:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9034:6:29"},"nodeType":"YulFunctionCall","src":"9034:12:29"},"nodeType":"YulExpressionStatement","src":"9034:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9011:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"9015:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9007:3:29"},"nodeType":"YulFunctionCall","src":"9007:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9022:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9003:3:29"},"nodeType":"YulFunctionCall","src":"9003:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8996:6:29"},"nodeType":"YulFunctionCall","src":"8996:35:29"},"nodeType":"YulIf","src":"8993:55:29"},{"nodeType":"YulVariableDeclaration","src":"9057:26:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9080:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9067:12:29"},"nodeType":"YulFunctionCall","src":"9067:16:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"9061:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9092:69:29","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"9157:2:29"}],"functionName":{"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulIdentifier","src":"9119:37:29"},"nodeType":"YulFunctionCall","src":"9119:41:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9103:15:29"},"nodeType":"YulFunctionCall","src":"9103:58:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"9096:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9170:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"9183:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"9174:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9202:3:29"},{"name":"_4","nodeType":"YulIdentifier","src":"9207:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9195:6:29"},"nodeType":"YulFunctionCall","src":"9195:15:29"},"nodeType":"YulExpressionStatement","src":"9195:15:29"},{"nodeType":"YulAssignment","src":"9219:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9230:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9235:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9226:3:29"},"nodeType":"YulFunctionCall","src":"9226:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"9219:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"9247:42:29","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9269:2:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9277:1:29","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"9280:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9273:3:29"},"nodeType":"YulFunctionCall","src":"9273:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:29"},"nodeType":"YulFunctionCall","src":"9265:19:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9286:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9261:3:29"},"nodeType":"YulFunctionCall","src":"9261:28:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"9251:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9321:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9330:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9333:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9323:6:29"},"nodeType":"YulFunctionCall","src":"9323:12:29"},"nodeType":"YulExpressionStatement","src":"9323:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"9304:6:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9312:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9301:2:29"},"nodeType":"YulFunctionCall","src":"9301:19:29"},"nodeType":"YulIf","src":"9298:39:29"},{"nodeType":"YulVariableDeclaration","src":"9346:22:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9361:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9365:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9357:3:29"},"nodeType":"YulFunctionCall","src":"9357:11:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"9350:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9433:86:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9454:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9472:3:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9459:12:29"},"nodeType":"YulFunctionCall","src":"9459:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9447:6:29"},"nodeType":"YulFunctionCall","src":"9447:30:29"},"nodeType":"YulExpressionStatement","src":"9447:30:29"},{"nodeType":"YulAssignment","src":"9490:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9501:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9506:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9497:3:29"},"nodeType":"YulFunctionCall","src":"9497:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"9490:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9388:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"9393:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9385:2:29"},"nodeType":"YulFunctionCall","src":"9385:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9401:23:29","statements":[{"nodeType":"YulAssignment","src":"9403:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9414:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9419:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9410:3:29"},"nodeType":"YulFunctionCall","src":"9410:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"9403:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"9381:3:29","statements":[]},"src":"9377:142:29"},{"nodeType":"YulAssignment","src":"9528:15:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"9538:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9528:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"9552:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9585:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9596:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9581:3:29"},"nodeType":"YulFunctionCall","src":"9581:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9568:12:29"},"nodeType":"YulFunctionCall","src":"9568:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9556:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9629:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9641:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9631:6:29"},"nodeType":"YulFunctionCall","src":"9631:12:29"},"nodeType":"YulExpressionStatement","src":"9631:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9615:8:29"},{"name":"_2","nodeType":"YulIdentifier","src":"9625:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9612:2:29"},"nodeType":"YulFunctionCall","src":"9612:16:29"},"nodeType":"YulIf","src":"9609:36:29"},{"nodeType":"YulAssignment","src":"9654:81:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9705:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9716:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9701:3:29"},"nodeType":"YulFunctionCall","src":"9701:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9727:7:29"}],"functionName":{"name":"abi_decode_array_array_uint8_dyn_dyn","nodeType":"YulIdentifier","src":"9664:36:29"},"nodeType":"YulFunctionCall","src":"9664:71:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9654:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"9744:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9777:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9788:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9773:3:29"},"nodeType":"YulFunctionCall","src":"9773:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9760:12:29"},"nodeType":"YulFunctionCall","src":"9760:32:29"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9748:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9821:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9830:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9833:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9823:6:29"},"nodeType":"YulFunctionCall","src":"9823:12:29"},"nodeType":"YulExpressionStatement","src":"9823:12:29"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9807:8:29"},{"name":"_2","nodeType":"YulIdentifier","src":"9817:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9804:2:29"},"nodeType":"YulFunctionCall","src":"9804:16:29"},"nodeType":"YulIf","src":"9801:36:29"},{"nodeType":"YulVariableDeclaration","src":"9846:105:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9921:9:29"},{"name":"offset_2","nodeType":"YulIdentifier","src":"9932:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9917:3:29"},"nodeType":"YulFunctionCall","src":"9917:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9943:7:29"}],"functionName":{"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"9872:44:29"},"nodeType":"YulFunctionCall","src":"9872:79:29"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9850:8:29","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9860:8:29","type":""}]},{"nodeType":"YulAssignment","src":"9960:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9970:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9960:6:29"}]},{"nodeType":"YulAssignment","src":"9987:18:29","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9997:8:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9987:6:29"}]}]},"name":"abi_decode_tuple_t_uint8t_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8612:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8623:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8635:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8643:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8651:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8659:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8667:6:29","type":""}],"src":"8440:1571:29"},{"body":{"nodeType":"YulBlock","src":"10119:339:29","statements":[{"body":{"nodeType":"YulBlock","src":"10165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10167:6:29"},"nodeType":"YulFunctionCall","src":"10167:12:29"},"nodeType":"YulExpressionStatement","src":"10167:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10140:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"10149:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10136:3:29"},"nodeType":"YulFunctionCall","src":"10136:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"10161:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10132:3:29"},"nodeType":"YulFunctionCall","src":"10132:32:29"},"nodeType":"YulIf","src":"10129:52:29"},{"nodeType":"YulVariableDeclaration","src":"10190:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10217:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10204:12:29"},"nodeType":"YulFunctionCall","src":"10204:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10194:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"10270:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10279:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10282:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10272:6:29"},"nodeType":"YulFunctionCall","src":"10272:12:29"},"nodeType":"YulExpressionStatement","src":"10272:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10242:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10250:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10239:2:29"},"nodeType":"YulFunctionCall","src":"10239:30:29"},"nodeType":"YulIf","src":"10236:50:29"},{"nodeType":"YulVariableDeclaration","src":"10295:103:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10370:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"10381:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10366:3:29"},"nodeType":"YulFunctionCall","src":"10366:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10390:7:29"}],"functionName":{"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"10321:44:29"},"nodeType":"YulFunctionCall","src":"10321:77:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"10299:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"10309:8:29","type":""}]},{"nodeType":"YulAssignment","src":"10407:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"10417:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10407:6:29"}]},{"nodeType":"YulAssignment","src":"10434:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10444:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10434:6:29"}]}]},"name":"abi_decode_tuple_t_array$_t_uint8_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10077:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10088:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10100:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10108:6:29","type":""}],"src":"10016:442:29"},{"body":{"nodeType":"YulBlock","src":"10567:352:29","statements":[{"body":{"nodeType":"YulBlock","src":"10613:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10622:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10625:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10615:6:29"},"nodeType":"YulFunctionCall","src":"10615:12:29"},"nodeType":"YulExpressionStatement","src":"10615:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10588:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"10597:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10584:3:29"},"nodeType":"YulFunctionCall","src":"10584:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"10609:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10580:3:29"},"nodeType":"YulFunctionCall","src":"10580:32:29"},"nodeType":"YulIf","src":"10577:52:29"},{"nodeType":"YulVariableDeclaration","src":"10638:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10664:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10651:12:29"},"nodeType":"YulFunctionCall","src":"10651:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10642:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10708:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10683:24:29"},"nodeType":"YulFunctionCall","src":"10683:31:29"},"nodeType":"YulExpressionStatement","src":"10683:31:29"},{"nodeType":"YulAssignment","src":"10723:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"10733:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10723:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"10747:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10779:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10790:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10775:3:29"},"nodeType":"YulFunctionCall","src":"10775:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10762:12:29"},"nodeType":"YulFunctionCall","src":"10762:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10751:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10828:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10803:24:29"},"nodeType":"YulFunctionCall","src":"10803:33:29"},"nodeType":"YulExpressionStatement","src":"10803:33:29"},{"nodeType":"YulAssignment","src":"10845:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10855:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10845:6:29"}]},{"nodeType":"YulAssignment","src":"10871:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10898:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10909:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10894:3:29"},"nodeType":"YulFunctionCall","src":"10894:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10881:12:29"},"nodeType":"YulFunctionCall","src":"10881:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10871:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10517:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10528:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10540:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10548:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10556:6:29","type":""}],"src":"10463:456:29"},{"body":{"nodeType":"YulBlock","src":"10992:114:29","statements":[{"body":{"nodeType":"YulBlock","src":"11038:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11047:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11050:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11040:6:29"},"nodeType":"YulFunctionCall","src":"11040:12:29"},"nodeType":"YulExpressionStatement","src":"11040:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11013:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"11022:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11009:3:29"},"nodeType":"YulFunctionCall","src":"11009:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"11034:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11005:3:29"},"nodeType":"YulFunctionCall","src":"11005:32:29"},"nodeType":"YulIf","src":"11002:52:29"},{"nodeType":"YulAssignment","src":"11063:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11090:9:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"11073:16:29"},"nodeType":"YulFunctionCall","src":"11073:27:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11063:6:29"}]}]},"name":"abi_decode_tuple_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10958:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10969:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10981:6:29","type":""}],"src":"10924:182:29"},{"body":{"nodeType":"YulBlock","src":"11240:102:29","statements":[{"nodeType":"YulAssignment","src":"11250:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11262:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11273:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11258:3:29"},"nodeType":"YulFunctionCall","src":"11258:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11250:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11292:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11307:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11323:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11328:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11319:3:29"},"nodeType":"YulFunctionCall","src":"11319:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"11332:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11315:3:29"},"nodeType":"YulFunctionCall","src":"11315:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11303:3:29"},"nodeType":"YulFunctionCall","src":"11303:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11285:6:29"},"nodeType":"YulFunctionCall","src":"11285:51:29"},"nodeType":"YulExpressionStatement","src":"11285:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaPacksContract_$3694__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11209:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11220:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11231:4:29","type":""}],"src":"11111:231:29"},{"body":{"nodeType":"YulBlock","src":"11474:420:29","statements":[{"body":{"nodeType":"YulBlock","src":"11520:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11529:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11532:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11522:6:29"},"nodeType":"YulFunctionCall","src":"11522:12:29"},"nodeType":"YulExpressionStatement","src":"11522:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11495:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"11504:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11491:3:29"},"nodeType":"YulFunctionCall","src":"11491:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"11516:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11487:3:29"},"nodeType":"YulFunctionCall","src":"11487:32:29"},"nodeType":"YulIf","src":"11484:52:29"},{"nodeType":"YulVariableDeclaration","src":"11545:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11571:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11558:12:29"},"nodeType":"YulFunctionCall","src":"11558:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11549:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11615:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11590:24:29"},"nodeType":"YulFunctionCall","src":"11590:31:29"},"nodeType":"YulExpressionStatement","src":"11590:31:29"},{"nodeType":"YulAssignment","src":"11630:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"11640:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11630:6:29"}]},{"nodeType":"YulAssignment","src":"11654:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11681:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11692:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11677:3:29"},"nodeType":"YulFunctionCall","src":"11677:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11664:12:29"},"nodeType":"YulFunctionCall","src":"11664:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11654:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"11705:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11736:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11747:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11732:3:29"},"nodeType":"YulFunctionCall","src":"11732:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11719:12:29"},"nodeType":"YulFunctionCall","src":"11719:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11709:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"11794:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11803:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11806:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11796:6:29"},"nodeType":"YulFunctionCall","src":"11796:12:29"},"nodeType":"YulExpressionStatement","src":"11796:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11766:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11774:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11763:2:29"},"nodeType":"YulFunctionCall","src":"11763:30:29"},"nodeType":"YulIf","src":"11760:50:29"},{"nodeType":"YulAssignment","src":"11819:69:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11860:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"11871:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11856:3:29"},"nodeType":"YulFunctionCall","src":"11856:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11880:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"11829:26:29"},"nodeType":"YulFunctionCall","src":"11829:59:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11819:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11424:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11435:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11447:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11455:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11463:6:29","type":""}],"src":"11347:547:29"},{"body":{"nodeType":"YulBlock","src":"12102:277:29","statements":[{"nodeType":"YulAssignment","src":"12112:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12124:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12135:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12120:3:29"},"nodeType":"YulFunctionCall","src":"12120:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12112:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12155:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"12166:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12148:6:29"},"nodeType":"YulFunctionCall","src":"12148:25:29"},"nodeType":"YulExpressionStatement","src":"12148:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12193:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12204:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12189:3:29"},"nodeType":"YulFunctionCall","src":"12189:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"12209:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12182:6:29"},"nodeType":"YulFunctionCall","src":"12182:34:29"},"nodeType":"YulExpressionStatement","src":"12182:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12236:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12247:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12232:3:29"},"nodeType":"YulFunctionCall","src":"12232:18:29"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12266:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12259:6:29"},"nodeType":"YulFunctionCall","src":"12259:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12252:6:29"},"nodeType":"YulFunctionCall","src":"12252:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12225:6:29"},"nodeType":"YulFunctionCall","src":"12225:50:29"},"nodeType":"YulExpressionStatement","src":"12225:50:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12295:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12306:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12291:3:29"},"nodeType":"YulFunctionCall","src":"12291:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"12315:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"12323:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12311:3:29"},"nodeType":"YulFunctionCall","src":"12311:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12284:6:29"},"nodeType":"YulFunctionCall","src":"12284:45:29"},"nodeType":"YulExpressionStatement","src":"12284:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12349:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12360:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12345:3:29"},"nodeType":"YulFunctionCall","src":"12345:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"12366:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12338:6:29"},"nodeType":"YulFunctionCall","src":"12338:35:29"},"nodeType":"YulExpressionStatement","src":"12338:35:29"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__to_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12039:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12050:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12058:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12066:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12074:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12082:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12093:4:29","type":""}],"src":"11899:480:29"},{"body":{"nodeType":"YulBlock","src":"12426:76:29","statements":[{"body":{"nodeType":"YulBlock","src":"12480:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12489:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12492:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12482:6:29"},"nodeType":"YulFunctionCall","src":"12482:12:29"},"nodeType":"YulExpressionStatement","src":"12482:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12449:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12470:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12463:6:29"},"nodeType":"YulFunctionCall","src":"12463:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12456:6:29"},"nodeType":"YulFunctionCall","src":"12456:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12446:2:29"},"nodeType":"YulFunctionCall","src":"12446:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12439:6:29"},"nodeType":"YulFunctionCall","src":"12439:40:29"},"nodeType":"YulIf","src":"12436:60:29"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12415:5:29","type":""}],"src":"12384:118:29"},{"body":{"nodeType":"YulBlock","src":"12574:174:29","statements":[{"body":{"nodeType":"YulBlock","src":"12620:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12629:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12632:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12622:6:29"},"nodeType":"YulFunctionCall","src":"12622:12:29"},"nodeType":"YulExpressionStatement","src":"12622:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12595:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"12604:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12591:3:29"},"nodeType":"YulFunctionCall","src":"12591:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"12616:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12587:3:29"},"nodeType":"YulFunctionCall","src":"12587:32:29"},"nodeType":"YulIf","src":"12584:52:29"},{"nodeType":"YulVariableDeclaration","src":"12645:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12671:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12658:12:29"},"nodeType":"YulFunctionCall","src":"12658:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12649:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12712:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"12690:21:29"},"nodeType":"YulFunctionCall","src":"12690:28:29"},"nodeType":"YulExpressionStatement","src":"12690:28:29"},{"nodeType":"YulAssignment","src":"12727:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"12737:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12727:6:29"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12540:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12551:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12563:6:29","type":""}],"src":"12507:241:29"},{"body":{"nodeType":"YulBlock","src":"12811:129:29","statements":[{"body":{"nodeType":"YulBlock","src":"12855:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"12857:16:29"},"nodeType":"YulFunctionCall","src":"12857:18:29"},"nodeType":"YulExpressionStatement","src":"12857:18:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12827:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"12835:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12824:2:29"},"nodeType":"YulFunctionCall","src":"12824:30:29"},"nodeType":"YulIf","src":"12821:56:29"},{"nodeType":"YulAssignment","src":"12886:48:29","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12906:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"12914:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12902:3:29"},"nodeType":"YulFunctionCall","src":"12902:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12923:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12919:3:29"},"nodeType":"YulFunctionCall","src":"12919:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12898:3:29"},"nodeType":"YulFunctionCall","src":"12898:29:29"},{"kind":"number","nodeType":"YulLiteral","src":"12929:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12894:3:29"},"nodeType":"YulFunctionCall","src":"12894:40:29"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"12886:4:29"}]}]},"name":"array_allocation_size_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"12791:6:29","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"12802:4:29","type":""}],"src":"12753:187:29"},{"body":{"nodeType":"YulBlock","src":"13020:263:29","statements":[{"nodeType":"YulAssignment","src":"13030:62:29","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13084:6:29"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"13055:28:29"},"nodeType":"YulFunctionCall","src":"13055:36:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"13039:15:29"},"nodeType":"YulFunctionCall","src":"13039:53:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"13030:5:29"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"13108:5:29"},{"name":"length","nodeType":"YulIdentifier","src":"13115:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13101:6:29"},"nodeType":"YulFunctionCall","src":"13101:21:29"},"nodeType":"YulExpressionStatement","src":"13101:21:29"},{"body":{"nodeType":"YulBlock","src":"13160:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13169:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13172:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13162:6:29"},"nodeType":"YulFunctionCall","src":"13162:12:29"},"nodeType":"YulExpressionStatement","src":"13162:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13141:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"13146:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13137:3:29"},"nodeType":"YulFunctionCall","src":"13137:16:29"},{"name":"end","nodeType":"YulIdentifier","src":"13155:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13134:2:29"},"nodeType":"YulFunctionCall","src":"13134:25:29"},"nodeType":"YulIf","src":"13131:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"13202:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"13209:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13198:3:29"},"nodeType":"YulFunctionCall","src":"13198:16:29"},{"name":"src","nodeType":"YulIdentifier","src":"13216:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"13221:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13185:12:29"},"nodeType":"YulFunctionCall","src":"13185:43:29"},"nodeType":"YulExpressionStatement","src":"13185:43:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"13252:5:29"},{"name":"length","nodeType":"YulIdentifier","src":"13259:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13248:3:29"},"nodeType":"YulFunctionCall","src":"13248:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"13268:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13244:3:29"},"nodeType":"YulFunctionCall","src":"13244:29:29"},{"kind":"number","nodeType":"YulLiteral","src":"13275:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13237:6:29"},"nodeType":"YulFunctionCall","src":"13237:40:29"},"nodeType":"YulExpressionStatement","src":"13237:40:29"}]},"name":"abi_decode_available_length_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"12989:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"12994:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"13002:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"13010:5:29","type":""}],"src":"12945:338:29"},{"body":{"nodeType":"YulBlock","src":"13341:169:29","statements":[{"body":{"nodeType":"YulBlock","src":"13390:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13399:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13402:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13392:6:29"},"nodeType":"YulFunctionCall","src":"13392:12:29"},"nodeType":"YulExpressionStatement","src":"13392:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13369:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"13377:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13365:3:29"},"nodeType":"YulFunctionCall","src":"13365:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"13384:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13361:3:29"},"nodeType":"YulFunctionCall","src":"13361:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13354:6:29"},"nodeType":"YulFunctionCall","src":"13354:35:29"},"nodeType":"YulIf","src":"13351:55:29"},{"nodeType":"YulAssignment","src":"13415:89:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13463:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"13471:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13459:3:29"},"nodeType":"YulFunctionCall","src":"13459:17:29"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13491:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13478:12:29"},"nodeType":"YulFunctionCall","src":"13478:20:29"},{"name":"end","nodeType":"YulIdentifier","src":"13500:3:29"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"13424:34:29"},"nodeType":"YulFunctionCall","src":"13424:80:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"13415:5:29"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"13315:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"13323:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"13331:5:29","type":""}],"src":"13288:222:29"},{"body":{"nodeType":"YulBlock","src":"13622:436:29","statements":[{"body":{"nodeType":"YulBlock","src":"13668:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13677:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13680:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13670:6:29"},"nodeType":"YulFunctionCall","src":"13670:12:29"},"nodeType":"YulExpressionStatement","src":"13670:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13643:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"13652:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13639:3:29"},"nodeType":"YulFunctionCall","src":"13639:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"13664:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13635:3:29"},"nodeType":"YulFunctionCall","src":"13635:32:29"},"nodeType":"YulIf","src":"13632:52:29"},{"nodeType":"YulVariableDeclaration","src":"13693:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13720:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13707:12:29"},"nodeType":"YulFunctionCall","src":"13707:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13697:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13739:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"13749:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13743:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13794:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13803:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13806:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13796:6:29"},"nodeType":"YulFunctionCall","src":"13796:12:29"},"nodeType":"YulExpressionStatement","src":"13796:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13782:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13790:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13779:2:29"},"nodeType":"YulFunctionCall","src":"13779:14:29"},"nodeType":"YulIf","src":"13776:34:29"},{"nodeType":"YulAssignment","src":"13819:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13851:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"13862:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13847:3:29"},"nodeType":"YulFunctionCall","src":"13847:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13871:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"13829:17:29"},"nodeType":"YulFunctionCall","src":"13829:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13819:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"13888:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13921:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13932:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13917:3:29"},"nodeType":"YulFunctionCall","src":"13917:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13904:12:29"},"nodeType":"YulFunctionCall","src":"13904:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"13892:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13965:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13974:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13977:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13967:6:29"},"nodeType":"YulFunctionCall","src":"13967:12:29"},"nodeType":"YulExpressionStatement","src":"13967:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"13951:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13961:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13948:2:29"},"nodeType":"YulFunctionCall","src":"13948:16:29"},"nodeType":"YulIf","src":"13945:36:29"},{"nodeType":"YulAssignment","src":"13990:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14022:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"14033:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14018:3:29"},"nodeType":"YulFunctionCall","src":"14018:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14044:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"14000:17:29"},"nodeType":"YulFunctionCall","src":"14000:52:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13990:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13580:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13591:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13603:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13611:6:29","type":""}],"src":"13515:543:29"},{"body":{"nodeType":"YulBlock","src":"14183:457:29","statements":[{"body":{"nodeType":"YulBlock","src":"14229:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14238:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14241:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14231:6:29"},"nodeType":"YulFunctionCall","src":"14231:12:29"},"nodeType":"YulExpressionStatement","src":"14231:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14204:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"14213:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14200:3:29"},"nodeType":"YulFunctionCall","src":"14200:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"14225:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14196:3:29"},"nodeType":"YulFunctionCall","src":"14196:32:29"},"nodeType":"YulIf","src":"14193:52:29"},{"nodeType":"YulVariableDeclaration","src":"14254:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14280:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14267:12:29"},"nodeType":"YulFunctionCall","src":"14267:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14258:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14324:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"14299:24:29"},"nodeType":"YulFunctionCall","src":"14299:31:29"},"nodeType":"YulExpressionStatement","src":"14299:31:29"},{"nodeType":"YulAssignment","src":"14339:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"14349:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14339:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"14363:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14394:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14405:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14390:3:29"},"nodeType":"YulFunctionCall","src":"14390:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14377:12:29"},"nodeType":"YulFunctionCall","src":"14377:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"14367:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"14452:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14461:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14464:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14454:6:29"},"nodeType":"YulFunctionCall","src":"14454:12:29"},"nodeType":"YulExpressionStatement","src":"14454:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14424:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14432:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14421:2:29"},"nodeType":"YulFunctionCall","src":"14421:30:29"},"nodeType":"YulIf","src":"14418:50:29"},{"nodeType":"YulVariableDeclaration","src":"14477:103:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14552:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"14563:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14548:3:29"},"nodeType":"YulFunctionCall","src":"14548:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14572:7:29"}],"functionName":{"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"14503:44:29"},"nodeType":"YulFunctionCall","src":"14503:77:29"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"14481:8:29","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"14491:8:29","type":""}]},{"nodeType":"YulAssignment","src":"14589:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"14599:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"14589:6:29"}]},{"nodeType":"YulAssignment","src":"14616:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"14626:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14616:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_uint8_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14133:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14144:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14156:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14164:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14172:6:29","type":""}],"src":"14063:577:29"},{"body":{"nodeType":"YulBlock","src":"14729:298:29","statements":[{"body":{"nodeType":"YulBlock","src":"14775:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14784:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14787:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14777:6:29"},"nodeType":"YulFunctionCall","src":"14777:12:29"},"nodeType":"YulExpressionStatement","src":"14777:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14750:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"14759:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14746:3:29"},"nodeType":"YulFunctionCall","src":"14746:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"14771:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14742:3:29"},"nodeType":"YulFunctionCall","src":"14742:32:29"},"nodeType":"YulIf","src":"14739:52:29"},{"nodeType":"YulVariableDeclaration","src":"14800:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14826:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14813:12:29"},"nodeType":"YulFunctionCall","src":"14813:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14804:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14870:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"14845:24:29"},"nodeType":"YulFunctionCall","src":"14845:31:29"},"nodeType":"YulExpressionStatement","src":"14845:31:29"},{"nodeType":"YulAssignment","src":"14885:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"14895:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14885:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"14909:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14952:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14937:3:29"},"nodeType":"YulFunctionCall","src":"14937:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14924:12:29"},"nodeType":"YulFunctionCall","src":"14924:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"14913:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"14987:7:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"14965:21:29"},"nodeType":"YulFunctionCall","src":"14965:30:29"},"nodeType":"YulExpressionStatement","src":"14965:30:29"},{"nodeType":"YulAssignment","src":"15004:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"15014:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15004:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14687:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14698:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14710:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14718:6:29","type":""}],"src":"14645:382:29"},{"body":{"nodeType":"YulBlock","src":"15149:412:29","statements":[{"body":{"nodeType":"YulBlock","src":"15196:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15205:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15208:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15198:6:29"},"nodeType":"YulFunctionCall","src":"15198:12:29"},"nodeType":"YulExpressionStatement","src":"15198:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15170:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"15179:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15166:3:29"},"nodeType":"YulFunctionCall","src":"15166:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"15191:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15162:3:29"},"nodeType":"YulFunctionCall","src":"15162:33:29"},"nodeType":"YulIf","src":"15159:53:29"},{"nodeType":"YulVariableDeclaration","src":"15221:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15247:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15234:12:29"},"nodeType":"YulFunctionCall","src":"15234:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15225:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15291:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15266:24:29"},"nodeType":"YulFunctionCall","src":"15266:31:29"},"nodeType":"YulExpressionStatement","src":"15266:31:29"},{"nodeType":"YulAssignment","src":"15306:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"15316:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15306:6:29"}]},{"nodeType":"YulAssignment","src":"15330:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15361:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15372:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15357:3:29"},"nodeType":"YulFunctionCall","src":"15357:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"15340:16:29"},"nodeType":"YulFunctionCall","src":"15340:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15330:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"15385:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15417:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15428:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15413:3:29"},"nodeType":"YulFunctionCall","src":"15413:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15400:12:29"},"nodeType":"YulFunctionCall","src":"15400:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"15389:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15466:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15441:24:29"},"nodeType":"YulFunctionCall","src":"15441:33:29"},"nodeType":"YulExpressionStatement","src":"15441:33:29"},{"nodeType":"YulAssignment","src":"15483:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"15493:7:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"15483:6:29"}]},{"nodeType":"YulAssignment","src":"15509:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15540:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15551:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15536:3:29"},"nodeType":"YulFunctionCall","src":"15536:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"15519:16:29"},"nodeType":"YulFunctionCall","src":"15519:36:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"15509:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15091:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15102:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15114:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15122:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15130:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15138:6:29","type":""}],"src":"15032:529:29"},{"body":{"nodeType":"YulBlock","src":"15696:665:29","statements":[{"body":{"nodeType":"YulBlock","src":"15743:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15752:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15755:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15745:6:29"},"nodeType":"YulFunctionCall","src":"15745:12:29"},"nodeType":"YulExpressionStatement","src":"15745:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15717:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"15726:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15713:3:29"},"nodeType":"YulFunctionCall","src":"15713:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"15738:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15709:3:29"},"nodeType":"YulFunctionCall","src":"15709:33:29"},"nodeType":"YulIf","src":"15706:53:29"},{"nodeType":"YulVariableDeclaration","src":"15768:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15794:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15781:12:29"},"nodeType":"YulFunctionCall","src":"15781:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15772:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15838:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15813:24:29"},"nodeType":"YulFunctionCall","src":"15813:31:29"},"nodeType":"YulExpressionStatement","src":"15813:31:29"},{"nodeType":"YulAssignment","src":"15853:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"15863:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15853:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"15877:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15909:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15920:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15905:3:29"},"nodeType":"YulFunctionCall","src":"15905:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15892:12:29"},"nodeType":"YulFunctionCall","src":"15892:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"15881:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15958:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15933:24:29"},"nodeType":"YulFunctionCall","src":"15933:33:29"},"nodeType":"YulExpressionStatement","src":"15933:33:29"},{"nodeType":"YulAssignment","src":"15975:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"15985:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15975:6:29"}]},{"nodeType":"YulAssignment","src":"16001:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16028:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16039:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16024:3:29"},"nodeType":"YulFunctionCall","src":"16024:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16011:12:29"},"nodeType":"YulFunctionCall","src":"16011:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"16001:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"16052:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16083:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16094:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16079:3:29"},"nodeType":"YulFunctionCall","src":"16079:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16066:12:29"},"nodeType":"YulFunctionCall","src":"16066:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16056:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"16141:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16150:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16153:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16143:6:29"},"nodeType":"YulFunctionCall","src":"16143:12:29"},"nodeType":"YulExpressionStatement","src":"16143:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"16113:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"16121:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16110:2:29"},"nodeType":"YulFunctionCall","src":"16110:30:29"},"nodeType":"YulIf","src":"16107:50:29"},{"nodeType":"YulVariableDeclaration","src":"16166:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16180:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"16191:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16176:3:29"},"nodeType":"YulFunctionCall","src":"16176:22:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16170:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"16246:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16255:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16258:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16248:6:29"},"nodeType":"YulFunctionCall","src":"16248:12:29"},"nodeType":"YulExpressionStatement","src":"16248:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16225:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"16229:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16221:3:29"},"nodeType":"YulFunctionCall","src":"16221:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16236:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16217:3:29"},"nodeType":"YulFunctionCall","src":"16217:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16210:6:29"},"nodeType":"YulFunctionCall","src":"16210:35:29"},"nodeType":"YulIf","src":"16207:55:29"},{"nodeType":"YulAssignment","src":"16271:84:29","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16320:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"16324:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16316:3:29"},"nodeType":"YulFunctionCall","src":"16316:11:29"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16342:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16329:12:29"},"nodeType":"YulFunctionCall","src":"16329:16:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16347:7:29"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"16281:34:29"},"nodeType":"YulFunctionCall","src":"16281:74:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"16271:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15638:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15649:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15661:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15669:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15677:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15685:6:29","type":""}],"src":"15566:795:29"},{"body":{"nodeType":"YulBlock","src":"16496:102:29","statements":[{"nodeType":"YulAssignment","src":"16506:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16518:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16529:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16514:3:29"},"nodeType":"YulFunctionCall","src":"16514:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16506:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16548:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16563:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16579:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16584:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16575:3:29"},"nodeType":"YulFunctionCall","src":"16575:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"16588:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16571:3:29"},"nodeType":"YulFunctionCall","src":"16571:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16559:3:29"},"nodeType":"YulFunctionCall","src":"16559:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16541:6:29"},"nodeType":"YulFunctionCall","src":"16541:51:29"},"nodeType":"YulExpressionStatement","src":"16541:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaOffersContract_$3734__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16465:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16476:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16487:4:29","type":""}],"src":"16366:232:29"},{"body":{"nodeType":"YulBlock","src":"16690:301:29","statements":[{"body":{"nodeType":"YulBlock","src":"16736:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16745:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16748:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16738:6:29"},"nodeType":"YulFunctionCall","src":"16738:12:29"},"nodeType":"YulExpressionStatement","src":"16738:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16711:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"16720:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16707:3:29"},"nodeType":"YulFunctionCall","src":"16707:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"16732:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16703:3:29"},"nodeType":"YulFunctionCall","src":"16703:32:29"},"nodeType":"YulIf","src":"16700:52:29"},{"nodeType":"YulVariableDeclaration","src":"16761:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16787:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16774:12:29"},"nodeType":"YulFunctionCall","src":"16774:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16765:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16831:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"16806:24:29"},"nodeType":"YulFunctionCall","src":"16806:31:29"},"nodeType":"YulExpressionStatement","src":"16806:31:29"},{"nodeType":"YulAssignment","src":"16846:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"16856:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16846:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"16870:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16902:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16913:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16898:3:29"},"nodeType":"YulFunctionCall","src":"16898:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16885:12:29"},"nodeType":"YulFunctionCall","src":"16885:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"16874:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"16951:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"16926:24:29"},"nodeType":"YulFunctionCall","src":"16926:33:29"},"nodeType":"YulExpressionStatement","src":"16926:33:29"},{"nodeType":"YulAssignment","src":"16968:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"16978:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"16968:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16648:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16659:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16671:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16679:6:29","type":""}],"src":"16603:388:29"},{"body":{"nodeType":"YulBlock","src":"17028:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17045:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17052:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17057:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17048:3:29"},"nodeType":"YulFunctionCall","src":"17048:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17038:6:29"},"nodeType":"YulFunctionCall","src":"17038:31:29"},"nodeType":"YulExpressionStatement","src":"17038:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17085:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17088:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17078:6:29"},"nodeType":"YulFunctionCall","src":"17078:15:29"},"nodeType":"YulExpressionStatement","src":"17078:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17109:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17112:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17102:6:29"},"nodeType":"YulFunctionCall","src":"17102:15:29"},"nodeType":"YulExpressionStatement","src":"17102:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"16996:127:29"},{"body":{"nodeType":"YulBlock","src":"17253:156:29","statements":[{"nodeType":"YulAssignment","src":"17263:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17275:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17286:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17271:3:29"},"nodeType":"YulFunctionCall","src":"17271:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17263:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17305:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17320:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17336:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17341:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17332:3:29"},"nodeType":"YulFunctionCall","src":"17332:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"17345:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17328:3:29"},"nodeType":"YulFunctionCall","src":"17328:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17316:3:29"},"nodeType":"YulFunctionCall","src":"17316:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17298:6:29"},"nodeType":"YulFunctionCall","src":"17298:51:29"},"nodeType":"YulExpressionStatement","src":"17298:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17369:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17380:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17365:3:29"},"nodeType":"YulFunctionCall","src":"17365:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17389:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"17397:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17385:3:29"},"nodeType":"YulFunctionCall","src":"17385:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17358:6:29"},"nodeType":"YulFunctionCall","src":"17358:45:29"},"nodeType":"YulExpressionStatement","src":"17358:45:29"}]},"name":"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17214:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17225:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17233:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17244:4:29","type":""}],"src":"17128:281:29"},{"body":{"nodeType":"YulBlock","src":"17492:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"17538:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17547:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17550:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17540:6:29"},"nodeType":"YulFunctionCall","src":"17540:12:29"},"nodeType":"YulExpressionStatement","src":"17540:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"17513:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"17522:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17509:3:29"},"nodeType":"YulFunctionCall","src":"17509:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"17534:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17505:3:29"},"nodeType":"YulFunctionCall","src":"17505:32:29"},"nodeType":"YulIf","src":"17502:52:29"},{"nodeType":"YulVariableDeclaration","src":"17563:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17582:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17576:5:29"},"nodeType":"YulFunctionCall","src":"17576:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"17567:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17623:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"17601:21:29"},"nodeType":"YulFunctionCall","src":"17601:28:29"},"nodeType":"YulExpressionStatement","src":"17601:28:29"},{"nodeType":"YulAssignment","src":"17638:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"17648:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17638:6:29"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17458:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"17469:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"17481:6:29","type":""}],"src":"17414:245:29"},{"body":{"nodeType":"YulBlock","src":"17696:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17713:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17720:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17725:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17716:3:29"},"nodeType":"YulFunctionCall","src":"17716:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17706:6:29"},"nodeType":"YulFunctionCall","src":"17706:31:29"},"nodeType":"YulExpressionStatement","src":"17706:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17753:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17756:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17746:6:29"},"nodeType":"YulFunctionCall","src":"17746:15:29"},"nodeType":"YulExpressionStatement","src":"17746:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17777:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17780:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17770:6:29"},"nodeType":"YulFunctionCall","src":"17770:15:29"},"nodeType":"YulExpressionStatement","src":"17770:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"17664:127:29"},{"body":{"nodeType":"YulBlock","src":"17841:130:29","statements":[{"nodeType":"YulVariableDeclaration","src":"17851:31:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17870:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"17877:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17866:3:29"},"nodeType":"YulFunctionCall","src":"17866:16:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"17855:7:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17912:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17914:16:29"},"nodeType":"YulFunctionCall","src":"17914:18:29"},"nodeType":"YulExpressionStatement","src":"17914:18:29"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"17897:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"17906:4:29","type":"","value":"0xff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17894:2:29"},"nodeType":"YulFunctionCall","src":"17894:17:29"},"nodeType":"YulIf","src":"17891:43:29"},{"nodeType":"YulAssignment","src":"17943:22:29","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"17954:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"17963:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17950:3:29"},"nodeType":"YulFunctionCall","src":"17950:15:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"17943:3:29"}]}]},"name":"increment_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17823:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"17833:3:29","type":""}],"src":"17796:175:29"},{"body":{"nodeType":"YulBlock","src":"18023:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"18054:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18056:16:29"},"nodeType":"YulFunctionCall","src":"18056:18:29"},"nodeType":"YulExpressionStatement","src":"18056:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18039:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18050:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18046:3:29"},"nodeType":"YulFunctionCall","src":"18046:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18036:2:29"},"nodeType":"YulFunctionCall","src":"18036:17:29"},"nodeType":"YulIf","src":"18033:43:29"},{"nodeType":"YulAssignment","src":"18085:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18096:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"18103:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18092:3:29"},"nodeType":"YulFunctionCall","src":"18092:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18085:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18005:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18015:3:29","type":""}],"src":"17976:135:29"},{"body":{"nodeType":"YulBlock","src":"18171:325:29","statements":[{"nodeType":"YulAssignment","src":"18181:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18195:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"18198:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"18191:3:29"},"nodeType":"YulFunctionCall","src":"18191:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"18181:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"18212:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"18242:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"18248:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18238:3:29"},"nodeType":"YulFunctionCall","src":"18238:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"18216:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"18289:31:29","statements":[{"nodeType":"YulAssignment","src":"18291:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18305:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18313:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18301:3:29"},"nodeType":"YulFunctionCall","src":"18301:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"18291:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"18269:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18262:6:29"},"nodeType":"YulFunctionCall","src":"18262:26:29"},"nodeType":"YulIf","src":"18259:61:29"},{"body":{"nodeType":"YulBlock","src":"18379:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18400:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18407:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18412:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18403:3:29"},"nodeType":"YulFunctionCall","src":"18403:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18393:6:29"},"nodeType":"YulFunctionCall","src":"18393:31:29"},"nodeType":"YulExpressionStatement","src":"18393:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18444:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18447:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18437:6:29"},"nodeType":"YulFunctionCall","src":"18437:15:29"},"nodeType":"YulExpressionStatement","src":"18437:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18472:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18475:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18465:6:29"},"nodeType":"YulFunctionCall","src":"18465:15:29"},"nodeType":"YulExpressionStatement","src":"18465:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"18335:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18358:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18366:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18355:2:29"},"nodeType":"YulFunctionCall","src":"18355:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18332:2:29"},"nodeType":"YulFunctionCall","src":"18332:38:29"},"nodeType":"YulIf","src":"18329:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"18151:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"18160:6:29","type":""}],"src":"18116:380:29"},{"body":{"nodeType":"YulBlock","src":"18661:145:29","statements":[{"nodeType":"YulAssignment","src":"18671:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18683:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18694:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18679:3:29"},"nodeType":"YulFunctionCall","src":"18679:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18671:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18713:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"18724:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18706:6:29"},"nodeType":"YulFunctionCall","src":"18706:25:29"},"nodeType":"YulExpressionStatement","src":"18706:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18751:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18762:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18747:3:29"},"nodeType":"YulFunctionCall","src":"18747:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18771:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18787:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18792:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18783:3:29"},"nodeType":"YulFunctionCall","src":"18783:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"18796:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18779:3:29"},"nodeType":"YulFunctionCall","src":"18779:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18767:3:29"},"nodeType":"YulFunctionCall","src":"18767:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18740:6:29"},"nodeType":"YulFunctionCall","src":"18740:60:29"},"nodeType":"YulExpressionStatement","src":"18740:60:29"}]},"name":"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18622:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18633:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18641:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18652:4:29","type":""}],"src":"18501:305:29"},{"body":{"nodeType":"YulBlock","src":"19078:832:29","statements":[{"nodeType":"YulVariableDeclaration","src":"19088:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19106:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19117:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19102:3:29"},"nodeType":"YulFunctionCall","src":"19102:19:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19092:6:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19137:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19152:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19168:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19173:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19164:3:29"},"nodeType":"YulFunctionCall","src":"19164:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"19177:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19160:3:29"},"nodeType":"YulFunctionCall","src":"19160:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19148:3:29"},"nodeType":"YulFunctionCall","src":"19148:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19130:6:29"},"nodeType":"YulFunctionCall","src":"19130:51:29"},"nodeType":"YulExpressionStatement","src":"19130:51:29"},{"nodeType":"YulVariableDeclaration","src":"19190:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"19200:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19194:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19222:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19233:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19218:3:29"},"nodeType":"YulFunctionCall","src":"19218:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"19238:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19211:6:29"},"nodeType":"YulFunctionCall","src":"19211:34:29"},"nodeType":"YulExpressionStatement","src":"19211:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19265:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19276:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19261:3:29"},"nodeType":"YulFunctionCall","src":"19261:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"19281:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19254:6:29"},"nodeType":"YulFunctionCall","src":"19254:31:29"},"nodeType":"YulExpressionStatement","src":"19254:31:29"},{"nodeType":"YulVariableDeclaration","src":"19294:17:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"19305:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"19298:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19320:27:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19340:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19334:5:29"},"nodeType":"YulFunctionCall","src":"19334:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19324:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19363:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"19371:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19356:6:29"},"nodeType":"YulFunctionCall","src":"19356:22:29"},"nodeType":"YulExpressionStatement","src":"19356:22:29"},{"nodeType":"YulAssignment","src":"19387:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19398:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19409:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19394:3:29"},"nodeType":"YulFunctionCall","src":"19394:19:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19387:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"19422:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19440:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19448:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:29"},"nodeType":"YulFunctionCall","src":"19436:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"19426:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19460:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"19469:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19464:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"19528:131:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19549:3:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19564:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19558:5:29"},"nodeType":"YulFunctionCall","src":"19558:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"19573:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19554:3:29"},"nodeType":"YulFunctionCall","src":"19554:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19542:6:29"},"nodeType":"YulFunctionCall","src":"19542:37:29"},"nodeType":"YulExpressionStatement","src":"19542:37:29"},{"nodeType":"YulAssignment","src":"19592:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19603:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19608:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19599:3:29"},"nodeType":"YulFunctionCall","src":"19599:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19592:3:29"}]},{"nodeType":"YulAssignment","src":"19624:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19638:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19646:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19634:3:29"},"nodeType":"YulFunctionCall","src":"19634:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19624:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19490:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"19493:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19487:2:29"},"nodeType":"YulFunctionCall","src":"19487:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19501:18:29","statements":[{"nodeType":"YulAssignment","src":"19503:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19512:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"19515:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19508:3:29"},"nodeType":"YulFunctionCall","src":"19508:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19503:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"19483:3:29","statements":[]},"src":"19479:180:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19679:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19690:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19675:3:29"},"nodeType":"YulFunctionCall","src":"19675:18:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19699:3:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"19704:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19695:3:29"},"nodeType":"YulFunctionCall","src":"19695:19:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19668:6:29"},"nodeType":"YulFunctionCall","src":"19668:47:29"},"nodeType":"YulExpressionStatement","src":"19668:47:29"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19731:3:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19736:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19724:6:29"},"nodeType":"YulFunctionCall","src":"19724:19:29"},"nodeType":"YulExpressionStatement","src":"19724:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19769:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19774:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19765:3:29"},"nodeType":"YulFunctionCall","src":"19765:12:29"},{"name":"value3","nodeType":"YulIdentifier","src":"19779:6:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19787:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"19752:12:29"},"nodeType":"YulFunctionCall","src":"19752:42:29"},"nodeType":"YulExpressionStatement","src":"19752:42:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19818:3:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19823:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19814:3:29"},"nodeType":"YulFunctionCall","src":"19814:16:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19832:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19810:3:29"},"nodeType":"YulFunctionCall","src":"19810:25:29"},{"kind":"number","nodeType":"YulLiteral","src":"19837:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19803:6:29"},"nodeType":"YulFunctionCall","src":"19803:36:29"},"nodeType":"YulExpressionStatement","src":"19803:36:29"},{"nodeType":"YulAssignment","src":"19848:56:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19864:3:29"},{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19877:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"19885:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19873:3:29"},"nodeType":"YulFunctionCall","src":"19873:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19894:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19890:3:29"},"nodeType":"YulFunctionCall","src":"19890:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19869:3:29"},"nodeType":"YulFunctionCall","src":"19869:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19860:3:29"},"nodeType":"YulFunctionCall","src":"19860:39:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19901:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19856:3:29"},"nodeType":"YulFunctionCall","src":"19856:48:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19848:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19015:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19026:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19034:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19042:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19050:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19058:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19069:4:29","type":""}],"src":"18811:1099:29"},{"body":{"nodeType":"YulBlock","src":"19996:170:29","statements":[{"body":{"nodeType":"YulBlock","src":"20042:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20051:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20054:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20044:6:29"},"nodeType":"YulFunctionCall","src":"20044:12:29"},"nodeType":"YulExpressionStatement","src":"20044:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20017:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"20026:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20013:3:29"},"nodeType":"YulFunctionCall","src":"20013:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"20038:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20009:3:29"},"nodeType":"YulFunctionCall","src":"20009:32:29"},"nodeType":"YulIf","src":"20006:52:29"},{"nodeType":"YulVariableDeclaration","src":"20067:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20086:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20080:5:29"},"nodeType":"YulFunctionCall","src":"20080:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"20071:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20130:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"20105:24:29"},"nodeType":"YulFunctionCall","src":"20105:31:29"},"nodeType":"YulExpressionStatement","src":"20105:31:29"},{"nodeType":"YulAssignment","src":"20145:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"20155:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20145:6:29"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19962:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"19973:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"19985:6:29","type":""}],"src":"19915:251:29"},{"body":{"nodeType":"YulBlock","src":"20265:427:29","statements":[{"nodeType":"YulVariableDeclaration","src":"20275:51:29","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"20314:11:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20301:12:29"},"nodeType":"YulFunctionCall","src":"20301:25:29"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"20279:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20415:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20424:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20427:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20417:6:29"},"nodeType":"YulFunctionCall","src":"20417:12:29"},"nodeType":"YulExpressionStatement","src":"20417:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20349:18:29"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"20377:12:29"},"nodeType":"YulFunctionCall","src":"20377:14:29"},{"name":"base_ref","nodeType":"YulIdentifier","src":"20393:8:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20373:3:29"},"nodeType":"YulFunctionCall","src":"20373:29:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20408:2:29","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20404:3:29"},"nodeType":"YulFunctionCall","src":"20404:7:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20369:3:29"},"nodeType":"YulFunctionCall","src":"20369:43:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20345:3:29"},"nodeType":"YulFunctionCall","src":"20345:68:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20338:6:29"},"nodeType":"YulFunctionCall","src":"20338:76:29"},"nodeType":"YulIf","src":"20335:96:29"},{"nodeType":"YulVariableDeclaration","src":"20440:47:29","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"20458:8:29"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20468:18:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20454:3:29"},"nodeType":"YulFunctionCall","src":"20454:33:29"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"20444:6:29","type":""}]},{"nodeType":"YulAssignment","src":"20496:30:29","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"20519:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20506:12:29"},"nodeType":"YulFunctionCall","src":"20506:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"20496:6:29"}]},{"body":{"nodeType":"YulBlock","src":"20569:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20578:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20581:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20571:6:29"},"nodeType":"YulFunctionCall","src":"20571:12:29"},"nodeType":"YulExpressionStatement","src":"20571:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20541:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"20549:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20538:2:29"},"nodeType":"YulFunctionCall","src":"20538:30:29"},"nodeType":"YulIf","src":"20535:50:29"},{"nodeType":"YulAssignment","src":"20594:25:29","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"20606:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"20614:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20602:3:29"},"nodeType":"YulFunctionCall","src":"20602:17:29"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"20594:4:29"}]},{"body":{"nodeType":"YulBlock","src":"20670:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20679:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20682:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20672:6:29"},"nodeType":"YulFunctionCall","src":"20672:12:29"},"nodeType":"YulExpressionStatement","src":"20672:12:29"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"20635:4:29"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"20645:12:29"},"nodeType":"YulFunctionCall","src":"20645:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"20661:6:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20641:3:29"},"nodeType":"YulFunctionCall","src":"20641:27:29"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"20631:3:29"},"nodeType":"YulFunctionCall","src":"20631:38:29"},"nodeType":"YulIf","src":"20628:58:29"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"20222:8:29","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"20232:11:29","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"20248:4:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"20254:6:29","type":""}],"src":"20171:521:29"},{"body":{"nodeType":"YulBlock","src":"20745:77:29","statements":[{"nodeType":"YulAssignment","src":"20755:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20766:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"20769:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20762:3:29"},"nodeType":"YulFunctionCall","src":"20762:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20755:3:29"}]},{"body":{"nodeType":"YulBlock","src":"20794:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20796:16:29"},"nodeType":"YulFunctionCall","src":"20796:18:29"},"nodeType":"YulExpressionStatement","src":"20796:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20786:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"20789:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20783:2:29"},"nodeType":"YulFunctionCall","src":"20783:10:29"},"nodeType":"YulIf","src":"20780:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20728:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"20731:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20737:3:29","type":""}],"src":"20697:125:29"},{"body":{"nodeType":"YulBlock","src":"20908:103:29","statements":[{"body":{"nodeType":"YulBlock","src":"20954:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20963:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20966:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20956:6:29"},"nodeType":"YulFunctionCall","src":"20956:12:29"},"nodeType":"YulExpressionStatement","src":"20956:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20929:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"20938:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20925:3:29"},"nodeType":"YulFunctionCall","src":"20925:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"20950:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20921:3:29"},"nodeType":"YulFunctionCall","src":"20921:32:29"},"nodeType":"YulIf","src":"20918:52:29"},{"nodeType":"YulAssignment","src":"20979:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20995:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20989:5:29"},"nodeType":"YulFunctionCall","src":"20989:16:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20979:6:29"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20874:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20885:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20897:6:29","type":""}],"src":"20827:184:29"},{"body":{"nodeType":"YulBlock","src":"21061:133:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21071:31:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21090:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"21097:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21086:3:29"},"nodeType":"YulFunctionCall","src":"21086:16:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"21075:7:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21130:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21132:16:29"},"nodeType":"YulFunctionCall","src":"21132:18:29"},"nodeType":"YulExpressionStatement","src":"21132:18:29"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21121:7:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21114:6:29"},"nodeType":"YulFunctionCall","src":"21114:15:29"},"nodeType":"YulIf","src":"21111:41:29"},{"nodeType":"YulAssignment","src":"21161:27:29","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21172:7:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21185:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21181:3:29"},"nodeType":"YulFunctionCall","src":"21181:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21168:3:29"},"nodeType":"YulFunctionCall","src":"21168:20:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21161:3:29"}]}]},"name":"decrement_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21043:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21053:3:29","type":""}],"src":"21016:178:29"},{"body":{"nodeType":"YulBlock","src":"21374:355:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21384:16:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"21397:3:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"21388:5:29","type":""}]},{"nodeType":"YulAssignment","src":"21409:12:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"21418:3:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21409:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"21430:20:29","value":{"name":"value0","nodeType":"YulIdentifier","src":"21444:6:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"21434:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21459:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21468:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21463:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21527:175:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21548:5:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"21576:6:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"21559:16:29"},"nodeType":"YulFunctionCall","src":"21559:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"21585:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21555:3:29"},"nodeType":"YulFunctionCall","src":"21555:35:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21541:6:29"},"nodeType":"YulFunctionCall","src":"21541:50:29"},"nodeType":"YulExpressionStatement","src":"21541:50:29"},{"nodeType":"YulVariableDeclaration","src":"21604:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21614:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21608:2:29","type":""}]},{"nodeType":"YulAssignment","src":"21631:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21644:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"21651:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21640:3:29"},"nodeType":"YulFunctionCall","src":"21640:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21631:5:29"}]},{"nodeType":"YulAssignment","src":"21667:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"21681:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"21689:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21677:3:29"},"nodeType":"YulFunctionCall","src":"21677:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"21667:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21489:1:29"},{"name":"value1","nodeType":"YulIdentifier","src":"21492:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21486:2:29"},"nodeType":"YulFunctionCall","src":"21486:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21500:18:29","statements":[{"nodeType":"YulAssignment","src":"21502:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21511:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"21514:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21507:3:29"},"nodeType":"YulFunctionCall","src":"21507:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21502:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"21482:3:29","statements":[]},"src":"21478:224:29"},{"nodeType":"YulAssignment","src":"21711:12:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"21718:5:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21711:3:29"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_calldata_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21342:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21347:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21355:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21366:3:29","type":""}],"src":"21199:530:29"},{"body":{"nodeType":"YulBlock","src":"21783:79:29","statements":[{"nodeType":"YulAssignment","src":"21793:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21805:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"21808:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21801:3:29"},"nodeType":"YulFunctionCall","src":"21801:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"21793:4:29"}]},{"body":{"nodeType":"YulBlock","src":"21834:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21836:16:29"},"nodeType":"YulFunctionCall","src":"21836:18:29"},"nodeType":"YulExpressionStatement","src":"21836:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"21825:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"21831:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21822:2:29"},"nodeType":"YulFunctionCall","src":"21822:11:29"},"nodeType":"YulIf","src":"21819:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21765:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"21768:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"21774:4:29","type":""}],"src":"21734:128:29"},{"body":{"nodeType":"YulBlock","src":"21996:145:29","statements":[{"nodeType":"YulAssignment","src":"22006:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:29"},"nodeType":"YulFunctionCall","src":"22014:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22006:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22048:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22063:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22079:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22084:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22075:3:29"},"nodeType":"YulFunctionCall","src":"22075:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"22088:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22071:3:29"},"nodeType":"YulFunctionCall","src":"22071:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22059:3:29"},"nodeType":"YulFunctionCall","src":"22059:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22041:6:29"},"nodeType":"YulFunctionCall","src":"22041:51:29"},"nodeType":"YulExpressionStatement","src":"22041:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22112:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22123:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22108:3:29"},"nodeType":"YulFunctionCall","src":"22108:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"22128:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22101:6:29"},"nodeType":"YulFunctionCall","src":"22101:34:29"},"nodeType":"YulExpressionStatement","src":"22101:34:29"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21957:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21968:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21976:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21987:4:29","type":""}],"src":"21867:274:29"},{"body":{"nodeType":"YulBlock","src":"22303:218:29","statements":[{"nodeType":"YulAssignment","src":"22313:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22325:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22336:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22321:3:29"},"nodeType":"YulFunctionCall","src":"22321:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22313:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"22348:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22366:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22371:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22362:3:29"},"nodeType":"YulFunctionCall","src":"22362:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"22375:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22358:3:29"},"nodeType":"YulFunctionCall","src":"22358:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22352:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22393:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22408:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"22416:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22404:3:29"},"nodeType":"YulFunctionCall","src":"22404:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22386:6:29"},"nodeType":"YulFunctionCall","src":"22386:34:29"},"nodeType":"YulExpressionStatement","src":"22386:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22440:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22451:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22436:3:29"},"nodeType":"YulFunctionCall","src":"22436:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"22456:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22429:6:29"},"nodeType":"YulFunctionCall","src":"22429:34:29"},"nodeType":"YulExpressionStatement","src":"22429:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22483:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22494:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22479:3:29"},"nodeType":"YulFunctionCall","src":"22479:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22503:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"22511:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22499:3:29"},"nodeType":"YulFunctionCall","src":"22499:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22472:6:29"},"nodeType":"YulFunctionCall","src":"22472:43:29"},"nodeType":"YulExpressionStatement","src":"22472:43:29"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22256:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22267:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22275:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22283:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22294:4:29","type":""}],"src":"22146:375:29"},{"body":{"nodeType":"YulBlock","src":"22700:173:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22717:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22728:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22710:6:29"},"nodeType":"YulFunctionCall","src":"22710:21:29"},"nodeType":"YulExpressionStatement","src":"22710:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22751:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22762:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22747:3:29"},"nodeType":"YulFunctionCall","src":"22747:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"22767:2:29","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22740:6:29"},"nodeType":"YulFunctionCall","src":"22740:30:29"},"nodeType":"YulExpressionStatement","src":"22740:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22790:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22801:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22786:3:29"},"nodeType":"YulFunctionCall","src":"22786:18:29"},{"hexValue":"5468697320636172642068617320616e206f666665722e","kind":"string","nodeType":"YulLiteral","src":"22806:25:29","type":"","value":"This card has an offer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22779:6:29"},"nodeType":"YulFunctionCall","src":"22779:53:29"},"nodeType":"YulExpressionStatement","src":"22779:53:29"},{"nodeType":"YulAssignment","src":"22841:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22853:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22864:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22849:3:29"},"nodeType":"YulFunctionCall","src":"22849:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22841:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22677:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22691:4:29","type":""}],"src":"22526:347:29"},{"body":{"nodeType":"YulBlock","src":"23007:145:29","statements":[{"nodeType":"YulAssignment","src":"23017:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23029:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23040:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23025:3:29"},"nodeType":"YulFunctionCall","src":"23025:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23017:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23059:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"23070:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23052:6:29"},"nodeType":"YulFunctionCall","src":"23052:25:29"},"nodeType":"YulExpressionStatement","src":"23052:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23097:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23108:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23093:3:29"},"nodeType":"YulFunctionCall","src":"23093:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23117:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23133:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23138:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23129:3:29"},"nodeType":"YulFunctionCall","src":"23129:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"23142:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23125:3:29"},"nodeType":"YulFunctionCall","src":"23125:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23113:3:29"},"nodeType":"YulFunctionCall","src":"23113:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23086:6:29"},"nodeType":"YulFunctionCall","src":"23086:60:29"},"nodeType":"YulExpressionStatement","src":"23086:60:29"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22968:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22979:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22987:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22998:4:29","type":""}],"src":"22878:274:29"},{"body":{"nodeType":"YulBlock","src":"23189:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23206:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23213:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23218:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23209:3:29"},"nodeType":"YulFunctionCall","src":"23209:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23199:6:29"},"nodeType":"YulFunctionCall","src":"23199:31:29"},"nodeType":"YulExpressionStatement","src":"23199:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23246:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23249:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23239:6:29"},"nodeType":"YulFunctionCall","src":"23239:15:29"},"nodeType":"YulExpressionStatement","src":"23239:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23270:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23273:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23263:6:29"},"nodeType":"YulFunctionCall","src":"23263:15:29"},"nodeType":"YulExpressionStatement","src":"23263:15:29"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"23157:127:29"},{"body":{"nodeType":"YulBlock","src":"23335:171:29","statements":[{"body":{"nodeType":"YulBlock","src":"23366:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23387:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23394:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23399:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23390:3:29"},"nodeType":"YulFunctionCall","src":"23390:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23380:6:29"},"nodeType":"YulFunctionCall","src":"23380:31:29"},"nodeType":"YulExpressionStatement","src":"23380:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23431:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23434:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23424:6:29"},"nodeType":"YulFunctionCall","src":"23424:15:29"},"nodeType":"YulExpressionStatement","src":"23424:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23459:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23462:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23452:6:29"},"nodeType":"YulFunctionCall","src":"23452:15:29"},"nodeType":"YulExpressionStatement","src":"23452:15:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23355:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23348:6:29"},"nodeType":"YulFunctionCall","src":"23348:9:29"},"nodeType":"YulIf","src":"23345:132:29"},{"nodeType":"YulAssignment","src":"23486:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23495:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"23498:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"23491:3:29"},"nodeType":"YulFunctionCall","src":"23491:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"23486:1:29"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23320:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"23323:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"23329:1:29","type":""}],"src":"23289:217:29"},{"body":{"nodeType":"YulBlock","src":"23685:180:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23702:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23713:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23695:6:29"},"nodeType":"YulFunctionCall","src":"23695:21:29"},"nodeType":"YulExpressionStatement","src":"23695:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23736:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23747:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23732:3:29"},"nodeType":"YulFunctionCall","src":"23732:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"23752:2:29","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23725:6:29"},"nodeType":"YulFunctionCall","src":"23725:30:29"},"nodeType":"YulExpressionStatement","src":"23725:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23775:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23786:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23771:3:29"},"nodeType":"YulFunctionCall","src":"23771:18:29"},{"hexValue":"696e76616c69642063617264496e76656e746f727920706f736974696f6e","kind":"string","nodeType":"YulLiteral","src":"23791:32:29","type":"","value":"invalid cardInventory position"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23764:6:29"},"nodeType":"YulFunctionCall","src":"23764:60:29"},"nodeType":"YulExpressionStatement","src":"23764:60:29"},{"nodeType":"YulAssignment","src":"23833:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23845:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23856:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23841:3:29"},"nodeType":"YulFunctionCall","src":"23841:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23833:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23662:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23676:4:29","type":""}],"src":"23511:354:29"},{"body":{"nodeType":"YulBlock","src":"23926:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23943:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"23946:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23936:6:29"},"nodeType":"YulFunctionCall","src":"23936:14:29"},"nodeType":"YulExpressionStatement","src":"23936:14:29"},{"nodeType":"YulAssignment","src":"23959:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23977:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23980:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"23967:9:29"},"nodeType":"YulFunctionCall","src":"23967:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"23959:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"23909:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"23917:4:29","type":""}],"src":"23870:121:29"},{"body":{"nodeType":"YulBlock","src":"24077:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"24110:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"24124:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"24134:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24128:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24155:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"24159:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24148:6:29"},"nodeType":"YulFunctionCall","src":"24148:17:29"},"nodeType":"YulExpressionStatement","src":"24148:17:29"},{"nodeType":"YulVariableDeclaration","src":"24178:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24200:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"24204:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"24190:9:29"},"nodeType":"YulFunctionCall","src":"24190:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"24182:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24222:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"24245:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24255:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"24262:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"24274:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24258:3:29"},"nodeType":"YulFunctionCall","src":"24258:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24251:3:29"},"nodeType":"YulFunctionCall","src":"24251:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24241:3:29"},"nodeType":"YulFunctionCall","src":"24241:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"24226:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"24316:23:29","statements":[{"nodeType":"YulAssignment","src":"24318:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"24333:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"24318:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"24298:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"24310:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24295:2:29"},"nodeType":"YulFunctionCall","src":"24295:20:29"},"nodeType":"YulIf","src":"24292:47:29"},{"nodeType":"YulVariableDeclaration","src":"24352:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"24366:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24376:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"24383:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"24388:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24379:3:29"},"nodeType":"YulFunctionCall","src":"24379:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24372:3:29"},"nodeType":"YulFunctionCall","src":"24372:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24362:3:29"},"nodeType":"YulFunctionCall","src":"24362:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"24356:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24406:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"24419:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"24410:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"24504:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"24513:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"24520:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"24506:6:29"},"nodeType":"YulFunctionCall","src":"24506:17:29"},"nodeType":"YulExpressionStatement","src":"24506:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"24454:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"24461:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24451:2:29"},"nodeType":"YulFunctionCall","src":"24451:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"24465:26:29","statements":[{"nodeType":"YulAssignment","src":"24467:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"24480:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"24487:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24476:3:29"},"nodeType":"YulFunctionCall","src":"24476:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"24467:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"24447:3:29","statements":[]},"src":"24443:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"24093:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"24098:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24090:2:29"},"nodeType":"YulFunctionCall","src":"24090:11:29"},"nodeType":"YulIf","src":"24087:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"24049:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"24056:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"24061:10:29","type":""}],"src":"23996:545:29"},{"body":{"nodeType":"YulBlock","src":"24631:81:29","statements":[{"nodeType":"YulAssignment","src":"24641:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"24656:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24674:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"24677:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24670:3:29"},"nodeType":"YulFunctionCall","src":"24670:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24687:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24683:3:29"},"nodeType":"YulFunctionCall","src":"24683:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24666:3:29"},"nodeType":"YulFunctionCall","src":"24666:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24662:3:29"},"nodeType":"YulFunctionCall","src":"24662:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24652:3:29"},"nodeType":"YulFunctionCall","src":"24652:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24698:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"24701:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24694:3:29"},"nodeType":"YulFunctionCall","src":"24694:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"24649:2:29"},"nodeType":"YulFunctionCall","src":"24649:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"24641:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"24608:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"24614:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"24622:4:29","type":""}],"src":"24546:166:29"},{"body":{"nodeType":"YulBlock","src":"24813:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"24823:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"24843:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24837:5:29"},"nodeType":"YulFunctionCall","src":"24837:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"24827:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"24890:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"24892:16:29"},"nodeType":"YulFunctionCall","src":"24892:18:29"},"nodeType":"YulExpressionStatement","src":"24892:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"24862:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"24870:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24859:2:29"},"nodeType":"YulFunctionCall","src":"24859:30:29"},"nodeType":"YulIf","src":"24856:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"24965:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25003:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"24997:5:29"},"nodeType":"YulFunctionCall","src":"24997:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"24971:25:29"},"nodeType":"YulFunctionCall","src":"24971:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"25011:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"24921:43:29"},"nodeType":"YulFunctionCall","src":"24921:97:29"},"nodeType":"YulExpressionStatement","src":"24921:97:29"},{"nodeType":"YulVariableDeclaration","src":"25027:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25044:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"25031:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25054:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25073:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"25058:11:29","type":""}]},{"nodeType":"YulAssignment","src":"25086:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"25099:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"25086:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"25156:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"25170:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"25189:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25201:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25197:3:29"},"nodeType":"YulFunctionCall","src":"25197:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25185:3:29"},"nodeType":"YulFunctionCall","src":"25185:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"25174:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25218:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25262:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"25232:29:29"},"nodeType":"YulFunctionCall","src":"25232:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"25222:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25280:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25289:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"25284:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"25367:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25392:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"25410:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"25415:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25406:3:29"},"nodeType":"YulFunctionCall","src":"25406:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25400:5:29"},"nodeType":"YulFunctionCall","src":"25400:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25385:6:29"},"nodeType":"YulFunctionCall","src":"25385:42:29"},"nodeType":"YulExpressionStatement","src":"25385:42:29"},{"nodeType":"YulAssignment","src":"25444:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25458:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"25466:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25454:3:29"},"nodeType":"YulFunctionCall","src":"25454:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25444:6:29"}]},{"nodeType":"YulAssignment","src":"25485:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"25502:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"25513:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25498:3:29"},"nodeType":"YulFunctionCall","src":"25498:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"25485:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"25314:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"25317:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"25311:2:29"},"nodeType":"YulFunctionCall","src":"25311:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"25326:28:29","statements":[{"nodeType":"YulAssignment","src":"25328:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"25337:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"25340:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25333:3:29"},"nodeType":"YulFunctionCall","src":"25333:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"25328:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"25307:3:29","statements":[]},"src":"25303:236:29"},{"body":{"nodeType":"YulBlock","src":"25587:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"25605:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"25632:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"25637:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25628:3:29"},"nodeType":"YulFunctionCall","src":"25628:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25622:5:29"},"nodeType":"YulFunctionCall","src":"25622:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"25609:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25672:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"25684:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25711:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"25714:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25707:3:29"},"nodeType":"YulFunctionCall","src":"25707:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"25723:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25703:3:29"},"nodeType":"YulFunctionCall","src":"25703:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25733:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25729:3:29"},"nodeType":"YulFunctionCall","src":"25729:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"25699:3:29"},"nodeType":"YulFunctionCall","src":"25699:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25695:3:29"},"nodeType":"YulFunctionCall","src":"25695:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25680:3:29"},"nodeType":"YulFunctionCall","src":"25680:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25665:6:29"},"nodeType":"YulFunctionCall","src":"25665:74:29"},"nodeType":"YulExpressionStatement","src":"25665:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"25558:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"25567:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"25555:2:29"},"nodeType":"YulFunctionCall","src":"25555:19:29"},"nodeType":"YulIf","src":"25552:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25773:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25787:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"25790:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25783:3:29"},"nodeType":"YulFunctionCall","src":"25783:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"25799:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25779:3:29"},"nodeType":"YulFunctionCall","src":"25779:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25766:6:29"},"nodeType":"YulFunctionCall","src":"25766:36:29"},"nodeType":"YulExpressionStatement","src":"25766:36:29"}]},"nodeType":"YulCase","src":"25149:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25154:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"25829:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"25843:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25856:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"25847:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"25892:67:29","statements":[{"nodeType":"YulAssignment","src":"25910:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"25929:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"25934:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25925:3:29"},"nodeType":"YulFunctionCall","src":"25925:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25919:5:29"},"nodeType":"YulFunctionCall","src":"25919:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"25910:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"25873:6:29"},"nodeType":"YulIf","src":"25870:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25979:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"26038:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"26045:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"25985:52:29"},"nodeType":"YulFunctionCall","src":"25985:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25972:6:29"},"nodeType":"YulFunctionCall","src":"25972:81:29"},"nodeType":"YulExpressionStatement","src":"25972:81:29"}]},"nodeType":"YulCase","src":"25821:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"25129:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"25137:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25126:2:29"},"nodeType":"YulFunctionCall","src":"25126:14:29"},"nodeType":"YulSwitch","src":"25119:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"24798:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"24804:3:29","type":""}],"src":"24717:1352:29"},{"body":{"nodeType":"YulBlock","src":"26213:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"26223:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26243:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26237:5:29"},"nodeType":"YulFunctionCall","src":"26237:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"26227:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26298:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"26306:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26294:3:29"},"nodeType":"YulFunctionCall","src":"26294:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"26313:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"26318:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"26259:34:29"},"nodeType":"YulFunctionCall","src":"26259:66:29"},"nodeType":"YulExpressionStatement","src":"26259:66:29"},{"nodeType":"YulAssignment","src":"26334:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26345:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"26350:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26341:3:29"},"nodeType":"YulFunctionCall","src":"26341:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"26334:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"26189:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26194:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"26205:3:29","type":""}],"src":"26074:289:29"},{"body":{"nodeType":"YulBlock","src":"26489:141:29","statements":[{"nodeType":"YulAssignment","src":"26499:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26511:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"26522:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26507:3:29"},"nodeType":"YulFunctionCall","src":"26507:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26499:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26541:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26556:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"26564:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26552:3:29"},"nodeType":"YulFunctionCall","src":"26552:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26534:6:29"},"nodeType":"YulFunctionCall","src":"26534:36:29"},"nodeType":"YulExpressionStatement","src":"26534:36:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26590:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"26601:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26586:3:29"},"nodeType":"YulFunctionCall","src":"26586:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26610:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"26618:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26606:3:29"},"nodeType":"YulFunctionCall","src":"26606:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26579:6:29"},"nodeType":"YulFunctionCall","src":"26579:45:29"},"nodeType":"YulExpressionStatement","src":"26579:45:29"}]},"name":"abi_encode_tuple_t_uint8_t_uint8__to_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26450:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26461:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26469:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26480:4:29","type":""}],"src":"26368:262:29"},{"body":{"nodeType":"YulBlock","src":"26744:76:29","statements":[{"nodeType":"YulAssignment","src":"26754:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26766:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"26777:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26762:3:29"},"nodeType":"YulFunctionCall","src":"26762:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26754:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26796:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"26807:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26789:6:29"},"nodeType":"YulFunctionCall","src":"26789:25:29"},"nodeType":"YulExpressionStatement","src":"26789:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26713:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26724:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26735:4:29","type":""}],"src":"26635:185:29"},{"body":{"nodeType":"YulBlock","src":"26916:558:29","statements":[{"body":{"nodeType":"YulBlock","src":"26962:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26971:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26974:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26964:6:29"},"nodeType":"YulFunctionCall","src":"26964:12:29"},"nodeType":"YulExpressionStatement","src":"26964:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"26937:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"26946:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26933:3:29"},"nodeType":"YulFunctionCall","src":"26933:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"26958:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"26929:3:29"},"nodeType":"YulFunctionCall","src":"26929:32:29"},"nodeType":"YulIf","src":"26926:52:29"},{"nodeType":"YulVariableDeclaration","src":"26987:30:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27007:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27001:5:29"},"nodeType":"YulFunctionCall","src":"27001:16:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"26991:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"27060:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27069:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27072:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27062:6:29"},"nodeType":"YulFunctionCall","src":"27062:12:29"},"nodeType":"YulExpressionStatement","src":"27062:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"27032:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"27040:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27029:2:29"},"nodeType":"YulFunctionCall","src":"27029:30:29"},"nodeType":"YulIf","src":"27026:50:29"},{"nodeType":"YulVariableDeclaration","src":"27085:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27099:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"27110:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27095:3:29"},"nodeType":"YulFunctionCall","src":"27095:22:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27089:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"27165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27167:6:29"},"nodeType":"YulFunctionCall","src":"27167:12:29"},"nodeType":"YulExpressionStatement","src":"27167:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27144:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"27148:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27140:3:29"},"nodeType":"YulFunctionCall","src":"27140:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"27155:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"27136:3:29"},"nodeType":"YulFunctionCall","src":"27136:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27129:6:29"},"nodeType":"YulFunctionCall","src":"27129:35:29"},"nodeType":"YulIf","src":"27126:55:29"},{"nodeType":"YulVariableDeclaration","src":"27190:19:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27206:2:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27200:5:29"},"nodeType":"YulFunctionCall","src":"27200:9:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"27194:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27218:62:29","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"27276:2:29"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"27247:28:29"},"nodeType":"YulFunctionCall","src":"27247:32:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"27231:15:29"},"nodeType":"YulFunctionCall","src":"27231:49:29"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"27222:5:29","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"27296:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"27303:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27289:6:29"},"nodeType":"YulFunctionCall","src":"27289:17:29"},"nodeType":"YulExpressionStatement","src":"27289:17:29"},{"body":{"nodeType":"YulBlock","src":"27352:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27361:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27364:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27354:6:29"},"nodeType":"YulFunctionCall","src":"27354:12:29"},"nodeType":"YulExpressionStatement","src":"27354:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27329:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"27333:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27325:3:29"},"nodeType":"YulFunctionCall","src":"27325:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"27338:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27321:3:29"},"nodeType":"YulFunctionCall","src":"27321:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"27343:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27318:2:29"},"nodeType":"YulFunctionCall","src":"27318:33:29"},"nodeType":"YulIf","src":"27315:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27416:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"27420:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27412:3:29"},"nodeType":"YulFunctionCall","src":"27412:11:29"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"27429:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"27436:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27425:3:29"},"nodeType":"YulFunctionCall","src":"27425:14:29"},{"name":"_2","nodeType":"YulIdentifier","src":"27441:2:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"27377:34:29"},"nodeType":"YulFunctionCall","src":"27377:67:29"},"nodeType":"YulExpressionStatement","src":"27377:67:29"},{"nodeType":"YulAssignment","src":"27453:15:29","value":{"name":"array","nodeType":"YulIdentifier","src":"27463:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"27453:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26882:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"26893:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"26905:6:29","type":""}],"src":"26825:649:29"},{"body":{"nodeType":"YulBlock","src":"27755:1145:29","statements":[{"nodeType":"YulVariableDeclaration","src":"27765:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"27776:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"27769:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27786:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"27809:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"27803:5:29"},"nodeType":"YulFunctionCall","src":"27803:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"27790:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27825:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"27865:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"27839:25:29"},"nodeType":"YulFunctionCall","src":"27839:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"27829:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27884:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"27894:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27888:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"27945:126:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27966:3:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"27975:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27990:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27986:3:29"},"nodeType":"YulFunctionCall","src":"27986:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27971:3:29"},"nodeType":"YulFunctionCall","src":"27971:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27959:6:29"},"nodeType":"YulFunctionCall","src":"27959:37:29"},"nodeType":"YulExpressionStatement","src":"27959:37:29"},{"nodeType":"YulAssignment","src":"28009:52:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28020:3:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"28029:6:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"28051:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28044:6:29"},"nodeType":"YulFunctionCall","src":"28044:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28037:6:29"},"nodeType":"YulFunctionCall","src":"28037:22:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"28025:3:29"},"nodeType":"YulFunctionCall","src":"28025:35:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28016:3:29"},"nodeType":"YulFunctionCall","src":"28016:45:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"28009:3:29"}]}]},"nodeType":"YulCase","src":"27938:133:29","value":{"kind":"number","nodeType":"YulLiteral","src":"27943:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"28087:349:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28108:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"28111:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28101:6:29"},"nodeType":"YulFunctionCall","src":"28101:17:29"},"nodeType":"YulExpressionStatement","src":"28101:17:29"},{"nodeType":"YulVariableDeclaration","src":"28131:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"28141:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"28135:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28158:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28183:1:29","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"28186:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"28173:9:29"},"nodeType":"YulFunctionCall","src":"28173:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"28162:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28202:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"28211:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"28206:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"28279:111:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28308:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"28313:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28304:3:29"},"nodeType":"YulFunctionCall","src":"28304:11:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"28323:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"28317:5:29"},"nodeType":"YulFunctionCall","src":"28317:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28297:6:29"},"nodeType":"YulFunctionCall","src":"28297:35:29"},"nodeType":"YulExpressionStatement","src":"28297:35:29"},{"nodeType":"YulAssignment","src":"28349:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"28364:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"28373:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28360:3:29"},"nodeType":"YulFunctionCall","src":"28360:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"28349:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"28236:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"28239:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"28233:2:29"},"nodeType":"YulFunctionCall","src":"28233:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"28247:19:29","statements":[{"nodeType":"YulAssignment","src":"28249:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"28258:1:29"},{"name":"_2","nodeType":"YulIdentifier","src":"28261:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28254:3:29"},"nodeType":"YulFunctionCall","src":"28254:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"28249:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"28229:3:29","statements":[]},"src":"28225:165:29"},{"nodeType":"YulAssignment","src":"28403:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28414:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"28419:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28410:3:29"},"nodeType":"YulFunctionCall","src":"28410:16:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"28403:3:29"}]}]},"nodeType":"YulCase","src":"28080:356:29","value":{"kind":"number","nodeType":"YulLiteral","src":"28085:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"27915:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"27926:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27911:3:29"},"nodeType":"YulFunctionCall","src":"27911:18:29"},"nodeType":"YulSwitch","src":"27904:532:29"},{"nodeType":"YulVariableDeclaration","src":"28445:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"28467:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28461:5:29"},"nodeType":"YulFunctionCall","src":"28461:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"28449:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"28522:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"28530:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28518:3:29"},"nodeType":"YulFunctionCall","src":"28518:17:29"},{"name":"ret","nodeType":"YulIdentifier","src":"28537:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"28542:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"28483:34:29"},"nodeType":"YulFunctionCall","src":"28483:68:29"},"nodeType":"YulExpressionStatement","src":"28483:68:29"},{"nodeType":"YulVariableDeclaration","src":"28560:31:29","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"28577:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"28582:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28573:3:29"},"nodeType":"YulFunctionCall","src":"28573:18:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"28564:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28600:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"28622:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28616:5:29"},"nodeType":"YulFunctionCall","src":"28616:13:29"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"28604:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"28677:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"28685:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28673:3:29"},"nodeType":"YulFunctionCall","src":"28673:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"28692:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"28699:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"28638:34:29"},"nodeType":"YulFunctionCall","src":"28638:70:29"},"nodeType":"YulExpressionStatement","src":"28638:70:29"},{"nodeType":"YulVariableDeclaration","src":"28717:30:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"28731:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"28738:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28727:3:29"},"nodeType":"YulFunctionCall","src":"28727:20:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"28721:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28756:29:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"28778:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28772:5:29"},"nodeType":"YulFunctionCall","src":"28772:13:29"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"28760:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"28833:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"28841:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28829:3:29"},"nodeType":"YulFunctionCall","src":"28829:17:29"},{"name":"_3","nodeType":"YulIdentifier","src":"28848:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"28852:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"28794:34:29"},"nodeType":"YulFunctionCall","src":"28794:67:29"},"nodeType":"YulExpressionStatement","src":"28794:67:29"},{"nodeType":"YulAssignment","src":"28870:24:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"28881:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"28885:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28877:3:29"},"nodeType":"YulFunctionCall","src":"28877:17:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"28870:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"27707:3:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"27712:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"27720:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"27728:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"27736:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"27747:3:29","type":""}],"src":"27479:1421:29"},{"body":{"nodeType":"YulBlock","src":"28957:116:29","statements":[{"nodeType":"YulAssignment","src":"28967:20:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"28982:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"28985:1:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"28978:3:29"},"nodeType":"YulFunctionCall","src":"28978:9:29"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"28967:7:29"}]},{"body":{"nodeType":"YulBlock","src":"29045:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29047:16:29"},"nodeType":"YulFunctionCall","src":"29047:18:29"},"nodeType":"YulExpressionStatement","src":"29047:18:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29016:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29009:6:29"},"nodeType":"YulFunctionCall","src":"29009:9:29"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"29023:1:29"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"29030:7:29"},{"name":"x","nodeType":"YulIdentifier","src":"29039:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"29026:3:29"},"nodeType":"YulFunctionCall","src":"29026:15:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"29020:2:29"},"nodeType":"YulFunctionCall","src":"29020:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"29006:2:29"},"nodeType":"YulFunctionCall","src":"29006:37:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28999:6:29"},"nodeType":"YulFunctionCall","src":"28999:45:29"},"nodeType":"YulIf","src":"28996:71:29"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"28936:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"28939:1:29","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"28945:7:29","type":""}],"src":"28905:168:29"},{"body":{"nodeType":"YulBlock","src":"29243:385:29","statements":[{"nodeType":"YulVariableDeclaration","src":"29253:16:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"29266:3:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"29257:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29278:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"29298:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29292:5:29"},"nodeType":"YulFunctionCall","src":"29292:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"29282:6:29","type":""}]},{"nodeType":"YulAssignment","src":"29314:12:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"29323:3:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29314:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"29335:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"29345:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29339:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29358:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"29376:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29384:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29372:3:29"},"nodeType":"YulFunctionCall","src":"29372:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"29362:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29396:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"29405:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"29400:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"29464:137:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29485:5:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29502:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29496:5:29"},"nodeType":"YulFunctionCall","src":"29496:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"29511:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29492:3:29"},"nodeType":"YulFunctionCall","src":"29492:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29478:6:29"},"nodeType":"YulFunctionCall","src":"29478:39:29"},"nodeType":"YulExpressionStatement","src":"29478:39:29"},{"nodeType":"YulAssignment","src":"29530:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29543:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29550:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29539:3:29"},"nodeType":"YulFunctionCall","src":"29539:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29530:5:29"}]},{"nodeType":"YulAssignment","src":"29566:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29580:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29588:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29576:3:29"},"nodeType":"YulFunctionCall","src":"29576:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29566:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"29426:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"29429:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"29423:2:29"},"nodeType":"YulFunctionCall","src":"29423:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"29437:18:29","statements":[{"nodeType":"YulAssignment","src":"29439:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"29448:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"29451:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29444:3:29"},"nodeType":"YulFunctionCall","src":"29444:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"29439:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"29419:3:29","statements":[]},"src":"29415:186:29"},{"nodeType":"YulAssignment","src":"29610:12:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"29617:5:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"29610:3:29"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"29219:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"29224:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"29235:3:29","type":""}],"src":"29078:550:29"},{"body":{"nodeType":"YulBlock","src":"29836:286:29","statements":[{"nodeType":"YulVariableDeclaration","src":"29846:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29864:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"29869:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29860:3:29"},"nodeType":"YulFunctionCall","src":"29860:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"29873:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29856:3:29"},"nodeType":"YulFunctionCall","src":"29856:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29850:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29891:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"29906:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29914:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29902:3:29"},"nodeType":"YulFunctionCall","src":"29902:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29884:6:29"},"nodeType":"YulFunctionCall","src":"29884:34:29"},"nodeType":"YulExpressionStatement","src":"29884:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29938:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"29949:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29934:3:29"},"nodeType":"YulFunctionCall","src":"29934:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"29958:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29966:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29954:3:29"},"nodeType":"YulFunctionCall","src":"29954:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29927:6:29"},"nodeType":"YulFunctionCall","src":"29927:43:29"},"nodeType":"YulExpressionStatement","src":"29927:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29990:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"30001:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29986:3:29"},"nodeType":"YulFunctionCall","src":"29986:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"30006:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29979:6:29"},"nodeType":"YulFunctionCall","src":"29979:34:29"},"nodeType":"YulExpressionStatement","src":"29979:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30033:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"30044:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30029:3:29"},"nodeType":"YulFunctionCall","src":"30029:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"30049:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30022:6:29"},"nodeType":"YulFunctionCall","src":"30022:31:29"},"nodeType":"YulExpressionStatement","src":"30022:31:29"},{"nodeType":"YulAssignment","src":"30062:54:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"30088:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30100:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"30111:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30096:3:29"},"nodeType":"YulFunctionCall","src":"30096:19:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"30070:17:29"},"nodeType":"YulFunctionCall","src":"30070:46:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30062:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29781:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"29792:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"29800:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"29808:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"29816:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29827:4:29","type":""}],"src":"29633:489:29"},{"body":{"nodeType":"YulBlock","src":"30207:169:29","statements":[{"body":{"nodeType":"YulBlock","src":"30253:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30262:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"30265:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"30255:6:29"},"nodeType":"YulFunctionCall","src":"30255:12:29"},"nodeType":"YulExpressionStatement","src":"30255:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"30228:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"30237:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30224:3:29"},"nodeType":"YulFunctionCall","src":"30224:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"30249:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"30220:3:29"},"nodeType":"YulFunctionCall","src":"30220:32:29"},"nodeType":"YulIf","src":"30217:52:29"},{"nodeType":"YulVariableDeclaration","src":"30278:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30297:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30291:5:29"},"nodeType":"YulFunctionCall","src":"30291:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"30282:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30340:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"30316:23:29"},"nodeType":"YulFunctionCall","src":"30316:30:29"},"nodeType":"YulExpressionStatement","src":"30316:30:29"},{"nodeType":"YulAssignment","src":"30355:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"30365:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"30355:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30173:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"30184:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"30196:6:29","type":""}],"src":"30127:249:29"},{"body":{"nodeType":"YulBlock","src":"30568:309:29","statements":[{"nodeType":"YulVariableDeclaration","src":"30578:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30598:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30592:5:29"},"nodeType":"YulFunctionCall","src":"30592:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"30582:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30653:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"30661:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30649:3:29"},"nodeType":"YulFunctionCall","src":"30649:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"30668:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"30673:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"30614:34:29"},"nodeType":"YulFunctionCall","src":"30614:66:29"},"nodeType":"YulExpressionStatement","src":"30614:66:29"},{"nodeType":"YulVariableDeclaration","src":"30689:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30706:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"30711:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30702:3:29"},"nodeType":"YulFunctionCall","src":"30702:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"30693:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"30727:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"30749:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30743:5:29"},"nodeType":"YulFunctionCall","src":"30743:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"30731:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"30804:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"30812:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30800:3:29"},"nodeType":"YulFunctionCall","src":"30800:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"30819:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"30826:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"30765:34:29"},"nodeType":"YulFunctionCall","src":"30765:70:29"},"nodeType":"YulExpressionStatement","src":"30765:70:29"},{"nodeType":"YulAssignment","src":"30844:27:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"30855:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"30862:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30851:3:29"},"nodeType":"YulFunctionCall","src":"30851:20:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"30844:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"30536:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"30541:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30549:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"30560:3:29","type":""}],"src":"30381:496:29"}]},"contents":"{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_array_uint8_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_tuple_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_array_uint8_dyn(value0, add(headStart, 96))\n let _1 := 32\n mstore(add(headStart, _1), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_uint8_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let pos := tail_2\n let length := mload(value2)\n mstore(tail_2, length)\n pos := add(tail_2, _1)\n let srcPtr := add(value2, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, iszero(iszero(mload(srcPtr))))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_array_uint8_dyn(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(shl(5, length), 0x20)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_array_uint8_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let dst := allocate_memory(array_allocation_size_array_uint8_dyn(_1))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, shl(5, _1)), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n mstore(dst, abi_decode_uint8(src))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_array_uint8_dyn(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let _2 := add(headStart, offset_1)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value2 := add(_2, 32)\n value3 := length\n }\n function abi_encode_tuple_t_contract$_IgammaTicketsContract_$3740__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := abi_decode_uint8(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_array_array_uint8_dyn_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let dst := allocate_memory(array_allocation_size_array_uint8_dyn(_1))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, shl(5, _1)), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, 0xffffffffffffffff)\n {\n let _3 := 0\n revert(_3, _3)\n }\n mstore(dst, abi_decode_array_uint8_dyn(add(add(offset, innerOffset), _2), end))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_array_bytes_calldata_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8t_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n let _1 := 32\n let offset := calldataload(add(headStart, _1))\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n let dst := allocate_memory(array_allocation_size_array_uint8_dyn(_4))\n let dst_1 := dst\n mstore(dst, _4)\n dst := add(dst, _1)\n let srcEnd := add(add(_3, shl(5, _4)), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, _1)\n }\n value1 := dst_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _2) { revert(0, 0) }\n value2 := abi_decode_array_array_uint8_dyn_dyn(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, _2) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_array_bytes_calldata_dyn_calldata(add(headStart, offset_2), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_array$_t_uint8_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_bytes_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n }\n function abi_encode_tuple_t_contract$_IgammaPacksContract_$3694__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_array_uint8_dyn(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__to_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), and(value3, 0xff))\n mstore(add(headStart, 128), value4)\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_available_length_string(src, length, end) -> array\n {\n array := allocate_memory(array_allocation_size_string(length))\n mstore(array, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(array, 0x20), src, length)\n mstore(add(add(array, length), 0x20), 0)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_array$_t_uint8_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_array_bytes_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_bool(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_addresst_uint8t_addresst_uint8(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := abi_decode_uint8(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n value3 := abi_decode_uint8(add(headStart, 96))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IgammaOffersContract_$3734__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_library_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 128)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n let _1 := 32\n mstore(add(headStart, _1), value1)\n mstore(add(headStart, 64), 128)\n let pos := tail_1\n let length := mload(value2)\n mstore(tail_1, length)\n pos := add(headStart, 160)\n let srcPtr := add(value2, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, 96), sub(pos, headStart))\n mstore(pos, value4)\n calldatacopy(add(pos, _1), value3, value4)\n mstore(add(add(pos, value4), _1), 0)\n tail := add(add(pos, and(add(value4, 31), not(31))), _1)\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function decrement_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if iszero(value_1) { panic_error_0x11() }\n ret := add(value_1, not(0))\n }\n function abi_encode_tuple_packed_t_array$_t_uint8_$dyn_calldata_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let pos_1 := pos\n pos_1 := pos\n let srcPtr := value0\n let i := 0\n for { } lt(i, value1) { i := add(i, 1) }\n {\n mstore(pos_1, and(abi_decode_uint8(srcPtr), 0xff))\n let _1 := 0x20\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos_1\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"This card has an offer.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"invalid cardInventory position\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint8_t_uint8__to_t_uint8_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xff))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_string(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), ret, length_1)\n let end_1 := add(ret, length_1)\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), end_1, length_2)\n let _3 := add(end_1, length_2)\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), _3, length_3)\n end := add(_3, length_3)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_array$_t_uint8_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let pos_1 := pos\n let length := mload(value0)\n pos_1 := pos\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, and(mload(srcPtr), 0xff))\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos_1\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":3992},{"length":20,"start":4676},{"length":20,"start":8645},{"length":20,"start":13504}]},"contracts/gamma/libs/LibPackVerifier.sol":{"LibPackVerifier":[{"length":20,"start":4254},{"length":20,"start":13994}]},"contracts/gamma/libs/LibStringUtils.sol":{"LibStringUtils":[{"length":20,"start":12656}]}},"object":"608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x45F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7232D7D4 GT PUSH2 0x24C JUMPI DUP1 PUSH4 0xAD1684FA GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDBFC05CF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE8A7E31D GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE8A7E31D EQ PUSH2 0xA64 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0xA6C JUMPI DUP1 PUSH4 0xEB12D61E EQ PUSH2 0xA7F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xF98FD283 EQ PUSH2 0xAA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDBFC05CF EQ PUSH2 0xA05 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0xA18 JUMPI DUP1 PUSH4 0xE1883C6E EQ PUSH2 0xA2B JUMPI DUP1 PUSH4 0xE4AE0B9B EQ PUSH2 0xA3E JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0xA4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC87B56DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x9BB JUMPI DUP1 PUSH4 0xCAFAA473 EQ PUSH2 0x9CE JUMPI DUP1 PUSH4 0xD322B563 EQ PUSH2 0x9E1 JUMPI DUP1 PUSH4 0xD7093F40 EQ PUSH2 0x9F4 JUMPI DUP1 PUSH4 0xD780C477 EQ PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAD1684FA EQ PUSH2 0x966 JUMPI DUP1 PUSH4 0xB3526185 EQ PUSH2 0x979 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x982 JUMPI DUP1 PUSH4 0xBA6C0FBC EQ PUSH2 0x995 JUMPI DUP1 PUSH4 0xBF400A6A EQ PUSH2 0x9A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x9FF26EFD GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x9FF26EFD EQ PUSH2 0x8F2 JUMPI DUP1 PUSH4 0xA1AF8AD4 EQ PUSH2 0x920 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x933 JUMPI DUP1 PUSH4 0xA419811D EQ PUSH2 0x946 JUMPI DUP1 PUSH4 0xAB535160 EQ PUSH2 0x959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x9038F414 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0x9A5613AD EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0x9C7F707F EQ PUSH2 0x8DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DF73E27 GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x7DF73E27 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0x82D8A118 EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0x886EB60F EQ PUSH2 0x865 JUMPI DUP1 PUSH4 0x88E0EF80 EQ PUSH2 0x878 JUMPI DUP1 PUSH4 0x8BF670C8 EQ PUSH2 0x898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7232D7D4 EQ PUSH2 0x7EF JUMPI DUP1 PUSH4 0x79E8DADC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0x7CE65F7B EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0x7CF86B72 EQ PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D GT PUSH2 0x35D JUMPI DUP1 PUSH4 0x5312EA8E GT PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x6D0AF178 GT PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6D0AF178 EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x7AE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x7C1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x7155A3AC EQ PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5312EA8E EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0x5E31CE48 EQ PUSH2 0x75A JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x76D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x780 JUMPI DUP1 PUSH4 0x68CC5BC1 EQ PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30F5CC58 GT PUSH2 0x32C JUMPI DUP1 PUSH4 0x30F5CC58 EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0x4039327E EQ PUSH2 0x6A7 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x4C03CD0B EQ PUSH2 0x6D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2CA699E7 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x655 JUMPI DUP1 PUSH4 0x2F9E026A EQ PUSH2 0x681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 GT PUSH2 0x3EB JUMPI DUP1 PUSH4 0x203335F6 GT PUSH2 0x3AF JUMPI DUP1 PUSH4 0x203335F6 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0x20965A5F EQ PUSH2 0x5ED JUMPI DUP1 PUSH4 0x21A7C6B0 EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x609 JUMPI DUP1 PUSH4 0x241A08FE EQ PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x155E2F92 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x1585CC4E EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x5C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81812FC GT PUSH2 0x432 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xE316AB7 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x128916DC EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x1306952C EQ PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x435DCAF EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x7B2E246 EQ PUSH2 0x4C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x477 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x4389 JUMP JUMPDEST PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49F PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xAC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4416 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0xE79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP2 SWAP1 PUSH2 0x44D1 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x4D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x4FF CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0xF0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x44FD JUMP JUMPDEST PUSH2 0xF34 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x52F PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xFE9 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x108C JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1118 JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1195 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x47B3 JUMP JUMPDEST PUSH2 0x1266 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5FB CALLDATASIZE PUSH1 0x4 PUSH2 0x48A9 JUMP JUMPDEST PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x617 CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x62A CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x63D CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x1A17 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x650 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1A24 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4946 JUMP JUMPDEST PUSH2 0x1C77 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FAD JUMP JUMPDEST PUSH2 0x717 PUSH2 0x6E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x755 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FB9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x768 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x77B CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2119 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x797 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x2124 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7BC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x7CF CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x21E7 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x222F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7EA CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x2243 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7FD CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x22A3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x22F9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2306 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x82B CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x83E CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x23C3 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x886 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x8A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x241F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x504 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x281E JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x8ED CALLDATASIZE PUSH1 0x4 PUSH2 0x4A49 JUMP JUMPDEST PUSH2 0x282D JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x900 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x92E CALLDATASIZE PUSH1 0x4 PUSH2 0x4AAC JUMP JUMPDEST PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x941 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B00 JUMP JUMPDEST PUSH2 0x2C49 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x954 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2C54 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x974 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B39 JUMP JUMPDEST PUSH2 0x2CF3 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x990 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B91 JUMP JUMPDEST PUSH2 0x2F86 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2FF3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x9C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x323F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9DC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x324A JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x12 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x32ED JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA13 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x331A JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA26 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x335D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA39 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x504 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x3430 JUMP JUMPDEST PUSH2 0x477 PUSH2 0xA7A CALLDATASIZE PUSH1 0x4 PUSH2 0x4C10 JUMP JUMPDEST PUSH2 0x343D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA8D CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x346B JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAA0 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x34E2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAB3 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x3520 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x356A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xCAF JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO PUSH2 0xC9D JUMPI DUP1 DUP6 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 AND DUP4 MSTORE SWAP1 SWAP3 MSTORE KECCAK256 SLOAD DUP6 MLOAD SWAP1 DUP3 AND SWAP2 DUP7 SWAP2 SWAP1 DUP6 AND SWAP1 DUP2 LT PUSH2 0xBE5 JUMPI PUSH2 0xBE5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC6A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST DUP4 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xC7F JUMPI PUSH2 0xC7F PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 PUSH2 0xC99 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 PUSH2 0xCA7 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB46 JUMP JUMPDEST POP PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCD PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCF6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD16 JUMPI PUSH2 0xD16 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD3F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD5F JUMPI PUSH2 0xD5F PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD88 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0xE67 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH2 0xDAB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDC5 JUMPI PUSH2 0xDC5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDEB JUMPI PUSH2 0xDEB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE05 JUMPI PUSH2 0xE05 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xE2B JUMPI PUSH2 0xE2B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE45 JUMPI PUSH2 0xE45 PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP1 PUSH2 0xE5F DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD8E JUMP JUMPDEST POP SWAP2 SWAP11 SWAP1 SWAP10 POP SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF 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 0xEB4 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xED6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF16 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC3 JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 CALLER PUSH2 0x35C8 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF73 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x982088F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x982088F0 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xFE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1019 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1041 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x538B3425A321783393AD250DB10356B8B3523EF29A40DE015C5218213DE0EAD0 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x10CE SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x110F SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x11BF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0xFF DUP6 AND ISZERO DUP1 PUSH2 0x127E JUMPI POP PUSH1 0xF SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND GT JUMPDEST ISZERO PUSH2 0x129C JUMPI PUSH1 0x40 MLOAD PUSH4 0xB154B3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x131D JUMPI PUSH2 0x130B CALLER DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12C0 JUMPI PUSH2 0x12C0 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x12DA JUMPI PUSH2 0x12DA PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP7 DUP2 DUP2 LT PUSH2 0x12F4 JUMPI PUSH2 0x12F4 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x4D97 JUMP JUMPDEST PUSH2 0x35D5 JUMP JUMPDEST DUP1 PUSH2 0x1315 DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x129F JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 SUB PUSH2 0x1363 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x137E SWAP1 DUP4 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3C DUP3 LT PUSH2 0x1436 JUMPI PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FD SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x14 SLOAD DUP2 LT DUP1 PUSH2 0x1412 JUMPI POP PUSH1 0x14 SLOAD PUSH1 0x12 SLOAD LT JUMPDEST ISZERO PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCDB3117 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xCDB3117 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1483 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14A7 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST GT SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x16CE JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x14D8 JUMPI PUSH2 0x14D8 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 ISZERO PUSH2 0x164A JUMPI PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x1551 JUMPI PUSH2 0x1551 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1566 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15D6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST ISZERO PUSH2 0x164A JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 SWAP2 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x15FF JUMPI PUSH2 0x15FF PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1614 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND LT ISZERO PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH4 0x483E9B8D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x166C JUMPI PUSH2 0x166C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1681 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x16A8 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x14AE JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x16EE SWAP1 DUP5 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH2 0x1703 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 CALLER SWAP1 PUSH32 0xDBCDA3B6D52A6F69C85189CA3F35E5BE8A2E3D052FEA47F656FF00384B0C47B1 SWAP1 PUSH1 0x0 SWAP1 LOG3 DUP3 ISZERO PUSH2 0x131D JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND SWAP2 PUSH2 0x1765 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1816 CALLER PUSH1 0x16 DUP1 SLOAD PUSH2 0x178F SWAP1 PUSH2 0x4CBF 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 0x17BB SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1808 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1808 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x79 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x182A SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x14 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18AD SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFA8213D3 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFA8213D3 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x2 SWAP3 POP CALLER SWAP2 POP PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1970 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x197D DUP4 DUP4 CALLER PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x19CB CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x35D5 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x1A8A JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SUB PUSH2 0x1AB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B3A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP10 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x1B6B JUMPI POP DUP1 JUMPDEST PUSH2 0x1B87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1BB6 DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x1C05 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x1B6E5F928A38F442936BBDF4696F128A543B8E43730594344A66C028D0B9C3DA DUP5 PUSH1 0x40 MLOAD PUSH2 0x1C6A SWAP2 SWAP1 PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1CA7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x1D1C SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x1D29 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D3A SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x19CB JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1D5E JUMPI PUSH2 0x1D5E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 EQ PUSH2 0x1DA9 JUMPI PUSH2 0x1389 PUSH1 0x1A PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1D89 JUMPI PUSH2 0x1D89 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB9 GT JUMPDEST PUSH2 0x1E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642063617264496E76656E746F727920706F736974696F6E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1E3C JUMPI PUSH2 0x1E3C PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1E66 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 MLOAD SWAP1 SWAP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1E9A JUMPI PUSH2 0x1E9A PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1ED3 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x1EF7 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1D43 JUMP JUMPDEST PUSH1 0x16 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF 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 0x1F38 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F85 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F5A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F85 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F68 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2F86 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF3F PUSH1 0x0 DUP3 CALLER PUSH2 0x3A4F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1FE9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1FF3 ADDRESS PUSH2 0x21E7 JUMP JUMPDEST LT ISZERO PUSH2 0x2012 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2024 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20A3 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 SWAP1 CALLER SWAP1 PUSH32 0x23D6711A1D031134A36921253C75AA59E967D38E369AC625992824315E204F20 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x20FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2111 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x358F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2154 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x21A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2237 PUSH2 0x3B48 JUMP JUMPDEST PUSH2 0x2241 PUSH1 0x0 PUSH2 0x3B75 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x226E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4E09 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x22D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x22F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SSTORE JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2336 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x235B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23ED JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x244D JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x78 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 SUB PUSH2 0x24BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x12 SLOAD LT ISZERO PUSH2 0x24E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2530 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2554 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x13 SLOAD DUP2 LT ISZERO PUSH2 0x2579 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x78 DUP2 PUSH1 0xFF AND GT PUSH2 0x2608 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x25B6 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x2608 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x25E2 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x257D JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x2627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3DE829 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26BF CALLER PUSH1 0x15 DUP1 SLOAD PUSH2 0x2638 SWAP1 PUSH2 0x4CBF 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 0x2664 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2686 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x26B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2694 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x78 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x13 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x273D SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x13 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2752 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F27A03F PUSH1 0xE2 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFC9E80FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27C6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x27E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE07C7C8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 SWAP1 CALLER SWAP1 PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x285D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x15 PUSH2 0x2869 DUP4 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x16 PUSH2 0x2876 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0x2885 SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH1 0x40 MLOAD PUSH2 0x289B SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0xABFD337AC5625B7DC2DDD3D3BD465FB1DEC15322EEEED81032268B337880BEC6 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x28F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SUB PUSH2 0x2920 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BF5 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x294D JUMPI PUSH2 0x294D PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2962 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x299C JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x29BE JUMPI PUSH2 0x29BE PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x29D3 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x29FA DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x1C PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x2A4C JUMPI PUSH2 0x2A4C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2A61 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x2A88 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x18 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2BE3 JUMPI PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP8 DUP8 DUP7 DUP2 DUP2 LT PUSH2 0x2ADD JUMPI PUSH2 0x2ADD PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2AF2 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B62 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 SWAP1 DUP3 DUP9 DUP9 DUP8 DUP2 DUP2 LT PUSH2 0x2B8B JUMPI PUSH2 0x2B8B PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2BA0 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND GT SWAP1 POP DUP2 ISZERO DUP1 PUSH2 0x2BC4 JUMPI POP DUP1 JUMPDEST PUSH2 0x2BE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST DUP1 PUSH2 0x2BED DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2923 JUMP JUMPDEST POP DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2C06 SWAP3 SWAP2 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 CALLER SWAP1 PUSH32 0x368EB521419FE880268B0D75C05EAA2DA7AE9CCF468BE86A848F7054366D2B9B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0xF3F CALLER DUP4 DUP4 PUSH2 0x3BC7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2C84 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xF3F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2CC7 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x2CEB SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2C87 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D1E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D46 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D6E JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO DUP1 PUSH2 0x2DC9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO JUMPDEST ISZERO PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2E1C DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2E6B DUP4 PUSH2 0x4C87 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2EBA DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2F09 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x52819375A02768CB5083D7B729260C6DB2309FCB5C9161201ADA89D30D00D524 DUP8 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F76 SWAP3 SWAP2 SWAP1 PUSH1 0xFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F91 DUP5 DUP5 DUP5 PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x19CB DUP5 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2FCD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x3031 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3107 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30B7 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x30E8 JUMPI POP DUP1 JUMPDEST PUSH2 0x3104 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x3133 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 PUSH1 0x17 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2F PUSH1 0xF8 SHL DUP2 MSTORE POP DUP4 PUSH1 0xFF AND PUSH20 0x0 PUSH4 0x6900A3AE SWAP1 SWAP2 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31A8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x31C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31ED SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x173539B7B7 PUSH1 0xD9 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x321E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x505A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xF3F CALLER DUP3 DUP5 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAC3 DUP3 PUSH2 0x3D80 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x327A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x32A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5A78287A942B8EA0DA8734A4EB919DF11E564CC48301FFCB582DC8612D98208F SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 PUSH1 0x64 SWAP2 PUSH2 0x330B SWAP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5109 JUMP JUMPDEST PUSH2 0x3315 SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x334A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x338D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x33B5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x342B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x349B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3B9DB689 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x773B6D12 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x34EA PUSH2 0x3B48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3514 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x351D DUP2 PUSH2 0x3B75 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x3550 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0xAC3 JUMPI POP PUSH2 0xAC3 DUP3 PUSH2 0x3E91 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0xAC3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD3E6A7AD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 AND SWAP1 PUSH4 0xD3E6A7AD SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3620 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3644 SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP4 MLOAD LT PUSH2 0x368D JUMPI PUSH1 0x40 MLOAD PUSH4 0x9DCCA733 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3759 JUMPI PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x36DA SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x36F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x371B SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x3757 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8BAA579F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x37CE SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x37DB SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x37EC SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x399A JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3810 JUMPI PUSH2 0x3810 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 SUB PUSH2 0x3875 JUMPI PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB8 LT ISZERO PUSH2 0x3870 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38C7 JUMP JUMPDEST PUSH2 0x1388 PUSH1 0x1A PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x388E JUMPI PUSH2 0x388E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x38C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x38DD JUMPI PUSH2 0x38DD PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3907 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 MLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x393B JUMPI PUSH2 0x393B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3974 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37F5 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x39AA SWAP2 SWAP1 PUSH2 0x5120 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xBABE8F5E83E93AB103DDF917B4292A19335A5128B3530BEDD896A681CDD945E3 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x3A26 DUP6 DUP3 PUSH2 0x3FE7 JUMP JUMPDEST PUSH2 0x3A30 DUP2 DUP6 PUSH2 0x4001 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x10 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3A43 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x3A7C JUMPI PUSH2 0x3A7C DUP2 DUP5 DUP7 PUSH2 0x4051 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3ABA JUMPI PUSH2 0x3A99 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x3AE9 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2241 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3BF9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x3CA0 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x5159 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x3CDB JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x3CD8 SWAP2 DUP2 ADD SWAP1 PUSH2 0x5196 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x3D44 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x3D09 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3D3C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xFE2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D8B DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x3DA5 SWAP1 PUSH2 0x4CBF 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 0x3DD1 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3E1E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DF3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3E1E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3E01 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x3E3C PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3E4E JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x3E80 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3E68 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3E89 DUP5 PUSH2 0x40B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3EC2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xAC3 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xAC3 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x3EF5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x3FB7 JUMPI PUSH1 0x0 PUSH2 0x3F05 DUP5 PUSH2 0x358F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3F31 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3F44 JUMPI POP PUSH2 0x3F42 DUP2 DUP5 PUSH2 0x343D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x3F6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3FB5 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x412A JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x4019 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x405C DUP4 DUP4 DUP4 PUSH2 0x4141 JUMP JUMPDEST PUSH2 0x1FA8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x408A JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x40C0 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x40D8 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x40F8 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x4123 JUMP JUMPDEST DUP1 PUSH2 0x4102 DUP5 PUSH2 0x41A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4113 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x4134 DUP4 DUP4 PUSH2 0x4236 JUMP JUMPDEST PUSH2 0x1FA8 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3E89 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x417B JUMPI POP PUSH2 0x417B DUP5 DUP5 PUSH2 0x343D JUMP JUMPDEST DUP1 PUSH2 0x3E89 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x41B1 DUP4 PUSH2 0x429B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41D0 JUMPI PUSH2 0x41D0 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x4204 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4260 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426E DUP4 DUP4 PUSH1 0x0 PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x42DA JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x4306 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x4324 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x433C JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4350 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4362 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAC3 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x439B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x440B JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x43EC JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4429 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x43D8 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH2 0x443C DUP3 DUP8 PUSH2 0x43D8 JUMP JUMPDEST DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE DUP3 DUP8 ADD SWAP4 POP SWAP1 DUP3 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4473 JUMPI DUP5 MLOAD ISZERO ISZERO DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4455 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x449C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4484 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x44BD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4123 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x451B DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4567 JUMPI PUSH2 0x4567 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4588 JUMPI PUSH2 0x4588 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x45A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x45CE PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST PUSH2 0x453F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x45ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI PUSH2 0x4602 DUP2 PUSH2 0x4592 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x45F1 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x464E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x465A DUP9 DUP4 DUP10 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x46A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x46C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x46D2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x46E0 PUSH1 0x20 DUP5 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x470A PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x474C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x475A DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x45A8 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x472D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x477A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x47CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47D4 DUP7 PUSH2 0x4592 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP1 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x47F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4813 PUSH2 0x45C9 DUP3 PUSH2 0x456F JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP4 ADD DUP5 ADD SWAP1 DUP5 DUP2 ADD SWAP1 DUP13 DUP4 GT ISZERO PUSH2 0x4832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x4850 JUMPI DUP5 CALLDATALOAD DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x4837 JUMP JUMPDEST SWAP9 POP POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x4868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4874 DUP11 DUP5 DUP12 ADD PUSH2 0x46E9 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x488A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4898 DUP9 DUP3 DUP10 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x48BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x48D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48DE DUP6 DUP3 DUP7 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x48FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x490A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x491A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x493D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP3 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x495B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4966 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4988 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4994 DUP7 DUP3 DUP8 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x49E2 JUMPI PUSH2 0x49E2 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49FE PUSH2 0x45C9 DUP5 PUSH2 0x49C9 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x4A12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4A3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x49F0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4A73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A7F DUP7 DUP4 DUP8 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AA2 DUP6 DUP3 DUP7 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4AC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4ACC DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4AE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4AF3 DUP7 DUP3 DUP8 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4B1E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x499E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4B5A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH2 0x4B68 PUSH1 0x20 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x4B78 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B86 PUSH1 0x60 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4BA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4BB2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x4BC2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x4BF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C04 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x49F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4C2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x4C9D JUMPI PUSH2 0x4C9D PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x4CB8 JUMPI PUSH2 0x4CB8 PUSH2 0x4C71 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x4CD3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x23BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP4 ADD DUP2 SWAP1 MSTORE DUP6 MLOAD SWAP1 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP7 DUP2 ADD SWAP2 PUSH1 0xA0 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4D45 JUMPI DUP5 MLOAD PUSH1 0xFF AND DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4D26 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x60 DUP7 ADD MSTORE DUP6 DUP2 MSTORE DUP6 DUP8 DUP4 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP8 ADD DUP4 ADD MSTORE PUSH1 0x1F SWAP1 SWAP6 ADD PUSH1 0x1F NOT AND SWAP1 SWAP5 ADD SWAP1 SWAP4 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND DUP1 PUSH2 0x4E1C JUMPI PUSH2 0x4E1C PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 NOT ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP3 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4E55 JUMPI PUSH1 0xFF PUSH2 0x4E3F DUP4 PUSH2 0x4592 JUMP JUMPDEST AND DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4E2C JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x5468697320636172642068617320616E206F666665722E000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4EC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x4EF3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x131D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4EFF JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F2B JUMPI PUSH2 0x4F2B PUSH2 0x4529 JUMP JUMPDEST PUSH2 0x4F3F DUP2 PUSH2 0x4F39 DUP5 SLOAD PUSH2 0x4CBF JUMP JUMPDEST DUP5 PUSH2 0x4ECC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F74 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F5C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x131D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FA3 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4F84 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x4FC1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4FE3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4481 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4FFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5015 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x5026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x5034 PUSH2 0x45C9 DUP3 PUSH2 0x49C9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x5049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x110F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 SLOAD PUSH2 0x5068 DUP2 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x5080 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x5095 JUMPI PUSH2 0x50C4 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x50C4 JUMP JUMPDEST DUP11 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x50BB JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x50A2 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP6 MLOAD PUSH2 0x50D8 DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH2 0x4481 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50EB DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH2 0x4481 JUMP JUMPDEST DUP5 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50FE DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x514D JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x512E JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x518C SWAP1 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x51C5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x51D9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xE0 BYTE 0xBF SMOD CALLDATASIZE PUSH5 0x11DE543430 0xD2 0xCE OR 0xBD SWAP14 DUP6 0xBB PUSH29 0x4732A9D9486B45E32B9C4A6764736F6C63430008140033000000000000 ","sourceMap":"1668:18927:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;737:181:21;;;;;;:::i;:::-;;:::i;:::-;;;565:14:29;;558:22;540:41;;528:2;513:18;737:181:21;;;;;;;;9625:936:20;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2365:89:6:-;;;:::i;:::-;;;;;;;:::i;3080:60:20:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3342:25:29;;;3330:2;3315:18;3080:60:20;3196:177:29;3497:154:6;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3727:32:29;;;3709:51;;3697:2;3682:18;3497:154:6;3563:203:29;3323:113:6;;;;;;:::i;:::-;;:::i;:::-;;5976:119:20;;;;;;:::i;:::-;;:::i;6099:251::-;;;;;;:::i;:::-;;:::i;10565:245::-;;;;;;:::i;:::-;;:::i;2598:49::-;;;;;;;;;;;;1911;;;;;-1:-1:-1;;;;;1911:49:20;;;8504:137;;;;;;:::i;:::-;;:::i;9323:157::-;;;;;;:::i;:::-;;:::i;:::-;;;7135:4:29;7123:17;;;7105:36;;7093:2;7078:18;9323:157:20;6963:184:29;5751:114:20;;;;;;:::i;:::-;;:::i;10997:386::-;;;;;;:::i;:::-;;:::i;16613:1564::-;;;;;;:::i;:::-;;:::i;2291:39::-;;;;;;4143:578:6;;;;;;:::i;:::-;;:::i;8218:142:20:-;;;;;;:::i;:::-;;:::i;10814:179::-;;;;;;:::i;:::-;;:::i;13284:897::-;;;;;;:::i;:::-;;:::i;8981:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9054:23:20;9035:4;9054:23;;;:10;:23;;;;;;;;;8981:101;1811:45;;;;;-1:-1:-1;;;;;1811:45:20;;;19966:573;;;;;;:::i;:::-;;:::i;2490:28::-;;;:::i;4787:132:6:-;;;;;;:::i;:::-;;:::i;561:314:9:-;;;;;;:::i;:::-;;:::i;2932:47:20:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12148:25:29;;;12204:2;12189:18;;12182:34;;;;12259:14;;12252:22;12232:18;;;12225:50;;;;12323:4;12311:17;;;12306:2;12291:18;;12284:45;12360:3;12345:19;;12338:35;12135:3;12120:19;2932:47:20;11899:480:29;19449:269:20;;;;;;:::i;:::-;;:::i;6862:110::-;;;;;;:::i;:::-;;:::i;2185:118:6:-;;;;;;:::i;:::-;;:::i;2204:34:20:-;;;;;;7955:139;;;;;;:::i;:::-;;:::i;2095:42::-;;;;;;;;;;;;5649:98;;;;;;:::i;:::-;;:::i;1920:208:6:-;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;8364:136:20:-;;;;;;:::i;:::-;;:::i;6976:150::-;;;;;;:::i;:::-;;:::i;2463:23::-;;;:::i;7294:165::-;;;;;;:::i;:::-;;:::i;9484:137::-;;;;;;:::i;:::-;;:::i;9086:104::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9160:25:20;9141:4;9160:25;;;:19;:25;;;;;;;;;9086:104;2169:31;;;;;;8827:150;;;;;;:::i;:::-;;:::i;2983:69::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8645:178;;;;;;:::i;:::-;;:::i;1638:85:0:-;1710:6;;-1:-1:-1;;;;;1710:6:0;1638:85;;15326:1165:20;;;:::i;2518:93:6:-;;;:::i;2651:53:20:-;;;;;;;;;;;;7463:212;;;;;;:::i;:::-;;:::i;3144:87::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;14185:1021;;;;;;:::i;:::-;;:::i;3718:144:6:-;;;;;;:::i;:::-;;:::i;19779:183:20:-;;;;;;:::i;:::-;;:::i;2051:40::-;;;;;;;;;12720:560;;;;;;:::i;:::-;;:::i;2375:43::-;;;;;;4985:208:6;;;;;;:::i;:::-;;:::i;7130:160:20:-;;;;;;:::i;:::-;;:::i;18181:878::-;;;;;;:::i;:::-;;:::i;566:165:21:-;;;;;;:::i;:::-;;:::i;6354:242:20:-;;;;;;:::i;:::-;;:::i;1860:47::-;;;;;-1:-1:-1;;;;;1860:47:20;;;2253:34;;;;;;9194:125;;;:::i;7679:137::-;;;;;;:::i;:::-;;:::i;6600:258::-;;;;;;:::i;:::-;;:::i;8098:116::-;;;;;;:::i;:::-;;:::i;2549:45::-;;;;;;;;;2141:24;;;;;;;;-1:-1:-1;;;;;2141:24:20;;;2522:23;;;:::i;3928:153:6:-;;;;;;:::i;:::-;;:::i;5869:103:20:-;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;7820:131:20:-;;;;;;:::i;:::-;;:::i;737:181:21:-;848:4;875:36;899:11;875:23;:36::i;:::-;868:43;737:181;-1:-1:-1;;737:181:21:o;9625:936:20:-;9774:16;;;9786:3;9774:16;;;;;;;;;9692:14;;;;;;9745:26;;9774:16;;;;;;;;;-1:-1:-1;;9824:16:20;;;9836:3;9824:16;;;;;;;;;9745:45;;-1:-1:-1;9796:25:20;;9824:16;-1:-1:-1;9824:16:20;;;;;;;;-1:-1:-1;;9869:15:20;;;9880:3;9869:15;;;;;;;;;9796:44;;-1:-1:-1;9846:20:20;;9869:15;-1:-1:-1;9869:15:20;;;;;;;;;;-1:-1:-1;9869:15:20;9846:38;;9890:11;9917:7;9912:248;9931:3;9926:1;:8;;;9912:248;;-1:-1:-1;;;;;9953:19:20;;9978:1;9953:19;;;:13;:19;;;;;;;;:22;;;;;;;;;;;;;:26;9949:205;;10012:1;9991:11;10003:5;9991:18;;;;;;;;;;:::i;:::-;:22;;;;:18;;;;;;;;;;:22;;;;-1:-1:-1;;;;;10043:19:20;;;;;;:13;:19;;;;;;:22;;;;;;;;;;10023:17;;10043:22;;;;10023:10;;:17;;;;;;;;;;:::i;:::-;:42;;;;:17;;;;;;;;;:42;10091:19;;:37;;-1:-1:-1;;;10091:37:20;;-1:-1:-1;;;;;17316:32:29;;;10091:37:20;;;17298:51:29;17385:17;;;17365:18;;;17358:45;10091:19:20;;;:28;;17271:18:29;;10091:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10075:6;10082:5;10075:13;;;;;;;;;;:::i;:::-;:53;;;:13;;;;;;;;;;;:53;10138:7;;;;:::i;:::-;;;;9949:205;9936:3;;;;:::i;:::-;;;;9912:248;;;;10166:30;10211:5;10199:18;;-1:-1:-1;;;;;10199:18:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10199:18:20;;10166:51;;10223:28;10266:5;10254:18;;-1:-1:-1;;;;;10254:18:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10254:18:20;;10223:49;;10278:29;10321:5;10310:17;;-1:-1:-1;;;;;10310:17:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10310:17:20;;10278:49;;10339:9;10334:160;10354:5;10350:9;;:1;:9;10334:160;;;10395:11;10407:1;10395:14;;;;;;;;:::i;:::-;;;;;;;10374:15;10390:1;10374:18;;;;;;;;:::i;:::-;;;;;;:35;;;;;;;;;;;10436:10;10447:1;10436:13;;;;;;;;:::i;:::-;;;;;;;10417;10431:1;10417:16;;;;;;;;:::i;:::-;;;;;;:32;;;;;;;;;;;10478:6;10485:1;10478:9;;;;;;;;:::i;:::-;;;;;;;10457:15;10473:1;10457:18;;;;;;;;:::i;:::-;:30;;;:18;;;;;;;;;;;:30;10361:3;;;;:::i;:::-;;;;10334:160;;;-1:-1:-1;10508:15:20;;10525:13;;-1:-1:-1;10508:15:20;;-1:-1:-1;9625:936:20;-1:-1:-1;;;;;;9625:936:20:o;2365:89:6:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:12;3394:8:6;:35::i;:::-;3323:113;;:::o;5976:119:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6049:41:::1;::::0;-1:-1:-1;;;6049:41:20;;:11:::1;:41;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;6049:24:20::1;::::0;::::1;::::0;18679:18:29;;6049:41:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5976:119:::0;:::o;6099:251::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6198:20;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;6226:19:::2;:64:::0;;-1:-1:-1;;;;;;6226:64:20::2;-1:-1:-1::0;;;;;6226:64:20;::::2;::::0;;::::2;::::0;;;6301:44:::2;::::0;::::2;::::0;-1:-1:-1;;6301:44:20::2;4644:1:::1;6099:251:::0;:::o;10565:245::-;10728:77;;-1:-1:-1;;;10728:77:20;;10699:14;;10728:15;;:32;;:77;;10761:10;;10773;;10785:8;;10795:9;;;;10728:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10721:84;10565:245;-1:-1:-1;;;;;10565:245:20:o;8504:137::-;4491:19;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;-1:-1:-1;;;;;8603:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;:33;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8504:137:::0;;:::o;9323:157::-;9427:5;9412:4;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;-1:-1:-1;;;;;;;9447:19:20;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:28:::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;9323:157::o;5751:114::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;5822:38:::1;::::0;-1:-1:-1;;;5822:38:20;;:10:::1;:38;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;5822:22:20::1;::::0;::::1;::::0;18679:18:29;;5822:38:20::1;18501:305:29::0;10997:386:20;11162:18;;;;;:60;;-1:-1:-1;11200:22:20;;;;;;11184:38;;;;11162:60;11159:92;;;11231:20;;-1:-1:-1;;;11231:20:20;;;;;;;;;;;11159:92;11263:9;11258:121;11278:13;11274:17;;:1;:17;11258:121;;;11306:66;11316:10;11328:11;11340:1;11328:14;;;;;;;;:::i;:::-;;;;;;;11344:9;11354:1;11344:12;;;;;;;;:::i;:::-;;;;;;;11358:10;;11369:1;11358:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;11306:9;:66::i;:::-;11293:3;;;;:::i;:::-;;;;11258:121;;;;10997:386;;;;;:::o;16613:1564::-;16692:10;16678:25;;;;:13;:25;;;;;;;;16704:3;16678:30;;;;;;;;;;:35;;16675:75;;16722:28;;-1:-1:-1;;;16722:28:20;;;;;;;;;;;16675:75;16801:10;16756:28;16787:25;;;:13;:25;;;;;;:46;;16815:11;;16787:46;:::i;:::-;16756:77;;16839:17;16891:2;16867:20;:26;16863:263;;16936:9;;16929:42;;-1:-1:-1;;;16929:42:20;;16965:4;16929:42;;;3709:51:29;16903:23:20;;16936:9;;;-1:-1:-1;;;;;16936:9:20;;16929:27;;3682:18:29;;16929:42:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16903:68;;17000:21;;16982:15;:39;:82;;;;17043:21;;17025:15;;:39;16982:82;16979:113;;;17073:19;;-1:-1:-1;;;17073:19:20;;;;;;;;;;;16979:113;17115:4;17100:19;;16895:231;16863:263;17154:19;;:54;;-1:-1:-1;;;17154:54:20;;17197:10;17154:54;;;3709:51:29;17132:18:20;;;;-1:-1:-1;;;;;17154:19:20;;;;:42;;3682:18:29;;17154:54:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;-1:-1:-1;17247:11:20;17219:25;17271:436;17291:17;17287:1;:21;17271:436;;;17336:10;17322:25;;;;:13;:25;;;;;;17348:11;;17360:1;17348:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17322:41;;;;;;;;;;;;;;;-1:-1:-1;17322:41:20;;;;;;;:46;;17319:86;;17377:28;;-1:-1:-1;;;17377:28:20;;;;;;;;;;;17319:86;17417:13;17413:198;;;17446:19;;-1:-1:-1;;;;;17446:19:20;:28;17475:10;17487:11;;17499:1;17487:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17446:56;;-1:-1:-1;;;;;;17446:56:20;;;;;;;-1:-1:-1;;;;;17316:32:29;;;17446:56:20;;;17298:51:29;17397:4;17385:17;17365:18;;;17358:45;17271:18;;17446:56:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17442:161;;;17533:10;17519:25;;;;:13;:25;;;;;17563:1;;17545:11;;17557:1;17545:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17519:41;;;;;;;;;;;;;;;-1:-1:-1;17519:41:20;;;:45;17516:76;;;17573:19;;-1:-1:-1;;;17573:19:20;;;;;;;;;;;17516:76;17632:10;17618:25;;;;:13;:25;;;;;;17644:11;;17656:1;17644:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17618:41;;;;;;;;;;;;;;;-1:-1:-1;17618:41:20;;;:43;;;;;;:41;:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;17689:3;;;;;;;17271:436;;;-1:-1:-1;17727:10:20;17713:25;;;;:13;:25;;;;;:46;;17742:17;;17713:25;:46;;17742:17;;17713:46;:::i;:::-;;;;-1:-1:-1;;17770:36:20;;;;17794:11;;;;17770:36;:::i;:::-;;;;;;;;;;17782:10;;17770:36;;;;;17817:12;17813:360;;;17853:10;17839:25;;;;:13;:25;;;;;;;;17865:3;17839:30;;;;;;;:32;;:30;:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;17879:44;17888:10;17900:14;17879:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17916:3;17921:1;17879:8;:44::i;:::-;17978:21;;17959:15;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;18014:9:20;;18046:21;;18007:61;;-1:-1:-1;;;18007:61:20;;18034:10;18007:61;;;22041:51:29;22108:18;;;22101:34;;;;18014:9:20;;;;-1:-1:-1;;;;;18014:9:20;;18007:26;;22014:18:29;;18007:61:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18077:20:20;;:47;;-1:-1:-1;;;18077:47:20;;18113:10;18077:47;;;3709:51:29;-1:-1:-1;;;;;18077:20:20;;;;:35;;3682:18:29;;18077:47:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18137:29:20;;18164:1;;-1:-1:-1;18152:10:20;;-1:-1:-1;18137:29:20;;;;;16669:1508;;;;16613:1564;;:::o;4143:578:6:-;-1:-1:-1;;;;;4237:16:6;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:6;;4306:1;4276:33;;;3709:51:29;3682:18;;4276:33:6;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:12;4562:7:6;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:6;:13;-1:-1:-1;;;;;4610:21:6;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:6;;-1:-1:-1;;;;;22404:15:29;;;4654:50:6;;;22386:34:29;22436:18;;;22429:34;;;22499:15;;22479:18;;;22472:43;22321:18;;4654:50:6;22146:375:29;4606:109:6;4223:498;4143:578;;;:::o;8218:142:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;8309:22:::1;:46:::0;;-1:-1:-1;;8309:46:20::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8218:142::o;10814:179::-;10934:54;10944:10;10956;10968:8;10978:9;;10934;:54::i;13284:897::-;13362:2;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;13389:10:::1;13375:25;::::0;;;:13:::1;:25;::::0;;;;;;;:37:::1;::::0;;::::1;::::0;;;;;;;::::1;:42:::0;;13372:82:::1;;13426:28;;-1:-1:-1::0;;;13426:28:20::1;;;;;;;;;;;13372:82;13469:10;-1:-1:-1::0;;;;;13463:16:20;::::1;::::0;13460:45:::1;;13488:17;;-1:-1:-1::0;;;13488:17:20::1;;;;;;;;;;;13460:45;13516:34;::::0;;;::::1;;;13512:529;;;13576:19;::::0;:52:::1;::::0;-1:-1:-1;;;13576:52:20;;13605:10:::1;13576:52;::::0;::::1;17298:51:29::0;17397:4;17385:17;;17365:18;;;17358:45;13560:13:20::1;::::0;-1:-1:-1;;;;;13576:19:20::1;::::0;:28:::1;::::0;17271:18:29;;13576:52:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13672:10;13636:19;13658:25:::0;;;:13:::1;:25;::::0;;;;;;;:37:::1;::::0;;::::1;::::0;;;;;;;;13560:68;;-1:-1:-1;13698:1:20::1;13658:37:::0;::::1;:41;13979:9:::0;::::1;::::0;:27:::1;;;13992:14;13979:27;13971:63;;;;-1:-1:-1::0;;;13971:63:20::1;;;;;;;:::i;:::-;13552:489;;13512:529;14061:10;14047:25;::::0;;;:13:::1;:25;::::0;;;;;;;:37:::1;::::0;;::::1;::::0;;;;;;:39;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;::::0;;::::1;::::0;;;::::1;;::::0;;::::1;;::::0;;::::1;::::0;;::::1;;;::::0;;;-1:-1:-1;;;;;14092:17:20;::::1;-1:-1:-1::0;14092:17:20;;;:13:::1;:17;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:31;;;;::::1;::::0;-1:-1:-1;14092:31:20::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14161:2;-1:-1:-1::0;;;;;14134:42:20::1;14149:10;-1:-1:-1::0;;;;;14134:42:20::1;;14165:10;14134:42;;;;;7135:4:29::0;7123:17;;;;7105:36;;7093:2;7078:18;;6963:184;14134:42:20::1;;;;;;;;13284:897:::0;;;:::o;19966:573::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;20077:18:::1;::::0;:45:::1;::::0;-1:-1:-1;;;20077:45:20;;::::1;::::0;::::1;18706:25:29::0;;;-1:-1:-1;;;;;18767:32:29;;;18747:18;;;18740:60;20077:18:20;;::::1;::::0;:27:::1;::::0;18679:18:29;;20077:45:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20179:1;20165:11;;:15;;;;:::i;:::-;20151:11;;:29;;;;:::i;:::-;20132:15;;:48;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;20195:9:20::1;::::0;-1:-1:-1;20191:342:20::1;20208:8;:15;20206:1;:17;20191:342;;;20251:8;20260:1;20251:11;;;;;;;;:::i;:::-;;;;;;;:18;;20266:3;20251:18;:88;;20335:4;20303:16;:29;20320:8;20329:1;20320:11;;;;;;;;:::i;:::-;;;;;;;20303:29;;;;;;;;;;;;;;:36;20251:88;;;20289:3;20272:21;::::0;:16:::1;:21;::::0;;;20296:4:::1;-1:-1:-1::0;20251:88:20::1;20243:148;;;::::0;-1:-1:-1;;;20243:148:20;;23713:2:29;20243:148:20::1;::::0;::::1;23695:21:29::0;23752:2;23732:18;;;23725:30;23791:32;23771:18;;;23764:60;23841:18;;20243:148:20::1;23511:354:29::0;20243:148:20::1;20405:16;:29;20422:8;20431:1;20422:11;;;;;;;;:::i;:::-;;;;;;;20405:29;;;;;;;;;;;;;;:31;;;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;20469:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;20489:11;;20469:19;;;20489:8;;20498:1;;20489:11;::::1;;;;;:::i;:::-;;;;;;;20469:32;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;20225:3;;;;;:::i;:::-;;;;20191:342;;2490:28:::0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4787:132:6:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;561:314:9:-;826:42;842:1;846:7;735:10:12;4562:7:6;:34::i;19449:269:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;19546:6:::1;19519:24;19537:4;19519:9;:24::i;:::-;:33;19516:64;;;19561:19;;-1:-1:-1::0;;;19561:19:20::1;;;;;;;;;;;19516:64;19605:6;19586:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;19624:9:20::1;::::0;19617:46:::1;::::0;-1:-1:-1;;;19617:46:20;;19644:10:::1;19617:46;::::0;::::1;22041:51:29::0;22108:18;;;22101:34;;;19624:9:20;;;::::1;-1:-1:-1::0;;;;;19624:9:20::1;::::0;19617:26:::1;::::0;22014:18:29;;19617:46:20::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19674:39:20::1;::::0;19706:6;;19694:10:::1;::::0;19674:39:::1;::::0;;;::::1;19449:269:::0;:::o;6862:110::-;4357:18;;-1:-1:-1;;;;;4357:18:20;4335:10;:41;4332:77;;4385:24;;-1:-1:-1;;;4385:24:20;;;;;;;;;;;4332:77;6961:6:::1;6942:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;6862:110:20:o;2185:118:6:-;2248:7;2274:22;2288:7;2274:13;:22::i;7955:139:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;8044:34:::1;:45:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;8044:45:20;;::::1;::::0;;;::::1;::::0;;7955:139::o;5649:98::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;5712:30:::1;::::0;-1:-1:-1;;;5712:30:20;;:10:::1;:30;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;5712:19:20::1;::::0;::::1;::::0;18679:18:29;;5712:30:20::1;18501:305:29::0;1920:208:6;1983:7;-1:-1:-1;;;;;2006:19:6;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:6;;2075:1;2048:30;;;3709:51:29;3682:18;;2048:30:6;3563:203:29;2002:87:6;-1:-1:-1;;;;;;2105:16:6;;;;;:9;:16;;;;;;;1920:208::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;8364:136:20:-;4491:19;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;-1:-1:-1;;;;;8462:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;:33;;;;::::1;::::0;::::1;::::0;::::1;:::i;6976:150::-:0;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7048:6:::1;7058:1;7048:11:::0;7045:45:::1;;7068:22;;-1:-1:-1::0;;;7068:22:20::1;;;;;;;;;;;7045:45;7096:16;:25:::0;6976:150::o;2463:23::-;;;;;;;:::i;7294:165::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7381:3:::1;7372:6;:12;;;7369:46;;;7393:22;;-1:-1:-1::0;;;7393:22:20::1;;;;;;;;;;;7369:46;7421:24;:33:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;7421:33:20;;::::1;::::0;;;::::1;::::0;;7294:165::o;9484:137::-;9575:7;9560:4;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;-1:-1:-1;;;;;9597:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;-1:-1:-1;4760:1:20::1;9484:137:::0;;;;:::o;8827:150::-;8917:8;8902:4;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;-1:-1:-1;;;;;;;8940:19:20;;;::::1;8971:1;8940:19:::0;;;:13:::1;:19;::::0;;;;;;;:28:::1;::::0;;::::1;::::0;;;;;;;;::::1;:32:::0;;;8827:150::o;8645:178::-;4491:19;;8760:8;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;-1:-1:-1;;;;;;8783:19:20;;;::::1;8817:1;8783:19:::0;;;:13:::1;:19;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;;;::::1;:35:::0;;;8645:178::o;15326:1165::-;15450:10;15365:4;15436:25;;;:13;:25;;;;;;;;15462:3;15436:30;;;;;;;;;;:35;;15433:75;;15480:28;;-1:-1:-1;;;15480:28:20;;;;;;;;;;;15433:75;15535:16;;15517:15;;:34;15514:68;;;15560:22;;-1:-1:-1;;;15560:22:20;;;;;;;;;;;15514:68;15622:9;;15615:42;;-1:-1:-1;;;15615:42:20;;15651:4;15615:42;;;3709:51:29;15589:23:20;;15622:9;;;-1:-1:-1;;;;;15622:9:20;;15615:27;;3682:18:29;;15615:42:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15589:68;;15684:16;;15666:15;:34;15663:65;;;15709:19;;-1:-1:-1;;;15709:19:20;;;;;;;;;;;15663:65;15795:15;15826:7;15821:206;15840:3;15835:1;:8;;;15821:206;;15872:10;15858:25;;;;:13;:25;;;;;;;;:28;;;;;;;;;;;;:33;;15854:90;;15916:4;15903:17;;15930:5;;15854:90;15965:10;15951:25;;;;:13;:25;;;;;;;;:28;;;;;;;;;;:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16009:3;;;;;;;15821:206;;;;16035:10;16032:41;;;16054:19;;-1:-1:-1;;;16054:19:20;;;;;;;;;;;16032:41;16113:39;16122:10;16134:9;16113:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16145:3;16150:1;16113:8;:39::i;:::-;16196:9;;16228:16;;16189:56;;-1:-1:-1;;;16189:56:20;;16216:10;16189:56;;;22041:51:29;22108:18;;;22101:34;;;;16196:9:20;;;;-1:-1:-1;;;;;16196:9:20;;16189:26;;22014:18:29;;16189:56:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16270:16;;16251:15;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;16318:19:20;;:50;;-1:-1:-1;;;16318:50:20;;16357:10;16318:50;;;3709:51:29;16293:22:20;;-1:-1:-1;;;;;16318:19:20;;:38;;3682:18:29;;16318:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16293:75;;16378:17;16374:54;;16404:24;;-1:-1:-1;;;16404:24:20;;;;;;;;;;;16374:54;16440:29;;16467:1;;16455:10;;16440:29;;;;;16482:4;16475:11;;;;;15326:1165;:::o;2518:93:6:-;2565:13;2597:7;2590:14;;;;;:::i;7463:212:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7563:9:::1;:22;7575:10:::0;7563:9;:22:::1;:::i;:::-;-1:-1:-1::0;7591:14:20::1;:32;7608:15:::0;7591:14;:32:::1;:::i;:::-;;7654:15;7634:36;;;;;;:::i;:::-;;;;;;;;7642:10;7634:36;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;7463:212:::0;;:::o;14185:1021::-;14274:2;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;14293:10:::1;-1:-1:-1::0;;;;;14287:16:20;::::1;::::0;14284:45:::1;;14312:17;;-1:-1:-1::0;;;14312:17:20::1;;;;;;;;;;;14284:45;14341:9;14336:811;14352:22:::0;;::::1;14336:811;;;14406:10;14392:25;::::0;;;:13:::1;:25;::::0;;;;;14418:11;;14430:1;14418:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14392:41;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14392:41:20;;;;;;::::1;:46:::0;;14389:86:::1;;14447:28;;-1:-1:-1::0;;;14447:28:20::1;;;;;;;;;;;14389:86;14497:10;14483:25;::::0;;;:13:::1;:25;::::0;;;;;14509:11;;14521:1;14509:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14483:41;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14483:41:20;;;:43;;;;::::1;::::0;:41;:43:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14534:13;:17;14548:2;-1:-1:-1::0;;;;;14534:17:20::1;-1:-1:-1::0;;;;;14534:17:20::1;;;;;;;;;;;;:33;14552:11;;14564:1;14552:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14534:33;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14534:33:20;;;:35;;;;::::1;::::0;:33;:35:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14582:34;;;;;;;;;;;14578:563;;;14644:19;::::0;14628:13:::1;::::0;-1:-1:-1;;;;;14644:19:20::1;:28;14673:10;14685:11:::0;;14697:1;14685:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14644:56;::::0;-1:-1:-1;;;;;;14644:56:20::1;::::0;;;;;;-1:-1:-1;;;;;17316:32:29;;;14644:56:20::1;::::0;::::1;17298:51:29::0;17397:4;17385:17;17365:18;;;17358:45;17271:18;;14644:56:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14746:10;14710:19;14732:25:::0;;;:13:::1;:25;::::0;;;;14628:72;;-1:-1:-1;14710:19:20;14776:1:::1;::::0;14710:19;14758:11;;14770:1;14758:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14732:41;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14732:41:20;;::::1;:45;::::0;-1:-1:-1;15077:9:20;::::1;::::0;:27:::1;;;15090:14;15077:27;15069:63;;;;-1:-1:-1::0;;;15069:63:20::1;;;;;;;:::i;:::-;14618:523;;14578:563;14376:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14336:811;;;;15189:11;;15157:44;;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;-1:-1:-1;;;;;15157:44:20;::::1;::::0;15173:10:::1;::::0;15157:44:::1;::::0;;;::::1;14185:1021:::0;;;;:::o;3718:144:6:-;3803:52;735:10:12;3836:8:6;3846;3803:18;:52::i;19779:183:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;19845:7:::1;19841:117;19857:3;19854:1;:6;;;19841:117;;-1:-1:-1::0;;;;;19925:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:22:::1;::::0;;::::1;::::0;;;;;;:24;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;19862:3;;;;;:::i;:::-;;;;19841:117;;12720:560:::0;4491:19;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;12886:4;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;12909:2:::0;-1:-1:-1;;;;;4707:22:20;::::2;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::2;;;;;;;;;;;4704:50;-1:-1:-1::0;;;;;12922:19:20;::::3;;::::0;;;:13:::3;:19;::::0;;;;;;;:35:::3;::::0;;::::3;::::0;;;;;;;;::::3;:40:::0;;:80:::3;;-1:-1:-1::0;;;;;;12966:17:20;::::3;;::::0;;;:13:::3;:17;::::0;;;;;;;:31:::3;::::0;;::::3;::::0;;;;;;;;::::3;:36:::0;12922:80:::3;12919:120;;;13011:28;;-1:-1:-1::0;;;13011:28:20::3;;;;;;;;;;;12919:120;-1:-1:-1::0;;;;;13046:19:20;::::3;;::::0;;;:13:::3;:19;::::0;;;;;;;:35:::3;::::0;;::::3;::::0;;;;;;:37;;;;::::3;::::0;::::3;::::0;::::3;:::i;:::-;::::0;;::::3;::::0;;;::::3;;::::0;;::::3;;::::0;;::::3;::::0;;::::3;;;::::0;;;-1:-1:-1;;;;;13089:17:20;::::3;-1:-1:-1::0;13089:17:20;;;:13:::3;:17;::::0;;;;;;;:33;;::::3;::::0;;;;;;;:35;;;;::::3;::::0;-1:-1:-1;13089:35:20::3;::::0;::::3;:::i;:::-;::::0;;::::3;::::0;;;::::3;;::::0;;::::3;;::::0;;::::3;::::0;;::::3;;;::::0;;;-1:-1:-1;;;;;13130:17:20;::::3;-1:-1:-1::0;13130:17:20;;;:13:::3;:17;::::0;;;;;;;:31;;::::3;::::0;;;;;;;:33;;;;::::3;::::0;-1:-1:-1;13130:33:20::3;::::0;::::3;:::i;:::-;::::0;;::::3;::::0;;;::::3;;::::0;;::::3;;::::0;;::::3;::::0;;::::3;;;::::0;;;-1:-1:-1;;;;;13169:19:20;::::3;-1:-1:-1::0;13169:19:20;;;:13:::3;:19;::::0;;;;;;;:33;;::::3;::::0;;;;;;;:35;;;;::::3;::::0;-1:-1:-1;13169:35:20::3;::::0;::::3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;13242:2;-1:-1:-1::0;;;;;13216:59:20::3;13236:4;-1:-1:-1::0;;;;;13216:59:20::3;;13246:14;13262:12;13216:59;;;;;;26564:4:29::0;26552:17;;;26534:36;;26606:17;;26601:2;26586:18;;26579:45;26522:2;26507:18;;26368:262;13216:59:20::3;;;;;;;;4760:1:::2;4546::::1;12720:560:::0;;;;:::o;4985:208:6:-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;7130:160:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7207:6:::1;7217:1;7207:11:::0;7204:45:::1;;7227:22;;-1:-1:-1::0;;;7227:22:20::1;;;;;;;;;;;7204:45;7255:21;:30:::0;7130:160::o;18181:878::-;18244:10;18230:25;;;;:13;:25;;;;;;;;:34;;;;;;;;;;;;:39;;18227:79;;18278:28;;-1:-1:-1;;;18278:28:20;;;;;;;;;;;18227:79;18317:30;;;;;;;18313:519;;;18373:19;;:49;;-1:-1:-1;;;18373:49:20;;18402:10;18373:49;;;17298:51:29;17397:4;17385:17;;17365:18;;;17358:45;18357:13:20;;-1:-1:-1;;;;;18373:19:20;;:28;;17271:18:29;;18373:49:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18466:10;18430:19;18452:25;;;:13;:25;;;;;;;;:34;;;;;;;;;;;;18357:65;;-1:-1:-1;18489:1:20;18452:34;;:38;18770:9;;;:27;;;18783:14;18770:27;18762:63;;;;-1:-1:-1;;;18762:63:20;;;;;;;:::i;:::-;18349:483;;18313:519;18852:10;18838:25;;;;:13;:25;;;;;;;;:34;;;;;;;;;;:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;18881:17;18938:9;18950:10;;;;;;;;;;;;;-1:-1:-1;;;18950:10:20;;;18968:7;:16;;;;;;:18;;;;;;;;;;;;;3342:25:29;;3330:2;3315:18;;3196:177;18968:18:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18968:18:20;;;;;;;;;;;;:::i;:::-;18989:14;;;;;;;;;;;;;-1:-1:-1;;;18989:14:20;;;18915:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18881:129;;19017:37;19026:10;19038:3;19043:7;19017:37;;19052:1;19017:8;:37::i;566:165:21:-;665:13;701:23;716:7;701:14;:23::i;6354:242:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6451:19;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;6477:18:::2;:61:::0;;-1:-1:-1;;;;;;6477:61:20::2;-1:-1:-1::0;;;;;6477:61:20;::::2;::::0;;::::2;::::0;;;6549:42:::2;::::0;::::2;::::0;-1:-1:-1;;6549:42:20::2;4644:1:::1;6354:242:::0;:::o;9194:125::-;9292:15;;9265:24;;9242:7;;9311:3;;9265:42;;9292:15;9265:24;;;;;:42;:::i;:::-;9264:50;;;;:::i;:::-;9257:57;;9194:125;:::o;7679:137::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7767:33:::1;:44:::0;;-1:-1:-1;;7767:44:20::1;::::0;::::1;;::::0;;;::::1;::::0;;7679:137::o;6600:258::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6701:21;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;6729:20:::2;:67:::0;;-1:-1:-1;;;;;;6729:67:20::2;-1:-1:-1::0;;;;;6729:67:20;::::2;::::0;;::::2;::::0;;;6807:46:::2;::::0;::::2;::::0;-1:-1:-1;;6807:46:20::2;4644:1:::1;6600:258:::0;:::o;8098:116::-;4357:18;;-1:-1:-1;;;;;4357:18:20;4335:10;:41;4332:77;;4385:24;;-1:-1:-1;;;4385:24:20;;;;;;;;;;;4332:77;8183:11:::1;:26:::0;8098:116::o;2522:23::-;;;;;;;:::i;3928:153:6:-;-1:-1:-1;;;;;4039:25:6;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;5869:103:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;5934:33:::1;::::0;-1:-1:-1;;;5934:33:20;;:11:::1;:33;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;5934:21:20::1;::::0;::::1;::::0;18679:18:29;;5934:33:20::1;18501:305:29::0;2543:215:0;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;3709:51:29::0;3682:18;;2672:31:0::1;3563:203:29::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;7820:131:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7905:30:::1;:41:::0;;;::::1;;;;-1:-1:-1::0;;7905:41:20;;::::1;::::0;;;::::1;::::0;;7820:131::o;937:207:10:-;1039:4;-1:-1:-1;;;;;;1062:35:10;;-1:-1:-1;;;1062:35:10;;:75;;;1101:36;1125:11;1101:23;:36::i;16146:241:6:-;16209:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;16271:88;;16317:31;;-1:-1:-1;;;16317:31:6;;;;;3342:25:29;;;3315:18;;16317:31:6;3196:177:29;14426:120:6;14506:33;14515:2;14519:7;14528:4;14534;14506:8;:33::i;11387:1329:20:-;11528:18;;:43;;-1:-1:-1;;;11528:43:20;;;;;3342:25:29;;;-1:-1:-1;;;;;11528:51:20;;;;:18;;:31;;3315:18:29;;11528:43:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11528:51:20;;11525:76;;11588:13;;-1:-1:-1;;;11588:13:20;;;;;;;;;;;11525:76;11661:2;11642:8;:15;:21;11639:52;;11672:19;;-1:-1:-1;;;11672:19:20;;;;;;;;;;;11639:52;11702:33;;;;11698:342;;;11843:117;;-1:-1:-1;;;11843:117:20;;11826:14;;11843:15;;:32;;:117;;11885:10;;11905;;11925:8;;11943:9;;;;11843:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11979:27:20;;;;;;:19;:27;;;;;;11826:134;;-1:-1:-1;11979:27:20;;11975:58;;12015:18;;-1:-1:-1;;;12015:18:20;;;;;;;;;;;11975:58;11737:303;11698:342;12046:18;;:45;;-1:-1:-1;;;12046:45:20;;;;;18706:25:29;;;-1:-1:-1;;;;;18767:32:29;;;18747:18;;;18740:60;12046:18:20;;;;:27;;18679:18:29;;12046:45:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12176:1;12162:11;;:15;;;;:::i;:::-;12148:11;;:29;;;;:::i;:::-;12129:15;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;12217:9:20;;-1:-1:-1;12212:450:20;12232:8;:15;12228:1;:19;12212:450;;;12261:8;12270:1;12261:11;;;;;;;;:::i;:::-;;;;;;;:18;;12276:3;12261:18;12258:192;;12310:3;12293:21;;:16;:21;;;;12317:4;-1:-1:-1;12290:59:20;;;12330:19;;-1:-1:-1;;;12330:19:20;;;;;;;;;;;12290:59;12258:192;;;12409:4;12377:16;:29;12394:8;12403:1;12394:11;;;;;;;;:::i;:::-;;;;;;;12377:29;;;;;;;;;;;;;;:36;12374:67;;;12422:19;;-1:-1:-1;;;12422:19:20;;;;;;;;;;;12374:67;12457:16;:29;12474:8;12483:1;12474:11;;;;;;;;:::i;:::-;;;;;;;12457:29;;;;;;;;;;;;;;:31;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12539:19:20;;;;;;:13;:19;;;;;12559:11;;12539:19;;;12559:8;;12568:1;;12559:11;;;;;;:::i;:::-;;;;;;;12539:32;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;12644:3;;;;;;;12212:450;;;;12700:10;12690:8;12673:38;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;12673:38:20;;;;;;;;11387:1329;;;;;:::o;19063:341::-;19178:16;;19160:15;19200:16;;;:7;:16;;;;;:34;;;19240:23;;;:33;;;19279:22;;:31;;-1:-1:-1;;19279:31:20;;;;;;;;;19316:23;19326:3;19178:16;19316:9;:23::i;:::-;19345:27;19358:7;19367:4;19345:12;:27::i;:::-;19398:1;19378:16;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;19063:341:20:o;8838:795:6:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:6;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:6;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:6;;;9157:256;-1:-1:-1;;;;;9427:16:6;;;9423:107;;-1:-1:-1;;;;;9487:13:6;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:6;-1:-1:-1;;;;;9540:21:6;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:6:o;1796:162:0:-;1710:6;;-1:-1:-1;;;;;1710:6:0;735:10:12;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:12;1901:40:0;;;3709:51:29;3682:18;;1901:40:0;3563:203:29;2912:187:0;3004:6;;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;15599:312:6:-;-1:-1:-1;;;;;15706:22:6;;15702:91;;15751:31;;-1:-1:-1;;;15751:31:6;;-1:-1:-1;;;;;3727:32:29;;15751:31:6;;;3709:51:29;3682:18;;15751:31:6;3563:203:29;15702:91:6;-1:-1:-1;;;;;15802:25:6;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15802:46:6;;;;;;;;;;15863:41;;540::29;;;15863::6;;513:18:29;15863:41:6;400:187:29;16926:782:6;-1:-1:-1;;;;;17042:14:6;;;:18;17038:664;;17080:71;;-1:-1:-1;;;17080:71:6;;-1:-1:-1;;;;;17080:36:6;;;;;:71;;735:10:12;;17131:4:6;;17137:7;;17146:4;;17080:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17080:71:6;;;;;;;;-1:-1:-1;;17080:71:6;;;;;;;;;;;;:::i;:::-;;;17076:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17389:6;:13;17406:1;17389:18;17385:293;;17438:25;;-1:-1:-1;;;17438:25:6;;-1:-1:-1;;;;;3727:32:29;;17438:25:6;;;3709:51:29;3682:18;;17438:25:6;3563:203:29;17385:293:6;17630:6;17624:13;17615:6;17611:2;17607:15;17600:38;17076:616;-1:-1:-1;;;;;;17198:51:6;;-1:-1:-1;;;17198:51:6;17194:130;;17280:25;;-1:-1:-1;;;17280:25:6;;-1:-1:-1;;;;;3727:32:29;;17280:25:6;;;3709:51:29;3682:18;;17280:25:6;3563:203:29;1210:593:10;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;-1:-1:-1;1341:23:10;1367:19;;;:10;:19;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;3250:9:6;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;1417:10:10;1396:31;;1506:4;1500:18;1522:1;1500:23;1496:70;;-1:-1:-1;1546:9:10;1210:593;-1:-1:-1;;1210:593:10:o;1496:70::-;1665:23;;:27;1661:95;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;1210:593;;;:::o;1661:95::-;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;1210:593;-1:-1:-1;;;;1210:593:10:o;1561:300:6:-;1663:4;-1:-1:-1;;;;;;1698:40:6;;-1:-1:-1;;;1698:40:6;;:104;;-1:-1:-1;;;;;;;1754:48:6;;-1:-1:-1;;;1754:48:6;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:16;;;1818:36:6;762:146:16;14728:662:6;14888:9;:31;;;-1:-1:-1;;;;;;14901:18:6;;;;14888:31;14884:460;;;14935:13;14951:22;14965:7;14951:13;:22::i;:::-;14935:38;-1:-1:-1;;;;;;15101:18:6;;;;;;:35;;;15132:4;-1:-1:-1;;;;;15123:13:6;:5;-1:-1:-1;;;;;15123:13:6;;;15101:35;:69;;;;;15141:29;15158:5;15165:4;15141:16;:29::i;:::-;15140:30;15101:69;15097:142;;;15197:27;;-1:-1:-1;;;15197:27:6;;-1:-1:-1;;;;;3727:32:29;;15197:27:6;;;3709:51:29;3682:18;;15197:27:6;3563:203:29;15097:142:6;15257:9;15253:81;;;15311:7;15307:2;-1:-1:-1;;;;;15291:28:6;15300:5;-1:-1:-1;;;;;15291:28:6;;;;;;;;;;;15253:81;14921:423;14884:460;-1:-1:-1;;15354:24:6;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15354:29:6;-1:-1:-1;;;;;15354:29:6;;;;;;;;;;14728:662::o;10633:100::-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;1922:167:10:-;2013:19;;;;:10;:19;;;;;:31;2035:9;2013:19;:31;:::i;:::-;-1:-1:-1;2059:23:10;;3342:25:29;;;2059:23:10;;3330:2:29;3315:18;2059:23:10;;;;;;;1922:167;;:::o;7082:368:6:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:6;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:6;;;;;3342:25:29;;;3315:18;;7298:31:6;3196:177:29;7248:186:6;7375:44;;-1:-1:-1;;;7375:44:6;;-1:-1:-1;;;;;22059:32:29;;7375:44:6;;;22041:51:29;22108:18;;;22101:34;;;22014:18;;7375:44:6;21867:274:29;2677:255:6;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:6:o;10954:182::-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;6376:272::-;6479:4;-1:-1:-1;;;;;6514:21:6;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:6;:5;-1:-1:-1;;;;;6552:16:6;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:6:o;637:698:13:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:13;-1:-1:-1;794:41:13;-1:-1:-1;955:28:13;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:13;-1:-1:-1;;;1175:2:13;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:13;1010:282;1256:21;-1:-1:-1;1312:6:13;637:698;-1:-1:-1;;;637:698:13:o;9955:327:6:-;-1:-1:-1;;;;;10022:16:6;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:6;;10091:1;10061:33;;;3709:51:29;3682:18;;10061:33:6;3563:203:29;10018:87:6;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:6;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:6;;10262:1;10234:31;;;3709:51:29;3682:18;;10234:31:6;3563:203:29;12214:916:18;12267:7;;-1:-1:-1;;;12342:17:18;;12338:103;;-1:-1:-1;;;12379:17:18;;;-1:-1:-1;12424:2:18;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:18;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:18;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:18;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:18;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:18;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:18:o;14:131:29:-;-1:-1:-1;;;;;;88:32:29;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:131::-;-1:-1:-1;;;;;667:31:29;;657:42;;647:70;;713:1;710;703:12;728:247;787:6;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;895:9;882:23;914:31;939:5;914:31;:::i;980:444::-;1031:3;1069:5;1063:12;1096:6;1091:3;1084:19;1122:4;1151:2;1146:3;1142:12;1135:19;;1188:2;1181:5;1177:14;1209:1;1219:180;1233:6;1230:1;1227:13;1219:180;;;1298:13;;1313:4;1294:24;1282:37;;1339:12;;;;1374:15;;;;1255:1;1248:9;1219:180;;;-1:-1:-1;1415:3:29;;980:444;-1:-1:-1;;;;;980:444:29:o;1429:1006::-;1750:2;1739:9;1732:21;1713:4;1776:54;1826:2;1815:9;1811:18;1803:6;1776:54;:::i;:::-;1849:2;1899:9;1891:6;1887:22;1882:2;1871:9;1867:18;1860:50;1933:42;1968:6;1960;1933:42;:::i;:::-;2011:22;;;2006:2;1991:18;;1984:50;2083:13;;2105:22;;;2181:15;;;;-1:-1:-1;2143:15:29;;;;2214:1;2224:185;2238:6;2235:1;2232:13;2224:185;;;2313:13;;2306:21;2299:29;2287:42;;2384:15;;;;2349:12;;;;2260:1;2253:9;2224:185;;;-1:-1:-1;2426:3:29;;1429:1006;-1:-1:-1;;;;;;;;1429:1006:29:o;2440:250::-;2525:1;2535:113;2549:6;2546:1;2543:13;2535:113;;;2625:11;;;2619:18;2606:11;;;2599:39;2571:2;2564:10;2535:113;;;-1:-1:-1;;2682:1:29;2664:16;;2657:27;2440:250::o;2695:271::-;2737:3;2775:5;2769:12;2802:6;2797:3;2790:19;2818:76;2887:6;2880:4;2875:3;2871:14;2864:4;2857:5;2853:16;2818:76;:::i;:::-;2948:2;2927:15;-1:-1:-1;;2923:29:29;2914:39;;;;2955:4;2910:50;;2695:271;-1:-1:-1;;2695:271:29:o;2971:220::-;3120:2;3109:9;3102:21;3083:4;3140:45;3181:2;3170:9;3166:18;3158:6;3140:45;:::i;3378:180::-;3437:6;3490:2;3478:9;3469:7;3465:23;3461:32;3458:52;;;3506:1;3503;3496:12;3458:52;-1:-1:-1;3529:23:29;;3378:180;-1:-1:-1;3378:180:29:o;3771:315::-;3839:6;3847;3900:2;3888:9;3879:7;3875:23;3871:32;3868:52;;;3916:1;3913;3906:12;3868:52;3955:9;3942:23;3974:31;3999:5;3974:31;:::i;:::-;4024:5;4076:2;4061:18;;;;4048:32;;-1:-1:-1;;;3771:315:29:o;4091:127::-;4152:10;4147:3;4143:20;4140:1;4133:31;4183:4;4180:1;4173:15;4207:4;4204:1;4197:15;4223:275;4294:2;4288:9;4359:2;4340:13;;-1:-1:-1;;4336:27:29;4324:40;;-1:-1:-1;;;;;4379:34:29;;4415:22;;;4376:62;4373:88;;;4441:18;;:::i;:::-;4477:2;4470:22;4223:275;;-1:-1:-1;4223:275:29:o;4503:181::-;4561:4;-1:-1:-1;;;;;4586:6:29;4583:30;4580:56;;;4616:18;;:::i;:::-;-1:-1:-1;4661:1:29;4657:14;4673:4;4653:25;;4503:181::o;4689:156::-;4755:20;;4815:4;4804:16;;4794:27;;4784:55;;4835:1;4832;4825:12;4784:55;4689:156;;;:::o;4850:662::-;4902:5;4955:3;4948:4;4940:6;4936:17;4932:27;4922:55;;4973:1;4970;4963:12;4922:55;5009:6;4996:20;5035:4;5059:58;5075:41;5113:2;5075:41;:::i;:::-;5059:58;:::i;:::-;5151:15;;;5237:1;5233:10;;;;5221:23;;5217:32;;;5182:12;;;;5261:15;;;5258:35;;;5289:1;5286;5279:12;5258:35;5325:2;5317:6;5313:15;5337:146;5353:6;5348:3;5345:15;5337:146;;;5419:21;5436:3;5419:21;:::i;:::-;5407:34;;5461:12;;;;5370;;5337:146;;;-1:-1:-1;5501:5:29;4850:662;-1:-1:-1;;;;;;4850:662:29:o;5517:881::-;5628:6;5636;5644;5652;5705:2;5693:9;5684:7;5680:23;5676:32;5673:52;;;5721:1;5718;5711:12;5673:52;5757:9;5744:23;5734:33;;5818:2;5807:9;5803:18;5790:32;-1:-1:-1;;;;;5882:2:29;5874:6;5871:14;5868:34;;;5898:1;5895;5888:12;5868:34;5921:59;5972:7;5963:6;5952:9;5948:22;5921:59;:::i;:::-;5911:69;;6033:2;6022:9;6018:18;6005:32;5989:48;;6062:2;6052:8;6049:16;6046:36;;;6078:1;6075;6068:12;6046:36;6116:8;6105:9;6101:24;6091:34;;6163:7;6156:4;6152:2;6148:13;6144:27;6134:55;;6185:1;6182;6175:12;6134:55;6225:2;6212:16;6251:2;6243:6;6240:14;6237:34;;;6267:1;6264;6257:12;6237:34;6312:7;6307:2;6298:6;6294:2;6290:15;6286:24;6283:37;6280:57;;;6333:1;6330;6323:12;6280:57;5517:881;;;;-1:-1:-1;;6364:2:29;6356:11;;-1:-1:-1;;;5517:881:29:o;6641:317::-;6707:6;6715;6768:2;6756:9;6747:7;6743:23;6739:32;6736:52;;;6784:1;6781;6774:12;6736:52;6823:9;6810:23;6842:31;6867:5;6842:31;:::i;:::-;6892:5;-1:-1:-1;6916:36:29;6948:2;6933:18;;6916:36;:::i;:::-;6906:46;;6641:317;;;;;:::o;7152:904::-;7214:5;7267:3;7260:4;7252:6;7248:17;7244:27;7234:55;;7285:1;7282;7275:12;7234:55;7321:6;7308:20;7347:4;7371:58;7387:41;7425:2;7387:41;:::i;7371:58::-;7463:15;;;7549:1;7545:10;;;;7533:23;;7529:32;;;7494:12;;;;7573:15;;;7570:35;;;7601:1;7598;7591:12;7570:35;7637:2;7629:6;7625:15;7649:378;7665:6;7660:3;7657:15;7649:378;;;7751:3;7738:17;-1:-1:-1;;;;;7774:11:29;7771:35;7768:125;;;7847:1;7876:2;7872;7865:14;7768:125;7918:66;7980:3;7975:2;7961:11;7953:6;7949:24;7945:33;7918:66;:::i;:::-;7906:79;;-1:-1:-1;8005:12:29;;;;7682;;7649:378;;8061:374;8131:8;8141:6;8195:3;8188:4;8180:6;8176:17;8172:27;8162:55;;8213:1;8210;8203:12;8162:55;-1:-1:-1;8236:20:29;;-1:-1:-1;;;;;8268:30:29;;8265:50;;;8311:1;8308;8301:12;8265:50;8348:4;8340:6;8336:17;8324:29;;8408:3;8401:4;8391:6;8388:1;8384:14;8376:6;8372:27;8368:38;8365:47;8362:67;;;8425:1;8422;8415:12;8362:67;8061:374;;;;;:::o;8440:1571::-;8635:6;8643;8651;8659;8667;8720:3;8708:9;8699:7;8695:23;8691:33;8688:53;;;8737:1;8734;8727:12;8688:53;8760:27;8777:9;8760:27;:::i;:::-;8750:37;;8806:2;8859;8848:9;8844:18;8831:32;-1:-1:-1;;;;;8923:2:29;8915:6;8912:14;8909:34;;;8939:1;8936;8929:12;8909:34;8977:6;8966:9;8962:22;8952:32;;9022:7;9015:4;9011:2;9007:13;9003:27;8993:55;;9044:1;9041;9034:12;8993:55;9080:2;9067:16;9103:58;9119:41;9157:2;9119:41;:::i;9103:58::-;9195:15;;;9277:1;9273:10;;;;9265:19;;9261:28;;;9226:12;;;;9301:19;;;9298:39;;;9333:1;9330;9323:12;9298:39;9357:11;;;;9377:142;9393:6;9388:3;9385:15;9377:142;;;9459:17;;9447:30;;9410:12;;;;9497;;;;9377:142;;;9538:5;-1:-1:-1;;;9596:2:29;9581:18;;9568:32;;-1:-1:-1;9612:16:29;;;9609:36;;;9641:1;9638;9631:12;9609:36;9664:71;9727:7;9716:8;9705:9;9701:24;9664:71;:::i;:::-;9654:81;;9788:2;9777:9;9773:18;9760:32;9744:48;;9817:2;9807:8;9804:16;9801:36;;;9833:1;9830;9823:12;9801:36;;;9872:79;9943:7;9932:8;9921:9;9917:24;9872:79;:::i;:::-;8440:1571;;;;-1:-1:-1;8440:1571:29;;-1:-1:-1;9970:8:29;;9846:105;8440:1571;-1:-1:-1;;;8440:1571:29:o;10016:442::-;10100:6;10108;10161:2;10149:9;10140:7;10136:23;10132:32;10129:52;;;10177:1;10174;10167:12;10129:52;10217:9;10204:23;-1:-1:-1;;;;;10242:6:29;10239:30;10236:50;;;10282:1;10279;10272:12;10236:50;10321:77;10390:7;10381:6;10370:9;10366:22;10321:77;:::i;:::-;10417:8;;10295:103;;-1:-1:-1;10016:442:29;-1:-1:-1;;;;10016:442:29:o;10463:456::-;10540:6;10548;10556;10609:2;10597:9;10588:7;10584:23;10580:32;10577:52;;;10625:1;10622;10615:12;10577:52;10664:9;10651:23;10683:31;10708:5;10683:31;:::i;:::-;10733:5;-1:-1:-1;10790:2:29;10775:18;;10762:32;10803:33;10762:32;10803:33;:::i;:::-;10463:456;;10855:7;;-1:-1:-1;;;10909:2:29;10894:18;;;;10881:32;;10463:456::o;10924:182::-;10981:6;11034:2;11022:9;11013:7;11009:23;11005:32;11002:52;;;11050:1;11047;11040:12;11002:52;11073:27;11090:9;11073:27;:::i;11347:547::-;11447:6;11455;11463;11516:2;11504:9;11495:7;11491:23;11487:32;11484:52;;;11532:1;11529;11522:12;11484:52;11571:9;11558:23;11590:31;11615:5;11590:31;:::i;:::-;11640:5;-1:-1:-1;11692:2:29;11677:18;;11664:32;;-1:-1:-1;11747:2:29;11732:18;;11719:32;-1:-1:-1;;;;;11763:30:29;;11760:50;;;11806:1;11803;11796:12;11760:50;11829:59;11880:7;11871:6;11860:9;11856:22;11829:59;:::i;:::-;11819:69;;;11347:547;;;;;:::o;12384:118::-;12470:5;12463:13;12456:21;12449:5;12446:32;12436:60;;12492:1;12489;12482:12;12507:241;12563:6;12616:2;12604:9;12595:7;12591:23;12587:32;12584:52;;;12632:1;12629;12622:12;12584:52;12671:9;12658:23;12690:28;12712:5;12690:28;:::i;12753:187::-;12802:4;-1:-1:-1;;;;;12827:6:29;12824:30;12821:56;;;12857:18;;:::i;:::-;-1:-1:-1;12923:2:29;12902:15;-1:-1:-1;;12898:29:29;12929:4;12894:40;;12753:187::o;12945:338::-;13010:5;13039:53;13055:36;13084:6;13055:36;:::i;13039:53::-;13030:62;;13115:6;13108:5;13101:21;13155:3;13146:6;13141:3;13137:16;13134:25;13131:45;;;13172:1;13169;13162:12;13131:45;13221:6;13216:3;13209:4;13202:5;13198:16;13185:43;13275:1;13268:4;13259:6;13252:5;13248:18;13244:29;13237:40;12945:338;;;;;:::o;13288:222::-;13331:5;13384:3;13377:4;13369:6;13365:17;13361:27;13351:55;;13402:1;13399;13392:12;13351:55;13424:80;13500:3;13491:6;13478:20;13471:4;13463:6;13459:17;13424:80;:::i;13515:543::-;13603:6;13611;13664:2;13652:9;13643:7;13639:23;13635:32;13632:52;;;13680:1;13677;13670:12;13632:52;13720:9;13707:23;-1:-1:-1;;;;;13790:2:29;13782:6;13779:14;13776:34;;;13806:1;13803;13796:12;13776:34;13829:50;13871:7;13862:6;13851:9;13847:22;13829:50;:::i;:::-;13819:60;;13932:2;13921:9;13917:18;13904:32;13888:48;;13961:2;13951:8;13948:16;13945:36;;;13977:1;13974;13967:12;13945:36;;14000:52;14044:7;14033:8;14022:9;14018:24;14000:52;:::i;:::-;13990:62;;;13515:543;;;;;:::o;14063:577::-;14156:6;14164;14172;14225:2;14213:9;14204:7;14200:23;14196:32;14193:52;;;14241:1;14238;14231:12;14193:52;14280:9;14267:23;14299:31;14324:5;14299:31;:::i;:::-;14349:5;-1:-1:-1;14405:2:29;14390:18;;14377:32;-1:-1:-1;;;;;14421:30:29;;14418:50;;;14464:1;14461;14454:12;14418:50;14503:77;14572:7;14563:6;14552:9;14548:22;14503:77;:::i;:::-;14063:577;;14599:8;;-1:-1:-1;14477:103:29;;-1:-1:-1;;;;14063:577:29:o;14645:382::-;14710:6;14718;14771:2;14759:9;14750:7;14746:23;14742:32;14739:52;;;14787:1;14784;14777:12;14739:52;14826:9;14813:23;14845:31;14870:5;14845:31;:::i;:::-;14895:5;-1:-1:-1;14952:2:29;14937:18;;14924:32;14965:30;14924:32;14965:30;:::i;:::-;15014:7;15004:17;;;14645:382;;;;;:::o;15032:529::-;15114:6;15122;15130;15138;15191:3;15179:9;15170:7;15166:23;15162:33;15159:53;;;15208:1;15205;15198:12;15159:53;15247:9;15234:23;15266:31;15291:5;15266:31;:::i;:::-;15316:5;-1:-1:-1;15340:36:29;15372:2;15357:18;;15340:36;:::i;:::-;15330:46;;15428:2;15417:9;15413:18;15400:32;15441:33;15466:7;15441:33;:::i;:::-;15493:7;-1:-1:-1;15519:36:29;15551:2;15536:18;;15519:36;:::i;:::-;15509:46;;15032:529;;;;;;;:::o;15566:795::-;15661:6;15669;15677;15685;15738:3;15726:9;15717:7;15713:23;15709:33;15706:53;;;15755:1;15752;15745:12;15706:53;15794:9;15781:23;15813:31;15838:5;15813:31;:::i;:::-;15863:5;-1:-1:-1;15920:2:29;15905:18;;15892:32;15933:33;15892:32;15933:33;:::i;:::-;15985:7;-1:-1:-1;16039:2:29;16024:18;;16011:32;;-1:-1:-1;16094:2:29;16079:18;;16066:32;-1:-1:-1;;;;;16110:30:29;;16107:50;;;16153:1;16150;16143:12;16107:50;16176:22;;16229:4;16221:13;;16217:27;-1:-1:-1;16207:55:29;;16258:1;16255;16248:12;16207:55;16281:74;16347:7;16342:2;16329:16;16324:2;16320;16316:11;16281:74;:::i;:::-;16271:84;;;15566:795;;;;;;;:::o;16603:388::-;16671:6;16679;16732:2;16720:9;16711:7;16707:23;16703:32;16700:52;;;16748:1;16745;16738:12;16700:52;16787:9;16774:23;16806:31;16831:5;16806:31;:::i;:::-;16856:5;-1:-1:-1;16913:2:29;16898:18;;16885:32;16926:33;16885:32;16926:33;:::i;16996:127::-;17057:10;17052:3;17048:20;17045:1;17038:31;17088:4;17085:1;17078:15;17112:4;17109:1;17102:15;17414:245;17481:6;17534:2;17522:9;17513:7;17509:23;17505:32;17502:52;;;17550:1;17547;17540:12;17502:52;17582:9;17576:16;17601:28;17623:5;17601:28;:::i;17664:127::-;17725:10;17720:3;17716:20;17713:1;17706:31;17756:4;17753:1;17746:15;17780:4;17777:1;17770:15;17796:175;17833:3;17877:4;17870:5;17866:16;17906:4;17897:7;17894:17;17891:43;;17914:18;;:::i;:::-;17963:1;17950:15;;17796:175;-1:-1:-1;;17796:175:29:o;17976:135::-;18015:3;18036:17;;;18033:43;;18056:18;;:::i;:::-;-1:-1:-1;18103:1:29;18092:13;;17976:135::o;18116:380::-;18195:1;18191:12;;;;18238;;;18259:61;;18313:4;18305:6;18301:17;18291:27;;18259:61;18366:2;18358:6;18355:14;18335:18;18332:38;18329:161;;18412:10;18407:3;18403:20;18400:1;18393:31;18447:4;18444:1;18437:15;18475:4;18472:1;18465:15;18811:1099;-1:-1:-1;;;;;19148:32:29;;19130:51;;19200:2;19218:18;;;19211:34;;;19117:3;19276:2;19261:18;;19254:31;;;19334:13;;19102:19;;;19356:22;;;19069:4;;19436:15;;;;19168:3;19394:19;;;19069:4;19479:180;19493:6;19490:1;19487:13;19479:180;;;19558:13;;19573:4;19554:24;19542:37;;19634:15;;;;19599:12;;;;19515:1;19508:9;19479:180;;;19483:3;;19704:9;19699:3;19695:19;19690:2;19679:9;19675:18;19668:47;19736:6;19731:3;19724:19;19787:6;19779;19774:2;19769:3;19765:12;19752:42;19837:1;19814:16;;;19810:25;;19803:36;19894:2;19873:15;;;-1:-1:-1;;19869:29:29;19860:39;;;19856:48;;;;18811:1099;-1:-1:-1;;;;;;;18811:1099:29:o;19915:251::-;19985:6;20038:2;20026:9;20017:7;20013:23;20009:32;20006:52;;;20054:1;20051;20044:12;20006:52;20086:9;20080:16;20105:31;20130:5;20105:31;:::i;20171:521::-;20248:4;20254:6;20314:11;20301:25;20408:2;20404:7;20393:8;20377:14;20373:29;20369:43;20349:18;20345:68;20335:96;;20427:1;20424;20417:12;20335:96;20454:33;;20506:20;;;-1:-1:-1;;;;;;20538:30:29;;20535:50;;;20581:1;20578;20571:12;20535:50;20614:4;20602:17;;-1:-1:-1;20645:14:29;20641:27;;;20631:38;;20628:58;;;20682:1;20679;20672:12;20697:125;20762:9;;;20783:10;;;20780:36;;;20796:18;;:::i;20827:184::-;20897:6;20950:2;20938:9;20929:7;20925:23;20921:32;20918:52;;;20966:1;20963;20956:12;20918:52;-1:-1:-1;20989:16:29;;20827:184;-1:-1:-1;20827:184:29:o;21016:178::-;21053:3;21097:4;21090:5;21086:16;21121:7;21111:41;;21132:18;;:::i;:::-;-1:-1:-1;;21168:20:29;;21016:178;-1:-1:-1;;21016:178:29:o;21199:530::-;21366:3;21397;21444:6;21366:3;21478:224;21492:6;21489:1;21486:13;21478:224;;;21585:4;21559:24;21576:6;21559:24;:::i;:::-;21555:35;21541:50;;21614:4;21640:14;;;;21677:15;;;;;21514:1;21507:9;21478:224;;;-1:-1:-1;21718:5:29;;21199:530;-1:-1:-1;;;;;21199:530:29:o;21734:128::-;21801:9;;;21822:11;;;21819:37;;;21836:18;;:::i;22526:347::-;22728:2;22710:21;;;22767:2;22747:18;;;22740:30;22806:25;22801:2;22786:18;;22779:53;22864:2;22849:18;;22526:347::o;23289:217::-;23329:1;23355;23345:132;;23399:10;23394:3;23390:20;23387:1;23380:31;23434:4;23431:1;23424:15;23462:4;23459:1;23452:15;23345:132;-1:-1:-1;23491:9:29;;23289:217::o;23996:545::-;24098:2;24093:3;24090:11;24087:448;;;24134:1;24159:5;24155:2;24148:17;24204:4;24200:2;24190:19;24274:2;24262:10;24258:19;24255:1;24251:27;24245:4;24241:38;24310:4;24298:10;24295:20;24292:47;;;-1:-1:-1;24333:4:29;24292:47;24388:2;24383:3;24379:12;24376:1;24372:20;24366:4;24362:31;24352:41;;24443:82;24461:2;24454:5;24451:13;24443:82;;;24506:17;;;24487:1;24476:13;24443:82;;24717:1352;24843:3;24837:10;-1:-1:-1;;;;;24862:6:29;24859:30;24856:56;;;24892:18;;:::i;:::-;24921:97;25011:6;24971:38;25003:4;24997:11;24971:38;:::i;:::-;24965:4;24921:97;:::i;:::-;25073:4;;25137:2;25126:14;;25154:1;25149:663;;;;25856:1;25873:6;25870:89;;;-1:-1:-1;25925:19:29;;;25919:26;25870:89;-1:-1:-1;;24674:1:29;24670:11;;;24666:24;24662:29;24652:40;24698:1;24694:11;;;24649:57;25972:81;;25119:944;;25149:663;23943:1;23936:14;;;23980:4;23967:18;;-1:-1:-1;;25185:20:29;;;25303:236;25317:7;25314:1;25311:14;25303:236;;;25406:19;;;25400:26;25385:42;;25498:27;;;;25466:1;25454:14;;;;25333:19;;25303:236;;;25307:3;25567:6;25558:7;25555:19;25552:201;;;25628:19;;;25622:26;-1:-1:-1;;25711:1:29;25707:14;;;25723:3;25703:24;25699:37;25695:42;25680:58;25665:74;;25552:201;-1:-1:-1;;;;;25799:1:29;25783:14;;;25779:22;25766:36;;-1:-1:-1;24717:1352:29:o;26074:289::-;26205:3;26243:6;26237:13;26259:66;26318:6;26313:3;26306:4;26298:6;26294:17;26259:66;:::i;:::-;26341:16;;;;;26074:289;-1:-1:-1;;26074:289:29:o;26825:649::-;26905:6;26958:2;26946:9;26937:7;26933:23;26929:32;26926:52;;;26974:1;26971;26964:12;26926:52;27007:9;27001:16;-1:-1:-1;;;;;27032:6:29;27029:30;27026:50;;;27072:1;27069;27062:12;27026:50;27095:22;;27148:4;27140:13;;27136:27;-1:-1:-1;27126:55:29;;27177:1;27174;27167:12;27126:55;27206:2;27200:9;27231:49;27247:32;27276:2;27247:32;:::i;27231:49::-;27303:2;27296:5;27289:17;27343:7;27338:2;27333;27329;27325:11;27321:20;27318:33;27315:53;;;27364:1;27361;27354:12;27315:53;27377:67;27441:2;27436;27429:5;27425:14;27420:2;27416;27412:11;27377:67;:::i;27479:1421::-;27747:3;27776:1;27809:6;27803:13;27839:36;27865:9;27839:36;:::i;:::-;27894:1;27911:18;;;27938:133;;;;28085:1;28080:356;;;;27904:532;;27938:133;-1:-1:-1;;27971:24:29;;27959:37;;28044:14;;28037:22;28025:35;;28016:45;;;-1:-1:-1;27938:133:29;;28080:356;28111:6;28108:1;28101:17;28141:4;28186:2;28183:1;28173:16;28211:1;28225:165;28239:6;28236:1;28233:13;28225:165;;;28317:14;;28304:11;;;28297:35;28360:16;;;;28254:10;;28225:165;;;28229:3;;;28419:6;28414:3;28410:16;28403:23;;27904:532;;;;;28467:6;28461:13;28483:68;28542:8;28537:3;28530:4;28522:6;28518:17;28483:68;:::i;:::-;28616:13;;28573:18;;;28638:70;28616:13;28573:18;28685:4;28673:17;;28638:70;:::i;:::-;28772:13;;28727:20;;;28794:67;28772:13;28727:20;28841:4;28829:17;;28794:67;:::i;:::-;28877:17;;27479:1421;-1:-1:-1;;;;;;27479:1421:29:o;28905:168::-;28978:9;;;29009;;29026:15;;;29020:22;;29006:37;28996:71;;29047:18;;:::i;29078:550::-;29292:13;;29235:3;;29266;;29345:4;29372:15;;;29235:3;29415:186;29429:6;29426:1;29423:13;29415:186;;;29496:13;;29511:4;29492:24;29478:39;;29539:14;;;;29576:15;;;;29451:1;29444:9;29415:186;;;-1:-1:-1;29617:5:29;;29078:550;-1:-1:-1;;;;;;29078:550:29:o;29633:489::-;-1:-1:-1;;;;;29902:15:29;;;29884:34;;29954:15;;29949:2;29934:18;;29927:43;30001:2;29986:18;;29979:34;;;30049:3;30044:2;30029:18;;30022:31;;;29827:4;;30070:46;;30096:19;;30088:6;30070:46;:::i;:::-;30062:54;29633:489;-1:-1:-1;;;;;;29633:489:29:o;30127:249::-;30196:6;30249:2;30237:9;30228:7;30224:23;30220:32;30217:52;;;30265:1;30262;30255:12;30217:52;30297:9;30291:16;30316:30;30340:5;30316:30;:::i;30381:496::-;30560:3;30598:6;30592:13;30614:66;30673:6;30668:3;30661:4;30653:6;30649:17;30614:66;:::i;:::-;30743:13;;30702:16;;;;30765:70;30743:13;30702:16;30812:4;30800:17;;30765:70;:::i;:::-;30851:20;;30381:496;-1:-1:-1;;;;30381:496:29:o"},"methodIdentifiers":{"DAI_TOKEN()":"e606df87","addOwner(address)":"7065cb48","addSigner(address)":"eb12d61e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnCards(uint8[])":"20965a5f","changeMaxPacksToOpenAtOnce(uint8)":"241a08fe","changePackPrice(uint256)":"e1883c6e","changeRequireOfferValidationInMint(bool)":"f98fd283","changeRequireOfferValidationInTransfer(bool)":"68cc5bc1","changeRequireOpenPackSignerValidation(bool)":"dbfc05cf","emergencyWithdraw(uint256)":"5312ea8e","exchangeCardsOffer(address,uint8,address,uint8)":"ad1684fa","finishAlbum()":"9038f414","gammaOffersContract()":"d322b563","gammaPacksContract()":"2f9e026a","gammaTicketsContract()":"14cca36a","getApproved(uint256)":"081812fc","getBurnedCardQttyByUser(address)":"7cf86b72","getCardQuantityByUser(address,uint8)":"1585cc4e","getCardsByUser(address)":"0435dcaf","getLotteryPrize()":"d780c477","hasCard(address,uint8)":"886eb60f","hasCardByOffer(address,uint8)":"8bf670c8","isApprovedForAll(address,address)":"e985e9c5","isOwner(address)":"2f54bf6e","isSigner(address)":"7df73e27","mintCard(uint8)":"bf400a6a","name()":"06fdde03","openPack(uint256,uint8[],bytes)":"267b841d","openPacks(uint8,uint256[],uint8[][],bytes[])":"203335f6","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","removeCardByOffer(address,uint8)":"7155a3ac","removeOwner(address)":"173825d9","removeSigner(address)":"0e316ab7","renounceOwnership()":"715018a6","restoreCardByOffer(address,uint8)":"155e2f92","s_baseUri()":"e8a7e31d","s_burnedCards(address)":"07b2e246","s_cards(uint256)":"4c03cd0b","s_cardsByUser(address,uint8)":"9ff26efd","s_cardsInventory(uint256)":"88e0ef80","s_lotteryPrizePercentage()":"6d0af178","s_mainAlbumPrize()":"21a7c6b0","s_mainUri()":"79e8dadc","s_maxPacksToOpenAtOnce()":"ab535160","s_packPrice()":"656bd0ad","s_prizesBalance()":"d7093f40","s_requireOfferValidationInMint()":"147baac7","s_requireOfferValidationInTransfer()":"9a5613ad","s_requireOpenPackSignerValidation()":"e4ae0b9b","s_secondaryAlbumPrize()":"b3526185","s_secondaryUri()":"4039327e","s_tokenIdCounter()":"82d8a118","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setGammaOffersContract(address)":"128916dc","setGammaPacksContract(address)":"cafaa473","setGammaTicketsContract(address)":"ddb975e8","setLotteryPrizePercentage(uint8)":"7ce65f7b","setMainAlbumPrize(uint256)":"7232d7d4","setPrizesBalance(uint256)":"5e31ce48","setSecondaryAlbumPrize(uint256)":"ba6c0fbc","setUris(string,string)":"9c7f707f","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","testAddCards(address)":"a419811d","testOpenPack(address,uint256,uint8[])":"30f5cc58","tokenURI(uint256)":"c87b56dd","transferCard(address,uint8)":"2ca699e7","transferCards(address,uint8[])":"a1af8ad4","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","verifyPackSigner(uint256,uint8[],bytes)":"1306952c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daiTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaPacksContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaOffersContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_baseUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRemoveUserOffers\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CardLimitExceeded\",\"type\":\"error\"},{\"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\"},{\"inputs\":[],\"name\":\"IncorrectPrizeAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientCards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCardNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustCompleteAlbum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotYourPack\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyGammaPacksContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOffersContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserDoesNotHaveCardOrAlbum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongPacksQuantity\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"albumClass\",\"type\":\"uint8\"}],\"name\":\"AlbumCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"cardTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"albumTokenId\",\"type\":\"uint256\"}],\"name\":\"CardPasted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"CardTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8[]\",\"name\":\"cardsNumber\",\"type\":\"uint8[]\"}],\"name\":\"CardsBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8[]\",\"name\":\"cardNumber\",\"type\":\"uint8[]\"}],\"name\":\"CardsTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EmergencyWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaOffersContract\",\"type\":\"address\"}],\"name\":\"NewGammaOffersContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaPacksContract\",\"type\":\"address\"}],\"name\":\"NewGammaPacksContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaTicketContract\",\"type\":\"address\"}],\"name\":\"NewGammaTicketsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"}],\"name\":\"NewSigner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"newMainUri\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"newSecondaryUri\",\"type\":\"string\"}],\"name\":\"NewUris\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumberFrom\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumberTo\",\"type\":\"uint8\"}],\"name\":\"OfferCardsExchanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"}],\"name\":\"PackOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DAI_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newSigner\",\"type\":\"address\"}],\"name\":\"addSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8[]\",\"name\":\"cardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"burnCards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_maxPacksToOpenAtOnce\",\"type\":\"uint8\"}],\"name\":\"changeMaxPacksToOpenAtOnce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPackPrice\",\"type\":\"uint256\"}],\"name\":\"changePackPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"changeRequireOfferValidationInMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"changeRequireOfferValidationInTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"changeRequireOpenPackSignerValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberFrom\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberTo\",\"type\":\"uint8\"}],\"name\":\"exchangeCardsOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finishAlbum\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaOffersContract\",\"outputs\":[{\"internalType\":\"contract IgammaOffersContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaPacksContract\",\"outputs\":[{\"internalType\":\"contract IgammaPacksContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaTicketsContract\",\"outputs\":[{\"internalType\":\"contract IgammaTicketsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getBurnedCardQttyByUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNum\",\"type\":\"uint8\"}],\"name\":\"getCardQuantityByUser\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getCardsByUser\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLotteryPrize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNum\",\"type\":\"uint8\"}],\"name\":\"hasCard\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"has\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasCardByOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"has\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isSigner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNum\",\"type\":\"uint8\"}],\"name\":\"mintCard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"openPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"packsQuantity\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"packsNumber\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[][]\",\"name\":\"packsData\",\"type\":\"uint8[][]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"openPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerToRemove\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_signerToRemove\",\"type\":\"address\"}],\"name\":\"removeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"restoreCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_baseUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"s_burnedCards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"s_cards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"pasted\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"completion\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"s_cardsByUser\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"amount\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cardNumber\",\"type\":\"uint256\"}],\"name\":\"s_cardsInventory\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_lotteryPrizePercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_mainAlbumPrize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_mainUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_maxPacksToOpenAtOnce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_packPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_prizesBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_requireOfferValidationInMint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_requireOfferValidationInTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_requireOpenPackSignerValidation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_secondaryAlbumPrize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_secondaryUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_tokenIdCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaOffersContract\",\"type\":\"address\"}],\"name\":\"setGammaOffersContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaPacksContract\",\"type\":\"address\"}],\"name\":\"setGammaPacksContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"}],\"name\":\"setGammaTicketsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"amount\",\"type\":\"uint8\"}],\"name\":\"setLotteryPrizePercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMainAlbumPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setPrizesBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setSecondaryAlbumPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newMainUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"newSecondaryUri\",\"type\":\"string\"}],\"name\":\"setUris\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"testAddCards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"}],\"name\":\"testOpenPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"transferCard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8[]\",\"name\":\"cardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"transferCards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verifyPackSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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 EIP-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.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"NofGammaCardsV5\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/gamma/GammaCardsNFT.v1.sol":{"NofGammaCardsNFTV1":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_464":{"entryPoint":null,"id":464,"parameterSlots":2,"returnSlots":0},"@_5830":{"entryPoint":null,"id":5830,"parameterSlots":0,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":207,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":290,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":147,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":125,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"201:325:29","statements":[{"nodeType":"YulAssignment","src":"211:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:29"},"nodeType":"YulFunctionCall","src":"221:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:29"},"nodeType":"YulFunctionCall","src":"268:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:29","statements":[{"nodeType":"YulAssignment","src":"321:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:29"},"nodeType":"YulFunctionCall","src":"331:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:29"},"nodeType":"YulFunctionCall","src":"292:26:29"},"nodeType":"YulIf","src":"289:61:29"},{"body":{"nodeType":"YulBlock","src":"409:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:29"},"nodeType":"YulFunctionCall","src":"467:15:29"},"nodeType":"YulExpressionStatement","src":"467:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:29"},"nodeType":"YulFunctionCall","src":"495:15:29"},"nodeType":"YulExpressionStatement","src":"495:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:29"},"nodeType":"YulFunctionCall","src":"385:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:29"},"nodeType":"YulFunctionCall","src":"362:38:29"},"nodeType":"YulIf","src":"359:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:29","type":""}],"src":"146:380:29"},{"body":{"nodeType":"YulBlock","src":"587:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:29"},"nodeType":"YulFunctionCall","src":"597:14:29"},"nodeType":"YulExpressionStatement","src":"597:14:29"},{"nodeType":"YulAssignment","src":"620:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:29"},"nodeType":"YulFunctionCall","src":"628:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:29","type":""}],"src":"531:121:29"},{"body":{"nodeType":"YulBlock","src":"738:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:17:29"},"nodeType":"YulExpressionStatement","src":"809:17:29"},{"nodeType":"YulVariableDeclaration","src":"839:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:29"},"nodeType":"YulFunctionCall","src":"851:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:29"},"nodeType":"YulFunctionCall","src":"919:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:29"},"nodeType":"YulFunctionCall","src":"912:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:29","statements":[{"nodeType":"YulAssignment","src":"979:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:29"},"nodeType":"YulFunctionCall","src":"956:20:29"},"nodeType":"YulIf","src":"953:47:29"},{"nodeType":"YulVariableDeclaration","src":"1013:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:29"},"nodeType":"YulFunctionCall","src":"1040:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:29"},"nodeType":"YulFunctionCall","src":"1033:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:29"},"nodeType":"YulFunctionCall","src":"1167:17:29"},"nodeType":"YulExpressionStatement","src":"1167:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:29"},"nodeType":"YulFunctionCall","src":"1112:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:29","statements":[{"nodeType":"YulAssignment","src":"1128:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:29"},"nodeType":"YulFunctionCall","src":"1137:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:29","statements":[]},"src":"1104:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:29"},"nodeType":"YulFunctionCall","src":"751:11:29"},"nodeType":"YulIf","src":"748:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:29","type":""}],"src":"657:545:29"},{"body":{"nodeType":"YulBlock","src":"1292:81:29","statements":[{"nodeType":"YulAssignment","src":"1302:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:29"},"nodeType":"YulFunctionCall","src":"1331:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:29"},"nodeType":"YulFunctionCall","src":"1344:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:29"},"nodeType":"YulFunctionCall","src":"1327:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:29"},"nodeType":"YulFunctionCall","src":"1323:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:29"},"nodeType":"YulFunctionCall","src":"1313:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:29"},"nodeType":"YulFunctionCall","src":"1355:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:29"},"nodeType":"YulFunctionCall","src":"1310:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:29","type":""}],"src":"1207:166:29"},{"body":{"nodeType":"YulBlock","src":"1474:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:29"},"nodeType":"YulFunctionCall","src":"1498:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:29"},"nodeType":"YulFunctionCall","src":"1553:18:29"},"nodeType":"YulExpressionStatement","src":"1553:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:29"},"nodeType":"YulFunctionCall","src":"1535:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:29"},"nodeType":"YulFunctionCall","src":"1531:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulIf","src":"1517:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:29"},"nodeType":"YulFunctionCall","src":"1658:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:29"},"nodeType":"YulFunctionCall","src":"1632:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:29"},"nodeType":"YulFunctionCall","src":"1582:97:29"},"nodeType":"YulExpressionStatement","src":"1582:97:29"},{"nodeType":"YulVariableDeclaration","src":"1688:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:29","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:29"},"nodeType":"YulFunctionCall","src":"1846:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:29"},"nodeType":"YulFunctionCall","src":"1893:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:29"},"nodeType":"YulFunctionCall","src":"2067:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:29"},"nodeType":"YulFunctionCall","src":"2061:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:29"},"nodeType":"YulFunctionCall","src":"2046:42:29"},"nodeType":"YulExpressionStatement","src":"2046:42:29"},{"nodeType":"YulAssignment","src":"2105:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:29"},"nodeType":"YulFunctionCall","src":"2115:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:29"}]},{"nodeType":"YulAssignment","src":"2146:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:29"},"nodeType":"YulFunctionCall","src":"2159:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:29"},"nodeType":"YulFunctionCall","src":"1972:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:29","statements":[{"nodeType":"YulAssignment","src":"1989:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:29"},"nodeType":"YulFunctionCall","src":"1994:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:29","statements":[]},"src":"1964:236:29"},{"body":{"nodeType":"YulBlock","src":"2248:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:29"},"nodeType":"YulFunctionCall","src":"2289:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:29"},"nodeType":"YulFunctionCall","src":"2283:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:29"},"nodeType":"YulFunctionCall","src":"2368:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:29"},"nodeType":"YulFunctionCall","src":"2364:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:29"},"nodeType":"YulFunctionCall","src":"2390:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:29"},"nodeType":"YulFunctionCall","src":"2360:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:29"},"nodeType":"YulFunctionCall","src":"2356:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:29"},"nodeType":"YulFunctionCall","src":"2341:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:29"},"nodeType":"YulFunctionCall","src":"2326:74:29"},"nodeType":"YulExpressionStatement","src":"2326:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:29"},"nodeType":"YulFunctionCall","src":"2216:19:29"},"nodeType":"YulIf","src":"2213:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:29"},"nodeType":"YulFunctionCall","src":"2444:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:29"},"nodeType":"YulFunctionCall","src":"2440:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:29"},"nodeType":"YulFunctionCall","src":"2427:36:29"},"nodeType":"YulExpressionStatement","src":"2427:36:29"}]},"nodeType":"YulCase","src":"1810:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:29","statements":[{"nodeType":"YulAssignment","src":"2571:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:29"},"nodeType":"YulFunctionCall","src":"2586:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:29"},"nodeType":"YulFunctionCall","src":"2580:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:29"},"nodeType":"YulIf","src":"2531:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:29"},"nodeType":"YulFunctionCall","src":"2646:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:81:29"},"nodeType":"YulExpressionStatement","src":"2633:81:29"}]},"nodeType":"YulCase","src":"2482:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:29"},"nodeType":"YulFunctionCall","src":"1787:14:29"},"nodeType":"YulSwitch","src":"1780:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:29","type":""}],"src":"1378:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61106480620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x47616D6D614361726473 PUSH1 0xB0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x4E4F465F4743 PUSH1 0xD0 SHL DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x65 SWAP2 SWAP1 PUSH3 0x122 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x74 DUP3 DUP3 PUSH3 0x122 JUMP JUMPDEST POP POP POP PUSH3 0x1EE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0xA8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xC9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x11D JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xF8 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x119 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x104 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x13E JUMPI PUSH3 0x13E PUSH3 0x7D JUMP JUMPDEST PUSH3 0x156 DUP2 PUSH3 0x14F DUP5 SLOAD PUSH3 0x93 JUMP JUMPDEST DUP5 PUSH3 0xCF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x18E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x175 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x119 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1BF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x19E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x1DE JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1064 DUP1 PUSH3 0x1FE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0xCD4 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11F PUSH2 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xD41 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0xD89 JUMP JUMPDEST PUSH2 0x2F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x11F PUSH2 0x417 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x228 CALLDATASIZE PUSH1 0x4 PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x481 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B 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 0x279 SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x29B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2A9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DB DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x238 JUMP JUMPDEST PUSH2 0x304 DUP3 DUP3 CALLER PUSH2 0x4DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x344 DUP4 DUP4 CALLER PUSH2 0x4EC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x431 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x304 PUSH1 0x0 DUP3 CALLER PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B JUMP JUMPDEST PUSH2 0x304 CALLER DUP4 DUP4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x43C DUP5 DUP5 DUP5 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x392 DUP5 DUP5 DUP5 DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x238 DUP3 PUSH2 0x7AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0x238 JUMPI POP PUSH2 0x238 DUP3 PUSH2 0x8BE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x519 JUMPI PUSH2 0x519 DUP2 DUP5 DUP7 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x557 JUMPI PUSH2 0x536 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x6C6 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x701 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x6FE SWAP2 DUP2 ADD SWAP1 PUSH2 0xFE2 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x76A JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x734 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x762 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x7A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7B8 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x7D2 SWAP1 PUSH2 0xF6B 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 0x7FE SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x820 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x82E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x869 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x87B JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x8AD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x895 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8B6 DUP5 PUSH2 0xA78 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8EF JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x238 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x238 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x922 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 PUSH2 0x932 DUP5 PUSH2 0x4A6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x95E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x971 JUMPI POP PUSH2 0x96F DUP2 DUP5 PUSH2 0x453 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x9E2 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA1F DUP4 DUP4 DUP4 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x3B3 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA83 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xA9B PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xABB JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xAE6 JUMP JUMPDEST DUP1 PUSH2 0xAC5 DUP5 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD6 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x8B6 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xB27 JUMPI POP PUSH2 0xB27 DUP5 DUP5 PUSH2 0x453 JUMP JUMPDEST DUP1 PUSH2 0x8B6 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB5D DUP4 PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB7D JUMPI PUSH2 0xB7D PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xBB1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC22 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC4E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC6C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC84 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC98 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCAA JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x238 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD0C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xCF4 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD2D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xCF1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAE6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD1 DUP5 PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF PUSH1 0x20 DUP6 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE6 DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE26 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7B DUP6 PUSH2 0xD6D JUMP JUMPDEST SWAP4 POP PUSH2 0xE89 PUSH1 0x20 DUP7 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xED3 JUMPI PUSH2 0xED3 PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xEFB JUMPI PUSH2 0xEFB PUSH2 0xE46 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF54 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH2 0xF62 PUSH1 0x20 DUP5 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xF7F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF9F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xFD8 SWAP1 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1011 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1025 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD LOG0 0x2D 0xC7 LOG1 0xC6 MUL 0xE1 0x49 JUMP GT 0xEA KECCAK256 PUSH2 0x595E DUP9 0xB0 0xD5 SWAP13 0xBD DUP15 0xCB SWAP14 CODESIZE XOR 0xC7 CHAINID INVALID 0xC8 0xB7 ISZERO PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"333:588:21:-:0;;;412:47;;;;;;;;;;1381:113:6;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:6;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;333:588:21;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:29;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:29;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:29;;;2580:26;2531:89;-1:-1:-1;;1335:1:29;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:29;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:29;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:29;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:29:o;:::-;333:588:21;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_1206":{"entryPoint":1247,"id":1206,"parameterSlots":3,"returnSlots":0},"@_approve_1272":{"entryPoint":2318,"id":1272,"parameterSlots":4,"returnSlots":0},"@_baseURI_599":{"entryPoint":null,"id":599,"parameterSlots":0,"returnSlots":1},"@_checkAuthorized_854":{"entryPoint":2580,"id":854,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_1402":{"entryPoint":1668,"id":1402,"parameterSlots":4,"returnSlots":0},"@_getApproved_781":{"entryPoint":null,"id":781,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_817":{"entryPoint":2797,"id":817,"parameterSlots":3,"returnSlots":1},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_ownerOf_768":{"entryPoint":null,"id":768,"parameterSlots":1,"returnSlots":1},"@_requireOwned_1338":{"entryPoint":1190,"id":1338,"parameterSlots":1,"returnSlots":1},"@_setApprovalForAll_1309":{"entryPoint":1509,"id":1309,"parameterSlots":3,"returnSlots":0},"@_update_960":{"entryPoint":1260,"id":960,"parameterSlots":3,"returnSlots":1},"@approve_615":{"entryPoint":761,"id":615,"parameterSlots":2,"returnSlots":0},"@balanceOf_523":{"entryPoint":975,"id":523,"parameterSlots":1,"returnSlots":1},"@burn_1566":{"entryPoint":952,"id":1566,"parameterSlots":1,"returnSlots":0},"@getApproved_632":{"entryPoint":720,"id":632,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_665":{"entryPoint":1107,"id":665,"parameterSlots":2,"returnSlots":1},"@log10_3338":{"entryPoint":3043,"id":3338,"parameterSlots":1,"returnSlots":1},"@name_545":{"entryPoint":574,"id":545,"parameterSlots":0,"returnSlots":1},"@ownerOf_536":{"entryPoint":964,"id":536,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_729":{"entryPoint":920,"id":729,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_755":{"entryPoint":1073,"id":755,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_648":{"entryPoint":1062,"id":648,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1616":{"entryPoint":1153,"id":1616,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2451":{"entryPoint":null,"id":2451,"parameterSlots":1,"returnSlots":1},"@supportsInterface_495":{"entryPoint":2238,"id":495,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5876":{"entryPoint":557,"id":5876,"parameterSlots":1,"returnSlots":1},"@symbol_554":{"entryPoint":1047,"id":554,"parameterSlots":0,"returnSlots":1},"@toString_1819":{"entryPoint":2896,"id":1819,"parameterSlots":1,"returnSlots":1},"@tokenURI_1673":{"entryPoint":1965,"id":1673,"parameterSlots":1,"returnSlots":1},"@tokenURI_5860":{"entryPoint":1096,"id":5860,"parameterSlots":1,"returnSlots":1},"@tokenURI_590":{"entryPoint":2680,"id":590,"parameterSlots":1,"returnSlots":1},"@transferFrom_711":{"entryPoint":776,"id":711,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":3437,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3896,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3507,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":3676,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3594,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3465,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3284,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":4066,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3412,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":3349,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4095,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4005,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3393,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3313,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3947,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3654,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":3259,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7198:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:29","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:29"},"nodeType":"YulFunctionCall","src":"125:12:29"},"nodeType":"YulExpressionStatement","src":"125:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:29","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:29"},"nodeType":"YulFunctionCall","src":"99:20:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:29"},"nodeType":"YulFunctionCall","src":"88:32:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:29"},"nodeType":"YulFunctionCall","src":"78:43:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:29"},"nodeType":"YulFunctionCall","src":"71:51:29"},"nodeType":"YulIf","src":"68:71:29"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:29","type":""}],"src":"14:131:29"},{"body":{"nodeType":"YulBlock","src":"219:176:29","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:29"},"nodeType":"YulFunctionCall","src":"267:12:29"},"nodeType":"YulExpressionStatement","src":"267:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:29"},"nodeType":"YulFunctionCall","src":"236:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:29"},"nodeType":"YulFunctionCall","src":"232:32:29"},"nodeType":"YulIf","src":"229:52:29"},{"nodeType":"YulVariableDeclaration","src":"290:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:29"},"nodeType":"YulFunctionCall","src":"303:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:29"},"nodeType":"YulFunctionCall","src":"335:30:29"},"nodeType":"YulExpressionStatement","src":"335:30:29"},{"nodeType":"YulAssignment","src":"374:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:29","type":""}],"src":"150:245:29"},{"body":{"nodeType":"YulBlock","src":"495:92:29","statements":[{"nodeType":"YulAssignment","src":"505:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:29"},"nodeType":"YulFunctionCall","src":"513:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:29"},"nodeType":"YulFunctionCall","src":"565:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:29"},"nodeType":"YulFunctionCall","src":"558:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:29"},"nodeType":"YulFunctionCall","src":"540:41:29"},"nodeType":"YulExpressionStatement","src":"540:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:29","type":""}],"src":"400:187:29"},{"body":{"nodeType":"YulBlock","src":"658:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"668:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"677:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"672:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"737:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"767:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"758:3:29"},"nodeType":"YulFunctionCall","src":"758:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"781:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"786:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:29"},"nodeType":"YulFunctionCall","src":"777:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"771:5:29"},"nodeType":"YulFunctionCall","src":"771:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"751:6:29"},"nodeType":"YulFunctionCall","src":"751:39:29"},"nodeType":"YulExpressionStatement","src":"751:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"698:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"701:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"695:2:29"},"nodeType":"YulFunctionCall","src":"695:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"709:19:29","statements":[{"nodeType":"YulAssignment","src":"711:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"720:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"723:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:29"},"nodeType":"YulFunctionCall","src":"716:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"711:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"691:3:29","statements":[]},"src":"687:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"820:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"825:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"816:3:29"},"nodeType":"YulFunctionCall","src":"816:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:27:29"},"nodeType":"YulExpressionStatement","src":"809:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"636:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"641:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"646:6:29","type":""}],"src":"592:250:29"},{"body":{"nodeType":"YulBlock","src":"897:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"907:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"927:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"921:5:29"},"nodeType":"YulFunctionCall","src":"921:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"911:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"949:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"954:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"942:6:29"},"nodeType":"YulFunctionCall","src":"942:19:29"},"nodeType":"YulExpressionStatement","src":"942:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1009:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1016:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1005:3:29"},"nodeType":"YulFunctionCall","src":"1005:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1027:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1032:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"1039:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"970:34:29"},"nodeType":"YulFunctionCall","src":"970:76:29"},"nodeType":"YulExpressionStatement","src":"970:76:29"},{"nodeType":"YulAssignment","src":"1055:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1070:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1083:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1091:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1079:3:29"},"nodeType":"YulFunctionCall","src":"1079:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1100:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1096:3:29"},"nodeType":"YulFunctionCall","src":"1096:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1075:3:29"},"nodeType":"YulFunctionCall","src":"1075:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:29"},"nodeType":"YulFunctionCall","src":"1066:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"1107:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1062:3:29"},"nodeType":"YulFunctionCall","src":"1062:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1055:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"874:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"881:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"889:3:29","type":""}],"src":"847:271:29"},{"body":{"nodeType":"YulBlock","src":"1244:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1261:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1272:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1254:6:29"},"nodeType":"YulFunctionCall","src":"1254:21:29"},"nodeType":"YulExpressionStatement","src":"1254:21:29"},{"nodeType":"YulAssignment","src":"1284:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1322:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1333:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:29"},"nodeType":"YulFunctionCall","src":"1318:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1292:17:29"},"nodeType":"YulFunctionCall","src":"1292:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1284:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1213:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1224:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1235:4:29","type":""}],"src":"1123:220:29"},{"body":{"nodeType":"YulBlock","src":"1418:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"1464:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1473:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1476:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1466:6:29"},"nodeType":"YulFunctionCall","src":"1466:12:29"},"nodeType":"YulExpressionStatement","src":"1466:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1439:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1448:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1435:3:29"},"nodeType":"YulFunctionCall","src":"1435:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1460:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1431:3:29"},"nodeType":"YulFunctionCall","src":"1431:32:29"},"nodeType":"YulIf","src":"1428:52:29"},{"nodeType":"YulAssignment","src":"1489:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1499:12:29"},"nodeType":"YulFunctionCall","src":"1499:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1489:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1384:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1395:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1407:6:29","type":""}],"src":"1348:180:29"},{"body":{"nodeType":"YulBlock","src":"1634:102:29","statements":[{"nodeType":"YulAssignment","src":"1644:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1656:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1667:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1652:3:29"},"nodeType":"YulFunctionCall","src":"1652:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1644:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1686:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1701:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1717:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1722:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1713:3:29"},"nodeType":"YulFunctionCall","src":"1713:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1726:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1709:3:29"},"nodeType":"YulFunctionCall","src":"1709:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1697:3:29"},"nodeType":"YulFunctionCall","src":"1697:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1679:6:29"},"nodeType":"YulFunctionCall","src":"1679:51:29"},"nodeType":"YulExpressionStatement","src":"1679:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1614:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1625:4:29","type":""}],"src":"1533:203:29"},{"body":{"nodeType":"YulBlock","src":"1790:124:29","statements":[{"nodeType":"YulAssignment","src":"1800:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1822:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1809:12:29"},"nodeType":"YulFunctionCall","src":"1809:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1800:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1892:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1901:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1894:6:29"},"nodeType":"YulFunctionCall","src":"1894:12:29"},"nodeType":"YulExpressionStatement","src":"1894:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1877:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1882:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1873:3:29"},"nodeType":"YulFunctionCall","src":"1873:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1886:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1869:3:29"},"nodeType":"YulFunctionCall","src":"1869:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1848:2:29"},"nodeType":"YulFunctionCall","src":"1848:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1841:6:29"},"nodeType":"YulFunctionCall","src":"1841:50:29"},"nodeType":"YulIf","src":"1838:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1769:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1780:5:29","type":""}],"src":"1741:173:29"},{"body":{"nodeType":"YulBlock","src":"2006:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"2052:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2064:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2054:6:29"},"nodeType":"YulFunctionCall","src":"2054:12:29"},"nodeType":"YulExpressionStatement","src":"2054:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2027:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2023:3:29"},"nodeType":"YulFunctionCall","src":"2023:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2048:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2019:3:29"},"nodeType":"YulFunctionCall","src":"2019:32:29"},"nodeType":"YulIf","src":"2016:52:29"},{"nodeType":"YulAssignment","src":"2077:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2106:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2087:18:29"},"nodeType":"YulFunctionCall","src":"2087:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2077:6:29"}]},{"nodeType":"YulAssignment","src":"2125:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2152:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2148:3:29"},"nodeType":"YulFunctionCall","src":"2148:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2135:12:29"},"nodeType":"YulFunctionCall","src":"2135:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2125:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1964:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1975:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1987:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1995:6:29","type":""}],"src":"1919:254:29"},{"body":{"nodeType":"YulBlock","src":"2282:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"2328:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2337:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2340:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2330:6:29"},"nodeType":"YulFunctionCall","src":"2330:12:29"},"nodeType":"YulExpressionStatement","src":"2330:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2303:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2312:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2299:3:29"},"nodeType":"YulFunctionCall","src":"2299:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2324:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2295:3:29"},"nodeType":"YulFunctionCall","src":"2295:32:29"},"nodeType":"YulIf","src":"2292:52:29"},{"nodeType":"YulAssignment","src":"2353:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2382:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2363:18:29"},"nodeType":"YulFunctionCall","src":"2363:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2353:6:29"}]},{"nodeType":"YulAssignment","src":"2401:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2434:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2445:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:29"},"nodeType":"YulFunctionCall","src":"2430:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2411:18:29"},"nodeType":"YulFunctionCall","src":"2411:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2401:6:29"}]},{"nodeType":"YulAssignment","src":"2458:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2485:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2496:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:29"},"nodeType":"YulFunctionCall","src":"2481:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2468:12:29"},"nodeType":"YulFunctionCall","src":"2468:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2458:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2232:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2243:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2255:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2263:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2271:6:29","type":""}],"src":"2178:328:29"},{"body":{"nodeType":"YulBlock","src":"2581:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2627:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2636:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2639:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2629:6:29"},"nodeType":"YulFunctionCall","src":"2629:12:29"},"nodeType":"YulExpressionStatement","src":"2629:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2602:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2611:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2598:3:29"},"nodeType":"YulFunctionCall","src":"2598:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2623:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2594:3:29"},"nodeType":"YulFunctionCall","src":"2594:32:29"},"nodeType":"YulIf","src":"2591:52:29"},{"nodeType":"YulAssignment","src":"2652:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2662:18:29"},"nodeType":"YulFunctionCall","src":"2662:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2547:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2558:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2570:6:29","type":""}],"src":"2511:186:29"},{"body":{"nodeType":"YulBlock","src":"2803:76:29","statements":[{"nodeType":"YulAssignment","src":"2813:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2825:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2836:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2821:3:29"},"nodeType":"YulFunctionCall","src":"2821:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2813:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2855:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"2866:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2848:6:29"},"nodeType":"YulFunctionCall","src":"2848:25:29"},"nodeType":"YulExpressionStatement","src":"2848:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2772:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2783:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2794:4:29","type":""}],"src":"2702:177:29"},{"body":{"nodeType":"YulBlock","src":"2968:263:29","statements":[{"body":{"nodeType":"YulBlock","src":"3014:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3023:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3026:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3016:6:29"},"nodeType":"YulFunctionCall","src":"3016:12:29"},"nodeType":"YulExpressionStatement","src":"3016:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2989:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2998:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2985:3:29"},"nodeType":"YulFunctionCall","src":"2985:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3010:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2981:3:29"},"nodeType":"YulFunctionCall","src":"2981:32:29"},"nodeType":"YulIf","src":"2978:52:29"},{"nodeType":"YulAssignment","src":"3039:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3068:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3049:18:29"},"nodeType":"YulFunctionCall","src":"3049:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"3087:45:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:29"},"nodeType":"YulFunctionCall","src":"3113:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3100:12:29"},"nodeType":"YulFunctionCall","src":"3100:32:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3091:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3185:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3194:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3197:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3187:6:29"},"nodeType":"YulFunctionCall","src":"3187:12:29"},"nodeType":"YulExpressionStatement","src":"3187:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3154:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3168:6:29"},"nodeType":"YulFunctionCall","src":"3168:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3161:6:29"},"nodeType":"YulFunctionCall","src":"3161:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3151:2:29"},"nodeType":"YulFunctionCall","src":"3151:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3144:6:29"},"nodeType":"YulFunctionCall","src":"3144:40:29"},"nodeType":"YulIf","src":"3141:60:29"},{"nodeType":"YulAssignment","src":"3210:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"3220:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3210:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2926:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2937:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2949:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2957:6:29","type":""}],"src":"2884:347:29"},{"body":{"nodeType":"YulBlock","src":"3268:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3285:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3292:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3297:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3288:3:29"},"nodeType":"YulFunctionCall","src":"3288:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3278:6:29"},"nodeType":"YulFunctionCall","src":"3278:31:29"},"nodeType":"YulExpressionStatement","src":"3278:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3325:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3318:6:29"},"nodeType":"YulFunctionCall","src":"3318:15:29"},"nodeType":"YulExpressionStatement","src":"3318:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:29"},"nodeType":"YulFunctionCall","src":"3342:15:29"},"nodeType":"YulExpressionStatement","src":"3342:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3236:127:29"},{"body":{"nodeType":"YulBlock","src":"3498:1008:29","statements":[{"body":{"nodeType":"YulBlock","src":"3545:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3554:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3557:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3547:6:29"},"nodeType":"YulFunctionCall","src":"3547:12:29"},"nodeType":"YulExpressionStatement","src":"3547:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3519:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3515:3:29"},"nodeType":"YulFunctionCall","src":"3515:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3540:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3511:3:29"},"nodeType":"YulFunctionCall","src":"3511:33:29"},"nodeType":"YulIf","src":"3508:53:29"},{"nodeType":"YulAssignment","src":"3570:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3599:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3580:18:29"},"nodeType":"YulFunctionCall","src":"3580:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3570:6:29"}]},{"nodeType":"YulAssignment","src":"3618:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:29"},"nodeType":"YulFunctionCall","src":"3647:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3628:18:29"},"nodeType":"YulFunctionCall","src":"3628:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3618:6:29"}]},{"nodeType":"YulAssignment","src":"3675:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3702:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3713:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:29"},"nodeType":"YulFunctionCall","src":"3698:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3685:12:29"},"nodeType":"YulFunctionCall","src":"3685:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3675:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"3726:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3757:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3753:3:29"},"nodeType":"YulFunctionCall","src":"3753:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3740:12:29"},"nodeType":"YulFunctionCall","src":"3740:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3730:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3781:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3791:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3785:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3836:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3845:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3848:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3838:6:29"},"nodeType":"YulFunctionCall","src":"3838:12:29"},"nodeType":"YulExpressionStatement","src":"3838:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3824:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3832:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3821:2:29"},"nodeType":"YulFunctionCall","src":"3821:14:29"},"nodeType":"YulIf","src":"3818:34:29"},{"nodeType":"YulVariableDeclaration","src":"3861:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3875:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"3886:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3871:3:29"},"nodeType":"YulFunctionCall","src":"3871:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3865:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3941:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3950:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3953:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3943:6:29"},"nodeType":"YulFunctionCall","src":"3943:12:29"},"nodeType":"YulExpressionStatement","src":"3943:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3920:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"3924:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3916:3:29"},"nodeType":"YulFunctionCall","src":"3916:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3931:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3912:3:29"},"nodeType":"YulFunctionCall","src":"3912:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3905:6:29"},"nodeType":"YulFunctionCall","src":"3905:35:29"},"nodeType":"YulIf","src":"3902:55:29"},{"nodeType":"YulVariableDeclaration","src":"3966:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3989:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3976:12:29"},"nodeType":"YulFunctionCall","src":"3976:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3970:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4015:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4017:16:29"},"nodeType":"YulFunctionCall","src":"4017:18:29"},"nodeType":"YulExpressionStatement","src":"4017:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4007:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4011:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4004:2:29"},"nodeType":"YulFunctionCall","src":"4004:10:29"},"nodeType":"YulIf","src":"4001:36:29"},{"nodeType":"YulVariableDeclaration","src":"4046:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4060:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4056:3:29"},"nodeType":"YulFunctionCall","src":"4056:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4050:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4072:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4092:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4086:5:29"},"nodeType":"YulFunctionCall","src":"4086:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4076:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4104:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4126:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4150:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"4154:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4146:3:29"},"nodeType":"YulFunctionCall","src":"4146:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"4161:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4142:3:29"},"nodeType":"YulFunctionCall","src":"4142:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"4166:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4138:3:29"},"nodeType":"YulFunctionCall","src":"4138:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"4171:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4134:3:29"},"nodeType":"YulFunctionCall","src":"4134:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4122:3:29"},"nodeType":"YulFunctionCall","src":"4122:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4108:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4234:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4236:16:29"},"nodeType":"YulFunctionCall","src":"4236:18:29"},"nodeType":"YulExpressionStatement","src":"4236:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4193:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4205:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4190:2:29"},"nodeType":"YulFunctionCall","src":"4190:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4213:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4225:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4210:2:29"},"nodeType":"YulFunctionCall","src":"4210:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4187:2:29"},"nodeType":"YulFunctionCall","src":"4187:46:29"},"nodeType":"YulIf","src":"4184:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4276:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4265:6:29"},"nodeType":"YulFunctionCall","src":"4265:22:29"},"nodeType":"YulExpressionStatement","src":"4265:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4303:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4311:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4296:6:29"},"nodeType":"YulFunctionCall","src":"4296:18:29"},"nodeType":"YulExpressionStatement","src":"4296:18:29"},{"body":{"nodeType":"YulBlock","src":"4360:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4369:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4372:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4362:6:29"},"nodeType":"YulFunctionCall","src":"4362:12:29"},"nodeType":"YulExpressionStatement","src":"4362:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4337:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4341:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4333:3:29"},"nodeType":"YulFunctionCall","src":"4333:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"4346:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4329:3:29"},"nodeType":"YulFunctionCall","src":"4329:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4351:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4326:2:29"},"nodeType":"YulFunctionCall","src":"4326:33:29"},"nodeType":"YulIf","src":"4323:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4402:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4410:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4398:3:29"},"nodeType":"YulFunctionCall","src":"4398:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4419:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:29"},"nodeType":"YulFunctionCall","src":"4415:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4428:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4385:12:29"},"nodeType":"YulFunctionCall","src":"4385:46:29"},"nodeType":"YulExpressionStatement","src":"4385:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4455:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4463:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4451:3:29"},"nodeType":"YulFunctionCall","src":"4451:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"4468:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4447:3:29"},"nodeType":"YulFunctionCall","src":"4447:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"4473:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4440:6:29"},"nodeType":"YulFunctionCall","src":"4440:35:29"},"nodeType":"YulExpressionStatement","src":"4440:35:29"},{"nodeType":"YulAssignment","src":"4484:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4494:6:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4484:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3440:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3451:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3463:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3471:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3479:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3487:6:29","type":""}],"src":"3368:1138:29"},{"body":{"nodeType":"YulBlock","src":"4598:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"4644:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4653:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4656:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4646:6:29"},"nodeType":"YulFunctionCall","src":"4646:12:29"},"nodeType":"YulExpressionStatement","src":"4646:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4619:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4628:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4615:3:29"},"nodeType":"YulFunctionCall","src":"4615:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4640:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4611:3:29"},"nodeType":"YulFunctionCall","src":"4611:32:29"},"nodeType":"YulIf","src":"4608:52:29"},{"nodeType":"YulAssignment","src":"4669:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4698:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4679:18:29"},"nodeType":"YulFunctionCall","src":"4679:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4669:6:29"}]},{"nodeType":"YulAssignment","src":"4717:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4750:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4761:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4746:3:29"},"nodeType":"YulFunctionCall","src":"4746:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4727:18:29"},"nodeType":"YulFunctionCall","src":"4727:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4717:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4556:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4567:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4579:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4587:6:29","type":""}],"src":"4511:260:29"},{"body":{"nodeType":"YulBlock","src":"4831:325:29","statements":[{"nodeType":"YulAssignment","src":"4841:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4855:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"4858:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4851:3:29"},"nodeType":"YulFunctionCall","src":"4851:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4841:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4872:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4902:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"4908:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4898:3:29"},"nodeType":"YulFunctionCall","src":"4898:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"4876:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4949:31:29","statements":[{"nodeType":"YulAssignment","src":"4951:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4965:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4973:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4961:3:29"},"nodeType":"YulFunctionCall","src":"4961:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4951:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4929:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4922:6:29"},"nodeType":"YulFunctionCall","src":"4922:26:29"},"nodeType":"YulIf","src":"4919:61:29"},{"body":{"nodeType":"YulBlock","src":"5039:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5060:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5067:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5072:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5063:3:29"},"nodeType":"YulFunctionCall","src":"5063:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:29"},"nodeType":"YulFunctionCall","src":"5053:31:29"},"nodeType":"YulExpressionStatement","src":"5053:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5104:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5107:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5097:6:29"},"nodeType":"YulFunctionCall","src":"5097:15:29"},"nodeType":"YulExpressionStatement","src":"5097:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5132:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5135:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5125:6:29"},"nodeType":"YulFunctionCall","src":"5125:15:29"},"nodeType":"YulExpressionStatement","src":"5125:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4995:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5018:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5026:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5015:2:29"},"nodeType":"YulFunctionCall","src":"5015:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4992:2:29"},"nodeType":"YulFunctionCall","src":"4992:38:29"},"nodeType":"YulIf","src":"4989:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"4811:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"4820:6:29","type":""}],"src":"4776:380:29"},{"body":{"nodeType":"YulBlock","src":"5318:218:29","statements":[{"nodeType":"YulAssignment","src":"5328:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5340:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5351:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5336:3:29"},"nodeType":"YulFunctionCall","src":"5336:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5328:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"5363:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5381:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5386:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5377:3:29"},"nodeType":"YulFunctionCall","src":"5377:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"5390:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5373:3:29"},"nodeType":"YulFunctionCall","src":"5373:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5367:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5408:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5423:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5431:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5419:3:29"},"nodeType":"YulFunctionCall","src":"5419:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5401:6:29"},"nodeType":"YulFunctionCall","src":"5401:34:29"},"nodeType":"YulExpressionStatement","src":"5401:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5455:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5466:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5451:3:29"},"nodeType":"YulFunctionCall","src":"5451:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"5471:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5444:6:29"},"nodeType":"YulFunctionCall","src":"5444:34:29"},"nodeType":"YulExpressionStatement","src":"5444:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5498:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5509:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5494:3:29"},"nodeType":"YulFunctionCall","src":"5494:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5518:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5526:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5514:3:29"},"nodeType":"YulFunctionCall","src":"5514:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5487:6:29"},"nodeType":"YulFunctionCall","src":"5487:43:29"},"nodeType":"YulExpressionStatement","src":"5487:43:29"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5271:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5282:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5290:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5298:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5309:4:29","type":""}],"src":"5161:375:29"},{"body":{"nodeType":"YulBlock","src":"5744:286:29","statements":[{"nodeType":"YulVariableDeclaration","src":"5754:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5772:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5777:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5768:3:29"},"nodeType":"YulFunctionCall","src":"5768:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"5781:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5764:3:29"},"nodeType":"YulFunctionCall","src":"5764:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5758:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5799:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5814:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5822:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5810:3:29"},"nodeType":"YulFunctionCall","src":"5810:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5792:6:29"},"nodeType":"YulFunctionCall","src":"5792:34:29"},"nodeType":"YulExpressionStatement","src":"5792:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5846:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5857:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5842:3:29"},"nodeType":"YulFunctionCall","src":"5842:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5866:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5874:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5862:3:29"},"nodeType":"YulFunctionCall","src":"5862:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5835:6:29"},"nodeType":"YulFunctionCall","src":"5835:43:29"},"nodeType":"YulExpressionStatement","src":"5835:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5898:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5909:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5894:3:29"},"nodeType":"YulFunctionCall","src":"5894:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"5914:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5887:6:29"},"nodeType":"YulFunctionCall","src":"5887:34:29"},"nodeType":"YulExpressionStatement","src":"5887:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5952:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5937:3:29"},"nodeType":"YulFunctionCall","src":"5937:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"5957:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5930:6:29"},"nodeType":"YulFunctionCall","src":"5930:31:29"},"nodeType":"YulExpressionStatement","src":"5930:31:29"},{"nodeType":"YulAssignment","src":"5970:54:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5996:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6008:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6019:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6004:3:29"},"nodeType":"YulFunctionCall","src":"6004:19:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"5978:17:29"},"nodeType":"YulFunctionCall","src":"5978:46:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5970:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5689:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5700:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5708:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5716:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5724:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5735:4:29","type":""}],"src":"5541:489:29"},{"body":{"nodeType":"YulBlock","src":"6115:169:29","statements":[{"body":{"nodeType":"YulBlock","src":"6161:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6170:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6173:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6163:6:29"},"nodeType":"YulFunctionCall","src":"6163:12:29"},"nodeType":"YulExpressionStatement","src":"6163:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6136:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6145:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6132:3:29"},"nodeType":"YulFunctionCall","src":"6132:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6128:3:29"},"nodeType":"YulFunctionCall","src":"6128:32:29"},"nodeType":"YulIf","src":"6125:52:29"},{"nodeType":"YulVariableDeclaration","src":"6186:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6205:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6199:5:29"},"nodeType":"YulFunctionCall","src":"6199:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6190:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6248:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"6224:23:29"},"nodeType":"YulFunctionCall","src":"6224:30:29"},"nodeType":"YulExpressionStatement","src":"6224:30:29"},{"nodeType":"YulAssignment","src":"6263:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"6273:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6263:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6081:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6092:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6104:6:29","type":""}],"src":"6035:249:29"},{"body":{"nodeType":"YulBlock","src":"6476:309:29","statements":[{"nodeType":"YulVariableDeclaration","src":"6486:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6506:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6500:5:29"},"nodeType":"YulFunctionCall","src":"6500:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6490:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6561:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6569:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6557:3:29"},"nodeType":"YulFunctionCall","src":"6557:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"6576:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"6581:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6522:34:29"},"nodeType":"YulFunctionCall","src":"6522:66:29"},"nodeType":"YulExpressionStatement","src":"6522:66:29"},{"nodeType":"YulVariableDeclaration","src":"6597:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6614:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"6619:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6610:3:29"},"nodeType":"YulFunctionCall","src":"6610:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"6601:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6635:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6657:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6651:5:29"},"nodeType":"YulFunctionCall","src":"6651:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"6639:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6712:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6720:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6708:3:29"},"nodeType":"YulFunctionCall","src":"6708:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"6727:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"6734:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6673:34:29"},"nodeType":"YulFunctionCall","src":"6673:70:29"},"nodeType":"YulExpressionStatement","src":"6673:70:29"},{"nodeType":"YulAssignment","src":"6752:27:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"6763:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"6770:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6759:3:29"},"nodeType":"YulFunctionCall","src":"6759:20:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6752:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6444:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6449:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6457:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6468:3:29","type":""}],"src":"6289:496:29"},{"body":{"nodeType":"YulBlock","src":"6919:145:29","statements":[{"nodeType":"YulAssignment","src":"6929:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6952:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6937:3:29"},"nodeType":"YulFunctionCall","src":"6937:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6929:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6971:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6986:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7002:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7007:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6998:3:29"},"nodeType":"YulFunctionCall","src":"6998:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7011:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6994:3:29"},"nodeType":"YulFunctionCall","src":"6994:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6982:3:29"},"nodeType":"YulFunctionCall","src":"6982:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6964:6:29"},"nodeType":"YulFunctionCall","src":"6964:51:29"},"nodeType":"YulExpressionStatement","src":"6964:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7035:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7046:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7031:3:29"},"nodeType":"YulFunctionCall","src":"7031:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"7051:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7024:6:29"},"nodeType":"YulFunctionCall","src":"7024:34:29"},"nodeType":"YulExpressionStatement","src":"7024:34:29"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6880:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6891:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6899:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6910:4:29","type":""}],"src":"6790:274:29"},{"body":{"nodeType":"YulBlock","src":"7101:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7118:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7125:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7130:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7121:3:29"},"nodeType":"YulFunctionCall","src":"7121:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7111:6:29"},"nodeType":"YulFunctionCall","src":"7111:31:29"},"nodeType":"YulExpressionStatement","src":"7111:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7158:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7161:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7151:6:29"},"nodeType":"YulFunctionCall","src":"7151:15:29"},"nodeType":"YulExpressionStatement","src":"7151:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7182:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7185:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7175:6:29"},"nodeType":"YulFunctionCall","src":"7175:15:29"},"nodeType":"YulExpressionStatement","src":"7175:15:29"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"7069:127:29"}]},"contents":"{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value1 := value\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value3 := memPtr\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0xCD4 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11F PUSH2 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xD41 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0xD89 JUMP JUMPDEST PUSH2 0x2F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x11F PUSH2 0x417 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x228 CALLDATASIZE PUSH1 0x4 PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x481 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B 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 0x279 SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x29B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2A9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DB DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x238 JUMP JUMPDEST PUSH2 0x304 DUP3 DUP3 CALLER PUSH2 0x4DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x344 DUP4 DUP4 CALLER PUSH2 0x4EC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x431 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x304 PUSH1 0x0 DUP3 CALLER PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B JUMP JUMPDEST PUSH2 0x304 CALLER DUP4 DUP4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x43C DUP5 DUP5 DUP5 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x392 DUP5 DUP5 DUP5 DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x238 DUP3 PUSH2 0x7AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0x238 JUMPI POP PUSH2 0x238 DUP3 PUSH2 0x8BE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x519 JUMPI PUSH2 0x519 DUP2 DUP5 DUP7 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x557 JUMPI PUSH2 0x536 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x6C6 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x701 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x6FE SWAP2 DUP2 ADD SWAP1 PUSH2 0xFE2 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x76A JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x734 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x762 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x7A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7B8 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x7D2 SWAP1 PUSH2 0xF6B 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 0x7FE SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x820 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x82E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x869 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x87B JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x8AD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x895 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8B6 DUP5 PUSH2 0xA78 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8EF JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x238 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x238 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x922 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 PUSH2 0x932 DUP5 PUSH2 0x4A6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x95E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x971 JUMPI POP PUSH2 0x96F DUP2 DUP5 PUSH2 0x453 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x9E2 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA1F DUP4 DUP4 DUP4 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x3B3 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA83 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xA9B PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xABB JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xAE6 JUMP JUMPDEST DUP1 PUSH2 0xAC5 DUP5 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD6 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x8B6 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xB27 JUMPI POP PUSH2 0xB27 DUP5 DUP5 PUSH2 0x453 JUMP JUMPDEST DUP1 PUSH2 0x8B6 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB5D DUP4 PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB7D JUMPI PUSH2 0xB7D PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xBB1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC22 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC4E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC6C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC84 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC98 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCAA JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x238 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD0C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xCF4 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD2D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xCF1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAE6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD1 DUP5 PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF PUSH1 0x20 DUP6 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE6 DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE26 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7B DUP6 PUSH2 0xD6D JUMP JUMPDEST SWAP4 POP PUSH2 0xE89 PUSH1 0x20 DUP7 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xED3 JUMPI PUSH2 0xED3 PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xEFB JUMPI PUSH2 0xEFB PUSH2 0xE46 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF54 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH2 0xF62 PUSH1 0x20 DUP5 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xF7F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF9F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xFD8 SWAP1 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1011 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1025 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD LOG0 0x2D 0xC7 LOG1 0xC6 MUL 0xE1 0x49 JUMP GT 0xEA KECCAK256 PUSH2 0x595E DUP9 0xB0 0xD5 SWAP13 0xBD DUP15 0xCB SWAP14 CODESIZE XOR 0xC7 CHAINID INVALID 0xC8 0xB7 ISZERO PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"333:588:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;737:181;;;;;;:::i;:::-;;:::i;:::-;;;565:14:29;;558:22;540:41;;528:2;513:18;737:181:21;;;;;;;;2365:89:6;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:29;;;1679:51;;1667:2;1652:18;3497:154:6;1533:203:29;3323:113:6;;;;;;:::i;:::-;;:::i;:::-;;4143:578;;;;;;:::i;:::-;;:::i;4787:132::-;;;;;;:::i;:::-;;:::i;561:314:9:-;;;;;;:::i;:::-;;:::i;2185:118:6:-;;;;;;:::i;:::-;;:::i;1920:208::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:29;;;2836:2;2821:18;1920:208:6;2702:177:29;2518:93:6;;;:::i;3718:144::-;;;;;;:::i;:::-;;:::i;4985:208::-;;;;;;:::i;:::-;;:::i;566:165:21:-;;;;;;:::i;:::-;;:::i;3928:153:6:-;;;;;;:::i;:::-;;:::i;737:181:21:-;848:4;875:36;899:11;875:23;:36::i;:::-;868:43;737:181;-1:-1:-1;;737:181:21:o;2365:89:6:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:12;3394:8:6;:35::i;:::-;3323:113;;:::o;4143:578::-;-1:-1:-1;;;;;4237:16:6;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:6;;4306:1;4276:33;;;1679:51:29;1652:18;;4276:33:6;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:12;4562:7:6;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:6;:13;-1:-1:-1;;;;;4610:21:6;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:6;;-1:-1:-1;;;;;5419:15:29;;;4654:50:6;;;5401:34:29;5451:18;;;5444:34;;;5514:15;;5494:18;;;5487:43;5336:18;;4654:50:6;5161:375:29;4606:109:6;4223:498;4143:578;;;:::o;4787:132::-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;561:314:9:-;826:42;842:1;846:7;735:10:12;4562:7:6;:34::i;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;1920:208::-;1983:7;-1:-1:-1;;;;;2006:19:6;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:6;;2075:1;2048:30;;;1679:51:29;1652:18;;2048:30:6;1533:203:29;2002:87:6;-1:-1:-1;;;;;;2105:16:6;;;;;:9;:16;;;;;;;1920:208::o;2518:93::-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:12;3836:8:6;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;566:165:21:-;665:13;701:23;716:7;701:14;:23::i;3928:153:6:-;-1:-1:-1;;;;;4039:25:6;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;937:207:10:-;1039:4;-1:-1:-1;;;;;;1062:35:10;;-1:-1:-1;;;1062:35:10;;:75;;;1101:36;1125:11;1101:23;:36::i;16146:241:6:-;16209:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;16271:88;;16317:31;;-1:-1:-1;;;16317:31:6;;;;;2848:25:29;;;2821:18;;16317:31:6;2702:177:29;14426:120:6;14506:33;14515:2;14519:7;14528:4;14534;14506:8;:33::i;8838:795::-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:6;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:6;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:6;;;9157:256;-1:-1:-1;;;;;9427:16:6;;;9423:107;;-1:-1:-1;;;;;9487:13:6;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:6;-1:-1:-1;;;;;9540:21:6;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:6:o;15599:312::-;-1:-1:-1;;;;;15706:22:6;;15702:91;;15751:31;;-1:-1:-1;;;15751:31:6;;-1:-1:-1;;;;;1697:32:29;;15751:31:6;;;1679:51:29;1652:18;;15751:31:6;1533:203:29;15702:91:6;-1:-1:-1;;;;;15802:25:6;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15802:46:6;;;;;;;;;;15863:41;;540::29;;;15863::6;;513:18:29;15863:41:6;;;;;;;15599:312;;;:::o;16926:782::-;-1:-1:-1;;;;;17042:14:6;;;:18;17038:664;;17080:71;;-1:-1:-1;;;17080:71:6;;-1:-1:-1;;;;;17080:36:6;;;;;:71;;735:10:12;;17131:4:6;;17137:7;;17146:4;;17080:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17080:71:6;;;;;;;;-1:-1:-1;;17080:71:6;;;;;;;;;;;;:::i;:::-;;;17076:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17389:6;:13;17406:1;17389:18;17385:293;;17438:25;;-1:-1:-1;;;17438:25:6;;-1:-1:-1;;;;;1697:32:29;;17438:25:6;;;1679:51:29;1652:18;;17438:25:6;1533:203:29;17385:293:6;17630:6;17624:13;17615:6;17611:2;17607:15;17600:38;17076:616;-1:-1:-1;;;;;;17198:51:6;;-1:-1:-1;;;17198:51:6;17194:130;;17280:25;;-1:-1:-1;;;17280:25:6;;-1:-1:-1;;;;;1697:32:29;;17280:25:6;;;1679:51:29;1652:18;;17280:25:6;1533:203:29;17194:130:6;17152:186;16926:782;;;;:::o;1210:593:10:-;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;-1:-1:-1;1341:23:10;1367:19;;;:10;:19;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;3250:9:6;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;1417:10:10;1396:31;;1506:4;1500:18;1522:1;1500:23;1496:70;;-1:-1:-1;1546:9:10;1210:593;-1:-1:-1;;1210:593:10:o;1496:70::-;1665:23;;:27;1661:95;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;1210:593;;;:::o;1661:95::-;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;1210:593;-1:-1:-1;;;;1210:593:10:o;1561:300:6:-;1663:4;-1:-1:-1;;;;;;1698:40:6;;-1:-1:-1;;;1698:40:6;;:104;;-1:-1:-1;;;;;;;1754:48:6;;-1:-1:-1;;;1754:48:6;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:16;;;1818:36:6;762:146:16;14728:662:6;14888:9;:31;;;-1:-1:-1;;;;;;14901:18:6;;;;14888:31;14884:460;;;14935:13;14951:22;14965:7;14951:13;:22::i;:::-;14935:38;-1:-1:-1;;;;;;15101:18:6;;;;;;:35;;;15132:4;-1:-1:-1;;;;;15123:13:6;:5;-1:-1:-1;;;;;15123:13:6;;;15101:35;:69;;;;;15141:29;15158:5;15165:4;15141:16;:29::i;:::-;15140:30;15101:69;15097:142;;;15197:27;;-1:-1:-1;;;15197:27:6;;-1:-1:-1;;;;;1697:32:29;;15197:27:6;;;1679:51:29;1652:18;;15197:27:6;1533:203:29;15097:142:6;15257:9;15253:81;;;15311:7;15307:2;-1:-1:-1;;;;;15291:28:6;15300:5;-1:-1:-1;;;;;15291:28:6;;;;;;;;;;;15253:81;14921:423;14884:460;-1:-1:-1;;15354:24:6;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15354:29:6;-1:-1:-1;;;;;15354:29:6;;;;;;;;;;14728:662::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:6;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:6;;;;;2848:25:29;;;2821:18;;7298:31:6;2702:177:29;7248:186:6;7375:44;;-1:-1:-1;;;7375:44:6;;-1:-1:-1;;;;;6982:32:29;;7375:44:6;;;6964:51:29;7031:18;;;7024:34;;;6937:18;;7375:44:6;6790:274:29;2677:255:6;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:6:o;6376:272::-;6479:4;-1:-1:-1;;;;;6514:21:6;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:6;:5;-1:-1:-1;;;;;6552:16:6;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:6:o;637:698:13:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:13;-1:-1:-1;794:41:13;-1:-1:-1;955:28:13;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:13;-1:-1:-1;;;1175:2:13;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:13;1010:282;1256:21;-1:-1:-1;1312:6:13;637:698;-1:-1:-1;;;637:698:13:o;12214:916:18:-;12267:7;;-1:-1:-1;;;12342:17:18;;12338:103;;-1:-1:-1;;;12379:17:18;;;-1:-1:-1;12424:2:18;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:18;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:18;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:18;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:18;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:18;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:18:o;14:131:29:-;-1:-1:-1;;;;;;88:32:29;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:29;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:29;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:29:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:29;;1348:180;-1:-1:-1;1348:180:29:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:29;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:29:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:29;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5541:489::-;-1:-1:-1;;;;;5810:15:29;;;5792:34;;5862:15;;5857:2;5842:18;;5835:43;5909:2;5894:18;;5887:34;;;5957:3;5952:2;5937:18;;5930:31;;;5735:4;;5978:46;;6004:19;;5996:6;5978:46;:::i;:::-;5970:54;5541:489;-1:-1:-1;;;;;;5541:489:29:o;6035:249::-;6104:6;6157:2;6145:9;6136:7;6132:23;6128:32;6125:52;;;6173:1;6170;6163:12;6125:52;6205:9;6199:16;6224:30;6248:5;6224:30;:::i;6289:496::-;6468:3;6506:6;6500:13;6522:66;6581:6;6576:3;6569:4;6561:6;6557:17;6522:66;:::i;:::-;6651:13;;6610:16;;;;6673:70;6651:13;6610:16;6720:4;6708:17;;6673:70;:::i;:::-;6759:20;;6289:496;-1:-1:-1;;;;6289:496:29:o"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCardsNFT.v1.sol\":\"NofGammaCardsNFTV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]}},\"version\":1}"}},"contracts/gamma/GammaOffers.v4.sol":{"IGammaCardsContract":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint8","name":"cardNumberFrom","type":"uint8"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8","name":"cardNumberTo","type":"uint8"}],"name":"exchangeCardsOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasCardByOffer","outputs":[{"internalType":"bool","name":"has","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"restoreCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"exchangeCardsOffer(address,uint8,address,uint8)":"ad1684fa","hasCardByOffer(address,uint8)":"8bf670c8","removeCardByOffer(address,uint8)":"7155a3ac","restoreCardByOffer(address,uint8)":"155e2f92"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberFrom\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberTo\",\"type\":\"uint8\"}],\"name\":\"exchangeCardsOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasCardByOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"has\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"restoreCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaOffers.v4.sol\":\"IGammaCardsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaOffers.v4.sol\":{\"keccak256\":\"0xa02506a051d4db4e86b1525dcf5211a11568b325e87dd461fffa774a46386a24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67b3fa48a581414f470af31f1727e436634b2f5c1bd7ccef8fa9e8fbcc02fbd9\",\"dweb:/ipfs/QmZFzedTdF9zZ9EvFDR9yaesETwBXm1DQ89gWun2B9gd17\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"NofGammaOffersV4":{"abi":[{"inputs":[{"internalType":"address","name":"_cardsContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExchangeError","type":"error"},{"inputs":[],"name":"GammaCardsContractNotSet","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidCard","type":"error"},{"inputs":[],"name":"InvalidCardNumber","type":"error"},{"inputs":[],"name":"InvalidOfferId","type":"error"},{"inputs":[],"name":"OfferAlreadyExists","type":"error"},{"inputs":[],"name":"OfferDoesNotExists","type":"error"},{"inputs":[],"name":"OfferNotDeleted","type":"error"},{"inputs":[],"name":"OffersMaximumAllowed","type":"error"},{"inputs":[],"name":"OnlyCardsContract","type":"error"},{"inputs":[],"name":"OnlyOwners","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"RemoveOfferFromCardNumberMapping_DoNotMatch","type":"error"},{"inputs":[],"name":"RemoveOfferFromUserMapping_DoNotMatch","type":"error"},{"inputs":[],"name":"UserAlreadyHasCard","type":"error"},{"inputs":[],"name":"UserDoesNotHaveCard","type":"error"},{"anonymous":false,"inputs":[],"name":"AllOffersRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newGammaCardsContract","type":"address"}],"name":"NewGammaCardsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumber","type":"uint8"},{"indexed":false,"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"}],"name":"OfferCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"OfferRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"UserOffersRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"canAnyUserPublishOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"canUserPublishOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"changeRemoveCardinInventoryWhenOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint8","name":"cardNumberWanted","type":"uint8"},{"internalType":"address","name":"offerWallet","type":"address"},{"internalType":"uint8","name":"offerCardNumber","type":"uint8"}],"name":"confirmOfferExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"}],"name":"createOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"}],"name":"createOfferWithoUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deleteAllOffers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gammaCardsContract","outputs":[{"internalType":"contract IGammaCardsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxOffersAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxOffersByUserAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getOfferByIndex","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"offerId","type":"string"}],"name":"getOfferByOfferId","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOfferByUserAndCardNumber","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOffers","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOffersByCardNumber","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOffersByCardNumberCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOffersByUser","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOffersByUserCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOffersCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"offers","outputs":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"offersByCardNumberCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"offersByUserCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offersTotalCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeOfferByCardNumber","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeOfferByUserAndCardNumber","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeOffersByUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ownerToRemove","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaCardsContract","type":"address"}],"name":"setGammaCardsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxCardNumbersAllowed","type":"uint256"}],"name":"setMaxCardNumbersAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxOffersAllowed","type":"uint256"}],"name":"setMaxOffersAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxOffersByUserAllowed","type":"uint256"}],"name":"setMaxOffersByUserAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_6112":{"entryPoint":null,"id":6112,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":232,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:514:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:29","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:29"},"nodeType":"YulFunctionCall","src":"143:12:29"},"nodeType":"YulExpressionStatement","src":"143:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:29"},"nodeType":"YulFunctionCall","src":"112:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:29"},"nodeType":"YulFunctionCall","src":"108:32:29"},"nodeType":"YulIf","src":"105:52:29"},{"nodeType":"YulVariableDeclaration","src":"166:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:29"},"nodeType":"YulFunctionCall","src":"179:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:29"},"nodeType":"YulFunctionCall","src":"260:12:29"},"nodeType":"YulExpressionStatement","src":"260:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:29"},"nodeType":"YulFunctionCall","src":"239:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:29"},"nodeType":"YulFunctionCall","src":"235:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:29"},"nodeType":"YulFunctionCall","src":"224:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:29"},"nodeType":"YulFunctionCall","src":"214:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:29"},"nodeType":"YulFunctionCall","src":"207:50:29"},"nodeType":"YulIf","src":"204:70:29"},{"nodeType":"YulAssignment","src":"283:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:29"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:29","type":""}],"src":"14:290:29"},{"body":{"nodeType":"YulBlock","src":"410:102:29","statements":[{"nodeType":"YulAssignment","src":"420:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"432:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"443:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"428:3:29"},"nodeType":"YulFunctionCall","src":"428:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"420:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"462:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"477:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"493:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"498:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"489:3:29"},"nodeType":"YulFunctionCall","src":"489:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"485:3:29"},"nodeType":"YulFunctionCall","src":"485:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"473:3:29"},"nodeType":"YulFunctionCall","src":"473:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"455:6:29"},"nodeType":"YulFunctionCall","src":"455:51:29"},"nodeType":"YulExpressionStatement","src":"455:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"379:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"390:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"401:4:29","type":""}],"src":"309:203:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":1898},{"length":20,"start":3666}]}},"object":"60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b506040516200379b3803806200379b8339810160408190526200004d9162000138565b33806200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f81620000e8565b506001600160a01b038116620000a85760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff191690911790556200016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014b57600080fd5b81516001600160a01b03811681146200016357600080fd5b9392505050565b613621806200017a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0x1388 PUSH1 0x4 SSTORE PUSH1 0x5 DUP1 SSTORE PUSH1 0x78 PUSH1 0x6 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x379B CODESIZE SUB DUP1 PUSH3 0x379B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x4D SWAP2 PUSH3 0x138 JUMP JUMPDEST CALLER DUP1 PUSH3 0x74 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x7F DUP2 PUSH3 0xE8 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x16A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3621 DUP1 PUSH3 0x17A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x227 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7594A6ED GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xCE7483D5 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xE2B36596 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE2B36596 EQ PUSH2 0x4F7 JUMPI DUP1 PUSH4 0xE359A0A1 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xE5E5F732 EQ PUSH2 0x51D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xFC9E80FC EQ PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCE7483D5 EQ PUSH2 0x486 JUMPI DUP1 PUSH4 0xCF86F8E5 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xD250F03A EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xD827A8F4 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xE02F9723 EQ PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90222AA1 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x90222AA1 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x9618B333 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x9F915069 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0xBA79B77B EQ PUSH2 0x46B JUMPI DUP1 PUSH4 0xC08029E7 EQ PUSH2 0x473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7594A6ED EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x8400A189 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x8A72EA6A EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 GT PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x5A919AEB GT PUSH2 0x182 JUMPI DUP1 PUSH4 0x5A919AEB EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x5BBFBFD6 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x619980DC EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x3EE992EE EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x58E57EBB EQ PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EDB5FCF GT PUSH2 0x1FA JUMPI DUP1 PUSH4 0x2EDB5FCF EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x322FBA27 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x3808DFE7 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3A027073 EQ PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCDB3117 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x17A1FED9 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x29D3F60B EQ PUSH2 0x27A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23F PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x556 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x59B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E82 JUMP JUMPDEST PUSH2 0x641 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x5 SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x683 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x743 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x30C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x332 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F6E JUMP JUMPDEST PUSH2 0x96F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x980 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x35A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x36D CALLDATASIZE PUSH1 0x4 PUSH2 0x3144 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x23F PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0xC02 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x4 SLOAD GT PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xC83 JUMP JUMPDEST PUSH2 0x265 PUSH2 0xCFA JUMP JUMPDEST PUSH2 0x23F PUSH2 0x3C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x33F PUSH2 0x3E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0xD0E JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3161 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xF8A JUMP JUMPDEST PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x114D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x319C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x265 PUSH2 0x481 CALLDATASIZE PUSH1 0x4 PUSH2 0x31AF JUMP JUMPDEST PUSH2 0x135D JUMP JUMPDEST PUSH2 0x23F PUSH2 0x494 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x418 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x23F PUSH2 0x4D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x4F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1681 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x3203 JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x518 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x18BF JUMP JUMPDEST PUSH2 0x265 PUSH2 0x52B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1A4B JUMP JUMPDEST PUSH2 0x265 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1A80 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x63A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67D DUP5 DUP5 DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6AC JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP6 AND SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x725 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST DUP1 PUSH2 0x72F DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6AF JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x773 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x8B3 JUMPI PUSH1 0x9 PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x797 JUMPI PUSH2 0x797 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x7CD SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x7E6 JUMPI PUSH2 0x7E6 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xA SWAP3 SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x830 JUMPI PUSH2 0x830 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x860 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x879 JUMPI PUSH2 0x879 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE DUP1 PUSH2 0x8AB DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x776 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xD DUP2 SWAP1 SSTORE PUSH2 0x8C7 SWAP1 PUSH1 0x8 SWAP1 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x47E81EFC038E27BB296DEC5D44262943D2C2BBEC28F461787A9CC53885694CB0 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x922 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x934 CALLER DUP5 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x954 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x967 CALLER DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x97B DUP4 CALLER DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xB0B JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x9D7 SWAP1 PUSH2 0x327D 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 0xA03 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA50 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA25 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA50 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA33 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xAD0 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xAA1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x9A4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB6B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xBEF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC3E DUP5 DUP5 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC67 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7A DUP6 DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x60E JUMP JUMPDEST PUSH2 0xD02 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xD0C PUSH1 0x0 PUSH2 0x23E5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE PUSH1 0x60 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0xD73 SWAP1 PUSH2 0x327D 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 0xD9F SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xE3D JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xD40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xEC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0xEE5 SWAP1 PUSH2 0x327D 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 0xF11 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0xFF SWAP1 SWAP2 AND SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP4 SWAP1 SWAP3 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1019 SWAP1 PUSH2 0x327D 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 0x1045 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1092 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1067 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1092 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1075 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1112 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x10E3 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xFE6 JUMP JUMPDEST PUSH2 0x1155 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x117C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1354 JUMPI DUP5 PUSH1 0xFF AND DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x11C0 JUMPI PUSH2 0x11C0 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x1342 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x11EE JUMPI PUSH2 0x11EE PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1217 SWAP1 PUSH2 0x327D 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 0x1243 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1265 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1290 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1310 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x12E1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 POP PUSH2 0x73D SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x134C DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11A2 JUMP JUMPDEST POP PUSH2 0xC7A PUSH2 0x2435 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1369 DUP4 DUP4 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DED2293 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1447 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x13E1 SWAP1 DUP8 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1400 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1424 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1177B295 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14BC JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x149B JUMPI DUP7 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1470 JUMPI PUSH2 0x1470 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1489 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x149B JUMP JUMPDEST DUP1 PUSH2 0x1493 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x144B JUMP JUMPDEST POP DUP1 PUSH2 0x14BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEFA237 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x14CF DUP6 DUP6 DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH2 0x2241 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x14EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B440351 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x568B427D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF DUP1 DUP11 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP3 AND PUSH1 0x44 DUP5 ADD MSTORE DUP8 AND PUSH1 0x64 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xAD1684FA SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1563 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x8BF670C8 SWAP2 POP PUSH2 0x1599 SWAP1 DUP11 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15DC SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x165A JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1615 SWAP1 DUP9 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFC9716B9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x16B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH2 0x16BE PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x18B6 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16DC SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1705 JUMPI PUSH2 0x1705 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1726 SWAP2 SWAP1 PUSH2 0x332B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH2 0x18A4 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1754 JUMPI PUSH2 0x1754 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x177D SWAP1 PUSH2 0x327D 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 0x17A9 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x17F6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17CB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x17F6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17D9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1876 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x1847 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x18AE DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x16C1 JUMP JUMPDEST POP PUSH2 0x73D PUSH2 0x2435 JUMP JUMPDEST PUSH2 0x18C7 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 LT PUSH2 0x18E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5129CAB1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18FC JUMPI PUSH2 0x18FC PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1925 SWAP1 PUSH2 0x327D 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 0x1951 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x199E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x199E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1A1E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x19EF JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A7B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x1A88 PUSH2 0x23B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1AB7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AC0 DUP2 PUSH2 0x23E5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1AF1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA71ED6C7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B18 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5A JUMPI PUSH2 0x1B5A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x1B76 SWAP1 PUSH2 0x327D 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 0x1BA2 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1BEF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1BC4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1BEF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1BD2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1C0A JUMPI PUSH2 0x1C0A PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SWAP1 POP PUSH2 0x1C2E DUP8 DUP3 DUP5 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x1C37 DUP3 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1C5B SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C75 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP DUP1 DUP1 PUSH2 0x1C89 SWAP1 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1B3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1CB3 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x65419C67E554142D50C59ABD004485123CA498611A223F842E75DD96225BA4C8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D37 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCFDF3505 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD LT PUSH2 0x1D71 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xD SLOAD LT PUSH2 0x1D95 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1DC8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E0B SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1E2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x142D47A1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1E8E JUMPI DUP4 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1E53 JUMPI PUSH2 0x1E53 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1E7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1E86 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E2E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1E9B DUP6 DUP6 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1ECA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEEE5C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1EF3 SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1F1B SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1F35 SWAP2 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE TIMESTAMP PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH1 0x5 SWAP1 SWAP2 MUL PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 ADD SWAP1 DUP2 SWAP1 PUSH2 0x1FB1 SWAP1 DUP3 PUSH2 0x3415 JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD PUSH2 0x1FE4 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2B42 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x80 SWAP1 SWAP3 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x2034 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2044 JUMPI PUSH2 0x2044 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x2071 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x20A0 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x20F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2102 JUMPI PUSH2 0x2102 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x212F DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x215E SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x21FE JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C5568EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7155A3AC SWAP1 PUSH2 0x21CB SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0xED750964F1F81F105E56DFD1121427E0898E7BC23D6C10E92D851A2D35E0CFC5 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2231 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x226A JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2275 DUP6 DUP6 DUP6 PUSH2 0x29AF JUMP JUMPDEST PUSH2 0x2280 DUP6 DUP6 DUP6 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x2289 DUP4 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22B3 SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22DB SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x22F5 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x7 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x230A JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x2374 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xAAF17C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x155E2F92 SWAP1 PUSH2 0x2341 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x235B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x236F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0x7911E34642EAE38762395A3DD0FA3308D0F8908B92FE36C41543D635AB7CB8F5 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x23A5 SWAP3 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD0C JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1AAE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x243D PUSH2 0x2B07 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP3 ADD DUP2 DUP2 MSTORE DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP3 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 MSTORE SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x2550 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x24CC SWAP1 PUSH2 0x327D 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 0x24F8 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2545 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x251A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2545 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2528 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP5 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2720 JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2571 JUMPI PUSH2 0x2571 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x25C6 JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x25AC JUMPI PUSH2 0x25AC PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x57AEB863 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH2 0x25F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26B4 JUMPI DUP2 SLOAD DUP3 SWAP1 PUSH2 0x2609 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2619 JUMPI PUSH2 0x2619 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2639 JUMPI PUSH2 0x2639 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x2654 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x2683 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE JUMPDEST DUP2 DUP1 SLOAD DUP1 PUSH2 0x26C4 JUMPI PUSH2 0x26C4 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x26E4 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x26FE PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH2 0x63A JUMP JUMPDEST DUP1 PUSH2 0x272A DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2492 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x29A8 JUMPI PUSH1 0x8 SLOAD DUP2 LT DUP1 ISZERO PUSH2 0x2803 JUMPI POP PUSH2 0x2803 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2763 JUMPI PUSH2 0x2763 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x277F SWAP1 PUSH2 0x327D 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 0x27AB SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP6 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2996 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x281B JUMPI PUSH2 0x281B PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x2835 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x284F PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD PUSH2 0x287A SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x288A JUMPI PUSH2 0x288A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28AB JUMPI PUSH2 0x28AB PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x28C6 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x28F5 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x2936 JUMPI PUSH2 0x2936 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x2956 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2970 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x29A8 JUMP JUMPDEST DUP1 PUSH2 0x29A0 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2737 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x29E7 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST ISZERO PUSH2 0x2A7B JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A08 JUMPI PUSH2 0x2A08 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x2A5D JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A43 JUMPI PUSH2 0x2A43 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB7F2D833 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A85 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AA0 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AC7 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x5 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2C95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x2BA9 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2B6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BD6 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2BA9 JUMP JUMPDEST POP JUMPDEST POP PUSH2 0x2BE4 SWAP3 SWAP2 POP PUSH2 0x2CE5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2C1B JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x2C42 SWAP1 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x2C52 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 PUSH2 0x2CA9 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2CC3 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0x5 ADD PUSH2 0x2C95 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2CE6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D72 JUMPI PUSH2 0x2D72 PUSH2 0x2D33 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DA5 JUMPI PUSH2 0x2DA5 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x2DB8 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D49 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2DCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2E28 JUMPI PUSH2 0x2E28 PUSH2 0x2D33 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x2E37 DUP3 DUP3 ADD PUSH2 0x2D49 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x2E77 JUMPI PUSH2 0x2E68 DUP4 PUSH2 0x2DEA JUMP JUMPDEST DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x2E57 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EBC DUP9 DUP4 DUP10 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP6 POP PUSH2 0x2ECA PUSH1 0x20 DUP9 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP5 POP PUSH2 0x2ED8 PUSH1 0x40 DUP9 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EFB DUP8 DUP3 DUP9 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F23 DUP4 PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x2F31 PUSH1 0x20 DUP5 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FA7 DUP8 DUP4 DUP9 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP5 POP PUSH2 0x2FB5 PUSH1 0x20 DUP8 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2FFD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2FE5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x301E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2FE2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3065 JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3046 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0xA0 DUP5 MSTORE PUSH2 0x3085 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3006 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x30AB DUP3 DUP3 PUSH2 0x3032 JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP8 ADD MSTORE PUSH1 0x80 SWAP5 DUP6 ADD MLOAD SWAP5 SWAP1 SWAP6 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP4 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3129 JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x3117 DUP6 DUP4 MLOAD PUSH2 0x3070 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x30FB JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3174 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3006 JUMP JUMPDEST PUSH1 0xFF SWAP6 SWAP1 SWAP6 AND PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2D2C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3070 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31CE DUP6 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x31DC PUSH1 0x20 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP3 POP PUSH2 0x31EA PUSH1 0x40 DUP7 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x31F8 PUSH1 0x60 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x322C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x967 DUP5 DUP3 DUP6 ADD PUSH2 0x2D7A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x3276 JUMPI PUSH2 0x3276 PUSH2 0x324E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3291 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x32B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x3306 JUMPI PUSH2 0x3306 PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3321 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x3339 DUP2 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x3351 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3366 JUMPI PUSH2 0x3395 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x3395 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x338C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x3373 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x33EE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x340D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x33FA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x342F JUMPI PUSH2 0x342F PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3443 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST DUP5 PUSH2 0x33C7 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3478 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3460 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x340D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x34A7 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3488 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x34C5 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x34E0 JUMPI POP POP JUMP JUMPDEST PUSH2 0x34EA DUP3 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3502 JUMPI PUSH2 0x3502 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3510 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3544 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x352C JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x63A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x357E JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x355E JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x34C5 JUMPI SWAP4 ADD SLOAD PUSH1 0x0 NOT PUSH1 0xF8 PUSH1 0x3 DUP8 SWAP1 SHL AND SHR NOT AND SWAP1 SWAP3 SSTORE POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xC7A SWAP1 DUP4 ADD DUP5 PUSH2 0x3032 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x49 LOG3 PUSH1 0xA 0x28 0x49 LOG0 0x4D SWAP12 0xCE SWAP11 NOT SWAP9 SAR EXTCODEHASH PUSH8 0x80407816218C7190 0xE5 SUB 0xAF GAS 0xDC 0xB5 0xD7 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"1095:12929:22:-:0;;;1312:4;1277:40;;1362:1;1321:43;;1408:3;1368:44;;1416:43;;;-1:-1:-1;;1416:43:22;;;2382:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2427:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;455:51:29;428:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;2449:28:22;::::1;2445:57;;2486:16;;-1:-1:-1::0;;;2486:16:22::1;;;;;;;;;;;2445:57;2508:18;:56:::0;;-1:-1:-1;;;;;;2508:56:22::1;-1:-1:-1::0;;;;;2508:56:22;;;::::1;::::0;;;::::1;::::0;;2588:10:::1;-1:-1:-1::0;2570:29:22;;;:10:::1;:29;::::0;;;;:36;;-1:-1:-1;;2570:36:22::1;::::0;;::::1;::::0;;1095:12929;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:29:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:29;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:29:o;309:203::-;1095:12929:22;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_84":{"entryPoint":9144,"id":84,"parameterSlots":0,"returnSlots":0},"@_createOfferWithUser_6423":{"entryPoint":7438,"id":6423,"parameterSlots":4,"returnSlots":0},"@_emptyOffer_7447":{"entryPoint":9269,"id":7447,"parameterSlots":0,"returnSlots":1},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_removeOfferByOfferId_7425":{"entryPoint":10034,"id":7425,"parameterSlots":1,"returnSlots":1},"@_removeOfferByUserAndCardNumber_7191":{"entryPoint":8769,"id":7191,"parameterSlots":4,"returnSlots":1},"@_removeOfferFromCardNumberMapping_7358":{"entryPoint":9342,"id":7358,"parameterSlots":3,"returnSlots":0},"@_removeOfferFromUserMapping_7275":{"entryPoint":10671,"id":7275,"parameterSlots":3,"returnSlots":0},"@_sameOfferId_7471":{"entryPoint":10893,"id":7471,"parameterSlots":2,"returnSlots":1},"@_transferOwnership_146":{"entryPoint":9189,"id":146,"parameterSlots":1,"returnSlots":0},"@addOwner_6126":{"entryPoint":3203,"id":6126,"parameterSlots":1,"returnSlots":0},"@canAnyUserPublishOffer_6698":{"entryPoint":null,"id":6698,"parameterSlots":0,"returnSlots":1},"@canUserPublishOffer_6688":{"entryPoint":null,"id":6688,"parameterSlots":1,"returnSlots":1},"@changeRemoveCardinInventoryWhenOffer_6216":{"entryPoint":3007,"id":6216,"parameterSlots":1,"returnSlots":0},"@confirmOfferExchange_6875":{"entryPoint":4957,"id":6875,"parameterSlots":4,"returnSlots":0},"@createOfferWithoUser_6257":{"entryPoint":1601,"id":6257,"parameterSlots":4,"returnSlots":0},"@createOffer_6235":{"entryPoint":2415,"id":6235,"parameterSlots":3,"returnSlots":0},"@deleteAllOffers_6938":{"entryPoint":1859,"id":6938,"parameterSlots":0,"returnSlots":0},"@gammaCardsContract_5961":{"entryPoint":null,"id":5961,"parameterSlots":0,"returnSlots":0},"@getMaxOffersAllowed_6486":{"entryPoint":null,"id":6486,"parameterSlots":0,"returnSlots":1},"@getMaxOffersByUserAllowed_6494":{"entryPoint":null,"id":6494,"parameterSlots":0,"returnSlots":1},"@getOfferByIndex_6525":{"entryPoint":6335,"id":6525,"parameterSlots":1,"returnSlots":1},"@getOfferByOfferId_6573":{"entryPoint":5814,"id":6573,"parameterSlots":1,"returnSlots":1},"@getOfferByUserAndCardNumber_6674":{"entryPoint":4429,"id":6674,"parameterSlots":2,"returnSlots":1},"@getOffersByCardNumberCounter_6470":{"entryPoint":null,"id":6470,"parameterSlots":1,"returnSlots":1},"@getOffersByCardNumber_6611":{"entryPoint":3342,"id":6611,"parameterSlots":1,"returnSlots":1},"@getOffersByUserCounter_6458":{"entryPoint":1366,"id":6458,"parameterSlots":1,"returnSlots":1},"@getOffersByUser_6597":{"entryPoint":3978,"id":6597,"parameterSlots":1,"returnSlots":1},"@getOffersCounter_6478":{"entryPoint":null,"id":6478,"parameterSlots":0,"returnSlots":1},"@getOffers_6504":{"entryPoint":2432,"id":6504,"parameterSlots":0,"returnSlots":1},"@hasOffer_6746":{"entryPoint":1667,"id":6746,"parameterSlots":2,"returnSlots":1},"@isOwner_6436":{"entryPoint":null,"id":6436,"parameterSlots":1,"returnSlots":1},"@offersByCardNumberCounter_6021":{"entryPoint":null,"id":6021,"parameterSlots":0,"returnSlots":0},"@offersByUserCounter_6017":{"entryPoint":null,"id":6017,"parameterSlots":0,"returnSlots":0},"@offersTotalCounter_6023":{"entryPoint":null,"id":6023,"parameterSlots":0,"returnSlots":0},"@offers_6001":{"entryPoint":3762,"id":6001,"parameterSlots":0,"returnSlots":0},"@owner_67":{"entryPoint":null,"id":67,"parameterSlots":0,"returnSlots":1},"@removeOfferByCardNumber_6977":{"entryPoint":2343,"id":6977,"parameterSlots":1,"returnSlots":1},"@removeOfferByUserAndCardNumber_7017":{"entryPoint":3074,"id":7017,"parameterSlots":2,"returnSlots":1},"@removeOffersByUser_7115":{"entryPoint":6851,"id":7115,"parameterSlots":1,"returnSlots":1},"@removeOwner_6140":{"entryPoint":1435,"id":6140,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":3322,"id":98,"parameterSlots":0,"returnSlots":0},"@setGammaCardsContract_6168":{"entryPoint":2836,"id":6168,"parameterSlots":1,"returnSlots":0},"@setMaxCardNumbersAllowed_6204":{"entryPoint":5761,"id":6204,"parameterSlots":1,"returnSlots":0},"@setMaxOffersAllowed_6180":{"entryPoint":6731,"id":6180,"parameterSlots":1,"returnSlots":0},"@setMaxOffersByUserAllowed_6192":{"entryPoint":2290,"id":6192,"parameterSlots":1,"returnSlots":0},"@transferOwnership_126":{"entryPoint":6784,"id":126,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":11514,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_uint8_dyn":{"entryPoint":11771,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_string":{"entryPoint":11642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint8":{"entryPoint":12039,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint8t_addresst_uint8":{"entryPoint":12719,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":12612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":13011,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":12803,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_addresst_uint8t_array$_t_uint8_$dyn_memory_ptr":{"entryPoint":11906,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_string_memory_ptrt_uint8t_array$_t_uint8_$dyn_memory_ptr":{"entryPoint":12142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":12090,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8":{"entryPoint":12115,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":11754,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_uint8_dyn":{"entryPoint":12338,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":12294,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_Offer":{"entryPoint":12400,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13099,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":12983,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8_t_address_t_uint8__to_t_address_t_uint8_t_address_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__to_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":13736,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":12500,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IGammaCardsContract_$5952__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint8_t_address_t_uint256__to_t_string_memory_ptr_t_uint8_t_address_t_uint256__fromStack_reversed":{"entryPoint":12641,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_Offer_$5997_memory_ptr__to_t_struct$_Offer_$5997_memory_ptr__fromStack_reversed":{"entryPoint":12700,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":11593,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":13236,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":13217,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":13255,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":13333,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_storage_to_t_string_storage":{"entryPoint":13525,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":12258,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":12925,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":12900,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint8":{"entryPoint":13040,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":12878,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":13781,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":12856,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":11571,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":12598,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17160:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:29","statements":[{"nodeType":"YulAssignment","src":"73:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:29"},"nodeType":"YulFunctionCall","src":"82:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:29"}]},{"body":{"nodeType":"YulBlock","src":"165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:29"},"nodeType":"YulFunctionCall","src":"167:12:29"},"nodeType":"YulExpressionStatement","src":"167:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:29"},"nodeType":"YulFunctionCall","src":"142:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:29"},"nodeType":"YulFunctionCall","src":"131:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:29"},"nodeType":"YulFunctionCall","src":"121:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:29"},"nodeType":"YulFunctionCall","src":"114:50:29"},"nodeType":"YulIf","src":"111:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:29","type":""}],"src":"14:173:29"},{"body":{"nodeType":"YulBlock","src":"262:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"308:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:29"},"nodeType":"YulFunctionCall","src":"310:12:29"},"nodeType":"YulExpressionStatement","src":"310:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:29"},"nodeType":"YulFunctionCall","src":"279:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:29"},"nodeType":"YulFunctionCall","src":"275:32:29"},"nodeType":"YulIf","src":"272:52:29"},{"nodeType":"YulAssignment","src":"333:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"362:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"343:18:29"},"nodeType":"YulFunctionCall","src":"343:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"333:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:29","type":""}],"src":"192:186:29"},{"body":{"nodeType":"YulBlock","src":"484:76:29","statements":[{"nodeType":"YulAssignment","src":"494:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"506:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:29"},"nodeType":"YulFunctionCall","src":"502:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"536:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"547:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:29"},"nodeType":"YulFunctionCall","src":"529:25:29"},"nodeType":"YulExpressionStatement","src":"529:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"453:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"464:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"475:4:29","type":""}],"src":"383:177:29"},{"body":{"nodeType":"YulBlock","src":"597:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"614:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"621:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"626:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"617:3:29"},"nodeType":"YulFunctionCall","src":"617:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"607:6:29"},"nodeType":"YulFunctionCall","src":"607:31:29"},"nodeType":"YulExpressionStatement","src":"607:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"654:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"657:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"647:6:29"},"nodeType":"YulFunctionCall","src":"647:15:29"},"nodeType":"YulExpressionStatement","src":"647:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"678:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"681:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"671:6:29"},"nodeType":"YulFunctionCall","src":"671:15:29"},"nodeType":"YulExpressionStatement","src":"671:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:127:29"},{"body":{"nodeType":"YulBlock","src":"742:230:29","statements":[{"nodeType":"YulAssignment","src":"752:19:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"768:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"762:5:29"},"nodeType":"YulFunctionCall","src":"762:9:29"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"752:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"780:58:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"802:6:29"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"818:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"824:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"814:3:29"},"nodeType":"YulFunctionCall","src":"814:13:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"833:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"829:3:29"},"nodeType":"YulFunctionCall","src":"829:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"810:3:29"},"nodeType":"YulFunctionCall","src":"810:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"798:3:29"},"nodeType":"YulFunctionCall","src":"798:40:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"784:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"913:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"915:16:29"},"nodeType":"YulFunctionCall","src":"915:18:29"},"nodeType":"YulExpressionStatement","src":"915:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"856:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"868:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"853:2:29"},"nodeType":"YulFunctionCall","src":"853:34:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"892:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"904:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"889:2:29"},"nodeType":"YulFunctionCall","src":"889:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"850:2:29"},"nodeType":"YulFunctionCall","src":"850:62:29"},"nodeType":"YulIf","src":"847:88:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"951:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"955:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"944:6:29"},"nodeType":"YulFunctionCall","src":"944:22:29"},"nodeType":"YulExpressionStatement","src":"944:22:29"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"722:4:29","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"731:6:29","type":""}],"src":"697:275:29"},{"body":{"nodeType":"YulBlock","src":"1030:478:29","statements":[{"body":{"nodeType":"YulBlock","src":"1079:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:29"},"nodeType":"YulFunctionCall","src":"1081:12:29"},"nodeType":"YulExpressionStatement","src":"1081:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1058:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1066:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1054:3:29"},"nodeType":"YulFunctionCall","src":"1054:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"1073:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1050:3:29"},"nodeType":"YulFunctionCall","src":"1050:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1043:6:29"},"nodeType":"YulFunctionCall","src":"1043:35:29"},"nodeType":"YulIf","src":"1040:55:29"},{"nodeType":"YulVariableDeclaration","src":"1104:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1127:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1114:12:29"},"nodeType":"YulFunctionCall","src":"1114:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1108:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1173:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1175:16:29"},"nodeType":"YulFunctionCall","src":"1175:18:29"},"nodeType":"YulExpressionStatement","src":"1175:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1149:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1153:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1146:2:29"},"nodeType":"YulFunctionCall","src":"1146:26:29"},"nodeType":"YulIf","src":"1143:52:29"},{"nodeType":"YulVariableDeclaration","src":"1204:70:29","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1247:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1251:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1243:3:29"},"nodeType":"YulFunctionCall","src":"1243:13:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1262:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1258:3:29"},"nodeType":"YulFunctionCall","src":"1258:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1239:3:29"},"nodeType":"YulFunctionCall","src":"1239:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"1268:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1235:3:29"},"nodeType":"YulFunctionCall","src":"1235:38:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1219:15:29"},"nodeType":"YulFunctionCall","src":"1219:55:29"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1208:7:29","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1290:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1299:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1283:6:29"},"nodeType":"YulFunctionCall","src":"1283:19:29"},"nodeType":"YulExpressionStatement","src":"1283:19:29"},{"body":{"nodeType":"YulBlock","src":"1350:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1362:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1352:6:29"},"nodeType":"YulFunctionCall","src":"1352:12:29"},"nodeType":"YulExpressionStatement","src":"1352:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1325:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1333:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1321:3:29"},"nodeType":"YulFunctionCall","src":"1321:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"1338:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1317:3:29"},"nodeType":"YulFunctionCall","src":"1317:26:29"},{"name":"end","nodeType":"YulIdentifier","src":"1345:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1314:2:29"},"nodeType":"YulFunctionCall","src":"1314:35:29"},"nodeType":"YulIf","src":"1311:55:29"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1392:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"1401:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1388:3:29"},"nodeType":"YulFunctionCall","src":"1388:18:29"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1412:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1420:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1408:3:29"},"nodeType":"YulFunctionCall","src":"1408:17:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1427:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1375:12:29"},"nodeType":"YulFunctionCall","src":"1375:55:29"},"nodeType":"YulExpressionStatement","src":"1375:55:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1454:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1463:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1450:3:29"},"nodeType":"YulFunctionCall","src":"1450:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"1468:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:29"},"nodeType":"YulFunctionCall","src":"1446:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"1475:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1439:6:29"},"nodeType":"YulFunctionCall","src":"1439:38:29"},"nodeType":"YulExpressionStatement","src":"1439:38:29"},{"nodeType":"YulAssignment","src":"1486:16:29","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1495:7:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1486:5:29"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1004:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"1012:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1020:5:29","type":""}],"src":"977:531:29"},{"body":{"nodeType":"YulBlock","src":"1560:109:29","statements":[{"nodeType":"YulAssignment","src":"1570:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1592:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1579:12:29"},"nodeType":"YulFunctionCall","src":"1579:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1570:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1647:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1656:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1659:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1649:6:29"},"nodeType":"YulFunctionCall","src":"1649:12:29"},"nodeType":"YulExpressionStatement","src":"1649:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1621:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1632:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1639:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1628:3:29"},"nodeType":"YulFunctionCall","src":"1628:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1618:2:29"},"nodeType":"YulFunctionCall","src":"1618:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1611:6:29"},"nodeType":"YulFunctionCall","src":"1611:35:29"},"nodeType":"YulIf","src":"1608:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1539:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1550:5:29","type":""}],"src":"1513:156:29"},{"body":{"nodeType":"YulBlock","src":"1736:652:29","statements":[{"body":{"nodeType":"YulBlock","src":"1785:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1794:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1797:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1787:6:29"},"nodeType":"YulFunctionCall","src":"1787:12:29"},"nodeType":"YulExpressionStatement","src":"1787:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1764:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1772:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1760:3:29"},"nodeType":"YulFunctionCall","src":"1760:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"1779:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1756:3:29"},"nodeType":"YulFunctionCall","src":"1756:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:29"},"nodeType":"YulFunctionCall","src":"1749:35:29"},"nodeType":"YulIf","src":"1746:55:29"},{"nodeType":"YulVariableDeclaration","src":"1810:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1820:12:29"},"nodeType":"YulFunctionCall","src":"1820:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1814:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1849:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1859:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1853:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1902:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1904:16:29"},"nodeType":"YulFunctionCall","src":"1904:18:29"},"nodeType":"YulExpressionStatement","src":"1904:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1882:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1875:2:29"},"nodeType":"YulFunctionCall","src":"1875:26:29"},"nodeType":"YulIf","src":"1872:52:29"},{"nodeType":"YulVariableDeclaration","src":"1933:20:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1947:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1950:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1943:3:29"},"nodeType":"YulFunctionCall","src":"1943:10:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1937:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1962:39:29","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1993:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1997:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1989:3:29"},"nodeType":"YulFunctionCall","src":"1989:11:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1973:15:29"},"nodeType":"YulFunctionCall","src":"1973:28:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1966:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2010:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"2023:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2014:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2042:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2047:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2035:6:29"},"nodeType":"YulFunctionCall","src":"2035:15:29"},"nodeType":"YulExpressionStatement","src":"2035:15:29"},{"nodeType":"YulAssignment","src":"2059:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2070:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2075:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2066:3:29"},"nodeType":"YulFunctionCall","src":"2066:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2059:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"2087:38:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2109:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2117:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2105:3:29"},"nodeType":"YulFunctionCall","src":"2105:15:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2122:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2101:3:29"},"nodeType":"YulFunctionCall","src":"2101:24:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2091:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2153:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2162:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2165:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2155:6:29"},"nodeType":"YulFunctionCall","src":"2155:12:29"},"nodeType":"YulExpressionStatement","src":"2155:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2140:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"2148:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2137:2:29"},"nodeType":"YulFunctionCall","src":"2137:15:29"},"nodeType":"YulIf","src":"2134:35:29"},{"nodeType":"YulVariableDeclaration","src":"2178:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2193:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2201:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2189:3:29"},"nodeType":"YulFunctionCall","src":"2189:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2182:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2269:90:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2290:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2312:3:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"2295:16:29"},"nodeType":"YulFunctionCall","src":"2295:21:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2283:6:29"},"nodeType":"YulFunctionCall","src":"2283:34:29"},"nodeType":"YulExpressionStatement","src":"2283:34:29"},{"nodeType":"YulAssignment","src":"2330:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2341:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2346:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2337:3:29"},"nodeType":"YulFunctionCall","src":"2337:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2330:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2224:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2229:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2221:2:29"},"nodeType":"YulFunctionCall","src":"2221:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2237:23:29","statements":[{"nodeType":"YulAssignment","src":"2239:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2250:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2255:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2246:3:29"},"nodeType":"YulFunctionCall","src":"2246:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2239:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2217:3:29","statements":[]},"src":"2213:146:29"},{"nodeType":"YulAssignment","src":"2368:14:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2377:5:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2368:5:29"}]}]},"name":"abi_decode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1710:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"1718:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1726:5:29","type":""}],"src":"1674:714:29"},{"body":{"nodeType":"YulBlock","src":"2545:558:29","statements":[{"body":{"nodeType":"YulBlock","src":"2592:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2601:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2604:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2594:6:29"},"nodeType":"YulFunctionCall","src":"2594:12:29"},"nodeType":"YulExpressionStatement","src":"2594:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2566:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2575:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2562:3:29"},"nodeType":"YulFunctionCall","src":"2562:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2587:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2558:3:29"},"nodeType":"YulFunctionCall","src":"2558:33:29"},"nodeType":"YulIf","src":"2555:53:29"},{"nodeType":"YulVariableDeclaration","src":"2617:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2631:12:29"},"nodeType":"YulFunctionCall","src":"2631:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2621:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2663:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2673:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2667:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2718:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2727:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2730:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2720:6:29"},"nodeType":"YulFunctionCall","src":"2720:12:29"},"nodeType":"YulExpressionStatement","src":"2720:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2706:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2703:2:29"},"nodeType":"YulFunctionCall","src":"2703:14:29"},"nodeType":"YulIf","src":"2700:34:29"},{"nodeType":"YulAssignment","src":"2743:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2775:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"2786:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2771:3:29"},"nodeType":"YulFunctionCall","src":"2771:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2795:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"2753:17:29"},"nodeType":"YulFunctionCall","src":"2753:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2743:6:29"}]},{"nodeType":"YulAssignment","src":"2812:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2856:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2841:3:29"},"nodeType":"YulFunctionCall","src":"2841:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2822:18:29"},"nodeType":"YulFunctionCall","src":"2822:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2812:6:29"}]},{"nodeType":"YulAssignment","src":"2869:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2900:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2911:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2896:3:29"},"nodeType":"YulFunctionCall","src":"2896:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"2879:16:29"},"nodeType":"YulFunctionCall","src":"2879:36:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2869:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2924:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2957:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2968:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2953:3:29"},"nodeType":"YulFunctionCall","src":"2953:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2940:12:29"},"nodeType":"YulFunctionCall","src":"2940:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2928:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3001:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3010:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3013:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3003:6:29"},"nodeType":"YulFunctionCall","src":"3003:12:29"},"nodeType":"YulExpressionStatement","src":"3003:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2987:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2997:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2984:2:29"},"nodeType":"YulFunctionCall","src":"2984:16:29"},"nodeType":"YulIf","src":"2981:36:29"},{"nodeType":"YulAssignment","src":"3026:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3067:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3078:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3063:3:29"},"nodeType":"YulFunctionCall","src":"3063:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3089:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"3036:26:29"},"nodeType":"YulFunctionCall","src":"3036:61:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3026:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_addresst_uint8t_array$_t_uint8_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2487:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2498:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2510:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2518:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2526:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2534:6:29","type":""}],"src":"2393:710:29"},{"body":{"nodeType":"YulBlock","src":"3203:92:29","statements":[{"nodeType":"YulAssignment","src":"3213:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3225:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3221:3:29"},"nodeType":"YulFunctionCall","src":"3221:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3213:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3255:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3280:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3273:6:29"},"nodeType":"YulFunctionCall","src":"3273:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3266:6:29"},"nodeType":"YulFunctionCall","src":"3266:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3248:6:29"},"nodeType":"YulFunctionCall","src":"3248:41:29"},"nodeType":"YulExpressionStatement","src":"3248:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3172:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3183:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3194:4:29","type":""}],"src":"3108:187:29"},{"body":{"nodeType":"YulBlock","src":"3385:171:29","statements":[{"body":{"nodeType":"YulBlock","src":"3431:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3440:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3443:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3433:6:29"},"nodeType":"YulFunctionCall","src":"3433:12:29"},"nodeType":"YulExpressionStatement","src":"3433:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3406:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3415:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3402:3:29"},"nodeType":"YulFunctionCall","src":"3402:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3427:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3398:3:29"},"nodeType":"YulFunctionCall","src":"3398:32:29"},"nodeType":"YulIf","src":"3395:52:29"},{"nodeType":"YulAssignment","src":"3456:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3485:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3466:18:29"},"nodeType":"YulFunctionCall","src":"3466:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3456:6:29"}]},{"nodeType":"YulAssignment","src":"3504:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3535:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3546:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3531:3:29"},"nodeType":"YulFunctionCall","src":"3531:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3514:16:29"},"nodeType":"YulFunctionCall","src":"3514:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3504:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3343:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3354:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3366:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3374:6:29","type":""}],"src":"3300:256:29"},{"body":{"nodeType":"YulBlock","src":"3631:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3677:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3686:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3689:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3679:6:29"},"nodeType":"YulFunctionCall","src":"3679:12:29"},"nodeType":"YulExpressionStatement","src":"3679:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3652:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3661:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3648:3:29"},"nodeType":"YulFunctionCall","src":"3648:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3673:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3644:3:29"},"nodeType":"YulFunctionCall","src":"3644:32:29"},"nodeType":"YulIf","src":"3641:52:29"},{"nodeType":"YulAssignment","src":"3702:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3725:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3712:12:29"},"nodeType":"YulFunctionCall","src":"3712:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3702:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3597:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3608:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3620:6:29","type":""}],"src":"3561:180:29"},{"body":{"nodeType":"YulBlock","src":"3814:114:29","statements":[{"body":{"nodeType":"YulBlock","src":"3860:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3869:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3872:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3862:6:29"},"nodeType":"YulFunctionCall","src":"3862:12:29"},"nodeType":"YulExpressionStatement","src":"3862:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3835:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3844:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3831:3:29"},"nodeType":"YulFunctionCall","src":"3831:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3856:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3827:3:29"},"nodeType":"YulFunctionCall","src":"3827:32:29"},"nodeType":"YulIf","src":"3824:52:29"},{"nodeType":"YulAssignment","src":"3885:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3912:9:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3895:16:29"},"nodeType":"YulFunctionCall","src":"3895:27:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3885:6:29"}]}]},"name":"abi_decode_tuple_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3780:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3791:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3803:6:29","type":""}],"src":"3746:182:29"},{"body":{"nodeType":"YulBlock","src":"4068:500:29","statements":[{"body":{"nodeType":"YulBlock","src":"4114:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4123:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4126:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4116:6:29"},"nodeType":"YulFunctionCall","src":"4116:12:29"},"nodeType":"YulExpressionStatement","src":"4116:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4089:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4098:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4085:3:29"},"nodeType":"YulFunctionCall","src":"4085:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4110:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4081:3:29"},"nodeType":"YulFunctionCall","src":"4081:32:29"},"nodeType":"YulIf","src":"4078:52:29"},{"nodeType":"YulVariableDeclaration","src":"4139:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4153:12:29"},"nodeType":"YulFunctionCall","src":"4153:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4143:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4185:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"4195:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4189:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4240:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4249:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4252:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4242:6:29"},"nodeType":"YulFunctionCall","src":"4242:12:29"},"nodeType":"YulExpressionStatement","src":"4242:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4228:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4236:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4225:2:29"},"nodeType":"YulFunctionCall","src":"4225:14:29"},"nodeType":"YulIf","src":"4222:34:29"},{"nodeType":"YulAssignment","src":"4265:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4297:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"4308:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4293:3:29"},"nodeType":"YulFunctionCall","src":"4293:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4317:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"4275:17:29"},"nodeType":"YulFunctionCall","src":"4275:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4265:6:29"}]},{"nodeType":"YulAssignment","src":"4334:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4365:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4376:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4361:3:29"},"nodeType":"YulFunctionCall","src":"4361:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"4344:16:29"},"nodeType":"YulFunctionCall","src":"4344:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4334:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4389:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4422:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4433:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4418:3:29"},"nodeType":"YulFunctionCall","src":"4418:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4405:12:29"},"nodeType":"YulFunctionCall","src":"4405:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4393:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4466:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4475:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4478:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4468:6:29"},"nodeType":"YulFunctionCall","src":"4468:12:29"},"nodeType":"YulExpressionStatement","src":"4468:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4452:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4462:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4449:2:29"},"nodeType":"YulFunctionCall","src":"4449:16:29"},"nodeType":"YulIf","src":"4446:36:29"},{"nodeType":"YulAssignment","src":"4491:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4532:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4543:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4528:3:29"},"nodeType":"YulFunctionCall","src":"4528:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4554:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"4501:26:29"},"nodeType":"YulFunctionCall","src":"4501:61:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4491:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint8t_array$_t_uint8_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4018:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4029:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4041:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4049:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4057:6:29","type":""}],"src":"3933:635:29"},{"body":{"nodeType":"YulBlock","src":"4639:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4649:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"4658:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4653:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4718:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4743:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"4748:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4739:3:29"},"nodeType":"YulFunctionCall","src":"4739:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4762:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"4767:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4758:3:29"},"nodeType":"YulFunctionCall","src":"4758:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4752:5:29"},"nodeType":"YulFunctionCall","src":"4752:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4732:6:29"},"nodeType":"YulFunctionCall","src":"4732:39:29"},"nodeType":"YulExpressionStatement","src":"4732:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4679:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"4682:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4676:2:29"},"nodeType":"YulFunctionCall","src":"4676:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4690:19:29","statements":[{"nodeType":"YulAssignment","src":"4692:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4701:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4697:3:29"},"nodeType":"YulFunctionCall","src":"4697:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4692:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"4672:3:29","statements":[]},"src":"4668:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4801:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4806:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4797:3:29"},"nodeType":"YulFunctionCall","src":"4797:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"4815:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4790:6:29"},"nodeType":"YulFunctionCall","src":"4790:27:29"},"nodeType":"YulExpressionStatement","src":"4790:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"4617:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"4622:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"4627:6:29","type":""}],"src":"4573:250:29"},{"body":{"nodeType":"YulBlock","src":"4878:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4888:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4908:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4902:5:29"},"nodeType":"YulFunctionCall","src":"4902:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4892:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4930:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4935:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4923:6:29"},"nodeType":"YulFunctionCall","src":"4923:19:29"},"nodeType":"YulExpressionStatement","src":"4923:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4990:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"4997:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4986:3:29"},"nodeType":"YulFunctionCall","src":"4986:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5008:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5013:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5004:3:29"},"nodeType":"YulFunctionCall","src":"5004:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"5020:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4951:34:29"},"nodeType":"YulFunctionCall","src":"4951:76:29"},"nodeType":"YulExpressionStatement","src":"4951:76:29"},{"nodeType":"YulAssignment","src":"5036:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5051:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5064:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5072:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5060:3:29"},"nodeType":"YulFunctionCall","src":"5060:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5081:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5077:3:29"},"nodeType":"YulFunctionCall","src":"5077:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5056:3:29"},"nodeType":"YulFunctionCall","src":"5056:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5047:3:29"},"nodeType":"YulFunctionCall","src":"5047:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"5088:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5043:3:29"},"nodeType":"YulFunctionCall","src":"5043:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5036:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4855:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4862:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4870:3:29","type":""}],"src":"4828:271:29"},{"body":{"nodeType":"YulBlock","src":"5163:385:29","statements":[{"nodeType":"YulVariableDeclaration","src":"5173:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5193:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5187:5:29"},"nodeType":"YulFunctionCall","src":"5187:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5177:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5215:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"5220:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5208:6:29"},"nodeType":"YulFunctionCall","src":"5208:19:29"},"nodeType":"YulExpressionStatement","src":"5208:19:29"},{"nodeType":"YulVariableDeclaration","src":"5236:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5246:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5240:2:29","type":""}]},{"nodeType":"YulAssignment","src":"5259:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5270:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5275:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5266:3:29"},"nodeType":"YulFunctionCall","src":"5266:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5259:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"5287:28:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5305:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5312:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5301:3:29"},"nodeType":"YulFunctionCall","src":"5301:14:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"5291:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5324:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5333:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5328:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5392:131:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5413:3:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5428:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5422:5:29"},"nodeType":"YulFunctionCall","src":"5422:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"5437:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5418:3:29"},"nodeType":"YulFunctionCall","src":"5418:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5406:6:29"},"nodeType":"YulFunctionCall","src":"5406:37:29"},"nodeType":"YulExpressionStatement","src":"5406:37:29"},{"nodeType":"YulAssignment","src":"5456:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5467:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5472:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5463:3:29"},"nodeType":"YulFunctionCall","src":"5463:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5456:3:29"}]},{"nodeType":"YulAssignment","src":"5488:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5502:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5510:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5498:3:29"},"nodeType":"YulFunctionCall","src":"5498:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5488:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5354:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"5357:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5351:2:29"},"nodeType":"YulFunctionCall","src":"5351:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5365:18:29","statements":[{"nodeType":"YulAssignment","src":"5367:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5376:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"5379:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:29"},"nodeType":"YulFunctionCall","src":"5372:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5367:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"5347:3:29","statements":[]},"src":"5343:180:29"},{"nodeType":"YulAssignment","src":"5532:10:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"5539:3:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5532:3:29"}]}]},"name":"abi_encode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5140:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5147:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5155:3:29","type":""}],"src":"5104:444:29"},{"body":{"nodeType":"YulBlock","src":"5609:541:29","statements":[{"nodeType":"YulVariableDeclaration","src":"5619:32:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5645:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5639:5:29"},"nodeType":"YulFunctionCall","src":"5639:12:29"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5623:12:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5667:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5672:4:29","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5660:6:29"},"nodeType":"YulFunctionCall","src":"5660:17:29"},"nodeType":"YulExpressionStatement","src":"5660:17:29"},{"nodeType":"YulVariableDeclaration","src":"5686:59:29","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5716:12:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5734:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5739:4:29","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5730:3:29"},"nodeType":"YulFunctionCall","src":"5730:14:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"5698:17:29"},"nodeType":"YulFunctionCall","src":"5698:47:29"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"5690:4:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5765:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5770:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5761:3:29"},"nodeType":"YulFunctionCall","src":"5761:14:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5791:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"5798:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5787:3:29"},"nodeType":"YulFunctionCall","src":"5787:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5781:5:29"},"nodeType":"YulFunctionCall","src":"5781:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5806:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5777:3:29"},"nodeType":"YulFunctionCall","src":"5777:34:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5754:6:29"},"nodeType":"YulFunctionCall","src":"5754:58:29"},"nodeType":"YulExpressionStatement","src":"5754:58:29"},{"nodeType":"YulVariableDeclaration","src":"5821:45:29","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5853:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"5860:4:29","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5849:3:29"},"nodeType":"YulFunctionCall","src":"5849:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5843:5:29"},"nodeType":"YulFunctionCall","src":"5843:23:29"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"5825:14:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5886:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5891:4:29","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5882:3:29"},"nodeType":"YulFunctionCall","src":"5882:14:29"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"5902:4:29"},{"name":"pos","nodeType":"YulIdentifier","src":"5908:3:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5898:3:29"},"nodeType":"YulFunctionCall","src":"5898:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:29"},"nodeType":"YulFunctionCall","src":"5875:38:29"},"nodeType":"YulExpressionStatement","src":"5875:38:29"},{"nodeType":"YulVariableDeclaration","src":"5922:62:29","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"5963:14:29"},{"name":"tail","nodeType":"YulIdentifier","src":"5979:4:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"5936:26:29"},"nodeType":"YulFunctionCall","src":"5936:48:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"5926:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6004:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"6009:4:29","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6000:3:29"},"nodeType":"YulFunctionCall","src":"6000:14:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6030:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"6037:4:29","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6026:3:29"},"nodeType":"YulFunctionCall","src":"6026:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6020:5:29"},"nodeType":"YulFunctionCall","src":"6020:23:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6053:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6058:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6049:3:29"},"nodeType":"YulFunctionCall","src":"6049:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6062:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6045:3:29"},"nodeType":"YulFunctionCall","src":"6045:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6016:3:29"},"nodeType":"YulFunctionCall","src":"6016:49:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:29"},"nodeType":"YulFunctionCall","src":"5993:73:29"},"nodeType":"YulExpressionStatement","src":"5993:73:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6086:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"6091:4:29","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6082:3:29"},"nodeType":"YulFunctionCall","src":"6082:14:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6108:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"6115:4:29","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6104:3:29"},"nodeType":"YulFunctionCall","src":"6104:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6098:5:29"},"nodeType":"YulFunctionCall","src":"6098:23:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6075:6:29"},"nodeType":"YulFunctionCall","src":"6075:47:29"},"nodeType":"YulExpressionStatement","src":"6075:47:29"},{"nodeType":"YulAssignment","src":"6131:13:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6138:6:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6131:3:29"}]}]},"name":"abi_encode_struct_Offer","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5586:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5593:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5601:3:29","type":""}],"src":"5553:597:29"},{"body":{"nodeType":"YulBlock","src":"6352:638:29","statements":[{"nodeType":"YulVariableDeclaration","src":"6362:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6372:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6366:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6383:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6401:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6412:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6397:3:29"},"nodeType":"YulFunctionCall","src":"6397:18:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"6387:6:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6431:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6442:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6424:6:29"},"nodeType":"YulFunctionCall","src":"6424:21:29"},"nodeType":"YulExpressionStatement","src":"6424:21:29"},{"nodeType":"YulVariableDeclaration","src":"6454:17:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6465:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"6458:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6480:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6500:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6494:5:29"},"nodeType":"YulFunctionCall","src":"6494:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6484:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"6523:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"6531:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6516:6:29"},"nodeType":"YulFunctionCall","src":"6516:22:29"},"nodeType":"YulExpressionStatement","src":"6516:22:29"},{"nodeType":"YulAssignment","src":"6547:25:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6558:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6569:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6554:3:29"},"nodeType":"YulFunctionCall","src":"6554:18:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6547:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"6581:53:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6603:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6618:1:29","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"6621:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6614:3:29"},"nodeType":"YulFunctionCall","src":"6614:14:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6599:3:29"},"nodeType":"YulFunctionCall","src":"6599:30:29"},{"kind":"number","nodeType":"YulLiteral","src":"6631:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6595:3:29"},"nodeType":"YulFunctionCall","src":"6595:39:29"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"6585:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6643:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6661:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6669:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6657:3:29"},"nodeType":"YulFunctionCall","src":"6657:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"6647:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6681:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6690:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6685:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6749:212:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6770:3:29"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"6783:6:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6791:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6779:3:29"},"nodeType":"YulFunctionCall","src":"6779:22:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6807:2:29","type":"","value":"63"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6803:3:29"},"nodeType":"YulFunctionCall","src":"6803:7:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6775:3:29"},"nodeType":"YulFunctionCall","src":"6775:36:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6763:6:29"},"nodeType":"YulFunctionCall","src":"6763:49:29"},"nodeType":"YulExpressionStatement","src":"6763:49:29"},{"nodeType":"YulAssignment","src":"6825:56:29","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6865:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6859:5:29"},"nodeType":"YulFunctionCall","src":"6859:13:29"},{"name":"tail_2","nodeType":"YulIdentifier","src":"6874:6:29"}],"functionName":{"name":"abi_encode_struct_Offer","nodeType":"YulIdentifier","src":"6835:23:29"},"nodeType":"YulFunctionCall","src":"6835:46:29"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"6825:6:29"}]},{"nodeType":"YulAssignment","src":"6894:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6908:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6916:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6904:3:29"},"nodeType":"YulFunctionCall","src":"6904:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6894:6:29"}]},{"nodeType":"YulAssignment","src":"6932:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6943:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6948:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6939:3:29"},"nodeType":"YulFunctionCall","src":"6939:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6932:3:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6711:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"6714:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6708:2:29"},"nodeType":"YulFunctionCall","src":"6708:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6722:18:29","statements":[{"nodeType":"YulAssignment","src":"6724:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6733:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"6736:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6729:3:29"},"nodeType":"YulFunctionCall","src":"6729:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6724:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"6704:3:29","statements":[]},"src":"6700:261:29"},{"nodeType":"YulAssignment","src":"6970:14:29","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"6978:6:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6970:4:29"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6321:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6332:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6343:4:29","type":""}],"src":"6155:835:29"},{"body":{"nodeType":"YulBlock","src":"7037:76:29","statements":[{"body":{"nodeType":"YulBlock","src":"7091:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7100:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7103:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7093:6:29"},"nodeType":"YulFunctionCall","src":"7093:12:29"},"nodeType":"YulExpressionStatement","src":"7093:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7060:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7081:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7074:6:29"},"nodeType":"YulFunctionCall","src":"7074:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7067:6:29"},"nodeType":"YulFunctionCall","src":"7067:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7057:2:29"},"nodeType":"YulFunctionCall","src":"7057:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7050:6:29"},"nodeType":"YulFunctionCall","src":"7050:40:29"},"nodeType":"YulIf","src":"7047:60:29"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7026:5:29","type":""}],"src":"6995:118:29"},{"body":{"nodeType":"YulBlock","src":"7185:174:29","statements":[{"body":{"nodeType":"YulBlock","src":"7231:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7240:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7243:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7233:6:29"},"nodeType":"YulFunctionCall","src":"7233:12:29"},"nodeType":"YulExpressionStatement","src":"7233:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7206:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7215:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7202:3:29"},"nodeType":"YulFunctionCall","src":"7202:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7227:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7198:3:29"},"nodeType":"YulFunctionCall","src":"7198:32:29"},"nodeType":"YulIf","src":"7195:52:29"},{"nodeType":"YulVariableDeclaration","src":"7256:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7282:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7269:12:29"},"nodeType":"YulFunctionCall","src":"7269:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7260:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7323:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"7301:21:29"},"nodeType":"YulFunctionCall","src":"7301:28:29"},"nodeType":"YulExpressionStatement","src":"7301:28:29"},{"nodeType":"YulAssignment","src":"7338:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"7348:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7338:6:29"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7151:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7162:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7174:6:29","type":""}],"src":"7118:241:29"},{"body":{"nodeType":"YulBlock","src":"7565:267:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7582:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7593:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7575:6:29"},"nodeType":"YulFunctionCall","src":"7575:22:29"},"nodeType":"YulExpressionStatement","src":"7575:22:29"},{"nodeType":"YulAssignment","src":"7606:54:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7632:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7644:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7655:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:29"},"nodeType":"YulFunctionCall","src":"7640:19:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"7614:17:29"},"nodeType":"YulFunctionCall","src":"7614:46:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7606:4:29"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7680:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7691:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7676:3:29"},"nodeType":"YulFunctionCall","src":"7676:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7700:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7708:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7696:3:29"},"nodeType":"YulFunctionCall","src":"7696:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7669:6:29"},"nodeType":"YulFunctionCall","src":"7669:45:29"},"nodeType":"YulExpressionStatement","src":"7669:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7734:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7745:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7730:3:29"},"nodeType":"YulFunctionCall","src":"7730:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7754:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7770:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7775:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7766:3:29"},"nodeType":"YulFunctionCall","src":"7766:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7779:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7762:3:29"},"nodeType":"YulFunctionCall","src":"7762:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7750:3:29"},"nodeType":"YulFunctionCall","src":"7750:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7723:6:29"},"nodeType":"YulFunctionCall","src":"7723:60:29"},"nodeType":"YulExpressionStatement","src":"7723:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7803:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7814:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7799:3:29"},"nodeType":"YulFunctionCall","src":"7799:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"7819:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7792:6:29"},"nodeType":"YulFunctionCall","src":"7792:34:29"},"nodeType":"YulExpressionStatement","src":"7792:34:29"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint8_t_address_t_uint256__to_t_string_memory_ptr_t_uint8_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7510:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7521:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7529:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7537:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7545:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7556:4:29","type":""}],"src":"7364:468:29"},{"body":{"nodeType":"YulBlock","src":"7938:102:29","statements":[{"nodeType":"YulAssignment","src":"7948:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7960:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7971:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7956:3:29"},"nodeType":"YulFunctionCall","src":"7956:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7948:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7990:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8005:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8021:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8026:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8017:3:29"},"nodeType":"YulFunctionCall","src":"8017:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"8030:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8013:3:29"},"nodeType":"YulFunctionCall","src":"8013:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8001:3:29"},"nodeType":"YulFunctionCall","src":"8001:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7983:6:29"},"nodeType":"YulFunctionCall","src":"7983:51:29"},"nodeType":"YulExpressionStatement","src":"7983:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7907:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7918:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7929:4:29","type":""}],"src":"7837:203:29"},{"body":{"nodeType":"YulBlock","src":"8192:105:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8209:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8220:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8202:6:29"},"nodeType":"YulFunctionCall","src":"8202:21:29"},"nodeType":"YulExpressionStatement","src":"8202:21:29"},{"nodeType":"YulAssignment","src":"8232:59:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8264:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8276:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8287:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8272:3:29"},"nodeType":"YulFunctionCall","src":"8272:18:29"}],"functionName":{"name":"abi_encode_struct_Offer","nodeType":"YulIdentifier","src":"8240:23:29"},"nodeType":"YulFunctionCall","src":"8240:51:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8232:4:29"}]}]},"name":"abi_encode_tuple_t_struct$_Offer_$5997_memory_ptr__to_t_struct$_Offer_$5997_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8161:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8172:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8183:4:29","type":""}],"src":"8045:252:29"},{"body":{"nodeType":"YulBlock","src":"8419:284:29","statements":[{"body":{"nodeType":"YulBlock","src":"8466:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8475:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8478:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8468:6:29"},"nodeType":"YulFunctionCall","src":"8468:12:29"},"nodeType":"YulExpressionStatement","src":"8468:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8440:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"8449:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8436:3:29"},"nodeType":"YulFunctionCall","src":"8436:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"8461:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8432:3:29"},"nodeType":"YulFunctionCall","src":"8432:33:29"},"nodeType":"YulIf","src":"8429:53:29"},{"nodeType":"YulAssignment","src":"8491:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8520:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8501:18:29"},"nodeType":"YulFunctionCall","src":"8501:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8491:6:29"}]},{"nodeType":"YulAssignment","src":"8539:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8570:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8581:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8566:3:29"},"nodeType":"YulFunctionCall","src":"8566:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8549:16:29"},"nodeType":"YulFunctionCall","src":"8549:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8539:6:29"}]},{"nodeType":"YulAssignment","src":"8594:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8627:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8638:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8623:3:29"},"nodeType":"YulFunctionCall","src":"8623:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8604:18:29"},"nodeType":"YulFunctionCall","src":"8604:38:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8594:6:29"}]},{"nodeType":"YulAssignment","src":"8651:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8682:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8693:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8678:3:29"},"nodeType":"YulFunctionCall","src":"8678:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8661:16:29"},"nodeType":"YulFunctionCall","src":"8661:36:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8651:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8361:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8372:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8384:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8392:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8400:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8408:6:29","type":""}],"src":"8302:401:29"},{"body":{"nodeType":"YulBlock","src":"8837:102:29","statements":[{"nodeType":"YulAssignment","src":"8847:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8859:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8870:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8855:3:29"},"nodeType":"YulFunctionCall","src":"8855:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8847:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8889:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8904:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8920:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8925:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8916:3:29"},"nodeType":"YulFunctionCall","src":"8916:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"8929:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8912:3:29"},"nodeType":"YulFunctionCall","src":"8912:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8900:3:29"},"nodeType":"YulFunctionCall","src":"8900:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8882:6:29"},"nodeType":"YulFunctionCall","src":"8882:51:29"},"nodeType":"YulExpressionStatement","src":"8882:51:29"}]},"name":"abi_encode_tuple_t_contract$_IGammaCardsContract_$5952__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8806:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8817:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8828:4:29","type":""}],"src":"8708:231:29"},{"body":{"nodeType":"YulBlock","src":"9024:242:29","statements":[{"body":{"nodeType":"YulBlock","src":"9070:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9079:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9082:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9072:6:29"},"nodeType":"YulFunctionCall","src":"9072:12:29"},"nodeType":"YulExpressionStatement","src":"9072:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9045:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"9054:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9041:3:29"},"nodeType":"YulFunctionCall","src":"9041:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"9066:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9037:3:29"},"nodeType":"YulFunctionCall","src":"9037:32:29"},"nodeType":"YulIf","src":"9034:52:29"},{"nodeType":"YulVariableDeclaration","src":"9095:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9122:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9109:12:29"},"nodeType":"YulFunctionCall","src":"9109:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9099:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9175:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9184:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9187:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9177:6:29"},"nodeType":"YulFunctionCall","src":"9177:12:29"},"nodeType":"YulExpressionStatement","src":"9177:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9147:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9155:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9144:2:29"},"nodeType":"YulFunctionCall","src":"9144:30:29"},"nodeType":"YulIf","src":"9141:50:29"},{"nodeType":"YulAssignment","src":"9200:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"9243:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:29"},"nodeType":"YulFunctionCall","src":"9228:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9252:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"9210:17:29"},"nodeType":"YulFunctionCall","src":"9210:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9200:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8990:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9001:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9013:6:29","type":""}],"src":"8944:322:29"},{"body":{"nodeType":"YulBlock","src":"9431:145:29","statements":[{"nodeType":"YulAssignment","src":"9441:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9453:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9464:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9449:3:29"},"nodeType":"YulFunctionCall","src":"9449:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9441:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9483:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"9494:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9476:6:29"},"nodeType":"YulFunctionCall","src":"9476:25:29"},"nodeType":"YulExpressionStatement","src":"9476:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9521:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9532:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9517:3:29"},"nodeType":"YulFunctionCall","src":"9517:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9541:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9557:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9562:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9553:3:29"},"nodeType":"YulFunctionCall","src":"9553:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"9566:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9549:3:29"},"nodeType":"YulFunctionCall","src":"9549:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9537:3:29"},"nodeType":"YulFunctionCall","src":"9537:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9510:6:29"},"nodeType":"YulFunctionCall","src":"9510:60:29"},"nodeType":"YulExpressionStatement","src":"9510:60:29"}]},"name":"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9392:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9403:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9411:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9422:4:29","type":""}],"src":"9271:305:29"},{"body":{"nodeType":"YulBlock","src":"9613:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9630:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9637:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9642:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9633:3:29"},"nodeType":"YulFunctionCall","src":"9633:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9623:6:29"},"nodeType":"YulFunctionCall","src":"9623:31:29"},"nodeType":"YulExpressionStatement","src":"9623:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9670:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9673:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9663:6:29"},"nodeType":"YulFunctionCall","src":"9663:15:29"},"nodeType":"YulExpressionStatement","src":"9663:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9694:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9697:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9687:6:29"},"nodeType":"YulFunctionCall","src":"9687:15:29"},"nodeType":"YulExpressionStatement","src":"9687:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"9581:127:29"},{"body":{"nodeType":"YulBlock","src":"9745:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9762:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9769:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9774:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9765:3:29"},"nodeType":"YulFunctionCall","src":"9765:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9755:6:29"},"nodeType":"YulFunctionCall","src":"9755:31:29"},"nodeType":"YulExpressionStatement","src":"9755:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9802:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9805:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9795:6:29"},"nodeType":"YulFunctionCall","src":"9795:15:29"},"nodeType":"YulExpressionStatement","src":"9795:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9826:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9829:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9819:6:29"},"nodeType":"YulFunctionCall","src":"9819:15:29"},"nodeType":"YulExpressionStatement","src":"9819:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9713:127:29"},{"body":{"nodeType":"YulBlock","src":"9892:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"9923:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9925:16:29"},"nodeType":"YulFunctionCall","src":"9925:18:29"},"nodeType":"YulExpressionStatement","src":"9925:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9908:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9919:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9915:3:29"},"nodeType":"YulFunctionCall","src":"9915:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9905:2:29"},"nodeType":"YulFunctionCall","src":"9905:17:29"},"nodeType":"YulIf","src":"9902:43:29"},{"nodeType":"YulAssignment","src":"9954:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9965:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"9972:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9961:3:29"},"nodeType":"YulFunctionCall","src":"9961:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9954:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9874:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9884:3:29","type":""}],"src":"9845:135:29"},{"body":{"nodeType":"YulBlock","src":"10040:325:29","statements":[{"nodeType":"YulAssignment","src":"10050:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10064:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10067:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10060:3:29"},"nodeType":"YulFunctionCall","src":"10060:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10050:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"10081:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10111:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"10117:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10107:3:29"},"nodeType":"YulFunctionCall","src":"10107:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10085:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"10158:31:29","statements":[{"nodeType":"YulAssignment","src":"10160:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10174:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10182:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10170:3:29"},"nodeType":"YulFunctionCall","src":"10170:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10160:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10138:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10131:6:29"},"nodeType":"YulFunctionCall","src":"10131:26:29"},"nodeType":"YulIf","src":"10128:61:29"},{"body":{"nodeType":"YulBlock","src":"10248:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10269:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10276:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10281:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10272:3:29"},"nodeType":"YulFunctionCall","src":"10272:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10262:6:29"},"nodeType":"YulFunctionCall","src":"10262:31:29"},"nodeType":"YulExpressionStatement","src":"10262:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10313:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10316:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10306:6:29"},"nodeType":"YulFunctionCall","src":"10306:15:29"},"nodeType":"YulExpressionStatement","src":"10306:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10341:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10344:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10334:6:29"},"nodeType":"YulFunctionCall","src":"10334:15:29"},"nodeType":"YulExpressionStatement","src":"10334:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10204:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10227:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10235:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10224:2:29"},"nodeType":"YulFunctionCall","src":"10224:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10201:2:29"},"nodeType":"YulFunctionCall","src":"10201:38:29"},"nodeType":"YulIf","src":"10198:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10020:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10029:6:29","type":""}],"src":"9985:380:29"},{"body":{"nodeType":"YulBlock","src":"10495:156:29","statements":[{"nodeType":"YulAssignment","src":"10505:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10528:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10513:3:29"},"nodeType":"YulFunctionCall","src":"10513:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10505:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10547:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10562:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10578:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10583:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10574:3:29"},"nodeType":"YulFunctionCall","src":"10574:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"10587:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10570:3:29"},"nodeType":"YulFunctionCall","src":"10570:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10558:3:29"},"nodeType":"YulFunctionCall","src":"10558:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10540:6:29"},"nodeType":"YulFunctionCall","src":"10540:51:29"},"nodeType":"YulExpressionStatement","src":"10540:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10622:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10607:3:29"},"nodeType":"YulFunctionCall","src":"10607:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10631:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10639:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10627:3:29"},"nodeType":"YulFunctionCall","src":"10627:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10600:6:29"},"nodeType":"YulFunctionCall","src":"10600:45:29"},"nodeType":"YulExpressionStatement","src":"10600:45:29"}]},"name":"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10456:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10467:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10475:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10486:4:29","type":""}],"src":"10370:281:29"},{"body":{"nodeType":"YulBlock","src":"10734:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"10780:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10789:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10792:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10782:6:29"},"nodeType":"YulFunctionCall","src":"10782:12:29"},"nodeType":"YulExpressionStatement","src":"10782:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10755:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"10764:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10751:3:29"},"nodeType":"YulFunctionCall","src":"10751:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"10776:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10747:3:29"},"nodeType":"YulFunctionCall","src":"10747:32:29"},"nodeType":"YulIf","src":"10744:52:29"},{"nodeType":"YulVariableDeclaration","src":"10805:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10824:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10818:5:29"},"nodeType":"YulFunctionCall","src":"10818:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10809:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10865:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"10843:21:29"},"nodeType":"YulFunctionCall","src":"10843:28:29"},"nodeType":"YulExpressionStatement","src":"10843:28:29"},{"nodeType":"YulAssignment","src":"10880:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"10890:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10880:6:29"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10700:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10711:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10723:6:29","type":""}],"src":"10656:245:29"},{"body":{"nodeType":"YulBlock","src":"10951:130:29","statements":[{"nodeType":"YulVariableDeclaration","src":"10961:31:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10980:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"10987:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10976:3:29"},"nodeType":"YulFunctionCall","src":"10976:16:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10965:7:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"11022:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11024:16:29"},"nodeType":"YulFunctionCall","src":"11024:18:29"},"nodeType":"YulExpressionStatement","src":"11024:18:29"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11007:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"11016:4:29","type":"","value":"0xff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11004:2:29"},"nodeType":"YulFunctionCall","src":"11004:17:29"},"nodeType":"YulIf","src":"11001:43:29"},{"nodeType":"YulAssignment","src":"11053:22:29","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11064:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"11073:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11060:3:29"},"nodeType":"YulFunctionCall","src":"11060:15:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11053:3:29"}]}]},"name":"increment_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10933:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10943:3:29","type":""}],"src":"10906:175:29"},{"body":{"nodeType":"YulBlock","src":"11263:284:29","statements":[{"nodeType":"YulAssignment","src":"11273:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11285:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11296:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11281:3:29"},"nodeType":"YulFunctionCall","src":"11281:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11273:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"11309:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11327:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11332:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11323:3:29"},"nodeType":"YulFunctionCall","src":"11323:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"11336:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11319:3:29"},"nodeType":"YulFunctionCall","src":"11319:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11313:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11354:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11369:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11377:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11365:3:29"},"nodeType":"YulFunctionCall","src":"11365:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11347:6:29"},"nodeType":"YulFunctionCall","src":"11347:34:29"},"nodeType":"YulExpressionStatement","src":"11347:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11401:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11412:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11397:3:29"},"nodeType":"YulFunctionCall","src":"11397:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11421:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11429:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11417:3:29"},"nodeType":"YulFunctionCall","src":"11417:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11390:6:29"},"nodeType":"YulFunctionCall","src":"11390:45:29"},"nodeType":"YulExpressionStatement","src":"11390:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11455:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11466:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11451:3:29"},"nodeType":"YulFunctionCall","src":"11451:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11475:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11483:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11471:3:29"},"nodeType":"YulFunctionCall","src":"11471:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11444:6:29"},"nodeType":"YulFunctionCall","src":"11444:43:29"},"nodeType":"YulExpressionStatement","src":"11444:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11507:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11518:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11503:3:29"},"nodeType":"YulFunctionCall","src":"11503:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11527:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11535:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11523:3:29"},"nodeType":"YulFunctionCall","src":"11523:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11496:6:29"},"nodeType":"YulFunctionCall","src":"11496:45:29"},"nodeType":"YulExpressionStatement","src":"11496:45:29"}]},"name":"abi_encode_tuple_t_address_t_uint8_t_address_t_uint8__to_t_address_t_uint8_t_address_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11208:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11219:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11227:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11235:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11243:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11254:4:29","type":""}],"src":"11086:461:29"},{"body":{"nodeType":"YulBlock","src":"11691:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"11701:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11721:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11715:5:29"},"nodeType":"YulFunctionCall","src":"11715:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11705:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11776:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11784:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11772:3:29"},"nodeType":"YulFunctionCall","src":"11772:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"11791:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"11796:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11737:34:29"},"nodeType":"YulFunctionCall","src":"11737:66:29"},"nodeType":"YulExpressionStatement","src":"11737:66:29"},{"nodeType":"YulAssignment","src":"11812:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11823:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"11828:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11819:3:29"},"nodeType":"YulFunctionCall","src":"11819:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11812:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11667:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11672:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11683:3:29","type":""}],"src":"11552:289:29"},{"body":{"nodeType":"YulBlock","src":"11902:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11919:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"11922:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11912:6:29"},"nodeType":"YulFunctionCall","src":"11912:14:29"},"nodeType":"YulExpressionStatement","src":"11912:14:29"},{"nodeType":"YulAssignment","src":"11935:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11953:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11956:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"11943:9:29"},"nodeType":"YulFunctionCall","src":"11943:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"11935:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11885:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"11893:4:29","type":""}],"src":"11846:121:29"},{"body":{"nodeType":"YulBlock","src":"12108:706:29","statements":[{"nodeType":"YulVariableDeclaration","src":"12118:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12129:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"12122:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12139:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12162:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12156:5:29"},"nodeType":"YulFunctionCall","src":"12156:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"12143:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12178:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12218:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"12192:25:29"},"nodeType":"YulFunctionCall","src":"12192:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12182:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12237:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12247:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12241:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"12298:126:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12319:3:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12328:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12343:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12339:3:29"},"nodeType":"YulFunctionCall","src":"12339:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12324:3:29"},"nodeType":"YulFunctionCall","src":"12324:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12312:6:29"},"nodeType":"YulFunctionCall","src":"12312:37:29"},"nodeType":"YulExpressionStatement","src":"12312:37:29"},{"nodeType":"YulAssignment","src":"12362:52:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12373:3:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12382:6:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12404:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12397:6:29"},"nodeType":"YulFunctionCall","src":"12397:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12390:6:29"},"nodeType":"YulFunctionCall","src":"12390:22:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12378:3:29"},"nodeType":"YulFunctionCall","src":"12378:35:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12369:3:29"},"nodeType":"YulFunctionCall","src":"12369:45:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12362:3:29"}]}]},"nodeType":"YulCase","src":"12291:133:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12296:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"12440:349:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12461:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"12464:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12454:6:29"},"nodeType":"YulFunctionCall","src":"12454:17:29"},"nodeType":"YulExpressionStatement","src":"12454:17:29"},{"nodeType":"YulVariableDeclaration","src":"12484:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12494:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12488:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12511:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12536:1:29","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"12539:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12526:9:29"},"nodeType":"YulFunctionCall","src":"12526:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"12515:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12555:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12564:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12559:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"12632:111:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12661:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"12666:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12657:3:29"},"nodeType":"YulFunctionCall","src":"12657:11:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12676:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12670:5:29"},"nodeType":"YulFunctionCall","src":"12670:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12650:6:29"},"nodeType":"YulFunctionCall","src":"12650:35:29"},"nodeType":"YulExpressionStatement","src":"12650:35:29"},{"nodeType":"YulAssignment","src":"12702:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12717:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12726:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12713:3:29"},"nodeType":"YulFunctionCall","src":"12713:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12702:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12589:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"12592:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12586:2:29"},"nodeType":"YulFunctionCall","src":"12586:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12600:19:29","statements":[{"nodeType":"YulAssignment","src":"12602:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12611:1:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12614:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12607:3:29"},"nodeType":"YulFunctionCall","src":"12607:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12602:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"12582:3:29","statements":[]},"src":"12578:165:29"},{"nodeType":"YulAssignment","src":"12756:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12767:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"12772:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12763:3:29"},"nodeType":"YulFunctionCall","src":"12763:16:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12756:3:29"}]}]},"nodeType":"YulCase","src":"12433:356:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12438:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12268:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12279:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12264:3:29"},"nodeType":"YulFunctionCall","src":"12264:18:29"},"nodeType":"YulSwitch","src":"12257:532:29"},{"nodeType":"YulAssignment","src":"12798:10:29","value":{"name":"ret","nodeType":"YulIdentifier","src":"12805:3:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12798:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12084:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12089:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12100:3:29","type":""}],"src":"11972:842:29"},{"body":{"nodeType":"YulBlock","src":"12868:79:29","statements":[{"nodeType":"YulAssignment","src":"12878:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12890:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"12893:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12886:3:29"},"nodeType":"YulFunctionCall","src":"12886:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12878:4:29"}]},{"body":{"nodeType":"YulBlock","src":"12919:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12921:16:29"},"nodeType":"YulFunctionCall","src":"12921:18:29"},"nodeType":"YulExpressionStatement","src":"12921:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"12910:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"12916:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12907:2:29"},"nodeType":"YulFunctionCall","src":"12907:11:29"},"nodeType":"YulIf","src":"12904:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12850:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"12853:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12859:4:29","type":""}],"src":"12819:128:29"},{"body":{"nodeType":"YulBlock","src":"13000:77:29","statements":[{"nodeType":"YulAssignment","src":"13010:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13021:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"13024:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13017:3:29"},"nodeType":"YulFunctionCall","src":"13017:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13010:3:29"}]},{"body":{"nodeType":"YulBlock","src":"13049:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13051:16:29"},"nodeType":"YulFunctionCall","src":"13051:18:29"},"nodeType":"YulExpressionStatement","src":"13051:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13041:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"13044:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13038:2:29"},"nodeType":"YulFunctionCall","src":"13038:10:29"},"nodeType":"YulIf","src":"13035:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12983:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"12986:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12992:3:29","type":""}],"src":"12952:125:29"},{"body":{"nodeType":"YulBlock","src":"13163:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"13196:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"13210:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"13220:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13214:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13241:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"13245:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13234:6:29"},"nodeType":"YulFunctionCall","src":"13234:17:29"},"nodeType":"YulExpressionStatement","src":"13234:17:29"},{"nodeType":"YulVariableDeclaration","src":"13264:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13286:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"13290:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"13276:9:29"},"nodeType":"YulFunctionCall","src":"13276:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"13268:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13308:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13331:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13341:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"13348:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"13360:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13344:3:29"},"nodeType":"YulFunctionCall","src":"13344:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13337:3:29"},"nodeType":"YulFunctionCall","src":"13337:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13327:3:29"},"nodeType":"YulFunctionCall","src":"13327:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"13312:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13402:23:29","statements":[{"nodeType":"YulAssignment","src":"13404:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"13419:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"13404:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"13384:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"13396:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13381:2:29"},"nodeType":"YulFunctionCall","src":"13381:20:29"},"nodeType":"YulIf","src":"13378:47:29"},{"nodeType":"YulVariableDeclaration","src":"13438:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13452:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13462:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13469:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13474:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13465:3:29"},"nodeType":"YulFunctionCall","src":"13465:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13458:3:29"},"nodeType":"YulFunctionCall","src":"13458:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13448:3:29"},"nodeType":"YulFunctionCall","src":"13448:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"13442:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13492:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"13505:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"13496:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13590:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13599:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13606:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13592:6:29"},"nodeType":"YulFunctionCall","src":"13592:17:29"},"nodeType":"YulExpressionStatement","src":"13592:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13540:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"13547:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13537:2:29"},"nodeType":"YulFunctionCall","src":"13537:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13551:26:29","statements":[{"nodeType":"YulAssignment","src":"13553:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13566:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"13573:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13562:3:29"},"nodeType":"YulFunctionCall","src":"13562:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"13553:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"13533:3:29","statements":[]},"src":"13529:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13179:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13184:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13176:2:29"},"nodeType":"YulFunctionCall","src":"13176:11:29"},"nodeType":"YulIf","src":"13173:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"13135:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"13142:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"13147:10:29","type":""}],"src":"13082:545:29"},{"body":{"nodeType":"YulBlock","src":"13717:81:29","statements":[{"nodeType":"YulAssignment","src":"13727:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13742:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13760:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"13763:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13756:3:29"},"nodeType":"YulFunctionCall","src":"13756:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13773:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13769:3:29"},"nodeType":"YulFunctionCall","src":"13769:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13752:3:29"},"nodeType":"YulFunctionCall","src":"13752:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13748:3:29"},"nodeType":"YulFunctionCall","src":"13748:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13738:3:29"},"nodeType":"YulFunctionCall","src":"13738:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13784:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"13787:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13780:3:29"},"nodeType":"YulFunctionCall","src":"13780:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"13735:2:29"},"nodeType":"YulFunctionCall","src":"13735:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"13727:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"13694:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"13700:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"13708:4:29","type":""}],"src":"13632:166:29"},{"body":{"nodeType":"YulBlock","src":"13899:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"13909:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13929:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13923:5:29"},"nodeType":"YulFunctionCall","src":"13923:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"13913:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13976:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"13978:16:29"},"nodeType":"YulFunctionCall","src":"13978:18:29"},"nodeType":"YulExpressionStatement","src":"13978:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13948:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"13956:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13945:2:29"},"nodeType":"YulFunctionCall","src":"13945:30:29"},"nodeType":"YulIf","src":"13942:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14051:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14089:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"14083:5:29"},"nodeType":"YulFunctionCall","src":"14083:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"14057:25:29"},"nodeType":"YulFunctionCall","src":"14057:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"14097:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"14007:43:29"},"nodeType":"YulFunctionCall","src":"14007:97:29"},"nodeType":"YulExpressionStatement","src":"14007:97:29"},{"nodeType":"YulVariableDeclaration","src":"14113:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14130:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"14117:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14140:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14159:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"14144:11:29","type":""}]},{"nodeType":"YulAssignment","src":"14172:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14185:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14172:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"14242:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"14256:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"14275:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14287:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14283:3:29"},"nodeType":"YulFunctionCall","src":"14283:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14271:3:29"},"nodeType":"YulFunctionCall","src":"14271:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"14260:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14304:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14348:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"14318:29:29"},"nodeType":"YulFunctionCall","src":"14318:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"14308:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14366:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14375:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14370:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"14453:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14478:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14496:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14501:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14492:3:29"},"nodeType":"YulFunctionCall","src":"14492:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14486:5:29"},"nodeType":"YulFunctionCall","src":"14486:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14471:6:29"},"nodeType":"YulFunctionCall","src":"14471:42:29"},"nodeType":"YulExpressionStatement","src":"14471:42:29"},{"nodeType":"YulAssignment","src":"14530:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14544:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14552:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14540:3:29"},"nodeType":"YulFunctionCall","src":"14540:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14530:6:29"}]},{"nodeType":"YulAssignment","src":"14571:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14588:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14599:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14584:3:29"},"nodeType":"YulFunctionCall","src":"14584:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14571:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14400:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"14403:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14397:2:29"},"nodeType":"YulFunctionCall","src":"14397:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14412:28:29","statements":[{"nodeType":"YulAssignment","src":"14414:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14423:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14426:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14419:3:29"},"nodeType":"YulFunctionCall","src":"14419:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14414:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"14393:3:29","statements":[]},"src":"14389:236:29"},{"body":{"nodeType":"YulBlock","src":"14673:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"14691:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14718:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14723:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14714:3:29"},"nodeType":"YulFunctionCall","src":"14714:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14708:5:29"},"nodeType":"YulFunctionCall","src":"14708:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"14695:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14758:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"14770:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14797:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"14800:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14793:3:29"},"nodeType":"YulFunctionCall","src":"14793:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"14809:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14789:3:29"},"nodeType":"YulFunctionCall","src":"14789:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14819:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14815:3:29"},"nodeType":"YulFunctionCall","src":"14815:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14785:3:29"},"nodeType":"YulFunctionCall","src":"14785:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14781:3:29"},"nodeType":"YulFunctionCall","src":"14781:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14766:3:29"},"nodeType":"YulFunctionCall","src":"14766:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14751:6:29"},"nodeType":"YulFunctionCall","src":"14751:74:29"},"nodeType":"YulExpressionStatement","src":"14751:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"14644:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"14653:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14641:2:29"},"nodeType":"YulFunctionCall","src":"14641:19:29"},"nodeType":"YulIf","src":"14638:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14859:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14873:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"14876:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14869:3:29"},"nodeType":"YulFunctionCall","src":"14869:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"14885:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14865:3:29"},"nodeType":"YulFunctionCall","src":"14865:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14852:6:29"},"nodeType":"YulFunctionCall","src":"14852:36:29"},"nodeType":"YulExpressionStatement","src":"14852:36:29"}]},"nodeType":"YulCase","src":"14235:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14240:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"14915:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"14929:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14942:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14933:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"14978:67:29","statements":[{"nodeType":"YulAssignment","src":"14996:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15015:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"15020:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15011:3:29"},"nodeType":"YulFunctionCall","src":"15011:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15005:5:29"},"nodeType":"YulFunctionCall","src":"15005:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14996:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"14959:6:29"},"nodeType":"YulIf","src":"14956:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15065:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15124:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"15131:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"15071:52:29"},"nodeType":"YulFunctionCall","src":"15071:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"15058:6:29"},"nodeType":"YulFunctionCall","src":"15058:81:29"},"nodeType":"YulExpressionStatement","src":"15058:81:29"}]},"nodeType":"YulCase","src":"14907:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"14215:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14223:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14212:2:29"},"nodeType":"YulFunctionCall","src":"14212:14:29"},"nodeType":"YulSwitch","src":"14205:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"13884:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"13890:3:29","type":""}],"src":"13803:1352:29"},{"body":{"nodeType":"YulBlock","src":"15253:1338:29","statements":[{"body":{"nodeType":"YulBlock","src":"15280:9:29","statements":[{"nodeType":"YulLeave","src":"15282:5:29"}]},"condition":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15269:4:29"},{"name":"src","nodeType":"YulIdentifier","src":"15275:3:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15266:2:29"},"nodeType":"YulFunctionCall","src":"15266:13:29"},"nodeType":"YulIf","src":"15263:26:29"},{"nodeType":"YulVariableDeclaration","src":"15298:51:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15344:3:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15338:5:29"},"nodeType":"YulFunctionCall","src":"15338:10:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"15312:25:29"},"nodeType":"YulFunctionCall","src":"15312:37:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"15302:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"15392:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15394:16:29"},"nodeType":"YulFunctionCall","src":"15394:18:29"},"nodeType":"YulExpressionStatement","src":"15394:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"15364:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"15372:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15361:2:29"},"nodeType":"YulFunctionCall","src":"15361:30:29"},"nodeType":"YulIf","src":"15358:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15467:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15505:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15499:5:29"},"nodeType":"YulFunctionCall","src":"15499:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"15473:25:29"},"nodeType":"YulFunctionCall","src":"15473:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"15513:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"15423:43:29"},"nodeType":"YulFunctionCall","src":"15423:97:29"},"nodeType":"YulExpressionStatement","src":"15423:97:29"},{"nodeType":"YulVariableDeclaration","src":"15529:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"15546:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"15533:9:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"15593:741:29","statements":[{"nodeType":"YulVariableDeclaration","src":"15607:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"15626:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15638:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15634:3:29"},"nodeType":"YulFunctionCall","src":"15634:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15622:3:29"},"nodeType":"YulFunctionCall","src":"15622:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"15611:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15655:47:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15698:3:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"15668:29:29"},"nodeType":"YulFunctionCall","src":"15668:34:29"},"variables":[{"name":"src_1","nodeType":"YulTypedName","src":"15659:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15715:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15759:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"15729:29:29"},"nodeType":"YulFunctionCall","src":"15729:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"15719:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15777:18:29","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"15786:9:29"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15781:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"15865:194:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"15890:6:29"},{"arguments":[{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"15908:5:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"15915:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15904:3:29"},"nodeType":"YulFunctionCall","src":"15904:21:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15898:5:29"},"nodeType":"YulFunctionCall","src":"15898:28:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"15883:6:29"},"nodeType":"YulFunctionCall","src":"15883:44:29"},"nodeType":"YulExpressionStatement","src":"15883:44:29"},{"nodeType":"YulVariableDeclaration","src":"15944:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"15954:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15948:2:29","type":""}]},{"nodeType":"YulAssignment","src":"15972:25:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"15986:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"15994:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15982:3:29"},"nodeType":"YulFunctionCall","src":"15982:15:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"15972:6:29"}]},{"nodeType":"YulAssignment","src":"16014:31:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"16031:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"16042:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16027:3:29"},"nodeType":"YulFunctionCall","src":"16027:18:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"16014:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15819:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"15822:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15816:2:29"},"nodeType":"YulFunctionCall","src":"15816:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15831:21:29","statements":[{"nodeType":"YulAssignment","src":"15833:17:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15842:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"15845:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15838:3:29"},"nodeType":"YulFunctionCall","src":"15838:12:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15833:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"15812:3:29","statements":[]},"src":"15808:251:29"},{"body":{"nodeType":"YulBlock","src":"16107:168:29","statements":[{"nodeType":"YulVariableDeclaration","src":"16125:45:29","value":{"arguments":[{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"16152:5:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"16159:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16148:3:29"},"nodeType":"YulFunctionCall","src":"16148:21:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16142:5:29"},"nodeType":"YulFunctionCall","src":"16142:28:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"16129:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"16194:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"16206:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16233:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"16236:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16229:3:29"},"nodeType":"YulFunctionCall","src":"16229:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"16245:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16225:3:29"},"nodeType":"YulFunctionCall","src":"16225:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16255:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16251:3:29"},"nodeType":"YulFunctionCall","src":"16251:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"16221:3:29"},"nodeType":"YulFunctionCall","src":"16221:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16217:3:29"},"nodeType":"YulFunctionCall","src":"16217:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16202:3:29"},"nodeType":"YulFunctionCall","src":"16202:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"16187:6:29"},"nodeType":"YulFunctionCall","src":"16187:74:29"},"nodeType":"YulExpressionStatement","src":"16187:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"16078:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"16087:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16075:2:29"},"nodeType":"YulFunctionCall","src":"16075:19:29"},"nodeType":"YulIf","src":"16072:203:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"16295:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16309:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"16312:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16305:3:29"},"nodeType":"YulFunctionCall","src":"16305:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"16321:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16301:3:29"},"nodeType":"YulFunctionCall","src":"16301:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"16288:6:29"},"nodeType":"YulFunctionCall","src":"16288:36:29"},"nodeType":"YulExpressionStatement","src":"16288:36:29"}]},"nodeType":"YulCase","src":"15586:748:29","value":{"kind":"number","nodeType":"YulLiteral","src":"15591:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"16351:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"16365:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"16378:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16369:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"16414:67:29","statements":[{"nodeType":"YulAssignment","src":"16432:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"16451:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"16456:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16447:3:29"},"nodeType":"YulFunctionCall","src":"16447:19:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16441:5:29"},"nodeType":"YulFunctionCall","src":"16441:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"16432:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"16395:6:29"},"nodeType":"YulIf","src":"16392:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"16501:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16560:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"16567:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"16507:52:29"},"nodeType":"YulFunctionCall","src":"16507:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"16494:6:29"},"nodeType":"YulFunctionCall","src":"16494:81:29"},"nodeType":"YulExpressionStatement","src":"16494:81:29"}]},"nodeType":"YulCase","src":"16343:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"15566:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"15574:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15563:2:29"},"nodeType":"YulFunctionCall","src":"15563:14:29"},"nodeType":"YulSwitch","src":"15556:1029:29"}]},"name":"copy_byte_array_to_storage_from_t_string_storage_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"15238:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"15244:3:29","type":""}],"src":"15160:1431:29"},{"body":{"nodeType":"YulBlock","src":"16795:231:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16812:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16827:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16843:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16848:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16839:3:29"},"nodeType":"YulFunctionCall","src":"16839:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"16852:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16835:3:29"},"nodeType":"YulFunctionCall","src":"16835:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16823:3:29"},"nodeType":"YulFunctionCall","src":"16823:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16805:6:29"},"nodeType":"YulFunctionCall","src":"16805:51:29"},"nodeType":"YulExpressionStatement","src":"16805:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16876:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16887:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16872:3:29"},"nodeType":"YulFunctionCall","src":"16872:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16896:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"16904:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16892:3:29"},"nodeType":"YulFunctionCall","src":"16892:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16865:6:29"},"nodeType":"YulFunctionCall","src":"16865:45:29"},"nodeType":"YulExpressionStatement","src":"16865:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16930:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16941:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16926:3:29"},"nodeType":"YulFunctionCall","src":"16926:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16946:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16919:6:29"},"nodeType":"YulFunctionCall","src":"16919:30:29"},"nodeType":"YulExpressionStatement","src":"16919:30:29"},{"nodeType":"YulAssignment","src":"16958:62:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16993:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17016:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:29"},"nodeType":"YulFunctionCall","src":"17001:18:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"16966:26:29"},"nodeType":"YulFunctionCall","src":"16966:54:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16958:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__to_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16748:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16759:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16767:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16775:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16786:4:29","type":""}],"src":"16596:430:29"},{"body":{"nodeType":"YulBlock","src":"17063:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17080:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17087:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17092:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17083:3:29"},"nodeType":"YulFunctionCall","src":"17083:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17073:6:29"},"nodeType":"YulFunctionCall","src":"17073:31:29"},"nodeType":"YulExpressionStatement","src":"17073:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17120:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17123:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17113:6:29"},"nodeType":"YulFunctionCall","src":"17113:15:29"},"nodeType":"YulExpressionStatement","src":"17113:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17144:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17147:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17137:6:29"},"nodeType":"YulFunctionCall","src":"17137:15:29"},"nodeType":"YulExpressionStatement","src":"17137:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"17031:127:29"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_array_uint8_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let _3 := shl(5, _1)\n let dst := allocate_memory(add(_3, _2))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, _3), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n mstore(dst, abi_decode_uint8(src))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_string_memory_ptrt_addresst_uint8t_array$_t_uint8_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := abi_decode_uint8(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n value3 := abi_decode_array_uint8_dyn(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint8(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n }\n function abi_decode_tuple_t_string_memory_ptrt_uint8t_array$_t_uint8_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := abi_decode_uint8(add(headStart, 32))\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n value2 := abi_decode_array_uint8_dyn(add(headStart, offset_1), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_array_uint8_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_struct_Offer(value, pos) -> end\n {\n let memberValue0 := mload(value)\n mstore(pos, 0xa0)\n let tail := abi_encode_string(memberValue0, add(pos, 0xa0))\n mstore(add(pos, 0x20), and(mload(add(value, 0x20)), 0xff))\n let memberValue0_1 := mload(add(value, 0x40))\n mstore(add(pos, 0x40), sub(tail, pos))\n let tail_1 := abi_encode_array_uint8_dyn(memberValue0_1, tail)\n mstore(add(pos, 0x60), and(mload(add(value, 0x60)), sub(shl(160, 1), 1)))\n mstore(add(pos, 0x80), mload(add(value, 0x80)))\n end := tail_1\n }\n function abi_encode_tuple_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let tail_2 := add(add(headStart, shl(5, length)), 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n tail_2 := abi_encode_struct_Offer(mload(srcPtr), tail_2)\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint8_t_address_t_uint256__to_t_string_memory_ptr_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n tail := abi_encode_string(value0, add(headStart, 128))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_struct$_Offer_$5997_memory_ptr__to_t_struct$_Offer_$5997_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_Offer(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_uint8t_addresst_uint8(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint8(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n value3 := abi_decode_uint8(add(headStart, 96))\n }\n function abi_encode_tuple_t_contract$_IGammaCardsContract_$5952__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_address_t_uint8_t_address_t_uint8__to_t_address_t_uint8_t_address_t_uint8__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, 0xff))\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n end := ret\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function copy_byte_array_to_storage_from_t_string_storage_to_t_string_storage(slot, src)\n {\n if eq(slot, src) { leave }\n let newLen := extract_byte_array_length(sload(src))\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let src_1 := array_dataslot_string_storage(src)\n let dstPtr := array_dataslot_string_storage(slot)\n let i := srcOffset\n for { } lt(i, loopEnd) { i := add(i, 0x20) }\n {\n sstore(dstPtr, sload(add(src_1, srcOffset)))\n let _1 := 1\n dstPtr := add(dstPtr, _1)\n srcOffset := add(srcOffset, _1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := sload(add(src_1, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := sload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__to_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_array_uint8_dyn(value2, add(headStart, 96))\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":1520},{"length":20,"start":3288}]}},"object":"608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x227 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7594A6ED GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xCE7483D5 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xE2B36596 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE2B36596 EQ PUSH2 0x4F7 JUMPI DUP1 PUSH4 0xE359A0A1 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xE5E5F732 EQ PUSH2 0x51D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xFC9E80FC EQ PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCE7483D5 EQ PUSH2 0x486 JUMPI DUP1 PUSH4 0xCF86F8E5 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xD250F03A EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xD827A8F4 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xE02F9723 EQ PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90222AA1 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x90222AA1 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x9618B333 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x9F915069 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0xBA79B77B EQ PUSH2 0x46B JUMPI DUP1 PUSH4 0xC08029E7 EQ PUSH2 0x473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7594A6ED EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x8400A189 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x8A72EA6A EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 GT PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x5A919AEB GT PUSH2 0x182 JUMPI DUP1 PUSH4 0x5A919AEB EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x5BBFBFD6 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x619980DC EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x3EE992EE EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x58E57EBB EQ PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EDB5FCF GT PUSH2 0x1FA JUMPI DUP1 PUSH4 0x2EDB5FCF EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x322FBA27 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x3808DFE7 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3A027073 EQ PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCDB3117 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x17A1FED9 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x29D3F60B EQ PUSH2 0x27A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23F PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x556 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x59B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E82 JUMP JUMPDEST PUSH2 0x641 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x5 SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x683 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x743 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x30C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x332 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F6E JUMP JUMPDEST PUSH2 0x96F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x980 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x35A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x36D CALLDATASIZE PUSH1 0x4 PUSH2 0x3144 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x23F PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0xC02 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x4 SLOAD GT PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xC83 JUMP JUMPDEST PUSH2 0x265 PUSH2 0xCFA JUMP JUMPDEST PUSH2 0x23F PUSH2 0x3C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x33F PUSH2 0x3E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0xD0E JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3161 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xF8A JUMP JUMPDEST PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x114D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x319C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x265 PUSH2 0x481 CALLDATASIZE PUSH1 0x4 PUSH2 0x31AF JUMP JUMPDEST PUSH2 0x135D JUMP JUMPDEST PUSH2 0x23F PUSH2 0x494 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x418 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x23F PUSH2 0x4D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x4F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1681 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x3203 JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x518 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x18BF JUMP JUMPDEST PUSH2 0x265 PUSH2 0x52B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1A4B JUMP JUMPDEST PUSH2 0x265 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1A80 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x63A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67D DUP5 DUP5 DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6AC JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP6 AND SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x725 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST DUP1 PUSH2 0x72F DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6AF JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x773 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x8B3 JUMPI PUSH1 0x9 PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x797 JUMPI PUSH2 0x797 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x7CD SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x7E6 JUMPI PUSH2 0x7E6 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xA SWAP3 SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x830 JUMPI PUSH2 0x830 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x860 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x879 JUMPI PUSH2 0x879 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE DUP1 PUSH2 0x8AB DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x776 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xD DUP2 SWAP1 SSTORE PUSH2 0x8C7 SWAP1 PUSH1 0x8 SWAP1 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x47E81EFC038E27BB296DEC5D44262943D2C2BBEC28F461787A9CC53885694CB0 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x922 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x934 CALLER DUP5 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x954 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x967 CALLER DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x97B DUP4 CALLER DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xB0B JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x9D7 SWAP1 PUSH2 0x327D 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 0xA03 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA50 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA25 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA50 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA33 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xAD0 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xAA1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x9A4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB6B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xBEF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC3E DUP5 DUP5 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC67 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7A DUP6 DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x60E JUMP JUMPDEST PUSH2 0xD02 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xD0C PUSH1 0x0 PUSH2 0x23E5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE PUSH1 0x60 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0xD73 SWAP1 PUSH2 0x327D 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 0xD9F SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xE3D JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xD40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xEC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0xEE5 SWAP1 PUSH2 0x327D 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 0xF11 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0xFF SWAP1 SWAP2 AND SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP4 SWAP1 SWAP3 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1019 SWAP1 PUSH2 0x327D 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 0x1045 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1092 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1067 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1092 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1075 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1112 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x10E3 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xFE6 JUMP JUMPDEST PUSH2 0x1155 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x117C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1354 JUMPI DUP5 PUSH1 0xFF AND DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x11C0 JUMPI PUSH2 0x11C0 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x1342 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x11EE JUMPI PUSH2 0x11EE PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1217 SWAP1 PUSH2 0x327D 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 0x1243 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1265 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1290 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1310 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x12E1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 POP PUSH2 0x73D SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x134C DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11A2 JUMP JUMPDEST POP PUSH2 0xC7A PUSH2 0x2435 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1369 DUP4 DUP4 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DED2293 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1447 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x13E1 SWAP1 DUP8 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1400 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1424 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1177B295 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14BC JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x149B JUMPI DUP7 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1470 JUMPI PUSH2 0x1470 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1489 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x149B JUMP JUMPDEST DUP1 PUSH2 0x1493 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x144B JUMP JUMPDEST POP DUP1 PUSH2 0x14BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEFA237 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x14CF DUP6 DUP6 DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH2 0x2241 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x14EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B440351 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x568B427D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF DUP1 DUP11 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP3 AND PUSH1 0x44 DUP5 ADD MSTORE DUP8 AND PUSH1 0x64 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xAD1684FA SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1563 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x8BF670C8 SWAP2 POP PUSH2 0x1599 SWAP1 DUP11 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15DC SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x165A JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1615 SWAP1 DUP9 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFC9716B9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x16B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH2 0x16BE PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x18B6 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16DC SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1705 JUMPI PUSH2 0x1705 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1726 SWAP2 SWAP1 PUSH2 0x332B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH2 0x18A4 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1754 JUMPI PUSH2 0x1754 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x177D SWAP1 PUSH2 0x327D 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 0x17A9 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x17F6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17CB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x17F6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17D9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1876 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x1847 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x18AE DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x16C1 JUMP JUMPDEST POP PUSH2 0x73D PUSH2 0x2435 JUMP JUMPDEST PUSH2 0x18C7 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 LT PUSH2 0x18E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5129CAB1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18FC JUMPI PUSH2 0x18FC PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1925 SWAP1 PUSH2 0x327D 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 0x1951 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x199E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x199E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1A1E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x19EF JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A7B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x1A88 PUSH2 0x23B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1AB7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AC0 DUP2 PUSH2 0x23E5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1AF1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA71ED6C7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B18 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5A JUMPI PUSH2 0x1B5A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x1B76 SWAP1 PUSH2 0x327D 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 0x1BA2 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1BEF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1BC4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1BEF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1BD2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1C0A JUMPI PUSH2 0x1C0A PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SWAP1 POP PUSH2 0x1C2E DUP8 DUP3 DUP5 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x1C37 DUP3 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1C5B SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C75 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP DUP1 DUP1 PUSH2 0x1C89 SWAP1 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1B3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1CB3 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x65419C67E554142D50C59ABD004485123CA498611A223F842E75DD96225BA4C8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D37 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCFDF3505 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD LT PUSH2 0x1D71 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xD SLOAD LT PUSH2 0x1D95 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1DC8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E0B SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1E2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x142D47A1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1E8E JUMPI DUP4 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1E53 JUMPI PUSH2 0x1E53 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1E7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1E86 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E2E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1E9B DUP6 DUP6 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1ECA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEEE5C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1EF3 SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1F1B SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1F35 SWAP2 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE TIMESTAMP PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH1 0x5 SWAP1 SWAP2 MUL PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 ADD SWAP1 DUP2 SWAP1 PUSH2 0x1FB1 SWAP1 DUP3 PUSH2 0x3415 JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD PUSH2 0x1FE4 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2B42 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x80 SWAP1 SWAP3 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x2034 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2044 JUMPI PUSH2 0x2044 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x2071 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x20A0 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x20F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2102 JUMPI PUSH2 0x2102 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x212F DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x215E SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x21FE JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C5568EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7155A3AC SWAP1 PUSH2 0x21CB SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0xED750964F1F81F105E56DFD1121427E0898E7BC23D6C10E92D851A2D35E0CFC5 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2231 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x226A JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2275 DUP6 DUP6 DUP6 PUSH2 0x29AF JUMP JUMPDEST PUSH2 0x2280 DUP6 DUP6 DUP6 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x2289 DUP4 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22B3 SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22DB SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x22F5 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x7 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x230A JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x2374 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xAAF17C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x155E2F92 SWAP1 PUSH2 0x2341 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x235B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x236F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0x7911E34642EAE38762395A3DD0FA3308D0F8908B92FE36C41543D635AB7CB8F5 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x23A5 SWAP3 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD0C JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1AAE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x243D PUSH2 0x2B07 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP3 ADD DUP2 DUP2 MSTORE DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP3 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 MSTORE SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x2550 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x24CC SWAP1 PUSH2 0x327D 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 0x24F8 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2545 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x251A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2545 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2528 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP5 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2720 JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2571 JUMPI PUSH2 0x2571 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x25C6 JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x25AC JUMPI PUSH2 0x25AC PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x57AEB863 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH2 0x25F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26B4 JUMPI DUP2 SLOAD DUP3 SWAP1 PUSH2 0x2609 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2619 JUMPI PUSH2 0x2619 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2639 JUMPI PUSH2 0x2639 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x2654 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x2683 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE JUMPDEST DUP2 DUP1 SLOAD DUP1 PUSH2 0x26C4 JUMPI PUSH2 0x26C4 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x26E4 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x26FE PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH2 0x63A JUMP JUMPDEST DUP1 PUSH2 0x272A DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2492 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x29A8 JUMPI PUSH1 0x8 SLOAD DUP2 LT DUP1 ISZERO PUSH2 0x2803 JUMPI POP PUSH2 0x2803 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2763 JUMPI PUSH2 0x2763 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x277F SWAP1 PUSH2 0x327D 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 0x27AB SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP6 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2996 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x281B JUMPI PUSH2 0x281B PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x2835 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x284F PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD PUSH2 0x287A SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x288A JUMPI PUSH2 0x288A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28AB JUMPI PUSH2 0x28AB PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x28C6 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x28F5 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x2936 JUMPI PUSH2 0x2936 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x2956 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2970 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x29A8 JUMP JUMPDEST DUP1 PUSH2 0x29A0 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2737 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x29E7 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST ISZERO PUSH2 0x2A7B JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A08 JUMPI PUSH2 0x2A08 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x2A5D JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A43 JUMPI PUSH2 0x2A43 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB7F2D833 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A85 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AA0 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AC7 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x5 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2C95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x2BA9 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2B6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BD6 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2BA9 JUMP JUMPDEST POP JUMPDEST POP PUSH2 0x2BE4 SWAP3 SWAP2 POP PUSH2 0x2CE5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2C1B JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x2C42 SWAP1 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x2C52 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 PUSH2 0x2CA9 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2CC3 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0x5 ADD PUSH2 0x2C95 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2CE6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D72 JUMPI PUSH2 0x2D72 PUSH2 0x2D33 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DA5 JUMPI PUSH2 0x2DA5 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x2DB8 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D49 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2DCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2E28 JUMPI PUSH2 0x2E28 PUSH2 0x2D33 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x2E37 DUP3 DUP3 ADD PUSH2 0x2D49 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x2E77 JUMPI PUSH2 0x2E68 DUP4 PUSH2 0x2DEA JUMP JUMPDEST DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x2E57 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EBC DUP9 DUP4 DUP10 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP6 POP PUSH2 0x2ECA PUSH1 0x20 DUP9 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP5 POP PUSH2 0x2ED8 PUSH1 0x40 DUP9 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EFB DUP8 DUP3 DUP9 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F23 DUP4 PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x2F31 PUSH1 0x20 DUP5 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FA7 DUP8 DUP4 DUP9 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP5 POP PUSH2 0x2FB5 PUSH1 0x20 DUP8 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2FFD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2FE5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x301E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2FE2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3065 JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3046 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0xA0 DUP5 MSTORE PUSH2 0x3085 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3006 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x30AB DUP3 DUP3 PUSH2 0x3032 JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP8 ADD MSTORE PUSH1 0x80 SWAP5 DUP6 ADD MLOAD SWAP5 SWAP1 SWAP6 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP4 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3129 JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x3117 DUP6 DUP4 MLOAD PUSH2 0x3070 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x30FB JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3174 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3006 JUMP JUMPDEST PUSH1 0xFF SWAP6 SWAP1 SWAP6 AND PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2D2C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3070 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31CE DUP6 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x31DC PUSH1 0x20 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP3 POP PUSH2 0x31EA PUSH1 0x40 DUP7 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x31F8 PUSH1 0x60 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x322C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x967 DUP5 DUP3 DUP6 ADD PUSH2 0x2D7A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x3276 JUMPI PUSH2 0x3276 PUSH2 0x324E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3291 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x32B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x3306 JUMPI PUSH2 0x3306 PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3321 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x3339 DUP2 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x3351 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3366 JUMPI PUSH2 0x3395 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x3395 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x338C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x3373 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x33EE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x340D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x33FA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x342F JUMPI PUSH2 0x342F PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3443 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST DUP5 PUSH2 0x33C7 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3478 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3460 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x340D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x34A7 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3488 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x34C5 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x34E0 JUMPI POP POP JUMP JUMPDEST PUSH2 0x34EA DUP3 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3502 JUMPI PUSH2 0x3502 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3510 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3544 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x352C JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x63A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x357E JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x355E JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x34C5 JUMPI SWAP4 ADD SLOAD PUSH1 0x0 NOT PUSH1 0xF8 PUSH1 0x3 DUP8 SWAP1 SHL AND SHR NOT AND SWAP1 SWAP3 SSTORE POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xC7A SWAP1 DUP4 ADD DUP5 PUSH2 0x3032 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x49 LOG3 PUSH1 0xA 0x28 0x49 LOG0 0x4D SWAP12 0xCE SWAP11 NOT SWAP9 SAR EXTCODEHASH PUSH8 0x80407816218C7190 0xE5 SUB 0xAF GAS 0xDC 0xB5 0xD7 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"1095:12929:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:174;;;;;;:::i;:::-;;:::i;:::-;;;529:25:29;;;517:2;502:18;5550:174:22;;;;;;;;2717:114;;;;;;:::i;:::-;;:::i;:::-;;3874:234;;;;;;:::i;:::-;;:::i;7550:138::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7658:25:22;7614:4;7658:25;;;:19;:25;;;;;;7633:22;;:50;;7550:138;;;;3273:14:29;;3266:22;3248:41;;3236:2;3221:18;7550:138:22;3108:187:29;7812:310:22;;;;;;:::i;:::-;;:::i;5445:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5518:23:22;5499:4;5518:23;;;:10;:23;;;;;;;;;5445:101;9507:392;;;:::i;3237:147::-;;;;;;:::i;:::-;;:::i;9903:337::-;;;;;;:::i;:::-;;:::i;3668:202::-;;;;;;:::i;:::-;;:::i;6189:84::-;;;:::i;:::-;;;;;;;:::i;2835:271::-;;;;;;:::i;:::-;;:::i;3535:129::-;;;;;;:::i;:::-;;:::i;1854:33::-;;;;;;10244:361;;;;;;:::i;:::-;;:::i;7692:116::-;7785:18;;7766:16;;:37;7692:116;;2615:98;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;1734:54:22:-;;;;;;:::i;:::-;;;;;;;;;;;;;;6929:136;;;;;;:::i;:::-;;:::i;1601:21::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;1638:85:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;;-1:-1:-1;;;;;8001:32:29;;;7983:51;;7971:2;7956:18;1638:85:0;7837:203:29;5975:97:22;6051:16;;5975:97;;6758:167;;;;;;:::i;:::-;;:::i;7069:477::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6076:109::-;6158:22;;6076:109;;8126:1377;;;;;;:::i;:::-;;:::i;5728:143::-;;;;;;:::i;:::-;5829:37;;5807:7;5829:37;;;:25;:37;;;;;;;5728:143;5875:96;5948:18;;5875:96;;1185:45;;;;;-1:-1:-1;;;;;1185:45:22;;;1792:58;;;;;;:::i;:::-;;;;;;;;;;;;;;3388:143;;;;;;:::i;:::-;;:::i;6444:310::-;;;;;;:::i;:::-;;:::i;6277:163::-;;;;;;:::i;:::-;;:::i;3110:123::-;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;10609:740:22:-;;;;;;:::i;:::-;;:::i;5550:174::-;5619:7;-1:-1:-1;;;;;5638:18:22;;5634:47;;5665:16;;-1:-1:-1;;;5665:16:22;;;;;;;;;;;5634:47;-1:-1:-1;;;;;;5694:25:22;;;;;:19;:25;;;;;;;5550:174::o;2717:114::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;2788:38:::1;::::0;-1:-1:-1;;;2788:38:22;;:10:::1;:38;::::0;::::1;9476:25:29::0;-1:-1:-1;;;;;9537:32:29;;9517:18;;;9510:60;2788:22:22::1;::::0;::::1;::::0;9449:18:29;;2788:38:22::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2717:114:::0;:::o;3874:234::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;4037:66:::1;4058:7;4067:4;4073:10;4085:17;4037:20;:66::i;:::-;3874:234:::0;;;;:::o;7812:310::-;7883:4;-1:-1:-1;;;;;7899:18:22;;7895:47;;7926:16;;-1:-1:-1;;;7926:16:22;;;;;;;;;;;7895:47;7953:9;7948:152;-1:-1:-1;;;;;7972:25:22;;;;;;:19;:25;;;;;;7968:29;;7948:152;;;-1:-1:-1;;;;;8016:18:22;;;;;;:12;:18;;;;;:21;;:46;;;;:18;8035:1;;8016:21;;;;;;:::i;:::-;;;;;;;;;:32;:21;;;;;:32;;;;:46;8012:82;;8081:4;8074:11;;;;;8012:82;7999:3;;;;:::i;:::-;;;;7948:152;;;;8112:5;8105:12;;7812:310;;;;;:::o;9507:392::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;9565:9:::1;9560:258;9584:6;:13:::0;9580:17;::::1;9560:258;;;9619:12;:29;9632:6;9639:1;9632:9;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:15:::1;:9;::::0;;::::1;;:15:::0;;;::::1;::::0;-1:-1:-1;;;;;9632:15:22::1;9619:29:::0;;;::::1;::::0;;;;;;;;9612:36:::1;::::0;::::1;:::i;:::-;9695:1;9656:19;:36;9676:6;9683:1;9676:9;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:15:::1;:9;::::0;;::::1;;:15:::0;;;::::1;::::0;-1:-1:-1;;;;;9676:15:22::1;9656:36:::0;;;::::1;::::0;;;;;;;;:40;;;;9731:6:::1;:9:::0;;9712:18:::1;::::0;9676:9;9731:6;9738:1;;9731:9;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:20:::1;:9;::::0;;::::1;;:20:::0;;;::::1;::::0;::::1;;9712:40:::0;;;::::1;::::0;;;;;;;;9705:47:::1;::::0;::::1;:::i;:::-;9810:1;9760:25;:47;9786:6;9793:1;9786:9;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:20:::1;:9;::::0;;::::1;;:20:::0;;;::::1;::::0;::::1;;9760:47:::0;;;::::1;::::0;;;;;;;;:51;9599:3;::::1;::::0;::::1;:::i;:::-;;;;9560:258;;;-1:-1:-1::0;9844:1:22::1;9823:18;:22:::0;;;9851:13:::1;::::0;9858:6:::1;::::0;9851:13:::1;:::i;:::-;9876:18;::::0;::::1;::::0;;;::::1;9507:392::o:0;3237:147::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3331:22:::1;:48:::0;3237:147::o;9903:337::-;9972:4;9984:18;10005:51;10033:10;10045;10005:27;:51::i;:::-;10066:11;;;;9984:72;;-1:-1:-1;;;;;;10066:25:22;10081:10;10066:25;10062:58;;-1:-1:-1;10108:5:22;;9903:337;-1:-1:-1;;9903:337:22:o;10062:58::-;10125:11;10139:77;10171:10;10183;10195:5;:13;;;10210:5;10139:31;:77::i;:::-;10125:91;9903:337;-1:-1:-1;;;;9903:337:22:o;3668:202::-;3793:72;3814:7;3823:10;3835;3847:17;3793:20;:72::i;:::-;3668:202;;;:::o;6189:84::-;6233:14;6262:6;6255:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6255:13:22;;;-1:-1:-1;;6255:13:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6255:13:22;;;-1:-1:-1;;6255:13:22;;;;-1:-1:-1;;;;;6255:13:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:84;:::o;2835:271::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;-1:-1:-1;;;;;2923:33:22;::::1;2919:62;;2965:16;;-1:-1:-1::0;;;2965:16:22::1;;;;;;;;;;;2919:62;2987:18;:61:::0;;-1:-1:-1;;;;;;2987:61:22::1;-1:-1:-1::0;;;;;2987:61:22;::::1;::::0;;::::1;::::0;;;3059:42:::1;::::0;7983:51:29;;;3059:42:22::1;::::0;7971:2:29;7956:18;3059:42:22::1;;;;;;;2835:271:::0;:::o;3535:129::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3620:30:::1;:39:::0;;-1:-1:-1;;3620:39:22::1;::::0;::::1;;::::0;;;::::1;::::0;;3535:129::o;10244:361::-;2334:10;10355:4;2316:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;10367:18:::1;10388:45;10416:4;10422:10;10388:27;:45::i;:::-;10367:66;;10458:4;-1:-1:-1::0;;;;;10443:19:22::1;:5;:11;;;-1:-1:-1::0;;;;;10443:19:22::1;;10439:52;;10479:5;10472:12;;;;;10439:52;10496:11;10510:71;10542:4;10548:10;10560:5;:13;;;10575:5;10510:31;:71::i;:::-;10496:85:::0;10244:361;-1:-1:-1;;;;;10244:361:22:o;2615:98::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;2678:30:::1;::::0;-1:-1:-1;;;2678:30:22;;:10:::1;:30;::::0;::::1;9476:25:29::0;-1:-1:-1;;;;;9537:32:29;;9517:18;;;9510:60;2678:19:22::1;::::0;::::1;::::0;9449:18:29;;2678:30:22::1;9271:305:29::0;2293:101:0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;6929:136:22:-;7030:30;;;;;;;:18;:30;;;;;;;;7023:37;;;;;;;;;;;;;;;;;7001:14;;7023:37;;7030:30;;7023:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7023:37:22;;;-1:-1:-1;;7023:37:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7023:37:22;;;-1:-1:-1;;7023:37:22;;;;-1:-1:-1;;;;;7023:37:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6929:136;;;:::o;1601:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1601:21:22;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1601:21:22;;;;-1:-1:-1;1601:21:22;:::o;6758:167::-;6820:14;-1:-1:-1;;;;;6846:18:22;;6842:47;;6873:16;;-1:-1:-1;;;6873:16:22;;;;;;;;;;;6842:47;-1:-1:-1;;;;;6902:18:22;;;;;;:12;:18;;;;;;;;6895:25;;;;;;;;;;;;;;;;;;;6902:18;;6895:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6895:25:22;;;-1:-1:-1;;6895:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6895:25:22;;;-1:-1:-1;;6895:25:22;;;;-1:-1:-1;;;;;6895:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7069:477;7171:12;;:::i;:::-;-1:-1:-1;;;;;7195:18:22;;7191:47;;7222:16;;-1:-1:-1;;;7222:16:22;;;;;;;;;;;7191:47;-1:-1:-1;;;;;7274:18:22;;7245:26;7274:18;;;:12;:18;;;;;;;;7333:19;:25;;;;;;7274:18;;7364:152;7388:24;7384:1;:28;7364:152;;;7459:10;7431:38;;:10;7442:1;7431:13;;;;;;;;:::i;:::-;;;;;;;;;:24;:13;;;;;:24;;;;:38;7427:83;;7488:10;7499:1;7488:13;;;;;;;;:::i;:::-;;;;;;;;;;;7481:20;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7481:20:22;;;-1:-1:-1;;7481:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7481:20:22;;;-1:-1:-1;;7481:20:22;;;;-1:-1:-1;;;;;7481:20:22;;;;;;;;;;;;;;;;-1:-1:-1;7481:20:22;;-1:-1:-1;;;7481:20:22;7427:83;7414:3;;;;:::i;:::-;;;;7364:152;;;;7528:13;:11;:13::i;8126:1377::-;8273:18;8294:57;8322:11;8335:15;8294:27;:57::i;:::-;8273:78;;8376:11;-1:-1:-1;;;;;8361:26:22;:5;:11;;;-1:-1:-1;;;;;8361:26:22;;8357:59;;8396:20;;-1:-1:-1;;;8396:20:22;;;;;;;;;;;8357:59;8458:23;;;;8491:24;;8423:32;8491:29;8487:548;;8584:18;;:64;;-1:-1:-1;;;8584:64:22;;-1:-1:-1;;;;;8584:18:22;;;;:33;;:64;;8618:11;;8631:16;;8584:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8580:105;;;8665:20;;-1:-1:-1;;;8665:20:22;;;;;;;;;;;8580:105;8487:548;;;8764:20;8805:7;8800:179;8822:17;:24;8818:1;:28;;;8800:179;;;8891:16;8867:40;;:17;8885:1;8867:20;;;;;;;;;;:::i;:::-;;;;;;;:40;;;8863:108;;8939:4;8921:22;;8955:5;;8863:108;8848:3;;;;:::i;:::-;;;;8800:179;;;;8991:15;8986:42;;9015:13;;-1:-1:-1;;;9015:13:22;;;;;;;;;;;8986:42;8698:337;8487:548;9041:17;9061:112;9100:11;9119:15;9142:5;:13;;;9163:4;9061:31;:112::i;:::-;9041:132;;9184:12;9179:43;;9205:17;;-1:-1:-1;;;9205:17:22;;;;;;;;;;;9179:43;9229:18;;:91;;-1:-1:-1;;;9229:91:22;;-1:-1:-1;;;;;11365:15:29;;;9229:91:22;;;11347:34:29;11429:4;11417:17;;;11397:18;;;11390:45;11471:15;;;11451:18;;;11444:43;11523:17;;11503:18;;;11496:45;9229:18:22;;;;:37;;11281:19:29;;9229:91:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9338:18:22;;:56;;-1:-1:-1;;;9338:56:22;;-1:-1:-1;;;;;9338:18:22;;;;-1:-1:-1;9338:33:22;;-1:-1:-1;9338:56:22;;9372:4;;9378:15;;9338:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9337:57;:132;;;-1:-1:-1;9405:18:22;;:64;;-1:-1:-1;;;9405:64:22;;-1:-1:-1;;;;;9405:18:22;;;;:33;;:64;;9439:11;;9452:16;;9405:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9404:65;9337:132;9326:172;;;9483:15;;-1:-1:-1;;;9483:15:22;;;;;;;;;;;9326:172;8267:1236;;;8126:1377;;;;:::o;3388:143::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3480:21:::1;:46:::0;3388:143::o;6444:310::-;6517:12;;:::i;:::-;6542:9;6537:187;6561:6;:13;6557:17;;6537:187;;;6670:7;6653:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;6643:36;;;;;;6620:6;6627:1;6620:9;;;;;;;;:::i;:::-;;;;;;;;;;;:17;;6603:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;6593:46;;;;;;:86;6589:129;;6699:6;6706:1;6699:9;;;;;;;;:::i;:::-;;;;;;;;;;;6691:18;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6691:18:22;;;-1:-1:-1;;6691:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6691:18:22;;;-1:-1:-1;;6691:18:22;;;;-1:-1:-1;;;;;6691:18:22;;;;;;;;;;;;;;;;6444:310;-1:-1:-1;;;6444:310:22:o;6589:129::-;6576:3;;;;:::i;:::-;;;;6537:187;;;;6736:13;:11;:13::i;6277:163::-;6338:12;;:::i;:::-;6371:6;:13;6362:22;;6358:51;;6393:16;;-1:-1:-1;;;6393:16:22;;;;;;;;;;;6358:51;6422:6;6429:5;6422:13;;;;;;;;:::i;:::-;;;;;;;;;;;6415:20;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6415:20:22;;;-1:-1:-1;;6415:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6415:20:22;;;-1:-1:-1;;6415:20:22;;;;-1:-1:-1;;;;;6415:20:22;;;;;;;;;;;;;;;;6277:163;-1:-1:-1;;6277:163:22:o;3110:123::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3192:16:::1;:36:::0;3110:123::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;7983:51:29::0;7956:18;;2672:31:0::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;10609:740:22:-;2220:18;;10687:4;;-1:-1:-1;;;;;2220:18:22;2198:10;:41;2194:73;;2248:19;;-1:-1:-1;;;2248:19:22;;;;;;;;;;;2194:73;-1:-1:-1;;;;;10703:18:22;::::1;10699:47;;10730:16;;-1:-1:-1::0;;;10730:16:22::1;;;;;;;;;;;10699:47;-1:-1:-1::0;;;;;10782:18:22;::::1;10753:26;10782:18:::0;;;:12:::1;:18;::::0;;;;;;;10841:19:::1;:25:::0;;;;;;10782:18;;10873:353:::1;10897:24;10893:1;:28;10873:353;;;10936:21;10960:10;10971:1;10960:13;;;;;;;;:::i;:::-;;;;;;;;;;;:21;;10936:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10989:16;11008:10;11019:1;11008:13;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:24:::1;:13;::::0;;::::1;;:24;::::0;::::1;;::::0;-1:-1:-1;11040:60:22::1;11074:4:::0;11008:24;11092:7;11040:33:::1;:60::i;:::-;11108:30;11130:7;11108:21;:30::i;:::-;-1:-1:-1::0;11146:37:22::1;::::0;::::1;;::::0;;;:25:::1;:37;::::0;;;;:42;;11187:1:::1;::::0;11146:37;:42:::1;::::0;11187:1;;11146:42:::1;:::i;:::-;;;;;;;;11218:1;11196:18;;:23;;;;;;;:::i;:::-;;;;;;;;10928:298;;10923:3;;;;;:::i;:::-;;;;10873:353;;;-1:-1:-1::0;;;;;;11239:18:22;::::1;;::::0;;;:12:::1;:18;::::0;;;;11232:25:::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;11263:25:22;::::1;11291:1;11263:25:::0;;;:19:::1;:25;::::0;;;;;;;:29;;;;11304:23;;7983:51:29;;;11304:23:22::1;::::0;7956:18:29;11304:23:22::1;;;;;;;11340:4;11333:11;;;;2273:1;10609:740:::0;;;:::o;4112:1329::-;4277:18;;-1:-1:-1;;;;;4277:18:22;4265:80;;4319:26;;-1:-1:-1;;;4319:26:22;;;;;;;;;;;4265:80;4384:22;;-1:-1:-1;;;;;4355:25:22;;;;;;:19;:25;;;;;;:51;4351:86;;4415:22;;-1:-1:-1;;;4415:22:22;;;;;;;;;;;4351:86;4469:16;;4447:18;;:38;4443:73;;4494:22;;-1:-1:-1;;;4494:22:22;;;;;;;;;;;4443:73;4542:18;;:51;;-1:-1:-1;;;4542:51:22;;4523:16;;-1:-1:-1;;;;;4542:18:22;;:33;;:51;;4576:4;;4582:10;;4542:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4523:70;;4604:11;4599:46;;4624:21;;-1:-1:-1;;;4624:21:22;;;;;;;;;;;4599:46;4657:7;4652:134;4674:17;:24;4670:1;:28;;;4652:134;;;4741:10;4717:34;;:17;4735:1;4717:20;;;;;;;;;;:::i;:::-;;;;;;;:34;;;4713:66;;4760:19;;-1:-1:-1;;;4760:19:22;;;;;;;;;;;4713:66;4700:3;;;;:::i;:::-;;;;4652:134;;;;4792:26;4821:45;4849:4;4855:10;4821:27;:45::i;:::-;4876:19;;;;4792:74;;-1:-1:-1;;;;;;4876:33:22;;4872:66;;4918:20;;-1:-1:-1;;;4918:20:22;;;;;;;;;;;4872:66;-1:-1:-1;;;;;4945:25:22;;;;;;:19;:25;;;;;:30;;4974:1;;4945:25;:30;;4974:1;;4945:30;:::i;:::-;;;;-1:-1:-1;;4981:37:22;;;;;;;:25;:37;;;;;:42;;5022:1;;4981:37;:42;;5022:1;;4981:42;:::i;:::-;;;;;;;;5051:1;5029:18;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;5071:68:22;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5071:68:22;;;;;;5123:15;5071:68;;;;5059:6;:81;;;;;;;-1:-1:-1;5059:81:22;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5059:81:22;;;;;;;;;;-1:-1:-1;;5059:81:22;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5059:81:22;;;;;;;;;-1:-1:-1;;;;;;5059:81:22;-1:-1:-1;;;;;5059:81:22;;;;;;;;;;;;;;;;5146:18;;-1:-1:-1;5146:18:22;;;:12;:18;;;;;5170:6;5177:13;;:17;;-1:-1:-1;;5177:17:22;:::i;:::-;5170:25;;;;;;;;:::i;:::-;;;;;;;;;5146:50;;;;;;;;;;;;5170:25;;;;;;;;5146:50;;;;5170:25;5146:50;;:::i;:::-;-1:-1:-1;5146:50:22;;;;;;;;;;-1:-1:-1;;5146:50:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5146:50:22;;;;;;;;;;-1:-1:-1;;;;;;5146:50:22;-1:-1:-1;;;;;5146:50:22;;;;;;;;;;;;;;;;;5202:30;;;5146:50;5202:30;;;:18;:30;;;;;5238:6;5245:13;;:17;;5146:50;;5245:17;:::i;:::-;5238:25;;;;;;;;:::i;:::-;;;;;;;;;5202:62;;;;;;;;;;;;5238:25;;;;;;;;5202:62;;;;5238:25;5202:62;;:::i;:::-;-1:-1:-1;5202:62:22;;;;;;;;;;-1:-1:-1;;5202:62:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5202:62:22;;;;;;;;;;-1:-1:-1;;;;;;5202:62:22;-1:-1:-1;;;;;5202:62:22;;;;;;;;;;;;;;;;;5275:30;;;;5271:105;;;5315:18;;:54;;-1:-1:-1;;;5315:54:22;;-1:-1:-1;;;;;5315:18:22;;;;:36;;:54;;5352:4;;5358:10;;5315:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:105;5387:49;5400:4;5406:10;5418:17;5387:49;;;;;;;;:::i;:::-;;;;;;;;4259:1182;;4112:1329;;;;:::o;11353:704::-;11517:4;-1:-1:-1;;;;;11533:18:22;;11529:47;;11560:16;;-1:-1:-1;;;11560:16:22;;;;;;;;;;;11529:47;11583:54;11611:4;11617:10;11629:7;11583:27;:54::i;:::-;11643:60;11677:4;11683:10;11695:7;11643:33;:60::i;:::-;11709:30;11731:7;11709:21;:30::i;:::-;-1:-1:-1;;;;;;11745:25:22;;;;;;:19;:25;;;;;:30;;11774:1;;11745:25;:30;;11774:1;;11745:30;:::i;:::-;;;;-1:-1:-1;;11781:37:22;;;;;;;:25;:37;;;;;:42;;11822:1;;11781:37;:42;;11822:1;;11781:42;:::i;:::-;;;;;;;;11851:1;11829:18;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11863:30:22;;;;:59;;;;;11898:24;11897:25;11863:59;11859:135;;;11932:18;;:55;;-1:-1:-1;;;11932:55:22;;-1:-1:-1;;;;;11932:18:22;;;;:37;;:55;;11970:4;;11976:10;;11932:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11859:135;12005:30;12018:4;12024:10;12005:30;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;12048:4:22;11353:704;;;;;;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:12;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:12;1901:40:0;;;7983:51:29;7956:18;;1901:40:0;7837:203:29;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;13690:121:22:-;13736:12;;:::i;:::-;-1:-1:-1;13763:43:22;;;;;;;;-1:-1:-1;13763:43:22;;;;;;;;;;;;;;;13776:14;;;;;;;;;;13763:43;;;;;;;;;;;;;-1:-1:-1;13763:43:22;;;;;;;13690:121::o;12661:620::-;12818:30;;;12789:26;12818:30;;;:18;:30;;;;;;12855:422;12879:17;;12875:21;;12855:422;;;12915:44;12928:10;12939:1;12928:13;;;;;;;;:::i;:::-;;;;;;;;;;;:21;;12915:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12951:7;12915:12;:44::i;:::-;12911:360;;;12998:4;-1:-1:-1;;;;;12975:27:22;:10;12986:1;12975:13;;;;;;;;:::i;:::-;;;;;;;;;:19;:13;;;;;:19;;-1:-1:-1;;;;;12975:19:22;:27;;;:69;;;13034:10;13006:38;;:10;13017:1;13006:13;;;;;;;;:::i;:::-;;;;;;;;;:24;:13;;;;;:24;;;;:38;;12975:69;12971:137;;;13063:45;;-1:-1:-1;;;13063:45:22;;;;;;;;;;;12971:137;13127:17;;:21;;13147:1;;13127:21;:::i;:::-;13123:1;:25;13119:103;;;13189:17;;13178:10;;13189:21;;13209:1;;13189:21;:::i;:::-;13178:33;;;;;;;;:::i;:::-;;;;;;;;;;;13162:10;13173:1;13162:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:49;;:13;:49;:::i;:::-;-1:-1:-1;13162:49:22;;;;;;;;;;-1:-1:-1;;13162:49:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13162:49:22;;;;;;;;;;-1:-1:-1;;;;;;13162:49:22;-1:-1:-1;;;;;13162:49:22;;;;;;;;;;;;;;;;;13119:103;13231:10;:16;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;13231:16:22;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13231:16:22;;;;;;;;;:::i;:::-;-1:-1:-1;13231:16:22;;;;;-1:-1:-1;;;;;;13231:16:22;;;;;;;;;;;13257:5;;12911:360;12898:3;;;;:::i;:::-;;;;12855:422;;13285:401;13356:4;;;13394:268;13418:6;:13;13414:17;;13394:268;;;13454:6;:13;13450:17;;:61;;;;;13471:40;13484:6;13491:1;13484:9;;;;;;;;:::i;:::-;;;;;;;;;;;:17;;13471:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13503:7;13471:12;:40::i;:::-;13446:210;;;13530:6;13537:1;13530:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;13523:16;13530:9;;13523:16;:::i;:::-;;;;;;-1:-1:-1;;13523:16:22;;;;;;;;;:::i;:::-;-1:-1:-1;13523:16:22;;;;;-1:-1:-1;;;;;;13523:16:22;;;;;;;;;13561:6;13568:13;;:17;;13523:16;;13568:17;:::i;:::-;13561:25;;;;;;;;:::i;:::-;;;;;;;;;;;13549:6;13556:1;13549:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:37;;:9;:37;:::i;:::-;-1:-1:-1;13549:37:22;;;;;;;;;;-1:-1:-1;;13549:37:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13549:37:22;;;;;;;;;;-1:-1:-1;;;;;;13549:37:22;-1:-1:-1;;;;;13549:37:22;;;;;;;;;;;;;;;;;13596:6;:12;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;13596:12:22;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13596:12:22;;;;;;;;;:::i;:::-;-1:-1:-1;13596:12:22;;;;;-1:-1:-1;;;;;;13596:12:22;;;;;;;;;;;;;-1:-1:-1;13642:5:22;;13446:210;13433:3;;;;:::i;:::-;;;;13394:268;;;-1:-1:-1;13674:7:22;13285:401;-1:-1:-1;;13285:401:22:o;12061:596::-;-1:-1:-1;;;;;12212:18:22;;12183:26;12212:18;;;:12;:18;;;;;;12236:417;12260:17;;12256:21;;12236:417;;;12296:44;12309:10;12320:1;12309:13;;;;;;;;:::i;12296:44::-;12292:355;;;12379:4;-1:-1:-1;;;;;12356:27:22;:10;12367:1;12356:13;;;;;;;;:::i;:::-;;;;;;;;;:19;:13;;;;;:19;;-1:-1:-1;;;;;12356:19:22;:27;;;:69;;;12415:10;12387:38;;:10;12398:1;12387:13;;;;;;;;:::i;:::-;;;;;;;;;:24;:13;;;;;:24;;;;:38;;12356:69;12352:131;;;12444:39;;-1:-1:-1;;;12444:39:22;;;;;;;;;;;12292:355;12279:3;;;;:::i;:::-;;;;12236:417;;13815:207;13920:4;14007:8;13990:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;13980:37;;;;;;13966:8;13949:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;13939:37;;;;;;:78;13932:85;;13815:207;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:173:29;82:20;;-1:-1:-1;;;;;131:31:29;;121:42;;111:70;;177:1;174;167:12;192:186;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:29:o;565:127::-;626:10;621:3;617:20;614:1;607:31;657:4;654:1;647:15;681:4;678:1;671:15;697:275;768:2;762:9;833:2;814:13;;-1:-1:-1;;810:27:29;798:40;;868:18;853:34;;889:22;;;850:62;847:88;;;915:18;;:::i;:::-;951:2;944:22;697:275;;-1:-1:-1;697:275:29:o;977:531::-;1020:5;1073:3;1066:4;1058:6;1054:17;1050:27;1040:55;;1091:1;1088;1081:12;1040:55;1127:6;1114:20;1153:18;1149:2;1146:26;1143:52;;;1175:18;;:::i;:::-;1219:55;1262:2;1243:13;;-1:-1:-1;;1239:27:29;1268:4;1235:38;1219:55;:::i;:::-;1299:2;1290:7;1283:19;1345:3;1338:4;1333:2;1325:6;1321:15;1317:26;1314:35;1311:55;;;1362:1;1359;1352:12;1311:55;1427:2;1420:4;1412:6;1408:17;1401:4;1392:7;1388:18;1375:55;1475:1;1450:16;;;1468:4;1446:27;1439:38;;;;1454:7;977:531;-1:-1:-1;;;977:531:29:o;1513:156::-;1579:20;;1639:4;1628:16;;1618:27;;1608:55;;1659:1;1656;1649:12;1674:714;1726:5;1779:3;1772:4;1764:6;1760:17;1756:27;1746:55;;1797:1;1794;1787:12;1746:55;1833:6;1820:20;1859:4;1882:18;1878:2;1875:26;1872:52;;;1904:18;;:::i;:::-;1950:2;1947:1;1943:10;1973:28;1997:2;1993;1989:11;1973:28;:::i;:::-;2035:15;;;2105;;;2101:24;;;2066:12;;;;2137:15;;;2134:35;;;2165:1;2162;2155:12;2134:35;2201:2;2193:6;2189:15;2178:26;;2213:146;2229:6;2224:3;2221:15;2213:146;;;2295:21;2312:3;2295:21;:::i;:::-;2283:34;;2246:12;;;;2337;;;;2213:146;;;2377:5;1674:714;-1:-1:-1;;;;;;;1674:714:29:o;2393:710::-;2510:6;2518;2526;2534;2587:3;2575:9;2566:7;2562:23;2558:33;2555:53;;;2604:1;2601;2594:12;2555:53;2644:9;2631:23;2673:18;2714:2;2706:6;2703:14;2700:34;;;2730:1;2727;2720:12;2700:34;2753:50;2795:7;2786:6;2775:9;2771:22;2753:50;:::i;:::-;2743:60;;2822:38;2856:2;2845:9;2841:18;2822:38;:::i;:::-;2812:48;;2879:36;2911:2;2900:9;2896:18;2879:36;:::i;:::-;2869:46;;2968:2;2957:9;2953:18;2940:32;2924:48;;2997:2;2987:8;2984:16;2981:36;;;3013:1;3010;3003:12;2981:36;;3036:61;3089:7;3078:8;3067:9;3063:24;3036:61;:::i;:::-;3026:71;;;2393:710;;;;;;;:::o;3300:256::-;3366:6;3374;3427:2;3415:9;3406:7;3402:23;3398:32;3395:52;;;3443:1;3440;3433:12;3395:52;3466:29;3485:9;3466:29;:::i;:::-;3456:39;;3514:36;3546:2;3535:9;3531:18;3514:36;:::i;:::-;3504:46;;3300:256;;;;;:::o;3561:180::-;3620:6;3673:2;3661:9;3652:7;3648:23;3644:32;3641:52;;;3689:1;3686;3679:12;3641:52;-1:-1:-1;3712:23:29;;3561:180;-1:-1:-1;3561:180:29:o;3746:182::-;3803:6;3856:2;3844:9;3835:7;3831:23;3827:32;3824:52;;;3872:1;3869;3862:12;3824:52;3895:27;3912:9;3895:27;:::i;3933:635::-;4041:6;4049;4057;4110:2;4098:9;4089:7;4085:23;4081:32;4078:52;;;4126:1;4123;4116:12;4078:52;4166:9;4153:23;4195:18;4236:2;4228:6;4225:14;4222:34;;;4252:1;4249;4242:12;4222:34;4275:50;4317:7;4308:6;4297:9;4293:22;4275:50;:::i;:::-;4265:60;;4344:36;4376:2;4365:9;4361:18;4344:36;:::i;:::-;4334:46;;4433:2;4422:9;4418:18;4405:32;4389:48;;4462:2;4452:8;4449:16;4446:36;;;4478:1;4475;4468:12;4446:36;;4501:61;4554:7;4543:8;4532:9;4528:24;4501:61;:::i;:::-;4491:71;;;3933:635;;;;;:::o;4573:250::-;4658:1;4668:113;4682:6;4679:1;4676:13;4668:113;;;4758:11;;;4752:18;4739:11;;;4732:39;4704:2;4697:10;4668:113;;;-1:-1:-1;;4815:1:29;4797:16;;4790:27;4573:250::o;4828:271::-;4870:3;4908:5;4902:12;4935:6;4930:3;4923:19;4951:76;5020:6;5013:4;5008:3;5004:14;4997:4;4990:5;4986:16;4951:76;:::i;:::-;5081:2;5060:15;-1:-1:-1;;5056:29:29;5047:39;;;;5088:4;5043:50;;4828:271;-1:-1:-1;;4828:271:29:o;5104:444::-;5155:3;5193:5;5187:12;5220:6;5215:3;5208:19;5246:4;5275:2;5270:3;5266:12;5259:19;;5312:2;5305:5;5301:14;5333:1;5343:180;5357:6;5354:1;5351:13;5343:180;;;5422:13;;5437:4;5418:24;5406:37;;5463:12;;;;5498:15;;;;5379:1;5372:9;5343:180;;;-1:-1:-1;5539:3:29;;5104:444;-1:-1:-1;;;;;5104:444:29:o;5553:597::-;5601:3;5645:5;5639:12;5672:4;5667:3;5660:17;5698:47;5739:4;5734:3;5730:14;5716:12;5698:47;:::i;:::-;5686:59;;5806:4;5798;5791:5;5787:16;5781:23;5777:34;5770:4;5765:3;5761:14;5754:58;5860:4;5853:5;5849:16;5843:23;5908:3;5902:4;5898:14;5891:4;5886:3;5882:14;5875:38;5936:48;5979:4;5963:14;5936:48;:::i;:::-;6037:4;6026:16;;;6020:23;-1:-1:-1;;;;;6016:49:29;6000:14;;;5993:73;6115:4;6104:16;;;6098:23;6082:14;;;;6075:47;;;;-1:-1:-1;5922:62:29;;5553:597;-1:-1:-1;;5553:597:29:o;6155:835::-;6343:4;6372:2;6412;6401:9;6397:18;6442:2;6431:9;6424:21;6465:6;6500;6494:13;6531:6;6523;6516:22;6569:2;6558:9;6554:18;6547:25;;6631:2;6621:6;6618:1;6614:14;6603:9;6599:30;6595:39;6581:53;;6669:2;6661:6;6657:15;6690:1;6700:261;6714:6;6711:1;6708:13;6700:261;;;6807:2;6803:7;6791:9;6783:6;6779:22;6775:36;6770:3;6763:49;6835:46;6874:6;6865;6859:13;6835:46;:::i;:::-;6825:56;-1:-1:-1;6939:12:29;;;;6904:15;;;;6736:1;6729:9;6700:261;;;-1:-1:-1;6978:6:29;;6155:835;-1:-1:-1;;;;;;;6155:835:29:o;6995:118::-;7081:5;7074:13;7067:21;7060:5;7057:32;7047:60;;7103:1;7100;7093:12;7118:241;7174:6;7227:2;7215:9;7206:7;7202:23;7198:32;7195:52;;;7243:1;7240;7233:12;7195:52;7282:9;7269:23;7301:28;7323:5;7301:28;:::i;7364:468::-;7593:3;7582:9;7575:22;7556:4;7614:46;7655:3;7644:9;7640:19;7632:6;7614:46;:::i;:::-;7708:4;7696:17;;;;7691:2;7676:18;;7669:45;-1:-1:-1;;;;;;7750:32:29;;;;7745:2;7730:18;;7723:60;7814:2;7799:18;;;7792:34;7606:54;7364:468;-1:-1:-1;7364:468:29:o;8045:252::-;8220:2;8209:9;8202:21;8183:4;8240:51;8287:2;8276:9;8272:18;8264:6;8240:51;:::i;8302:401::-;8384:6;8392;8400;8408;8461:3;8449:9;8440:7;8436:23;8432:33;8429:53;;;8478:1;8475;8468:12;8429:53;8501:29;8520:9;8501:29;:::i;:::-;8491:39;;8549:36;8581:2;8570:9;8566:18;8549:36;:::i;:::-;8539:46;;8604:38;8638:2;8627:9;8623:18;8604:38;:::i;:::-;8594:48;;8661:36;8693:2;8682:9;8678:18;8661:36;:::i;:::-;8651:46;;8302:401;;;;;;;:::o;8944:322::-;9013:6;9066:2;9054:9;9045:7;9041:23;9037:32;9034:52;;;9082:1;9079;9072:12;9034:52;9122:9;9109:23;9155:18;9147:6;9144:30;9141:50;;;9187:1;9184;9177:12;9141:50;9210;9252:7;9243:6;9232:9;9228:22;9210:50;:::i;9581:127::-;9642:10;9637:3;9633:20;9630:1;9623:31;9673:4;9670:1;9663:15;9697:4;9694:1;9687:15;9713:127;9774:10;9769:3;9765:20;9762:1;9755:31;9805:4;9802:1;9795:15;9829:4;9826:1;9819:15;9845:135;9884:3;9905:17;;;9902:43;;9925:18;;:::i;:::-;-1:-1:-1;9972:1:29;9961:13;;9845:135::o;9985:380::-;10064:1;10060:12;;;;10107;;;10128:61;;10182:4;10174:6;10170:17;10160:27;;10128:61;10235:2;10227:6;10224:14;10204:18;10201:38;10198:161;;10281:10;10276:3;10272:20;10269:1;10262:31;10316:4;10313:1;10306:15;10344:4;10341:1;10334:15;10198:161;;9985:380;;;:::o;10370:281::-;-1:-1:-1;;;;;10558:32:29;;;;10540:51;;10639:4;10627:17;10622:2;10607:18;;10600:45;10528:2;10513:18;;10370:281::o;10656:245::-;10723:6;10776:2;10764:9;10755:7;10751:23;10747:32;10744:52;;;10792:1;10789;10782:12;10744:52;10824:9;10818:16;10843:28;10865:5;10843:28;:::i;10906:175::-;10943:3;10987:4;10980:5;10976:16;11016:4;11007:7;11004:17;11001:43;;11024:18;;:::i;:::-;11073:1;11060:15;;10906:175;-1:-1:-1;;10906:175:29:o;11552:289::-;11683:3;11721:6;11715:13;11737:66;11796:6;11791:3;11784:4;11776:6;11772:17;11737:66;:::i;:::-;11819:16;;;;;11552:289;-1:-1:-1;;11552:289:29:o;11972:842::-;12100:3;12129:1;12162:6;12156:13;12192:36;12218:9;12192:36;:::i;:::-;12247:1;12264:18;;;12291:133;;;;12438:1;12433:356;;;;12257:532;;12291:133;-1:-1:-1;;12324:24:29;;12312:37;;12397:14;;12390:22;12378:35;;12369:45;;;-1:-1:-1;12291:133:29;;12433:356;12464:6;12461:1;12454:17;12494:4;12539:2;12536:1;12526:16;12564:1;12578:165;12592:6;12589:1;12586:13;12578:165;;;12670:14;;12657:11;;;12650:35;12713:16;;;;12607:10;;12578:165;;;12582:3;;;12772:6;12767:3;12763:16;12756:23;;12257:532;-1:-1:-1;12805:3:29;;11972:842;-1:-1:-1;;;;;;11972:842:29:o;12819:128::-;12886:9;;;12907:11;;;12904:37;;;12921:18;;:::i;12952:125::-;13017:9;;;13038:10;;;13035:36;;;13051:18;;:::i;13082:545::-;13184:2;13179:3;13176:11;13173:448;;;13220:1;13245:5;13241:2;13234:17;13290:4;13286:2;13276:19;13360:2;13348:10;13344:19;13341:1;13337:27;13331:4;13327:38;13396:4;13384:10;13381:20;13378:47;;;-1:-1:-1;13419:4:29;13378:47;13474:2;13469:3;13465:12;13462:1;13458:20;13452:4;13448:31;13438:41;;13529:82;13547:2;13540:5;13537:13;13529:82;;;13592:17;;;13573:1;13562:13;13529:82;;;13533:3;;;13082:545;;;:::o;13803:1352::-;13929:3;13923:10;13956:18;13948:6;13945:30;13942:56;;;13978:18;;:::i;:::-;14007:97;14097:6;14057:38;14089:4;14083:11;14057:38;:::i;:::-;14051:4;14007:97;:::i;:::-;14159:4;;14223:2;14212:14;;14240:1;14235:663;;;;14942:1;14959:6;14956:89;;;-1:-1:-1;15011:19:29;;;15005:26;14956:89;-1:-1:-1;;13760:1:29;13756:11;;;13752:24;13748:29;13738:40;13784:1;13780:11;;;13735:57;15058:81;;14205:944;;14235:663;11919:1;11912:14;;;11956:4;11943:18;;-1:-1:-1;;14271:20:29;;;14389:236;14403:7;14400:1;14397:14;14389:236;;;14492:19;;;14486:26;14471:42;;14584:27;;;;14552:1;14540:14;;;;14419:19;;14389:236;;;14393:3;14653:6;14644:7;14641:19;14638:201;;;14714:19;;;14708:26;-1:-1:-1;;14797:1:29;14793:14;;;14809:3;14789:24;14785:37;14781:42;14766:58;14751:74;;14638:201;-1:-1:-1;;;;;14885:1:29;14869:14;;;14865:22;14852:36;;-1:-1:-1;13803:1352:29:o;15160:1431::-;15275:3;15269:4;15266:13;15263:26;;15282:5;;15160:1431::o;15263:26::-;15312:37;15344:3;15338:10;15312:37;:::i;:::-;15372:18;15364:6;15361:30;15358:56;;;15394:18;;:::i;:::-;15423:97;15513:6;15473:38;15505:4;15499:11;15473:38;:::i;15423:97::-;15546:1;15574:2;15566:6;15563:14;15591:1;15586:748;;;;16378:1;16395:6;16392:89;;;-1:-1:-1;16447:19:29;;;16441:26;16392:89;-1:-1:-1;;13760:1:29;13756:11;;;13752:24;13748:29;13738:40;13784:1;13780:11;;;13735:57;16494:81;;15556:1029;;15586:748;11919:1;11912:14;;;11956:4;11943:18;;-1:-1:-1;;15622:20:29;;;11919:1;11912:14;;;11956:4;11943:18;;15786:9;15808:251;15822:7;15819:1;15816:14;15808:251;;;15904:21;;;15898:28;15883:44;;15954:1;16027:18;;;;15982:15;;;;15845:4;15838:12;15808:251;;;15812:3;16087:6;16078:7;16075:19;16072:203;;;16148:21;;16142:28;-1:-1:-1;;16245:3:29;16233:1;16229:14;;;16225:24;16221:37;16217:42;16202:58;16187:74;;;-1:-1:-1;;16321:1:29;16305:14;;;16301:22;16288:36;;-1:-1:-1;15160:1431:29:o;16596:430::-;-1:-1:-1;;;;;16823:32:29;;16805:51;;16904:4;16892:17;;16887:2;16872:18;;16865:45;16946:2;16941;16926:18;;16919:30;;;-1:-1:-1;;16966:54:29;;17001:18;;16993:6;16966:54;:::i;17031:127::-;17092:10;17087:3;17083:20;17080:1;17073:31;17123:4;17120:1;17113:15;17147:4;17144:1;17137:15"},"methodIdentifiers":{"addOwner(address)":"7065cb48","canAnyUserPublishOffer()":"619980dc","canUserPublishOffer(address)":"29d3f60b","changeRemoveCardinInventoryWhenOffer(bool)":"58e57ebb","confirmOfferExchange(address,uint8,address,uint8)":"c08029e7","createOffer(string,uint8,uint8[])":"3e293e16","createOfferWithoUser(string,address,uint8,uint8[])":"17a1fed9","deleteAllOffers()":"322fba27","gammaCardsContract()":"d250f03a","getMaxOffersAllowed()":"90222aa1","getMaxOffersByUserAllowed()":"ba79b77b","getOfferByIndex(uint256)":"e359a0a1","getOfferByOfferId(string)":"e2b36596","getOfferByUserAndCardNumber(address,uint8)":"9f915069","getOffers()":"3ee992ee","getOffersByCardNumber(uint8)":"8400a189","getOffersByCardNumberCounter(uint8)":"ce7483d5","getOffersByUser(address)":"9618b333","getOffersByUserCounter(address)":"0cdb3117","getOffersCounter()":"cf86f8e5","hasOffer(address,uint8)":"2edb5fcf","isOwner(address)":"2f54bf6e","offers(uint256)":"8a72ea6a","offersByCardNumberCounter(uint8)":"d827a8f4","offersByUserCounter(address)":"7594a6ed","offersTotalCounter()":"5a919aeb","owner()":"8da5cb5b","removeOfferByCardNumber(uint8)":"3a027073","removeOfferByUserAndCardNumber(address,uint8)":"5bbfbfd6","removeOffersByUser(address)":"fc9e80fc","removeOwner(address)":"173825d9","renounceOwnership()":"715018a6","setGammaCardsContract(address)":"4c7a7ad3","setMaxCardNumbersAllowed(uint256)":"e02f9723","setMaxOffersAllowed(uint256)":"e5e5f732","setMaxOffersByUserAllowed(uint256)":"3808dfe7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_cardsContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExchangeError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GammaCardsContractNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCard\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCardNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOfferId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfferAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfferDoesNotExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfferNotDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OffersMaximumAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCardsContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoveOfferFromCardNumberMapping_DoNotMatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoveOfferFromUserMapping_DoNotMatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyHasCard\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserDoesNotHaveCard\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"AllOffersRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGammaCardsContract\",\"type\":\"address\"}],\"name\":\"NewGammaCardsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"OfferCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"OfferRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserOffersRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"canAnyUserPublishOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"canUserPublishOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_value\",\"type\":\"bool\"}],\"name\":\"changeRemoveCardinInventoryWhenOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberWanted\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"offerWallet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"offerCardNumber\",\"type\":\"uint8\"}],\"name\":\"confirmOfferExchange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"createOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"createOfferWithoUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteAllOffers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaCardsContract\",\"outputs\":[{\"internalType\":\"contract IGammaCardsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxOffersAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxOffersByUserAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getOfferByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"}],\"name\":\"getOfferByOfferId\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOfferByUserAndCardNumber\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOffers\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOffersByCardNumber\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOffersByCardNumberCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getOffersByUser\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getOffersByUserCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOffersCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"offers\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"offersByCardNumberCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"offersByUserCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"offersTotalCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeOfferByCardNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeOfferByUserAndCardNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeOffersByUser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerToRemove\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaCardsContract\",\"type\":\"address\"}],\"name\":\"setGammaCardsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxCardNumbersAllowed\",\"type\":\"uint256\"}],\"name\":\"setMaxCardNumbersAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxOffersAllowed\",\"type\":\"uint256\"}],\"name\":\"setMaxOffersAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxOffersByUserAllowed\",\"type\":\"uint256\"}],\"name\":\"setMaxOffersByUserAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaOffers.v4.sol\":\"NofGammaOffersV4\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaOffers.v4.sol\":{\"keccak256\":\"0xa02506a051d4db4e86b1525dcf5211a11568b325e87dd461fffa774a46386a24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67b3fa48a581414f470af31f1727e436634b2f5c1bd7ccef8fa9e8fbcc02fbd9\",\"dweb:/ipfs/QmZFzedTdF9zZ9EvFDR9yaesETwBXm1DQ89gWun2B9gd17\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/gamma/GammaPacks.v3.sol":{"IGammaCardsContract":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changePackPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPrizesBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"changePackPrice(uint256)":"e1883c6e","setPrizesBalance(uint256)":"5e31ce48"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"changePackPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setPrizesBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaPacks.v3.sol\":\"IGammaCardsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaPacks.v3.sol\":{\"keccak256\":\"0x8b91107b9934ac7de1ce2ef9b9d6ef5c5647879fe7fe0c771663736d822b5318\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde64143305e717e6a5d0117c28c584c4205921c9dbd8ca9e9b8166ad07b7104\",\"dweb:/ipfs/Qmew2Bukovwc2qfM1h5WwbvBQ21dpFiLLF7vCyawrgsts7\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"IgammaTicketsContract":{"abi":[{"inputs":[],"name":"deleteAllTickets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLotteryWinner","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"ticketId","type":"bytes32"},{"internalType":"uint256","name":"ticketCounter","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deleteAllTickets()":"306e4118","getLotteryWinner()":"b2d55c1c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deleteAllTickets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLotteryWinner\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ticketId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"ticketCounter\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaPacks.v3.sol\":\"IgammaTicketsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaPacks.v3.sol\":{\"keccak256\":\"0x8b91107b9934ac7de1ce2ef9b9d6ef5c5647879fe7fe0c771663736d822b5318\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde64143305e717e6a5d0117c28c584c4205921c9dbd8ca9e9b8166ad07b7104\",\"dweb:/ipfs/Qmew2Bukovwc2qfM1h5WwbvBQ21dpFiLLF7vCyawrgsts7\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"NofGammaPacksV3":{"abi":[{"inputs":[{"internalType":"address","name":"_daiTokenAddress","type":"address"},{"internalType":"address","name":"_balanceReceiver","type":"address"},{"internalType":"address","name":"_gammaCardsContract","type":"address"},{"internalType":"address","name":"_gammaTicketsContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InsufficientPacksAvailable","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidNumberOfPacks","type":"error"},{"inputs":[],"name":"NotGammaCardsContract","type":"error"},{"inputs":[],"name":"NotYourPack","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"OwnlyOwners","type":"error"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"TransferPrizeError","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"balanceReceiver","type":"address"}],"name":"NewBalanceReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newCardsContract","type":"address"}],"name":"NewGammaCardsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaTicketContract","type":"address"}],"name":"NewGammaTicketsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"NewPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PackOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PackPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PackTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"PacksPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256[]","name":"tokenId","type":"uint256[]"}],"name":"PacksTransfered","type":"event"},{"inputs":[],"name":"DAI_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTALSUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyPack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"buyPackByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"buyPacks","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"buyPacksByUser","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newBalanceReceiver","type":"address"}],"name":"changeBalanceReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"changePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_transferDai","type":"bool"}],"name":"changeTransferDaiFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gammaCardsContract","outputs":[{"internalType":"contract IGammaCardsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gammaTicketsContract","outputs":[{"internalType":"contract IgammaTicketsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"getAmountRequiredToBuyPacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPackOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getPacksByUser","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"getPrizeAmountToBuyPacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"getPrizeNoFAccountAmountToBuyPacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"meetQuantityConditionsToBuy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_ownerToRemove","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"s_balanceReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_packPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"s_packs","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"s_packsByUser","outputs":[{"internalType":"uint256","name":"tokenIds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaCardsContract","type":"address"}],"name":"setGammaCardsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaTicketsContract","type":"address"}],"name":"setGammaTicketsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"testOpenPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"testOpenPacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"transferPacks","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_7720":{"entryPoint":null,"id":7720,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":322,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory":{"entryPoint":431,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:870:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:29","statements":[{"nodeType":"YulAssignment","src":"84:22:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:29"},"nodeType":"YulFunctionCall","src":"93:13:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:29"}]},{"body":{"nodeType":"YulBlock","src":"169:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:29"},"nodeType":"YulFunctionCall","src":"171:12:29"},"nodeType":"YulExpressionStatement","src":"171:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:29"},"nodeType":"YulFunctionCall","src":"150:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:29"},"nodeType":"YulFunctionCall","src":"135:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:29"},"nodeType":"YulFunctionCall","src":"125:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:29"},"nodeType":"YulFunctionCall","src":"118:50:29"},"nodeType":"YulIf","src":"115:70:29"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:29","type":""}],"src":"14:177:29"},{"body":{"nodeType":"YulBlock","src":"328:332:29","statements":[{"body":{"nodeType":"YulBlock","src":"375:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"384:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"387:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"377:6:29"},"nodeType":"YulFunctionCall","src":"377:12:29"},"nodeType":"YulExpressionStatement","src":"377:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"349:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"358:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"345:3:29"},"nodeType":"YulFunctionCall","src":"345:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"370:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"341:3:29"},"nodeType":"YulFunctionCall","src":"341:33:29"},"nodeType":"YulIf","src":"338:53:29"},{"nodeType":"YulAssignment","src":"400:50:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"440:9:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"410:29:29"},"nodeType":"YulFunctionCall","src":"410:40:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"400:6:29"}]},{"nodeType":"YulAssignment","src":"459:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"503:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"514:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"499:3:29"},"nodeType":"YulFunctionCall","src":"499:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"469:29:29"},"nodeType":"YulFunctionCall","src":"469:49:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"459:6:29"}]},{"nodeType":"YulAssignment","src":"527:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"582:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"567:3:29"},"nodeType":"YulFunctionCall","src":"567:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"537:29:29"},"nodeType":"YulFunctionCall","src":"537:49:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"527:6:29"}]},{"nodeType":"YulAssignment","src":"595:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"639:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"650:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"635:3:29"},"nodeType":"YulFunctionCall","src":"635:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"605:29:29"},"nodeType":"YulFunctionCall","src":"605:49:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"595:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"270:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"281:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"293:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"301:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"309:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"317:6:29","type":""}],"src":"196:464:29"},{"body":{"nodeType":"YulBlock","src":"766:102:29","statements":[{"nodeType":"YulAssignment","src":"776:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"788:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"799:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"784:3:29"},"nodeType":"YulFunctionCall","src":"784:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"776:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"818:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"833:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"849:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"854:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"845:3:29"},"nodeType":"YulFunctionCall","src":"845:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"858:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"841:3:29"},"nodeType":"YulFunctionCall","src":"841:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"829:3:29"},"nodeType":"YulFunctionCall","src":"829:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"811:6:29"},"nodeType":"YulFunctionCall","src":"811:51:29"},"nodeType":"YulExpressionStatement","src":"811:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"735:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"746:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"757:4:29","type":""}],"src":"665:203:29"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":2093},{"length":20,"start":2602}]}},"object":"60806040526710a741a46278000060075560006008556009805460ff191660011790553480156200002f57600080fd5b5060405162001c6238038062001c628339810160408190526200005291620001af565b33806200007957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000848162000142565b506001600160a01b0383161580620000a357506001600160a01b038216155b80620000b657506001600160a01b038116155b15620000d55760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff191690911790556200020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001aa57600080fd5b919050565b60008060008060808587031215620001c657600080fd5b620001d18562000192565b9350620001e16020860162000192565b9250620001f16040860162000192565b9150620002016060860162000192565b905092959194509250565b611a46806200021c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0x10A741A462780000 PUSH1 0x7 SSTORE PUSH1 0x0 PUSH1 0x8 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1C62 CODESIZE SUB DUP1 PUSH3 0x1C62 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x52 SWAP2 PUSH3 0x1AF JUMP JUMPDEST CALLER DUP1 PUSH3 0x79 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x84 DUP2 PUSH3 0x142 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 PUSH3 0xA3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO JUMPDEST DUP1 PUSH3 0xB6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO JUMPDEST ISZERO PUSH3 0xD5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP1 SLOAD DUP3 AND SWAP5 DUP7 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE PUSH1 0x1 DUP1 SLOAD DUP5 AND SWAP3 DUP6 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP4 AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x20C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x1AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1D1 DUP6 PUSH3 0x192 JUMP JUMPDEST SWAP4 POP PUSH3 0x1E1 PUSH1 0x20 DUP7 ADD PUSH3 0x192 JUMP JUMPDEST SWAP3 POP PUSH3 0x1F1 PUSH1 0x40 DUP7 ADD PUSH3 0x192 JUMP JUMPDEST SWAP2 POP PUSH3 0x201 PUSH1 0x60 DUP7 ADD PUSH3 0x192 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1A46 DUP1 PUSH3 0x21C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x211 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x94A08C69 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xD250F03A GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD9E8221E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD9E8221E EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0x4C6 JUMPI DUP1 PUSH4 0xE0F78307 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD250F03A EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xD3E6A7AD EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xD611713E EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xD6A4C3E4 EQ PUSH2 0x4A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA2B40D19 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xA2B40D19 EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xAB4BDBC8 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xB48CE653 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xC34E8AF4 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xC37B9BCD EQ PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x94A08C69 EQ PUSH2 0x3BB JUMPI DUP1 PUSH4 0x967ED63D EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x97F8B3D3 EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0x99E5F896 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x7065CB48 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x80F2540B EQ PUSH2 0x384 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x8FD5BAF7 EQ PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x62E21878 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x6ADBAF75 EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F54BF6E GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x39E8D3EC EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x3CD626FD EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x3F6ECD48 EQ PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1321C4D EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xC3E5C00 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x2D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x662 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x6A0 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x6CF JUMP JUMPDEST PUSH2 0x340 PUSH2 0x33B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x233 SWAP2 SWAP1 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x229 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST PUSH2 0x24F PUSH2 0x377 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x830 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x844 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x264 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x3B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x86F JUMP JUMPDEST PUSH2 0x229 PUSH2 0xC350 DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x8DB JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x187F JUMP JUMPDEST PUSH2 0x98B JUMP JUMPDEST PUSH2 0x24F PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x9CE JUMP JUMPDEST PUSH2 0x24F PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x189C JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH2 0x229 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0xB53 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB6D JUMP JUMPDEST PUSH2 0x229 PUSH2 0x4C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBA8 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xBD9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51E DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x7 SLOAD PUSH2 0x52F SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x539 SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x590 JUMPI PUSH2 0x590 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x5A4 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x5AF DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x573 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5EC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x65B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0xD5E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x6 PUSH1 0x7 SLOAD PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x1959 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST PUSH2 0x6C9 SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x6FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x726 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x539 DUP4 DUP4 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6C9 CALLER DUP4 PUSH2 0xDBB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x62F JUMP JUMPDEST PUSH2 0x838 PUSH2 0x1021 JUMP JUMPDEST PUSH2 0x842 PUSH1 0x0 PUSH2 0x104E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8CF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x8BB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x90B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6C9 DUP3 PUSH2 0x109E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x944 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x964 JUMPI PUSH2 0x964 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x978 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x983 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x947 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70C41E37 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE1883C6E SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA5D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 SWAP3 POP PUSH32 0x270B316B51AB2CF3A3BB8CA4D22E76A327D05E762FCAA8BD6AFAF8CFDE9270B7 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xAAF JUMPI PUSH2 0xAAF PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0xAC3 DUP5 DUP3 PUSH2 0x10D1 JUMP JUMPDEST POP DUP1 PUSH2 0xACE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA92 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0xAE5 SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0x1AFFAE2FD35738EC8F6A4212F337C673B41AA2231F1BD5CFEB94463A93ACE1F1 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB32 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB3F DUP5 PUSH2 0x512 JUMP JUMPDEST SWAP1 POP PUSH2 0xB4B DUP2 DUP4 PUSH2 0x19B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E CALLER PUSH2 0x109E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0x10D1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC09 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC30 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCAA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7161C7A7090D78E8031FCA87E845A86B39E0EB9C15436933D2D4CE7F4520C4A5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0xD23 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD52 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD5B DUP2 PUSH2 0x104E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD68 DUP3 DUP3 PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH32 0x459BDAA71B6C253B49D34A7622DC4C6C1C416C0567571C068B392BA7172DDD4C SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO DUP1 PUSH2 0xDF1 JUMPI POP PUSH1 0x64 DUP3 GT JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xE20 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT PUSH2 0xE3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE59 JUMPI PUSH2 0xE59 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE82 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xF32 JUMPI PUSH2 0xC350 DUP3 LT PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP4 MSTORE PUSH1 0xB DUP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE DUP3 MLOAD DUP3 SWAP1 DUP5 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xF12 JUMPI PUSH2 0xF12 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 PUSH2 0xF27 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0xE8C JUMP JUMPDEST POP PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH1 0x0 PUSH2 0xF44 DUP7 DUP7 PUSH2 0x12FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xF6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST DUP5 PUSH1 0x1 SUB PUSH2 0xFCD JUMPI DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xF8A JUMPI PUSH2 0xF8A PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xC79CAD949A408373456DA7A9E88E8114102AA00E03A69733C70E3A0D95944CA7 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x1017 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0xFDB SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0x8AE8B18ED6D499EC84F68235BF3512B3DB155F7911789805D36093467E5971C9 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10AC DUP4 PUSH1 0x1 PUSH2 0xDBB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x10C1 JUMPI PUSH2 0x10C1 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10F8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x112F JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x1160 DUP2 CALLER PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE SWAP2 DUP4 KECCAK256 SWAP1 SWAP2 ADD DUP5 SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 CALLER SWAP2 PUSH32 0x16E5698E3D85C69C8D8CDB9A21893B33518E24D8CB69D9944D4BFD233464C3A2 SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x12F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP6 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x120D JUMPI PUSH2 0x120D PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SUB PUSH2 0x12E4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1243 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1917 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1253 JUMPI PUSH2 0x1253 PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0xB PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1294 JUMPI PUSH2 0x1294 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0xB SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP1 PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH2 0x12EE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11D8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1308 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1315 DUP5 PUSH2 0x512 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBC639C9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E31CE48 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x135C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1370 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0xFF AND ISZERO SWAP2 POP PUSH2 0x168B SWAP1 POP JUMPI PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1397 DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1407 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT ISZERO PUSH2 0x1426 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BE252B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x146F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1493 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT DUP1 PUSH2 0x1509 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1507 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E9ACF17 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1584 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A8 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x15D7 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1687 JUMPI PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST POP POP POP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x16F3 JUMPI PUSH2 0x16F3 PUSH2 0x16AF JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x1718 JUMPI PUSH2 0x1718 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP3 POP DUP8 DUP6 GT ISZERO PUSH2 0x1736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1755 JUMPI DUP2 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x173C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x914 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17AD DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x539 DUP3 PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181F DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1865 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1849 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B8 DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E0 DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1952 JUMPI PUSH2 0x1952 PUSH2 0x18EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1976 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x19A5 JUMPI DUP2 MLOAD DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1989 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xD368DA8617071CE17AA8AB9104EF PC CREATE 0x4A PUSH0 DUP6 CALLDATASIZE 0xBA 0x22 0xAA LOG0 0xDE 0xE3 0xE1 SLT 0xCD DIV 0xEF PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"947:9996:23:-:0;;;1322:5;1293:34;;1375:1;1342:34;;1380:25;;;-1:-1:-1;;1380:25:23;1401:4;1380:25;;;2415:594;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2567:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;811:51:29;784:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;2596:30:23;::::1;::::0;;:73:::1;;-1:-1:-1::0;;;;;;2636:33:23;::::1;::::0;2596:73:::1;:118;;;-1:-1:-1::0;;;;;;2679:35:23;::::1;::::0;2596:118:::1;2585:159;;;2728:16;;-1:-1:-1::0;;;2728:16:23::1;;;;;;;;;;;2585:159;2751:9;:28:::0;;-1:-1:-1;;;;;;2751:28:23;;::::1;-1:-1:-1::0;;;;;2751:28:23;;::::1;;::::0;;;2785:17:::1;:36:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;2827:61:23;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;2894:20:::1;:67:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;2986:10:::1;-1:-1:-1::0;2968:29:23;;;-1:-1:-1;2968:29:23::1;::::0;;;;:36;;-1:-1:-1;;2968:36:23::1;::::0;;::::1;::::0;;947:9996;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:177:29:-;93:13;;-1:-1:-1;;;;;135:31:29;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:464::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;537:49;582:2;571:9;567:18;537:49;:::i;:::-;527:59;;605:49;650:2;639:9;635:18;605:49;:::i;:::-;595:59;;196:464;;;;;;;:::o;665:203::-;947:9996:23;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DAI_TOKEN_7547":{"entryPoint":null,"id":7547,"parameterSlots":0,"returnSlots":0},"@TOTALSUPPLY_7552":{"entryPoint":null,"id":7552,"parameterSlots":0,"returnSlots":0},"@_buyPack_8067":{"entryPoint":4254,"id":8067,"parameterSlots":1,"returnSlots":1},"@_buyPacks_8203":{"entryPoint":3515,"id":8203,"parameterSlots":2,"returnSlots":1},"@_checkOwner_84":{"entryPoint":4129,"id":84,"parameterSlots":0,"returnSlots":0},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_openPack_8554":{"entryPoint":3422,"id":8554,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":4174,"id":146,"parameterSlots":1,"returnSlots":0},"@_transferPack_8481":{"entryPoint":4305,"id":8481,"parameterSlots":2,"returnSlots":0},"@_transferPrizesAmounts_8315":{"entryPoint":4860,"id":8315,"parameterSlots":2,"returnSlots":1},"@addOwner_7734":{"entryPoint":1977,"id":7734,"parameterSlots":1,"returnSlots":0},"@buyPackByUser_8027":{"entryPoint":2267,"id":8027,"parameterSlots":1,"returnSlots":1},"@buyPack_7998":{"entryPoint":2899,"id":7998,"parameterSlots":0,"returnSlots":1},"@buyPacksByUser_8045":{"entryPoint":1904,"id":8045,"parameterSlots":2,"returnSlots":1},"@buyPacks_8013":{"entryPoint":1965,"id":8013,"parameterSlots":1,"returnSlots":1},"@changeBalanceReceiver_7774":{"entryPoint":3194,"id":7774,"parameterSlots":1,"returnSlots":0},"@changePrice_7796":{"entryPoint":2510,"id":7796,"parameterSlots":1,"returnSlots":0},"@changeTransferDaiFlag_7808":{"entryPoint":2443,"id":7808,"parameterSlots":1,"returnSlots":0},"@deleteTokenId_8374":{"entryPoint":4541,"id":8374,"parameterSlots":2,"returnSlots":0},"@gammaCardsContract_7539":{"entryPoint":null,"id":7539,"parameterSlots":0,"returnSlots":0},"@gammaTicketsContract_7542":{"entryPoint":null,"id":7542,"parameterSlots":0,"returnSlots":0},"@getAmountRequiredToBuyPacks_7940":{"entryPoint":2854,"id":7940,"parameterSlots":1,"returnSlots":1},"@getPackOwner_7965":{"entryPoint":null,"id":7965,"parameterSlots":1,"returnSlots":1},"@getPacksByUser_7953":{"entryPoint":2159,"id":7953,"parameterSlots":1,"returnSlots":1},"@getPrizeAmountToBuyPacks_7895":{"entryPoint":1696,"id":7895,"parameterSlots":1,"returnSlots":1},"@getPrizeNoFAccountAmountToBuyPacks_7916":{"entryPoint":1298,"id":7916,"parameterSlots":1,"returnSlots":1},"@isOwner_7877":{"entryPoint":null,"id":7877,"parameterSlots":1,"returnSlots":1},"@meetQuantityConditionsToBuy_7987":{"entryPoint":2925,"id":7987,"parameterSlots":1,"returnSlots":1},"@openPack_8496":{"entryPoint":2116,"id":8496,"parameterSlots":2,"returnSlots":0},"@openPacks_8531":{"entryPoint":2329,"id":8531,"parameterSlots":2,"returnSlots":0},"@owner_67":{"entryPoint":null,"id":67,"parameterSlots":0,"returnSlots":1},"@removeOwner_7748":{"entryPoint":1468,"id":7748,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":2096,"id":98,"parameterSlots":0,"returnSlots":0},"@s_balanceReceiver_7549":{"entryPoint":null,"id":7549,"parameterSlots":0,"returnSlots":0},"@s_packPrice_7555":{"entryPoint":null,"id":7555,"parameterSlots":0,"returnSlots":0},"@s_packsByUser_7570":{"entryPoint":2984,"id":7570,"parameterSlots":0,"returnSlots":0},"@s_packs_7565":{"entryPoint":null,"id":7565,"parameterSlots":0,"returnSlots":0},"@setGammaCardsContract_7836":{"entryPoint":1743,"id":7836,"parameterSlots":1,"returnSlots":0},"@setGammaTicketsContract_7864":{"entryPoint":3033,"id":7864,"parameterSlots":1,"returnSlots":0},"@testOpenPack_8594":{"entryPoint":1634,"id":8594,"parameterSlots":2,"returnSlots":0},"@testOpenPacks_8629":{"entryPoint":1344,"id":8629,"parameterSlots":2,"returnSlots":0},"@transferOwnership_126":{"entryPoint":3355,"id":126,"parameterSlots":1,"returnSlots":0},"@transferPack_8387":{"entryPoint":2915,"id":8387,"parameterSlots":2,"returnSlots":0},"@transferPacks_8427":{"entryPoint":2703,"id":8427,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":5984,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_uint256_dyn":{"entryPoint":5829,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6085,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6300,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":6147,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address":{"entryPoint":6007,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":6271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":6643,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5782,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6618,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":6112,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":6189,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IGammaCardsContract_$7515__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaTicketsContract_$7530__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6577,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":6489,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6400,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6423,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":6464,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6378,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":6596,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6442,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5807,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":6257,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8218:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:29"},"nodeType":"YulFunctionCall","src":"132:12:29"},"nodeType":"YulExpressionStatement","src":"132:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:29"},"nodeType":"YulFunctionCall","src":"101:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:29"},"nodeType":"YulFunctionCall","src":"97:32:29"},"nodeType":"YulIf","src":"94:52:29"},{"nodeType":"YulAssignment","src":"155:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:29"},"nodeType":"YulFunctionCall","src":"165:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:29","type":""}],"src":"14:180:29"},{"body":{"nodeType":"YulBlock","src":"300:76:29","statements":[{"nodeType":"YulAssignment","src":"310:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:29"},"nodeType":"YulFunctionCall","src":"318:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"363:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:29"},"nodeType":"YulFunctionCall","src":"345:25:29"},"nodeType":"YulExpressionStatement","src":"345:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:29","type":""}],"src":"199:177:29"},{"body":{"nodeType":"YulBlock","src":"413:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"473:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"463:6:29"},"nodeType":"YulFunctionCall","src":"463:15:29"},"nodeType":"YulExpressionStatement","src":"463:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"494:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"497:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"487:6:29"},"nodeType":"YulFunctionCall","src":"487:15:29"},"nodeType":"YulExpressionStatement","src":"487:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"381:127:29"},{"body":{"nodeType":"YulBlock","src":"577:838:29","statements":[{"body":{"nodeType":"YulBlock","src":"626:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"635:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"628:6:29"},"nodeType":"YulFunctionCall","src":"628:12:29"},"nodeType":"YulExpressionStatement","src":"628:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"605:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"613:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"601:3:29"},"nodeType":"YulFunctionCall","src":"601:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"620:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"597:3:29"},"nodeType":"YulFunctionCall","src":"597:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"590:6:29"},"nodeType":"YulFunctionCall","src":"590:35:29"},"nodeType":"YulIf","src":"587:55:29"},{"nodeType":"YulVariableDeclaration","src":"651:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"674:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"661:12:29"},"nodeType":"YulFunctionCall","src":"661:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"655:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"690:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"700:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"694:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"713:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"723:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"717:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"764:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"766:16:29"},"nodeType":"YulFunctionCall","src":"766:18:29"},"nodeType":"YulExpressionStatement","src":"766:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"756:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"760:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"753:2:29"},"nodeType":"YulFunctionCall","src":"753:10:29"},"nodeType":"YulIf","src":"750:36:29"},{"nodeType":"YulVariableDeclaration","src":"795:20:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"809:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"812:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"805:3:29"},"nodeType":"YulFunctionCall","src":"805:10:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"799:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"824:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"844:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"838:5:29"},"nodeType":"YulFunctionCall","src":"838:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"828:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"856:56:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"878:6:29"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"894:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"890:3:29"},"nodeType":"YulFunctionCall","src":"890:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"907:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"903:3:29"},"nodeType":"YulFunctionCall","src":"903:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"886:3:29"},"nodeType":"YulFunctionCall","src":"886:25:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"874:3:29"},"nodeType":"YulFunctionCall","src":"874:38:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"860:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"971:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"973:16:29"},"nodeType":"YulFunctionCall","src":"973:18:29"},"nodeType":"YulExpressionStatement","src":"973:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"930:10:29"},{"name":"_3","nodeType":"YulIdentifier","src":"942:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"927:2:29"},"nodeType":"YulFunctionCall","src":"927:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"950:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"962:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"947:2:29"},"nodeType":"YulFunctionCall","src":"947:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"924:2:29"},"nodeType":"YulFunctionCall","src":"924:46:29"},"nodeType":"YulIf","src":"921:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1009:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1013:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1002:6:29"},"nodeType":"YulFunctionCall","src":"1002:22:29"},"nodeType":"YulExpressionStatement","src":"1002:22:29"},{"nodeType":"YulVariableDeclaration","src":"1033:17:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1044:6:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1037:3:29","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1066:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1074:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1059:6:29"},"nodeType":"YulFunctionCall","src":"1059:18:29"},"nodeType":"YulExpressionStatement","src":"1059:18:29"},{"nodeType":"YulAssignment","src":"1086:22:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1097:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1105:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1093:3:29"},"nodeType":"YulFunctionCall","src":"1093:15:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1086:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"1117:38:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1139:6:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1147:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1135:3:29"},"nodeType":"YulFunctionCall","src":"1135:15:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1152:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1131:3:29"},"nodeType":"YulFunctionCall","src":"1131:24:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1121:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1183:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1192:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1195:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1185:6:29"},"nodeType":"YulFunctionCall","src":"1185:12:29"},"nodeType":"YulExpressionStatement","src":"1185:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1170:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"1178:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1167:2:29"},"nodeType":"YulFunctionCall","src":"1167:15:29"},"nodeType":"YulIf","src":"1164:35:29"},{"nodeType":"YulVariableDeclaration","src":"1208:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1223:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1231:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1219:3:29"},"nodeType":"YulFunctionCall","src":"1219:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1212:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1299:86:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1320:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1325:12:29"},"nodeType":"YulFunctionCall","src":"1325:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1313:6:29"},"nodeType":"YulFunctionCall","src":"1313:30:29"},"nodeType":"YulExpressionStatement","src":"1313:30:29"},{"nodeType":"YulAssignment","src":"1356:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1367:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1372:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1363:3:29"},"nodeType":"YulFunctionCall","src":"1363:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1356:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1254:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1259:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1251:2:29"},"nodeType":"YulFunctionCall","src":"1251:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1267:23:29","statements":[{"nodeType":"YulAssignment","src":"1269:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1280:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1285:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1276:3:29"},"nodeType":"YulFunctionCall","src":"1276:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1269:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1247:3:29","statements":[]},"src":"1243:142:29"},{"nodeType":"YulAssignment","src":"1394:15:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1403:6:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1394:5:29"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"551:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"559:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"567:5:29","type":""}],"src":"513:902:29"},{"body":{"nodeType":"YulBlock","src":"1469:124:29","statements":[{"nodeType":"YulAssignment","src":"1479:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1501:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1488:12:29"},"nodeType":"YulFunctionCall","src":"1488:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1479:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1571:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1580:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1583:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1573:6:29"},"nodeType":"YulFunctionCall","src":"1573:12:29"},"nodeType":"YulExpressionStatement","src":"1573:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1530:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1541:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1556:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1561:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1552:3:29"},"nodeType":"YulFunctionCall","src":"1552:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1565:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:29"},"nodeType":"YulFunctionCall","src":"1548:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1537:3:29"},"nodeType":"YulFunctionCall","src":"1537:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1527:2:29"},"nodeType":"YulFunctionCall","src":"1527:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1520:6:29"},"nodeType":"YulFunctionCall","src":"1520:50:29"},"nodeType":"YulIf","src":"1517:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1448:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1459:5:29","type":""}],"src":"1420:173:29"},{"body":{"nodeType":"YulBlock","src":"1710:310:29","statements":[{"body":{"nodeType":"YulBlock","src":"1756:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1768:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1758:6:29"},"nodeType":"YulFunctionCall","src":"1758:12:29"},"nodeType":"YulExpressionStatement","src":"1758:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1731:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1740:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1727:3:29"},"nodeType":"YulFunctionCall","src":"1727:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1752:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1723:3:29"},"nodeType":"YulFunctionCall","src":"1723:32:29"},"nodeType":"YulIf","src":"1720:52:29"},{"nodeType":"YulVariableDeclaration","src":"1781:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1808:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1795:12:29"},"nodeType":"YulFunctionCall","src":"1795:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1785:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1861:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1870:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1873:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1863:6:29"},"nodeType":"YulFunctionCall","src":"1863:12:29"},"nodeType":"YulExpressionStatement","src":"1863:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1841:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1830:2:29"},"nodeType":"YulFunctionCall","src":"1830:30:29"},"nodeType":"YulIf","src":"1827:50:29"},{"nodeType":"YulAssignment","src":"1886:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1929:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1940:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1925:3:29"},"nodeType":"YulFunctionCall","src":"1925:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1949:7:29"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"1896:28:29"},"nodeType":"YulFunctionCall","src":"1896:61:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1886:6:29"}]},{"nodeType":"YulAssignment","src":"1966:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1999:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2010:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1995:3:29"},"nodeType":"YulFunctionCall","src":"1995:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1976:18:29"},"nodeType":"YulFunctionCall","src":"1976:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1966:6:29"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1668:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1679:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1691:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1699:6:29","type":""}],"src":"1598:422:29"},{"body":{"nodeType":"YulBlock","src":"2156:102:29","statements":[{"nodeType":"YulAssignment","src":"2166:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2178:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2189:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2174:3:29"},"nodeType":"YulFunctionCall","src":"2174:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2166:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2223:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2239:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2244:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2235:3:29"},"nodeType":"YulFunctionCall","src":"2235:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2248:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2231:3:29"},"nodeType":"YulFunctionCall","src":"2231:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2219:3:29"},"nodeType":"YulFunctionCall","src":"2219:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2201:6:29"},"nodeType":"YulFunctionCall","src":"2201:51:29"},"nodeType":"YulExpressionStatement","src":"2201:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaTicketsContract_$7530__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2125:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2136:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2147:4:29","type":""}],"src":"2025:233:29"},{"body":{"nodeType":"YulBlock","src":"2333:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2379:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2388:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2391:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2381:6:29"},"nodeType":"YulFunctionCall","src":"2381:12:29"},"nodeType":"YulExpressionStatement","src":"2381:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2354:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2363:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2350:3:29"},"nodeType":"YulFunctionCall","src":"2350:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2375:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2346:3:29"},"nodeType":"YulFunctionCall","src":"2346:32:29"},"nodeType":"YulIf","src":"2343:52:29"},{"nodeType":"YulAssignment","src":"2404:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2433:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2414:18:29"},"nodeType":"YulFunctionCall","src":"2414:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2404:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2299:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2310:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2322:6:29","type":""}],"src":"2263:186:29"},{"body":{"nodeType":"YulBlock","src":"2549:92:29","statements":[{"nodeType":"YulAssignment","src":"2559:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2571:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2582:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2567:3:29"},"nodeType":"YulFunctionCall","src":"2567:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2559:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2601:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2626:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2619:6:29"},"nodeType":"YulFunctionCall","src":"2619:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2612:6:29"},"nodeType":"YulFunctionCall","src":"2612:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2594:6:29"},"nodeType":"YulFunctionCall","src":"2594:41:29"},"nodeType":"YulExpressionStatement","src":"2594:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2518:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2529:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2540:4:29","type":""}],"src":"2454:187:29"},{"body":{"nodeType":"YulBlock","src":"2733:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"2779:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2788:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2791:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2781:6:29"},"nodeType":"YulFunctionCall","src":"2781:12:29"},"nodeType":"YulExpressionStatement","src":"2781:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2754:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2763:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2750:3:29"},"nodeType":"YulFunctionCall","src":"2750:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2775:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2746:3:29"},"nodeType":"YulFunctionCall","src":"2746:32:29"},"nodeType":"YulIf","src":"2743:52:29"},{"nodeType":"YulAssignment","src":"2804:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2827:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2814:12:29"},"nodeType":"YulFunctionCall","src":"2814:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2804:6:29"}]},{"nodeType":"YulAssignment","src":"2846:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2879:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2890:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2875:3:29"},"nodeType":"YulFunctionCall","src":"2875:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2856:18:29"},"nodeType":"YulFunctionCall","src":"2856:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2846:6:29"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2691:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2702:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2714:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2722:6:29","type":""}],"src":"2646:254:29"},{"body":{"nodeType":"YulBlock","src":"3006:102:29","statements":[{"nodeType":"YulAssignment","src":"3016:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3028:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3039:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3024:3:29"},"nodeType":"YulFunctionCall","src":"3024:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3016:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3058:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3073:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3089:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3094:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3085:3:29"},"nodeType":"YulFunctionCall","src":"3085:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"3098:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3081:3:29"},"nodeType":"YulFunctionCall","src":"3081:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3069:3:29"},"nodeType":"YulFunctionCall","src":"3069:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3051:6:29"},"nodeType":"YulFunctionCall","src":"3051:51:29"},"nodeType":"YulExpressionStatement","src":"3051:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2975:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2986:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2997:4:29","type":""}],"src":"2905:203:29"},{"body":{"nodeType":"YulBlock","src":"3200:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"3246:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3255:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3258:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3248:6:29"},"nodeType":"YulFunctionCall","src":"3248:12:29"},"nodeType":"YulExpressionStatement","src":"3248:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3221:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3230:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3217:3:29"},"nodeType":"YulFunctionCall","src":"3217:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3242:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3213:3:29"},"nodeType":"YulFunctionCall","src":"3213:32:29"},"nodeType":"YulIf","src":"3210:52:29"},{"nodeType":"YulAssignment","src":"3271:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3300:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3281:18:29"},"nodeType":"YulFunctionCall","src":"3281:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3271:6:29"}]},{"nodeType":"YulAssignment","src":"3319:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3346:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3357:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3342:3:29"},"nodeType":"YulFunctionCall","src":"3342:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3329:12:29"},"nodeType":"YulFunctionCall","src":"3329:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3319:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3158:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3169:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3181:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3189:6:29","type":""}],"src":"3113:254:29"},{"body":{"nodeType":"YulBlock","src":"3523:481:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3533:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3543:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3537:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3554:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3572:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3583:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3568:3:29"},"nodeType":"YulFunctionCall","src":"3568:18:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3558:6:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3602:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3613:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3595:6:29"},"nodeType":"YulFunctionCall","src":"3595:21:29"},"nodeType":"YulExpressionStatement","src":"3595:21:29"},{"nodeType":"YulVariableDeclaration","src":"3625:17:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"3636:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"3629:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3651:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3671:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3665:5:29"},"nodeType":"YulFunctionCall","src":"3665:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3655:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"3694:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"3702:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3687:6:29"},"nodeType":"YulFunctionCall","src":"3687:22:29"},"nodeType":"YulExpressionStatement","src":"3687:22:29"},{"nodeType":"YulAssignment","src":"3718:25:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3729:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3740:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3725:3:29"},"nodeType":"YulFunctionCall","src":"3725:18:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3718:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"3752:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3778:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:29"},"nodeType":"YulFunctionCall","src":"3766:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3756:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3790:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3799:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3794:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3858:120:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3879:3:29"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3890:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3884:5:29"},"nodeType":"YulFunctionCall","src":"3884:13:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3872:6:29"},"nodeType":"YulFunctionCall","src":"3872:26:29"},"nodeType":"YulExpressionStatement","src":"3872:26:29"},{"nodeType":"YulAssignment","src":"3911:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3922:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3927:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3918:3:29"},"nodeType":"YulFunctionCall","src":"3918:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3911:3:29"}]},{"nodeType":"YulAssignment","src":"3943:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3957:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3965:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3953:3:29"},"nodeType":"YulFunctionCall","src":"3953:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3943:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3820:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"3823:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3817:2:29"},"nodeType":"YulFunctionCall","src":"3817:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3831:18:29","statements":[{"nodeType":"YulAssignment","src":"3833:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3842:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"3845:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3838:3:29"},"nodeType":"YulFunctionCall","src":"3838:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3833:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3813:3:29","statements":[]},"src":"3809:169:29"},{"nodeType":"YulAssignment","src":"3987:11:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"3995:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3987:4:29"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3492:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3503:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3514:4:29","type":""}],"src":"3372:632:29"},{"body":{"nodeType":"YulBlock","src":"4051:76:29","statements":[{"body":{"nodeType":"YulBlock","src":"4105:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4114:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4117:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4107:6:29"},"nodeType":"YulFunctionCall","src":"4107:12:29"},"nodeType":"YulExpressionStatement","src":"4107:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4074:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4095:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4088:6:29"},"nodeType":"YulFunctionCall","src":"4088:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4081:6:29"},"nodeType":"YulFunctionCall","src":"4081:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4071:2:29"},"nodeType":"YulFunctionCall","src":"4071:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4064:6:29"},"nodeType":"YulFunctionCall","src":"4064:40:29"},"nodeType":"YulIf","src":"4061:60:29"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4040:5:29","type":""}],"src":"4009:118:29"},{"body":{"nodeType":"YulBlock","src":"4199:174:29","statements":[{"body":{"nodeType":"YulBlock","src":"4245:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4254:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4247:6:29"},"nodeType":"YulFunctionCall","src":"4247:12:29"},"nodeType":"YulExpressionStatement","src":"4247:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4220:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4229:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4216:3:29"},"nodeType":"YulFunctionCall","src":"4216:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4241:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4212:3:29"},"nodeType":"YulFunctionCall","src":"4212:32:29"},"nodeType":"YulIf","src":"4209:52:29"},{"nodeType":"YulVariableDeclaration","src":"4270:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4283:12:29"},"nodeType":"YulFunctionCall","src":"4283:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4274:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4337:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"4315:21:29"},"nodeType":"YulFunctionCall","src":"4315:28:29"},"nodeType":"YulExpressionStatement","src":"4315:28:29"},{"nodeType":"YulAssignment","src":"4352:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"4362:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4352:6:29"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4165:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4176:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4188:6:29","type":""}],"src":"4132:241:29"},{"body":{"nodeType":"YulBlock","src":"4490:310:29","statements":[{"body":{"nodeType":"YulBlock","src":"4536:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4545:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4548:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4538:6:29"},"nodeType":"YulFunctionCall","src":"4538:12:29"},"nodeType":"YulExpressionStatement","src":"4538:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4511:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4520:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4507:3:29"},"nodeType":"YulFunctionCall","src":"4507:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4532:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4503:3:29"},"nodeType":"YulFunctionCall","src":"4503:32:29"},"nodeType":"YulIf","src":"4500:52:29"},{"nodeType":"YulAssignment","src":"4561:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4590:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4571:18:29"},"nodeType":"YulFunctionCall","src":"4571:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4561:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4609:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4640:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4651:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4636:3:29"},"nodeType":"YulFunctionCall","src":"4636:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4623:12:29"},"nodeType":"YulFunctionCall","src":"4623:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4613:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4698:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4707:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4710:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4700:6:29"},"nodeType":"YulFunctionCall","src":"4700:12:29"},"nodeType":"YulExpressionStatement","src":"4700:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4670:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4678:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4667:2:29"},"nodeType":"YulFunctionCall","src":"4667:30:29"},"nodeType":"YulIf","src":"4664:50:29"},{"nodeType":"YulAssignment","src":"4723:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4766:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"4777:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4762:3:29"},"nodeType":"YulFunctionCall","src":"4762:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4786:7:29"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4733:28:29"},"nodeType":"YulFunctionCall","src":"4733:61:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4723:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4448:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4459:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4471:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4479:6:29","type":""}],"src":"4378:422:29"},{"body":{"nodeType":"YulBlock","src":"4934:102:29","statements":[{"nodeType":"YulAssignment","src":"4944:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4956:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4967:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4952:3:29"},"nodeType":"YulFunctionCall","src":"4952:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4944:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4986:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5001:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5017:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5022:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5013:3:29"},"nodeType":"YulFunctionCall","src":"5013:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"5026:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5009:3:29"},"nodeType":"YulFunctionCall","src":"5009:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4997:3:29"},"nodeType":"YulFunctionCall","src":"4997:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4979:6:29"},"nodeType":"YulFunctionCall","src":"4979:51:29"},"nodeType":"YulExpressionStatement","src":"4979:51:29"}]},"name":"abi_encode_tuple_t_contract$_IGammaCardsContract_$7515__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4903:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4914:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4925:4:29","type":""}],"src":"4805:231:29"},{"body":{"nodeType":"YulBlock","src":"5073:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5097:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5102:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5093:3:29"},"nodeType":"YulFunctionCall","src":"5093:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5083:6:29"},"nodeType":"YulFunctionCall","src":"5083:31:29"},"nodeType":"YulExpressionStatement","src":"5083:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5130:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5133:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5123:6:29"},"nodeType":"YulFunctionCall","src":"5123:15:29"},"nodeType":"YulExpressionStatement","src":"5123:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5154:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5157:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5147:6:29"},"nodeType":"YulFunctionCall","src":"5147:15:29"},"nodeType":"YulExpressionStatement","src":"5147:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5041:127:29"},{"body":{"nodeType":"YulBlock","src":"5225:116:29","statements":[{"nodeType":"YulAssignment","src":"5235:20:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5250:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5253:1:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5246:3:29"},"nodeType":"YulFunctionCall","src":"5246:9:29"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"5235:7:29"}]},{"body":{"nodeType":"YulBlock","src":"5313:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5315:16:29"},"nodeType":"YulFunctionCall","src":"5315:18:29"},"nodeType":"YulExpressionStatement","src":"5315:18:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5284:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5277:6:29"},"nodeType":"YulFunctionCall","src":"5277:9:29"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5291:1:29"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"5298:7:29"},{"name":"x","nodeType":"YulIdentifier","src":"5307:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5294:3:29"},"nodeType":"YulFunctionCall","src":"5294:15:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5288:2:29"},"nodeType":"YulFunctionCall","src":"5288:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5274:2:29"},"nodeType":"YulFunctionCall","src":"5274:37:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5267:6:29"},"nodeType":"YulFunctionCall","src":"5267:45:29"},"nodeType":"YulIf","src":"5264:71:29"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5204:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5207:1:29","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"5213:7:29","type":""}],"src":"5173:168:29"},{"body":{"nodeType":"YulBlock","src":"5395:79:29","statements":[{"nodeType":"YulAssignment","src":"5405:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5417:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5420:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5413:3:29"},"nodeType":"YulFunctionCall","src":"5413:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5405:4:29"}]},{"body":{"nodeType":"YulBlock","src":"5446:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5448:16:29"},"nodeType":"YulFunctionCall","src":"5448:18:29"},"nodeType":"YulExpressionStatement","src":"5448:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"5437:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"5443:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5434:2:29"},"nodeType":"YulFunctionCall","src":"5434:11:29"},"nodeType":"YulIf","src":"5431:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5377:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5380:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5386:4:29","type":""}],"src":"5346:128:29"},{"body":{"nodeType":"YulBlock","src":"5511:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5528:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5535:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5540:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5531:3:29"},"nodeType":"YulFunctionCall","src":"5531:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5521:6:29"},"nodeType":"YulFunctionCall","src":"5521:31:29"},"nodeType":"YulExpressionStatement","src":"5521:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5568:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5571:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5561:6:29"},"nodeType":"YulFunctionCall","src":"5561:15:29"},"nodeType":"YulExpressionStatement","src":"5561:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5592:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5595:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5585:6:29"},"nodeType":"YulFunctionCall","src":"5585:15:29"},"nodeType":"YulExpressionStatement","src":"5585:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"5479:127:29"},{"body":{"nodeType":"YulBlock","src":"5658:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"5689:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5691:16:29"},"nodeType":"YulFunctionCall","src":"5691:18:29"},"nodeType":"YulExpressionStatement","src":"5691:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5674:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5685:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5681:3:29"},"nodeType":"YulFunctionCall","src":"5681:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5671:2:29"},"nodeType":"YulFunctionCall","src":"5671:17:29"},"nodeType":"YulIf","src":"5668:43:29"},{"nodeType":"YulAssignment","src":"5720:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5731:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"5738:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5727:3:29"},"nodeType":"YulFunctionCall","src":"5727:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5720:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5640:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"5650:3:29","type":""}],"src":"5611:135:29"},{"body":{"nodeType":"YulBlock","src":"5911:145:29","statements":[{"nodeType":"YulAssignment","src":"5921:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5933:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5944:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5929:3:29"},"nodeType":"YulFunctionCall","src":"5929:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5921:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5963:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"5974:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5956:6:29"},"nodeType":"YulFunctionCall","src":"5956:25:29"},"nodeType":"YulExpressionStatement","src":"5956:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6001:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6012:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5997:3:29"},"nodeType":"YulFunctionCall","src":"5997:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6021:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6037:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6042:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6033:3:29"},"nodeType":"YulFunctionCall","src":"6033:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6046:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6029:3:29"},"nodeType":"YulFunctionCall","src":"6029:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6017:3:29"},"nodeType":"YulFunctionCall","src":"6017:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5990:6:29"},"nodeType":"YulFunctionCall","src":"5990:60:29"},"nodeType":"YulExpressionStatement","src":"5990:60:29"}]},"name":"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5872:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5883:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5891:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5902:4:29","type":""}],"src":"5751:305:29"},{"body":{"nodeType":"YulBlock","src":"6107:171:29","statements":[{"body":{"nodeType":"YulBlock","src":"6138:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6159:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6166:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6171:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6162:3:29"},"nodeType":"YulFunctionCall","src":"6162:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6152:6:29"},"nodeType":"YulFunctionCall","src":"6152:31:29"},"nodeType":"YulExpressionStatement","src":"6152:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6203:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6206:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6196:6:29"},"nodeType":"YulFunctionCall","src":"6196:15:29"},"nodeType":"YulExpressionStatement","src":"6196:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6231:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6234:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6224:6:29"},"nodeType":"YulFunctionCall","src":"6224:15:29"},"nodeType":"YulExpressionStatement","src":"6224:15:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6127:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6120:6:29"},"nodeType":"YulFunctionCall","src":"6120:9:29"},"nodeType":"YulIf","src":"6117:132:29"},{"nodeType":"YulAssignment","src":"6258:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6267:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"6270:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6263:3:29"},"nodeType":"YulFunctionCall","src":"6263:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6258:1:29"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6092:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"6095:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"6101:1:29","type":""}],"src":"6061:217:29"},{"body":{"nodeType":"YulBlock","src":"6452:374:29","statements":[{"nodeType":"YulVariableDeclaration","src":"6462:16:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"6475:3:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"6466:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6487:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6507:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6501:5:29"},"nodeType":"YulFunctionCall","src":"6501:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6491:6:29","type":""}]},{"nodeType":"YulAssignment","src":"6523:12:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"6532:3:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6523:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"6544:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6554:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6548:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6567:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6585:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6593:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6581:3:29"},"nodeType":"YulFunctionCall","src":"6581:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"6571:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6605:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6614:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6609:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6673:126:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6694:5:29"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6707:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6701:5:29"},"nodeType":"YulFunctionCall","src":"6701:13:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6687:6:29"},"nodeType":"YulFunctionCall","src":"6687:28:29"},"nodeType":"YulExpressionStatement","src":"6687:28:29"},{"nodeType":"YulAssignment","src":"6728:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6741:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6748:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6737:3:29"},"nodeType":"YulFunctionCall","src":"6737:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6728:5:29"}]},{"nodeType":"YulAssignment","src":"6764:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6778:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6786:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6774:3:29"},"nodeType":"YulFunctionCall","src":"6774:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6764:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6635:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"6638:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6632:2:29"},"nodeType":"YulFunctionCall","src":"6632:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6646:18:29","statements":[{"nodeType":"YulAssignment","src":"6648:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6657:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"6660:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6653:3:29"},"nodeType":"YulFunctionCall","src":"6653:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6648:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"6628:3:29","statements":[]},"src":"6624:175:29"},{"nodeType":"YulAssignment","src":"6808:12:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"6815:5:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6808:3:29"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6428:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6433:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6444:3:29","type":""}],"src":"6283:543:29"},{"body":{"nodeType":"YulBlock","src":"6879:77:29","statements":[{"nodeType":"YulAssignment","src":"6889:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6900:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"6903:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6896:3:29"},"nodeType":"YulFunctionCall","src":"6896:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6889:3:29"}]},{"body":{"nodeType":"YulBlock","src":"6928:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6930:16:29"},"nodeType":"YulFunctionCall","src":"6930:18:29"},"nodeType":"YulExpressionStatement","src":"6930:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6920:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"6923:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6917:2:29"},"nodeType":"YulFunctionCall","src":"6917:10:29"},"nodeType":"YulIf","src":"6914:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6862:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"6865:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6871:3:29","type":""}],"src":"6831:125:29"},{"body":{"nodeType":"YulBlock","src":"6993:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7010:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7017:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7022:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7013:3:29"},"nodeType":"YulFunctionCall","src":"7013:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7003:6:29"},"nodeType":"YulFunctionCall","src":"7003:31:29"},"nodeType":"YulExpressionStatement","src":"7003:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7050:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7053:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7043:6:29"},"nodeType":"YulFunctionCall","src":"7043:15:29"},"nodeType":"YulExpressionStatement","src":"7043:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7074:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7077:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7067:6:29"},"nodeType":"YulFunctionCall","src":"7067:15:29"},"nodeType":"YulExpressionStatement","src":"7067:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"6961:127:29"},{"body":{"nodeType":"YulBlock","src":"7222:175:29","statements":[{"nodeType":"YulAssignment","src":"7232:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7244:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7255:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7240:3:29"},"nodeType":"YulFunctionCall","src":"7240:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7232:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"7267:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7285:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7290:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7281:3:29"},"nodeType":"YulFunctionCall","src":"7281:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7294:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7277:3:29"},"nodeType":"YulFunctionCall","src":"7277:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7271:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7312:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7327:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7335:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7323:3:29"},"nodeType":"YulFunctionCall","src":"7323:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7305:6:29"},"nodeType":"YulFunctionCall","src":"7305:34:29"},"nodeType":"YulExpressionStatement","src":"7305:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7359:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7370:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7355:3:29"},"nodeType":"YulFunctionCall","src":"7355:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7379:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7387:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7375:3:29"},"nodeType":"YulFunctionCall","src":"7375:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7348:6:29"},"nodeType":"YulFunctionCall","src":"7348:43:29"},"nodeType":"YulExpressionStatement","src":"7348:43:29"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7183:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7194:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7202:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7213:4:29","type":""}],"src":"7093:304:29"},{"body":{"nodeType":"YulBlock","src":"7483:103:29","statements":[{"body":{"nodeType":"YulBlock","src":"7529:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7538:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7541:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7531:6:29"},"nodeType":"YulFunctionCall","src":"7531:12:29"},"nodeType":"YulExpressionStatement","src":"7531:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7504:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7513:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7500:3:29"},"nodeType":"YulFunctionCall","src":"7500:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7525:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7496:3:29"},"nodeType":"YulFunctionCall","src":"7496:32:29"},"nodeType":"YulIf","src":"7493:52:29"},{"nodeType":"YulAssignment","src":"7554:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7570:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7564:5:29"},"nodeType":"YulFunctionCall","src":"7564:16:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7554:6:29"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7449:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7460:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7472:6:29","type":""}],"src":"7402:184:29"},{"body":{"nodeType":"YulBlock","src":"7748:218:29","statements":[{"nodeType":"YulAssignment","src":"7758:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7770:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7781:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7766:3:29"},"nodeType":"YulFunctionCall","src":"7766:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7758:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"7793:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7811:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7816:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7807:3:29"},"nodeType":"YulFunctionCall","src":"7807:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7820:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7803:3:29"},"nodeType":"YulFunctionCall","src":"7803:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7797:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7838:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7853:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7861:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7849:3:29"},"nodeType":"YulFunctionCall","src":"7849:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7831:6:29"},"nodeType":"YulFunctionCall","src":"7831:34:29"},"nodeType":"YulExpressionStatement","src":"7831:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7885:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7896:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7881:3:29"},"nodeType":"YulFunctionCall","src":"7881:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7905:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7913:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7901:3:29"},"nodeType":"YulFunctionCall","src":"7901:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7874:6:29"},"nodeType":"YulFunctionCall","src":"7874:43:29"},"nodeType":"YulExpressionStatement","src":"7874:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7937:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7948:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7933:3:29"},"nodeType":"YulFunctionCall","src":"7933:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"7953:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7926:6:29"},"nodeType":"YulFunctionCall","src":"7926:34:29"},"nodeType":"YulExpressionStatement","src":"7926:34:29"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7701:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7712:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7720:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7728:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7739:4:29","type":""}],"src":"7591:375:29"},{"body":{"nodeType":"YulBlock","src":"8049:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"8095:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8104:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8107:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8097:6:29"},"nodeType":"YulFunctionCall","src":"8097:12:29"},"nodeType":"YulExpressionStatement","src":"8097:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8070:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"8079:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8066:3:29"},"nodeType":"YulFunctionCall","src":"8066:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"8091:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8062:3:29"},"nodeType":"YulFunctionCall","src":"8062:32:29"},"nodeType":"YulIf","src":"8059:52:29"},{"nodeType":"YulVariableDeclaration","src":"8120:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8139:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8133:5:29"},"nodeType":"YulFunctionCall","src":"8133:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8124:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8180:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"8158:21:29"},"nodeType":"YulFunctionCall","src":"8158:28:29"},"nodeType":"YulExpressionStatement","src":"8158:28:29"},{"nodeType":"YulAssignment","src":"8195:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"8205:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8195:6:29"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8015:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8026:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8038:6:29","type":""}],"src":"7971:245:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_array_uint256_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let _3 := 0xffffffffffffffff\n if gt(_1, _3) { panic_error_0x41() }\n let _4 := shl(5, _1)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _1)\n dst := add(memPtr, _2)\n let srcEnd := add(add(offset, _4), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, _2)\n }\n array := memPtr\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IgammaTicketsContract_$7530__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IGammaCardsContract_$7515__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_packed_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let pos_1 := pos\n let length := mload(value0)\n pos_1 := pos\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, mload(srcPtr))\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos_1\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":1553},{"length":20,"start":2062}]}},"object":"608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x211 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x94A08C69 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xD250F03A GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD9E8221E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD9E8221E EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0x4C6 JUMPI DUP1 PUSH4 0xE0F78307 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD250F03A EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xD3E6A7AD EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xD611713E EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xD6A4C3E4 EQ PUSH2 0x4A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA2B40D19 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xA2B40D19 EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xAB4BDBC8 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xB48CE653 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xC34E8AF4 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xC37B9BCD EQ PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x94A08C69 EQ PUSH2 0x3BB JUMPI DUP1 PUSH4 0x967ED63D EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x97F8B3D3 EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0x99E5F896 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x7065CB48 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x80F2540B EQ PUSH2 0x384 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x8FD5BAF7 EQ PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x62E21878 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x6ADBAF75 EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F54BF6E GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x39E8D3EC EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x3CD626FD EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x3F6ECD48 EQ PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1321C4D EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xC3E5C00 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x2D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x662 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x6A0 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x6CF JUMP JUMPDEST PUSH2 0x340 PUSH2 0x33B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x233 SWAP2 SWAP1 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x229 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST PUSH2 0x24F PUSH2 0x377 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x830 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x844 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x264 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x3B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x86F JUMP JUMPDEST PUSH2 0x229 PUSH2 0xC350 DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x8DB JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x187F JUMP JUMPDEST PUSH2 0x98B JUMP JUMPDEST PUSH2 0x24F PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x9CE JUMP JUMPDEST PUSH2 0x24F PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x189C JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH2 0x229 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0xB53 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB6D JUMP JUMPDEST PUSH2 0x229 PUSH2 0x4C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBA8 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xBD9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51E DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x7 SLOAD PUSH2 0x52F SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x539 SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x590 JUMPI PUSH2 0x590 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x5A4 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x5AF DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x573 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5EC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x65B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0xD5E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x6 PUSH1 0x7 SLOAD PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x1959 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST PUSH2 0x6C9 SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x6FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x726 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x539 DUP4 DUP4 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6C9 CALLER DUP4 PUSH2 0xDBB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x62F JUMP JUMPDEST PUSH2 0x838 PUSH2 0x1021 JUMP JUMPDEST PUSH2 0x842 PUSH1 0x0 PUSH2 0x104E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8CF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x8BB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x90B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6C9 DUP3 PUSH2 0x109E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x944 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x964 JUMPI PUSH2 0x964 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x978 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x983 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x947 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70C41E37 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE1883C6E SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA5D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 SWAP3 POP PUSH32 0x270B316B51AB2CF3A3BB8CA4D22E76A327D05E762FCAA8BD6AFAF8CFDE9270B7 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xAAF JUMPI PUSH2 0xAAF PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0xAC3 DUP5 DUP3 PUSH2 0x10D1 JUMP JUMPDEST POP DUP1 PUSH2 0xACE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA92 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0xAE5 SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0x1AFFAE2FD35738EC8F6A4212F337C673B41AA2231F1BD5CFEB94463A93ACE1F1 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB32 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB3F DUP5 PUSH2 0x512 JUMP JUMPDEST SWAP1 POP PUSH2 0xB4B DUP2 DUP4 PUSH2 0x19B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E CALLER PUSH2 0x109E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0x10D1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC09 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC30 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCAA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7161C7A7090D78E8031FCA87E845A86B39E0EB9C15436933D2D4CE7F4520C4A5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0xD23 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD52 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD5B DUP2 PUSH2 0x104E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD68 DUP3 DUP3 PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH32 0x459BDAA71B6C253B49D34A7622DC4C6C1C416C0567571C068B392BA7172DDD4C SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO DUP1 PUSH2 0xDF1 JUMPI POP PUSH1 0x64 DUP3 GT JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xE20 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT PUSH2 0xE3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE59 JUMPI PUSH2 0xE59 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE82 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xF32 JUMPI PUSH2 0xC350 DUP3 LT PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP4 MSTORE PUSH1 0xB DUP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE DUP3 MLOAD DUP3 SWAP1 DUP5 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xF12 JUMPI PUSH2 0xF12 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 PUSH2 0xF27 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0xE8C JUMP JUMPDEST POP PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH1 0x0 PUSH2 0xF44 DUP7 DUP7 PUSH2 0x12FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xF6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST DUP5 PUSH1 0x1 SUB PUSH2 0xFCD JUMPI DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xF8A JUMPI PUSH2 0xF8A PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xC79CAD949A408373456DA7A9E88E8114102AA00E03A69733C70E3A0D95944CA7 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x1017 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0xFDB SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0x8AE8B18ED6D499EC84F68235BF3512B3DB155F7911789805D36093467E5971C9 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10AC DUP4 PUSH1 0x1 PUSH2 0xDBB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x10C1 JUMPI PUSH2 0x10C1 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10F8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x112F JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x1160 DUP2 CALLER PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE SWAP2 DUP4 KECCAK256 SWAP1 SWAP2 ADD DUP5 SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 CALLER SWAP2 PUSH32 0x16E5698E3D85C69C8D8CDB9A21893B33518E24D8CB69D9944D4BFD233464C3A2 SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x12F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP6 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x120D JUMPI PUSH2 0x120D PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SUB PUSH2 0x12E4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1243 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1917 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1253 JUMPI PUSH2 0x1253 PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0xB PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1294 JUMPI PUSH2 0x1294 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0xB SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP1 PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH2 0x12EE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11D8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1308 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1315 DUP5 PUSH2 0x512 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBC639C9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E31CE48 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x135C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1370 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0xFF AND ISZERO SWAP2 POP PUSH2 0x168B SWAP1 POP JUMPI PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1397 DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1407 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT ISZERO PUSH2 0x1426 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BE252B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x146F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1493 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT DUP1 PUSH2 0x1509 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1507 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E9ACF17 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1584 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A8 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x15D7 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1687 JUMPI PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST POP POP POP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x16F3 JUMPI PUSH2 0x16F3 PUSH2 0x16AF JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x1718 JUMPI PUSH2 0x1718 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP3 POP DUP8 DUP6 GT ISZERO PUSH2 0x1736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1755 JUMPI DUP2 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x173C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x914 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17AD DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x539 DUP3 PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181F DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1865 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1849 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B8 DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E0 DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1952 JUMPI PUSH2 0x1952 PUSH2 0x18EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1976 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x19A5 JUMPI DUP2 MLOAD DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1989 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xD368DA8617071CE17AA8AB9104EF PC CREATE 0x4A PUSH0 DUP6 CALLDATASIZE 0xBA 0x22 0xAA LOG0 0xDE 0xE3 0xE1 SLT 0xCD DIV 0xEF PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"947:9996:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4602:227;;;;;;:::i;:::-;;:::i;:::-;;;345:25:29;;;333:2;318:18;4602:227:23;;;;;;;;10665:216;;;;;;:::i;:::-;;:::i;:::-;;1085:49;;;;;-1:-1:-1;;;;;1085:49:23;;;;;;-1:-1:-1;;;;;2219:32:29;;;2201:51;;2189:2;2174:18;1085:49:23;2025:233:29;3115:114:23;;;;;;:::i;:::-;;:::i;4339:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4412:23:23;4393:4;4412:23;;;:10;:23;;;;;;;;;4339:101;;;;2619:14:29;;2612:22;2594:41;;2582:2;2567:18;4339:101:23;2454:187:29;10553:108:23;;;;;;:::i;:::-;;:::i;1410:56::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1410:56:23;;;4444:154;;;;;;:::i;:::-;;:::i;3773:271::-;;;;;;:::i;:::-;;:::i;5895:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1293:34::-;;;;;;5653:129;;;;;;:::i;:::-;;:::i;3013:98::-;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;9472:116:23:-;;;;;;:::i;:::-;;:::i;1638:85:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;5126:116:23;;;;;;:::i;:::-;;:::i;1246:43::-;;1284:5;1246:43;;5786:105;;;;;;:::i;:::-;;:::i;9592:224::-;;;;;;:::i;:::-;;:::i;3662:107::-;;;;;;:::i;:::-;;:::i;3485:173::-;;;;;;:::i;:::-;;:::i;8877:255::-;;;;;;:::i;:::-;;:::i;4833:289::-;;;;;;:::i;:::-;;:::i;1210:32::-;;;;;-1:-1:-1;;;;;1210:32:23;;;5567:82;;;:::i;1036:45::-;;;;;-1:-1:-1;;;;;1036:45:23;;;5246:103;;;;;;:::i;:::-;5306:7;5328:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5328:16:23;;5246:103;8778:95;;;;;;:::i;:::-;;:::i;5353:210::-;;;;;;:::i;:::-;;:::i;1470:65::-;;;;;;:::i;:::-;;:::i;4048:287::-;;;;;;:::i;:::-;;:::i;3233:248::-;;;;;;:::i;:::-;;:::i;1182:24::-;;;;;-1:-1:-1;;;;;1182:24:23;;;2543:215:0;;;;;;:::i;:::-;;:::i;4602:227:23:-;4690:7;4705:20;4728:39;4753:13;4728:24;:39::i;:::-;4705:62;;4812:12;4795:13;4781:11;;:27;;;;:::i;:::-;4780:44;;;;:::i;:::-;4773:51;4602:227;-1:-1:-1;;;4602:227:23:o;10665:216::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;10759:9:::1;10754:123;10778:8;:15;10774:1;:19;10754:123;;;10808:15;10826:8;10835:1;10826:11;;;;;;;;:::i;:::-;;;;;;;10808:29;;10845:25;10855:7;10864:5;10845:9;:25::i;:::-;-1:-1:-1::0;10795:3:23;::::1;::::0;::::1;:::i;:::-;;;;10754:123;;;;10665:216:::0;;:::o;3115:114::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3186:38:::1;::::0;-1:-1:-1;;;3186:38:23;;:10:::1;:38;::::0;::::1;5956:25:29::0;-1:-1:-1;;;;;6017:32:29;;5997:18;;;5990:60;3186:22:23::1;::::0;::::1;::::0;5929:18:29;;3186:38:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3115:114:::0;:::o;10553:108::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;10631:25:::1;10641:7;10650:5;10631:9;:25::i;:::-;10553:108:::0;;:::o;4444:154::-;4522:7;4580:13;4574:1;4560:11;;:15;;;;:::i;:::-;4545:11;;:31;;;;:::i;:::-;4544:49;;;;:::i;:::-;4537:56;4444:154;-1:-1:-1;;4444:154:23:o;3773:271::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;-1:-1:-1;;;;;3861:33:23;::::1;3857:62;;3903:16;;-1:-1:-1::0;;;3903:16:23::1;;;;;;;;;;;3857:62;3925:18;:61:::0;;-1:-1:-1;;;;;;3925:61:23::1;-1:-1:-1::0;;;;;3925:61:23;::::1;::::0;;::::1;::::0;;;3997:42:::1;::::0;::::1;::::0;-1:-1:-1;;3997:42:23::1;3773:271:::0;:::o;5895:166::-;2366:10;2348:17;:29;;;:10;:29;;;;;;5995:16;;2348:29;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;6026:30:::1;6036:4;6042:13;6026:9;:30::i;5653:129::-:0;5710:16;5741:36;5751:10;5763:13;5741:9;:36::i;3013:98::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3076:30:::1;::::0;-1:-1:-1;;;3076:30:23;;:10:::1;:30;::::0;::::1;5956:25:29::0;-1:-1:-1;;;;;6017:32:29;;5997:18;;;5990:60;3076:19:23::1;::::0;::::1;::::0;5929:18:29;;3076:30:23::1;5751:305:29::0;2293:101:0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;9472:116:23:-;2248:18;;-1:-1:-1;;;;;2248:18:23;2226:10;:41;2222:77;;2276:23;;-1:-1:-1;;;2276:23:23;;;;;;;;;;;5126:116;-1:-1:-1;;;;;5217:20:23;;;;;;:13;:20;;;;;;;;;5210:27;;;;;;;;;;;;;;;;;5186:16;;5210:27;;;5217:20;5210:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:116;;;:::o;5786:105::-;2366:10;5850:7;2348:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;5872:14:::1;5881:4;5872:8;:14::i;2405:1::-;5786:105:::0;;;:::o;9592:224::-;2248:18;;-1:-1:-1;;;;;2248:18:23;2226:10;:41;2222:77;;2276:23;;-1:-1:-1;;;2276:23:23;;;;;;;;;;;2222:77;9694:9:::1;9689:123;9713:8;:15;9709:1;:19;9689:123;;;9743:15;9761:8;9770:1;9761:11;;;;;;;;:::i;:::-;;;;;;;9743:29;;9780:25;9790:7;9799:5;9780:9;:25::i;:::-;-1:-1:-1::0;9730:3:23;::::1;::::0;::::1;:::i;:::-;;;;9689:123;;3662:107:::0;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3736:13:::1;:28:::0;;-1:-1:-1;;3736:28:23::1;::::0;::::1;;::::0;;;::::1;::::0;;3662:107::o;3485:173::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3549:11:::1;:23:::0;;;3578:18:::1;::::0;:45:::1;::::0;-1:-1:-1;;;3578:45:23;;::::1;::::0;::::1;345:25:29::0;;;-1:-1:-1;;;;;3578:18:23;;::::1;::::0;:34:::1;::::0;318:18:29;;3578:45:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3634:19:23::1;::::0;3643:9;;-1:-1:-1;3634:19:23::1;::::0;-1:-1:-1;3634:19:23;;::::1;3485:173:::0;:::o;8877:255::-;8957:9;8952:124;8976:8;:15;8972:1;:19;8952:124;;;9006:15;9024:8;9033:1;9024:11;;;;;;;;:::i;:::-;;;;;;;9006:29;;9043:26;9057:2;9061:7;9043:13;:26::i;:::-;-1:-1:-1;8993:3:23;;;;:::i;:::-;;;;8952:124;;;;9118:8;9086:41;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;9086:41:23;;;9102:10;;9086:41;;;;;8877:255;;:::o;4833:289::-;4914:7;4929:20;4952:39;4977:13;4952:24;:39::i;:::-;4929:62;;4997:24;5024:49;5059:13;5024:34;:49::i;:::-;4997:76;-1:-1:-1;5086:31:23;4997:76;5086:12;:31;:::i;:::-;5079:38;4833:289;-1:-1:-1;;;;4833:289:23:o;5567:82::-;5602:7;5624:20;5633:10;5624:8;:20::i;:::-;5617:27;;5567:82;:::o;8778:95::-;8842:26;8856:2;8860:7;8842:13;:26::i;5353:210::-;5434:4;5450:13;5467:1;5450:18;5446:53;;5477:22;;-1:-1:-1;;;5477:22:23;;;;;;;;;;;5446:53;1284:5;5530:13;5513:14;;:30;;;;:::i;:::-;5512:46;;5353:210;-1:-1:-1;;5353:210:23:o;1470:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4048:287::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;-1:-1:-1;;;;;4140:35:23;::::1;4136:64;;4184:16;;-1:-1:-1::0;;;4184:16:23::1;;;;;;;;;;;4136:64;4206:20;:67:::0;;-1:-1:-1;;;;;;4206:67:23::1;-1:-1:-1::0;;;;;4206:67:23;::::1;::::0;;::::1;::::0;;;4284:46:::1;::::0;::::1;::::0;-1:-1:-1;;4284:46:23::1;4048:287:::0;:::o;3233:248::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;-1:-1:-1;;;;;3323:33:23;::::1;3319:62;;3365:16;;-1:-1:-1::0;;;3365:16:23::1;;;;;;;;;;;3319:62;3387:17;:39:::0;;-1:-1:-1;;;;;;3387:39:23::1;-1:-1:-1::0;;;;;3387:39:23;::::1;::::0;;::::1;::::0;;;3437::::1;::::0;::::1;::::0;-1:-1:-1;;3437:39:23::1;3233:248:::0;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;2201:51:29::0;2174:18;;2672:31:0::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;9820:165:23:-;9885:29;9899:7;9908:5;9885:13;:29::i;:::-;9927:16;;;;:7;:16;;;;;;9920:23;;-1:-1:-1;;;;;;9920:23:23;;;9954:26;9935:7;;-1:-1:-1;;;;;9954:26:23;;;;;9927:16;9954:26;9820:165;;:::o;6208:1091::-;6281:16;-1:-1:-1;;;;;6309:18:23;;6305:47;;6336:16;;-1:-1:-1;;;6336:16:23;;;;;;;;;;;6305:47;6362:18;;;:41;;;6400:3;6384:13;:19;6362:41;6358:76;;;6412:22;;-1:-1:-1;;;6412:22:23;;;;;;;;;;;6358:76;1284:5;6462:13;6445:14;;:30;;;;:::i;:::-;6444:47;6440:88;;6500:28;;-1:-1:-1;;;6500:28:23;;;;;;;;;;;6440:88;6534:25;6576:13;6562:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6562:28:23;-1:-1:-1;6621:14:23;;6534:56;;-1:-1:-1;6596:22:23;6642:307;6662:13;6658:1;:17;6642:307;;;1284:5;6690:14;:29;6686:70;;6728:28;;-1:-1:-1;;;6728:28:23;;;;;;;;;;;6686:70;6764:23;;;;:7;:23;;;;;;;;:30;;-1:-1:-1;;;;;;6764:30:23;-1:-1:-1;;;;;6764:30:23;;;;;;;;6802:19;;:13;:19;;;;:40;;-1:-1:-1;6802:40:23;;;;;;;;;;;;;6850:11;;6764:23;;6850:11;;6859:1;;6850:11;;;;;;:::i;:::-;;;;;;;;;;:28;6886:16;;;;:::i;:::-;;-1:-1:-1;;6931:3:23;;6642:307;;;-1:-1:-1;6959:14:23;:31;;;6997:24;7024:43;7047:4;7053:13;7024:22;:43::i;:::-;6997:70;;7078:19;7073:57;;7106:24;;-1:-1:-1;;;7106:24:23;;-1:-1:-1;;;;;2219:32:29;;7106:24:23;;;2201:51:29;2174:18;;7106:24:23;2025:233:29;7073:57:23;7141:13;7158:1;7141:18;7137:132;;7194:8;7203:1;7194:11;;;;;;;;:::i;:::-;;;;;;;7188:4;-1:-1:-1;;;;;7174:32:23;;;;;;;;;;;7137:132;;;7253:8;7232:30;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;7232:30:23;;;;;;;;7137:132;-1:-1:-1;7286:8:23;;6208:1091;-1:-1:-1;;;;6208:1091:23:o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:12;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:12;1901:40:0;;;2201:51:29;2174:18;;1901:40:0;2025:233:29;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;6065:139:23:-;6114:7;6129:25;6157:18;6167:4;6173:1;6157:9;:18::i;:::-;6129:46;;6188:8;6197:1;6188:11;;;;;;;;:::i;:::-;;;;;;;6181:18;;;6065:139;;;:::o;9136:332::-;-1:-1:-1;;;;;9206:16:23;;9202:45;;9231:16;;-1:-1:-1;;;9231:16:23;;;;;;;;;;;9202:45;9257:16;;;;:7;:16;;;;;;-1:-1:-1;;;;;9257:16:23;9277:10;9257:30;9253:56;;9296:13;;-1:-1:-1;;;9296:13:23;;;;;;;;;;;9253:56;9315:16;;;;:7;:16;;;;;:21;;-1:-1:-1;;;;;;9315:21:23;-1:-1:-1;;;;;9315:21:23;;;;;9342:34;9315:16;9365:10;9342:13;:34::i;:::-;-1:-1:-1;;;;;9382:17:23;;;;;;:13;:17;;;;;;;;:31;;;;;;;;;;;;;;;;;;;9424:39;9405:7;;9382:17;9439:10;;9424:39;;9382:17;9424:39;9136:332;;:::o;8392:382::-;-1:-1:-1;;;;;8490:20:23;;8462:25;8490:20;;;:13;:20;;;;;:27;;8523:247;8543:17;8539:1;:21;8523:247;;;-1:-1:-1;;;;;8579:20:23;;;;;;:13;:20;;;;;:23;;8606:7;;8579:20;8600:1;;8579:23;;;;;;:::i;:::-;;;;;;;;;:34;8575:189;;-1:-1:-1;;;;;8651:20:23;;;;;;:13;:20;;;;;8672:27;;:31;;8702:1;;8672:31;:::i;:::-;8651:53;;;;;;;;:::i;:::-;;;;;;;;;8625:13;:20;8639:5;-1:-1:-1;;;;;8625:20:23;-1:-1:-1;;;;;8625:20:23;;;;;;;;;;;;8646:1;8625:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:79;;;;-1:-1:-1;;;;;8714:20:23;;;;:13;:20;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8750:5;;8575:189;8562:3;;;;:::i;:::-;;;;8523:247;;;;8456:318;8392:382;;:::o;7303:1085::-;7389:4;7401:20;7424:39;7449:13;7424:24;:39::i;:::-;7401:62;;7469:23;7495:49;7530:13;7495:34;:49::i;:::-;7550:18;;:49;;-1:-1:-1;;;7550:49:23;;;;;345:25:29;;;7469:75:23;;-1:-1:-1;;;;;;7550:18:23;;:35;;318:18:29;;7550:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7610:13:23;;;;7606:761;;-1:-1:-1;7606:761:23;;-1:-1:-1;7606:761:23;7660:9;;-1:-1:-1;;;;;7660:9:23;7728:30;7743:15;7728:12;:30;:::i;:::-;7683:41;;-1:-1:-1;;;7683:41:23;;-1:-1:-1;;;;;7323:15:29;;;7683:41:23;;;7305:34:29;7718:4:23;7355:18:29;;;7348:43;7683:20:23;;;;;7240:18:29;;7683:41:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;7679:112;;;7768:23;;-1:-1:-1;;;7768:23:23;;;;;;;;;;;7679:112;7803:26;;-1:-1:-1;;;7803:26:23;;-1:-1:-1;;;;;2219:32:29;;;7803:26:23;;;2201:51:29;7832:12:23;;7803:20;;;;;;2174:18:29;;7803:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;:89;;;-1:-1:-1;7848:26:23;;-1:-1:-1;;;7848:26:23;;-1:-1:-1;;;;;2219:32:29;;;7848:26:23;;;2201:51:29;7877:15:23;;7848:20;;;;;;2174:18:29;;7848:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;7803:89;7799:131;;;7909:21;;-1:-1:-1;;;7909:21:23;;;;;;;;;;;7799:131;8043:18;;8005:72;;-1:-1:-1;;;8005:72:23;;-1:-1:-1;;;;;7849:15:29;;;8005:72:23;;;7831:34:29;8043:18:23;;;7881::29;;;7874:43;7933:18;;;7926:34;;;7987:15:23;;8005:23;;;;;7766:18:29;;8005:72:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7987:90;;8090:10;8085:71;;8136:18;;8109:47;;-1:-1:-1;;;8109:47:23;;-1:-1:-1;;;;;8136:18:23;;;8109:47;;;2201:51:29;2174:18;;8109:47:23;2025:233:29;8085:71:23;8256:17;;8226:65;;-1:-1:-1;;;8226:65:23;;-1:-1:-1;;;;;7849:15:29;;;8226:65:23;;;7831:34:29;8256:17:23;;;7881:18:29;;;7874:43;7933:18;;;7926:34;;;8208:15:23;;8226:23;;;;;7766:18:29;;8226:65:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8208:83;;8304:10;8299:61;;8342:17;;8323:37;;-1:-1:-1;;;8323:37:23;;-1:-1:-1;;;;;8342:17:23;;;8323:37;;;2201:51:29;2174:18;;8323:37:23;2025:233:29;8299:61:23;7625:742;;;7606:761;-1:-1:-1;8379:4:23;;7303:1085;-1:-1:-1;;;;7303:1085:23:o;14:180:29:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:29;;14:180;-1:-1:-1;14:180:29:o;381:127::-;442:10;437:3;433:20;430:1;423:31;473:4;470:1;463:15;497:4;494:1;487:15;513:902;567:5;620:3;613:4;605:6;601:17;597:27;587:55;;638:1;635;628:12;587:55;674:6;661:20;700:4;723:18;760:2;756;753:10;750:36;;;766:18;;:::i;:::-;812:2;809:1;805:10;844:2;838:9;907:2;903:7;898:2;894;890:11;886:25;878:6;874:38;962:6;950:10;947:22;942:2;930:10;927:18;924:46;921:72;;;973:18;;:::i;:::-;1009:2;1002:22;1059:18;;;1135:15;;;1131:24;;;1093:15;;;;-1:-1:-1;1167:15:29;;;1164:35;;;1195:1;1192;1185:12;1164:35;1231:2;1223:6;1219:15;1208:26;;1243:142;1259:6;1254:3;1251:15;1243:142;;;1325:17;;1313:30;;1363:12;;;;1276;;;;1243:142;;;1403:6;513:902;-1:-1:-1;;;;;;;513:902:29:o;1420:173::-;1488:20;;-1:-1:-1;;;;;1537:31:29;;1527:42;;1517:70;;1583:1;1580;1573:12;1598:422;1691:6;1699;1752:2;1740:9;1731:7;1727:23;1723:32;1720:52;;;1768:1;1765;1758:12;1720:52;1808:9;1795:23;1841:18;1833:6;1830:30;1827:50;;;1873:1;1870;1863:12;1827:50;1896:61;1949:7;1940:6;1929:9;1925:22;1896:61;:::i;:::-;1886:71;;;1976:38;2010:2;1999:9;1995:18;1976:38;:::i;:::-;1966:48;;1598:422;;;;;:::o;2263:186::-;2322:6;2375:2;2363:9;2354:7;2350:23;2346:32;2343:52;;;2391:1;2388;2381:12;2343:52;2414:29;2433:9;2414:29;:::i;2646:254::-;2714:6;2722;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2827:9;2814:23;2804:33;;2856:38;2890:2;2879:9;2875:18;2856:38;:::i;3113:254::-;3181:6;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3281:29;3300:9;3281:29;:::i;:::-;3271:39;3357:2;3342:18;;;;3329:32;;-1:-1:-1;;;3113:254:29:o;3372:632::-;3543:2;3595:21;;;3665:13;;3568:18;;;3687:22;;;3514:4;;3543:2;3766:15;;;;3740:2;3725:18;;;3514:4;3809:169;3823:6;3820:1;3817:13;3809:169;;;3884:13;;3872:26;;3953:15;;;;3918:12;;;;3845:1;3838:9;3809:169;;;-1:-1:-1;3995:3:29;;3372:632;-1:-1:-1;;;;;;3372:632:29:o;4009:118::-;4095:5;4088:13;4081:21;4074:5;4071:32;4061:60;;4117:1;4114;4107:12;4132:241;4188:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:52;;;4257:1;4254;4247:12;4209:52;4296:9;4283:23;4315:28;4337:5;4315:28;:::i;4378:422::-;4471:6;4479;4532:2;4520:9;4511:7;4507:23;4503:32;4500:52;;;4548:1;4545;4538:12;4500:52;4571:29;4590:9;4571:29;:::i;:::-;4561:39;;4651:2;4640:9;4636:18;4623:32;4678:18;4670:6;4667:30;4664:50;;;4710:1;4707;4700:12;4664:50;4733:61;4786:7;4777:6;4766:9;4762:22;4733:61;:::i;:::-;4723:71;;;4378:422;;;;;:::o;5041:127::-;5102:10;5097:3;5093:20;5090:1;5083:31;5133:4;5130:1;5123:15;5157:4;5154:1;5147:15;5173:168;5246:9;;;5277;;5294:15;;;5288:22;;5274:37;5264:71;;5315:18;;:::i;5346:128::-;5413:9;;;5434:11;;;5431:37;;;5448:18;;:::i;5479:127::-;5540:10;5535:3;5531:20;5528:1;5521:31;5571:4;5568:1;5561:15;5595:4;5592:1;5585:15;5611:135;5650:3;5671:17;;;5668:43;;5691:18;;:::i;:::-;-1:-1:-1;5738:1:29;5727:13;;5611:135::o;6061:217::-;6101:1;6127;6117:132;;6171:10;6166:3;6162:20;6159:1;6152:31;6206:4;6203:1;6196:15;6234:4;6231:1;6224:15;6117:132;-1:-1:-1;6263:9:29;;6061:217::o;6283:543::-;6501:13;;6444:3;;6475;;6554:4;6581:15;;;6444:3;6624:175;6638:6;6635:1;6632:13;6624:175;;;6701:13;;6687:28;;6737:14;;;;6774:15;;;;6660:1;6653:9;6624:175;;;-1:-1:-1;6815:5:29;;6283:543;-1:-1:-1;;;;;;6283:543:29:o;6831:125::-;6896:9;;;6917:10;;;6914:36;;;6930:18;;:::i;6961:127::-;7022:10;7017:3;7013:20;7010:1;7003:31;7053:4;7050:1;7043:15;7077:4;7074:1;7067:15;7402:184;7472:6;7525:2;7513:9;7504:7;7500:23;7496:32;7493:52;;;7541:1;7538;7531:12;7493:52;-1:-1:-1;7564:16:29;;7402:184;-1:-1:-1;7402:184:29:o;7971:245::-;8038:6;8091:2;8079:9;8070:7;8066:23;8062:32;8059:52;;;8107:1;8104;8097:12;8059:52;8139:9;8133:16;8158:28;8180:5;8158:28;:::i"},"methodIdentifiers":{"DAI_TOKEN()":"e606df87","TOTALSUPPLY()":"94a08c69","addOwner(address)":"7065cb48","buyPack()":"c37b9bcd","buyPackByUser(address)":"967ed63d","buyPacks(uint256)":"6adbaf75","buyPacksByUser(address,uint256)":"62e21878","changeBalanceReceiver(address)":"e0f78307","changePrice(uint256)":"a2b40d19","changeTransferDaiFlag(bool)":"99e5f896","gammaCardsContract()":"d250f03a","gammaTicketsContract()":"14cca36a","getAmountRequiredToBuyPacks(uint256)":"b48ce653","getPackOwner(uint256)":"d3e6a7ad","getPacksByUser(address)":"8fd5baf7","getPrizeAmountToBuyPacks(uint256)":"3f6ecd48","getPrizeNoFAccountAmountToBuyPacks(uint256)":"01321c4d","isOwner(address)":"2f54bf6e","meetQuantityConditionsToBuy(uint256)":"d6a4c3e4","openPack(uint256,address)":"80f2540b","openPacks(uint256[],address)":"97f8b3d3","owner()":"8da5cb5b","removeOwner(address)":"173825d9","renounceOwnership()":"715018a6","s_balanceReceiver()":"c34e8af4","s_packPrice()":"656bd0ad","s_packs(uint256)":"3cd626fd","s_packsByUser(address,uint256)":"d9e8221e","setGammaCardsContract(address)":"4c7a7ad3","setGammaTicketsContract(address)":"ddb975e8","testOpenPack(uint256,address)":"39e8d3ec","testOpenPacks(uint256[],address)":"0c3e5c00","transferOwnership(address)":"f2fde38b","transferPack(address,uint256)":"d611713e","transferPacks(address,uint256[])":"ab4bdbc8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daiTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_balanceReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaCardsContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientPacksAvailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNumberOfPacks\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGammaCardsContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotYourPack\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnlyOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferPrizeError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"balanceReceiver\",\"type\":\"address\"}],\"name\":\"NewBalanceReceiver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newCardsContract\",\"type\":\"address\"}],\"name\":\"NewGammaCardsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaTicketContract\",\"type\":\"address\"}],\"name\":\"NewGammaTicketsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"NewPrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackPurchased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"PacksPurchased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256[]\",\"name\":\"tokenId\",\"type\":\"uint256[]\"}],\"name\":\"PacksTransfered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DAI_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOTALSUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buyPack\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"buyPackByUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"buyPacks\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"buyPacksByUser\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newBalanceReceiver\",\"type\":\"address\"}],\"name\":\"changeBalanceReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPrice\",\"type\":\"uint256\"}],\"name\":\"changePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_transferDai\",\"type\":\"bool\"}],\"name\":\"changeTransferDaiFlag\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaCardsContract\",\"outputs\":[{\"internalType\":\"contract IGammaCardsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaTicketsContract\",\"outputs\":[{\"internalType\":\"contract IgammaTicketsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"getAmountRequiredToBuyPacks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getPackOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getPacksByUser\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"getPrizeAmountToBuyPacks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"getPrizeNoFAccountAmountToBuyPacks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"meetQuantityConditionsToBuy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerToRemove\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_balanceReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_packPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"s_packs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"s_packsByUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenIds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaCardsContract\",\"type\":\"address\"}],\"name\":\"setGammaCardsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"}],\"name\":\"setGammaTicketsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"testOpenPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"testOpenPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"transferPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaPacks.v3.sol\":\"NofGammaPacksV3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaPacks.v3.sol\":{\"keccak256\":\"0x8b91107b9934ac7de1ce2ef9b9d6ef5c5647879fe7fe0c771663736d822b5318\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde64143305e717e6a5d0117c28c584c4205921c9dbd8ca9e9b8166ad07b7104\",\"dweb:/ipfs/Qmew2Bukovwc2qfM1h5WwbvBQ21dpFiLLF7vCyawrgsts7\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"NewOwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newSigner","type":"address"}],"name":"NewSignerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"SignerRemoved","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6105e461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033","opcodes":"PUSH2 0x5E4 PUSH2 0x3A PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x773B6D12 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x982088F0 EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB4D78AE4 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xB764B1A4 EQ PUSH2 0xBD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x98 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1D7 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xD8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x177 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C72656164792061207369676E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 DUP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x72D4003E8F1AD99F4F488C703A1D183DEE364A6337CB77F8FBA50088CB0FBFA3 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x267 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F742061207369676E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x2CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C66206173206120 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x39B4B3B732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x3525E22824A8A7DF2C9A6029941C824CF95B6447F1E13D5128FD3826D35AFE8B SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x348 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C726561647920616E206F776E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x6E4E2A7C0E1576D48AEABD633D094F622D4F046286FEC8B9045DD7F5C9FB087D SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F7420616E206F776E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x4F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C6620617320616E PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1037BBB732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x58619076ADF5BB0943D100EF88D52D7C3FD691B19D3A9071B555B651FBF418DA SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x579 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x10 SWAP1 DUP3 ADD MSTORE PUSH16 0x24B73B30B634B21030B2323932B9B997 PUSH1 0x81 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBD 0xC1 CHAINID 0xE 0xC0 GT 0xAE CALLVALUE LOG2 PC JUMP SLOAD 0xBD PUSH6 0xBEDDE11324FA LOG3 0x4E 0xE9 0xF 0x1E CALLVALUE 0xA9 PUSH32 0xE2FD3B764736F6C634300081400330000000000000000000000000000000000 ","sourceMap":"58:1693:24:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;58:1693:24;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@addOwner_8697":{"entryPoint":802,"id":8697,"parameterSlots":2,"returnSlots":0},"@addSigner_8784":{"entryPoint":221,"id":8784,"parameterSlots":2,"returnSlots":0},"@removeOwner_8744":{"entryPoint":1027,"id":8744,"parameterSlots":2,"returnSlots":0},"@removeSigner_8831":{"entryPoint":471,"id":8831,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_struct$_Data_$8641_storage_ptrt_address":{"entryPoint":1352,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1412,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3182:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"124:267:29","statements":[{"body":{"nodeType":"YulBlock","src":"170:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"179:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"182:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"172:6:29"},"nodeType":"YulFunctionCall","src":"172:12:29"},"nodeType":"YulExpressionStatement","src":"172:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"145:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"154:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"141:3:29"},"nodeType":"YulFunctionCall","src":"141:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"166:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"137:3:29"},"nodeType":"YulFunctionCall","src":"137:32:29"},"nodeType":"YulIf","src":"134:52:29"},{"nodeType":"YulAssignment","src":"195:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"218:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"205:12:29"},"nodeType":"YulFunctionCall","src":"205:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"195:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"237:45:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"267:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"263:3:29"},"nodeType":"YulFunctionCall","src":"263:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"250:12:29"},"nodeType":"YulFunctionCall","src":"250:32:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"241:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"345:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"354:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"357:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"347:6:29"},"nodeType":"YulFunctionCall","src":"347:12:29"},"nodeType":"YulExpressionStatement","src":"347:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"304:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"315:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"330:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"335:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"326:3:29"},"nodeType":"YulFunctionCall","src":"326:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"339:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"322:3:29"},"nodeType":"YulFunctionCall","src":"322:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"311:3:29"},"nodeType":"YulFunctionCall","src":"311:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"301:2:29"},"nodeType":"YulFunctionCall","src":"301:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"294:6:29"},"nodeType":"YulFunctionCall","src":"294:50:29"},"nodeType":"YulIf","src":"291:70:29"},{"nodeType":"YulAssignment","src":"370:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"380:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"370:6:29"}]}]},"name":"abi_decode_tuple_t_struct$_Data_$8641_storage_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"82:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"93:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"105:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"113:6:29","type":""}],"src":"14:377:29"},{"body":{"nodeType":"YulBlock","src":"570:166:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"587:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"598:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"580:6:29"},"nodeType":"YulFunctionCall","src":"580:21:29"},"nodeType":"YulExpressionStatement","src":"580:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"621:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"632:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"617:3:29"},"nodeType":"YulFunctionCall","src":"617:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"637:2:29","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"610:6:29"},"nodeType":"YulFunctionCall","src":"610:30:29"},"nodeType":"YulExpressionStatement","src":"610:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"660:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"656:3:29"},"nodeType":"YulFunctionCall","src":"656:18:29"},{"hexValue":"496e76616c696420616464726573732e","kind":"string","nodeType":"YulLiteral","src":"676:18:29","type":"","value":"Invalid address."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"649:6:29"},"nodeType":"YulFunctionCall","src":"649:46:29"},"nodeType":"YulExpressionStatement","src":"649:46:29"},{"nodeType":"YulAssignment","src":"704:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"716:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"727:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"712:3:29"},"nodeType":"YulFunctionCall","src":"712:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"704:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"547:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"561:4:29","type":""}],"src":"396:340:29"},{"body":{"nodeType":"YulBlock","src":"915:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"943:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"925:6:29"},"nodeType":"YulFunctionCall","src":"925:21:29"},"nodeType":"YulExpressionStatement","src":"925:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"966:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"977:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:29"},"nodeType":"YulFunctionCall","src":"962:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"982:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"955:6:29"},"nodeType":"YulFunctionCall","src":"955:30:29"},"nodeType":"YulExpressionStatement","src":"955:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1016:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1001:3:29"},"nodeType":"YulFunctionCall","src":"1001:18:29"},{"hexValue":"4164647265737320697320616c72656164792061207369676e65722e","kind":"string","nodeType":"YulLiteral","src":"1021:30:29","type":"","value":"Address is already a signer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"994:6:29"},"nodeType":"YulFunctionCall","src":"994:58:29"},"nodeType":"YulExpressionStatement","src":"994:58:29"},{"nodeType":"YulAssignment","src":"1061:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1073:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1084:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1069:3:29"},"nodeType":"YulFunctionCall","src":"1069:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1061:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"892:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"906:4:29","type":""}],"src":"741:352:29"},{"body":{"nodeType":"YulBlock","src":"1199:102:29","statements":[{"nodeType":"YulAssignment","src":"1209:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1221:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1232:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1217:3:29"},"nodeType":"YulFunctionCall","src":"1217:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1209:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1251:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1266:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1287:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:29"},"nodeType":"YulFunctionCall","src":"1278:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1291:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:29"},"nodeType":"YulFunctionCall","src":"1274:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1262:3:29"},"nodeType":"YulFunctionCall","src":"1262:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1244:6:29"},"nodeType":"YulFunctionCall","src":"1244:51:29"},"nodeType":"YulExpressionStatement","src":"1244:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1168:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1179:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1190:4:29","type":""}],"src":"1098:203:29"},{"body":{"nodeType":"YulBlock","src":"1480:174:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1497:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1508:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1490:6:29"},"nodeType":"YulFunctionCall","src":"1490:21:29"},"nodeType":"YulExpressionStatement","src":"1490:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1531:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1542:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1527:3:29"},"nodeType":"YulFunctionCall","src":"1527:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:2:29","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1520:6:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulExpressionStatement","src":"1520:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1570:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1581:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1566:3:29"},"nodeType":"YulFunctionCall","src":"1566:18:29"},{"hexValue":"41646472657373206973206e6f742061207369676e65722e","kind":"string","nodeType":"YulLiteral","src":"1586:26:29","type":"","value":"Address is not a signer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1559:6:29"},"nodeType":"YulFunctionCall","src":"1559:54:29"},"nodeType":"YulExpressionStatement","src":"1559:54:29"},{"nodeType":"YulAssignment","src":"1622:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:29"},"nodeType":"YulFunctionCall","src":"1630:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1622:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1457:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1471:4:29","type":""}],"src":"1306:348:29"},{"body":{"nodeType":"YulBlock","src":"1833:229:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1850:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1861:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1843:6:29"},"nodeType":"YulFunctionCall","src":"1843:21:29"},"nodeType":"YulExpressionStatement","src":"1843:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1884:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1895:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1880:3:29"},"nodeType":"YulFunctionCall","src":"1880:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"1900:2:29","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1873:6:29"},"nodeType":"YulFunctionCall","src":"1873:30:29"},"nodeType":"YulExpressionStatement","src":"1873:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1923:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1934:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1919:3:29"},"nodeType":"YulFunctionCall","src":"1919:18:29"},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c66206173206120","kind":"string","nodeType":"YulLiteral","src":"1939:34:29","type":"","value":"You cannot remove yourself as a "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1912:6:29"},"nodeType":"YulFunctionCall","src":"1912:62:29"},"nodeType":"YulExpressionStatement","src":"1912:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1994:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2005:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1990:3:29"},"nodeType":"YulFunctionCall","src":"1990:18:29"},{"hexValue":"7369676e65722e","kind":"string","nodeType":"YulLiteral","src":"2010:9:29","type":"","value":"signer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1983:6:29"},"nodeType":"YulFunctionCall","src":"1983:37:29"},"nodeType":"YulExpressionStatement","src":"1983:37:29"},{"nodeType":"YulAssignment","src":"2029:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2052:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2037:3:29"},"nodeType":"YulFunctionCall","src":"2037:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2029:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1810:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1824:4:29","type":""}],"src":"1659:403:29"},{"body":{"nodeType":"YulBlock","src":"2241:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2258:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2251:6:29"},"nodeType":"YulFunctionCall","src":"2251:21:29"},"nodeType":"YulExpressionStatement","src":"2251:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:29"},"nodeType":"YulFunctionCall","src":"2288:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2308:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:29"},"nodeType":"YulFunctionCall","src":"2281:30:29"},"nodeType":"YulExpressionStatement","src":"2281:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2331:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2342:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2327:3:29"},"nodeType":"YulFunctionCall","src":"2327:18:29"},{"hexValue":"4164647265737320697320616c726561647920616e206f776e65722e","kind":"string","nodeType":"YulLiteral","src":"2347:30:29","type":"","value":"Address is already an owner."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2320:6:29"},"nodeType":"YulFunctionCall","src":"2320:58:29"},"nodeType":"YulExpressionStatement","src":"2320:58:29"},{"nodeType":"YulAssignment","src":"2387:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2399:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2410:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2395:3:29"},"nodeType":"YulFunctionCall","src":"2395:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2387:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2218:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2232:4:29","type":""}],"src":"2067:352:29"},{"body":{"nodeType":"YulBlock","src":"2598:174:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2615:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2626:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2608:6:29"},"nodeType":"YulFunctionCall","src":"2608:21:29"},"nodeType":"YulExpressionStatement","src":"2608:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2649:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2660:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2645:3:29"},"nodeType":"YulFunctionCall","src":"2645:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2665:2:29","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2638:6:29"},"nodeType":"YulFunctionCall","src":"2638:30:29"},"nodeType":"YulExpressionStatement","src":"2638:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2699:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2684:3:29"},"nodeType":"YulFunctionCall","src":"2684:18:29"},{"hexValue":"41646472657373206973206e6f7420616e206f776e65722e","kind":"string","nodeType":"YulLiteral","src":"2704:26:29","type":"","value":"Address is not an owner."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2677:6:29"},"nodeType":"YulFunctionCall","src":"2677:54:29"},"nodeType":"YulExpressionStatement","src":"2677:54:29"},{"nodeType":"YulAssignment","src":"2740:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2752:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2763:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2748:3:29"},"nodeType":"YulFunctionCall","src":"2748:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2740:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2575:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2589:4:29","type":""}],"src":"2424:348:29"},{"body":{"nodeType":"YulBlock","src":"2951:229:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2968:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2979:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2961:6:29"},"nodeType":"YulFunctionCall","src":"2961:21:29"},"nodeType":"YulExpressionStatement","src":"2961:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3002:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3013:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2998:3:29"},"nodeType":"YulFunctionCall","src":"2998:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3018:2:29","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2991:6:29"},"nodeType":"YulFunctionCall","src":"2991:30:29"},"nodeType":"YulExpressionStatement","src":"2991:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:18:29"},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e","kind":"string","nodeType":"YulLiteral","src":"3057:34:29","type":"","value":"You cannot remove yourself as an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3030:6:29"},"nodeType":"YulFunctionCall","src":"3030:62:29"},"nodeType":"YulExpressionStatement","src":"3030:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:29"},"nodeType":"YulFunctionCall","src":"3108:18:29"},{"hexValue":"206f776e65722e","kind":"string","nodeType":"YulLiteral","src":"3128:9:29","type":"","value":" owner."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:29"},"nodeType":"YulFunctionCall","src":"3101:37:29"},"nodeType":"YulExpressionStatement","src":"3101:37:29"},{"nodeType":"YulAssignment","src":"3147:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3159:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3170:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3155:3:29"},"nodeType":"YulFunctionCall","src":"3155:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3147:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2928:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2942:4:29","type":""}],"src":"2777:403:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_struct$_Data_$8641_storage_ptrt_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Invalid address.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Address is already a signer.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Address is not a signer.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"You cannot remove yourself as a \")\n mstore(add(headStart, 96), \"signer.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Address is already an owner.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Address is not an owner.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"You cannot remove yourself as an\")\n mstore(add(headStart, 96), \" owner.\")\n tail := add(headStart, 128)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x773B6D12 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x982088F0 EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB4D78AE4 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xB764B1A4 EQ PUSH2 0xBD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x98 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1D7 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xD8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x177 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C72656164792061207369676E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 DUP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x72D4003E8F1AD99F4F488C703A1D183DEE364A6337CB77F8FBA50088CB0FBFA3 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x267 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F742061207369676E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x2CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C66206173206120 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x39B4B3B732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x3525E22824A8A7DF2C9A6029941C824CF95B6447F1E13D5128FD3826D35AFE8B SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x348 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C726561647920616E206F776E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x6E4E2A7C0E1576D48AEABD633D094F622D4F046286FEC8B9045DD7F5C9FB087D SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F7420616E206F776E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x4F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C6620617320616E PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1037BBB732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x58619076ADF5BB0943D100EF88D52D7C3FD691B19D3A9071B555B651FBF418DA SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x579 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x10 SWAP1 DUP3 ADD MSTORE PUSH16 0x24B73B30B634B21030B2323932B9B997 PUSH1 0x81 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBD 0xC1 CHAINID 0xE 0xC0 GT 0xAE CALLVALUE LOG2 PC JUMP SLOAD 0xBD PUSH6 0xBEDDE11324FA LOG3 0x4E 0xE9 0xF 0x1E CALLVALUE 0xA9 PUSH32 0xE2FD3B764736F6C634300081400330000000000000000000000000000000000 ","sourceMap":"58:1693:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:290;;;;;;;;;;-1:-1:-1;1050:290:24;;;;;:::i;:::-;;:::i;:::-;;1346:403;;;;;;;;;;-1:-1:-1;1346:403:24;;;;;:::i;:::-;;:::i;364:281::-;;;;;;;;;;-1:-1:-1;364:281:24;;;;;:::i;:::-;;:::i;651:393::-;;;;;;;;;;-1:-1:-1;651:393:24;;;;;:::i;:::-;;:::i;1050:290::-;-1:-1:-1;;;;;1134:23:24;;1126:52;;;;-1:-1:-1;;;1126:52:24;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1197:23:24;;;;;;:12;;;:23;;;;;;;;1196:24;1188:65;;;;-1:-1:-1;;;1188:65:24;;943:2:29;1188:65:24;;;925:21:29;982:2;962:18;;;955:30;1021;1001:18;;;994:58;1069:18;;1188:65:24;741:352:29;1188:65:24;-1:-1:-1;;;;;1263:23:24;;;;;;1289:4;1263:12;;;:23;;;;;;;;;:30;;-1:-1:-1;;1263:30:24;;;;;;;1308:25;;1244:51:29;;;1308:25:24;;1217:18:29;1308:25:24;;;;;;;;1050:290;;:::o;1346:403::-;-1:-1:-1;;;;;1438:28:24;;1430:57;;;;-1:-1:-1;;;1430:57:24;;;;;;;:::i;:::-;-1:-1:-1;;;;;1505:28:24;;;;;;:12;;;:28;;;;;;;;1497:65;;;;-1:-1:-1;;;1497:65:24;;1508:2:29;1497:65:24;;;1490:21:29;1547:2;1527:18;;;1520:30;1586:26;1566:18;;;1559:54;1630:18;;1497:65:24;1306:348:29;1497:65:24;1598:10;-1:-1:-1;;;;;1580:28:24;;;1572:80;;;;-1:-1:-1;;;1572:80:24;;1861:2:29;1572:80:24;;;1843:21:29;1900:2;1880:18;;;1873:30;1939:34;1919:18;;;1912:62;-1:-1:-1;;;1990:18:29;;;1983:37;2037:19;;1572:80:24;1659:403:29;1572:80:24;-1:-1:-1;;;;;1662:28:24;;1693:5;1662:28;;;:12;;;:28;;;;;;;;;:36;;-1:-1:-1;;1662:36:24;;;1713:29;;1244:51:29;;;1713:29:24;;1217:18:29;1713:29:24;1098:203:29;364:281:24;-1:-1:-1;;;;;446:22:24;;438:51;;;;-1:-1:-1;;;438:51:24;;;;;;;:::i;:::-;-1:-1:-1;;;;;508:21:24;;:11;:21;;;;;;;;;;;;;507:22;499:63;;;;-1:-1:-1;;;499:63:24;;2269:2:29;499:63:24;;;2251:21:29;2308:2;2288:18;;;2281:30;2347;2327:18;;;2320:58;2395:18;;499:63:24;2067:352:29;499:63:24;-1:-1:-1;;;;;572:21:24;;:11;:21;;;;;;;;;;;;:28;;-1:-1:-1;;572:28:24;596:4;572:28;;;615:23;;1244:51:29;;;615:23:24;;1217:18:29;615:23:24;1098:203:29;651:393:24;-1:-1:-1;;;;;741:27:24;;733:56;;;;-1:-1:-1;;;733:56:24;;;;;;;:::i;:::-;-1:-1:-1;;;;;807:26:24;;:11;:26;;;;;;;;;;;;;799:63;;;;-1:-1:-1;;;799:63:24;;2626:2:29;799:63:24;;;2608:21:29;2665:2;2645:18;;;2638:30;2704:26;2684:18;;;2677:54;2748:18;;799:63:24;2424:348:29;799:63:24;897:10;-1:-1:-1;;;;;880:27:24;;;872:79;;;;-1:-1:-1;;;872:79:24;;2979:2:29;872:79:24;;;2961:21:29;3018:2;2998:18;;;2991:30;3057:34;3037:18;;;3030:62;-1:-1:-1;;;3108:18:29;;;3101:37;3155:19;;872:79:24;2777:403:29;872:79:24;-1:-1:-1;;;;;961:26:24;;990:5;961:26;;;;;;;;;;;;:34;;-1:-1:-1;;961:34:24;;;1010:27;;1244:51:29;;;1010:27:24;;1217:18:29;1010:27:24;1098:203:29;14:377;105:6;113;166:2;154:9;145:7;141:23;137:32;134:52;;;182:1;179;172:12;134:52;205:23;;;-1:-1:-1;278:2:29;263:18;;250:32;-1:-1:-1;;;;;311:31:29;;301:42;;291:70;;357:1;354;347:12;291:70;380:5;370:15;;;14:377;;;;;:::o;396:340::-;598:2;580:21;;;637:2;617:18;;;610:30;-1:-1:-1;;;671:2:29;656:18;;649:46;727:2;712:18;;396:340::o"},"methodIdentifiers":{"addOwner(LibControlMgmt.Data storage,address)":"b4d78ae4","addSigner(LibControlMgmt.Data storage,address)":"773b6d12","removeOwner(LibControlMgmt.Data storage,address)":"b764b1a4","removeSigner(LibControlMgmt.Data storage,address)":"982088f0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"NewOwnerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"}],\"name\":\"NewSignerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerRemoved\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/libs/LibControlMgmt.sol\":\"LibControlMgmt\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]}},\"version\":1}"}},"contracts/gamma/libs/LibPackVerifier.sol":{"LibPackVerifier":{"abi":[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verifyPackSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"61058c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033","opcodes":"PUSH2 0x58C PUSH2 0x3A PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38FB7D8B EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x39C JUMP JUMPDEST PUSH2 0x69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCD DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x84 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3C SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x113 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP7 SWAP4 SWAP3 POP POP PUSH2 0x11F SWAP1 POP JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x12F DUP7 DUP7 PUSH2 0x149 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x13F DUP3 DUP3 PUSH2 0x196 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x183 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x175 DUP9 DUP3 DUP6 DUP6 PUSH2 0x258 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x18F JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AA JUMPI PUSH2 0x1AA PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1B3 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI PUSH2 0x1C7 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1F9 JUMPI PUSH2 0x1F9 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x21F JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x233 JUMPI PUSH2 0x233 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x254 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x216 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x293 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x313 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x31D JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x416 JUMPI PUSH2 0x416 PUSH2 0x327 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x43B JUMPI PUSH2 0x43B PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD DUP14 DUP5 GT ISZERO PUSH2 0x457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP7 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x47A JUMPI PUSH2 0x46D DUP7 PUSH2 0x33D JUMP JUMPDEST DUP2 MSTORE SWAP5 DUP7 ADD SWAP5 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST POP SWAP8 POP POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x493 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4A1 DUP9 DUP3 DUP10 ADD PUSH2 0x353 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP3 PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x34 DUP3 ADD DUP4 MLOAD PUSH1 0x20 DUP1 DUP7 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4FC JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP POP PUSH32 0x3078663164443731383935653439623135363336393339363964653530383938 DUP4 MSTORE PUSH10 0x31393763444633343831 PUSH1 0xB0 SHL SWAP1 DUP4 ADD MSTORE POP PUSH1 0x2A ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SGT PUSH25 0x24AF166079DF823AF04362858A738D821388548F231F814AE4 0xE5 0xAC 0xCC 0xB3 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"197:571:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;197:571:25;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_throwError_2353":{"entryPoint":406,"id":2353,"parameterSlots":2,"returnSlots":0},"@recover_2110":{"entryPoint":287,"id":2110,"parameterSlots":2,"returnSlots":1},"@toEthSignedMessageHash_2369":{"entryPoint":null,"id":2369,"parameterSlots":1,"returnSlots":1},"@tryRecover_2080":{"entryPoint":329,"id":2080,"parameterSlots":2,"returnSlots":3},"@tryRecover_2268":{"entryPoint":600,"id":2268,"parameterSlots":4,"returnSlots":3},"@verifyPackSigner_8880":{"entryPoint":105,"id":8880,"parameterSlots":5,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":851,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr":{"entryPoint":924,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":829,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1202,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x21":{"entryPoint":1344,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":807,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4370:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"193:109:29","statements":[{"nodeType":"YulAssignment","src":"203:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"225:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"212:12:29"},"nodeType":"YulFunctionCall","src":"212:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"203:5:29"}]},{"body":{"nodeType":"YulBlock","src":"280:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"289:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"292:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"282:6:29"},"nodeType":"YulFunctionCall","src":"282:12:29"},"nodeType":"YulExpressionStatement","src":"282:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"254:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"265:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"272:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"261:3:29"},"nodeType":"YulFunctionCall","src":"261:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"251:2:29"},"nodeType":"YulFunctionCall","src":"251:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"244:6:29"},"nodeType":"YulFunctionCall","src":"244:35:29"},"nodeType":"YulIf","src":"241:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"172:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"183:5:29","type":""}],"src":"146:156:29"},{"body":{"nodeType":"YulBlock","src":"379:275:29","statements":[{"body":{"nodeType":"YulBlock","src":"428:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"440:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"430:6:29"},"nodeType":"YulFunctionCall","src":"430:12:29"},"nodeType":"YulExpressionStatement","src":"430:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"407:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"415:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:29"},"nodeType":"YulFunctionCall","src":"403:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"422:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"399:3:29"},"nodeType":"YulFunctionCall","src":"399:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"392:6:29"},"nodeType":"YulFunctionCall","src":"392:35:29"},"nodeType":"YulIf","src":"389:55:29"},{"nodeType":"YulAssignment","src":"453:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"476:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"463:12:29"},"nodeType":"YulFunctionCall","src":"463:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"453:6:29"}]},{"body":{"nodeType":"YulBlock","src":"526:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"535:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"538:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:29"},"nodeType":"YulFunctionCall","src":"528:12:29"},"nodeType":"YulExpressionStatement","src":"528:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"498:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"506:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"495:2:29"},"nodeType":"YulFunctionCall","src":"495:30:29"},"nodeType":"YulIf","src":"492:50:29"},{"nodeType":"YulAssignment","src":"551:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"567:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"575:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"563:3:29"},"nodeType":"YulFunctionCall","src":"563:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"551:8:29"}]},{"body":{"nodeType":"YulBlock","src":"632:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"641:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"644:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:29"},"nodeType":"YulFunctionCall","src":"634:12:29"},"nodeType":"YulExpressionStatement","src":"634:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"603:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"611:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"599:3:29"},"nodeType":"YulFunctionCall","src":"599:19:29"},{"kind":"number","nodeType":"YulLiteral","src":"620:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"595:3:29"},"nodeType":"YulFunctionCall","src":"595:30:29"},{"name":"end","nodeType":"YulIdentifier","src":"627:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"592:2:29"},"nodeType":"YulFunctionCall","src":"592:39:29"},"nodeType":"YulIf","src":"589:59:29"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"342:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"350:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"358:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"368:6:29","type":""}],"src":"307:347:29"},{"body":{"nodeType":"YulBlock","src":"822:1484:29","statements":[{"body":{"nodeType":"YulBlock","src":"869:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"878:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"881:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"871:6:29"},"nodeType":"YulFunctionCall","src":"871:12:29"},"nodeType":"YulExpressionStatement","src":"871:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"843:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"852:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"839:3:29"},"nodeType":"YulFunctionCall","src":"839:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"864:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"835:3:29"},"nodeType":"YulFunctionCall","src":"835:33:29"},"nodeType":"YulIf","src":"832:53:29"},{"nodeType":"YulVariableDeclaration","src":"894:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"920:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"907:12:29"},"nodeType":"YulFunctionCall","src":"907:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"898:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"993:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1002:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1005:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"995:6:29"},"nodeType":"YulFunctionCall","src":"995:12:29"},"nodeType":"YulExpressionStatement","src":"995:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"952:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"963:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"978:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"983:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"974:3:29"},"nodeType":"YulFunctionCall","src":"974:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"987:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"970:3:29"},"nodeType":"YulFunctionCall","src":"970:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"959:3:29"},"nodeType":"YulFunctionCall","src":"959:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"949:2:29"},"nodeType":"YulFunctionCall","src":"949:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"942:6:29"},"nodeType":"YulFunctionCall","src":"942:50:29"},"nodeType":"YulIf","src":"939:70:29"},{"nodeType":"YulAssignment","src":"1018:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"1028:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1018:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1042:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1052:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1046:2:29","type":""}]},{"nodeType":"YulAssignment","src":"1063:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1090:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1101:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1086:3:29"},"nodeType":"YulFunctionCall","src":"1086:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1073:12:29"},"nodeType":"YulFunctionCall","src":"1073:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1063:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1114:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1145:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1156:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1141:3:29"},"nodeType":"YulFunctionCall","src":"1141:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1128:12:29"},"nodeType":"YulFunctionCall","src":"1128:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1118:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1169:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1179:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1173:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1224:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1233:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1236:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1226:6:29"},"nodeType":"YulFunctionCall","src":"1226:12:29"},"nodeType":"YulExpressionStatement","src":"1226:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1212:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1220:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1209:2:29"},"nodeType":"YulFunctionCall","src":"1209:14:29"},"nodeType":"YulIf","src":"1206:34:29"},{"nodeType":"YulVariableDeclaration","src":"1249:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1263:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1274:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1259:3:29"},"nodeType":"YulFunctionCall","src":"1259:22:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1253:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1329:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1338:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1341:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1331:6:29"},"nodeType":"YulFunctionCall","src":"1331:12:29"},"nodeType":"YulExpressionStatement","src":"1331:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1308:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1312:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1304:3:29"},"nodeType":"YulFunctionCall","src":"1304:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1300:3:29"},"nodeType":"YulFunctionCall","src":"1300:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1293:6:29"},"nodeType":"YulFunctionCall","src":"1293:35:29"},"nodeType":"YulIf","src":"1290:55:29"},{"nodeType":"YulVariableDeclaration","src":"1354:26:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1377:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1364:12:29"},"nodeType":"YulFunctionCall","src":"1364:16:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1358:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1403:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1405:16:29"},"nodeType":"YulFunctionCall","src":"1405:18:29"},"nodeType":"YulExpressionStatement","src":"1405:18:29"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1395:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1399:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1392:2:29"},"nodeType":"YulFunctionCall","src":"1392:10:29"},"nodeType":"YulIf","src":"1389:36:29"},{"nodeType":"YulVariableDeclaration","src":"1434:20:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1448:1:29","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"1451:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1444:3:29"},"nodeType":"YulFunctionCall","src":"1444:10:29"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"1438:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1463:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1483:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1477:5:29"},"nodeType":"YulFunctionCall","src":"1477:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1467:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1495:56:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1517:6:29"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"1533:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1537:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1529:3:29"},"nodeType":"YulFunctionCall","src":"1529:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1546:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1542:3:29"},"nodeType":"YulFunctionCall","src":"1542:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1525:3:29"},"nodeType":"YulFunctionCall","src":"1525:25:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1513:3:29"},"nodeType":"YulFunctionCall","src":"1513:38:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1499:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1610:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1612:16:29"},"nodeType":"YulFunctionCall","src":"1612:18:29"},"nodeType":"YulExpressionStatement","src":"1612:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1569:10:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1581:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1566:2:29"},"nodeType":"YulFunctionCall","src":"1566:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1589:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1601:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1586:2:29"},"nodeType":"YulFunctionCall","src":"1586:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1563:2:29"},"nodeType":"YulFunctionCall","src":"1563:46:29"},"nodeType":"YulIf","src":"1560:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1648:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1652:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1641:6:29"},"nodeType":"YulFunctionCall","src":"1641:22:29"},"nodeType":"YulExpressionStatement","src":"1641:22:29"},{"nodeType":"YulVariableDeclaration","src":"1672:17:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1683:6:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1676:3:29","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1705:6:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1713:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1698:6:29"},"nodeType":"YulFunctionCall","src":"1698:18:29"},"nodeType":"YulExpressionStatement","src":"1698:18:29"},{"nodeType":"YulAssignment","src":"1725:22:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1736:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1744:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1732:3:29"},"nodeType":"YulFunctionCall","src":"1732:15:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1725:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"1756:34:29","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1778:2:29"},{"name":"_5","nodeType":"YulIdentifier","src":"1782:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1774:3:29"},"nodeType":"YulFunctionCall","src":"1774:11:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1787:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1770:3:29"},"nodeType":"YulFunctionCall","src":"1770:20:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1760:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1822:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1831:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1834:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1824:6:29"},"nodeType":"YulFunctionCall","src":"1824:12:29"},"nodeType":"YulExpressionStatement","src":"1824:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1805:6:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1813:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1802:2:29"},"nodeType":"YulFunctionCall","src":"1802:19:29"},"nodeType":"YulIf","src":"1799:39:29"},{"nodeType":"YulVariableDeclaration","src":"1847:22:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1862:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1866:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:11:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1851:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1934:90:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1955:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1977:3:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"1960:16:29"},"nodeType":"YulFunctionCall","src":"1960:21:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1948:6:29"},"nodeType":"YulFunctionCall","src":"1948:34:29"},"nodeType":"YulExpressionStatement","src":"1948:34:29"},{"nodeType":"YulAssignment","src":"1995:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2006:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2011:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:29"},"nodeType":"YulFunctionCall","src":"2002:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1995:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1889:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1894:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1886:2:29"},"nodeType":"YulFunctionCall","src":"1886:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1902:23:29","statements":[{"nodeType":"YulAssignment","src":"1904:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1915:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1920:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1911:3:29"},"nodeType":"YulFunctionCall","src":"1911:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1904:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1882:3:29","statements":[]},"src":"1878:146:29"},{"nodeType":"YulAssignment","src":"2033:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2043:6:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2033:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2058:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2091:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2102:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2087:3:29"},"nodeType":"YulFunctionCall","src":"2087:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2074:12:29"},"nodeType":"YulFunctionCall","src":"2074:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2062:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2135:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2144:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2147:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2137:6:29"},"nodeType":"YulFunctionCall","src":"2137:12:29"},"nodeType":"YulExpressionStatement","src":"2137:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2121:8:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2131:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2118:2:29"},"nodeType":"YulFunctionCall","src":"2118:16:29"},"nodeType":"YulIf","src":"2115:36:29"},{"nodeType":"YulVariableDeclaration","src":"2160:86:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2227:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:29"},"nodeType":"YulFunctionCall","src":"2212:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2238:7:29"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2186:25:29"},"nodeType":"YulFunctionCall","src":"2186:60:29"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"2164:8:29","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"2174:8:29","type":""}]},{"nodeType":"YulAssignment","src":"2255:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2265:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2255:6:29"}]},{"nodeType":"YulAssignment","src":"2282:18:29","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2292:8:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2282:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"756:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"767:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"779:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"787:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"795:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"803:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"811:6:29","type":""}],"src":"659:1647:29"},{"body":{"nodeType":"YulBlock","src":"2420:102:29","statements":[{"nodeType":"YulAssignment","src":"2430:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:29"},"nodeType":"YulFunctionCall","src":"2438:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2430:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2472:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2487:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2503:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2508:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2499:3:29"},"nodeType":"YulFunctionCall","src":"2499:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2512:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2495:3:29"},"nodeType":"YulFunctionCall","src":"2495:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2483:3:29"},"nodeType":"YulFunctionCall","src":"2483:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2465:6:29"},"nodeType":"YulFunctionCall","src":"2465:51:29"},"nodeType":"YulExpressionStatement","src":"2465:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2389:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2400:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2411:4:29","type":""}],"src":"2311:211:29"},{"body":{"nodeType":"YulBlock","src":"2849:620:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2866:3:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2879:2:29","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"2883:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2875:3:29"},"nodeType":"YulFunctionCall","src":"2875:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2896:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2892:3:29"},"nodeType":"YulFunctionCall","src":"2892:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2871:3:29"},"nodeType":"YulFunctionCall","src":"2871:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2859:6:29"},"nodeType":"YulFunctionCall","src":"2859:66:29"},"nodeType":"YulExpressionStatement","src":"2859:66:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2945:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2950:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2941:3:29"},"nodeType":"YulFunctionCall","src":"2941:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"2955:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2934:6:29"},"nodeType":"YulFunctionCall","src":"2934:28:29"},"nodeType":"YulExpressionStatement","src":"2934:28:29"},{"nodeType":"YulVariableDeclaration","src":"2971:25:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2988:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2993:2:29","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2984:3:29"},"nodeType":"YulFunctionCall","src":"2984:12:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"2975:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3005:27:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3025:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3019:5:29"},"nodeType":"YulFunctionCall","src":"3019:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3009:6:29","type":""}]},{"nodeType":"YulAssignment","src":"3041:14:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"3050:5:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3041:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"3064:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3074:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3068:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3087:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3105:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3113:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3101:3:29"},"nodeType":"YulFunctionCall","src":"3101:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3091:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3125:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3134:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3129:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3193:137:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3214:5:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3231:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3225:5:29"},"nodeType":"YulFunctionCall","src":"3225:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"3240:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3221:3:29"},"nodeType":"YulFunctionCall","src":"3221:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3207:6:29"},"nodeType":"YulFunctionCall","src":"3207:39:29"},"nodeType":"YulExpressionStatement","src":"3207:39:29"},{"nodeType":"YulAssignment","src":"3259:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3272:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3279:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3268:3:29"},"nodeType":"YulFunctionCall","src":"3268:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3259:5:29"}]},{"nodeType":"YulAssignment","src":"3295:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3309:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3317:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:29"},"nodeType":"YulFunctionCall","src":"3305:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3295:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3155:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"3158:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3152:2:29"},"nodeType":"YulFunctionCall","src":"3152:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3166:18:29","statements":[{"nodeType":"YulAssignment","src":"3168:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3177:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"3180:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3173:3:29"},"nodeType":"YulFunctionCall","src":"3173:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3168:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3148:3:29","statements":[]},"src":"3144:186:29"},{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3346:5:29"},{"hexValue":"3078663164443731383935653439623135363336393339363964653530383938","kind":"string","nodeType":"YulLiteral","src":"3353:34:29","type":"","value":"0xf1dD71895e49b1563693969de50898"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3339:6:29"},"nodeType":"YulFunctionCall","src":"3339:49:29"},"nodeType":"YulExpressionStatement","src":"3339:49:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3408:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3415:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3404:3:29"},"nodeType":"YulFunctionCall","src":"3404:14:29"},{"hexValue":"31393763444633343831","kind":"string","nodeType":"YulLiteral","src":"3420:12:29","type":"","value":"197cDF3481"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3397:6:29"},"nodeType":"YulFunctionCall","src":"3397:36:29"},"nodeType":"YulExpressionStatement","src":"3397:36:29"},{"nodeType":"YulAssignment","src":"3442:21:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3453:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"3460:2:29","type":"","value":"42"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3449:3:29"},"nodeType":"YulFunctionCall","src":"3449:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3442:3:29"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2809:3:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2814:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2822:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2830:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2841:3:29","type":""}],"src":"2527:942:29"},{"body":{"nodeType":"YulBlock","src":"3506:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3523:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3530:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3535:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3526:3:29"},"nodeType":"YulFunctionCall","src":"3526:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3516:6:29"},"nodeType":"YulFunctionCall","src":"3516:31:29"},"nodeType":"YulExpressionStatement","src":"3516:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3563:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3566:4:29","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3556:6:29"},"nodeType":"YulFunctionCall","src":"3556:15:29"},"nodeType":"YulExpressionStatement","src":"3556:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3587:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3590:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3580:6:29"},"nodeType":"YulFunctionCall","src":"3580:15:29"},"nodeType":"YulExpressionStatement","src":"3580:15:29"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"3474:127:29"},{"body":{"nodeType":"YulBlock","src":"3707:76:29","statements":[{"nodeType":"YulAssignment","src":"3717:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3729:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3740:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3725:3:29"},"nodeType":"YulFunctionCall","src":"3725:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3717:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3759:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3752:6:29"},"nodeType":"YulFunctionCall","src":"3752:25:29"},"nodeType":"YulExpressionStatement","src":"3752:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3676:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3687:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3698:4:29","type":""}],"src":"3606:177:29"},{"body":{"nodeType":"YulBlock","src":"3889:76:29","statements":[{"nodeType":"YulAssignment","src":"3899:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3911:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3922:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3907:3:29"},"nodeType":"YulFunctionCall","src":"3907:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3899:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3941:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3952:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3934:6:29"},"nodeType":"YulFunctionCall","src":"3934:25:29"},"nodeType":"YulExpressionStatement","src":"3934:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3858:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3869:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3880:4:29","type":""}],"src":"3788:177:29"},{"body":{"nodeType":"YulBlock","src":"4151:217:29","statements":[{"nodeType":"YulAssignment","src":"4161:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4173:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4184:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4169:3:29"},"nodeType":"YulFunctionCall","src":"4169:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4161:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4204:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"4215:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4197:6:29"},"nodeType":"YulFunctionCall","src":"4197:25:29"},"nodeType":"YulExpressionStatement","src":"4197:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4242:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4253:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4238:3:29"},"nodeType":"YulFunctionCall","src":"4238:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4262:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4270:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4258:3:29"},"nodeType":"YulFunctionCall","src":"4258:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4231:6:29"},"nodeType":"YulFunctionCall","src":"4231:45:29"},"nodeType":"YulExpressionStatement","src":"4231:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4307:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4292:3:29"},"nodeType":"YulFunctionCall","src":"4292:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"4312:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4285:6:29"},"nodeType":"YulFunctionCall","src":"4285:34:29"},"nodeType":"YulExpressionStatement","src":"4285:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4339:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:29"},"nodeType":"YulFunctionCall","src":"4335:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"4355:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4328:6:29"},"nodeType":"YulFunctionCall","src":"4328:34:29"},"nodeType":"YulExpressionStatement","src":"4328:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4096:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4107:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4115:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4123:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4131:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4142:4:29","type":""}],"src":"3970:398:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n let _1 := 32\n value1 := calldataload(add(headStart, _1))\n let offset := calldataload(add(headStart, 64))\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _4)\n dst := add(memPtr, _1)\n let srcEnd := add(add(_3, _5), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, abi_decode_uint8(src))\n dst := add(dst, _1)\n }\n value2 := memPtr\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _2) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n let pos_1 := add(pos, 52)\n let length := mload(value2)\n pos_1 := pos_1\n let _1 := 0x20\n let srcPtr := add(value2, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, and(mload(srcPtr), 0xff))\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(pos_1, \"0xf1dD71895e49b1563693969de50898\")\n mstore(add(pos_1, _1), \"197cDF3481\")\n end := add(pos_1, 42)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38FB7D8B EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x39C JUMP JUMPDEST PUSH2 0x69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCD DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x84 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3C SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x113 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP7 SWAP4 SWAP3 POP POP PUSH2 0x11F SWAP1 POP JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x12F DUP7 DUP7 PUSH2 0x149 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x13F DUP3 DUP3 PUSH2 0x196 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x183 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x175 DUP9 DUP3 DUP6 DUP6 PUSH2 0x258 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x18F JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AA JUMPI PUSH2 0x1AA PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1B3 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI PUSH2 0x1C7 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1F9 JUMPI PUSH2 0x1F9 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x21F JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x233 JUMPI PUSH2 0x233 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x254 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x216 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x293 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x313 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x31D JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x416 JUMPI PUSH2 0x416 PUSH2 0x327 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x43B JUMPI PUSH2 0x43B PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD DUP14 DUP5 GT ISZERO PUSH2 0x457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP7 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x47A JUMPI PUSH2 0x46D DUP7 PUSH2 0x33D JUMP JUMPDEST DUP2 MSTORE SWAP5 DUP7 ADD SWAP5 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST POP SWAP8 POP POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x493 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4A1 DUP9 DUP3 DUP10 ADD PUSH2 0x353 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP3 PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x34 DUP3 ADD DUP4 MLOAD PUSH1 0x20 DUP1 DUP7 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4FC JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP POP PUSH32 0x3078663164443731383935653439623135363336393339363964653530383938 DUP4 MSTORE PUSH10 0x31393763444633343831 PUSH1 0xB0 SHL SWAP1 DUP4 ADD MSTORE POP PUSH1 0x2A ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SGT PUSH25 0x24AF166079DF823AF04362858A738D821388548F231F814AE4 0xE5 0xAC 0xCC 0xB3 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"197:571:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;297:469;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2483:32:29;;;2465:51;;2453:2;2438:18;297:469:25;;;;;;;;469:7;488:19;510:150;550:6;558:10;570:8;533:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;510:125;;;;;;1403:34:15;1298:14;1390:48;;;1499:4;1492:25;;;;1597:4;1581:21;;;1222:460;510:150:25;488:172;;671:23;697:30;717:9;;697:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:11:25;;:30;-1:-1:-1;;697:19:25;:30;-1:-1:-1;697:30:25:i;:::-;671:56;297:469;-1:-1:-1;;;;;;;;297:469:25:o;3702:255:14:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:14;;3702:255;-1:-1:-1;;;;3702:255:14:o;2129:766::-;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:14;;2811:1;;-1:-1:-1;2815:35:14;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:14;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:14;;;;;3752:25:29;;;3725:18;;7550:46:14;;;;;;;;7479:243;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:14;;;;;3752:25:29;;;3725:18;;7679:32:14;3606:177:29;7613:109:14;7196:532;;:::o;5140:1530::-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:14;;-1:-1:-1;6301:30:14;;-1:-1:-1;6333:1:14;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;4197:25:29;;;4270:4;4258:17;;4238:18;;;4231:45;;;;4292:18;;;4285:34;;;4335:18;;;4328:34;;;6457:24:14;;4169:19:29;;6457:24:14;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:14;;-1:-1:-1;;6457:24:14;;;-1:-1:-1;;;;;;;6495:20:14;;6491:113;;-1:-1:-1;6547:1:14;;-1:-1:-1;6551:29:14;;-1:-1:-1;6547:1:14;;-1:-1:-1;6531:62:14;;6491:113;6622:6;-1:-1:-1;6630:20:14;;-1:-1:-1;6630:20:14;;-1:-1:-1;5140:1530:14;;;;;;;;;:::o;14:127:29:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:156;212:20;;272:4;261:16;;251:27;;241:55;;292:1;289;282:12;241:55;146:156;;;:::o;307:347::-;358:8;368:6;422:3;415:4;407:6;403:17;399:27;389:55;;440:1;437;430:12;389:55;-1:-1:-1;463:20:29;;506:18;495:30;;492:50;;;538:1;535;528:12;492:50;575:4;567:6;563:17;551:29;;627:3;620:4;611:6;603;599:19;595:30;592:39;589:59;;;644:1;641;634:12;589:59;307:347;;;;;:::o;659:1647::-;779:6;787;795;803;811;864:3;852:9;843:7;839:23;835:33;832:53;;;881:1;878;871:12;832:53;907:23;;-1:-1:-1;;;;;959:31:29;;949:42;;939:70;;1005:1;1002;995:12;939:70;1028:5;-1:-1:-1;1052:2:29;1086:18;;;1073:32;;-1:-1:-1;1156:2:29;1141:18;;1128:32;1179:18;1209:14;;;1206:34;;;1236:1;1233;1226:12;1206:34;1274:6;1263:9;1259:22;1249:32;;1319:7;1312:4;1308:2;1304:13;1300:27;1290:55;;1341:1;1338;1331:12;1290:55;1377:2;1364:16;1399:2;1395;1392:10;1389:36;;;1405:18;;:::i;:::-;1451:2;1448:1;1444:10;1483:2;1477:9;1546:2;1542:7;1537:2;1533;1529:11;1525:25;1517:6;1513:38;1601:6;1589:10;1586:22;1581:2;1569:10;1566:18;1563:46;1560:72;;;1612:18;;:::i;:::-;1648:2;1641:22;1698:18;;;1774:11;;;1770:20;;;1732:15;;;1802:19;;;1799:39;;;1834:1;1831;1824:12;1799:39;1858:11;;;;1878:146;1894:6;1889:3;1886:15;1878:146;;;1960:21;1977:3;1960:21;:::i;:::-;1948:34;;1911:12;;;;2002;;1878:146;;;-1:-1:-1;2043:6:29;-1:-1:-1;;;2102:2:29;2087:18;;2074:32;;-1:-1:-1;2118:16:29;;;2115:36;;;2147:1;2144;2137:12;2115:36;;;2186:60;2238:7;2227:8;2216:9;2212:24;2186:60;:::i;:::-;659:1647;;;;-1:-1:-1;659:1647:29;;-1:-1:-1;2265:8:29;;2160:86;659:1647;-1:-1:-1;;;659:1647:29:o;2527:942::-;2896:26;2892:31;2883:6;2879:2;2875:15;2871:53;2866:3;2859:66;2955:6;2950:2;2945:3;2941:12;2934:28;2841:3;2993:2;2988:3;2984:12;3025:6;3019:13;3074:4;3113:2;3105:6;3101:15;3134:1;3144:186;3158:6;3155:1;3152:13;3144:186;;;3225:13;;3240:4;3221:24;3207:39;;3268:14;;;;3305:15;;;;3180:1;3173:9;3144:186;;;-1:-1:-1;;3353:34:29;3339:49;;-1:-1:-1;;;3404:14:29;;;3397:36;-1:-1:-1;3460:2:29;3449:14;;2527:942;-1:-1:-1;;;;;2527:942:29:o;3474:127::-;3535:10;3530:3;3526:20;3523:1;3516:31;3566:4;3563:1;3556:15;3590:4;3587:1;3580:15"},"methodIdentifiers":{"verifyPackSigner(address,uint256,uint8[],bytes)":"38fb7d8b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verifyPackSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/libs/LibPackVerifier.sol\":\"LibPackVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]}},\"version\":1}"}},"contracts/gamma/libs/LibStringUtils.sol":{"LibStringUtils":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6102ce61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033","opcodes":"PUSH2 0x2CE PUSH2 0x3A PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6900A3AE EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x16C JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x185 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 SUB PUSH2 0x8A JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xB4 JUMPI DUP1 PUSH2 0x9E DUP2 PUSH2 0x1E9 JUMP JUMPDEST SWAP2 POP PUSH2 0xAD SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x218 JUMP JUMPDEST SWAP2 POP PUSH2 0x8E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCF JUMPI PUSH2 0xCF PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x164 JUMPI PUSH2 0x10E PUSH1 0x1 DUP4 PUSH2 0x242 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B PUSH1 0xA DUP7 PUSH2 0x25B JUMP JUMPDEST PUSH2 0x126 SWAP1 PUSH1 0x30 PUSH2 0x26F JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x13B JUMPI PUSH2 0x13B PUSH2 0x282 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x15D PUSH1 0xA DUP7 PUSH2 0x218 JUMP JUMPDEST SWAP5 POP PUSH2 0xFD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x196 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1FB JUMPI PUSH2 0x1FB PUSH2 0x1D3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x227 JUMPI PUSH2 0x227 PUSH2 0x202 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x26A JUMPI PUSH2 0x26A PUSH2 0x202 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH24 0x7E20A0452E201D3312DD3A508695794A6A7FC48E20C536FD MSTORE CALL 0x49 0x27 0xC5 0xA9 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"58:647:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;58:647:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@toString_8961":{"entryPoint":99,"id":8961,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":364,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed":{"entryPoint":389,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":623,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":536,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":578,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":489,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":603,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":467,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":514,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":642,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":556,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1930:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:29"},"nodeType":"YulFunctionCall","src":"132:12:29"},"nodeType":"YulExpressionStatement","src":"132:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:29"},"nodeType":"YulFunctionCall","src":"101:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:29"},"nodeType":"YulFunctionCall","src":"97:32:29"},"nodeType":"YulIf","src":"94:52:29"},{"nodeType":"YulAssignment","src":"155:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:29"},"nodeType":"YulFunctionCall","src":"165:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:29","type":""}],"src":"14:180:29"},{"body":{"nodeType":"YulBlock","src":"328:427:29","statements":[{"nodeType":"YulVariableDeclaration","src":"338:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"348:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"342:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"366:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"377:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"359:6:29"},"nodeType":"YulFunctionCall","src":"359:21:29"},"nodeType":"YulExpressionStatement","src":"359:21:29"},{"nodeType":"YulVariableDeclaration","src":"389:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"409:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"403:5:29"},"nodeType":"YulFunctionCall","src":"403:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"393:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"436:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"447:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"432:3:29"},"nodeType":"YulFunctionCall","src":"432:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"425:6:29"},"nodeType":"YulFunctionCall","src":"425:34:29"},"nodeType":"YulExpressionStatement","src":"425:34:29"},{"nodeType":"YulVariableDeclaration","src":"468:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"477:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"472:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"537:90:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"577:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"562:3:29"},"nodeType":"YulFunctionCall","src":"562:17:29"},{"kind":"number","nodeType":"YulLiteral","src":"581:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"558:3:29"},"nodeType":"YulFunctionCall","src":"558:26:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"600:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"608:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"596:3:29"},"nodeType":"YulFunctionCall","src":"596:14:29"},{"name":"_1","nodeType":"YulIdentifier","src":"612:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"592:3:29"},"nodeType":"YulFunctionCall","src":"592:23:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"586:5:29"},"nodeType":"YulFunctionCall","src":"586:30:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"551:6:29"},"nodeType":"YulFunctionCall","src":"551:66:29"},"nodeType":"YulExpressionStatement","src":"551:66:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"498:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"501:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"495:2:29"},"nodeType":"YulFunctionCall","src":"495:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"509:19:29","statements":[{"nodeType":"YulAssignment","src":"511:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"520:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"523:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"516:3:29"},"nodeType":"YulFunctionCall","src":"516:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"511:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"491:3:29","statements":[]},"src":"487:140:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"651:9:29"},{"name":"length","nodeType":"YulIdentifier","src":"662:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"647:3:29"},"nodeType":"YulFunctionCall","src":"647:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"643:3:29"},"nodeType":"YulFunctionCall","src":"643:31:29"},{"kind":"number","nodeType":"YulLiteral","src":"676:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"636:6:29"},"nodeType":"YulFunctionCall","src":"636:42:29"},"nodeType":"YulExpressionStatement","src":"636:42:29"},{"nodeType":"YulAssignment","src":"687:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"703:9:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"722:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"718:3:29"},"nodeType":"YulFunctionCall","src":"718:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"739:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"735:3:29"},"nodeType":"YulFunctionCall","src":"735:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"714:3:29"},"nodeType":"YulFunctionCall","src":"714:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"699:3:29"},"nodeType":"YulFunctionCall","src":"699:45:29"},{"kind":"number","nodeType":"YulLiteral","src":"746:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"695:3:29"},"nodeType":"YulFunctionCall","src":"695:54:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"687:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"297:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"308:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"319:4:29","type":""}],"src":"199:556:29"},{"body":{"nodeType":"YulBlock","src":"792:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"809:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"816:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"821:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"812:3:29"},"nodeType":"YulFunctionCall","src":"812:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"802:6:29"},"nodeType":"YulFunctionCall","src":"802:31:29"},"nodeType":"YulExpressionStatement","src":"802:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"849:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"852:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"842:6:29"},"nodeType":"YulFunctionCall","src":"842:15:29"},"nodeType":"YulExpressionStatement","src":"842:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"873:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"876:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"866:6:29"},"nodeType":"YulFunctionCall","src":"866:15:29"},"nodeType":"YulExpressionStatement","src":"866:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"760:127:29"},{"body":{"nodeType":"YulBlock","src":"939:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"970:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"972:16:29"},"nodeType":"YulFunctionCall","src":"972:18:29"},"nodeType":"YulExpressionStatement","src":"972:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"955:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"966:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"962:3:29"},"nodeType":"YulFunctionCall","src":"962:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"952:2:29"},"nodeType":"YulFunctionCall","src":"952:17:29"},"nodeType":"YulIf","src":"949:43:29"},{"nodeType":"YulAssignment","src":"1001:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1012:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1019:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1008:3:29"},"nodeType":"YulFunctionCall","src":"1008:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1001:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"921:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"931:3:29","type":""}],"src":"892:135:29"},{"body":{"nodeType":"YulBlock","src":"1064:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1093:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1084:3:29"},"nodeType":"YulFunctionCall","src":"1084:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1074:6:29"},"nodeType":"YulFunctionCall","src":"1074:31:29"},"nodeType":"YulExpressionStatement","src":"1074:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1121:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1124:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1114:6:29"},"nodeType":"YulFunctionCall","src":"1114:15:29"},"nodeType":"YulExpressionStatement","src":"1114:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1145:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1148:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1138:6:29"},"nodeType":"YulFunctionCall","src":"1138:15:29"},"nodeType":"YulExpressionStatement","src":"1138:15:29"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"1032:127:29"},{"body":{"nodeType":"YulBlock","src":"1210:74:29","statements":[{"body":{"nodeType":"YulBlock","src":"1233:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"1235:16:29"},"nodeType":"YulFunctionCall","src":"1235:18:29"},"nodeType":"YulExpressionStatement","src":"1235:18:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1230:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1223:6:29"},"nodeType":"YulFunctionCall","src":"1223:9:29"},"nodeType":"YulIf","src":"1220:35:29"},{"nodeType":"YulAssignment","src":"1264:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1273:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1276:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1269:3:29"},"nodeType":"YulFunctionCall","src":"1269:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1264:1:29"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1195:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1198:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1204:1:29","type":""}],"src":"1164:120:29"},{"body":{"nodeType":"YulBlock","src":"1321:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1338:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1345:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1350:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1341:3:29"},"nodeType":"YulFunctionCall","src":"1341:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1331:6:29"},"nodeType":"YulFunctionCall","src":"1331:31:29"},"nodeType":"YulExpressionStatement","src":"1331:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1378:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1381:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1371:6:29"},"nodeType":"YulFunctionCall","src":"1371:15:29"},"nodeType":"YulExpressionStatement","src":"1371:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1402:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1405:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1395:6:29"},"nodeType":"YulFunctionCall","src":"1395:15:29"},"nodeType":"YulExpressionStatement","src":"1395:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1289:127:29"},{"body":{"nodeType":"YulBlock","src":"1470:79:29","statements":[{"nodeType":"YulAssignment","src":"1480:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1492:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1495:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1488:3:29"},"nodeType":"YulFunctionCall","src":"1488:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"1480:4:29"}]},{"body":{"nodeType":"YulBlock","src":"1521:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1523:16:29"},"nodeType":"YulFunctionCall","src":"1523:18:29"},"nodeType":"YulExpressionStatement","src":"1523:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"1512:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"1518:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1509:2:29"},"nodeType":"YulFunctionCall","src":"1509:11:29"},"nodeType":"YulIf","src":"1506:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1452:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1455:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"1461:4:29","type":""}],"src":"1421:128:29"},{"body":{"nodeType":"YulBlock","src":"1592:74:29","statements":[{"body":{"nodeType":"YulBlock","src":"1615:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"1617:16:29"},"nodeType":"YulFunctionCall","src":"1617:18:29"},"nodeType":"YulExpressionStatement","src":"1617:18:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1612:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1605:6:29"},"nodeType":"YulFunctionCall","src":"1605:9:29"},"nodeType":"YulIf","src":"1602:35:29"},{"nodeType":"YulAssignment","src":"1646:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1655:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1658:1:29"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1651:3:29"},"nodeType":"YulFunctionCall","src":"1651:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1646:1:29"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1577:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1580:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1586:1:29","type":""}],"src":"1554:112:29"},{"body":{"nodeType":"YulBlock","src":"1719:77:29","statements":[{"nodeType":"YulAssignment","src":"1729:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1740:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1743:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1736:3:29"},"nodeType":"YulFunctionCall","src":"1736:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1729:3:29"}]},{"body":{"nodeType":"YulBlock","src":"1768:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1770:16:29"},"nodeType":"YulFunctionCall","src":"1770:18:29"},"nodeType":"YulExpressionStatement","src":"1770:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1760:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"1763:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1757:2:29"},"nodeType":"YulFunctionCall","src":"1757:10:29"},"nodeType":"YulIf","src":"1754:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1702:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1705:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1711:3:29","type":""}],"src":"1671:125:29"},{"body":{"nodeType":"YulBlock","src":"1833:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1850:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1862:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1853:3:29"},"nodeType":"YulFunctionCall","src":"1853:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1843:6:29"},"nodeType":"YulFunctionCall","src":"1843:31:29"},"nodeType":"YulExpressionStatement","src":"1843:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1890:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1893:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1883:6:29"},"nodeType":"YulFunctionCall","src":"1883:15:29"},"nodeType":"YulExpressionStatement","src":"1883:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1914:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1907:6:29"},"nodeType":"YulFunctionCall","src":"1907:15:29"},"nodeType":"YulExpressionStatement","src":"1907:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"1801:127:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6900A3AE EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x16C JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x185 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 SUB PUSH2 0x8A JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xB4 JUMPI DUP1 PUSH2 0x9E DUP2 PUSH2 0x1E9 JUMP JUMPDEST SWAP2 POP PUSH2 0xAD SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x218 JUMP JUMPDEST SWAP2 POP PUSH2 0x8E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCF JUMPI PUSH2 0xCF PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x164 JUMPI PUSH2 0x10E PUSH1 0x1 DUP4 PUSH2 0x242 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B PUSH1 0xA DUP7 PUSH2 0x25B JUMP JUMPDEST PUSH2 0x126 SWAP1 PUSH1 0x30 PUSH2 0x26F JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x13B JUMPI PUSH2 0x13B PUSH2 0x282 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x15D PUSH1 0xA DUP7 PUSH2 0x218 JUMP JUMPDEST SWAP5 POP PUSH2 0xFD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x196 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1FB JUMPI PUSH2 0x1FB PUSH2 0x1D3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x227 JUMPI PUSH2 0x227 PUSH2 0x202 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x26A JUMPI PUSH2 0x26A PUSH2 0x202 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH24 0x7E20A0452E201D3312DD3A508695794A6A7FC48E20C536FD MSTORE CALL 0x49 0x27 0xC5 0xA9 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"58:647:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;254:448;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;308:13;334:5;343:1;334:10;330:43;;-1:-1:-1;;356:10:26;;;;;;;;;;;;-1:-1:-1;;;356:10:26;;;;;254:448::o;330:43::-;393:5;378:12;424:63;431:9;;424:63;;452:8;;;;:::i;:::-;;-1:-1:-1;470:10:26;;-1:-1:-1;478:2:26;470:10;;:::i;:::-;;;424:63;;;492:19;524:6;514:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;514:17:26;;492:39;;537:134;544:10;;537:134;;566:11;576:1;566:11;;:::i;:::-;;-1:-1:-1;630:10:26;638:2;630:5;:10;:::i;:::-;617:24;;:2;:24;:::i;:::-;604:39;;587:6;594;587:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;587:56:26;;;;;;;;-1:-1:-1;653:11:26;662:2;653:11;;:::i;:::-;;;537:134;;;690:6;254:448;-1:-1:-1;;;;254:448:26:o;14:180:29:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:29;;14:180;-1:-1:-1;14:180:29:o;199:556::-;319:4;348:2;377;366:9;359:21;409:6;403:13;452:6;447:2;436:9;432:18;425:34;477:1;487:140;501:6;498:1;495:13;487:140;;;596:14;;;592:23;;586:30;562:17;;;581:2;558:26;551:66;516:10;;487:140;;;491:3;676:1;671:2;662:6;651:9;647:22;643:31;636:42;746:2;739;735:7;730:2;722:6;718:15;714:29;703:9;699:45;695:54;687:62;;;;199:556;;;;:::o;760:127::-;821:10;816:3;812:20;809:1;802:31;852:4;849:1;842:15;876:4;873:1;866:15;892:135;931:3;952:17;;;949:43;;972:18;;:::i;:::-;-1:-1:-1;1019:1:29;1008:13;;892:135::o;1032:127::-;1093:10;1088:3;1084:20;1081:1;1074:31;1124:4;1121:1;1114:15;1148:4;1145:1;1138:15;1164:120;1204:1;1230;1220:35;;1235:18;;:::i;:::-;-1:-1:-1;1269:9:29;;1164:120::o;1289:127::-;1350:10;1345:3;1341:20;1338:1;1331:31;1381:4;1378:1;1371:15;1405:4;1402:1;1395:15;1421:128;1488:9;;;1509:11;;;1506:37;;;1523:18;;:::i;:::-;1421:128;;;;:::o;1554:112::-;1586:1;1612;1602:35;;1617:18;;:::i;:::-;-1:-1:-1;1651:9:29;;1554:112::o;1671:125::-;1736:9;;;1757:10;;;1754:36;;;1770:18;;:::i;1801:127::-;1862:10;1857:3;1853:20;1850:1;1843:31;1893:4;1890:1;1883:15;1917:4;1914:1;1907:15"},"methodIdentifiers":{"toString(uint256)":"6900a3ae"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/libs/LibStringUtils.sol\":\"LibStringUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]}},\"version\":1}"}},"contracts/testDai/TestDAI.v3.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"AccessControlMixin":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610736806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x736 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD6 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x167 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH2 0xFE PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x676 JUMP JUMPDEST PUSH2 0x274 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0xB0 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH2 0xD6 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x183 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x1EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x345 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x3F7 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28F SWAP1 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2E0 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x35D SWAP1 DUP3 PUSH2 0x42F JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3B6 SWAP1 DUP3 PUSH2 0x444 JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x28C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x52E JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4CC JUMPI PUSH2 0x4CC PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x526 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x28F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 PUSH2 0x552 PUSH1 0x1 DUP4 PUSH2 0x6C4 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x566 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x6C4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x57F JUMPI PUSH2 0x57F PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH2 0x698 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x5B9 DUP4 PUSH1 0x1 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x5DB JUMPI PUSH2 0x5DB PUSH2 0x6EA JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 JUMPDEST 0xE5 GASLIMIT PUSH11 0x96593C6EDD3802A275E3DD PUSH24 0x56D3A52B4A74C13DEA4ACD9B77592864736F6C6343000814 STOP CALLER ","sourceMap":"41320:385:27:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_10446":{"entryPoint":null,"id":10446,"parameterSlots":0,"returnSlots":0},"@_add_10050":{"entryPoint":1247,"id":10050,"parameterSlots":2,"returnSlots":1},"@_at_10190":{"entryPoint":1113,"id":10190,"parameterSlots":2,"returnSlots":1},"@_contains_10150":{"entryPoint":null,"id":10150,"parameterSlots":2,"returnSlots":1},"@_grantRole_10678":{"entryPoint":837,"id":10678,"parameterSlots":2,"returnSlots":0},"@_length_10164":{"entryPoint":null,"id":10164,"parameterSlots":1,"returnSlots":1},"@_msgSender_8979":{"entryPoint":null,"id":8979,"parameterSlots":0,"returnSlots":1},"@_remove_10131":{"entryPoint":1326,"id":10131,"parameterSlots":2,"returnSlots":1},"@_revokeRole_10702":{"entryPoint":926,"id":10702,"parameterSlots":2,"returnSlots":0},"@add_10221":{"entryPoint":1071,"id":10221,"parameterSlots":2,"returnSlots":1},"@at_10317":{"entryPoint":1015,"id":10317,"parameterSlots":2,"returnSlots":1},"@contains_10275":{"entryPoint":1027,"id":10275,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_10541":{"entryPoint":null,"id":10541,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_10508":{"entryPoint":685,"id":10508,"parameterSlots":1,"returnSlots":1},"@getRoleMember_10527":{"entryPoint":628,"id":10527,"parameterSlots":2,"returnSlots":1},"@grantRole_10567":{"entryPoint":359,"id":10567,"parameterSlots":2,"returnSlots":0},"@hasRole_10492":{"entryPoint":661,"id":10492,"parameterSlots":2,"returnSlots":1},"@length_10290":{"entryPoint":1061,"id":10290,"parameterSlots":1,"returnSlots":1},"@remove_10248":{"entryPoint":1092,"id":10248,"parameterSlots":2,"returnSlots":1},"@renounceRole_10615":{"entryPoint":506,"id":10615,"parameterSlots":2,"returnSlots":0},"@revokeRole_10593":{"entryPoint":708,"id":10593,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_bytes32":{"entryPoint":1569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":1594,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":1654,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1751,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1732,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":1710,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":1770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":1688,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3883:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:29"},"nodeType":"YulFunctionCall","src":"132:12:29"},"nodeType":"YulExpressionStatement","src":"132:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:29"},"nodeType":"YulFunctionCall","src":"101:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:29"},"nodeType":"YulFunctionCall","src":"97:32:29"},"nodeType":"YulIf","src":"94:52:29"},{"nodeType":"YulAssignment","src":"155:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:29"},"nodeType":"YulFunctionCall","src":"165:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:29","type":""}],"src":"14:180:29"},{"body":{"nodeType":"YulBlock","src":"300:76:29","statements":[{"nodeType":"YulAssignment","src":"310:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:29"},"nodeType":"YulFunctionCall","src":"318:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"363:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:29"},"nodeType":"YulFunctionCall","src":"345:25:29"},"nodeType":"YulExpressionStatement","src":"345:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:29","type":""}],"src":"199:177:29"},{"body":{"nodeType":"YulBlock","src":"468:267:29","statements":[{"body":{"nodeType":"YulBlock","src":"514:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"523:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"516:6:29"},"nodeType":"YulFunctionCall","src":"516:12:29"},"nodeType":"YulExpressionStatement","src":"516:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"489:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"485:3:29"},"nodeType":"YulFunctionCall","src":"485:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"510:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"481:3:29"},"nodeType":"YulFunctionCall","src":"481:32:29"},"nodeType":"YulIf","src":"478:52:29"},{"nodeType":"YulAssignment","src":"539:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"562:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"549:12:29"},"nodeType":"YulFunctionCall","src":"549:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"539:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"581:45:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"622:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"607:3:29"},"nodeType":"YulFunctionCall","src":"607:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"594:12:29"},"nodeType":"YulFunctionCall","src":"594:32:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"585:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"689:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"698:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"701:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"691:6:29"},"nodeType":"YulFunctionCall","src":"691:12:29"},"nodeType":"YulExpressionStatement","src":"691:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"648:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"674:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"679:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"670:3:29"},"nodeType":"YulFunctionCall","src":"670:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"683:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"666:3:29"},"nodeType":"YulFunctionCall","src":"666:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"655:3:29"},"nodeType":"YulFunctionCall","src":"655:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"645:2:29"},"nodeType":"YulFunctionCall","src":"645:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"638:6:29"},"nodeType":"YulFunctionCall","src":"638:50:29"},"nodeType":"YulIf","src":"635:70:29"},{"nodeType":"YulAssignment","src":"714:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"724:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"714:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"426:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"437:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"449:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"457:6:29","type":""}],"src":"381:354:29"},{"body":{"nodeType":"YulBlock","src":"827:161:29","statements":[{"body":{"nodeType":"YulBlock","src":"873:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"882:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"885:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"875:6:29"},"nodeType":"YulFunctionCall","src":"875:12:29"},"nodeType":"YulExpressionStatement","src":"875:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"848:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"857:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"844:3:29"},"nodeType":"YulFunctionCall","src":"844:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"869:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"840:3:29"},"nodeType":"YulFunctionCall","src":"840:32:29"},"nodeType":"YulIf","src":"837:52:29"},{"nodeType":"YulAssignment","src":"898:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"921:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"908:12:29"},"nodeType":"YulFunctionCall","src":"908:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"898:6:29"}]},{"nodeType":"YulAssignment","src":"940:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"967:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"978:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:29"},"nodeType":"YulFunctionCall","src":"963:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"950:12:29"},"nodeType":"YulFunctionCall","src":"950:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"940:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"785:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"796:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"808:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"816:6:29","type":""}],"src":"740:248:29"},{"body":{"nodeType":"YulBlock","src":"1094:102:29","statements":[{"nodeType":"YulAssignment","src":"1104:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1116:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1127:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1112:3:29"},"nodeType":"YulFunctionCall","src":"1112:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1104:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1146:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1177:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1182:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1173:3:29"},"nodeType":"YulFunctionCall","src":"1173:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1186:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1169:3:29"},"nodeType":"YulFunctionCall","src":"1169:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1157:3:29"},"nodeType":"YulFunctionCall","src":"1157:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1139:6:29"},"nodeType":"YulFunctionCall","src":"1139:51:29"},"nodeType":"YulExpressionStatement","src":"1139:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1063:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1074:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1085:4:29","type":""}],"src":"993:203:29"},{"body":{"nodeType":"YulBlock","src":"1296:92:29","statements":[{"nodeType":"YulAssignment","src":"1306:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1318:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1329:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1314:3:29"},"nodeType":"YulFunctionCall","src":"1314:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1306:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1373:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1366:6:29"},"nodeType":"YulFunctionCall","src":"1366:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1359:6:29"},"nodeType":"YulFunctionCall","src":"1359:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1341:6:29"},"nodeType":"YulFunctionCall","src":"1341:41:29"},"nodeType":"YulExpressionStatement","src":"1341:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1265:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1276:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1287:4:29","type":""}],"src":"1201:187:29"},{"body":{"nodeType":"YulBlock","src":"1494:76:29","statements":[{"nodeType":"YulAssignment","src":"1504:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1516:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1527:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1512:3:29"},"nodeType":"YulFunctionCall","src":"1512:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1504:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1546:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"1557:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1539:6:29"},"nodeType":"YulFunctionCall","src":"1539:25:29"},"nodeType":"YulExpressionStatement","src":"1539:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1463:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1474:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1485:4:29","type":""}],"src":"1393:177:29"},{"body":{"nodeType":"YulBlock","src":"1749:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1766:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1777:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1759:6:29"},"nodeType":"YulFunctionCall","src":"1759:21:29"},"nodeType":"YulExpressionStatement","src":"1759:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1800:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1811:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1796:3:29"},"nodeType":"YulFunctionCall","src":"1796:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"1816:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1789:6:29"},"nodeType":"YulFunctionCall","src":"1789:30:29"},"nodeType":"YulExpressionStatement","src":"1789:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1839:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1850:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1835:3:29"},"nodeType":"YulFunctionCall","src":"1835:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"1855:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1828:6:29"},"nodeType":"YulFunctionCall","src":"1828:62:29"},"nodeType":"YulExpressionStatement","src":"1828:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1910:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1921:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1906:3:29"},"nodeType":"YulFunctionCall","src":"1906:18:29"},{"hexValue":"2061646d696e20746f206772616e74","kind":"string","nodeType":"YulLiteral","src":"1926:17:29","type":"","value":" admin to grant"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1899:6:29"},"nodeType":"YulFunctionCall","src":"1899:45:29"},"nodeType":"YulExpressionStatement","src":"1899:45:29"},{"nodeType":"YulAssignment","src":"1953:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1965:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1976:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:29"},"nodeType":"YulFunctionCall","src":"1961:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1953:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1726:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1740:4:29","type":""}],"src":"1575:411:29"},{"body":{"nodeType":"YulBlock","src":"2165:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2182:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2193:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2175:6:29"},"nodeType":"YulFunctionCall","src":"2175:21:29"},"nodeType":"YulExpressionStatement","src":"2175:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2227:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:29"},"nodeType":"YulFunctionCall","src":"2212:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2232:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2205:6:29"},"nodeType":"YulFunctionCall","src":"2205:30:29"},"nodeType":"YulExpressionStatement","src":"2205:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2266:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2251:3:29"},"nodeType":"YulFunctionCall","src":"2251:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"2271:34:29","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2244:6:29"},"nodeType":"YulFunctionCall","src":"2244:62:29"},"nodeType":"YulExpressionStatement","src":"2244:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2326:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2337:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2322:3:29"},"nodeType":"YulFunctionCall","src":"2322:18:29"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"2342:17:29","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2315:6:29"},"nodeType":"YulFunctionCall","src":"2315:45:29"},"nodeType":"YulExpressionStatement","src":"2315:45:29"},{"nodeType":"YulAssignment","src":"2369:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2381:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2392:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2377:3:29"},"nodeType":"YulFunctionCall","src":"2377:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2369:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2142:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2156:4:29","type":""}],"src":"1991:411:29"},{"body":{"nodeType":"YulBlock","src":"2581:238:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2598:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2609:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2591:6:29"},"nodeType":"YulFunctionCall","src":"2591:21:29"},"nodeType":"YulExpressionStatement","src":"2591:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2632:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2643:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2628:3:29"},"nodeType":"YulFunctionCall","src":"2628:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2648:2:29","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2621:6:29"},"nodeType":"YulFunctionCall","src":"2621:30:29"},"nodeType":"YulExpressionStatement","src":"2621:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2671:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2682:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2667:3:29"},"nodeType":"YulFunctionCall","src":"2667:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"2687:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2660:6:29"},"nodeType":"YulFunctionCall","src":"2660:62:29"},"nodeType":"YulExpressionStatement","src":"2660:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2742:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2753:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2738:3:29"},"nodeType":"YulFunctionCall","src":"2738:18:29"},{"hexValue":"2061646d696e20746f207265766f6b65","kind":"string","nodeType":"YulLiteral","src":"2758:18:29","type":"","value":" admin to revoke"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2731:6:29"},"nodeType":"YulFunctionCall","src":"2731:46:29"},"nodeType":"YulExpressionStatement","src":"2731:46:29"},{"nodeType":"YulAssignment","src":"2786:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2798:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2809:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2794:3:29"},"nodeType":"YulFunctionCall","src":"2794:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2786:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2558:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2572:4:29","type":""}],"src":"2407:412:29"},{"body":{"nodeType":"YulBlock","src":"2998:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3015:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3026:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3008:6:29"},"nodeType":"YulFunctionCall","src":"3008:21:29"},"nodeType":"YulExpressionStatement","src":"3008:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3049:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3060:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3045:3:29"},"nodeType":"YulFunctionCall","src":"3045:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3065:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3038:6:29"},"nodeType":"YulFunctionCall","src":"3038:30:29"},"nodeType":"YulExpressionStatement","src":"3038:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3088:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3099:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3084:3:29"},"nodeType":"YulFunctionCall","src":"3084:18:29"},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e","kind":"string","nodeType":"YulLiteral","src":"3104:34:29","type":"","value":"EnumerableSet: index out of boun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3077:6:29"},"nodeType":"YulFunctionCall","src":"3077:62:29"},"nodeType":"YulExpressionStatement","src":"3077:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3159:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3170:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3155:3:29"},"nodeType":"YulFunctionCall","src":"3155:18:29"},{"hexValue":"6473","kind":"string","nodeType":"YulLiteral","src":"3175:4:29","type":"","value":"ds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3148:6:29"},"nodeType":"YulFunctionCall","src":"3148:32:29"},"nodeType":"YulExpressionStatement","src":"3148:32:29"},{"nodeType":"YulAssignment","src":"3189:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3201:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3212:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3197:3:29"},"nodeType":"YulFunctionCall","src":"3197:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3189:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2975:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2989:4:29","type":""}],"src":"2824:398:29"},{"body":{"nodeType":"YulBlock","src":"3259:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3276:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3283:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3288:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3279:3:29"},"nodeType":"YulFunctionCall","src":"3279:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3269:6:29"},"nodeType":"YulFunctionCall","src":"3269:31:29"},"nodeType":"YulExpressionStatement","src":"3269:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3316:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3319:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3309:6:29"},"nodeType":"YulFunctionCall","src":"3309:15:29"},"nodeType":"YulExpressionStatement","src":"3309:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3340:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3343:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3333:6:29"},"nodeType":"YulFunctionCall","src":"3333:15:29"},"nodeType":"YulExpressionStatement","src":"3333:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"3227:127:29"},{"body":{"nodeType":"YulBlock","src":"3391:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3408:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3415:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3420:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3411:3:29"},"nodeType":"YulFunctionCall","src":"3411:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3401:6:29"},"nodeType":"YulFunctionCall","src":"3401:31:29"},"nodeType":"YulExpressionStatement","src":"3401:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3448:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3451:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3441:6:29"},"nodeType":"YulFunctionCall","src":"3441:15:29"},"nodeType":"YulExpressionStatement","src":"3441:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3472:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3475:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3465:6:29"},"nodeType":"YulFunctionCall","src":"3465:15:29"},"nodeType":"YulExpressionStatement","src":"3465:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3359:127:29"},{"body":{"nodeType":"YulBlock","src":"3540:79:29","statements":[{"nodeType":"YulAssignment","src":"3550:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3562:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"3565:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3558:3:29"},"nodeType":"YulFunctionCall","src":"3558:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"3550:4:29"}]},{"body":{"nodeType":"YulBlock","src":"3591:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3593:16:29"},"nodeType":"YulFunctionCall","src":"3593:18:29"},"nodeType":"YulExpressionStatement","src":"3593:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"3582:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"3588:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3579:2:29"},"nodeType":"YulFunctionCall","src":"3579:11:29"},"nodeType":"YulIf","src":"3576:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3522:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"3525:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"3531:4:29","type":""}],"src":"3491:128:29"},{"body":{"nodeType":"YulBlock","src":"3672:77:29","statements":[{"nodeType":"YulAssignment","src":"3682:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3693:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"3696:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3689:3:29"},"nodeType":"YulFunctionCall","src":"3689:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3682:3:29"}]},{"body":{"nodeType":"YulBlock","src":"3721:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3723:16:29"},"nodeType":"YulFunctionCall","src":"3723:18:29"},"nodeType":"YulExpressionStatement","src":"3723:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3713:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"3716:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3710:2:29"},"nodeType":"YulFunctionCall","src":"3710:10:29"},"nodeType":"YulIf","src":"3707:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3655:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"3658:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3664:3:29","type":""}],"src":"3624:125:29"},{"body":{"nodeType":"YulBlock","src":"3786:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3810:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3815:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3806:3:29"},"nodeType":"YulFunctionCall","src":"3806:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3796:6:29"},"nodeType":"YulFunctionCall","src":"3796:31:29"},"nodeType":"YulExpressionStatement","src":"3796:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3843:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3846:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:29"},"nodeType":"YulFunctionCall","src":"3836:15:29"},"nodeType":"YulExpressionStatement","src":"3836:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3867:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3870:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3860:6:29"},"nodeType":"YulFunctionCall","src":"3860:15:29"},"nodeType":"YulExpressionStatement","src":"3860:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"3754:127:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to grant\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to revoke\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"EnumerableSet: index out of boun\")\n mstore(add(headStart, 96), \"ds\")\n tail := add(headStart, 128)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD6 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x167 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH2 0xFE PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x676 JUMP JUMPDEST PUSH2 0x274 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0xB0 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH2 0xD6 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x183 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x1EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x345 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x3F7 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28F SWAP1 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2E0 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x35D SWAP1 DUP3 PUSH2 0x42F JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3B6 SWAP1 DUP3 PUSH2 0x444 JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x28C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x52E JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4CC JUMPI PUSH2 0x4CC PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x526 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x28F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 PUSH2 0x552 PUSH1 0x1 DUP4 PUSH2 0x6C4 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x566 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x6C4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x57F JUMPI PUSH2 0x57F PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH2 0x698 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x5B9 DUP4 PUSH1 0x1 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x5DB JUMPI PUSH2 0x5DB PUSH2 0x6EA JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 JUMPDEST 0xE5 GASLIMIT PUSH11 0x96593C6EDD3802A275E3DD PUSH24 0x56D3A52B4A74C13DEA4ACD9B77592864736F6C6343000814 STOP CALLER ","sourceMap":"41320:385:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38118:112;;;;;;:::i;:::-;38175:7;38201:12;;;;;;;;;;:22;;;;38118:112;;;;345:25:29;;;333:2;318:18;38118:112:27;;;;;;;;38480:223;;;;;;:::i;:::-;;:::i;:::-;;39654:205;;;;;;:::i;:::-;;:::i;37801:136::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1157:32:29;;;1139:51;;1127:2;1112:18;37801:136:27;993:203:29;36798:137:27;;;;;;:::i;:::-;;:::i;:::-;;;1366:14:29;;1359:22;1341:41;;1329:2;1314:18;36798:137:27;1201:187:29;35575:49:27;;35620:4;35575:49;;37103:125;;;;;;:::i;:::-;;:::i;38937:226::-;;;;;;:::i;:::-;;:::i;38480:223::-;38571:6;:12;;;;;;;;;;:22;;;38563:45;;693:10;36798:137;:::i;38563:45::-;38555:105;;;;-1:-1:-1;;;38555:105:27;;1777:2:29;38555:105:27;;;1759:21:29;1816:2;1796:18;;;1789:30;1855:34;1835:18;;;1828:62;-1:-1:-1;;;1906:18:29;;;1899:45;1961:19;;38555:105:27;;;;;;;;;38671:25;38682:4;38688:7;38671:10;:25::i;:::-;38480:223;;:::o;39654:205::-;-1:-1:-1;;;;;39740:23:27;;693:10;39740:23;39732:83;;;;-1:-1:-1;;;39732:83:27;;2193:2:29;39732:83:27;;;2175:21:29;2232:2;2212:18;;;2205:30;2271:34;2251:18;;;2244:62;-1:-1:-1;;;2322:18:29;;;2315:45;2377:19;;39732:83:27;1991:411:29;39732:83:27;39826:26;39838:4;39844:7;39826:11;:26::i;37801:136::-;37874:7;37900:12;;;;;;;;;;:30;;37924:5;37900:23;:30::i;:::-;37893:37;;37801:136;;;;;:::o;36798:137::-;36867:4;36890:12;;;;;;;;;;:38;;36920:7;36890:29;:38::i;37103:125::-;37166:7;37192:12;;;;;;;;;;:29;;:27;:29::i;38937:226::-;39029:6;:12;;;;;;;;;;:22;;;39021:45;;693:10;36798:137;:::i;39021:45::-;39013:106;;;;-1:-1:-1;;;39013:106:27;;2609:2:29;39013:106:27;;;2591:21:29;2648:2;2628:18;;;2621:30;2687:34;2667:18;;;2660:62;-1:-1:-1;;;2738:18:29;;;2731:46;2794:19;;39013:106:27;2407:412:29;40861:184:27;40934:6;:12;;;;;;;;;;:33;;40959:7;40934:24;:33::i;:::-;40930:109;;;40988:40;;693:10;;-1:-1:-1;;;;;40988:40:27;;;41000:4;;40988:40;;;;;40861:184;;:::o;41051:188::-;41125:6;:12;;;;;;;;;;:36;;41153:7;41125:27;:36::i;:::-;41121:112;;;41182:40;;693:10;;-1:-1:-1;;;;;41182:40:27;;;41194:4;;41182:40;;;;;41051:188;;:::o;32212:156::-;32286:7;32336:22;32340:3;32352:5;32336:3;:22::i;31519:165::-;-1:-1:-1;;;;;31652:23:27;;31599:4;29972:19;;;:12;;;:19;;;;;;:24;;31622:55;29876:127;31765:115;31828:7;31854:19;31862:3;30166:18;;30084:107;30964:150;31034:4;31057:50;31062:3;-1:-1:-1;;;;;31082:23:27;;31057:4;:50::i;31282:156::-;31355:4;31378:53;31386:3;-1:-1:-1;;;;;31406:23:27;;31378:7;:53::i;30523:201::-;30617:18;;30590:7;;30617:26;-1:-1:-1;30609:73:27;;;;-1:-1:-1;;;30609:73:27;;3026:2:29;30609:73:27;;;3008:21:29;3065:2;3045:18;;;3038:30;3104:34;3084:18;;;3077:62;-1:-1:-1;;;3155:18:29;;;3148:32;3197:19;;30609:73:27;2824:398:29;30609:73:27;30699:3;:11;;30711:5;30699:18;;;;;;;;:::i;:::-;;;;;;;;;30692:25;;30523:201;;;;:::o;27711:404::-;27774:4;29972:19;;;:12;;;:19;;;;;;27790:319;;-1:-1:-1;27832:23:27;;;;;;;;:11;:23;;;;;;;;;;;;;28012:18;;27990:19;;;:12;;;:19;;;;;;:40;;;;28044:11;;27790:319;-1:-1:-1;28093:5:27;28086:12;;28283:1512;28349:4;28486:19;;;:12;;;:19;;;;;;28520:15;;28516:1273;;28877:21;28901:14;28914:1;28901:10;:14;:::i;:::-;28949:18;;28877:38;;-1:-1:-1;28929:17:27;;28949:22;;28970:1;;28949:22;:::i;:::-;28929:42;;29211:17;29231:3;:11;;29243:9;29231:22;;;;;;;;:::i;:::-;;;;;;;;;29211:42;;29374:9;29345:3;:11;;29357:13;29345:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;29475:17;:13;29491:1;29475:17;:::i;:::-;29449:23;;;;:12;;;:23;;;;;:43;29598:17;;29449:3;;29598:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29690:3;:12;;:19;29703:5;29690:19;;;;;;;;;;;29683:26;;;29731:4;29724:11;;;;;;;;28516:1273;29773:5;29766:12;;;;;14:180:29;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:29;;14:180;-1:-1:-1;14:180:29:o;381:354::-;449:6;457;510:2;498:9;489:7;485:23;481:32;478:52;;;526:1;523;516:12;478:52;549:23;;;-1:-1:-1;622:2:29;607:18;;594:32;-1:-1:-1;;;;;655:31:29;;645:42;;635:70;;701:1;698;691:12;635:70;724:5;714:15;;;381:354;;;;;:::o;740:248::-;808:6;816;869:2;857:9;848:7;844:23;840:32;837:52;;;885:1;882;875:12;837:52;-1:-1:-1;;908:23:29;;;978:2;963:18;;;950:32;;-1:-1:-1;740:248:29:o;3227:127::-;3288:10;3283:3;3279:20;3276:1;3269:31;3319:4;3316:1;3309:15;3343:4;3340:1;3333:15;3359:127;3420:10;3415:3;3411:20;3408:1;3401:31;3451:4;3448:1;3441:15;3475:4;3472:1;3465:15;3491:128;3558:9;;;3579:11;;;3576:37;;;3593:18;;:::i;3624:125::-;3689:9;;;3710:10;;;3707:36;;;3723:18;;:::i;3754:127::-;3815:10;3810:3;3806:20;3803:1;3796:31;3846:4;3843:1;3836:15;3870:4;3867:1;3860:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"AccessControlMixin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA PREVRANDAO SELFDESTRUCT KECCAK256 DUP10 0xCB 0xDF STATICCALL 0xE4 PUSH31 0xCEB71E52DEB302B976ABFE56E47FE5E9436AD0B91D5664736F6C6343000814 STOP CALLER ","sourceMap":"9077:5688:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;9077:5688:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA PREVRANDAO SELFDESTRUCT KECCAK256 DUP10 0xCB 0xDF STATICCALL 0xE4 PUSH31 0xCEB71E52DEB302B976ABFE56E47FE5E9436AD0B91D5664736F6C6343000814 STOP CALLER ","sourceMap":"9077:5688:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"ChainConstants":{"abi":[{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610186806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB54817C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x89 SWAP2 SWAP1 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x89 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x89 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xFA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x149 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xD8 0xED 0xEC 0xAF BYTE ADD 0x24 0xF9 SWAP16 0xEB 0xD4 0xE SWAP6 PUSH23 0x9DED7AEC8D6345C33BFC4711B57E0822F64736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"47280:290:27:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CHILD_CHAIN_ID_11091":{"entryPoint":null,"id":11091,"parameterSlots":0,"returnSlots":0},"@CHILD_CHAIN_ID_BYTES_11094":{"entryPoint":null,"id":11094,"parameterSlots":0,"returnSlots":0},"@ERC712_VERSION_11082":{"entryPoint":null,"id":11082,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_11085":{"entryPoint":null,"id":11085,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_BYTES_11088":{"entryPoint":null,"id":11088,"parameterSlots":0,"returnSlots":0},"abi_encode_bytes":{"entryPoint":240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1066:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:373:29","statements":[{"nodeType":"YulVariableDeclaration","src":"73:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"87:5:29"},"nodeType":"YulFunctionCall","src":"87:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"77:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"115:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"120:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"108:6:29"},"nodeType":"YulFunctionCall","src":"108:19:29"},"nodeType":"YulExpressionStatement","src":"108:19:29"},{"nodeType":"YulVariableDeclaration","src":"136:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"145:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"140:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"207:110:29","statements":[{"nodeType":"YulVariableDeclaration","src":"221:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"231:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"225:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"263:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"268:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"259:3:29"},"nodeType":"YulFunctionCall","src":"259:11:29"},{"name":"_1","nodeType":"YulIdentifier","src":"272:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"255:3:29"},"nodeType":"YulFunctionCall","src":"255:20:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"291:5:29"},{"name":"i","nodeType":"YulIdentifier","src":"298:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"287:3:29"},"nodeType":"YulFunctionCall","src":"287:13:29"},{"name":"_1","nodeType":"YulIdentifier","src":"302:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"283:3:29"},"nodeType":"YulFunctionCall","src":"283:22:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"277:5:29"},"nodeType":"YulFunctionCall","src":"277:29:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"248:6:29"},"nodeType":"YulFunctionCall","src":"248:59:29"},"nodeType":"YulExpressionStatement","src":"248:59:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"166:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"169:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"163:2:29"},"nodeType":"YulFunctionCall","src":"163:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"177:21:29","statements":[{"nodeType":"YulAssignment","src":"179:17:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"188:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"191:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"184:3:29"},"nodeType":"YulFunctionCall","src":"184:12:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"179:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"159:3:29","statements":[]},"src":"155:162:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"341:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"337:3:29"},"nodeType":"YulFunctionCall","src":"337:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"333:3:29"},"nodeType":"YulFunctionCall","src":"333:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"362:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"326:6:29"},"nodeType":"YulFunctionCall","src":"326:38:29"},"nodeType":"YulExpressionStatement","src":"326:38:29"},{"nodeType":"YulAssignment","src":"373:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"388:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"401:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"409:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"397:3:29"},"nodeType":"YulFunctionCall","src":"397:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"414:3:29"},"nodeType":"YulFunctionCall","src":"414:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"393:3:29"},"nodeType":"YulFunctionCall","src":"393:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"384:3:29"},"nodeType":"YulFunctionCall","src":"384:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"425:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"380:3:29"},"nodeType":"YulFunctionCall","src":"380:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"373:3:29"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"40:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"47:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"55:3:29","type":""}],"src":"14:422:29"},{"body":{"nodeType":"YulBlock","src":"560:98:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"577:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"588:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"570:6:29"},"nodeType":"YulFunctionCall","src":"570:21:29"},"nodeType":"YulExpressionStatement","src":"570:21:29"},{"nodeType":"YulAssignment","src":"600:52:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"625:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"637:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"648:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"633:3:29"},"nodeType":"YulFunctionCall","src":"633:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"608:16:29"},"nodeType":"YulFunctionCall","src":"608:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"600:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"529:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"540:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"551:4:29","type":""}],"src":"441:217:29"},{"body":{"nodeType":"YulBlock","src":"784:98:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"801:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"812:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"794:6:29"},"nodeType":"YulFunctionCall","src":"794:21:29"},"nodeType":"YulExpressionStatement","src":"794:21:29"},{"nodeType":"YulAssignment","src":"824:52:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"849:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"861:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"872:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"857:3:29"},"nodeType":"YulFunctionCall","src":"857:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"832:16:29"},"nodeType":"YulFunctionCall","src":"832:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"824:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"753:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"764:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"775:4:29","type":""}],"src":"663:219:29"},{"body":{"nodeType":"YulBlock","src":"988:76:29","statements":[{"nodeType":"YulAssignment","src":"998:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1010:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1021:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1006:3:29"},"nodeType":"YulFunctionCall","src":"1006:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"998:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1040:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"1051:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1033:6:29"},"nodeType":"YulFunctionCall","src":"1033:25:29"},"nodeType":"YulExpressionStatement","src":"1033:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"957:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"968:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"979:4:29","type":""}],"src":"887:177:29"}]},"contents":"{\n { }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB54817C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x89 SWAP2 SWAP1 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x89 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x89 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xFA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x149 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xD8 0xED 0xEC 0xAF BYTE ADD 0x24 0xF9 SWAP16 0xEB 0xD4 0xE SWAP6 PUSH23 0x9DED7AEC8D6345C33BFC4711B57E0822F64736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"47280:290:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47515:52;;;;;;;;;;;;;;;-1:-1:-1;;;47515:52:27;;;;;;;;;;;;:::i;:::-;;;;;;;;47407:51;;;;;;;;;;;;;;;-1:-1:-1;;;47407:51:27;;;;;47310:43;;;;;;;;;;;;;;;-1:-1:-1;;;47310:43:27;;;;;47465:44;;47506:3;47465:44;;;;;1033:25:29;;;1021:2;1006:18;47465:44:27;887:177:29;47360:41:27;;47400:1;47360:41;;14:422:29;55:3;93:5;87:12;120:6;115:3;108:19;145:1;155:162;169:6;166:1;163:13;155:162;;;231:4;287:13;;;283:22;;277:29;259:11;;;255:20;;248:59;184:12;155:162;;;159:3;362:1;355:4;346:6;341:3;337:16;333:27;326:38;425:4;418:2;414:7;409:2;401:6;397:15;393:29;388:3;384:39;380:50;373:57;;;14:422;;;;:::o;441:217::-;588:2;577:9;570:21;551:4;608:44;648:2;637:9;633:18;625:6;608:44;:::i;:::-;600:52;441:217;-1:-1:-1;;;441:217:29:o"},"methodIdentifiers":{"CHILD_CHAIN_ID()":"626381a0","CHILD_CHAIN_ID_BYTES()":"0b54817c","ERC712_VERSION()":"0f7e5970","ROOT_CHAIN_ID()":"8acfcaf7","ROOT_CHAIN_ID_BYTES()":"0dd7531a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC712_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"ChainConstants\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"ContextMixin":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"ContextMixin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"EIP712Base":{"abi":[{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60806040526000805460ff19169055348015601957600080fd5b506088806100286000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x88 DUP1 PUSH2 0x28 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x20379EE5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH1 0x4D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CHAINID PUSH1 0x3B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 0xAC 0xAA 0xAF 0xCC 0xCA PUSH21 0x552EBB6ECCDC6D2772E6FE4DD002D3F162CF673ED5 DUP5 0x24 SMOD 0xE1 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"42193:2032:27:-:0;;;42000:5;41986:19;;-1:-1:-1;;41986:19:27;;;42193:2032;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:375:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:29","statements":[{"nodeType":"YulAssignment","src":"125:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:29"},"nodeType":"YulFunctionCall","src":"133:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:29"},"nodeType":"YulFunctionCall","src":"160:25:29"},"nodeType":"YulExpressionStatement","src":"160:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:29","type":""}],"src":"14:177:29"},{"body":{"nodeType":"YulBlock","src":"297:76:29","statements":[{"nodeType":"YulAssignment","src":"307:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"330:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"315:3:29"},"nodeType":"YulFunctionCall","src":"315:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"307:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"360:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"342:6:29"},"nodeType":"YulFunctionCall","src":"342:25:29"},"nodeType":"YulExpressionStatement","src":"342:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"266:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"277:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"288:4:29","type":""}],"src":"196:177:29"}]},"contents":"{\n { }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x20379EE5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH1 0x4D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CHAINID PUSH1 0x3B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 0xAC 0xAA 0xAF 0xCC 0xCA PUSH21 0x552EBB6ECCDC6D2772E6FE4DD002D3F162CF673ED5 DUP5 0x24 SMOD 0xE1 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"42193:2032:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43354:99;43431:15;;43354:99;;;160:25:29;;;148:2;133:18;43354:99:27;;;;;;;43459:155;43570:9;43459:155;"},"methodIdentifiers":{"getChainId()":"3408e470","getDomainSeperator()":"20379ee5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"EIP712Base\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"__name","type":"string"},{"internalType":"string","name":"__symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9517":{"entryPoint":null,"id":9517,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":125,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":300,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":466,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":549,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":406,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":103,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4144:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"210:776:29","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:29"},"nodeType":"YulFunctionCall","src":"261:12:29"},"nodeType":"YulExpressionStatement","src":"261:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:29"},"nodeType":"YulFunctionCall","src":"234:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:29"},"nodeType":"YulFunctionCall","src":"230:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:29"},"nodeType":"YulFunctionCall","src":"223:35:29"},"nodeType":"YulIf","src":"220:55:29"},{"nodeType":"YulVariableDeclaration","src":"284:23:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:29"},"nodeType":"YulFunctionCall","src":"294:13:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:29"},"nodeType":"YulFunctionCall","src":"330:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:29"},"nodeType":"YulFunctionCall","src":"326:18:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:29"},"nodeType":"YulFunctionCall","src":"369:18:29"},"nodeType":"YulExpressionStatement","src":"369:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:29"},"nodeType":"YulFunctionCall","src":"356:10:29"},"nodeType":"YulIf","src":"353:36:29"},{"nodeType":"YulVariableDeclaration","src":"398:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:29"},"nodeType":"YulFunctionCall","src":"408:7:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:29"},"nodeType":"YulFunctionCall","src":"438:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:29"},"nodeType":"YulFunctionCall","src":"498:13:29"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:29"},"nodeType":"YulFunctionCall","src":"494:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:29"},"nodeType":"YulFunctionCall","src":"490:31:29"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:29"},"nodeType":"YulFunctionCall","src":"486:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:29"},"nodeType":"YulFunctionCall","src":"474:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:29"},"nodeType":"YulFunctionCall","src":"588:18:29"},"nodeType":"YulExpressionStatement","src":"588:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:29"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:29"},"nodeType":"YulFunctionCall","src":"542:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:29"},"nodeType":"YulFunctionCall","src":"562:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:29"},"nodeType":"YulFunctionCall","src":"539:46:29"},"nodeType":"YulIf","src":"536:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:29"},"nodeType":"YulFunctionCall","src":"617:22:29"},"nodeType":"YulExpressionStatement","src":"617:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:29"},"nodeType":"YulFunctionCall","src":"648:18:29"},"nodeType":"YulExpressionStatement","src":"648:18:29"},{"nodeType":"YulVariableDeclaration","src":"675:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:29","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:29"},"nodeType":"YulFunctionCall","src":"737:12:29"},"nodeType":"YulExpressionStatement","src":"737:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:29"},"nodeType":"YulFunctionCall","src":"708:15:29"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:29"},"nodeType":"YulFunctionCall","src":"704:24:29"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:29"},"nodeType":"YulFunctionCall","src":"701:33:29"},"nodeType":"YulIf","src":"698:53:29"},{"nodeType":"YulVariableDeclaration","src":"760:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:29"},"nodeType":"YulFunctionCall","src":"850:14:29"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:29"},"nodeType":"YulFunctionCall","src":"846:23:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:29"},"nodeType":"YulFunctionCall","src":"881:14:29"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:29"},"nodeType":"YulFunctionCall","src":"877:23:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:29"},"nodeType":"YulFunctionCall","src":"871:30:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:29"},"nodeType":"YulFunctionCall","src":"839:63:29"},"nodeType":"YulExpressionStatement","src":"839:63:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:29"},"nodeType":"YulFunctionCall","src":"787:9:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:29","statements":[{"nodeType":"YulAssignment","src":"799:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:29"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:29"},"nodeType":"YulFunctionCall","src":"804:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:29","statements":[]},"src":"779:133:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"944:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"932:3:29"},"nodeType":"YulFunctionCall","src":"932:15:29"},{"name":"_4","nodeType":"YulIdentifier","src":"949:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"928:3:29"},"nodeType":"YulFunctionCall","src":"928:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"954:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"921:6:29"},"nodeType":"YulFunctionCall","src":"921:35:29"},"nodeType":"YulExpressionStatement","src":"921:35:29"},{"nodeType":"YulAssignment","src":"965:15:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"974:6:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"965:5:29"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:29","type":""}],"src":"146:840:29"},{"body":{"nodeType":"YulBlock","src":"1109:444:29","statements":[{"body":{"nodeType":"YulBlock","src":"1155:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1164:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1167:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1157:6:29"},"nodeType":"YulFunctionCall","src":"1157:12:29"},"nodeType":"YulExpressionStatement","src":"1157:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1130:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1139:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1126:3:29"},"nodeType":"YulFunctionCall","src":"1126:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1151:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1122:3:29"},"nodeType":"YulFunctionCall","src":"1122:32:29"},"nodeType":"YulIf","src":"1119:52:29"},{"nodeType":"YulVariableDeclaration","src":"1180:30:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1194:5:29"},"nodeType":"YulFunctionCall","src":"1194:16:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1184:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1219:28:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1237:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1241:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1233:3:29"},"nodeType":"YulFunctionCall","src":"1233:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1245:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1229:3:29"},"nodeType":"YulFunctionCall","src":"1229:18:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1223:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1274:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1283:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1276:6:29"},"nodeType":"YulFunctionCall","src":"1276:12:29"},"nodeType":"YulExpressionStatement","src":"1276:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1262:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1270:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1259:2:29"},"nodeType":"YulFunctionCall","src":"1259:14:29"},"nodeType":"YulIf","src":"1256:34:29"},{"nodeType":"YulAssignment","src":"1299:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1342:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1353:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1338:3:29"},"nodeType":"YulFunctionCall","src":"1338:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1362:7:29"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1309:28:29"},"nodeType":"YulFunctionCall","src":"1309:61:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1379:41:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1405:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1416:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1401:3:29"},"nodeType":"YulFunctionCall","src":"1401:18:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1395:5:29"},"nodeType":"YulFunctionCall","src":"1395:25:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1383:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1449:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1461:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1451:6:29"},"nodeType":"YulFunctionCall","src":"1451:12:29"},"nodeType":"YulExpressionStatement","src":"1451:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1435:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1445:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1432:2:29"},"nodeType":"YulFunctionCall","src":"1432:16:29"},"nodeType":"YulIf","src":"1429:36:29"},{"nodeType":"YulAssignment","src":"1474:73:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1517:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1528:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1513:3:29"},"nodeType":"YulFunctionCall","src":"1513:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1539:7:29"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1484:28:29"},"nodeType":"YulFunctionCall","src":"1484:63:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1474:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1067:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1078:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1090:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1098:6:29","type":""}],"src":"991:562:29"},{"body":{"nodeType":"YulBlock","src":"1613:325:29","statements":[{"nodeType":"YulAssignment","src":"1623:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1637:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1640:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1633:3:29"},"nodeType":"YulFunctionCall","src":"1633:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1623:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1654:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1684:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1680:3:29"},"nodeType":"YulFunctionCall","src":"1680:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1658:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1731:31:29","statements":[{"nodeType":"YulAssignment","src":"1733:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1747:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1755:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1743:3:29"},"nodeType":"YulFunctionCall","src":"1743:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1733:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1711:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1704:6:29"},"nodeType":"YulFunctionCall","src":"1704:26:29"},"nodeType":"YulIf","src":"1701:61:29"},{"body":{"nodeType":"YulBlock","src":"1821:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1842:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1849:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1854:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1845:3:29"},"nodeType":"YulFunctionCall","src":"1845:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1835:6:29"},"nodeType":"YulFunctionCall","src":"1835:31:29"},"nodeType":"YulExpressionStatement","src":"1835:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1886:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1889:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1879:6:29"},"nodeType":"YulFunctionCall","src":"1879:15:29"},"nodeType":"YulExpressionStatement","src":"1879:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1914:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1907:6:29"},"nodeType":"YulFunctionCall","src":"1907:15:29"},"nodeType":"YulExpressionStatement","src":"1907:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1777:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1800:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1808:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1797:2:29"},"nodeType":"YulFunctionCall","src":"1797:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1774:2:29"},"nodeType":"YulFunctionCall","src":"1774:38:29"},"nodeType":"YulIf","src":"1771:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1593:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1602:6:29","type":""}],"src":"1558:380:29"},{"body":{"nodeType":"YulBlock","src":"1999:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2016:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2019:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2009:6:29"},"nodeType":"YulFunctionCall","src":"2009:14:29"},"nodeType":"YulExpressionStatement","src":"2009:14:29"},{"nodeType":"YulAssignment","src":"2032:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2050:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2053:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2040:9:29"},"nodeType":"YulFunctionCall","src":"2040:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2032:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1982:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1990:4:29","type":""}],"src":"1943:121:29"},{"body":{"nodeType":"YulBlock","src":"2150:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"2183:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2197:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2207:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2201:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2228:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"2232:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2221:6:29"},"nodeType":"YulFunctionCall","src":"2221:17:29"},"nodeType":"YulExpressionStatement","src":"2221:17:29"},{"nodeType":"YulVariableDeclaration","src":"2251:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2273:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2277:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2263:9:29"},"nodeType":"YulFunctionCall","src":"2263:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2255:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2295:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2318:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2328:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2335:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2347:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2331:3:29"},"nodeType":"YulFunctionCall","src":"2331:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2324:3:29"},"nodeType":"YulFunctionCall","src":"2324:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2314:3:29"},"nodeType":"YulFunctionCall","src":"2314:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2299:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:23:29","statements":[{"nodeType":"YulAssignment","src":"2391:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"2406:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2391:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2371:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2383:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2368:2:29"},"nodeType":"YulFunctionCall","src":"2368:20:29"},"nodeType":"YulIf","src":"2365:47:29"},{"nodeType":"YulVariableDeclaration","src":"2425:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2439:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2449:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2456:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2461:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2452:3:29"},"nodeType":"YulFunctionCall","src":"2452:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2445:3:29"},"nodeType":"YulFunctionCall","src":"2445:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2435:3:29"},"nodeType":"YulFunctionCall","src":"2435:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2429:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2479:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2492:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2483:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2577:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2586:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2593:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2579:6:29"},"nodeType":"YulFunctionCall","src":"2579:17:29"},"nodeType":"YulExpressionStatement","src":"2579:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2527:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2534:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2524:2:29"},"nodeType":"YulFunctionCall","src":"2524:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2538:26:29","statements":[{"nodeType":"YulAssignment","src":"2540:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2553:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2560:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2549:3:29"},"nodeType":"YulFunctionCall","src":"2549:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2540:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2520:3:29","statements":[]},"src":"2516:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2166:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2171:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2163:2:29"},"nodeType":"YulFunctionCall","src":"2163:11:29"},"nodeType":"YulIf","src":"2160:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2122:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"2129:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2134:10:29","type":""}],"src":"2069:545:29"},{"body":{"nodeType":"YulBlock","src":"2704:81:29","statements":[{"nodeType":"YulAssignment","src":"2714:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2729:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2747:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2750:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2743:3:29"},"nodeType":"YulFunctionCall","src":"2743:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2760:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2756:3:29"},"nodeType":"YulFunctionCall","src":"2756:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2739:3:29"},"nodeType":"YulFunctionCall","src":"2739:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2735:3:29"},"nodeType":"YulFunctionCall","src":"2735:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2725:3:29"},"nodeType":"YulFunctionCall","src":"2725:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2774:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2767:3:29"},"nodeType":"YulFunctionCall","src":"2767:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2722:2:29"},"nodeType":"YulFunctionCall","src":"2722:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2714:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2681:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"2687:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2695:4:29","type":""}],"src":"2619:166:29"},{"body":{"nodeType":"YulBlock","src":"2886:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2896:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2916:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2910:5:29"},"nodeType":"YulFunctionCall","src":"2910:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2900:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2963:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2965:16:29"},"nodeType":"YulFunctionCall","src":"2965:18:29"},"nodeType":"YulExpressionStatement","src":"2965:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2935:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2951:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2955:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2947:3:29"},"nodeType":"YulFunctionCall","src":"2947:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2959:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2943:3:29"},"nodeType":"YulFunctionCall","src":"2943:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2932:2:29"},"nodeType":"YulFunctionCall","src":"2932:30:29"},"nodeType":"YulIf","src":"2929:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3038:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3076:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3070:5:29"},"nodeType":"YulFunctionCall","src":"3070:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3044:25:29"},"nodeType":"YulFunctionCall","src":"3044:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3084:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2994:43:29"},"nodeType":"YulFunctionCall","src":"2994:97:29"},"nodeType":"YulExpressionStatement","src":"2994:97:29"},{"nodeType":"YulVariableDeclaration","src":"3100:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3117:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3104:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3127:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3146:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3131:11:29","type":""}]},{"nodeType":"YulAssignment","src":"3159:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3172:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3159:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3229:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3243:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3262:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3274:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3270:3:29"},"nodeType":"YulFunctionCall","src":"3270:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3258:3:29"},"nodeType":"YulFunctionCall","src":"3258:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3247:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3291:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3335:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3305:29:29"},"nodeType":"YulFunctionCall","src":"3305:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3295:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3353:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3362:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3357:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3440:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3465:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3483:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3488:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3479:3:29"},"nodeType":"YulFunctionCall","src":"3479:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3473:5:29"},"nodeType":"YulFunctionCall","src":"3473:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3458:6:29"},"nodeType":"YulFunctionCall","src":"3458:42:29"},"nodeType":"YulExpressionStatement","src":"3458:42:29"},{"nodeType":"YulAssignment","src":"3517:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3531:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3539:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3527:3:29"},"nodeType":"YulFunctionCall","src":"3527:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3517:6:29"}]},{"nodeType":"YulAssignment","src":"3558:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3575:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3586:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3571:3:29"},"nodeType":"YulFunctionCall","src":"3571:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3558:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3387:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3390:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3384:2:29"},"nodeType":"YulFunctionCall","src":"3384:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3399:28:29","statements":[{"nodeType":"YulAssignment","src":"3401:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3410:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3413:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3406:3:29"},"nodeType":"YulFunctionCall","src":"3406:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3401:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3380:3:29","statements":[]},"src":"3376:236:29"},{"body":{"nodeType":"YulBlock","src":"3660:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3678:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3705:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3710:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3701:3:29"},"nodeType":"YulFunctionCall","src":"3701:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3695:5:29"},"nodeType":"YulFunctionCall","src":"3695:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3682:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3745:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3757:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3784:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3787:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3780:3:29"},"nodeType":"YulFunctionCall","src":"3780:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"3796:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3776:3:29"},"nodeType":"YulFunctionCall","src":"3776:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3806:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3802:3:29"},"nodeType":"YulFunctionCall","src":"3802:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3772:3:29"},"nodeType":"YulFunctionCall","src":"3772:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3768:3:29"},"nodeType":"YulFunctionCall","src":"3768:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3753:3:29"},"nodeType":"YulFunctionCall","src":"3753:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3738:6:29"},"nodeType":"YulFunctionCall","src":"3738:74:29"},"nodeType":"YulExpressionStatement","src":"3738:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3631:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3640:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3628:2:29"},"nodeType":"YulFunctionCall","src":"3628:19:29"},"nodeType":"YulIf","src":"3625:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3846:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3860:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3863:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3856:3:29"},"nodeType":"YulFunctionCall","src":"3856:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"3872:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3852:3:29"},"nodeType":"YulFunctionCall","src":"3852:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3839:6:29"},"nodeType":"YulFunctionCall","src":"3839:36:29"},"nodeType":"YulExpressionStatement","src":"3839:36:29"}]},"nodeType":"YulCase","src":"3222:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3227:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3902:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3916:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3929:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3920:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3965:67:29","statements":[{"nodeType":"YulAssignment","src":"3983:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4002:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4007:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:29"},"nodeType":"YulFunctionCall","src":"3998:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3992:5:29"},"nodeType":"YulFunctionCall","src":"3992:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3983:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3946:6:29"},"nodeType":"YulIf","src":"3943:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4052:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4111:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"4118:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4058:52:29"},"nodeType":"YulFunctionCall","src":"4058:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4045:6:29"},"nodeType":"YulFunctionCall","src":"4045:81:29"},"nodeType":"YulExpressionStatement","src":"4045:81:29"}]},"nodeType":"YulCase","src":"3894:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3202:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3210:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3199:2:29"},"nodeType":"YulFunctionCall","src":"3199:14:29"},"nodeType":"YulSwitch","src":"3192:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2871:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"2877:3:29","type":""}],"src":"2790:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n mstore(add(add(memPtr, _1), _4), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000d0838038062000d0883398101604081905262000034916200012c565b600362000042838262000225565b50600462000051828262000225565b50506005805460ff1916601217905550620002f1565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008f57600080fd5b81516001600160401b0380821115620000ac57620000ac62000067565b604051601f8301601f19908116603f01168101908282118183101715620000d757620000d762000067565b81604052838152602092508683858801011115620000f457600080fd5b600091505b83821015620001185785820183015181830184015290820190620000f9565b600093810190920192909252949350505050565b600080604083850312156200014057600080fd5b82516001600160401b03808211156200015857600080fd5b62000166868387016200007d565b935060208501519150808211156200017d57600080fd5b506200018c858286016200007d565b9150509250929050565b600181811c90821680620001ab57607f821691505b602082108103620001cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022057600081815260208120601f850160051c81016020861015620001fb5750805b601f850160051c820191505b818110156200021c5782815560010162000207565b5050505b505050565b81516001600160401b0381111562000241576200024162000067565b620002598162000252845462000196565b84620001d2565b602080601f831160018114620002915760008415620002785750858301515b600019600386901b1c1916600185901b1785556200021c565b600085815260208120601f198616915b82811015620002c257888601518255948401946001909101908401620002a1565b5085821015620002e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a0780620003016000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD08 CODESIZE SUB DUP1 PUSH3 0xD08 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x12C JUMP JUMPDEST PUSH1 0x3 PUSH3 0x42 DUP4 DUP3 PUSH3 0x225 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x51 DUP3 DUP3 PUSH3 0x225 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE POP PUSH3 0x2F1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0xAC JUMPI PUSH3 0xAC PUSH3 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0xD7 JUMPI PUSH3 0xD7 PUSH3 0x67 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0xF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x118 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0xF9 JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x166 DUP7 DUP4 DUP8 ADD PUSH3 0x7D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x18C DUP6 DUP3 DUP7 ADD PUSH3 0x7D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x220 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x1FB JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x21C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x241 JUMPI PUSH3 0x241 PUSH3 0x67 JUMP JUMPDEST PUSH3 0x259 DUP2 PUSH3 0x252 DUP5 SLOAD PUSH3 0x196 JUMP JUMPDEST DUP5 PUSH3 0x1D2 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x291 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x278 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x21C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2C2 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2A1 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2E1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xA07 DUP1 PUSH3 0x301 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x134 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x27E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x89A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x417 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 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 0x227 SWAP1 PUSH2 0x8E8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x274 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x249 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x274 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x257 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 DUP5 DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH2 0x2F4 DUP5 CALLER PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x985 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x28B SWAP2 DUP6 SWAP1 PUSH2 0x2EF SWAP1 DUP7 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x38F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x39C SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3C2 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9AD PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x545 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x60B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x66D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH2 0x6AA DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x95F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6D9 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x59A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x75B DUP5 DUP7 PUSH2 0x938 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x771 DUP4 DUP6 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7F7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7DB JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x82F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x850 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x87C DUP5 PUSH2 0x818 JUMP JUMPDEST SWAP3 POP PUSH2 0x88A PUSH1 0x20 DUP6 ADD PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C3 DUP3 PUSH2 0x818 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D1 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH2 0x8DF PUSH1 0x20 DUP5 ADD PUSH2 0x818 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x91C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x2062616C616E636545524332303A207472616E73 PUSH7 0x657220616D6F75 PUSH15 0x74206578636565647320616C6C6F77 PUSH2 0x6E63 PUSH6 0x45524332303A KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x73582212208098 CALLDATALOAD SSTORE JUMP 0xE0 PUSH2 0x1713 0x4B SLT PREVRANDAO RETURN SSTORE 0xD0 0x21 SWAP6 0xDD NUMBER SDIV DUP4 PUSH10 0xF2AB5F33EF72720CD900 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"16326:9744:27:-:0;;;16994:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17063:5;:14;17071:6;17063:5;:14;:::i;:::-;-1:-1:-1;17087:7:27;:18;17097:8;17087:7;:18;:::i;:::-;-1:-1:-1;;17115:9:27;:14;;-1:-1:-1;;17115:14:27;17127:2;17115:14;;;-1:-1:-1;16326:9744:27;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:29;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:29;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:29:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:29;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:29;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:29;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:29;;;3992:26;3943:89;-1:-1:-1;;2747:1:29;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:29;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:29;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:29;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:29:o;:::-;16326:9744:27;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_9975":{"entryPoint":1154,"id":9975,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9997":{"entryPoint":null,"id":9997,"parameterSlots":3,"returnSlots":0},"@_mint_9874":{"entryPoint":820,"id":9874,"parameterSlots":2,"returnSlots":0},"@_msgSender_8979":{"entryPoint":null,"id":8979,"parameterSlots":0,"returnSlots":1},"@_transfer_9819":{"entryPoint":1447,"id":9819,"parameterSlots":3,"returnSlots":0},"@add_9096":{"entryPoint":1892,"id":9096,"parameterSlots":2,"returnSlots":1},"@allowance_9637":{"entryPoint":null,"id":9637,"parameterSlots":2,"returnSlots":1},"@approve_9658":{"entryPoint":638,"id":9658,"parameterSlots":2,"returnSlots":1},"@balanceOf_9598":{"entryPoint":null,"id":9598,"parameterSlots":1,"returnSlots":1},"@decimals_9564":{"entryPoint":null,"id":9564,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9753":{"entryPoint":1062,"id":9753,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_9724":{"entryPoint":766,"id":9724,"parameterSlots":2,"returnSlots":1},"@name_9526":{"entryPoint":492,"id":9526,"parameterSlots":0,"returnSlots":1},"@sub_9141":{"entryPoint":1834,"id":9141,"parameterSlots":3,"returnSlots":1},"@symbol_9545":{"entryPoint":1047,"id":9545,"parameterSlots":0,"returnSlots":1},"@totalSupply_9584":{"entryPoint":null,"id":9584,"parameterSlots":0,"returnSlots":1},"@transferFrom_9696":{"entryPoint":661,"id":9696,"parameterSlots":3,"returnSlots":1},"@transfer_9619":{"entryPoint":1141,"id":9619,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2072,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2202,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2229,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2100,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1994,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2379,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2360,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2280,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2338,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5467:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:29","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:29"},"nodeType":"YulFunctionCall","src":"166:21:29"},"nodeType":"YulExpressionStatement","src":"166:21:29"},{"nodeType":"YulVariableDeclaration","src":"196:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:29"},"nodeType":"YulFunctionCall","src":"210:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:29"},"nodeType":"YulFunctionCall","src":"239:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:29"},"nodeType":"YulFunctionCall","src":"232:34:29"},"nodeType":"YulExpressionStatement","src":"232:34:29"},{"nodeType":"YulVariableDeclaration","src":"275:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:29"},"nodeType":"YulFunctionCall","src":"369:17:29"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:29"},"nodeType":"YulFunctionCall","src":"365:26:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:29"},"nodeType":"YulFunctionCall","src":"403:14:29"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:29"},"nodeType":"YulFunctionCall","src":"399:23:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:29"},"nodeType":"YulFunctionCall","src":"393:30:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:29"},"nodeType":"YulFunctionCall","src":"358:66:29"},"nodeType":"YulExpressionStatement","src":"358:66:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:29"},"nodeType":"YulFunctionCall","src":"302:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:29","statements":[{"nodeType":"YulAssignment","src":"318:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:29"},"nodeType":"YulFunctionCall","src":"323:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:29","statements":[]},"src":"294:140:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:29"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:29"},"nodeType":"YulFunctionCall","src":"454:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:29"},"nodeType":"YulFunctionCall","src":"450:31:29"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:29"},"nodeType":"YulFunctionCall","src":"443:42:29"},"nodeType":"YulExpressionStatement","src":"443:42:29"},{"nodeType":"YulAssignment","src":"494:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:29"},"nodeType":"YulFunctionCall","src":"525:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:29"},"nodeType":"YulFunctionCall","src":"542:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:29"},"nodeType":"YulFunctionCall","src":"521:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:29"},"nodeType":"YulFunctionCall","src":"506:45:29"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:29"},"nodeType":"YulFunctionCall","src":"502:54:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:29","type":""}],"src":"14:548:29"},{"body":{"nodeType":"YulBlock","src":"616:124:29","statements":[{"nodeType":"YulAssignment","src":"626:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:29"},"nodeType":"YulFunctionCall","src":"635:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:29"}]},{"body":{"nodeType":"YulBlock","src":"718:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:29"},"nodeType":"YulFunctionCall","src":"720:12:29"},"nodeType":"YulExpressionStatement","src":"720:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:29"},"nodeType":"YulFunctionCall","src":"699:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:29"},"nodeType":"YulFunctionCall","src":"695:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:29"},"nodeType":"YulFunctionCall","src":"684:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:29"},"nodeType":"YulFunctionCall","src":"674:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:29"},"nodeType":"YulFunctionCall","src":"667:50:29"},"nodeType":"YulIf","src":"664:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:29","type":""}],"src":"567:173:29"},{"body":{"nodeType":"YulBlock","src":"832:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:29"},"nodeType":"YulFunctionCall","src":"880:12:29"},"nodeType":"YulExpressionStatement","src":"880:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:29"},"nodeType":"YulFunctionCall","src":"849:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:29"},"nodeType":"YulFunctionCall","src":"845:32:29"},"nodeType":"YulIf","src":"842:52:29"},{"nodeType":"YulAssignment","src":"903:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:29"},"nodeType":"YulFunctionCall","src":"913:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:29"}]},{"nodeType":"YulAssignment","src":"951:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:29"},"nodeType":"YulFunctionCall","src":"974:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:29"},"nodeType":"YulFunctionCall","src":"961:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:29","type":""}],"src":"745:254:29"},{"body":{"nodeType":"YulBlock","src":"1099:92:29","statements":[{"nodeType":"YulAssignment","src":"1109:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:29"},"nodeType":"YulFunctionCall","src":"1117:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:29"},"nodeType":"YulFunctionCall","src":"1169:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:29"},"nodeType":"YulFunctionCall","src":"1162:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:29"},"nodeType":"YulFunctionCall","src":"1144:41:29"},"nodeType":"YulExpressionStatement","src":"1144:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:29","type":""}],"src":"1004:187:29"},{"body":{"nodeType":"YulBlock","src":"1297:76:29","statements":[{"nodeType":"YulAssignment","src":"1307:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:29"},"nodeType":"YulFunctionCall","src":"1315:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:29"},"nodeType":"YulFunctionCall","src":"1342:25:29"},"nodeType":"YulExpressionStatement","src":"1342:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:29","type":""}],"src":"1196:177:29"},{"body":{"nodeType":"YulBlock","src":"1482:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:29"},"nodeType":"YulFunctionCall","src":"1530:12:29"},"nodeType":"YulExpressionStatement","src":"1530:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:29"},"nodeType":"YulFunctionCall","src":"1499:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:29"},"nodeType":"YulFunctionCall","src":"1495:32:29"},"nodeType":"YulIf","src":"1492:52:29"},{"nodeType":"YulAssignment","src":"1553:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:29"},"nodeType":"YulFunctionCall","src":"1563:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:29"}]},{"nodeType":"YulAssignment","src":"1601:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:29"},"nodeType":"YulFunctionCall","src":"1630:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:29"},"nodeType":"YulFunctionCall","src":"1611:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:29"}]},{"nodeType":"YulAssignment","src":"1658:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:29"},"nodeType":"YulFunctionCall","src":"1681:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:29"},"nodeType":"YulFunctionCall","src":"1668:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:29","type":""}],"src":"1378:328:29"},{"body":{"nodeType":"YulBlock","src":"1808:87:29","statements":[{"nodeType":"YulAssignment","src":"1818:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:29"},"nodeType":"YulFunctionCall","src":"1826:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:29"},"nodeType":"YulFunctionCall","src":"1871:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:29"},"nodeType":"YulFunctionCall","src":"1853:36:29"},"nodeType":"YulExpressionStatement","src":"1853:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:29","type":""}],"src":"1711:184:29"},{"body":{"nodeType":"YulBlock","src":"1970:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:29"},"nodeType":"YulFunctionCall","src":"2018:12:29"},"nodeType":"YulExpressionStatement","src":"2018:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:29"},"nodeType":"YulFunctionCall","src":"1987:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:29"},"nodeType":"YulFunctionCall","src":"1983:32:29"},"nodeType":"YulIf","src":"1980:52:29"},{"nodeType":"YulAssignment","src":"2041:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2070:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2051:18:29"},"nodeType":"YulFunctionCall","src":"2051:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:29","type":""}],"src":"1900:186:29"},{"body":{"nodeType":"YulBlock","src":"2178:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"2224:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2233:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2236:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2226:6:29"},"nodeType":"YulFunctionCall","src":"2226:12:29"},"nodeType":"YulExpressionStatement","src":"2226:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2199:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2195:3:29"},"nodeType":"YulFunctionCall","src":"2195:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2220:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2191:3:29"},"nodeType":"YulFunctionCall","src":"2191:32:29"},"nodeType":"YulIf","src":"2188:52:29"},{"nodeType":"YulAssignment","src":"2249:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2278:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2259:18:29"},"nodeType":"YulFunctionCall","src":"2259:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2249:6:29"}]},{"nodeType":"YulAssignment","src":"2297:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2330:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2341:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2326:3:29"},"nodeType":"YulFunctionCall","src":"2326:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2307:18:29"},"nodeType":"YulFunctionCall","src":"2307:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2297:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2136:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2147:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2159:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2167:6:29","type":""}],"src":"2091:260:29"},{"body":{"nodeType":"YulBlock","src":"2411:325:29","statements":[{"nodeType":"YulAssignment","src":"2421:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2435:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2438:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2431:3:29"},"nodeType":"YulFunctionCall","src":"2431:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2421:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2452:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2482:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"2488:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2478:3:29"},"nodeType":"YulFunctionCall","src":"2478:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2456:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2529:31:29","statements":[{"nodeType":"YulAssignment","src":"2531:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2545:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2553:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2541:3:29"},"nodeType":"YulFunctionCall","src":"2541:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2531:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2509:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2502:6:29"},"nodeType":"YulFunctionCall","src":"2502:26:29"},"nodeType":"YulIf","src":"2499:61:29"},{"body":{"nodeType":"YulBlock","src":"2619:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2640:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2647:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2652:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2643:3:29"},"nodeType":"YulFunctionCall","src":"2643:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:31:29"},"nodeType":"YulExpressionStatement","src":"2633:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2684:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2687:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2677:6:29"},"nodeType":"YulFunctionCall","src":"2677:15:29"},"nodeType":"YulExpressionStatement","src":"2677:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2712:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2715:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2705:6:29"},"nodeType":"YulFunctionCall","src":"2705:15:29"},"nodeType":"YulExpressionStatement","src":"2705:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2575:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2598:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2606:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2595:2:29"},"nodeType":"YulFunctionCall","src":"2595:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2572:2:29"},"nodeType":"YulFunctionCall","src":"2572:38:29"},"nodeType":"YulIf","src":"2569:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2391:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2400:6:29","type":""}],"src":"2356:380:29"},{"body":{"nodeType":"YulBlock","src":"2915:181:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2932:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2943:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2925:6:29"},"nodeType":"YulFunctionCall","src":"2925:21:29"},"nodeType":"YulExpressionStatement","src":"2925:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2966:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2977:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2962:3:29"},"nodeType":"YulFunctionCall","src":"2962:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2982:2:29","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2955:6:29"},"nodeType":"YulFunctionCall","src":"2955:30:29"},"nodeType":"YulExpressionStatement","src":"2955:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3016:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3001:3:29"},"nodeType":"YulFunctionCall","src":"3001:18:29"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"3021:33:29","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2994:6:29"},"nodeType":"YulFunctionCall","src":"2994:61:29"},"nodeType":"YulExpressionStatement","src":"2994:61:29"},{"nodeType":"YulAssignment","src":"3064:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3076:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3087:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3072:3:29"},"nodeType":"YulFunctionCall","src":"3072:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3064:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2892:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2906:4:29","type":""}],"src":"2741:355:29"},{"body":{"nodeType":"YulBlock","src":"3275:226:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3303:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3285:6:29"},"nodeType":"YulFunctionCall","src":"3285:21:29"},"nodeType":"YulExpressionStatement","src":"3285:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3326:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3337:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3322:3:29"},"nodeType":"YulFunctionCall","src":"3322:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3342:2:29","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3315:6:29"},"nodeType":"YulFunctionCall","src":"3315:30:29"},"nodeType":"YulExpressionStatement","src":"3315:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3365:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3376:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3361:3:29"},"nodeType":"YulFunctionCall","src":"3361:18:29"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3381:34:29","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3354:6:29"},"nodeType":"YulFunctionCall","src":"3354:62:29"},"nodeType":"YulExpressionStatement","src":"3354:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3432:3:29"},"nodeType":"YulFunctionCall","src":"3432:18:29"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3452:6:29","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3425:6:29"},"nodeType":"YulFunctionCall","src":"3425:34:29"},"nodeType":"YulExpressionStatement","src":"3425:34:29"},{"nodeType":"YulAssignment","src":"3468:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3480:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3491:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3476:3:29"},"nodeType":"YulFunctionCall","src":"3476:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3468:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3252:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3266:4:29","type":""}],"src":"3101:400:29"},{"body":{"nodeType":"YulBlock","src":"3680:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3697:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3708:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3690:6:29"},"nodeType":"YulFunctionCall","src":"3690:21:29"},"nodeType":"YulExpressionStatement","src":"3690:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3731:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3742:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3727:3:29"},"nodeType":"YulFunctionCall","src":"3727:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3747:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3720:6:29"},"nodeType":"YulFunctionCall","src":"3720:30:29"},"nodeType":"YulExpressionStatement","src":"3720:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3770:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3781:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:29"},"nodeType":"YulFunctionCall","src":"3766:18:29"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"3786:34:29","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3759:6:29"},"nodeType":"YulFunctionCall","src":"3759:62:29"},"nodeType":"YulExpressionStatement","src":"3759:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3841:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3852:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3837:3:29"},"nodeType":"YulFunctionCall","src":"3837:18:29"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"3857:4:29","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3830:6:29"},"nodeType":"YulFunctionCall","src":"3830:32:29"},"nodeType":"YulExpressionStatement","src":"3830:32:29"},{"nodeType":"YulAssignment","src":"3871:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3883:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3894:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3879:3:29"},"nodeType":"YulFunctionCall","src":"3879:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3871:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3657:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3671:4:29","type":""}],"src":"3506:398:29"},{"body":{"nodeType":"YulBlock","src":"4083:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4100:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4111:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4093:6:29"},"nodeType":"YulFunctionCall","src":"4093:21:29"},"nodeType":"YulExpressionStatement","src":"4093:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4134:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4145:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4130:3:29"},"nodeType":"YulFunctionCall","src":"4130:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"4150:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4123:6:29"},"nodeType":"YulFunctionCall","src":"4123:30:29"},"nodeType":"YulExpressionStatement","src":"4123:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4173:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4184:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4169:3:29"},"nodeType":"YulFunctionCall","src":"4169:18:29"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4189:34:29","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4162:6:29"},"nodeType":"YulFunctionCall","src":"4162:62:29"},"nodeType":"YulExpressionStatement","src":"4162:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4244:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4255:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4240:3:29"},"nodeType":"YulFunctionCall","src":"4240:18:29"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4260:7:29","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4233:6:29"},"nodeType":"YulFunctionCall","src":"4233:35:29"},"nodeType":"YulExpressionStatement","src":"4233:35:29"},{"nodeType":"YulAssignment","src":"4277:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4289:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4300:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4285:3:29"},"nodeType":"YulFunctionCall","src":"4285:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4277:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4060:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4074:4:29","type":""}],"src":"3909:401:29"},{"body":{"nodeType":"YulBlock","src":"4489:225:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4506:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4517:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4499:6:29"},"nodeType":"YulFunctionCall","src":"4499:21:29"},"nodeType":"YulExpressionStatement","src":"4499:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4540:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4551:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4536:3:29"},"nodeType":"YulFunctionCall","src":"4536:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"4556:2:29","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4529:6:29"},"nodeType":"YulFunctionCall","src":"4529:30:29"},"nodeType":"YulExpressionStatement","src":"4529:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4579:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4590:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4575:3:29"},"nodeType":"YulFunctionCall","src":"4575:18:29"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"4595:34:29","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4568:6:29"},"nodeType":"YulFunctionCall","src":"4568:62:29"},"nodeType":"YulExpressionStatement","src":"4568:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4650:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4661:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4646:3:29"},"nodeType":"YulFunctionCall","src":"4646:18:29"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"4666:5:29","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4639:6:29"},"nodeType":"YulFunctionCall","src":"4639:33:29"},"nodeType":"YulExpressionStatement","src":"4639:33:29"},{"nodeType":"YulAssignment","src":"4681:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4693:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4704:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4689:3:29"},"nodeType":"YulFunctionCall","src":"4689:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4681:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4466:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4480:4:29","type":""}],"src":"4315:399:29"},{"body":{"nodeType":"YulBlock","src":"4751:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4768:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4775:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4780:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4771:3:29"},"nodeType":"YulFunctionCall","src":"4771:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4761:6:29"},"nodeType":"YulFunctionCall","src":"4761:31:29"},"nodeType":"YulExpressionStatement","src":"4761:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4808:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4811:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4801:6:29"},"nodeType":"YulFunctionCall","src":"4801:15:29"},"nodeType":"YulExpressionStatement","src":"4801:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4832:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4835:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4825:6:29"},"nodeType":"YulFunctionCall","src":"4825:15:29"},"nodeType":"YulExpressionStatement","src":"4825:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"4719:127:29"},{"body":{"nodeType":"YulBlock","src":"4900:79:29","statements":[{"nodeType":"YulAssignment","src":"4910:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4922:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"4925:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4918:3:29"},"nodeType":"YulFunctionCall","src":"4918:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4910:4:29"}]},{"body":{"nodeType":"YulBlock","src":"4951:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4953:16:29"},"nodeType":"YulFunctionCall","src":"4953:18:29"},"nodeType":"YulExpressionStatement","src":"4953:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"4942:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"4948:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4939:2:29"},"nodeType":"YulFunctionCall","src":"4939:11:29"},"nodeType":"YulIf","src":"4936:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4882:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"4885:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4891:4:29","type":""}],"src":"4851:128:29"},{"body":{"nodeType":"YulBlock","src":"5032:77:29","statements":[{"nodeType":"YulAssignment","src":"5042:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5053:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5056:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5049:3:29"},"nodeType":"YulFunctionCall","src":"5049:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5042:3:29"}]},{"body":{"nodeType":"YulBlock","src":"5081:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5083:16:29"},"nodeType":"YulFunctionCall","src":"5083:18:29"},"nodeType":"YulExpressionStatement","src":"5083:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5073:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"5076:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5070:2:29"},"nodeType":"YulFunctionCall","src":"5070:10:29"},"nodeType":"YulIf","src":"5067:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5015:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5018:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5024:3:29","type":""}],"src":"4984:125:29"},{"body":{"nodeType":"YulBlock","src":"5288:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5305:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5316:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5298:6:29"},"nodeType":"YulFunctionCall","src":"5298:21:29"},"nodeType":"YulExpressionStatement","src":"5298:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5339:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5350:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5335:3:29"},"nodeType":"YulFunctionCall","src":"5335:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"5355:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5328:6:29"},"nodeType":"YulFunctionCall","src":"5328:30:29"},"nodeType":"YulExpressionStatement","src":"5328:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5378:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5389:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5374:3:29"},"nodeType":"YulFunctionCall","src":"5374:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"5394:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5367:6:29"},"nodeType":"YulFunctionCall","src":"5367:57:29"},"nodeType":"YulExpressionStatement","src":"5367:57:29"},{"nodeType":"YulAssignment","src":"5433:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5445:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5456:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5441:3:29"},"nodeType":"YulFunctionCall","src":"5441:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5433:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5265:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5279:4:29","type":""}],"src":"5114:351:29"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x134 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x27E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x89A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x417 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 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 0x227 SWAP1 PUSH2 0x8E8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x274 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x249 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x274 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x257 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 DUP5 DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH2 0x2F4 DUP5 CALLER PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x985 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x28B SWAP2 DUP6 SWAP1 PUSH2 0x2EF SWAP1 DUP7 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x38F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x39C SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3C2 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9AD PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x545 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x60B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x66D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH2 0x6AA DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x95F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6D9 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x59A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x75B DUP5 DUP7 PUSH2 0x938 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x771 DUP4 DUP6 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7F7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7DB JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x82F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x850 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x87C DUP5 PUSH2 0x818 JUMP JUMPDEST SWAP3 POP PUSH2 0x88A PUSH1 0x20 DUP6 ADD PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C3 DUP3 PUSH2 0x818 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D1 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH2 0x8DF PUSH1 0x20 DUP5 ADD PUSH2 0x818 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x91C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x2062616C616E636545524332303A207472616E73 PUSH7 0x657220616D6F75 PUSH15 0x74206578636565647320616C6C6F77 PUSH2 0x6E63 PUSH6 0x45524332303A KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x73582212208098 CALLDATALOAD SSTORE JUMP 0xE0 PUSH2 0x1713 0x4B SLT PREVRANDAO RETURN SSTORE 0xD0 0x21 SWAP6 0xDD NUMBER SDIV DUP4 PUSH10 0xF2AB5F33EF72720CD900 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"16326:9744:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19508:166;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:29;;1162:22;1144:41;;1132:2;1117:18;19508:166:27;1004:187:29;18515:98:27;18594:12;;18515:98;;;1342:25:29;;;1330:2;1315:18;18515:98:27;1196:177:29;20134:330:27;;;;;;:::i;:::-;;:::i;18281:81::-;18346:9;;18281:81;;18346:9;;;;1853:36:29;;1841:2;1826:18;18281:81:27;1711:184:29;20859:215:27;;;;;;:::i;:::-;;:::i;23115:369::-;;;;;;:::i;:::-;;:::i;:::-;;18671:117;;;;;;:::i;:::-;-1:-1:-1;;;;;18763:18:27;18737:7;18763:18;;;;;;;;;;;;18671:117;17480:85;;;:::i;21561:279::-;;;;;;:::i;:::-;;:::i;18991:172::-;;;;;;:::i;:::-;;:::i;19221:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;19336:18:27;;;19310:7;19336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19221:149;17201:81;17238:13;17270:5;17263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;:::o;19508:166::-;19591:4;19607:39;693:10;19630:7;19639:6;19607:8;:39::i;:::-;-1:-1:-1;19663:4:27;19508:166;;;;;:::o;20134:330::-;20240:4;20256:36;20266:6;20274:9;20285:6;20256:9;:36::i;:::-;20302:134;20311:6;693:10;20333:102;20371:6;20333:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20333:19:27;;;;;;:11;:19;;;;;;;;693:10;20333:33;;;;;;;;;;:37;:102::i;:::-;20302:8;:134::i;:::-;-1:-1:-1;20453:4:27;20134:330;;;;;:::o;20859:215::-;693:10;20947:4;20995:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20995:34:27;;;;;;;;;;20947:4;;20963:83;;20986:7;;20995:50;;21034:10;20995:38;:50::i;23115:369::-;-1:-1:-1;;;;;23197:21:27;;23189:65;;;;-1:-1:-1;;;23189:65:27;;2943:2:29;23189:65:27;;;2925:21:29;2982:2;2962:18;;;2955:30;3021:33;3001:18;;;2994:61;3072:18;;23189:65:27;;;;;;;;;23340:12;;:24;;23357:6;23340:16;:24::i;:::-;23325:12;:39;-1:-1:-1;;;;;23395:18:27;;:9;:18;;;;;;;;;;;:30;;23418:6;23395:22;:30::i;:::-;-1:-1:-1;;;;;23374:18:27;;:9;:18;;;;;;;;;;;:51;;;;23440:37;;1342:25:29;;;23374:18:27;;:9;;23440:37;;1315:18:29;23440:37:27;;;;;;;23115:369;;:::o;17480:85::-;17519:13;17551:7;17544:14;;;;;:::i;21561:279::-;21654:4;21670:142;693:10;21693:7;21702:109;21741:15;21702:109;;;;;;;;;;;;;;;;;693:10;21702:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21702:34:27;;;;;;;;;;;;:38;:109::i;18991:172::-;19077:4;19093:42;693:10;19117:9;19128:6;19093:9;:42::i;24638:340::-;-1:-1:-1;;;;;24739:19:27;;24731:68;;;;-1:-1:-1;;;24731:68:27;;3303:2:29;24731:68:27;;;3285:21:29;3342:2;3322:18;;;3315:30;3381:34;3361:18;;;3354:62;-1:-1:-1;;;3432:18:29;;;3425:34;3476:19;;24731:68:27;3101:400:29;24731:68:27;-1:-1:-1;;;;;24817:21:27;;24809:68;;;;-1:-1:-1;;;24809:68:27;;3708:2:29;24809:68:27;;;3690:21:29;3747:2;3727:18;;;3720:30;3786:34;3766:18;;;3759:62;-1:-1:-1;;;3837:18:29;;;3830:32;3879:19;;24809:68:27;3506:398:29;24809:68:27;-1:-1:-1;;;;;24888:18:27;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24939:32;;1342:25:29;;;24939:32:27;;1315:18:29;24939:32:27;;;;;;;;24638:340;;;:::o;22314:530::-;-1:-1:-1;;;;;22419:20:27;;22411:70;;;;-1:-1:-1;;;22411:70:27;;4111:2:29;22411:70:27;;;4093:21:29;4150:2;4130:18;;;4123:30;4189:34;4169:18;;;4162:62;-1:-1:-1;;;4240:18:29;;;4233:35;4285:19;;22411:70:27;3909:401:29;22411:70:27;-1:-1:-1;;;;;22499:23:27;;22491:71;;;;-1:-1:-1;;;22491:71:27;;4517:2:29;22491:71:27;;;4499:21:29;4556:2;4536:18;;;4529:30;4595:34;4575:18;;;4568:62;-1:-1:-1;;;4646:18:29;;;4639:33;4689:19;;22491:71:27;4315:399:29;22491:71:27;22651;22673:6;22651:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22651:17:27;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22631:17:27;;;:9;:17;;;;;;;;;;;:91;;;;22755:20;;;;;;;:32;;22780:6;22755:24;:32::i;:::-;-1:-1:-1;;;;;22732:20:27;;;:9;:20;;;;;;;;;;;;:55;;;;22802:35;1342:25:29;;;22732:20:27;;22802:35;;;;;;1315:18:29;22802:35:27;1196:177:29;5473:187:27;5559:7;5594:12;5586:6;;;;5578:29;;;;-1:-1:-1;;;5578:29:27;;;;;;;;:::i;:::-;-1:-1:-1;5617:9:27;5629:5;5633:1;5629;:5;:::i;:::-;5617:17;5473:187;-1:-1:-1;;;;;5473:187:27:o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;5316:2:29;4705:46:27;;;5298:21:29;5355:2;5335:18;;;5328:30;5394:29;5374:18;;;5367:57;5441:18;;4705:46:27;5114:351:29;4705:46:27;4769:1;4601:176;-1:-1:-1;;;4601:176:27:o;14:548:29:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:29;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:29:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;4719:127::-;4780:10;4775:3;4771:20;4768:1;4761:31;4811:4;4808:1;4801:15;4835:4;4832:1;4825:15;4851:128;4918:9;;;4939:11;;;4936:37;;;4953:18;;:::i;4984:125::-;5049:9;;;5070:10;;;5067:36;;;5083:18;;:::i"},"methodIdentifiers":{"_mint(address,uint256)":"4e6ec247","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"__name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"__symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"openzeppelin Implementation of the {IERC20} interface. Modified to add setters for name, symbol and decimals. This was needed because This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"_mint(address,uint256)\":{\"details\":\"Creates `amount` tokens and assigns them to `account`, increasing the total supply. Emits a {Transfer} event with `from` set to the zero address. Requirements - `to` cannot be the zero address. \"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD9 EXTCODESIZE 0xC0 0x5E PUSH25 0x3660EF6780C03C0499434D413B270AE596394DE469A21DDB68 BYTE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"26824:7098:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;26824:7098:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD9 EXTCODESIZE 0xC0 0x5E PUSH25 0x3660EF6780C03C0499434D413B270AE596394DE469A21DDB68 BYTE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"26824:7098:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"IChildToken":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deposit(address,bytes)":"cf2c52cb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"depositData\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"IChildToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"Initializable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60806040526000805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x27 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL SWAP13 0xE 0xE9 DUP8 0x2F ADD 0x1E CODECOPY 0xD3 PUSH8 0x4C6D194ADD1B2123 PREVRANDAO PUSH12 0xB854F67245E42794E0D91964 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"41957:165:27:-:0;;;42000:5;41986:19;;-1:-1:-1;;41986:19:27;;;41957:165;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL SWAP13 0xE 0xE9 DUP8 0x2F ADD 0x1E CODECOPY 0xD3 PUSH8 0x4C6D194ADD1B2123 PREVRANDAO PUSH12 0xB854F67245E42794E0D91964 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"41957:165:27:-:0;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"NativeMetaTransaction":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60806040526000805460ff1916905534801561001a57600080fd5b506107998061002a6000396000f3fe60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x799 DUP1 PUSH2 0x2A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC53C51C EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57 PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x64 SWAP2 SWAP1 PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E PUSH2 0xA7 CALLDATASIZE PUSH1 0x4 PUSH2 0x65C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x113 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x16E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x192 SWAP1 PUSH1 0x1 PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x1E2 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x20A SWAP3 SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x224 SWAP2 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x261 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x266 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x32A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x33D PUSH2 0x338 DUP8 PUSH2 0x41C JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C1 DUP4 DUP6 PUSH2 0x6FF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x413 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x721 PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x47C SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A4 PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x47C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52D DUP7 PUSH2 0x4C9 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x570 JUMPI PUSH2 0x570 PUSH2 0x4E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x598 JUMPI PUSH2 0x598 PUSH2 0x4E5 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x5E6 PUSH1 0x80 DUP8 ADD PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x60D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5F5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x62E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x655 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x655 DUP3 PUSH2 0x4C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x6A3 SWAP1 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x6BE DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x6F5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x5F2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x416 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0x4D PUSH6 0x74615472616E PUSH20 0x616374696F6E2875696E74323536206E6F6E6365 0x2C PUSH2 0x6464 PUSH19 0x6573732066726F6D2C62797465732066756E63 PUSH21 0x696F6E5369676E617475726529A264697066735822 SLT KECCAK256 0xC0 0xEF PUSH30 0x9248999F2285EFF1B86E454ABED25B72D6CC6591610A4BBBE450AA744364 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"44308:2905:27:-:0;;;42000:5;41986:19;;-1:-1:-1;;41986:19:27;;;44308:2905;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@add_9096":{"entryPoint":948,"id":9096,"parameterSlots":2,"returnSlots":1},"@executeMetaTransaction_10999":{"entryPoint":213,"id":10999,"parameterSlots":5,"returnSlots":1},"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"@getNonce_11037":{"entryPoint":null,"id":11037,"parameterSlots":1,"returnSlots":1},"@hashMetaTransaction_11023":{"entryPoint":1052,"id":11023,"parameterSlots":1,"returnSlots":1},"@toTypedMessageHash_10883":{"entryPoint":1177,"id":10883,"parameterSlots":1,"returnSlots":1},"@verify_11077":{"entryPoint":708,"id":11077,"parameterSlots":5,"returnSlots":1},"abi_decode_address":{"entryPoint":1225,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1628,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8":{"entryPoint":1292,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":1275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":1558,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1763,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":1708,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1655,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1791,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1522,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1253,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7128:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:29","statements":[{"nodeType":"YulAssignment","src":"73:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:29"},"nodeType":"YulFunctionCall","src":"82:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:29"}]},{"body":{"nodeType":"YulBlock","src":"165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:29"},"nodeType":"YulFunctionCall","src":"167:12:29"},"nodeType":"YulExpressionStatement","src":"167:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:29"},"nodeType":"YulFunctionCall","src":"142:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:29"},"nodeType":"YulFunctionCall","src":"131:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:29"},"nodeType":"YulFunctionCall","src":"121:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:29"},"nodeType":"YulFunctionCall","src":"114:50:29"},"nodeType":"YulIf","src":"111:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:29","type":""}],"src":"14:173:29"},{"body":{"nodeType":"YulBlock","src":"224:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"241:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"248:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"253:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"244:3:29"},"nodeType":"YulFunctionCall","src":"244:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"234:6:29"},"nodeType":"YulFunctionCall","src":"234:31:29"},"nodeType":"YulExpressionStatement","src":"234:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"281:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"284:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"274:6:29"},"nodeType":"YulFunctionCall","src":"274:15:29"},"nodeType":"YulExpressionStatement","src":"274:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"305:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"308:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"298:6:29"},"nodeType":"YulFunctionCall","src":"298:15:29"},"nodeType":"YulExpressionStatement","src":"298:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"192:127:29"},{"body":{"nodeType":"YulBlock","src":"371:109:29","statements":[{"nodeType":"YulAssignment","src":"381:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"403:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"390:12:29"},"nodeType":"YulFunctionCall","src":"390:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"381:5:29"}]},{"body":{"nodeType":"YulBlock","src":"458:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"467:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"470:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"460:6:29"},"nodeType":"YulFunctionCall","src":"460:12:29"},"nodeType":"YulExpressionStatement","src":"460:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"443:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"450:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"439:3:29"},"nodeType":"YulFunctionCall","src":"439:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"429:2:29"},"nodeType":"YulFunctionCall","src":"429:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"422:6:29"},"nodeType":"YulFunctionCall","src":"422:35:29"},"nodeType":"YulIf","src":"419:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"350:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"361:5:29","type":""}],"src":"324:156:29"},{"body":{"nodeType":"YulBlock","src":"630:1058:29","statements":[{"body":{"nodeType":"YulBlock","src":"677:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"686:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"689:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"679:6:29"},"nodeType":"YulFunctionCall","src":"679:12:29"},"nodeType":"YulExpressionStatement","src":"679:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"651:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"660:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"647:3:29"},"nodeType":"YulFunctionCall","src":"647:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"672:3:29","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"643:3:29"},"nodeType":"YulFunctionCall","src":"643:33:29"},"nodeType":"YulIf","src":"640:53:29"},{"nodeType":"YulAssignment","src":"702:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"731:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"712:18:29"},"nodeType":"YulFunctionCall","src":"712:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"702:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"750:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"781:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"792:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:29"},"nodeType":"YulFunctionCall","src":"777:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"764:12:29"},"nodeType":"YulFunctionCall","src":"764:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"754:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"805:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"815:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"809:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"860:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"869:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"872:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"862:6:29"},"nodeType":"YulFunctionCall","src":"862:12:29"},"nodeType":"YulExpressionStatement","src":"862:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"848:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"856:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"845:2:29"},"nodeType":"YulFunctionCall","src":"845:14:29"},"nodeType":"YulIf","src":"842:34:29"},{"nodeType":"YulVariableDeclaration","src":"885:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"899:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"910:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"895:3:29"},"nodeType":"YulFunctionCall","src":"895:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"889:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"965:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"974:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"977:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"967:6:29"},"nodeType":"YulFunctionCall","src":"967:12:29"},"nodeType":"YulExpressionStatement","src":"967:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"944:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"948:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"940:3:29"},"nodeType":"YulFunctionCall","src":"940:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"955:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"936:3:29"},"nodeType":"YulFunctionCall","src":"936:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"929:6:29"},"nodeType":"YulFunctionCall","src":"929:35:29"},"nodeType":"YulIf","src":"926:55:29"},{"nodeType":"YulVariableDeclaration","src":"990:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1013:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1000:12:29"},"nodeType":"YulFunctionCall","src":"1000:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"994:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1039:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1041:16:29"},"nodeType":"YulFunctionCall","src":"1041:18:29"},"nodeType":"YulExpressionStatement","src":"1041:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1031:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1035:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1028:2:29"},"nodeType":"YulFunctionCall","src":"1028:10:29"},"nodeType":"YulIf","src":"1025:36:29"},{"nodeType":"YulVariableDeclaration","src":"1070:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1084:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1080:3:29"},"nodeType":"YulFunctionCall","src":"1080:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1074:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1096:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1116:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1110:5:29"},"nodeType":"YulFunctionCall","src":"1110:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1100:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1128:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1150:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1174:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1178:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:29"},"nodeType":"YulFunctionCall","src":"1170:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1185:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1166:3:29"},"nodeType":"YulFunctionCall","src":"1166:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"1190:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1162:3:29"},"nodeType":"YulFunctionCall","src":"1162:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1195:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1158:3:29"},"nodeType":"YulFunctionCall","src":"1158:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1146:3:29"},"nodeType":"YulFunctionCall","src":"1146:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1132:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1258:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1260:16:29"},"nodeType":"YulFunctionCall","src":"1260:18:29"},"nodeType":"YulExpressionStatement","src":"1260:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1217:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1229:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1214:2:29"},"nodeType":"YulFunctionCall","src":"1214:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1237:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1249:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1234:2:29"},"nodeType":"YulFunctionCall","src":"1234:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1211:2:29"},"nodeType":"YulFunctionCall","src":"1211:46:29"},"nodeType":"YulIf","src":"1208:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1296:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1300:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:29"},"nodeType":"YulFunctionCall","src":"1289:22:29"},"nodeType":"YulExpressionStatement","src":"1289:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1327:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1335:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1320:6:29"},"nodeType":"YulFunctionCall","src":"1320:18:29"},"nodeType":"YulExpressionStatement","src":"1320:18:29"},{"body":{"nodeType":"YulBlock","src":"1384:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1393:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1396:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1386:6:29"},"nodeType":"YulFunctionCall","src":"1386:12:29"},"nodeType":"YulExpressionStatement","src":"1386:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1361:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1365:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1357:3:29"},"nodeType":"YulFunctionCall","src":"1357:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1370:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1353:3:29"},"nodeType":"YulFunctionCall","src":"1353:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1375:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1350:2:29"},"nodeType":"YulFunctionCall","src":"1350:33:29"},"nodeType":"YulIf","src":"1347:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1426:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1434:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1422:3:29"},"nodeType":"YulFunctionCall","src":"1422:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1443:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1447:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1439:3:29"},"nodeType":"YulFunctionCall","src":"1439:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1452:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1409:12:29"},"nodeType":"YulFunctionCall","src":"1409:46:29"},"nodeType":"YulExpressionStatement","src":"1409:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1479:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1487:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:29"},"nodeType":"YulFunctionCall","src":"1475:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"1492:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1471:3:29"},"nodeType":"YulFunctionCall","src":"1471:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"1497:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1464:6:29"},"nodeType":"YulFunctionCall","src":"1464:35:29"},"nodeType":"YulExpressionStatement","src":"1464:35:29"},{"nodeType":"YulAssignment","src":"1508:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1518:6:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1508:6:29"}]},{"nodeType":"YulAssignment","src":"1533:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1571:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1556:3:29"},"nodeType":"YulFunctionCall","src":"1556:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1543:12:29"},"nodeType":"YulFunctionCall","src":"1543:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1533:6:29"}]},{"nodeType":"YulAssignment","src":"1584:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1622:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:29"},"nodeType":"YulFunctionCall","src":"1607:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1594:12:29"},"nodeType":"YulFunctionCall","src":"1594:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1584:6:29"}]},{"nodeType":"YulAssignment","src":"1635:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1677:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:29"},"nodeType":"YulFunctionCall","src":"1662:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"1645:16:29"},"nodeType":"YulFunctionCall","src":"1645:37:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1635:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"564:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"575:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"587:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"595:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"603:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"611:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"619:6:29","type":""}],"src":"485:1203:29"},{"body":{"nodeType":"YulBlock","src":"1759:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1769:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1778:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1773:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1838:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1863:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"1868:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1859:3:29"},"nodeType":"YulFunctionCall","src":"1859:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1882:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"1887:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1878:3:29"},"nodeType":"YulFunctionCall","src":"1878:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1872:5:29"},"nodeType":"YulFunctionCall","src":"1872:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1852:6:29"},"nodeType":"YulFunctionCall","src":"1852:39:29"},"nodeType":"YulExpressionStatement","src":"1852:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1799:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"1802:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1796:2:29"},"nodeType":"YulFunctionCall","src":"1796:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1810:19:29","statements":[{"nodeType":"YulAssignment","src":"1812:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1821:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"1824:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1817:3:29"},"nodeType":"YulFunctionCall","src":"1817:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1812:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1792:3:29","statements":[]},"src":"1788:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1921:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"1926:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1917:3:29"},"nodeType":"YulFunctionCall","src":"1917:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"1935:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1910:6:29"},"nodeType":"YulFunctionCall","src":"1910:27:29"},"nodeType":"YulExpressionStatement","src":"1910:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1737:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1742:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"1747:6:29","type":""}],"src":"1693:250:29"},{"body":{"nodeType":"YulBlock","src":"1997:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2007:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2027:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2021:5:29"},"nodeType":"YulFunctionCall","src":"2021:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2011:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2049:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"2054:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2042:6:29"},"nodeType":"YulFunctionCall","src":"2042:19:29"},"nodeType":"YulExpressionStatement","src":"2042:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2109:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2116:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2105:3:29"},"nodeType":"YulFunctionCall","src":"2105:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2127:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2132:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2123:3:29"},"nodeType":"YulFunctionCall","src":"2123:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"2139:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"2070:34:29"},"nodeType":"YulFunctionCall","src":"2070:76:29"},"nodeType":"YulExpressionStatement","src":"2070:76:29"},{"nodeType":"YulAssignment","src":"2155:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2170:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2183:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2191:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2179:3:29"},"nodeType":"YulFunctionCall","src":"2179:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2200:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2196:3:29"},"nodeType":"YulFunctionCall","src":"2196:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2175:3:29"},"nodeType":"YulFunctionCall","src":"2175:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2166:3:29"},"nodeType":"YulFunctionCall","src":"2166:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"2207:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2162:3:29"},"nodeType":"YulFunctionCall","src":"2162:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2155:3:29"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1974:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1981:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1989:3:29","type":""}],"src":"1948:270:29"},{"body":{"nodeType":"YulBlock","src":"2342:98:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2359:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2370:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2352:6:29"},"nodeType":"YulFunctionCall","src":"2352:21:29"},"nodeType":"YulExpressionStatement","src":"2352:21:29"},{"nodeType":"YulAssignment","src":"2382:52:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2407:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2419:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2430:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2415:3:29"},"nodeType":"YulFunctionCall","src":"2415:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2390:16:29"},"nodeType":"YulFunctionCall","src":"2390:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2382:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2311:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2322:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2333:4:29","type":""}],"src":"2223:217:29"},{"body":{"nodeType":"YulBlock","src":"2546:76:29","statements":[{"nodeType":"YulAssignment","src":"2556:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2568:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2579:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2564:3:29"},"nodeType":"YulFunctionCall","src":"2564:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2556:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2598:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"2609:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2591:6:29"},"nodeType":"YulFunctionCall","src":"2591:25:29"},"nodeType":"YulExpressionStatement","src":"2591:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2515:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2526:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2537:4:29","type":""}],"src":"2445:177:29"},{"body":{"nodeType":"YulBlock","src":"2697:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2743:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2752:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2755:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2745:6:29"},"nodeType":"YulFunctionCall","src":"2745:12:29"},"nodeType":"YulExpressionStatement","src":"2745:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2718:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2727:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2714:3:29"},"nodeType":"YulFunctionCall","src":"2714:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2739:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2710:3:29"},"nodeType":"YulFunctionCall","src":"2710:32:29"},"nodeType":"YulIf","src":"2707:52:29"},{"nodeType":"YulAssignment","src":"2768:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2797:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2778:18:29"},"nodeType":"YulFunctionCall","src":"2778:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2768:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2663:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2674:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2686:6:29","type":""}],"src":"2627:186:29"},{"body":{"nodeType":"YulBlock","src":"2919:76:29","statements":[{"nodeType":"YulAssignment","src":"2929:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2952:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2937:3:29"},"nodeType":"YulFunctionCall","src":"2937:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2929:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2971:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"2982:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2964:6:29"},"nodeType":"YulFunctionCall","src":"2964:25:29"},"nodeType":"YulExpressionStatement","src":"2964:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2888:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2899:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2910:4:29","type":""}],"src":"2818:177:29"},{"body":{"nodeType":"YulBlock","src":"3174:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3191:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3202:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3184:6:29"},"nodeType":"YulFunctionCall","src":"3184:21:29"},"nodeType":"YulExpressionStatement","src":"3184:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3225:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3221:3:29"},"nodeType":"YulFunctionCall","src":"3221:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3241:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3214:6:29"},"nodeType":"YulFunctionCall","src":"3214:30:29"},"nodeType":"YulExpressionStatement","src":"3214:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3264:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3275:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3260:3:29"},"nodeType":"YulFunctionCall","src":"3260:18:29"},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d617463","kind":"string","nodeType":"YulLiteral","src":"3280:34:29","type":"","value":"Signer and signature do not matc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3253:6:29"},"nodeType":"YulFunctionCall","src":"3253:62:29"},"nodeType":"YulExpressionStatement","src":"3253:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3335:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3346:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3331:3:29"},"nodeType":"YulFunctionCall","src":"3331:18:29"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"3351:3:29","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3324:6:29"},"nodeType":"YulFunctionCall","src":"3324:31:29"},"nodeType":"YulExpressionStatement","src":"3324:31:29"},{"nodeType":"YulAssignment","src":"3364:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3376:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3387:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3372:3:29"},"nodeType":"YulFunctionCall","src":"3372:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3364:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3151:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3165:4:29","type":""}],"src":"3000:397:29"},{"body":{"nodeType":"YulBlock","src":"3593:240:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3603:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3621:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3626:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3617:3:29"},"nodeType":"YulFunctionCall","src":"3617:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"3630:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3613:3:29"},"nodeType":"YulFunctionCall","src":"3613:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3607:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3648:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3663:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3671:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3659:3:29"},"nodeType":"YulFunctionCall","src":"3659:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3641:6:29"},"nodeType":"YulFunctionCall","src":"3641:34:29"},"nodeType":"YulExpressionStatement","src":"3641:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3695:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3706:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3691:3:29"},"nodeType":"YulFunctionCall","src":"3691:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3715:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3723:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3711:3:29"},"nodeType":"YulFunctionCall","src":"3711:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3684:6:29"},"nodeType":"YulFunctionCall","src":"3684:43:29"},"nodeType":"YulExpressionStatement","src":"3684:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3747:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3758:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3743:3:29"},"nodeType":"YulFunctionCall","src":"3743:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3763:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3736:6:29"},"nodeType":"YulFunctionCall","src":"3736:30:29"},"nodeType":"YulExpressionStatement","src":"3736:30:29"},{"nodeType":"YulAssignment","src":"3775:52:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3800:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3812:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3823:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3808:3:29"},"nodeType":"YulFunctionCall","src":"3808:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"3783:16:29"},"nodeType":"YulFunctionCall","src":"3783:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3775:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3546:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3557:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3565:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3573:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3584:4:29","type":""}],"src":"3402:431:29"},{"body":{"nodeType":"YulBlock","src":"4003:263:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4013:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4033:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4027:5:29"},"nodeType":"YulFunctionCall","src":"4027:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4017:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4088:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4096:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4084:3:29"},"nodeType":"YulFunctionCall","src":"4084:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"4103:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4108:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4049:34:29"},"nodeType":"YulFunctionCall","src":"4049:66:29"},"nodeType":"YulExpressionStatement","src":"4049:66:29"},{"nodeType":"YulVariableDeclaration","src":"4124:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4141:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4146:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4137:3:29"},"nodeType":"YulFunctionCall","src":"4137:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4128:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4169:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4184:2:29","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"4188:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4180:3:29"},"nodeType":"YulFunctionCall","src":"4180:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4201:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4197:3:29"},"nodeType":"YulFunctionCall","src":"4197:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4176:3:29"},"nodeType":"YulFunctionCall","src":"4176:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4162:6:29"},"nodeType":"YulFunctionCall","src":"4162:68:29"},"nodeType":"YulExpressionStatement","src":"4162:68:29"},{"nodeType":"YulAssignment","src":"4239:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4250:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"4257:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4246:3:29"},"nodeType":"YulFunctionCall","src":"4246:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4239:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3971:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3976:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3984:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3995:3:29","type":""}],"src":"3838:428:29"},{"body":{"nodeType":"YulBlock","src":"4408:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4418:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4438:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4432:5:29"},"nodeType":"YulFunctionCall","src":"4432:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4422:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4493:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4501:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4489:3:29"},"nodeType":"YulFunctionCall","src":"4489:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"4508:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4513:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4454:34:29"},"nodeType":"YulFunctionCall","src":"4454:66:29"},"nodeType":"YulExpressionStatement","src":"4454:66:29"},{"nodeType":"YulAssignment","src":"4529:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4540:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4545:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4536:3:29"},"nodeType":"YulFunctionCall","src":"4536:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4529:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4384:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4389:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4400:3:29","type":""}],"src":"4271:287:29"},{"body":{"nodeType":"YulBlock","src":"4737:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4754:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4765:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4747:6:29"},"nodeType":"YulFunctionCall","src":"4747:21:29"},"nodeType":"YulExpressionStatement","src":"4747:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4788:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4799:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4784:3:29"},"nodeType":"YulFunctionCall","src":"4784:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"4804:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4777:6:29"},"nodeType":"YulFunctionCall","src":"4777:30:29"},"nodeType":"YulExpressionStatement","src":"4777:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4827:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4838:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4823:3:29"},"nodeType":"YulFunctionCall","src":"4823:18:29"},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","kind":"string","nodeType":"YulLiteral","src":"4843:30:29","type":"","value":"Function call not successful"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4816:6:29"},"nodeType":"YulFunctionCall","src":"4816:58:29"},"nodeType":"YulExpressionStatement","src":"4816:58:29"},{"nodeType":"YulAssignment","src":"4883:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4895:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4906:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4891:3:29"},"nodeType":"YulFunctionCall","src":"4891:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4883:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4714:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4728:4:29","type":""}],"src":"4563:352:29"},{"body":{"nodeType":"YulBlock","src":"5094:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5111:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5122:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5104:6:29"},"nodeType":"YulFunctionCall","src":"5104:21:29"},"nodeType":"YulExpressionStatement","src":"5104:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5145:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5156:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5141:3:29"},"nodeType":"YulFunctionCall","src":"5141:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"5161:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5134:6:29"},"nodeType":"YulFunctionCall","src":"5134:30:29"},"nodeType":"YulExpressionStatement","src":"5134:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5184:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5195:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5180:3:29"},"nodeType":"YulFunctionCall","src":"5180:18:29"},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f53","kind":"string","nodeType":"YulLiteral","src":"5200:34:29","type":"","value":"NativeMetaTransaction: INVALID_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5173:6:29"},"nodeType":"YulFunctionCall","src":"5173:62:29"},"nodeType":"YulExpressionStatement","src":"5173:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5255:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5266:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5251:3:29"},"nodeType":"YulFunctionCall","src":"5251:18:29"},{"hexValue":"49474e4552","kind":"string","nodeType":"YulLiteral","src":"5271:7:29","type":"","value":"IGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5244:6:29"},"nodeType":"YulFunctionCall","src":"5244:35:29"},"nodeType":"YulExpressionStatement","src":"5244:35:29"},{"nodeType":"YulAssignment","src":"5288:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5300:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5311:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5296:3:29"},"nodeType":"YulFunctionCall","src":"5296:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5288:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5071:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5085:4:29","type":""}],"src":"4920:401:29"},{"body":{"nodeType":"YulBlock","src":"5507:217:29","statements":[{"nodeType":"YulAssignment","src":"5517:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5529:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5540:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5525:3:29"},"nodeType":"YulFunctionCall","src":"5525:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5517:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5560:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"5571:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5553:6:29"},"nodeType":"YulFunctionCall","src":"5553:25:29"},"nodeType":"YulExpressionStatement","src":"5553:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5598:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5609:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5594:3:29"},"nodeType":"YulFunctionCall","src":"5594:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5618:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5626:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5614:3:29"},"nodeType":"YulFunctionCall","src":"5614:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5587:6:29"},"nodeType":"YulFunctionCall","src":"5587:45:29"},"nodeType":"YulExpressionStatement","src":"5587:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5652:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5663:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5648:3:29"},"nodeType":"YulFunctionCall","src":"5648:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"5668:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5641:6:29"},"nodeType":"YulFunctionCall","src":"5641:34:29"},"nodeType":"YulExpressionStatement","src":"5641:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5695:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5706:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5691:3:29"},"nodeType":"YulFunctionCall","src":"5691:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"5711:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5684:6:29"},"nodeType":"YulFunctionCall","src":"5684:34:29"},"nodeType":"YulExpressionStatement","src":"5684:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5452:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5463:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5471:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5479:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5487:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5498:4:29","type":""}],"src":"5326:398:29"},{"body":{"nodeType":"YulBlock","src":"5777:174:29","statements":[{"nodeType":"YulAssignment","src":"5787:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5798:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5801:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5794:3:29"},"nodeType":"YulFunctionCall","src":"5794:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5787:3:29"}]},{"body":{"nodeType":"YulBlock","src":"5834:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5855:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5862:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5867:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5858:3:29"},"nodeType":"YulFunctionCall","src":"5858:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5848:6:29"},"nodeType":"YulFunctionCall","src":"5848:31:29"},"nodeType":"YulExpressionStatement","src":"5848:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5899:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5902:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5892:6:29"},"nodeType":"YulFunctionCall","src":"5892:15:29"},"nodeType":"YulExpressionStatement","src":"5892:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5927:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5930:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5920:6:29"},"nodeType":"YulFunctionCall","src":"5920:15:29"},"nodeType":"YulExpressionStatement","src":"5920:15:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5818:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"5821:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5815:2:29"},"nodeType":"YulFunctionCall","src":"5815:10:29"},"nodeType":"YulIf","src":"5812:133:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5760:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5763:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5769:3:29","type":""}],"src":"5729:222:29"},{"body":{"nodeType":"YulBlock","src":"6130:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6147:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6158:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6140:6:29"},"nodeType":"YulFunctionCall","src":"6140:21:29"},"nodeType":"YulExpressionStatement","src":"6140:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6192:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6177:3:29"},"nodeType":"YulFunctionCall","src":"6177:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"6197:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6170:6:29"},"nodeType":"YulFunctionCall","src":"6170:30:29"},"nodeType":"YulExpressionStatement","src":"6170:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6220:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6231:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6216:3:29"},"nodeType":"YulFunctionCall","src":"6216:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"6236:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6209:6:29"},"nodeType":"YulFunctionCall","src":"6209:57:29"},"nodeType":"YulExpressionStatement","src":"6209:57:29"},{"nodeType":"YulAssignment","src":"6275:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6287:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6283:3:29"},"nodeType":"YulFunctionCall","src":"6283:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6275:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6107:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6121:4:29","type":""}],"src":"5956:351:29"},{"body":{"nodeType":"YulBlock","src":"6497:232:29","statements":[{"nodeType":"YulAssignment","src":"6507:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6519:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6530:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6515:3:29"},"nodeType":"YulFunctionCall","src":"6515:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6507:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6550:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"6561:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6543:6:29"},"nodeType":"YulFunctionCall","src":"6543:25:29"},"nodeType":"YulExpressionStatement","src":"6543:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6588:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6599:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6584:3:29"},"nodeType":"YulFunctionCall","src":"6584:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"6604:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6577:6:29"},"nodeType":"YulFunctionCall","src":"6577:34:29"},"nodeType":"YulExpressionStatement","src":"6577:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6631:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6642:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6627:3:29"},"nodeType":"YulFunctionCall","src":"6627:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6651:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6667:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6672:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6663:3:29"},"nodeType":"YulFunctionCall","src":"6663:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6676:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6659:3:29"},"nodeType":"YulFunctionCall","src":"6659:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6647:3:29"},"nodeType":"YulFunctionCall","src":"6647:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6620:6:29"},"nodeType":"YulFunctionCall","src":"6620:60:29"},"nodeType":"YulExpressionStatement","src":"6620:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6700:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6711:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6696:3:29"},"nodeType":"YulFunctionCall","src":"6696:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"6716:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6689:6:29"},"nodeType":"YulFunctionCall","src":"6689:34:29"},"nodeType":"YulExpressionStatement","src":"6689:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6442:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6453:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6461:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6469:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6477:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6488:4:29","type":""}],"src":"6312:417:29"},{"body":{"nodeType":"YulBlock","src":"6982:144:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6999:3:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7008:3:29","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"7013:4:29","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7004:3:29"},"nodeType":"YulFunctionCall","src":"7004:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6992:6:29"},"nodeType":"YulFunctionCall","src":"6992:27:29"},"nodeType":"YulExpressionStatement","src":"6992:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7039:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"7044:1:29","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:29"},"nodeType":"YulFunctionCall","src":"7035:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"7048:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:29"},"nodeType":"YulFunctionCall","src":"7028:27:29"},"nodeType":"YulExpressionStatement","src":"7028:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7075:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"7080:2:29","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7071:3:29"},"nodeType":"YulFunctionCall","src":"7071:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"7085:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7064:6:29"},"nodeType":"YulFunctionCall","src":"7064:28:29"},"nodeType":"YulExpressionStatement","src":"7064:28:29"},{"nodeType":"YulAssignment","src":"7101:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7112:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"7117:2:29","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7108:3:29"},"nodeType":"YulFunctionCall","src":"7108:12:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7101:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6950:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6955:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6963:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6974:3:29","type":""}],"src":"6734:392:29"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Signer and signature do not matc\")\n mstore(add(headStart, 96), \"h\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(end_1, 20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Function call not successful\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"NativeMetaTransaction: INVALID_S\")\n mstore(add(headStart, 96), \"IGNER\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC53C51C EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57 PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x64 SWAP2 SWAP1 PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E PUSH2 0xA7 CALLDATASIZE PUSH1 0x4 PUSH2 0x65C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x113 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x16E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x192 SWAP1 PUSH1 0x1 PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x1E2 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x20A SWAP3 SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x224 SWAP2 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x261 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x266 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x32A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x33D PUSH2 0x338 DUP8 PUSH2 0x41C JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C1 DUP4 DUP6 PUSH2 0x6FF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x413 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x721 PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x47C SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A4 PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x47C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52D DUP7 PUSH2 0x4C9 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x570 JUMPI PUSH2 0x570 PUSH2 0x4E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x598 JUMPI PUSH2 0x598 PUSH2 0x4E5 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x5E6 PUSH1 0x80 DUP8 ADD PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x60D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5F5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x62E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x655 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x655 DUP3 PUSH2 0x4C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x6A3 SWAP1 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x6BE DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x6F5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x5F2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x416 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0x4D PUSH6 0x74615472616E PUSH20 0x616374696F6E2875696E74323536206E6F6E6365 0x2C PUSH2 0x6464 PUSH19 0x6573732066726F6D2C62797465732066756E63 PUSH21 0x696F6E5369676E617475726529A264697066735822 SLT KECCAK256 0xC0 0xEF PUSH30 0x9248999F2285EFF1B86E454ABED25B72D6CC6591610A4BBBE450AA744364 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"44308:2905:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45105:1117;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43354:99;;;;;;;;;;-1:-1:-1;43431:15:27;;43354:99;;;2591:25:29;;;2579:2;2564:18;43354:99:27;2445:177:29;46630:105:27;;;;;;;;;;-1:-1:-1;46630:105:27;;;;;:::i;:::-;-1:-1:-1;;;;;46716:12:27;46683:13;46716:12;;;:6;:12;;;;;;;46630:105;43459:155;;;;;;;;;;-1:-1:-1;43570:9:27;43459:155;;45105:1117;45356:148;;;45300:12;45356:148;;;;;-1:-1:-1;;;;;45393:19:27;;45324:29;45393:19;;;:6;:19;;;;;;;;;45356:148;;;;;;;;;;;45536:45;45400:11;45356:148;45564:4;45570;45576;45536:6;:45::i;:::-;45515:125;;;;-1:-1:-1;;;45515:125:27;;3202:2:29;45515:125:27;;;3184:21:29;3241:2;3221:18;;;3214:30;3280:34;3260:18;;;3253:62;-1:-1:-1;;;3331:18:29;;;3324:31;3372:19;;45515:125:27;;;;;;;;;-1:-1:-1;;;;;45726:19:27;;;;;;:6;:19;;;;;;:26;;45750:1;45726:23;:26::i;:::-;-1:-1:-1;;;;;45704:19:27;;;;;;:6;:19;;;;;;;:48;;;;45768:122;;;;;45711:11;;45838:10;;45863:17;;45768:122;:::i;:::-;;;;;;;;45998:12;46012:23;46047:4;-1:-1:-1;;;;;46039:18:27;46088:17;46107:11;46071:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;46071:48:27;;;;;;;;;;46039:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45997:132;;;;46147:7;46139:48;;;;-1:-1:-1;;;46139:48:27;;4765:2:29;46139:48:27;;;4747:21:29;4804:2;4784:18;;;4777:30;4843;4823:18;;;4816:58;4891:18;;46139:48:27;4563:352:29;46139:48:27;46205:10;45105:1117;-1:-1:-1;;;;;;;;45105:1117:27:o;46741:470::-;46913:4;-1:-1:-1;;;;;46937:20:27;;46929:70;;;;-1:-1:-1;;;46929:70:27;;5122:2:29;46929:70:27;;;5104:21:29;5161:2;5141:18;;;5134:30;5200:34;5180:18;;;5173:62;-1:-1:-1;;;5251:18:29;;;5244:35;5296:19;;46929:70:27;4920:401:29;46929:70:27;47050:154;47077:47;47096:27;47116:6;47096:19;:27::i;:::-;47077:18;:47::i;:::-;47050:154;;;;;;;;;;;;5553:25:29;;;;5626:4;5614:17;;5594:18;;;5587:45;5648:18;;;5641:34;;;5691:18;;;5684:34;;;5525:19;;47050:154:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47028:176:27;:6;-1:-1:-1;;;;;47028:176:27;;47009:195;;46741:470;;;;;;;:::o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;6158:2:29;4705:46:27;;;6140:21:29;6197:2;6177:18;;;6170:30;6236:29;6216:18;;;6209:57;6283:18;;4705:46:27;5956:351:29;4705:46:27;4769:1;-1:-1:-1;4601:176:27;;;;;:::o;46228:396::-;46335:7;44463:98;;;;;;;;;;;;;;;;;44444:123;;;;;;;46483:12;;46517:11;;;;46560:24;;;;;46550:35;;;;;;46404:199;;;;;6543:25:29;;;6599:2;6584:18;;6577:34;;;;-1:-1:-1;;;;;6647:32:29;6642:2;6627:18;;6620:60;6711:2;6696:18;;6689:34;6530:3;6515:19;;6312:417;46404:199:27;;;;;;;;;;;;;46377:240;;;;;;46358:259;;46228:396;;;:::o;43974:249::-;44070:7;44168:20;43431:15;;;43354:99;44168:20;44139:63;;-1:-1:-1;;;44139:63:27;;;6992:27:29;7035:11;;;7028:27;;;;7071:12;;;7064:28;;;7108:12;;44139:63:27;6734:392:29;14:173;82:20;;-1:-1:-1;;;;;131:31:29;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:127::-;253:10;248:3;244:20;241:1;234:31;284:4;281:1;274:15;308:4;305:1;298:15;324:156;390:20;;450:4;439:16;;429:27;;419:55;;470:1;467;460:12;485:1203;587:6;595;603;611;619;672:3;660:9;651:7;647:23;643:33;640:53;;;689:1;686;679:12;640:53;712:29;731:9;712:29;:::i;:::-;702:39;;792:2;781:9;777:18;764:32;815:18;856:2;848:6;845:14;842:34;;;872:1;869;862:12;842:34;910:6;899:9;895:22;885:32;;955:7;948:4;944:2;940:13;936:27;926:55;;977:1;974;967:12;926:55;1013:2;1000:16;1035:2;1031;1028:10;1025:36;;;1041:18;;:::i;:::-;1116:2;1110:9;1084:2;1170:13;;-1:-1:-1;;1166:22:29;;;1190:2;1162:31;1158:40;1146:53;;;1214:18;;;1234:22;;;1211:46;1208:72;;;1260:18;;:::i;:::-;1300:10;1296:2;1289:22;1335:2;1327:6;1320:18;1375:7;1370:2;1365;1361;1357:11;1353:20;1350:33;1347:53;;;1396:1;1393;1386:12;1347:53;1452:2;1447;1443;1439:11;1434:2;1426:6;1422:15;1409:46;1497:1;1492:2;1487;1479:6;1475:15;1471:24;1464:35;1518:6;1508:16;;;;;;;1571:2;1560:9;1556:18;1543:32;1533:42;;1622:2;1611:9;1607:18;1594:32;1584:42;;1645:37;1677:3;1666:9;1662:19;1645:37;:::i;:::-;1635:47;;485:1203;;;;;;;;:::o;1693:250::-;1778:1;1788:113;1802:6;1799:1;1796:13;1788:113;;;1878:11;;;1872:18;1859:11;;;1852:39;1824:2;1817:10;1788:113;;;-1:-1:-1;;1935:1:29;1917:16;;1910:27;1693:250::o;1948:270::-;1989:3;2027:5;2021:12;2054:6;2049:3;2042:19;2070:76;2139:6;2132:4;2127:3;2123:14;2116:4;2109:5;2105:16;2070:76;:::i;:::-;2200:2;2179:15;-1:-1:-1;;2175:29:29;2166:39;;;;2207:4;2162:50;;1948:270;-1:-1:-1;;1948:270:29:o;2223:217::-;2370:2;2359:9;2352:21;2333:4;2390:44;2430:2;2419:9;2415:18;2407:6;2390:44;:::i;:::-;2382:52;2223:217;-1:-1:-1;;;2223:217:29:o;2627:186::-;2686:6;2739:2;2727:9;2718:7;2714:23;2710:32;2707:52;;;2755:1;2752;2745:12;2707:52;2778:29;2797:9;2778:29;:::i;3402:431::-;-1:-1:-1;;;;;3659:15:29;;;3641:34;;3711:15;;3706:2;3691:18;;3684:43;3763:2;3758;3743:18;;3736:30;;;3584:4;;3783:44;;3808:18;;3800:6;3783:44;:::i;:::-;3775:52;3402:431;-1:-1:-1;;;;;3402:431:29:o;3838:428::-;3995:3;4033:6;4027:13;4049:66;4108:6;4103:3;4096:4;4088:6;4084:17;4049:66;:::i;:::-;4184:2;4180:15;;;;-1:-1:-1;;4176:53:29;4137:16;;;;4162:68;;;4257:2;4246:14;;3838:428;-1:-1:-1;;3838:428:29:o;4271:287::-;4400:3;4438:6;4432:13;4454:66;4513:6;4508:3;4501:4;4493:6;4489:17;4454:66;:::i;:::-;4536:16;;;;;4271:287;-1:-1:-1;;4271:287:29:o;5729:222::-;5794:9;;;5815:10;;;5812:133;;;5867:10;5862:3;5858:20;5855:1;5848:31;5902:4;5899:1;5892:15;5930:4;5927:1;5920:15"},"methodIdentifiers":{"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)":"0c53c51c","getChainId()":"3408e470","getDomainSeperator()":"20379ee5","getNonce(address)":"2d0335ab"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"relayerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"}],\"name\":\"MetaTransactionExecuted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"}],\"name\":\"executeMetaTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"NativeMetaTransaction\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"NofTestDAIV3":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSITOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"childChainManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"allowed","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11161":{"entryPoint":null,"id":11161,"parameterSlots":0,"returnSlots":0},"@_9517":{"entryPoint":null,"id":9517,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":205,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":288,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":145,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":123,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"201:325:29","statements":[{"nodeType":"YulAssignment","src":"211:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:29"},"nodeType":"YulFunctionCall","src":"221:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:29"},"nodeType":"YulFunctionCall","src":"268:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:29","statements":[{"nodeType":"YulAssignment","src":"321:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:29"},"nodeType":"YulFunctionCall","src":"331:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:29"},"nodeType":"YulFunctionCall","src":"292:26:29"},"nodeType":"YulIf","src":"289:61:29"},{"body":{"nodeType":"YulBlock","src":"409:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:29"},"nodeType":"YulFunctionCall","src":"467:15:29"},"nodeType":"YulExpressionStatement","src":"467:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:29"},"nodeType":"YulFunctionCall","src":"495:15:29"},"nodeType":"YulExpressionStatement","src":"495:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:29"},"nodeType":"YulFunctionCall","src":"385:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:29"},"nodeType":"YulFunctionCall","src":"362:38:29"},"nodeType":"YulIf","src":"359:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:29","type":""}],"src":"146:380:29"},{"body":{"nodeType":"YulBlock","src":"587:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:29"},"nodeType":"YulFunctionCall","src":"597:14:29"},"nodeType":"YulExpressionStatement","src":"597:14:29"},{"nodeType":"YulAssignment","src":"620:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:29"},"nodeType":"YulFunctionCall","src":"628:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:29","type":""}],"src":"531:121:29"},{"body":{"nodeType":"YulBlock","src":"738:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:17:29"},"nodeType":"YulExpressionStatement","src":"809:17:29"},{"nodeType":"YulVariableDeclaration","src":"839:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:29"},"nodeType":"YulFunctionCall","src":"851:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:29"},"nodeType":"YulFunctionCall","src":"919:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:29"},"nodeType":"YulFunctionCall","src":"912:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:29","statements":[{"nodeType":"YulAssignment","src":"979:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:29"},"nodeType":"YulFunctionCall","src":"956:20:29"},"nodeType":"YulIf","src":"953:47:29"},{"nodeType":"YulVariableDeclaration","src":"1013:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:29"},"nodeType":"YulFunctionCall","src":"1040:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:29"},"nodeType":"YulFunctionCall","src":"1033:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:29"},"nodeType":"YulFunctionCall","src":"1167:17:29"},"nodeType":"YulExpressionStatement","src":"1167:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:29"},"nodeType":"YulFunctionCall","src":"1112:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:29","statements":[{"nodeType":"YulAssignment","src":"1128:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:29"},"nodeType":"YulFunctionCall","src":"1137:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:29","statements":[]},"src":"1104:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:29"},"nodeType":"YulFunctionCall","src":"751:11:29"},"nodeType":"YulIf","src":"748:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:29","type":""}],"src":"657:545:29"},{"body":{"nodeType":"YulBlock","src":"1292:81:29","statements":[{"nodeType":"YulAssignment","src":"1302:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:29"},"nodeType":"YulFunctionCall","src":"1331:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:29"},"nodeType":"YulFunctionCall","src":"1344:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:29"},"nodeType":"YulFunctionCall","src":"1327:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:29"},"nodeType":"YulFunctionCall","src":"1323:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:29"},"nodeType":"YulFunctionCall","src":"1313:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:29"},"nodeType":"YulFunctionCall","src":"1355:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:29"},"nodeType":"YulFunctionCall","src":"1310:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:29","type":""}],"src":"1207:166:29"},{"body":{"nodeType":"YulBlock","src":"1474:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:29"},"nodeType":"YulFunctionCall","src":"1498:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:29"},"nodeType":"YulFunctionCall","src":"1553:18:29"},"nodeType":"YulExpressionStatement","src":"1553:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:29"},"nodeType":"YulFunctionCall","src":"1535:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:29"},"nodeType":"YulFunctionCall","src":"1531:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulIf","src":"1517:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:29"},"nodeType":"YulFunctionCall","src":"1658:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:29"},"nodeType":"YulFunctionCall","src":"1632:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:29"},"nodeType":"YulFunctionCall","src":"1582:97:29"},"nodeType":"YulExpressionStatement","src":"1582:97:29"},{"nodeType":"YulVariableDeclaration","src":"1688:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:29","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:29"},"nodeType":"YulFunctionCall","src":"1846:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:29"},"nodeType":"YulFunctionCall","src":"1893:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:29"},"nodeType":"YulFunctionCall","src":"2067:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:29"},"nodeType":"YulFunctionCall","src":"2061:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:29"},"nodeType":"YulFunctionCall","src":"2046:42:29"},"nodeType":"YulExpressionStatement","src":"2046:42:29"},{"nodeType":"YulAssignment","src":"2105:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:29"},"nodeType":"YulFunctionCall","src":"2115:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:29"}]},{"nodeType":"YulAssignment","src":"2146:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:29"},"nodeType":"YulFunctionCall","src":"2159:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:29"},"nodeType":"YulFunctionCall","src":"1972:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:29","statements":[{"nodeType":"YulAssignment","src":"1989:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:29"},"nodeType":"YulFunctionCall","src":"1994:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:29","statements":[]},"src":"1964:236:29"},{"body":{"nodeType":"YulBlock","src":"2248:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:29"},"nodeType":"YulFunctionCall","src":"2289:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:29"},"nodeType":"YulFunctionCall","src":"2283:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:29"},"nodeType":"YulFunctionCall","src":"2368:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:29"},"nodeType":"YulFunctionCall","src":"2364:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:29"},"nodeType":"YulFunctionCall","src":"2390:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:29"},"nodeType":"YulFunctionCall","src":"2360:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:29"},"nodeType":"YulFunctionCall","src":"2356:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:29"},"nodeType":"YulFunctionCall","src":"2341:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:29"},"nodeType":"YulFunctionCall","src":"2326:74:29"},"nodeType":"YulExpressionStatement","src":"2326:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:29"},"nodeType":"YulFunctionCall","src":"2216:19:29"},"nodeType":"YulIf","src":"2213:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:29"},"nodeType":"YulFunctionCall","src":"2444:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:29"},"nodeType":"YulFunctionCall","src":"2440:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:29"},"nodeType":"YulFunctionCall","src":"2427:36:29"},"nodeType":"YulExpressionStatement","src":"2427:36:29"}]},"nodeType":"YulCase","src":"1810:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:29","statements":[{"nodeType":"YulAssignment","src":"2571:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:29"},"nodeType":"YulFunctionCall","src":"2586:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:29"},"nodeType":"YulFunctionCall","src":"2580:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:29"},"nodeType":"YulIf","src":"2531:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:29"},"nodeType":"YulFunctionCall","src":"2646:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:81:29"},"nodeType":"YulExpressionStatement","src":"2633:81:29"}]},"nodeType":"YulCase","src":"2482:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:29"},"nodeType":"YulFunctionCall","src":"1787:14:29"},"nodeType":"YulSwitch","src":"1780:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:29","type":""}],"src":"1378:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127d580620001fc6000396000f3fe6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH3 0x444149 PUSH1 0xE8 SHL PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP3 DUP6 MSTORE DUP5 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH3 0x56 DUP4 DUP3 PUSH3 0x120 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x65 DUP3 DUP3 PUSH3 0x120 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE POP PUSH3 0x1EC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0xA6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x11B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xF6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x117 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x102 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x7B JUMP JUMPDEST PUSH3 0x154 DUP2 PUSH3 0x14D DUP5 SLOAD PUSH3 0x91 JUMP JUMPDEST DUP5 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x18C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x173 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x117 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1BD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x19C JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x1DC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x27D5 DUP1 PUSH3 0x1FC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x230 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5353A2D8 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xCF2C52CB GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x6E5 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x705 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x725 JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x76B JUMPI DUP1 PUSH4 0xF2D5D56B EQ PUSH2 0x78B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x665 JUMPI DUP1 PUSH4 0xB753A98C EQ PUSH2 0x685 JUMPI DUP1 PUSH4 0xBB35783B EQ PUSH2 0x6A5 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x55A JUMPI DUP1 PUSH4 0x8FCBAF0C EQ PUSH2 0x56F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x180 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x45A JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x203 JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x2BD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x7AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x83D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x24A PUSH2 0x2CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1F85 JUMP JUMPDEST PUSH2 0x85B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x399 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x3C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0xAD1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x421 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xAE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4AA CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xB75 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xBFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xC4D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x50A CALLDATASIZE PUSH1 0x4 PUSH2 0x2150 JUMP JUMPDEST PUSH2 0xD2C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x566 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x2192 JUMP JUMPDEST PUSH2 0xDF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5AF PUSH2 0x5AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2214 JUMP JUMPDEST PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x5E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x1087 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x109F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x660 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x10AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x680 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x112A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x6E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0x1146 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x700 CALLDATASIZE PUSH1 0x4 PUSH2 0x2236 JUMP JUMPDEST PUSH2 0x115D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x711 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x720 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x11CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x740 CALLDATASIZE PUSH1 0x4 PUSH2 0x2289 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x786 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B3 JUMP JUMPDEST PUSH2 0x124F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x7A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 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 0x7E6 SWAP1 PUSH2 0x2343 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x833 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x808 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x833 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x816 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x84A PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x899 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x1532 JUMP JUMPDEST PUSH2 0x8F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x918 SWAP1 PUSH1 0x1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x968 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x237D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP3 SWAP2 SWAP1 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x9AA SWAP2 PUSH2 0x23E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9E7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA3E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA57 DUP5 DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xAC7 DUP5 PUSH2 0xA63 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2753 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0xAA1 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAE2 PUSH2 0xADC PUSH2 0x13FE JUMP JUMPDEST DUP3 PUSH2 0x183E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xB03 SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x1942 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB7D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x19AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0xC0C PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xC1D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xCB0 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCD6 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xD5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH2 0xD9A DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1A20 SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE02 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP14 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP11 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP9 SWAP1 MSTORE DUP7 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE9C SWAP3 SWAP2 SWAP1 PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP5 MSTORE SWAP1 DUP4 ADD DUP1 DUP4 MSTORE DUP2 SWAP1 MSTORE PUSH1 0xFF DUP8 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D5045524D495400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST DUP6 ISZERO DUP1 PUSH2 0xF7B JUMPI POP DUP6 TIMESTAMP GT ISZERO JUMPDEST PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A205045524D49542D4558504952454400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xFEB DUP4 PUSH2 0x249D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE DUP8 EQ PUSH2 0x103D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D4E4F4E43450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH2 0x104B JUMPI PUSH1 0x0 PUSH2 0x104F JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST SWAP1 POP PUSH2 0x105C DUP11 DUP11 DUP4 PUSH2 0x140D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AB3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x10BB PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x10E5 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x1123 PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xDF2 CALLER DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH2 0x1140 DUP4 DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x855 SWAP1 PUSH2 0x1AD5 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0x118A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x11AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x11B9 DUP4 DUP6 ADD DUP6 PUSH2 0x20A7 JUMP JUMPDEST SWAP1 POP PUSH2 0x11C5 DUP6 DUP3 PUSH2 0xC4D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x11EA SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x12D2 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1311 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1ADF SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0x134A DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1336 SWAP3 SWAP2 SWAP1 PUSH2 0x24B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1AEB JUMP JUMPDEST PUSH2 0x135C PUSH1 0x0 PUSH2 0x1357 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x1386 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x13DE 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1B19 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP3 CALLER DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH2 0x1B78 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x146F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1598 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH2 0x15AB PUSH2 0x15A6 DUP8 PUSH2 0x1BD4 JUMP JUMPDEST PUSH2 0x1C51 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x162F DUP4 DUP6 PUSH2 0x24D7 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x16E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1784 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x272D PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x17B3 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x1525 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x1828 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1835 DUP5 DUP7 PUSH2 0x24EA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x189E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x18DB DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2679 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x1901 SWAP1 DUP3 PUSH2 0x1C81 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x195A SWAP1 DUP3 PUSH2 0x1CC3 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x1967 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19C3 SWAP1 DUP3 PUSH2 0x1CD8 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x19D0 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x26DE PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x1A58 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH2 0x1CED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1080 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x855 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AFC SWAP2 SWAP1 PUSH2 0x260B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B5D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1B67 DUP3 DUP3 PUSH2 0x1A20 JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x1BD1 SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x269B PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x1C34 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5C PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x1C34 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1DC2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x1D4B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1D60 JUMPI PUSH2 0x1D60 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1DBA JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x855 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x0 PUSH2 0x1DE6 PUSH1 0x1 DUP4 PUSH2 0x24EA JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DFA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x24EA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1E13 JUMPI PUSH2 0x1E13 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1E36 JUMPI PUSH2 0x1E36 PUSH2 0x264C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1E4D DUP4 PUSH1 0x1 PUSH2 0x24D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1E6F JUMPI PUSH2 0x1E6F PUSH2 0x2662 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ED0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB8 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EF1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1080 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F50 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FA6 DUP7 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1FC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1FE9 JUMPI PUSH2 0x1FE9 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2011 JUMPI PUSH2 0x2011 PUSH2 0x1F5E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x202A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x205F PUSH1 0x80 DUP8 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2089 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH2 0x2097 PUSH1 0x20 DUP6 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1080 DUP3 PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2186 DUP6 DUP3 DUP7 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x21AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21B8 DUP10 PUSH2 0x1F18 JUMP JUMPDEST SWAP8 POP PUSH2 0x21C6 PUSH1 0x20 DUP11 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x21E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 POP PUSH2 0x21F7 PUSH1 0xA0 DUP11 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP3 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xE0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x224B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2254 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x227C DUP7 DUP3 DUP8 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A5 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x22E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F0 DUP11 DUP4 DUP12 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2316 DUP10 DUP3 DUP11 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x2329 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP2 POP PUSH2 0x2337 PUSH1 0x60 DUP9 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2357 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2377 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1835 SWAP1 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x23BB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x23F2 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x2410 DUP2 PUSH2 0x2343 JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2431 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x244B JUMPI PUSH2 0x2479 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2479 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2471 JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2456 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x24AF JUMPI PUSH2 0x24AF PUSH2 0x2487 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xDF2 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2524 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2543 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2530 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2565 JUMPI PUSH2 0x2565 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x2579 DUP2 PUSH2 0x2573 DUP5 SLOAD PUSH2 0x2343 JUMP JUMPDEST DUP5 PUSH2 0x24FD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x25AE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2596 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2543 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x25DD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x25BE JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x25FB JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x261D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 SIGNEXTEND 0x28 DUP2 EXTCODECOPY DUP10 DUP12 SDIV DUP14 0xB9 SELFBALANCE 0xDE NOT PUSH26 0x48E4A016DE2D4EB44C0A299D2131490F4DBA2564736F6C634300 ADDMOD EQ STOP CALLER ","sourceMap":"50794:1672:27:-:0;;;41986:19;;;-1:-1:-1;;41986:19:27;;;50794:1672;;;;;;;;;-1:-1:-1;16994:142:27;;;;;;;;;;;;-1:-1:-1;;;16994:142:27;;;;;;;;;;;;;;;;;;;;;;;;17063:14;16994:142;;17063:14;:::i;:::-;-1:-1:-1;17087:7:27;:18;17097:8;17087:7;:18;:::i;:::-;-1:-1:-1;;17115:9:27;:14;;-1:-1:-1;;17115:14:27;17127:2;17115:14;;;-1:-1:-1;50794:1672:27;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:29;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:29;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:29;;;2580:26;2531:89;-1:-1:-1;;1335:1:29;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:29;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:29;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:29;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:29:o;:::-;50794:1672:27;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CHILD_CHAIN_ID_11091":{"entryPoint":null,"id":11091,"parameterSlots":0,"returnSlots":0},"@CHILD_CHAIN_ID_BYTES_11094":{"entryPoint":null,"id":11094,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_10446":{"entryPoint":null,"id":10446,"parameterSlots":0,"returnSlots":0},"@DEPOSITOR_ROLE_11153":{"entryPoint":null,"id":11153,"parameterSlots":0,"returnSlots":0},"@ERC712_VERSION_11082":{"entryPoint":null,"id":11082,"parameterSlots":0,"returnSlots":0},"@PERMIT_TYPEHASH_11292":{"entryPoint":null,"id":11292,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_11085":{"entryPoint":null,"id":11085,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_BYTES_11088":{"entryPoint":null,"id":11088,"parameterSlots":0,"returnSlots":0},"@_add_10050":{"entryPoint":7539,"id":10050,"parameterSlots":2,"returnSlots":1},"@_approve_9975":{"entryPoint":5133,"id":9975,"parameterSlots":3,"returnSlots":0},"@_at_10190":{"entryPoint":7405,"id":10190,"parameterSlots":2,"returnSlots":1},"@_beforeTokenTransfer_9997":{"entryPoint":null,"id":9997,"parameterSlots":3,"returnSlots":0},"@_burn_9930":{"entryPoint":6206,"id":9930,"parameterSlots":2,"returnSlots":0},"@_contains_10150":{"entryPoint":null,"id":10150,"parameterSlots":2,"returnSlots":1},"@_grantRole_10678":{"entryPoint":6466,"id":10678,"parameterSlots":2,"returnSlots":0},"@_initializeEIP712_10806":{"entryPoint":6937,"id":10806,"parameterSlots":2,"returnSlots":0},"@_length_10164":{"entryPoint":null,"id":10164,"parameterSlots":1,"returnSlots":1},"@_mint_9874":{"entryPoint":3149,"id":9874,"parameterSlots":2,"returnSlots":0},"@_msgSender_11226":{"entryPoint":5118,"id":11226,"parameterSlots":0,"returnSlots":1},"@_remove_10131":{"entryPoint":7618,"id":10131,"parameterSlots":2,"returnSlots":1},"@_revokeRole_10702":{"entryPoint":6571,"id":10702,"parameterSlots":2,"returnSlots":0},"@_setDomainSeperator_10844":{"entryPoint":6688,"id":10844,"parameterSlots":2,"returnSlots":0},"@_setupContractId_10725":{"entryPoint":6891,"id":10725,"parameterSlots":1,"returnSlots":0},"@_setupRole_10629":{"entryPoint":null,"id":10629,"parameterSlots":2,"returnSlots":0},"@_transfer_9819":{"entryPoint":5761,"id":9819,"parameterSlots":3,"returnSlots":0},"@add_10221":{"entryPoint":7363,"id":10221,"parameterSlots":2,"returnSlots":1},"@add_9096":{"entryPoint":5666,"id":9096,"parameterSlots":2,"returnSlots":1},"@allowance_9637":{"entryPoint":null,"id":9637,"parameterSlots":2,"returnSlots":1},"@approve_9658":{"entryPoint":2109,"id":9658,"parameterSlots":2,"returnSlots":1},"@at_10317":{"entryPoint":6823,"id":10317,"parameterSlots":2,"returnSlots":1},"@balanceOf_9598":{"entryPoint":null,"id":9598,"parameterSlots":1,"returnSlots":1},"@changeName_11244":{"entryPoint":3372,"id":11244,"parameterSlots":2,"returnSlots":0},"@contains_10275":{"entryPoint":6835,"id":10275,"parameterSlots":2,"returnSlots":1},"@decimals_9564":{"entryPoint":null,"id":9564,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9753":{"entryPoint":4270,"id":9753,"parameterSlots":2,"returnSlots":1},"@deposit_11272":{"entryPoint":4445,"id":11272,"parameterSlots":3,"returnSlots":0},"@executeMetaTransaction_10999":{"entryPoint":2139,"id":10999,"parameterSlots":5,"returnSlots":1},"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"@getNonce_11037":{"entryPoint":null,"id":11037,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_10541":{"entryPoint":null,"id":10541,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_10508":{"entryPoint":4422,"id":10508,"parameterSlots":1,"returnSlots":1},"@getRoleMember_10527":{"entryPoint":4200,"id":10527,"parameterSlots":2,"returnSlots":1},"@grantRole_10567":{"entryPoint":2789,"id":10567,"parameterSlots":2,"returnSlots":0},"@hasRole_10492":{"entryPoint":4231,"id":10492,"parameterSlots":2,"returnSlots":1},"@hashMetaTransaction_11023":{"entryPoint":7124,"id":11023,"parameterSlots":1,"returnSlots":1},"@increaseAllowance_9724":{"entryPoint":3071,"id":9724,"parameterSlots":2,"returnSlots":1},"@initialize_11215":{"entryPoint":4687,"id":11215,"parameterSlots":6,"returnSlots":0},"@length_10290":{"entryPoint":6869,"id":10290,"parameterSlots":1,"returnSlots":1},"@move_11338":{"entryPoint":4405,"id":11338,"parameterSlots":3,"returnSlots":0},"@msgSender_11134":{"entryPoint":7032,"id":11134,"parameterSlots":0,"returnSlots":1},"@name_9526":{"entryPoint":1963,"id":9526,"parameterSlots":0,"returnSlots":1},"@permit_11431":{"entryPoint":3575,"id":11431,"parameterSlots":8,"returnSlots":0},"@pull_11322":{"entryPoint":5107,"id":11322,"parameterSlots":2,"returnSlots":0},"@push_11307":{"entryPoint":4394,"id":11307,"parameterSlots":2,"returnSlots":0},"@remove_10248":{"entryPoint":7384,"id":10248,"parameterSlots":2,"returnSlots":1},"@renounceRole_10615":{"entryPoint":2933,"id":10615,"parameterSlots":2,"returnSlots":0},"@revokeRole_10593":{"entryPoint":4556,"id":10593,"parameterSlots":2,"returnSlots":0},"@setDecimals_9574":{"entryPoint":null,"id":9574,"parameterSlots":1,"returnSlots":0},"@setName_9536":{"entryPoint":6676,"id":9536,"parameterSlots":1,"returnSlots":0},"@setSymbol_9555":{"entryPoint":6879,"id":9555,"parameterSlots":1,"returnSlots":0},"@sub_9113":{"entryPoint":7297,"id":9113,"parameterSlots":2,"returnSlots":1},"@sub_9141":{"entryPoint":6148,"id":9141,"parameterSlots":3,"returnSlots":1},"@symbol_9545":{"entryPoint":4255,"id":9545,"parameterSlots":0,"returnSlots":1},"@toTypedMessageHash_10883":{"entryPoint":7249,"id":10883,"parameterSlots":1,"returnSlots":1},"@totalSupply_9584":{"entryPoint":null,"id":9584,"parameterSlots":0,"returnSlots":1},"@transferFrom_9696":{"entryPoint":2634,"id":9696,"parameterSlots":3,"returnSlots":1},"@transfer_9619":{"entryPoint":4374,"id":9619,"parameterSlots":2,"returnSlots":1},"@verify_11077":{"entryPoint":5426,"id":11077,"parameterSlots":5,"returnSlots":1},"@withdraw_11285":{"entryPoint":2769,"id":11285,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":7960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":8455,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":8384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":8841,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":8299,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_boolt_uint8t_bytes32t_bytes32":{"entryPoint":8594,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":8758,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8":{"entryPoint":8069,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7988,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":8359,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":8411,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":8724,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":8528,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address":{"entryPoint":8883,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":8052,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_string":{"entryPoint":7897,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9184,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":9129,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9739,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9398,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9085,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7941,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9212,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9431,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":9450,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":9469,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":9547,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":7861,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":9027,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":9373,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":9351,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":9826,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9804,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":8030,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24158:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"80:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"90:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"99:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"94:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"159:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"184:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"189:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"180:3:29"},"nodeType":"YulFunctionCall","src":"180:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"203:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"208:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"199:3:29"},"nodeType":"YulFunctionCall","src":"199:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"193:5:29"},"nodeType":"YulFunctionCall","src":"193:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"173:6:29"},"nodeType":"YulFunctionCall","src":"173:39:29"},"nodeType":"YulExpressionStatement","src":"173:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"120:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"123:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"117:2:29"},"nodeType":"YulFunctionCall","src":"117:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"131:19:29","statements":[{"nodeType":"YulAssignment","src":"133:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"142:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"145:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"138:3:29"},"nodeType":"YulFunctionCall","src":"138:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"133:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"113:3:29","statements":[]},"src":"109:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"242:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"247:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"238:3:29"},"nodeType":"YulFunctionCall","src":"238:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"231:6:29"},"nodeType":"YulFunctionCall","src":"231:27:29"},"nodeType":"YulExpressionStatement","src":"231:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"58:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"63:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"68:6:29","type":""}],"src":"14:250:29"},{"body":{"nodeType":"YulBlock","src":"319:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"329:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"349:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"343:5:29"},"nodeType":"YulFunctionCall","src":"343:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"333:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"371:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"376:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"364:6:29"},"nodeType":"YulFunctionCall","src":"364:19:29"},"nodeType":"YulExpressionStatement","src":"364:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"431:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"438:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:29"},"nodeType":"YulFunctionCall","src":"427:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"449:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"454:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:29"},"nodeType":"YulFunctionCall","src":"445:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"461:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"392:34:29"},"nodeType":"YulFunctionCall","src":"392:76:29"},"nodeType":"YulExpressionStatement","src":"392:76:29"},{"nodeType":"YulAssignment","src":"477:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"492:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"505:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"513:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:29"},"nodeType":"YulFunctionCall","src":"501:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"522:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"518:3:29"},"nodeType":"YulFunctionCall","src":"518:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"497:3:29"},"nodeType":"YulFunctionCall","src":"497:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:29"},"nodeType":"YulFunctionCall","src":"488:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"529:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"484:3:29"},"nodeType":"YulFunctionCall","src":"484:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"477:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"296:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"303:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"311:3:29","type":""}],"src":"269:271:29"},{"body":{"nodeType":"YulBlock","src":"666:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"694:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"676:6:29"},"nodeType":"YulFunctionCall","src":"676:21:29"},"nodeType":"YulExpressionStatement","src":"676:21:29"},{"nodeType":"YulAssignment","src":"706:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"732:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"744:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"755:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"740:3:29"},"nodeType":"YulFunctionCall","src":"740:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"714:17:29"},"nodeType":"YulFunctionCall","src":"714:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"706:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"635:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"646:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"657:4:29","type":""}],"src":"545:220:29"},{"body":{"nodeType":"YulBlock","src":"819:124:29","statements":[{"nodeType":"YulAssignment","src":"829:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"851:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"838:12:29"},"nodeType":"YulFunctionCall","src":"838:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"829:5:29"}]},{"body":{"nodeType":"YulBlock","src":"921:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"930:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"933:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"923:6:29"},"nodeType":"YulFunctionCall","src":"923:12:29"},"nodeType":"YulExpressionStatement","src":"923:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"880:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"891:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"906:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"911:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"915:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:29"},"nodeType":"YulFunctionCall","src":"898:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"887:3:29"},"nodeType":"YulFunctionCall","src":"887:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"877:2:29"},"nodeType":"YulFunctionCall","src":"877:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"870:6:29"},"nodeType":"YulFunctionCall","src":"870:50:29"},"nodeType":"YulIf","src":"867:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"798:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"809:5:29","type":""}],"src":"770:173:29"},{"body":{"nodeType":"YulBlock","src":"1035:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"1081:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1090:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1093:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1083:6:29"},"nodeType":"YulFunctionCall","src":"1083:12:29"},"nodeType":"YulExpressionStatement","src":"1083:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1056:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1052:3:29"},"nodeType":"YulFunctionCall","src":"1052:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1077:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1048:3:29"},"nodeType":"YulFunctionCall","src":"1048:32:29"},"nodeType":"YulIf","src":"1045:52:29"},{"nodeType":"YulAssignment","src":"1106:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1135:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1116:18:29"},"nodeType":"YulFunctionCall","src":"1116:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1106:6:29"}]},{"nodeType":"YulAssignment","src":"1154:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1192:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:29"},"nodeType":"YulFunctionCall","src":"1177:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1164:12:29"},"nodeType":"YulFunctionCall","src":"1164:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1154:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"993:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1004:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1016:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1024:6:29","type":""}],"src":"948:254:29"},{"body":{"nodeType":"YulBlock","src":"1302:92:29","statements":[{"nodeType":"YulAssignment","src":"1312:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1324:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1335:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1320:3:29"},"nodeType":"YulFunctionCall","src":"1320:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1312:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1379:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1372:6:29"},"nodeType":"YulFunctionCall","src":"1372:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1365:6:29"},"nodeType":"YulFunctionCall","src":"1365:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1347:6:29"},"nodeType":"YulFunctionCall","src":"1347:41:29"},"nodeType":"YulExpressionStatement","src":"1347:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1271:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1282:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1293:4:29","type":""}],"src":"1207:187:29"},{"body":{"nodeType":"YulBlock","src":"1518:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1535:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1546:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1528:6:29"},"nodeType":"YulFunctionCall","src":"1528:21:29"},"nodeType":"YulExpressionStatement","src":"1528:21:29"},{"nodeType":"YulAssignment","src":"1558:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1584:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1596:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:29"},"nodeType":"YulFunctionCall","src":"1592:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1566:17:29"},"nodeType":"YulFunctionCall","src":"1566:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1558:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1487:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1498:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1509:4:29","type":""}],"src":"1399:218:29"},{"body":{"nodeType":"YulBlock","src":"1654:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1671:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1678:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1683:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1674:3:29"},"nodeType":"YulFunctionCall","src":"1674:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1664:6:29"},"nodeType":"YulFunctionCall","src":"1664:31:29"},"nodeType":"YulExpressionStatement","src":"1664:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1711:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1714:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1704:6:29"},"nodeType":"YulFunctionCall","src":"1704:15:29"},"nodeType":"YulExpressionStatement","src":"1704:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1735:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1738:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1728:6:29"},"nodeType":"YulFunctionCall","src":"1728:15:29"},"nodeType":"YulExpressionStatement","src":"1728:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1622:127:29"},{"body":{"nodeType":"YulBlock","src":"1801:109:29","statements":[{"nodeType":"YulAssignment","src":"1811:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1820:12:29"},"nodeType":"YulFunctionCall","src":"1820:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1811:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1888:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1897:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1900:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1890:6:29"},"nodeType":"YulFunctionCall","src":"1890:12:29"},"nodeType":"YulExpressionStatement","src":"1890:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1873:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1880:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1869:3:29"},"nodeType":"YulFunctionCall","src":"1869:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1859:2:29"},"nodeType":"YulFunctionCall","src":"1859:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1852:6:29"},"nodeType":"YulFunctionCall","src":"1852:35:29"},"nodeType":"YulIf","src":"1849:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1791:5:29","type":""}],"src":"1754:156:29"},{"body":{"nodeType":"YulBlock","src":"2060:1058:29","statements":[{"body":{"nodeType":"YulBlock","src":"2107:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2116:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2119:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2109:6:29"},"nodeType":"YulFunctionCall","src":"2109:12:29"},"nodeType":"YulExpressionStatement","src":"2109:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2081:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2090:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2077:3:29"},"nodeType":"YulFunctionCall","src":"2077:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2102:3:29","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2073:3:29"},"nodeType":"YulFunctionCall","src":"2073:33:29"},"nodeType":"YulIf","src":"2070:53:29"},{"nodeType":"YulAssignment","src":"2132:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2161:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2142:18:29"},"nodeType":"YulFunctionCall","src":"2142:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2132:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2180:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2211:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2222:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2207:3:29"},"nodeType":"YulFunctionCall","src":"2207:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2194:12:29"},"nodeType":"YulFunctionCall","src":"2194:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2184:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2235:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2245:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2239:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2290:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2299:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2302:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2292:6:29"},"nodeType":"YulFunctionCall","src":"2292:12:29"},"nodeType":"YulExpressionStatement","src":"2292:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2278:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2286:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2275:2:29"},"nodeType":"YulFunctionCall","src":"2275:14:29"},"nodeType":"YulIf","src":"2272:34:29"},{"nodeType":"YulVariableDeclaration","src":"2315:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2329:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"2340:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2325:3:29"},"nodeType":"YulFunctionCall","src":"2325:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2319:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2395:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2404:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2407:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2397:6:29"},"nodeType":"YulFunctionCall","src":"2397:12:29"},"nodeType":"YulExpressionStatement","src":"2397:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2374:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2378:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2370:3:29"},"nodeType":"YulFunctionCall","src":"2370:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2385:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2366:3:29"},"nodeType":"YulFunctionCall","src":"2366:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2359:6:29"},"nodeType":"YulFunctionCall","src":"2359:35:29"},"nodeType":"YulIf","src":"2356:55:29"},{"nodeType":"YulVariableDeclaration","src":"2420:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2443:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2430:12:29"},"nodeType":"YulFunctionCall","src":"2430:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2424:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2469:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2471:16:29"},"nodeType":"YulFunctionCall","src":"2471:18:29"},"nodeType":"YulExpressionStatement","src":"2471:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2461:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2465:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2458:2:29"},"nodeType":"YulFunctionCall","src":"2458:10:29"},"nodeType":"YulIf","src":"2455:36:29"},{"nodeType":"YulVariableDeclaration","src":"2500:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2510:3:29"},"nodeType":"YulFunctionCall","src":"2510:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2504:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2526:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2546:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2540:5:29"},"nodeType":"YulFunctionCall","src":"2540:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2530:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2558:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2580:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2604:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2608:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2600:3:29"},"nodeType":"YulFunctionCall","src":"2600:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2615:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2596:3:29"},"nodeType":"YulFunctionCall","src":"2596:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"2620:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:29"},"nodeType":"YulFunctionCall","src":"2592:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2625:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2588:3:29"},"nodeType":"YulFunctionCall","src":"2588:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2576:3:29"},"nodeType":"YulFunctionCall","src":"2576:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2562:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2688:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2690:16:29"},"nodeType":"YulFunctionCall","src":"2690:18:29"},"nodeType":"YulExpressionStatement","src":"2690:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2647:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2659:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2644:2:29"},"nodeType":"YulFunctionCall","src":"2644:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2667:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2679:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2664:2:29"},"nodeType":"YulFunctionCall","src":"2664:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2641:2:29"},"nodeType":"YulFunctionCall","src":"2641:46:29"},"nodeType":"YulIf","src":"2638:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2726:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2730:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2719:6:29"},"nodeType":"YulFunctionCall","src":"2719:22:29"},"nodeType":"YulExpressionStatement","src":"2719:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2757:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2765:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2750:6:29"},"nodeType":"YulFunctionCall","src":"2750:18:29"},"nodeType":"YulExpressionStatement","src":"2750:18:29"},{"body":{"nodeType":"YulBlock","src":"2814:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2823:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2826:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2816:6:29"},"nodeType":"YulFunctionCall","src":"2816:12:29"},"nodeType":"YulExpressionStatement","src":"2816:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2791:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2795:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2787:3:29"},"nodeType":"YulFunctionCall","src":"2787:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2800:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2783:3:29"},"nodeType":"YulFunctionCall","src":"2783:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2805:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2780:2:29"},"nodeType":"YulFunctionCall","src":"2780:33:29"},"nodeType":"YulIf","src":"2777:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2856:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2864:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:29"},"nodeType":"YulFunctionCall","src":"2852:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2873:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2877:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:29"},"nodeType":"YulFunctionCall","src":"2869:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2882:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2839:12:29"},"nodeType":"YulFunctionCall","src":"2839:46:29"},"nodeType":"YulExpressionStatement","src":"2839:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2909:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2917:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:29"},"nodeType":"YulFunctionCall","src":"2905:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"2922:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2901:3:29"},"nodeType":"YulFunctionCall","src":"2901:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"2927:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2894:6:29"},"nodeType":"YulFunctionCall","src":"2894:35:29"},"nodeType":"YulExpressionStatement","src":"2894:35:29"},{"nodeType":"YulAssignment","src":"2938:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2948:6:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2938:6:29"}]},{"nodeType":"YulAssignment","src":"2963:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3001:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2986:3:29"},"nodeType":"YulFunctionCall","src":"2986:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2973:12:29"},"nodeType":"YulFunctionCall","src":"2973:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2963:6:29"}]},{"nodeType":"YulAssignment","src":"3014:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3024:12:29"},"nodeType":"YulFunctionCall","src":"3024:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3014:6:29"}]},{"nodeType":"YulAssignment","src":"3065:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3096:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3107:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3092:3:29"},"nodeType":"YulFunctionCall","src":"3092:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3075:16:29"},"nodeType":"YulFunctionCall","src":"3075:37:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3065:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1994:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2005:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2017:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2025:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2033:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2041:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2049:6:29","type":""}],"src":"1915:1203:29"},{"body":{"nodeType":"YulBlock","src":"3224:76:29","statements":[{"nodeType":"YulAssignment","src":"3234:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3246:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3257:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3242:3:29"},"nodeType":"YulFunctionCall","src":"3242:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3234:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3276:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3287:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3269:6:29"},"nodeType":"YulFunctionCall","src":"3269:25:29"},"nodeType":"YulExpressionStatement","src":"3269:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3193:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3204:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3215:4:29","type":""}],"src":"3123:177:29"},{"body":{"nodeType":"YulBlock","src":"3406:76:29","statements":[{"nodeType":"YulAssignment","src":"3416:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3428:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3439:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3424:3:29"},"nodeType":"YulFunctionCall","src":"3424:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3416:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3458:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3469:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3451:6:29"},"nodeType":"YulFunctionCall","src":"3451:25:29"},"nodeType":"YulExpressionStatement","src":"3451:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3375:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3386:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3397:4:29","type":""}],"src":"3305:177:29"},{"body":{"nodeType":"YulBlock","src":"3591:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"3637:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3646:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3649:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3639:6:29"},"nodeType":"YulFunctionCall","src":"3639:12:29"},"nodeType":"YulExpressionStatement","src":"3639:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3612:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3621:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3608:3:29"},"nodeType":"YulFunctionCall","src":"3608:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3633:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3604:3:29"},"nodeType":"YulFunctionCall","src":"3604:32:29"},"nodeType":"YulIf","src":"3601:52:29"},{"nodeType":"YulAssignment","src":"3662:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3691:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3672:18:29"},"nodeType":"YulFunctionCall","src":"3672:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3662:6:29"}]},{"nodeType":"YulAssignment","src":"3710:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3743:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3754:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3739:3:29"},"nodeType":"YulFunctionCall","src":"3739:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3720:18:29"},"nodeType":"YulFunctionCall","src":"3720:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3710:6:29"}]},{"nodeType":"YulAssignment","src":"3767:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3805:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:29"},"nodeType":"YulFunctionCall","src":"3790:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3777:12:29"},"nodeType":"YulFunctionCall","src":"3777:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3767:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3541:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3552:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3564:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3572:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3580:6:29","type":""}],"src":"3487:328:29"},{"body":{"nodeType":"YulBlock","src":"3890:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3936:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3945:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3948:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3938:6:29"},"nodeType":"YulFunctionCall","src":"3938:12:29"},"nodeType":"YulExpressionStatement","src":"3938:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3911:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3920:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3907:3:29"},"nodeType":"YulFunctionCall","src":"3907:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3932:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3903:3:29"},"nodeType":"YulFunctionCall","src":"3903:32:29"},"nodeType":"YulIf","src":"3900:52:29"},{"nodeType":"YulAssignment","src":"3961:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3984:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3971:12:29"},"nodeType":"YulFunctionCall","src":"3971:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3961:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3856:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3867:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3879:6:29","type":""}],"src":"3820:180:29"},{"body":{"nodeType":"YulBlock","src":"4075:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"4121:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4130:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4133:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4123:6:29"},"nodeType":"YulFunctionCall","src":"4123:12:29"},"nodeType":"YulExpressionStatement","src":"4123:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4096:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4105:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4092:3:29"},"nodeType":"YulFunctionCall","src":"4092:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4117:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4088:3:29"},"nodeType":"YulFunctionCall","src":"4088:32:29"},"nodeType":"YulIf","src":"4085:52:29"},{"nodeType":"YulAssignment","src":"4146:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4156:18:29"},"nodeType":"YulFunctionCall","src":"4156:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4146:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4041:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4052:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4064:6:29","type":""}],"src":"4005:186:29"},{"body":{"nodeType":"YulBlock","src":"4266:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"4312:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4321:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4324:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4314:6:29"},"nodeType":"YulFunctionCall","src":"4314:12:29"},"nodeType":"YulExpressionStatement","src":"4314:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4287:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4283:3:29"},"nodeType":"YulFunctionCall","src":"4283:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4308:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4279:3:29"},"nodeType":"YulFunctionCall","src":"4279:32:29"},"nodeType":"YulIf","src":"4276:52:29"},{"nodeType":"YulAssignment","src":"4337:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4360:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4347:12:29"},"nodeType":"YulFunctionCall","src":"4347:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4337:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4232:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4243:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4255:6:29","type":""}],"src":"4196:180:29"},{"body":{"nodeType":"YulBlock","src":"4468:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"4514:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4523:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4526:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4516:6:29"},"nodeType":"YulFunctionCall","src":"4516:12:29"},"nodeType":"YulExpressionStatement","src":"4516:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4489:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4485:3:29"},"nodeType":"YulFunctionCall","src":"4485:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4510:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4481:3:29"},"nodeType":"YulFunctionCall","src":"4481:32:29"},"nodeType":"YulIf","src":"4478:52:29"},{"nodeType":"YulAssignment","src":"4539:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4562:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4549:12:29"},"nodeType":"YulFunctionCall","src":"4549:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4539:6:29"}]},{"nodeType":"YulAssignment","src":"4581:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4614:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4625:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4610:3:29"},"nodeType":"YulFunctionCall","src":"4610:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4591:18:29"},"nodeType":"YulFunctionCall","src":"4591:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4581:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4426:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4437:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4449:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4457:6:29","type":""}],"src":"4381:254:29"},{"body":{"nodeType":"YulBlock","src":"4737:87:29","statements":[{"nodeType":"YulAssignment","src":"4747:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4759:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4770:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4755:3:29"},"nodeType":"YulFunctionCall","src":"4755:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4747:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4789:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4804:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4812:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4800:3:29"},"nodeType":"YulFunctionCall","src":"4800:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4782:6:29"},"nodeType":"YulFunctionCall","src":"4782:36:29"},"nodeType":"YulExpressionStatement","src":"4782:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4706:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4717:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4728:4:29","type":""}],"src":"4640:184:29"},{"body":{"nodeType":"YulBlock","src":"4902:275:29","statements":[{"body":{"nodeType":"YulBlock","src":"4951:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4960:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4963:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4953:6:29"},"nodeType":"YulFunctionCall","src":"4953:12:29"},"nodeType":"YulExpressionStatement","src":"4953:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4930:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4938:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4926:3:29"},"nodeType":"YulFunctionCall","src":"4926:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"4945:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4922:3:29"},"nodeType":"YulFunctionCall","src":"4922:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4915:6:29"},"nodeType":"YulFunctionCall","src":"4915:35:29"},"nodeType":"YulIf","src":"4912:55:29"},{"nodeType":"YulAssignment","src":"4976:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4999:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4986:12:29"},"nodeType":"YulFunctionCall","src":"4986:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4976:6:29"}]},{"body":{"nodeType":"YulBlock","src":"5049:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5058:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5061:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5051:6:29"},"nodeType":"YulFunctionCall","src":"5051:12:29"},"nodeType":"YulExpressionStatement","src":"5051:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5021:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5029:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5018:2:29"},"nodeType":"YulFunctionCall","src":"5018:30:29"},"nodeType":"YulIf","src":"5015:50:29"},{"nodeType":"YulAssignment","src":"5074:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5090:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5098:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5086:3:29"},"nodeType":"YulFunctionCall","src":"5086:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5074:8:29"}]},{"body":{"nodeType":"YulBlock","src":"5155:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5164:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5167:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5157:6:29"},"nodeType":"YulFunctionCall","src":"5157:12:29"},"nodeType":"YulExpressionStatement","src":"5157:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5126:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"5134:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:29"},"nodeType":"YulFunctionCall","src":"5122:19:29"},{"kind":"number","nodeType":"YulLiteral","src":"5143:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5118:3:29"},"nodeType":"YulFunctionCall","src":"5118:30:29"},{"name":"end","nodeType":"YulIdentifier","src":"5150:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5115:2:29"},"nodeType":"YulFunctionCall","src":"5115:39:29"},"nodeType":"YulIf","src":"5112:59:29"}]},"name":"abi_decode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4865:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"4873:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"4881:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"4891:6:29","type":""}],"src":"4829:348:29"},{"body":{"nodeType":"YulBlock","src":"5272:321:29","statements":[{"body":{"nodeType":"YulBlock","src":"5318:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5327:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5330:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5320:6:29"},"nodeType":"YulFunctionCall","src":"5320:12:29"},"nodeType":"YulExpressionStatement","src":"5320:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5293:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5302:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5289:3:29"},"nodeType":"YulFunctionCall","src":"5289:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5314:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5285:3:29"},"nodeType":"YulFunctionCall","src":"5285:32:29"},"nodeType":"YulIf","src":"5282:52:29"},{"nodeType":"YulVariableDeclaration","src":"5343:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5370:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5357:12:29"},"nodeType":"YulFunctionCall","src":"5357:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5347:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5423:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5432:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5435:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5425:6:29"},"nodeType":"YulFunctionCall","src":"5425:12:29"},"nodeType":"YulExpressionStatement","src":"5425:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5395:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5403:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5392:2:29"},"nodeType":"YulFunctionCall","src":"5392:30:29"},"nodeType":"YulIf","src":"5389:50:29"},{"nodeType":"YulVariableDeclaration","src":"5448:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5505:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"5516:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5501:3:29"},"nodeType":"YulFunctionCall","src":"5501:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5525:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"5474:26:29"},"nodeType":"YulFunctionCall","src":"5474:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5452:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5462:8:29","type":""}]},{"nodeType":"YulAssignment","src":"5542:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5552:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5542:6:29"}]},{"nodeType":"YulAssignment","src":"5569:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5579:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5569:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5230:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5241:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5253:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5261:6:29","type":""}],"src":"5182:411:29"},{"body":{"nodeType":"YulBlock","src":"5782:584:29","statements":[{"body":{"nodeType":"YulBlock","src":"5829:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5838:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5841:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5831:6:29"},"nodeType":"YulFunctionCall","src":"5831:12:29"},"nodeType":"YulExpressionStatement","src":"5831:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5803:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5812:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5799:3:29"},"nodeType":"YulFunctionCall","src":"5799:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5824:3:29","type":"","value":"256"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5795:3:29"},"nodeType":"YulFunctionCall","src":"5795:33:29"},"nodeType":"YulIf","src":"5792:53:29"},{"nodeType":"YulAssignment","src":"5854:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5883:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5864:18:29"},"nodeType":"YulFunctionCall","src":"5864:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5854:6:29"}]},{"nodeType":"YulAssignment","src":"5902:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5935:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5946:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5931:3:29"},"nodeType":"YulFunctionCall","src":"5931:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5912:18:29"},"nodeType":"YulFunctionCall","src":"5912:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5902:6:29"}]},{"nodeType":"YulAssignment","src":"5959:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5986:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5997:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5982:3:29"},"nodeType":"YulFunctionCall","src":"5982:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5969:12:29"},"nodeType":"YulFunctionCall","src":"5969:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5959:6:29"}]},{"nodeType":"YulAssignment","src":"6010:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6037:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6048:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6033:3:29"},"nodeType":"YulFunctionCall","src":"6033:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6020:12:29"},"nodeType":"YulFunctionCall","src":"6020:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6010:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"6061:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6091:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6102:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6087:3:29"},"nodeType":"YulFunctionCall","src":"6087:19:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6074:12:29"},"nodeType":"YulFunctionCall","src":"6074:33:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6065:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6160:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6169:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6172:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6162:6:29"},"nodeType":"YulFunctionCall","src":"6162:12:29"},"nodeType":"YulExpressionStatement","src":"6162:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6129:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6150:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6143:6:29"},"nodeType":"YulFunctionCall","src":"6143:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6136:6:29"},"nodeType":"YulFunctionCall","src":"6136:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6126:2:29"},"nodeType":"YulFunctionCall","src":"6126:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6119:6:29"},"nodeType":"YulFunctionCall","src":"6119:40:29"},"nodeType":"YulIf","src":"6116:60:29"},{"nodeType":"YulAssignment","src":"6185:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"6195:5:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6185:6:29"}]},{"nodeType":"YulAssignment","src":"6209:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6240:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6251:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6236:3:29"},"nodeType":"YulFunctionCall","src":"6236:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"6219:16:29"},"nodeType":"YulFunctionCall","src":"6219:37:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6209:6:29"}]},{"nodeType":"YulAssignment","src":"6265:43:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6303:3:29","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6288:3:29"},"nodeType":"YulFunctionCall","src":"6288:19:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6275:12:29"},"nodeType":"YulFunctionCall","src":"6275:33:29"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6265:6:29"}]},{"nodeType":"YulAssignment","src":"6317:43:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6344:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6355:3:29","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6340:3:29"},"nodeType":"YulFunctionCall","src":"6340:19:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6327:12:29"},"nodeType":"YulFunctionCall","src":"6327:33:29"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"6317:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_boolt_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5692:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5703:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5715:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5723:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5731:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5739:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5747:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5755:6:29","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5763:6:29","type":""},{"name":"value7","nodeType":"YulTypedName","src":"5771:6:29","type":""}],"src":"5598:768:29"},{"body":{"nodeType":"YulBlock","src":"6458:161:29","statements":[{"body":{"nodeType":"YulBlock","src":"6504:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6513:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6516:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6506:6:29"},"nodeType":"YulFunctionCall","src":"6506:12:29"},"nodeType":"YulExpressionStatement","src":"6506:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6479:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6488:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6475:3:29"},"nodeType":"YulFunctionCall","src":"6475:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6500:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6471:3:29"},"nodeType":"YulFunctionCall","src":"6471:32:29"},"nodeType":"YulIf","src":"6468:52:29"},{"nodeType":"YulAssignment","src":"6529:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6552:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6539:12:29"},"nodeType":"YulFunctionCall","src":"6539:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6529:6:29"}]},{"nodeType":"YulAssignment","src":"6571:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6598:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6609:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6594:3:29"},"nodeType":"YulFunctionCall","src":"6594:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6581:12:29"},"nodeType":"YulFunctionCall","src":"6581:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6571:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6416:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6427:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6439:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6447:6:29","type":""}],"src":"6371:248:29"},{"body":{"nodeType":"YulBlock","src":"6725:102:29","statements":[{"nodeType":"YulAssignment","src":"6735:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6747:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6758:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6743:3:29"},"nodeType":"YulFunctionCall","src":"6743:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6735:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6777:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6792:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6808:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6813:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6804:3:29"},"nodeType":"YulFunctionCall","src":"6804:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6817:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6800:3:29"},"nodeType":"YulFunctionCall","src":"6800:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6788:3:29"},"nodeType":"YulFunctionCall","src":"6788:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6770:6:29"},"nodeType":"YulFunctionCall","src":"6770:51:29"},"nodeType":"YulExpressionStatement","src":"6770:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6694:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6705:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6716:4:29","type":""}],"src":"6624:203:29"},{"body":{"nodeType":"YulBlock","src":"6938:378:29","statements":[{"body":{"nodeType":"YulBlock","src":"6984:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6993:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6996:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6986:6:29"},"nodeType":"YulFunctionCall","src":"6986:12:29"},"nodeType":"YulExpressionStatement","src":"6986:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6959:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6968:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6955:3:29"},"nodeType":"YulFunctionCall","src":"6955:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6980:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6951:3:29"},"nodeType":"YulFunctionCall","src":"6951:32:29"},"nodeType":"YulIf","src":"6948:52:29"},{"nodeType":"YulAssignment","src":"7009:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7038:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7019:18:29"},"nodeType":"YulFunctionCall","src":"7019:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7009:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"7057:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7088:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7099:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7084:3:29"},"nodeType":"YulFunctionCall","src":"7084:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7071:12:29"},"nodeType":"YulFunctionCall","src":"7071:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7061:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7146:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7155:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7158:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7148:6:29"},"nodeType":"YulFunctionCall","src":"7148:12:29"},"nodeType":"YulExpressionStatement","src":"7148:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7118:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7126:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7115:2:29"},"nodeType":"YulFunctionCall","src":"7115:30:29"},"nodeType":"YulIf","src":"7112:50:29"},{"nodeType":"YulVariableDeclaration","src":"7171:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7228:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"7239:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7224:3:29"},"nodeType":"YulFunctionCall","src":"7224:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7248:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7197:26:29"},"nodeType":"YulFunctionCall","src":"7197:59:29"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"7175:8:29","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"7185:8:29","type":""}]},{"nodeType":"YulAssignment","src":"7265:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"7275:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7265:6:29"}]},{"nodeType":"YulAssignment","src":"7292:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7302:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7292:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6888:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6899:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6911:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6919:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6927:6:29","type":""}],"src":"6832:484:29"},{"body":{"nodeType":"YulBlock","src":"7408:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"7454:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7463:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7466:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7456:6:29"},"nodeType":"YulFunctionCall","src":"7456:12:29"},"nodeType":"YulExpressionStatement","src":"7456:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7429:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7438:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7425:3:29"},"nodeType":"YulFunctionCall","src":"7425:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7450:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7421:3:29"},"nodeType":"YulFunctionCall","src":"7421:32:29"},"nodeType":"YulIf","src":"7418:52:29"},{"nodeType":"YulAssignment","src":"7479:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7508:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7489:18:29"},"nodeType":"YulFunctionCall","src":"7489:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7479:6:29"}]},{"nodeType":"YulAssignment","src":"7527:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7560:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7571:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7556:3:29"},"nodeType":"YulFunctionCall","src":"7556:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7537:18:29"},"nodeType":"YulFunctionCall","src":"7537:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7527:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7366:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7377:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7389:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7397:6:29","type":""}],"src":"7321:260:29"},{"body":{"nodeType":"YulBlock","src":"7745:707:29","statements":[{"body":{"nodeType":"YulBlock","src":"7792:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7801:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7804:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7794:6:29"},"nodeType":"YulFunctionCall","src":"7794:12:29"},"nodeType":"YulExpressionStatement","src":"7794:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7766:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7775:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7762:3:29"},"nodeType":"YulFunctionCall","src":"7762:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7787:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7758:3:29"},"nodeType":"YulFunctionCall","src":"7758:33:29"},"nodeType":"YulIf","src":"7755:53:29"},{"nodeType":"YulVariableDeclaration","src":"7817:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7844:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7831:12:29"},"nodeType":"YulFunctionCall","src":"7831:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7821:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7863:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7873:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7867:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7918:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7927:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7930:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7920:6:29"},"nodeType":"YulFunctionCall","src":"7920:12:29"},"nodeType":"YulExpressionStatement","src":"7920:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7906:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7914:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7903:2:29"},"nodeType":"YulFunctionCall","src":"7903:14:29"},"nodeType":"YulIf","src":"7900:34:29"},{"nodeType":"YulVariableDeclaration","src":"7943:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8000:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"8011:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7996:3:29"},"nodeType":"YulFunctionCall","src":"7996:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8020:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7969:26:29"},"nodeType":"YulFunctionCall","src":"7969:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7947:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7957:8:29","type":""}]},{"nodeType":"YulAssignment","src":"8037:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"8047:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8037:6:29"}]},{"nodeType":"YulAssignment","src":"8064:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"8074:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8064:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"8091:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8124:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8135:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8120:3:29"},"nodeType":"YulFunctionCall","src":"8120:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8107:12:29"},"nodeType":"YulFunctionCall","src":"8107:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8095:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"8168:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8177:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8180:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8170:6:29"},"nodeType":"YulFunctionCall","src":"8170:12:29"},"nodeType":"YulExpressionStatement","src":"8170:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8154:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8164:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8151:2:29"},"nodeType":"YulFunctionCall","src":"8151:16:29"},"nodeType":"YulIf","src":"8148:36:29"},{"nodeType":"YulVariableDeclaration","src":"8193:87:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8250:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8261:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8246:3:29"},"nodeType":"YulFunctionCall","src":"8246:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8272:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"8219:26:29"},"nodeType":"YulFunctionCall","src":"8219:61:29"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"8197:8:29","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"8207:8:29","type":""}]},{"nodeType":"YulAssignment","src":"8289:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"8299:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8289:6:29"}]},{"nodeType":"YulAssignment","src":"8316:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8326:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8316:6:29"}]},{"nodeType":"YulAssignment","src":"8343:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8374:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8385:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8370:3:29"},"nodeType":"YulFunctionCall","src":"8370:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8353:16:29"},"nodeType":"YulFunctionCall","src":"8353:36:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8343:6:29"}]},{"nodeType":"YulAssignment","src":"8398:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8431:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8442:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8427:3:29"},"nodeType":"YulFunctionCall","src":"8427:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8408:18:29"},"nodeType":"YulFunctionCall","src":"8408:38:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"8398:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7671:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7682:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7694:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7702:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7710:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7718:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7726:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7734:6:29","type":""}],"src":"7586:866:29"},{"body":{"nodeType":"YulBlock","src":"8512:325:29","statements":[{"nodeType":"YulAssignment","src":"8522:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8536:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"8539:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8532:3:29"},"nodeType":"YulFunctionCall","src":"8532:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8522:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"8553:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8583:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"8589:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8579:3:29"},"nodeType":"YulFunctionCall","src":"8579:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"8557:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"8630:31:29","statements":[{"nodeType":"YulAssignment","src":"8632:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8646:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8654:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8642:3:29"},"nodeType":"YulFunctionCall","src":"8642:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8632:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8610:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8603:6:29"},"nodeType":"YulFunctionCall","src":"8603:26:29"},"nodeType":"YulIf","src":"8600:61:29"},{"body":{"nodeType":"YulBlock","src":"8720:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8741:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8748:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8753:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8744:3:29"},"nodeType":"YulFunctionCall","src":"8744:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8734:6:29"},"nodeType":"YulFunctionCall","src":"8734:31:29"},"nodeType":"YulExpressionStatement","src":"8734:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8785:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8788:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8778:6:29"},"nodeType":"YulFunctionCall","src":"8778:15:29"},"nodeType":"YulExpressionStatement","src":"8778:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8813:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8816:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8806:6:29"},"nodeType":"YulFunctionCall","src":"8806:15:29"},"nodeType":"YulExpressionStatement","src":"8806:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8676:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8699:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8707:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8696:2:29"},"nodeType":"YulFunctionCall","src":"8696:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8673:2:29"},"nodeType":"YulFunctionCall","src":"8673:38:29"},"nodeType":"YulIf","src":"8670:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"8492:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"8501:6:29","type":""}],"src":"8457:380:29"},{"body":{"nodeType":"YulBlock","src":"9016:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9033:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9044:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9026:6:29"},"nodeType":"YulFunctionCall","src":"9026:21:29"},"nodeType":"YulExpressionStatement","src":"9026:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9067:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9078:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9063:3:29"},"nodeType":"YulFunctionCall","src":"9063:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"9083:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9056:6:29"},"nodeType":"YulFunctionCall","src":"9056:30:29"},"nodeType":"YulExpressionStatement","src":"9056:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9106:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9117:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9102:3:29"},"nodeType":"YulFunctionCall","src":"9102:18:29"},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d617463","kind":"string","nodeType":"YulLiteral","src":"9122:34:29","type":"","value":"Signer and signature do not matc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9095:6:29"},"nodeType":"YulFunctionCall","src":"9095:62:29"},"nodeType":"YulExpressionStatement","src":"9095:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9177:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9188:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9173:3:29"},"nodeType":"YulFunctionCall","src":"9173:18:29"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"9193:3:29","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9166:6:29"},"nodeType":"YulFunctionCall","src":"9166:31:29"},"nodeType":"YulExpressionStatement","src":"9166:31:29"},{"nodeType":"YulAssignment","src":"9206:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9218:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9229:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9214:3:29"},"nodeType":"YulFunctionCall","src":"9214:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9206:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8993:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9007:4:29","type":""}],"src":"8842:397:29"},{"body":{"nodeType":"YulBlock","src":"9435:241:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9445:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9463:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9468:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9459:3:29"},"nodeType":"YulFunctionCall","src":"9459:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"9472:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9455:3:29"},"nodeType":"YulFunctionCall","src":"9455:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9449:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9490:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9505:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9513:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9501:3:29"},"nodeType":"YulFunctionCall","src":"9501:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9483:6:29"},"nodeType":"YulFunctionCall","src":"9483:34:29"},"nodeType":"YulExpressionStatement","src":"9483:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9537:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9548:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9533:3:29"},"nodeType":"YulFunctionCall","src":"9533:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9557:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9565:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9553:3:29"},"nodeType":"YulFunctionCall","src":"9553:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9526:6:29"},"nodeType":"YulFunctionCall","src":"9526:43:29"},"nodeType":"YulExpressionStatement","src":"9526:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9589:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9600:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9585:3:29"},"nodeType":"YulFunctionCall","src":"9585:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"9605:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9578:6:29"},"nodeType":"YulFunctionCall","src":"9578:30:29"},"nodeType":"YulExpressionStatement","src":"9578:30:29"},{"nodeType":"YulAssignment","src":"9617:53:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9643:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9655:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9666:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9651:3:29"},"nodeType":"YulFunctionCall","src":"9651:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"9625:17:29"},"nodeType":"YulFunctionCall","src":"9625:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9617:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9388:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9399:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9407:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9415:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9426:4:29","type":""}],"src":"9244:432:29"},{"body":{"nodeType":"YulBlock","src":"9846:263:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9856:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9876:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9870:5:29"},"nodeType":"YulFunctionCall","src":"9870:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9860:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9931:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9939:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9927:3:29"},"nodeType":"YulFunctionCall","src":"9927:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"9946:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9951:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9892:34:29"},"nodeType":"YulFunctionCall","src":"9892:66:29"},"nodeType":"YulExpressionStatement","src":"9892:66:29"},{"nodeType":"YulVariableDeclaration","src":"9967:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9984:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9989:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9980:3:29"},"nodeType":"YulFunctionCall","src":"9980:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"9971:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"10012:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10027:2:29","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"10031:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10023:3:29"},"nodeType":"YulFunctionCall","src":"10023:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10044:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10040:3:29"},"nodeType":"YulFunctionCall","src":"10040:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10019:3:29"},"nodeType":"YulFunctionCall","src":"10019:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10005:6:29"},"nodeType":"YulFunctionCall","src":"10005:68:29"},"nodeType":"YulExpressionStatement","src":"10005:68:29"},{"nodeType":"YulAssignment","src":"10082:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"10093:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"10100:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10089:3:29"},"nodeType":"YulFunctionCall","src":"10089:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10082:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9814:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9819:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9827:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9838:3:29","type":""}],"src":"9681:428:29"},{"body":{"nodeType":"YulBlock","src":"10251:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"10261:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10281:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10275:5:29"},"nodeType":"YulFunctionCall","src":"10275:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10265:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10336:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10344:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10332:3:29"},"nodeType":"YulFunctionCall","src":"10332:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"10351:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"10356:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"10297:34:29"},"nodeType":"YulFunctionCall","src":"10297:66:29"},"nodeType":"YulExpressionStatement","src":"10297:66:29"},{"nodeType":"YulAssignment","src":"10372:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10383:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"10388:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10379:3:29"},"nodeType":"YulFunctionCall","src":"10379:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10372:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10227:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10232:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10243:3:29","type":""}],"src":"10114:287:29"},{"body":{"nodeType":"YulBlock","src":"10580:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10597:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10608:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10590:6:29"},"nodeType":"YulFunctionCall","src":"10590:21:29"},"nodeType":"YulExpressionStatement","src":"10590:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10631:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10642:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10627:3:29"},"nodeType":"YulFunctionCall","src":"10627:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"10647:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10620:6:29"},"nodeType":"YulFunctionCall","src":"10620:30:29"},"nodeType":"YulExpressionStatement","src":"10620:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10670:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10681:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10666:3:29"},"nodeType":"YulFunctionCall","src":"10666:18:29"},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","kind":"string","nodeType":"YulLiteral","src":"10686:30:29","type":"","value":"Function call not successful"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10659:6:29"},"nodeType":"YulFunctionCall","src":"10659:58:29"},"nodeType":"YulExpressionStatement","src":"10659:58:29"},{"nodeType":"YulAssignment","src":"10726:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10738:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10749:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10734:3:29"},"nodeType":"YulFunctionCall","src":"10734:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10726:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10557:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10571:4:29","type":""}],"src":"10406:352:29"},{"body":{"nodeType":"YulBlock","src":"10937:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10954:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10965:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10947:6:29"},"nodeType":"YulFunctionCall","src":"10947:21:29"},"nodeType":"YulExpressionStatement","src":"10947:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10988:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10999:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10984:3:29"},"nodeType":"YulFunctionCall","src":"10984:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11004:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:29"},"nodeType":"YulFunctionCall","src":"10977:30:29"},"nodeType":"YulExpressionStatement","src":"10977:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11027:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11038:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11023:3:29"},"nodeType":"YulFunctionCall","src":"11023:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"11043:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11016:6:29"},"nodeType":"YulFunctionCall","src":"11016:62:29"},"nodeType":"YulExpressionStatement","src":"11016:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11098:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11109:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11094:3:29"},"nodeType":"YulFunctionCall","src":"11094:18:29"},{"hexValue":"2061646d696e20746f206772616e74","kind":"string","nodeType":"YulLiteral","src":"11114:17:29","type":"","value":" admin to grant"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11087:6:29"},"nodeType":"YulFunctionCall","src":"11087:45:29"},"nodeType":"YulExpressionStatement","src":"11087:45:29"},{"nodeType":"YulAssignment","src":"11141:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11153:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11164:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11149:3:29"},"nodeType":"YulFunctionCall","src":"11149:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11141:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10914:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10928:4:29","type":""}],"src":"10763:411:29"},{"body":{"nodeType":"YulBlock","src":"11353:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11370:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11381:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11363:6:29"},"nodeType":"YulFunctionCall","src":"11363:21:29"},"nodeType":"YulExpressionStatement","src":"11363:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11404:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11415:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11400:3:29"},"nodeType":"YulFunctionCall","src":"11400:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11420:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11393:6:29"},"nodeType":"YulFunctionCall","src":"11393:30:29"},"nodeType":"YulExpressionStatement","src":"11393:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11443:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11454:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11439:3:29"},"nodeType":"YulFunctionCall","src":"11439:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"11459:34:29","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11432:6:29"},"nodeType":"YulFunctionCall","src":"11432:62:29"},"nodeType":"YulExpressionStatement","src":"11432:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11514:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11525:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11510:3:29"},"nodeType":"YulFunctionCall","src":"11510:18:29"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"11530:17:29","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11503:6:29"},"nodeType":"YulFunctionCall","src":"11503:45:29"},"nodeType":"YulExpressionStatement","src":"11503:45:29"},{"nodeType":"YulAssignment","src":"11557:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11569:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11580:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11565:3:29"},"nodeType":"YulFunctionCall","src":"11565:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11557:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11330:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11344:4:29","type":""}],"src":"11179:411:29"},{"body":{"nodeType":"YulBlock","src":"11769:181:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11786:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11797:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11779:6:29"},"nodeType":"YulFunctionCall","src":"11779:21:29"},"nodeType":"YulExpressionStatement","src":"11779:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:29"},"nodeType":"YulFunctionCall","src":"11816:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11836:2:29","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11809:6:29"},"nodeType":"YulFunctionCall","src":"11809:30:29"},"nodeType":"YulExpressionStatement","src":"11809:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11859:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11870:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11855:3:29"},"nodeType":"YulFunctionCall","src":"11855:18:29"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"11875:33:29","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11848:6:29"},"nodeType":"YulFunctionCall","src":"11848:61:29"},"nodeType":"YulExpressionStatement","src":"11848:61:29"},{"nodeType":"YulAssignment","src":"11918:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11941:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11926:3:29"},"nodeType":"YulFunctionCall","src":"11926:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11918:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11746:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11760:4:29","type":""}],"src":"11595:355:29"},{"body":{"nodeType":"YulBlock","src":"12011:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12028:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"12031:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12021:6:29"},"nodeType":"YulFunctionCall","src":"12021:14:29"},"nodeType":"YulExpressionStatement","src":"12021:14:29"},{"nodeType":"YulAssignment","src":"12044:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12062:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12065:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12052:9:29"},"nodeType":"YulFunctionCall","src":"12052:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"12044:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11994:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"12002:4:29","type":""}],"src":"11955:121:29"},{"body":{"nodeType":"YulBlock","src":"12199:845:29","statements":[{"nodeType":"YulVariableDeclaration","src":"12209:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12219:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12213:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12237:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12248:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12230:6:29"},"nodeType":"YulFunctionCall","src":"12230:21:29"},"nodeType":"YulExpressionStatement","src":"12230:21:29"},{"nodeType":"YulVariableDeclaration","src":"12260:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12271:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"12264:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12281:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12304:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12298:5:29"},"nodeType":"YulFunctionCall","src":"12298:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"12285:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12320:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12360:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"12334:25:29"},"nodeType":"YulFunctionCall","src":"12334:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12324:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12390:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12401:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12386:3:29"},"nodeType":"YulFunctionCall","src":"12386:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"12406:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12379:6:29"},"nodeType":"YulFunctionCall","src":"12379:34:29"},"nodeType":"YulExpressionStatement","src":"12379:34:29"},{"nodeType":"YulVariableDeclaration","src":"12422:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12432:2:29","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12426:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12443:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12453:1:29","type":"","value":"1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"12447:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"12504:151:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12529:9:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12540:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12525:3:29"},"nodeType":"YulFunctionCall","src":"12525:18:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12549:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12564:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12560:3:29"},"nodeType":"YulFunctionCall","src":"12560:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12545:3:29"},"nodeType":"YulFunctionCall","src":"12545:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12518:6:29"},"nodeType":"YulFunctionCall","src":"12518:52:29"},"nodeType":"YulExpressionStatement","src":"12518:52:29"},{"nodeType":"YulAssignment","src":"12583:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12598:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12613:1:29","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12630:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12623:6:29"},"nodeType":"YulFunctionCall","src":"12623:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12616:6:29"},"nodeType":"YulFunctionCall","src":"12616:22:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12609:3:29"},"nodeType":"YulFunctionCall","src":"12609:30:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12594:3:29"},"nodeType":"YulFunctionCall","src":"12594:46:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12642:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12590:3:29"},"nodeType":"YulFunctionCall","src":"12590:55:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12583:3:29"}]}]},"nodeType":"YulCase","src":"12497:158:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12502:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"12671:347:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12692:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"12695:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12685:6:29"},"nodeType":"YulFunctionCall","src":"12685:17:29"},"nodeType":"YulExpressionStatement","src":"12685:17:29"},{"nodeType":"YulVariableDeclaration","src":"12715:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12740:1:29","type":"","value":"0"},{"name":"_1","nodeType":"YulIdentifier","src":"12743:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12730:9:29"},"nodeType":"YulFunctionCall","src":"12730:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"12719:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12759:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12768:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12763:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"12836:126:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12869:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"12880:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12865:3:29"},"nodeType":"YulFunctionCall","src":"12865:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12884:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12861:3:29"},"nodeType":"YulFunctionCall","src":"12861:26:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12895:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12889:5:29"},"nodeType":"YulFunctionCall","src":"12889:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12854:6:29"},"nodeType":"YulFunctionCall","src":"12854:50:29"},"nodeType":"YulExpressionStatement","src":"12854:50:29"},{"nodeType":"YulAssignment","src":"12921:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12936:7:29"},{"name":"_3","nodeType":"YulIdentifier","src":"12945:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12932:3:29"},"nodeType":"YulFunctionCall","src":"12932:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12921:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12793:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"12796:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12790:2:29"},"nodeType":"YulFunctionCall","src":"12790:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12804:19:29","statements":[{"nodeType":"YulAssignment","src":"12806:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12815:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12818:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12811:3:29"},"nodeType":"YulFunctionCall","src":"12811:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12806:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"12786:3:29","statements":[]},"src":"12782:180:29"},{"nodeType":"YulAssignment","src":"12975:33:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12990:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"13001:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12986:3:29"},"nodeType":"YulFunctionCall","src":"12986:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"13005:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12982:3:29"},"nodeType":"YulFunctionCall","src":"12982:26:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12975:3:29"}]}]},"nodeType":"YulCase","src":"12664:354:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12669:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12474:9:29"},{"name":"_3","nodeType":"YulIdentifier","src":"12485:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12470:3:29"},"nodeType":"YulFunctionCall","src":"12470:18:29"},"nodeType":"YulSwitch","src":"12463:555:29"},{"nodeType":"YulAssignment","src":"13027:11:29","value":{"name":"ret","nodeType":"YulIdentifier","src":"13035:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13027:4:29"}]}]},"name":"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12168:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12179:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12190:4:29","type":""}],"src":"12081:963:29"},{"body":{"nodeType":"YulBlock","src":"13284:366:29","statements":[{"nodeType":"YulAssignment","src":"13294:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13306:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13317:3:29","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13302:3:29"},"nodeType":"YulFunctionCall","src":"13302:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13294:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13337:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"13348:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13330:6:29"},"nodeType":"YulFunctionCall","src":"13330:25:29"},"nodeType":"YulExpressionStatement","src":"13330:25:29"},{"nodeType":"YulVariableDeclaration","src":"13364:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13382:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13387:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13378:3:29"},"nodeType":"YulFunctionCall","src":"13378:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"13391:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13374:3:29"},"nodeType":"YulFunctionCall","src":"13374:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13368:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13413:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13424:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13409:3:29"},"nodeType":"YulFunctionCall","src":"13409:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13433:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13441:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13429:3:29"},"nodeType":"YulFunctionCall","src":"13429:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13402:6:29"},"nodeType":"YulFunctionCall","src":"13402:43:29"},"nodeType":"YulExpressionStatement","src":"13402:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13465:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13476:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13461:3:29"},"nodeType":"YulFunctionCall","src":"13461:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13485:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13493:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13481:3:29"},"nodeType":"YulFunctionCall","src":"13481:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13454:6:29"},"nodeType":"YulFunctionCall","src":"13454:43:29"},"nodeType":"YulExpressionStatement","src":"13454:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13528:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13513:3:29"},"nodeType":"YulFunctionCall","src":"13513:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"13533:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13506:6:29"},"nodeType":"YulFunctionCall","src":"13506:34:29"},"nodeType":"YulExpressionStatement","src":"13506:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13560:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13571:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13556:3:29"},"nodeType":"YulFunctionCall","src":"13556:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"13577:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13549:6:29"},"nodeType":"YulFunctionCall","src":"13549:35:29"},"nodeType":"YulExpressionStatement","src":"13549:35:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13604:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13615:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13600:3:29"},"nodeType":"YulFunctionCall","src":"13600:19:29"},{"arguments":[{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"13635:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13628:6:29"},"nodeType":"YulFunctionCall","src":"13628:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13621:6:29"},"nodeType":"YulFunctionCall","src":"13621:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13593:6:29"},"nodeType":"YulFunctionCall","src":"13593:51:29"},"nodeType":"YulExpressionStatement","src":"13593:51:29"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13213:9:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13224:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13232:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13240:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13248:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13256:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13264:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13275:4:29","type":""}],"src":"13049:601:29"},{"body":{"nodeType":"YulBlock","src":"13903:144:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13920:3:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13929:3:29","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"13934:4:29","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13925:3:29"},"nodeType":"YulFunctionCall","src":"13925:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13913:6:29"},"nodeType":"YulFunctionCall","src":"13913:27:29"},"nodeType":"YulExpressionStatement","src":"13913:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13960:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13965:1:29","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13956:3:29"},"nodeType":"YulFunctionCall","src":"13956:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"13969:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13949:6:29"},"nodeType":"YulFunctionCall","src":"13949:27:29"},"nodeType":"YulExpressionStatement","src":"13949:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13996:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"14001:2:29","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13992:3:29"},"nodeType":"YulFunctionCall","src":"13992:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"14006:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13985:6:29"},"nodeType":"YulFunctionCall","src":"13985:28:29"},"nodeType":"YulExpressionStatement","src":"13985:28:29"},{"nodeType":"YulAssignment","src":"14022:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14033:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"14038:2:29","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14029:3:29"},"nodeType":"YulFunctionCall","src":"14029:12:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14022:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13871:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13876:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13884:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13895:3:29","type":""}],"src":"13655:392:29"},{"body":{"nodeType":"YulBlock","src":"14233:217:29","statements":[{"nodeType":"YulAssignment","src":"14243:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14255:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14266:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14251:3:29"},"nodeType":"YulFunctionCall","src":"14251:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14243:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14286:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"14297:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14279:6:29"},"nodeType":"YulFunctionCall","src":"14279:25:29"},"nodeType":"YulExpressionStatement","src":"14279:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14324:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14335:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14320:3:29"},"nodeType":"YulFunctionCall","src":"14320:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14344:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14352:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14340:3:29"},"nodeType":"YulFunctionCall","src":"14340:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14313:6:29"},"nodeType":"YulFunctionCall","src":"14313:45:29"},"nodeType":"YulExpressionStatement","src":"14313:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14378:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14389:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14374:3:29"},"nodeType":"YulFunctionCall","src":"14374:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"14394:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14367:6:29"},"nodeType":"YulFunctionCall","src":"14367:34:29"},"nodeType":"YulExpressionStatement","src":"14367:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14421:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14432:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14417:3:29"},"nodeType":"YulFunctionCall","src":"14417:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"14437:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14410:6:29"},"nodeType":"YulFunctionCall","src":"14410:34:29"},"nodeType":"YulExpressionStatement","src":"14410:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14178:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14189:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14197:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14205:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14213:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14224:4:29","type":""}],"src":"14052:398:29"},{"body":{"nodeType":"YulBlock","src":"14629:175:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14646:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14657:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14639:6:29"},"nodeType":"YulFunctionCall","src":"14639:21:29"},"nodeType":"YulExpressionStatement","src":"14639:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14680:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14691:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14676:3:29"},"nodeType":"YulFunctionCall","src":"14676:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"14696:2:29","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14669:6:29"},"nodeType":"YulFunctionCall","src":"14669:30:29"},"nodeType":"YulExpressionStatement","src":"14669:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14719:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14730:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14715:3:29"},"nodeType":"YulFunctionCall","src":"14715:18:29"},{"hexValue":"554368696c644441493a20494e56414c49442d5045524d4954","kind":"string","nodeType":"YulLiteral","src":"14735:27:29","type":"","value":"UChildDAI: INVALID-PERMIT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14708:6:29"},"nodeType":"YulFunctionCall","src":"14708:55:29"},"nodeType":"YulExpressionStatement","src":"14708:55:29"},{"nodeType":"YulAssignment","src":"14772:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14784:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14795:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14780:3:29"},"nodeType":"YulFunctionCall","src":"14780:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14772:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14606:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14620:4:29","type":""}],"src":"14455:349:29"},{"body":{"nodeType":"YulBlock","src":"14983:175:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15000:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15011:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14993:6:29"},"nodeType":"YulFunctionCall","src":"14993:21:29"},"nodeType":"YulExpressionStatement","src":"14993:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15034:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15045:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15030:3:29"},"nodeType":"YulFunctionCall","src":"15030:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15050:2:29","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15023:6:29"},"nodeType":"YulFunctionCall","src":"15023:30:29"},"nodeType":"YulExpressionStatement","src":"15023:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15073:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15084:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15069:3:29"},"nodeType":"YulFunctionCall","src":"15069:18:29"},{"hexValue":"554368696c644441493a205045524d49542d45585049524544","kind":"string","nodeType":"YulLiteral","src":"15089:27:29","type":"","value":"UChildDAI: PERMIT-EXPIRED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15062:6:29"},"nodeType":"YulFunctionCall","src":"15062:55:29"},"nodeType":"YulExpressionStatement","src":"15062:55:29"},{"nodeType":"YulAssignment","src":"15126:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15138:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15149:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15134:3:29"},"nodeType":"YulFunctionCall","src":"15134:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15126:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14960:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14974:4:29","type":""}],"src":"14809:349:29"},{"body":{"nodeType":"YulBlock","src":"15195:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15212:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15219:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15224:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15215:3:29"},"nodeType":"YulFunctionCall","src":"15215:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15205:6:29"},"nodeType":"YulFunctionCall","src":"15205:31:29"},"nodeType":"YulExpressionStatement","src":"15205:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15252:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15255:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15245:6:29"},"nodeType":"YulFunctionCall","src":"15245:15:29"},"nodeType":"YulExpressionStatement","src":"15245:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15276:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15279:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15269:6:29"},"nodeType":"YulFunctionCall","src":"15269:15:29"},"nodeType":"YulExpressionStatement","src":"15269:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"15163:127:29"},{"body":{"nodeType":"YulBlock","src":"15342:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"15373:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15375:16:29"},"nodeType":"YulFunctionCall","src":"15375:18:29"},"nodeType":"YulExpressionStatement","src":"15375:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15358:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15369:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15365:3:29"},"nodeType":"YulFunctionCall","src":"15365:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15355:2:29"},"nodeType":"YulFunctionCall","src":"15355:17:29"},"nodeType":"YulIf","src":"15352:43:29"},{"nodeType":"YulAssignment","src":"15404:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15415:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"15422:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15411:3:29"},"nodeType":"YulFunctionCall","src":"15411:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15404:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15324:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15334:3:29","type":""}],"src":"15295:135:29"},{"body":{"nodeType":"YulBlock","src":"15609:174:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15626:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15637:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15619:6:29"},"nodeType":"YulFunctionCall","src":"15619:21:29"},"nodeType":"YulExpressionStatement","src":"15619:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15660:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15671:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15656:3:29"},"nodeType":"YulFunctionCall","src":"15656:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15676:2:29","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15649:6:29"},"nodeType":"YulFunctionCall","src":"15649:30:29"},"nodeType":"YulExpressionStatement","src":"15649:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15699:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15710:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15695:3:29"},"nodeType":"YulFunctionCall","src":"15695:18:29"},{"hexValue":"554368696c644441493a20494e56414c49442d4e4f4e4345","kind":"string","nodeType":"YulLiteral","src":"15715:26:29","type":"","value":"UChildDAI: INVALID-NONCE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15688:6:29"},"nodeType":"YulFunctionCall","src":"15688:54:29"},"nodeType":"YulExpressionStatement","src":"15688:54:29"},{"nodeType":"YulAssignment","src":"15751:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15763:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15774:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15759:3:29"},"nodeType":"YulFunctionCall","src":"15759:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15751:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15586:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15600:4:29","type":""}],"src":"15435:348:29"},{"body":{"nodeType":"YulBlock","src":"15962:238:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15979:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15990:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15972:6:29"},"nodeType":"YulFunctionCall","src":"15972:21:29"},"nodeType":"YulExpressionStatement","src":"15972:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16013:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16024:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16009:3:29"},"nodeType":"YulFunctionCall","src":"16009:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16029:2:29","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16002:6:29"},"nodeType":"YulFunctionCall","src":"16002:30:29"},"nodeType":"YulExpressionStatement","src":"16002:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16052:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16063:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16048:3:29"},"nodeType":"YulFunctionCall","src":"16048:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"16068:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16041:6:29"},"nodeType":"YulFunctionCall","src":"16041:62:29"},"nodeType":"YulExpressionStatement","src":"16041:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16123:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16134:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16119:3:29"},"nodeType":"YulFunctionCall","src":"16119:18:29"},{"hexValue":"2061646d696e20746f207265766f6b65","kind":"string","nodeType":"YulLiteral","src":"16139:18:29","type":"","value":" admin to revoke"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16112:6:29"},"nodeType":"YulFunctionCall","src":"16112:46:29"},"nodeType":"YulExpressionStatement","src":"16112:46:29"},{"nodeType":"YulAssignment","src":"16167:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16179:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16190:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16175:3:29"},"nodeType":"YulFunctionCall","src":"16175:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16167:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15939:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15953:4:29","type":""}],"src":"15788:412:29"},{"body":{"nodeType":"YulBlock","src":"16379:164:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16396:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16407:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16389:6:29"},"nodeType":"YulFunctionCall","src":"16389:21:29"},"nodeType":"YulExpressionStatement","src":"16389:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16430:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16441:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16426:3:29"},"nodeType":"YulFunctionCall","src":"16426:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16446:2:29","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16419:6:29"},"nodeType":"YulFunctionCall","src":"16419:30:29"},"nodeType":"YulExpressionStatement","src":"16419:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16469:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16480:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16465:3:29"},"nodeType":"YulFunctionCall","src":"16465:18:29"},{"hexValue":"616c726561647920696e69746564","kind":"string","nodeType":"YulLiteral","src":"16485:16:29","type":"","value":"already inited"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16458:6:29"},"nodeType":"YulFunctionCall","src":"16458:44:29"},"nodeType":"YulExpressionStatement","src":"16458:44:29"},{"nodeType":"YulAssignment","src":"16511:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16523:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16534:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16519:3:29"},"nodeType":"YulFunctionCall","src":"16519:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16511:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16356:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16370:4:29","type":""}],"src":"16205:338:29"},{"body":{"nodeType":"YulBlock","src":"16798:169:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16815:3:29"},{"hexValue":"4368696c64","kind":"string","nodeType":"YulLiteral","src":"16820:7:29","type":"","value":"Child"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16808:6:29"},"nodeType":"YulFunctionCall","src":"16808:20:29"},"nodeType":"YulExpressionStatement","src":"16808:20:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16854:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"16859:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16850:3:29"},"nodeType":"YulFunctionCall","src":"16850:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"16863:6:29"},{"name":"value1","nodeType":"YulIdentifier","src":"16871:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"16837:12:29"},"nodeType":"YulFunctionCall","src":"16837:41:29"},"nodeType":"YulExpressionStatement","src":"16837:41:29"},{"nodeType":"YulVariableDeclaration","src":"16887:34:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16905:3:29"},{"name":"value1","nodeType":"YulIdentifier","src":"16910:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16901:3:29"},"nodeType":"YulFunctionCall","src":"16901:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"16919:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16897:3:29"},"nodeType":"YulFunctionCall","src":"16897:24:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16891:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16937:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"16941:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16930:6:29"},"nodeType":"YulFunctionCall","src":"16930:13:29"},"nodeType":"YulExpressionStatement","src":"16930:13:29"},{"nodeType":"YulAssignment","src":"16952:9:29","value":{"name":"_1","nodeType":"YulIdentifier","src":"16959:2:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16952:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16766:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16771:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16779:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16790:3:29","type":""}],"src":"16548:419:29"},{"body":{"nodeType":"YulBlock","src":"17146:226:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17163:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17174:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17156:6:29"},"nodeType":"YulFunctionCall","src":"17156:21:29"},"nodeType":"YulExpressionStatement","src":"17156:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17197:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17208:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17193:3:29"},"nodeType":"YulFunctionCall","src":"17193:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"17213:2:29","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17186:6:29"},"nodeType":"YulFunctionCall","src":"17186:30:29"},"nodeType":"YulExpressionStatement","src":"17186:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17236:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17247:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17232:3:29"},"nodeType":"YulFunctionCall","src":"17232:18:29"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"17252:34:29","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17225:6:29"},"nodeType":"YulFunctionCall","src":"17225:62:29"},"nodeType":"YulExpressionStatement","src":"17225:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17307:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17318:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17303:3:29"},"nodeType":"YulFunctionCall","src":"17303:18:29"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"17323:6:29","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17296:6:29"},"nodeType":"YulFunctionCall","src":"17296:34:29"},"nodeType":"YulExpressionStatement","src":"17296:34:29"},{"nodeType":"YulAssignment","src":"17339:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17351:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17362:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17347:3:29"},"nodeType":"YulFunctionCall","src":"17347:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17339:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17123:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17137:4:29","type":""}],"src":"16972:400:29"},{"body":{"nodeType":"YulBlock","src":"17551:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17568:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17579:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17561:6:29"},"nodeType":"YulFunctionCall","src":"17561:21:29"},"nodeType":"YulExpressionStatement","src":"17561:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17602:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17613:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17598:3:29"},"nodeType":"YulFunctionCall","src":"17598:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"17618:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17591:6:29"},"nodeType":"YulFunctionCall","src":"17591:30:29"},"nodeType":"YulExpressionStatement","src":"17591:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17641:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17652:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17637:3:29"},"nodeType":"YulFunctionCall","src":"17637:18:29"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"17657:34:29","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17630:6:29"},"nodeType":"YulFunctionCall","src":"17630:62:29"},"nodeType":"YulExpressionStatement","src":"17630:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17712:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17723:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17708:3:29"},"nodeType":"YulFunctionCall","src":"17708:18:29"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"17728:4:29","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17701:6:29"},"nodeType":"YulFunctionCall","src":"17701:32:29"},"nodeType":"YulExpressionStatement","src":"17701:32:29"},{"nodeType":"YulAssignment","src":"17742:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17754:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17765:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17750:3:29"},"nodeType":"YulFunctionCall","src":"17750:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17742:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17528:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17542:4:29","type":""}],"src":"17377:398:29"},{"body":{"nodeType":"YulBlock","src":"17954:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17971:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17982:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17964:6:29"},"nodeType":"YulFunctionCall","src":"17964:21:29"},"nodeType":"YulExpressionStatement","src":"17964:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18016:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18001:3:29"},"nodeType":"YulFunctionCall","src":"18001:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"18021:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17994:6:29"},"nodeType":"YulFunctionCall","src":"17994:30:29"},"nodeType":"YulExpressionStatement","src":"17994:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18044:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18055:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18040:3:29"},"nodeType":"YulFunctionCall","src":"18040:18:29"},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f53","kind":"string","nodeType":"YulLiteral","src":"18060:34:29","type":"","value":"NativeMetaTransaction: INVALID_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18033:6:29"},"nodeType":"YulFunctionCall","src":"18033:62:29"},"nodeType":"YulExpressionStatement","src":"18033:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18115:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18126:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18111:3:29"},"nodeType":"YulFunctionCall","src":"18111:18:29"},{"hexValue":"49474e4552","kind":"string","nodeType":"YulLiteral","src":"18131:7:29","type":"","value":"IGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18104:6:29"},"nodeType":"YulFunctionCall","src":"18104:35:29"},"nodeType":"YulExpressionStatement","src":"18104:35:29"},{"nodeType":"YulAssignment","src":"18148:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18160:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18171:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18156:3:29"},"nodeType":"YulFunctionCall","src":"18156:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18148:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17931:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17945:4:29","type":""}],"src":"17780:401:29"},{"body":{"nodeType":"YulBlock","src":"18234:77:29","statements":[{"nodeType":"YulAssignment","src":"18244:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18255:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"18258:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18251:3:29"},"nodeType":"YulFunctionCall","src":"18251:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18244:3:29"}]},{"body":{"nodeType":"YulBlock","src":"18283:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18285:16:29"},"nodeType":"YulFunctionCall","src":"18285:18:29"},"nodeType":"YulExpressionStatement","src":"18285:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18275:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"18278:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18272:2:29"},"nodeType":"YulFunctionCall","src":"18272:10:29"},"nodeType":"YulIf","src":"18269:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18217:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"18220:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18226:3:29","type":""}],"src":"18186:125:29"},{"body":{"nodeType":"YulBlock","src":"18490:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18507:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18518:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18500:6:29"},"nodeType":"YulFunctionCall","src":"18500:21:29"},"nodeType":"YulExpressionStatement","src":"18500:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18541:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18552:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18537:3:29"},"nodeType":"YulFunctionCall","src":"18537:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"18557:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18530:6:29"},"nodeType":"YulFunctionCall","src":"18530:30:29"},"nodeType":"YulExpressionStatement","src":"18530:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18580:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18591:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18576:3:29"},"nodeType":"YulFunctionCall","src":"18576:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"18596:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18569:6:29"},"nodeType":"YulFunctionCall","src":"18569:57:29"},"nodeType":"YulExpressionStatement","src":"18569:57:29"},{"nodeType":"YulAssignment","src":"18635:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18647:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18658:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18643:3:29"},"nodeType":"YulFunctionCall","src":"18643:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18635:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18467:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18481:4:29","type":""}],"src":"18316:351:29"},{"body":{"nodeType":"YulBlock","src":"18846:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18863:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18874:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18856:6:29"},"nodeType":"YulFunctionCall","src":"18856:21:29"},"nodeType":"YulExpressionStatement","src":"18856:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18897:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18908:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18893:3:29"},"nodeType":"YulFunctionCall","src":"18893:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"18913:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18886:6:29"},"nodeType":"YulFunctionCall","src":"18886:30:29"},"nodeType":"YulExpressionStatement","src":"18886:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18936:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18947:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18932:3:29"},"nodeType":"YulFunctionCall","src":"18932:18:29"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"18952:34:29","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18925:6:29"},"nodeType":"YulFunctionCall","src":"18925:62:29"},"nodeType":"YulExpressionStatement","src":"18925:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19007:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19018:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19003:3:29"},"nodeType":"YulFunctionCall","src":"19003:18:29"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"19023:7:29","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18996:6:29"},"nodeType":"YulFunctionCall","src":"18996:35:29"},"nodeType":"YulExpressionStatement","src":"18996:35:29"},{"nodeType":"YulAssignment","src":"19040:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19052:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19063:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19048:3:29"},"nodeType":"YulFunctionCall","src":"19048:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19040:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18823:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18837:4:29","type":""}],"src":"18672:401:29"},{"body":{"nodeType":"YulBlock","src":"19252:225:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19269:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19280:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19262:6:29"},"nodeType":"YulFunctionCall","src":"19262:21:29"},"nodeType":"YulExpressionStatement","src":"19262:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19303:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19314:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19299:3:29"},"nodeType":"YulFunctionCall","src":"19299:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"19319:2:29","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19292:6:29"},"nodeType":"YulFunctionCall","src":"19292:30:29"},"nodeType":"YulExpressionStatement","src":"19292:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19342:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19353:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19338:3:29"},"nodeType":"YulFunctionCall","src":"19338:18:29"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"19358:34:29","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19331:6:29"},"nodeType":"YulFunctionCall","src":"19331:62:29"},"nodeType":"YulExpressionStatement","src":"19331:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19413:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19424:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19409:3:29"},"nodeType":"YulFunctionCall","src":"19409:18:29"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"19429:5:29","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19402:6:29"},"nodeType":"YulFunctionCall","src":"19402:33:29"},"nodeType":"YulExpressionStatement","src":"19402:33:29"},{"nodeType":"YulAssignment","src":"19444:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19456:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19467:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19452:3:29"},"nodeType":"YulFunctionCall","src":"19452:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19444:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19229:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19243:4:29","type":""}],"src":"19078:399:29"},{"body":{"nodeType":"YulBlock","src":"19531:79:29","statements":[{"nodeType":"YulAssignment","src":"19541:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19553:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"19556:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19549:3:29"},"nodeType":"YulFunctionCall","src":"19549:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19541:4:29"}]},{"body":{"nodeType":"YulBlock","src":"19582:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19584:16:29"},"nodeType":"YulFunctionCall","src":"19584:18:29"},"nodeType":"YulExpressionStatement","src":"19584:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"19573:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"19579:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19570:2:29"},"nodeType":"YulFunctionCall","src":"19570:11:29"},"nodeType":"YulIf","src":"19567:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19513:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"19516:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19522:4:29","type":""}],"src":"19482:128:29"},{"body":{"nodeType":"YulBlock","src":"19789:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19806:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19817:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19799:6:29"},"nodeType":"YulFunctionCall","src":"19799:21:29"},"nodeType":"YulExpressionStatement","src":"19799:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19840:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19851:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19836:3:29"},"nodeType":"YulFunctionCall","src":"19836:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"19856:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19829:6:29"},"nodeType":"YulFunctionCall","src":"19829:30:29"},"nodeType":"YulExpressionStatement","src":"19829:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19879:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19890:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19875:3:29"},"nodeType":"YulFunctionCall","src":"19875:18:29"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nodeType":"YulLiteral","src":"19895:34:29","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19868:6:29"},"nodeType":"YulFunctionCall","src":"19868:62:29"},"nodeType":"YulExpressionStatement","src":"19868:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19950:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19961:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19946:3:29"},"nodeType":"YulFunctionCall","src":"19946:18:29"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"19966:3:29","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19939:6:29"},"nodeType":"YulFunctionCall","src":"19939:31:29"},"nodeType":"YulExpressionStatement","src":"19939:31:29"},{"nodeType":"YulAssignment","src":"19979:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19991:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20002:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19987:3:29"},"nodeType":"YulFunctionCall","src":"19987:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19979:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19766:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19780:4:29","type":""}],"src":"19615:397:29"},{"body":{"nodeType":"YulBlock","src":"20098:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"20131:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"20145:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"20155:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20149:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20176:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"20180:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20169:6:29"},"nodeType":"YulFunctionCall","src":"20169:17:29"},"nodeType":"YulExpressionStatement","src":"20169:17:29"},{"nodeType":"YulVariableDeclaration","src":"20199:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20221:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"20225:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"20211:9:29"},"nodeType":"YulFunctionCall","src":"20211:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"20203:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20243:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20266:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20276:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"20283:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"20295:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20279:3:29"},"nodeType":"YulFunctionCall","src":"20279:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20272:3:29"},"nodeType":"YulFunctionCall","src":"20272:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20262:3:29"},"nodeType":"YulFunctionCall","src":"20262:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"20247:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20337:23:29","statements":[{"nodeType":"YulAssignment","src":"20339:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"20354:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"20339:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"20319:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"20331:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20316:2:29"},"nodeType":"YulFunctionCall","src":"20316:20:29"},"nodeType":"YulIf","src":"20313:47:29"},{"nodeType":"YulVariableDeclaration","src":"20373:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20387:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20397:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"20404:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20409:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20400:3:29"},"nodeType":"YulFunctionCall","src":"20400:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20393:3:29"},"nodeType":"YulFunctionCall","src":"20393:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20383:3:29"},"nodeType":"YulFunctionCall","src":"20383:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"20377:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20427:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"20440:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"20431:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20525:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20534:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"20541:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"20527:6:29"},"nodeType":"YulFunctionCall","src":"20527:17:29"},"nodeType":"YulExpressionStatement","src":"20527:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20475:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"20482:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20472:2:29"},"nodeType":"YulFunctionCall","src":"20472:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"20486:26:29","statements":[{"nodeType":"YulAssignment","src":"20488:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20501:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"20508:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20497:3:29"},"nodeType":"YulFunctionCall","src":"20497:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"20488:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"20468:3:29","statements":[]},"src":"20464:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"20114:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20119:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20111:2:29"},"nodeType":"YulFunctionCall","src":"20111:11:29"},"nodeType":"YulIf","src":"20108:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"20070:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"20077:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"20082:10:29","type":""}],"src":"20017:545:29"},{"body":{"nodeType":"YulBlock","src":"20652:81:29","statements":[{"nodeType":"YulAssignment","src":"20662:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20677:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20695:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"20698:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20691:3:29"},"nodeType":"YulFunctionCall","src":"20691:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20708:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20704:3:29"},"nodeType":"YulFunctionCall","src":"20704:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20687:3:29"},"nodeType":"YulFunctionCall","src":"20687:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20683:3:29"},"nodeType":"YulFunctionCall","src":"20683:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20673:3:29"},"nodeType":"YulFunctionCall","src":"20673:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20719:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"20722:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20715:3:29"},"nodeType":"YulFunctionCall","src":"20715:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"20670:2:29"},"nodeType":"YulFunctionCall","src":"20670:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"20662:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"20629:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"20635:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"20643:4:29","type":""}],"src":"20567:166:29"},{"body":{"nodeType":"YulBlock","src":"20834:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"20844:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"20864:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20858:5:29"},"nodeType":"YulFunctionCall","src":"20858:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"20848:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20911:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20913:16:29"},"nodeType":"YulFunctionCall","src":"20913:18:29"},"nodeType":"YulExpressionStatement","src":"20913:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"20883:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"20891:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20880:2:29"},"nodeType":"YulFunctionCall","src":"20880:30:29"},"nodeType":"YulIf","src":"20877:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"20986:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"21024:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"21018:5:29"},"nodeType":"YulFunctionCall","src":"21018:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"20992:25:29"},"nodeType":"YulFunctionCall","src":"20992:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"21032:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"20942:43:29"},"nodeType":"YulFunctionCall","src":"20942:97:29"},"nodeType":"YulExpressionStatement","src":"20942:97:29"},{"nodeType":"YulVariableDeclaration","src":"21048:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21065:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"21052:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21075:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21094:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"21079:11:29","type":""}]},{"nodeType":"YulAssignment","src":"21107:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"21120:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"21107:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"21177:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21191:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"21210:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21222:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21218:3:29"},"nodeType":"YulFunctionCall","src":"21218:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21206:3:29"},"nodeType":"YulFunctionCall","src":"21206:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"21195:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21239:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"21283:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"21253:29:29"},"nodeType":"YulFunctionCall","src":"21253:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"21243:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21301:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21310:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21305:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21388:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21413:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21431:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"21436:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21427:3:29"},"nodeType":"YulFunctionCall","src":"21427:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21421:5:29"},"nodeType":"YulFunctionCall","src":"21421:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21406:6:29"},"nodeType":"YulFunctionCall","src":"21406:42:29"},"nodeType":"YulExpressionStatement","src":"21406:42:29"},{"nodeType":"YulAssignment","src":"21465:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21479:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"21487:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21475:3:29"},"nodeType":"YulFunctionCall","src":"21475:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21465:6:29"}]},{"nodeType":"YulAssignment","src":"21506:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"21523:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"21534:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21519:3:29"},"nodeType":"YulFunctionCall","src":"21519:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"21506:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21335:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"21338:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21332:2:29"},"nodeType":"YulFunctionCall","src":"21332:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21347:28:29","statements":[{"nodeType":"YulAssignment","src":"21349:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21358:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"21361:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21354:3:29"},"nodeType":"YulFunctionCall","src":"21354:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21349:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"21328:3:29","statements":[]},"src":"21324:236:29"},{"body":{"nodeType":"YulBlock","src":"21608:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21626:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21653:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"21658:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21649:3:29"},"nodeType":"YulFunctionCall","src":"21649:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21643:5:29"},"nodeType":"YulFunctionCall","src":"21643:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"21630:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21693:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"21705:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21732:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"21735:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21728:3:29"},"nodeType":"YulFunctionCall","src":"21728:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"21744:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21724:3:29"},"nodeType":"YulFunctionCall","src":"21724:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21754:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21750:3:29"},"nodeType":"YulFunctionCall","src":"21750:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"21720:3:29"},"nodeType":"YulFunctionCall","src":"21720:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21716:3:29"},"nodeType":"YulFunctionCall","src":"21716:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21701:3:29"},"nodeType":"YulFunctionCall","src":"21701:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21686:6:29"},"nodeType":"YulFunctionCall","src":"21686:74:29"},"nodeType":"YulExpressionStatement","src":"21686:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"21579:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"21588:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21576:2:29"},"nodeType":"YulFunctionCall","src":"21576:19:29"},"nodeType":"YulIf","src":"21573:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"21794:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21808:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"21811:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21804:3:29"},"nodeType":"YulFunctionCall","src":"21804:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"21820:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21800:3:29"},"nodeType":"YulFunctionCall","src":"21800:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21787:6:29"},"nodeType":"YulFunctionCall","src":"21787:36:29"},"nodeType":"YulExpressionStatement","src":"21787:36:29"}]},"nodeType":"YulCase","src":"21170:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21175:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"21850:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21864:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21877:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"21868:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21913:67:29","statements":[{"nodeType":"YulAssignment","src":"21931:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21950:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"21955:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21946:3:29"},"nodeType":"YulFunctionCall","src":"21946:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21940:5:29"},"nodeType":"YulFunctionCall","src":"21940:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"21931:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"21894:6:29"},"nodeType":"YulIf","src":"21891:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"22000:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22059:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"22066:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"22006:52:29"},"nodeType":"YulFunctionCall","src":"22006:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21993:6:29"},"nodeType":"YulFunctionCall","src":"21993:81:29"},"nodeType":"YulExpressionStatement","src":"21993:81:29"}]},"nodeType":"YulCase","src":"21842:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"21150:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"21158:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21147:2:29"},"nodeType":"YulFunctionCall","src":"21147:14:29"},"nodeType":"YulSwitch","src":"21140:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"20819:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"20825:3:29","type":""}],"src":"20738:1352:29"},{"body":{"nodeType":"YulBlock","src":"22308:276:29","statements":[{"nodeType":"YulAssignment","src":"22318:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22330:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22341:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22326:3:29"},"nodeType":"YulFunctionCall","src":"22326:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22318:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22361:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"22372:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22354:6:29"},"nodeType":"YulFunctionCall","src":"22354:25:29"},"nodeType":"YulExpressionStatement","src":"22354:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22399:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22410:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22395:3:29"},"nodeType":"YulFunctionCall","src":"22395:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"22415:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22388:6:29"},"nodeType":"YulFunctionCall","src":"22388:34:29"},"nodeType":"YulExpressionStatement","src":"22388:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22442:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22453:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22438:3:29"},"nodeType":"YulFunctionCall","src":"22438:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"22458:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22431:6:29"},"nodeType":"YulFunctionCall","src":"22431:34:29"},"nodeType":"YulExpressionStatement","src":"22431:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22485:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22496:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22481:3:29"},"nodeType":"YulFunctionCall","src":"22481:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"22505:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22521:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22526:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22517:3:29"},"nodeType":"YulFunctionCall","src":"22517:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"22530:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22513:3:29"},"nodeType":"YulFunctionCall","src":"22513:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22501:3:29"},"nodeType":"YulFunctionCall","src":"22501:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22474:6:29"},"nodeType":"YulFunctionCall","src":"22474:60:29"},"nodeType":"YulExpressionStatement","src":"22474:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22554:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22565:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22550:3:29"},"nodeType":"YulFunctionCall","src":"22550:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"22571:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22543:6:29"},"nodeType":"YulFunctionCall","src":"22543:35:29"},"nodeType":"YulExpressionStatement","src":"22543:35:29"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22245:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22256:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22264:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22272:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22280:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22288:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22299:4:29","type":""}],"src":"22095:489:29"},{"body":{"nodeType":"YulBlock","src":"22829:238:29","statements":[{"nodeType":"YulVariableDeclaration","src":"22839:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22859:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22853:5:29"},"nodeType":"YulFunctionCall","src":"22853:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"22843:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22914:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"22922:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22910:3:29"},"nodeType":"YulFunctionCall","src":"22910:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"22929:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"22934:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"22875:34:29"},"nodeType":"YulFunctionCall","src":"22875:66:29"},"nodeType":"YulExpressionStatement","src":"22875:66:29"},{"nodeType":"YulVariableDeclaration","src":"22950:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22967:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"22972:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22963:3:29"},"nodeType":"YulFunctionCall","src":"22963:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"22954:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"22995:5:29"},{"hexValue":"3a20494e53554646494349454e545f5045524d495353494f4e53","kind":"string","nodeType":"YulLiteral","src":"23002:28:29","type":"","value":": INSUFFICIENT_PERMISSIONS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22988:6:29"},"nodeType":"YulFunctionCall","src":"22988:43:29"},"nodeType":"YulExpressionStatement","src":"22988:43:29"},{"nodeType":"YulAssignment","src":"23040:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"23051:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"23058:2:29","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23047:3:29"},"nodeType":"YulFunctionCall","src":"23047:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23040:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22805:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22810:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22821:3:29","type":""}],"src":"22589:478:29"},{"body":{"nodeType":"YulBlock","src":"23257:232:29","statements":[{"nodeType":"YulAssignment","src":"23267:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23279:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23290:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23275:3:29"},"nodeType":"YulFunctionCall","src":"23275:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23267:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23310:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"23321:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23303:6:29"},"nodeType":"YulFunctionCall","src":"23303:25:29"},"nodeType":"YulExpressionStatement","src":"23303:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23348:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23359:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23344:3:29"},"nodeType":"YulFunctionCall","src":"23344:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"23364:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23337:6:29"},"nodeType":"YulFunctionCall","src":"23337:34:29"},"nodeType":"YulExpressionStatement","src":"23337:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23391:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23402:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23387:3:29"},"nodeType":"YulFunctionCall","src":"23387:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23411:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23427:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23432:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23423:3:29"},"nodeType":"YulFunctionCall","src":"23423:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"23436:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23419:3:29"},"nodeType":"YulFunctionCall","src":"23419:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23407:3:29"},"nodeType":"YulFunctionCall","src":"23407:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23380:6:29"},"nodeType":"YulFunctionCall","src":"23380:60:29"},"nodeType":"YulExpressionStatement","src":"23380:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23460:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23471:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23456:3:29"},"nodeType":"YulFunctionCall","src":"23456:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"23476:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23449:6:29"},"nodeType":"YulFunctionCall","src":"23449:34:29"},"nodeType":"YulExpressionStatement","src":"23449:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23202:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23213:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23221:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23229:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23237:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23248:4:29","type":""}],"src":"23072:417:29"},{"body":{"nodeType":"YulBlock","src":"23668:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23685:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23696:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23678:6:29"},"nodeType":"YulFunctionCall","src":"23678:21:29"},"nodeType":"YulExpressionStatement","src":"23678:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23719:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23730:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23715:3:29"},"nodeType":"YulFunctionCall","src":"23715:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"23735:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23708:6:29"},"nodeType":"YulFunctionCall","src":"23708:30:29"},"nodeType":"YulExpressionStatement","src":"23708:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23758:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23769:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23754:3:29"},"nodeType":"YulFunctionCall","src":"23754:18:29"},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e","kind":"string","nodeType":"YulLiteral","src":"23774:34:29","type":"","value":"EnumerableSet: index out of boun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23747:6:29"},"nodeType":"YulFunctionCall","src":"23747:62:29"},"nodeType":"YulExpressionStatement","src":"23747:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23829:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23840:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23825:3:29"},"nodeType":"YulFunctionCall","src":"23825:18:29"},{"hexValue":"6473","kind":"string","nodeType":"YulLiteral","src":"23845:4:29","type":"","value":"ds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23818:6:29"},"nodeType":"YulFunctionCall","src":"23818:32:29"},"nodeType":"YulExpressionStatement","src":"23818:32:29"},{"nodeType":"YulAssignment","src":"23859:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23871:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23882:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23867:3:29"},"nodeType":"YulFunctionCall","src":"23867:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23859:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23645:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23659:4:29","type":""}],"src":"23494:398:29"},{"body":{"nodeType":"YulBlock","src":"23929:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23946:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23953:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23958:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23949:3:29"},"nodeType":"YulFunctionCall","src":"23949:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23939:6:29"},"nodeType":"YulFunctionCall","src":"23939:31:29"},"nodeType":"YulExpressionStatement","src":"23939:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23986:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23989:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23979:6:29"},"nodeType":"YulFunctionCall","src":"23979:15:29"},"nodeType":"YulExpressionStatement","src":"23979:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24010:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24013:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24003:6:29"},"nodeType":"YulFunctionCall","src":"24003:15:29"},"nodeType":"YulExpressionStatement","src":"24003:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"23897:127:29"},{"body":{"nodeType":"YulBlock","src":"24061:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24078:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24085:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24090:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24081:3:29"},"nodeType":"YulFunctionCall","src":"24081:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24071:6:29"},"nodeType":"YulFunctionCall","src":"24071:31:29"},"nodeType":"YulExpressionStatement","src":"24071:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24118:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24121:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24111:6:29"},"nodeType":"YulFunctionCall","src":"24111:15:29"},"nodeType":"YulExpressionStatement","src":"24111:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24142:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24145:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24135:6:29"},"nodeType":"YulFunctionCall","src":"24135:15:29"},"nodeType":"YulExpressionStatement","src":"24135:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"24029:127:29"}]},"contents":"{\n { }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_boolt_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let value := calldataload(add(headStart, 128))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value4 := value\n value5 := abi_decode_uint8(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n value7 := calldataload(add(headStart, 224))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n value4 := abi_decode_uint8(add(headStart, 64))\n value5 := abi_decode_address(add(headStart, 96))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Signer and signature do not matc\")\n mstore(add(headStart, 96), \"h\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(end_1, 20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Function call not successful\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to grant\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n mstore(add(headStart, _1), length)\n let _2 := 64\n let _3 := 1\n switch and(slotValue, _3)\n case 0 {\n mstore(add(headStart, _2), and(slotValue, not(255)))\n ret := add(add(headStart, shl(5, iszero(iszero(length)))), _2)\n }\n case 1 {\n mstore(0, value0)\n let dataPos := keccak256(0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), _2), sload(dataPos))\n dataPos := add(dataPos, _3)\n }\n ret := add(add(headStart, i), _2)\n }\n tail := ret\n }\n function abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), iszero(iszero(value5)))\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"UChildDAI: INVALID-PERMIT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"UChildDAI: PERMIT-EXPIRED\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"UChildDAI: INVALID-NONCE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to revoke\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"already inited\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"Child\")\n calldatacopy(add(pos, 5), value0, value1)\n let _1 := add(add(pos, value1), 5)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"NativeMetaTransaction: INVALID_S\")\n mstore(add(headStart, 96), \"IGNER\")\n tail := add(headStart, 128)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n mstore(add(headStart, 96), \"s\")\n tail := add(headStart, 128)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, \": INSUFFICIENT_PERMISSIONS\")\n end := add(end_1, 26)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"EnumerableSet: index out of boun\")\n mstore(add(headStart, 96), \"ds\")\n tail := add(headStart, 128)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x230 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5353A2D8 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xCF2C52CB GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x6E5 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x705 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x725 JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x76B JUMPI DUP1 PUSH4 0xF2D5D56B EQ PUSH2 0x78B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x665 JUMPI DUP1 PUSH4 0xB753A98C EQ PUSH2 0x685 JUMPI DUP1 PUSH4 0xBB35783B EQ PUSH2 0x6A5 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x55A JUMPI DUP1 PUSH4 0x8FCBAF0C EQ PUSH2 0x56F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x180 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x45A JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x203 JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x2BD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x7AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x83D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x24A PUSH2 0x2CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1F85 JUMP JUMPDEST PUSH2 0x85B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x399 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x3C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0xAD1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x421 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xAE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4AA CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xB75 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xBFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xC4D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x50A CALLDATASIZE PUSH1 0x4 PUSH2 0x2150 JUMP JUMPDEST PUSH2 0xD2C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x566 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x2192 JUMP JUMPDEST PUSH2 0xDF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5AF PUSH2 0x5AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2214 JUMP JUMPDEST PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x5E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x1087 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x109F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x660 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x10AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x680 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x112A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x6E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0x1146 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x700 CALLDATASIZE PUSH1 0x4 PUSH2 0x2236 JUMP JUMPDEST PUSH2 0x115D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x711 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x720 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x11CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x740 CALLDATASIZE PUSH1 0x4 PUSH2 0x2289 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x786 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B3 JUMP JUMPDEST PUSH2 0x124F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x7A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 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 0x7E6 SWAP1 PUSH2 0x2343 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x833 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x808 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x833 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x816 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x84A PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x899 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x1532 JUMP JUMPDEST PUSH2 0x8F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x918 SWAP1 PUSH1 0x1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x968 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x237D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP3 SWAP2 SWAP1 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x9AA SWAP2 PUSH2 0x23E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9E7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA3E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA57 DUP5 DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xAC7 DUP5 PUSH2 0xA63 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2753 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0xAA1 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAE2 PUSH2 0xADC PUSH2 0x13FE JUMP JUMPDEST DUP3 PUSH2 0x183E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xB03 SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x1942 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB7D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x19AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0xC0C PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xC1D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xCB0 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCD6 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xD5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH2 0xD9A DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1A20 SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE02 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP14 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP11 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP9 SWAP1 MSTORE DUP7 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE9C SWAP3 SWAP2 SWAP1 PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP5 MSTORE SWAP1 DUP4 ADD DUP1 DUP4 MSTORE DUP2 SWAP1 MSTORE PUSH1 0xFF DUP8 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D5045524D495400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST DUP6 ISZERO DUP1 PUSH2 0xF7B JUMPI POP DUP6 TIMESTAMP GT ISZERO JUMPDEST PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A205045524D49542D4558504952454400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xFEB DUP4 PUSH2 0x249D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE DUP8 EQ PUSH2 0x103D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D4E4F4E43450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH2 0x104B JUMPI PUSH1 0x0 PUSH2 0x104F JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST SWAP1 POP PUSH2 0x105C DUP11 DUP11 DUP4 PUSH2 0x140D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AB3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x10BB PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x10E5 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x1123 PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xDF2 CALLER DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH2 0x1140 DUP4 DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x855 SWAP1 PUSH2 0x1AD5 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0x118A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x11AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x11B9 DUP4 DUP6 ADD DUP6 PUSH2 0x20A7 JUMP JUMPDEST SWAP1 POP PUSH2 0x11C5 DUP6 DUP3 PUSH2 0xC4D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x11EA SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x12D2 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1311 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1ADF SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0x134A DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1336 SWAP3 SWAP2 SWAP1 PUSH2 0x24B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1AEB JUMP JUMPDEST PUSH2 0x135C PUSH1 0x0 PUSH2 0x1357 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x1386 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x13DE 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1B19 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP3 CALLER DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH2 0x1B78 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x146F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1598 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH2 0x15AB PUSH2 0x15A6 DUP8 PUSH2 0x1BD4 JUMP JUMPDEST PUSH2 0x1C51 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x162F DUP4 DUP6 PUSH2 0x24D7 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x16E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1784 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x272D PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x17B3 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x1525 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x1828 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1835 DUP5 DUP7 PUSH2 0x24EA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x189E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x18DB DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2679 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x1901 SWAP1 DUP3 PUSH2 0x1C81 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x195A SWAP1 DUP3 PUSH2 0x1CC3 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x1967 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19C3 SWAP1 DUP3 PUSH2 0x1CD8 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x19D0 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x26DE PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x1A58 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH2 0x1CED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1080 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x855 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AFC SWAP2 SWAP1 PUSH2 0x260B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B5D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1B67 DUP3 DUP3 PUSH2 0x1A20 JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x1BD1 SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x269B PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x1C34 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5C PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x1C34 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1DC2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x1D4B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1D60 JUMPI PUSH2 0x1D60 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1DBA JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x855 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x0 PUSH2 0x1DE6 PUSH1 0x1 DUP4 PUSH2 0x24EA JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DFA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x24EA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1E13 JUMPI PUSH2 0x1E13 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1E36 JUMPI PUSH2 0x1E36 PUSH2 0x264C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1E4D DUP4 PUSH1 0x1 PUSH2 0x24D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1E6F JUMPI PUSH2 0x1E6F PUSH2 0x2662 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ED0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB8 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EF1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1080 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F50 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FA6 DUP7 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1FC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1FE9 JUMPI PUSH2 0x1FE9 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2011 JUMPI PUSH2 0x2011 PUSH2 0x1F5E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x202A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x205F PUSH1 0x80 DUP8 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2089 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH2 0x2097 PUSH1 0x20 DUP6 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1080 DUP3 PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2186 DUP6 DUP3 DUP7 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x21AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21B8 DUP10 PUSH2 0x1F18 JUMP JUMPDEST SWAP8 POP PUSH2 0x21C6 PUSH1 0x20 DUP11 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x21E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 POP PUSH2 0x21F7 PUSH1 0xA0 DUP11 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP3 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xE0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x224B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2254 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x227C DUP7 DUP3 DUP8 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A5 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x22E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F0 DUP11 DUP4 DUP12 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2316 DUP10 DUP3 DUP11 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x2329 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP2 POP PUSH2 0x2337 PUSH1 0x60 DUP9 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2357 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2377 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1835 SWAP1 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x23BB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x23F2 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x2410 DUP2 PUSH2 0x2343 JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2431 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x244B JUMPI PUSH2 0x2479 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2479 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2471 JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2456 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x24AF JUMPI PUSH2 0x24AF PUSH2 0x2487 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xDF2 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2524 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2543 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2530 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2565 JUMPI PUSH2 0x2565 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x2579 DUP2 PUSH2 0x2573 DUP5 SLOAD PUSH2 0x2343 JUMP JUMPDEST DUP5 PUSH2 0x24FD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x25AE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2596 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2543 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x25DD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x25BE JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x25FB JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x261D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 SIGNEXTEND 0x28 DUP2 EXTCODECOPY DUP10 DUP12 SDIV DUP14 0xB9 SELFBALANCE 0xDE NOT PUSH26 0x48E4A016DE2D4EB44C0A299D2131490F4DBA2564736F6C634300 ADDMOD EQ STOP CALLER ","sourceMap":"50794:1672:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19508:166;;;;;;;;;;-1:-1:-1;19508:166:27;;;;;:::i;:::-;;:::i;:::-;;;1372:14:29;;1365:22;1347:41;;1335:2;1320:18;19508:166:27;1207:187:29;47515:52:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47515:52:27;;;;;45105:1117;;;;;;:::i;:::-;;:::i;47407:51::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47407:51:27;;;;;47310:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47310:43:27;;;;;18515:98;;;;;;;;;;-1:-1:-1;18594:12:27;;18515:98;;;3269:25:29;;;3257:2;3242:18;18515:98:27;3123:177:29;43354:99:27;;;;;;;;;;-1:-1:-1;43431:15:27;;43354:99;;20134:330;;;;;;;;;;-1:-1:-1;20134:330:27;;;;;:::i;:::-;;:::i;38118:112::-;;;;;;;;;;-1:-1:-1;38118:112:27;;;;;:::i;:::-;38175:7;38201:12;;;:6;:12;;;;;:22;;;;38118:112;46630:105;;;;;;;;;;-1:-1:-1;46630:105:27;;;;;:::i;:::-;-1:-1:-1;;;;;46716:12:27;46683:13;46716:12;;;:6;:12;;;;;;;46630:105;50614:87;;;;;;;;;;-1:-1:-1;50614:87:27;;;;;:::i;:::-;;:::i;:::-;;38480:223;;;;;;;;;;-1:-1:-1;38480:223:27;;;;;:::i;:::-;;:::i;50990:108::-;;;;;;;;;;-1:-1:-1;50990:108:27;51032:66;50990:108;;18281:81;;;;;;;;;;-1:-1:-1;18346:9:27;;18281:81;;18346:9;;;;4782:36:29;;4770:2;4755:18;18281:81:27;4640:184:29;43459:155:27;;;;;;;;;;-1:-1:-1;43570:9:27;43459:155;;39654:205;;;;;;;;;;-1:-1:-1;39654:205:27;;;;;:::i;:::-;;:::i;20859:215::-;;;;;;;;;;-1:-1:-1;20859:215:27;;;;;:::i;:::-;;:::i;23115:369::-;;;;;;;;;;-1:-1:-1;23115:369:27;;;;;:::i;:::-;;:::i;49612:160::-;;;;;;;;;;-1:-1:-1;49612:160:27;;;;;:::i;:::-;;:::i;47465:44::-;;;;;;;;;;;;47506:3;47465:44;;18671:117;;;;;;;;;;-1:-1:-1;18671:117:27;;;;;:::i;:::-;-1:-1:-1;;;;;18763:18:27;18737:7;18763:18;;;;;;;;;;;;18671:117;47360:41;;;;;;;;;;;;47400:1;47360:41;;51475:989;;;;;;;;;;-1:-1:-1;51475:989:27;;;;;:::i;:::-;;:::i;37801:136::-;;;;;;;;;;-1:-1:-1;37801:136:27;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;6788:32:29;;;6770:51;;6758:2;6743:18;37801:136:27;6624:203:29;36798:137:27;;;;;;;;;;-1:-1:-1;36798:137:27;;;;;:::i;:::-;;:::i;17480:85::-;;;;;;;;;;;;;:::i;35575:49::-;;;;;;;;;;-1:-1:-1;35575:49:27;35620:4;35575:49;;48562:68;;;;;;;;;;;;48603:27;48562:68;;21561:279;;;;;;;;;;-1:-1:-1;21561:279:27;;;;;:::i;:::-;;:::i;18991:172::-;;;;;;;;;;-1:-1:-1;18991:172:27;;;;;:::i;:::-;;:::i;51126:97::-;;;;;;;;;;-1:-1:-1;51126:97:27;;;;;:::i;:::-;;:::i;51330:103::-;;;;;;;;;;-1:-1:-1;51330:103:27;;;;;:::i;:::-;;:::i;37103:125::-;;;;;;;;;;-1:-1:-1;37103:125:27;;;;;:::i;:::-;;:::i;50143:223::-;;;;;;;;;;-1:-1:-1;50143:223:27;;;;;:::i;:::-;;:::i;38937:226::-;;;;;;;;;;-1:-1:-1;38937:226:27;;;;;:::i;:::-;;:::i;19221:149::-;;;;;;;;;;-1:-1:-1;19221:149:27;;;;;:::i;:::-;-1:-1:-1;;;;;19336:18:27;;;19310:7;19336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19221:149;48827:497;;;;;;;;;;-1:-1:-1;48827:497:27;;;;;:::i;:::-;;:::i;51228:97::-;;;;;;;;;;-1:-1:-1;51228:97:27;;;;;:::i;:::-;;:::i;17201:81::-;17238:13;17270:5;17263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;:::o;19508:166::-;19591:4;19607:39;19616:12;:10;:12::i;:::-;19630:7;19639:6;19607:8;:39::i;:::-;-1:-1:-1;19663:4:27;19508:166;;;;;:::o;45105:1117::-;45356:148;;;45300:12;45356:148;;;;;-1:-1:-1;;;;;45393:19:27;;45324:29;45393:19;;;:6;:19;;;;;;;;;45356:148;;;;;;;;;;;45536:45;45400:11;45356:148;45564:4;45570;45576;45536:6;:45::i;:::-;45515:125;;;;-1:-1:-1;;;45515:125:27;;9044:2:29;45515:125:27;;;9026:21:29;9083:2;9063:18;;;9056:30;9122:34;9102:18;;;9095:62;-1:-1:-1;;;9173:18:29;;;9166:31;9214:19;;45515:125:27;;;;;;;;;-1:-1:-1;;;;;45726:19:27;;;;;;:6;:19;;;;;;:26;;45750:1;45726:23;:26::i;:::-;-1:-1:-1;;;;;45704:19:27;;;;;;:6;:19;;;;;;;:48;;;;45768:122;;;;;45711:11;;45838:10;;45863:17;;45768:122;:::i;:::-;;;;;;;;45998:12;46012:23;46047:4;-1:-1:-1;;;;;46039:18:27;46088:17;46107:11;46071:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;46071:48:27;;;;;;;;;;46039:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45997:132;;;;46147:7;46139:48;;;;-1:-1:-1;;;46139:48:27;;10608:2:29;46139:48:27;;;10590:21:29;10647:2;10627:18;;;10620:30;10686;10666:18;;;10659:58;10734:18;;46139:48:27;10406:352:29;46139:48:27;46205:10;45105:1117;-1:-1:-1;;;;;;;;45105:1117:27:o;20134:330::-;20240:4;20256:36;20266:6;20274:9;20285:6;20256:9;:36::i;:::-;20302:134;20311:6;20319:12;:10;:12::i;:::-;20333:102;20371:6;20333:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20333:19:27;;;;;;:11;:19;;;;;;20353:12;:10;:12::i;:::-;-1:-1:-1;;;;;20333:33:27;;;;;;;;;;;;-1:-1:-1;20333:33:27;;;:102;:37;:102::i;:::-;20302:8;:134::i;:::-;-1:-1:-1;20453:4:27;20134:330;;;;;:::o;50614:87::-;50667:27;50673:12;:10;:12::i;:::-;50687:6;50667:5;:27::i;:::-;50614:87;:::o;38480:223::-;38571:12;;;;:6;:12;;;;;:22;;;38563:45;;38595:12;:10;:12::i;38563:45::-;38555:105;;;;-1:-1:-1;;;38555:105:27;;10965:2:29;38555:105:27;;;10947:21:29;11004:2;10984:18;;;10977:30;11043:34;11023:18;;;11016:62;-1:-1:-1;;;11094:18:29;;;11087:45;11149:19;;38555:105:27;10763:411:29;38555:105:27;38671:25;38682:4;38688:7;38671:10;:25::i;:::-;38480:223;;:::o;39654:205::-;39751:12;:10;:12::i;:::-;-1:-1:-1;;;;;39740:23:27;:7;-1:-1:-1;;;;;39740:23:27;;39732:83;;;;-1:-1:-1;;;39732:83:27;;11381:2:29;39732:83:27;;;11363:21:29;11420:2;11400:18;;;11393:30;11459:34;11439:18;;;11432:62;-1:-1:-1;;;11510:18:29;;;11503:45;11565:19;;39732:83:27;11179:411:29;39732:83:27;39826:26;39838:4;39844:7;39826:11;:26::i;20859:215::-;20947:4;20963:83;20972:12;:10;:12::i;:::-;20986:7;20995:50;21034:10;20995:11;:25;21007:12;:10;:12::i;:::-;-1:-1:-1;;;;;20995:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;20995:25:27;;;:34;;;;;;;;;;;:38;:50::i;23115:369::-;-1:-1:-1;;;;;23197:21:27;;23189:65;;;;-1:-1:-1;;;23189:65:27;;11797:2:29;23189:65:27;;;11779:21:29;11836:2;11816:18;;;11809:30;11875:33;11855:18;;;11848:61;11926:18;;23189:65:27;11595:355:29;23189:65:27;23340:12;;:24;;23357:6;23340:16;:24::i;:::-;23325:12;:39;-1:-1:-1;;;;;23395:18:27;;:9;:18;;;;;;;;;;;:30;;23418:6;23395:22;:30::i;:::-;-1:-1:-1;;;;;23374:18:27;;:9;:18;;;;;;;;;;;:51;;;;23440:37;;3269:25:29;;;23374:18:27;;:9;;23440:37;;3242:18:29;23440:37:27;;;;;;;;23115:369;;:::o;49612:160::-;35620:4;41624:27;35620:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;;49699:14:::1;49707:5;;49699:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49699:7:27::1;::::0;-1:-1:-1;;;49699:14:27:i:1;:::-;49723:42;49743:5;;49723:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49750:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49750:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49723:19:27::1;::::0;-1:-1:-1;49723:42:27:i:1;:::-;49612:160:::0;;;:::o;51475:989::-;51689:14;51791:20;43431:15;;;43354:99;51791:20;51860:234;;;51032:66;51860:234;;;13330:25:29;-1:-1:-1;;;;;13429:15:29;;;13409:18;;;13402:43;;;;13481:15;;;13461:18;;;13454:43;13513:18;;;13506:34;;;13556:19;;;13549:35;;;13628:14;;13621:22;13600:19;;;13593:51;13302:19;;51860:234:27;;;;;;;;;;;;51829:283;;;;;;51729:393;;;;;;;;-1:-1:-1;;;13913:27:29;;13965:1;13956:11;;13949:27;;;;14001:2;13992:12;;13985:28;14038:2;14029:12;;13655:392;51729:393:27;;;;-1:-1:-1;;51729:393:27;;;;;;;;;51706:417;;51729:393;51706:417;;;;52152:26;;;;;;;;;14279:25:29;;;14352:4;14340:17;;14320:18;;;14313:45;;;;14374:18;;;14367:34;;;14417:18;;;14410:34;;;51706:417:27;-1:-1:-1;52152:26:27;;14251:19:29;;52152:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;52142:36:27;:6;-1:-1:-1;;;;;52142:36:27;;52134:74;;;;-1:-1:-1;;;52134:74:27;;14657:2:29;52134:74:27;;;14639:21:29;14696:2;14676:18;;;14669:30;14735:27;14715:18;;;14708:55;14780:18;;52134:74:27;14455:349:29;52134:74:27;52226:11;;;:40;;;52260:6;52241:15;:25;;52226:40;52218:78;;;;-1:-1:-1;;;52218:78:27;;15011:2:29;52218:78:27;;;14993:21:29;15050:2;15030:18;;;15023:30;15089:27;15069:18;;;15062:55;15134:18;;52218:78:27;14809:349:29;52218:78:27;-1:-1:-1;;;;;52323:14:27;;;;;;:6;:14;;;;;:16;;;;;;:::i;:::-;;;;;52314:5;:25;52306:62;;;;-1:-1:-1;;;52306:62:27;;15637:2:29;52306:62:27;;;15619:21:29;15676:2;15656:18;;;15649:30;15715:26;15695:18;;;15688:54;15759:18;;52306:62:27;15435:348:29;52306:62:27;52378:8;52389:7;:28;;52416:1;52389:28;;;-1:-1:-1;;52389:28:27;52378:39;;52427:30;52436:6;52444:7;52453:3;52427:8;:30::i;:::-;51679:785;;51475:989;;;;;;;;:::o;37801:136::-;37874:7;37900:12;;;:6;:12;;;;;:30;;37924:5;37900:23;:30::i;:::-;37893:37;37801:136;-1:-1:-1;;;37801:136:27:o;36798:137::-;36867:4;36890:12;;;:6;:12;;;;;:38;;36920:7;36890:29;:38::i;17480:85::-;17519:13;17551:7;17544:14;;;;;:::i;21561:279::-;21654:4;21670:142;21679:12;:10;:12::i;:::-;21693:7;21702:109;21741:15;21702:109;;;;;;;;;;;;;;;;;:11;:25;21714:12;:10;:12::i;:::-;-1:-1:-1;;;;;21702:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;21702:25:27;;;:34;;;;;;;;;;;:109;:38;:109::i;18991:172::-;19077:4;19093:42;19103:12;:10;:12::i;:::-;19117:9;19128:6;19093:9;:42::i;51126:97::-;51182:34;51195:10;51207:3;51212;51182:12;:34::i;51330:103::-;51399:27;51412:3;51417;51422;51399:12;:27::i;:::-;;51330:103;;;:::o;37103:125::-;37166:7;37192:12;;;:6;:12;;;;;:29;;:27;:29::i;50143:223::-;48603:27;41624;41632:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;-1:-1:-1;50279:14:27::1;50296:34;::::0;;::::1;50307:11:::0;50296:34:::1;:::i;:::-;50279:51;;50340:19;50346:4;50352:6;50340:5;:19::i;:::-;50269:97;50143:223:::0;;;;:::o;38937:226::-;39029:12;;;;:6;:12;;;;;:22;;;39021:45;;39053:12;:10;:12::i;39021:45::-;39013:106;;;;-1:-1:-1;;;39013:106:27;;15990:2:29;39013:106:27;;;15972:21:29;16029:2;16009:18;;;16002:30;16068:34;16048:18;;;16041:62;-1:-1:-1;;;16119:18:29;;;16112:46;16175:19;;39013:106:27;15788:412:29;48827:497:27;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;16407:2:29;42045:34:27;;;16389:21:29;16446:2;16426:18;;;16419:30;-1:-1:-1;;;16465:18:29;;;16458:44;16519:18;;42045:34:27;16205:338:29;42045:34:27;49026:14:::1;49034:5;;49026:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49026:7:27::1;::::0;-1:-1:-1;;;49026:14:27:i:1;:::-;49048:18;49058:7;;49048:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49048:9:27::1;::::0;-1:-1:-1;;;49048:18:27:i:1;:::-;18425:9:::0;:23;;-1:-1:-1;;18425:23:27;;;;;;;49104:60:::1;49154:7;;49128:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;49104:16;:60::i;:::-;49172:44;35620:4;49203:12;:10;:12::i;:::-;49172:10;:44::i;:::-;49224:45;48603:27;49251:17;49224:10;:45::i;:::-;49277:40;49295:5;;49277:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49302:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49302:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49277:17:27::1;::::0;-1:-1:-1;49277:40:27:i:1;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;-1:-1:-1;;;;48827:497:27:o;51228:97::-;51284:34;51297:3;51302:10;51314:3;51284:12;:34::i;49444:162::-;49530:22;49575:24;:22;:24::i;:::-;49568:31;;49444:162;:::o;24638:340::-;-1:-1:-1;;;;;24739:19:27;;24731:68;;;;-1:-1:-1;;;24731:68:27;;17174:2:29;24731:68:27;;;17156:21:29;17213:2;17193:18;;;17186:30;17252:34;17232:18;;;17225:62;-1:-1:-1;;;17303:18:29;;;17296:34;17347:19;;24731:68:27;16972:400:29;24731:68:27;-1:-1:-1;;;;;24817:21:27;;24809:68;;;;-1:-1:-1;;;24809:68:27;;17579:2:29;24809:68:27;;;17561:21:29;17618:2;17598:18;;;17591:30;17657:34;17637:18;;;17630:62;-1:-1:-1;;;17708:18:29;;;17701:32;17750:19;;24809:68:27;17377:398:29;24809:68:27;-1:-1:-1;;;;;24888:18:27;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24939:32;;3269:25:29;;;24939:32:27;;3242:18:29;24939:32:27;;;;;;;;24638:340;;;:::o;46741:470::-;46913:4;-1:-1:-1;;;;;46937:20:27;;46929:70;;;;-1:-1:-1;;;46929:70:27;;17982:2:29;46929:70:27;;;17964:21:29;18021:2;18001:18;;;17994:30;18060:34;18040:18;;;18033:62;-1:-1:-1;;;18111:18:29;;;18104:35;18156:19;;46929:70:27;17780:401:29;46929:70:27;47050:154;47077:47;47096:27;47116:6;47096:19;:27::i;:::-;47077:18;:47::i;:::-;47050:154;;;;;;;;;;;;14279:25:29;;;;14352:4;14340:17;;14320:18;;;14313:45;14374:18;;;14367:34;;;14417:18;;;14410:34;;;14251:19;;47050:154:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47028:176:27;:6;-1:-1:-1;;;;;47028:176:27;;47009:195;;46741:470;;;;;;;:::o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;18518:2:29;4705:46:27;;;18500:21:29;18557:2;18537:18;;;18530:30;18596:29;18576:18;;;18569:57;18643:18;;4705:46:27;18316:351:29;22314:530:27;-1:-1:-1;;;;;22419:20:27;;22411:70;;;;-1:-1:-1;;;22411:70:27;;18874:2:29;22411:70:27;;;18856:21:29;18913:2;18893:18;;;18886:30;18952:34;18932:18;;;18925:62;-1:-1:-1;;;19003:18:29;;;18996:35;19048:19;;22411:70:27;18672:401:29;22411:70:27;-1:-1:-1;;;;;22499:23:27;;22491:71;;;;-1:-1:-1;;;22491:71:27;;19280:2:29;22491:71:27;;;19262:21:29;19319:2;19299:18;;;19292:30;19358:34;19338:18;;;19331:62;-1:-1:-1;;;19409:18:29;;;19402:33;19452:19;;22491:71:27;19078:399:29;22491:71:27;22651;22673:6;22651:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22651:17:27;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22631:17:27;;;:9;:17;;;;;;;;;;;:91;;;;22755:20;;;;;;;:32;;22780:6;22755:24;:32::i;:::-;-1:-1:-1;;;;;22732:20:27;;;:9;:20;;;;;;;;;;;;:55;;;;22802:35;3269:25:29;;;22732:20:27;;22802:35;;;;;;3242:18:29;22802:35:27;3123:177:29;5473:187:27;5559:7;5594:12;5586:6;;;;5578:29;;;;-1:-1:-1;;;5578:29:27;;;;;;;;:::i;:::-;-1:-1:-1;5617:9:27;5629:5;5633:1;5629;:5;:::i;:::-;5617:17;5473:187;-1:-1:-1;;;;;5473:187:27:o;23803:410::-;-1:-1:-1;;;;;23886:21:27;;23878:67;;;;-1:-1:-1;;;23878:67:27;;19817:2:29;23878:67:27;;;19799:21:29;19856:2;19836:18;;;19829:30;19895:34;19875:18;;;19868:62;-1:-1:-1;;;19946:18:29;;;19939:31;19987:19;;23878:67:27;19615:397:29;23878:67:27;24037:68;24060:6;24037:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24037:18:27;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;24016:18:27;;:9;:18;;;;;;;;;;:89;24130:12;;:24;;24147:6;24130:16;:24::i;:::-;24115:12;:39;24169:37;;3269:25:29;;;24195:1:27;;-1:-1:-1;;;;;24169:37:27;;;;;3257:2:29;3242:18;24169:37:27;3123:177:29;40861:184:27;40934:12;;;;:6;:12;;;;;:33;;40959:7;40934:24;:33::i;:::-;40930:109;;;41015:12;:10;:12::i;:::-;-1:-1:-1;;;;;40988:40:27;41006:7;-1:-1:-1;;;;;40988:40:27;41000:4;40988:40;;;;;;;;;;40861:184;;:::o;41051:188::-;41125:12;;;;:6;:12;;;;;:36;;41153:7;41125:27;:36::i;:::-;41121:112;;;41209:12;:10;:12::i;:::-;-1:-1:-1;;;;;41182:40:27;41200:7;-1:-1:-1;;;;;41182:40:27;41194:4;41182:40;;;;;;;;;;41051:188;;:::o;17288:79::-;17345:5;:15;17353:7;17345:5;:15;:::i;42982:366::-;42441:110;;;;;;;;;;;;;;;;;42422:135;;;;;;43198:4;43182:22;;;;;;43238:7;43222:25;;;;;;43273:4;43304:12;43570:9;;43459:155;43304:12;43114:217;;;;;;22354:25:29;;;;22395:18;;22388:34;;;;22438:18;;;22431:34;;;;-1:-1:-1;;;;;22501:32:29;22481:18;;;22474:60;22550:19;;;22543:35;22326:19;;43114:217:27;;;-1:-1:-1;;43114:217:27;;;;;;;;;43091:250;;43114:217;43091:250;;;;43073:15;:268;-1:-1:-1;;42982:366:27:o;32212:156::-;32286:7;32336:22;32340:3;32352:5;32336:3;:22::i;31519:165::-;-1:-1:-1;;;;;31652:23:27;;31599:4;29972:19;;;:12;;;:19;;;;;;:24;;31622:55;29876:127;31765:115;31828:7;31854:19;31862:3;30166:18;;30084:107;17571:87;17632:7;:19;17642:9;17632:7;:19;:::i;41402:157::-;41510:10;41493:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;41473:10;:79;;;;;;:::i;42792:184::-;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;16407:2:29;42045:34:27;;;16389:21:29;16446:2;16426:18;;;16419:30;-1:-1:-1;;;16465:18:29;;;16458:44;16519:18;;42045:34:27;16205:338:29;42045:34:27;42935::::1;42955:4;42961:7;42935:19;:34::i;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;42792:184::o;47679:631::-;47747:22;47811:4;47789:10;:27;47785:496;;47832:18;47853:8;;47832:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;47891:8:27;48098:17;48092:24;-1:-1:-1;;;;;48067:131:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;48259:10:27;47785:496;47679:631;:::o;46228:396::-;46335:7;44463:98;;;;;;;;;;;;;;;;;44444:123;;;;;;;46483:12;;46517:11;;;;46560:24;;;;;46550:35;;;;;;46404:199;;;;;23303:25:29;;;23359:2;23344:18;;23337:34;;;;-1:-1:-1;;;;;23407:32:29;23402:2;23387:18;;23380:60;23471:2;23456:18;;23449:34;23290:3;23275:19;;23072:417;46404:199:27;;;;;;;;;;;;;46377:240;;;;;;46358:259;;46228:396;;;:::o;43974:249::-;44070:7;44168:20;43431:15;;;43354:99;44168:20;44139:63;;-1:-1:-1;;;44139:63:27;;;13913:27:29;13956:11;;;13949:27;;;;13992:12;;;13985:28;;;14029:12;;44139:63:27;13655:392:29;5048:134:27;5106:7;5132:43;5136:1;5139;5132:43;;;;;;;;;;;;;;;;;:3;:43::i;30964:150::-;31034:4;31057:50;31062:3;-1:-1:-1;;;;;31082:23:27;;31057:4;:50::i;31282:156::-;31355:4;31378:53;31386:3;-1:-1:-1;;;;;31406:23:27;;31378:7;:53::i;30523:201::-;30617:18;;30590:7;;30617:26;-1:-1:-1;30609:73:27;;;;-1:-1:-1;;;30609:73:27;;23696:2:29;30609:73:27;;;23678:21:29;23735:2;23715:18;;;23708:30;23774:34;23754:18;;;23747:62;-1:-1:-1;;;23825:18:29;;;23818:32;23867:19;;30609:73:27;23494:398:29;30609:73:27;30699:3;:11;;30711:5;30699:18;;;;;;;;:::i;:::-;;;;;;;;;30692:25;;30523:201;;;;:::o;27711:404::-;27774:4;29972:19;;;:12;;;:19;;;;;;27790:319;;-1:-1:-1;27832:23:27;;;;;;;;:11;:23;;;;;;;;;;;;;28012:18;;27990:19;;;:12;;;:19;;;;;;:40;;;;28044:11;;27790:319;-1:-1:-1;28093:5:27;28086:12;;28283:1512;28349:4;28486:19;;;:12;;;:19;;;;;;28520:15;;28516:1273;;28877:21;28901:14;28914:1;28901:10;:14;:::i;:::-;28949:18;;28877:38;;-1:-1:-1;28929:17:27;;28949:22;;28970:1;;28949:22;:::i;:::-;28929:42;;29211:17;29231:3;:11;;29243:9;29231:22;;;;;;;;:::i;:::-;;;;;;;;;29211:42;;29374:9;29345:3;:11;;29357:13;29345:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;29475:17;:13;29491:1;29475:17;:::i;:::-;29449:23;;;;:12;;;:23;;;;;:43;29598:17;;29449:3;;29598:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29690:3;:12;;:19;29703:5;29690:19;;;;;;;;;;;29683:26;;;29731:4;29724:11;;;;;;;;28516:1273;29773:5;29766:12;;;;;14:250:29;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:29;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:29;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:29:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:173::-;838:20;;-1:-1:-1;;;;;887:31:29;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:29:o;1622:127::-;1683:10;1678:3;1674:20;1671:1;1664:31;1714:4;1711:1;1704:15;1738:4;1735:1;1728:15;1754:156;1820:20;;1880:4;1869:16;;1859:27;;1849:55;;1900:1;1897;1890:12;1915:1203;2017:6;2025;2033;2041;2049;2102:3;2090:9;2081:7;2077:23;2073:33;2070:53;;;2119:1;2116;2109:12;2070:53;2142:29;2161:9;2142:29;:::i;:::-;2132:39;;2222:2;2211:9;2207:18;2194:32;2245:18;2286:2;2278:6;2275:14;2272:34;;;2302:1;2299;2292:12;2272:34;2340:6;2329:9;2325:22;2315:32;;2385:7;2378:4;2374:2;2370:13;2366:27;2356:55;;2407:1;2404;2397:12;2356:55;2443:2;2430:16;2465:2;2461;2458:10;2455:36;;;2471:18;;:::i;:::-;2546:2;2540:9;2514:2;2600:13;;-1:-1:-1;;2596:22:29;;;2620:2;2592:31;2588:40;2576:53;;;2644:18;;;2664:22;;;2641:46;2638:72;;;2690:18;;:::i;:::-;2730:10;2726:2;2719:22;2765:2;2757:6;2750:18;2805:7;2800:2;2795;2791;2787:11;2783:20;2780:33;2777:53;;;2826:1;2823;2816:12;2777:53;2882:2;2877;2873;2869:11;2864:2;2856:6;2852:15;2839:46;2927:1;2922:2;2917;2909:6;2905:15;2901:24;2894:35;2948:6;2938:16;;;;;;;3001:2;2990:9;2986:18;2973:32;2963:42;;3052:2;3041:9;3037:18;3024:32;3014:42;;3075:37;3107:3;3096:9;3092:19;3075:37;:::i;:::-;3065:47;;1915:1203;;;;;;;;:::o;3487:328::-;3564:6;3572;3580;3633:2;3621:9;3612:7;3608:23;3604:32;3601:52;;;3649:1;3646;3639:12;3601:52;3672:29;3691:9;3672:29;:::i;:::-;3662:39;;3720:38;3754:2;3743:9;3739:18;3720:38;:::i;:::-;3710:48;;3805:2;3794:9;3790:18;3777:32;3767:42;;3487:328;;;;;:::o;3820:180::-;3879:6;3932:2;3920:9;3911:7;3907:23;3903:32;3900:52;;;3948:1;3945;3938:12;3900:52;-1:-1:-1;3971:23:29;;3820:180;-1:-1:-1;3820:180:29:o;4005:186::-;4064:6;4117:2;4105:9;4096:7;4092:23;4088:32;4085:52;;;4133:1;4130;4123:12;4085:52;4156:29;4175:9;4156:29;:::i;4381:254::-;4449:6;4457;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;4562:9;4549:23;4539:33;;4591:38;4625:2;4614:9;4610:18;4591:38;:::i;:::-;4581:48;;4381:254;;;;;:::o;4829:348::-;4881:8;4891:6;4945:3;4938:4;4930:6;4926:17;4922:27;4912:55;;4963:1;4960;4953:12;4912:55;-1:-1:-1;4986:20:29;;5029:18;5018:30;;5015:50;;;5061:1;5058;5051:12;5015:50;5098:4;5090:6;5086:17;5074:29;;5150:3;5143:4;5134:6;5126;5122:19;5118:30;5115:39;5112:59;;;5167:1;5164;5157:12;5112:59;4829:348;;;;;:::o;5182:411::-;5253:6;5261;5314:2;5302:9;5293:7;5289:23;5285:32;5282:52;;;5330:1;5327;5320:12;5282:52;5370:9;5357:23;5403:18;5395:6;5392:30;5389:50;;;5435:1;5432;5425:12;5389:50;5474:59;5525:7;5516:6;5505:9;5501:22;5474:59;:::i;:::-;5552:8;;5448:85;;-1:-1:-1;5182:411:29;-1:-1:-1;;;;5182:411:29:o;5598:768::-;5715:6;5723;5731;5739;5747;5755;5763;5771;5824:3;5812:9;5803:7;5799:23;5795:33;5792:53;;;5841:1;5838;5831:12;5792:53;5864:29;5883:9;5864:29;:::i;:::-;5854:39;;5912:38;5946:2;5935:9;5931:18;5912:38;:::i;:::-;5902:48;;5997:2;5986:9;5982:18;5969:32;5959:42;;6048:2;6037:9;6033:18;6020:32;6010:42;;6102:3;6091:9;6087:19;6074:33;6150:5;6143:13;6136:21;6129:5;6126:32;6116:60;;6172:1;6169;6162:12;6116:60;6195:5;-1:-1:-1;6219:37:29;6251:3;6236:19;;6219:37;:::i;:::-;6209:47;;6303:3;6292:9;6288:19;6275:33;6265:43;;6355:3;6344:9;6340:19;6327:33;6317:43;;5598:768;;;;;;;;;;;:::o;6371:248::-;6439:6;6447;6500:2;6488:9;6479:7;6475:23;6471:32;6468:52;;;6516:1;6513;6506:12;6468:52;-1:-1:-1;;6539:23:29;;;6609:2;6594:18;;;6581:32;;-1:-1:-1;6371:248:29:o;6832:484::-;6911:6;6919;6927;6980:2;6968:9;6959:7;6955:23;6951:32;6948:52;;;6996:1;6993;6986:12;6948:52;7019:29;7038:9;7019:29;:::i;:::-;7009:39;;7099:2;7088:9;7084:18;7071:32;7126:18;7118:6;7115:30;7112:50;;;7158:1;7155;7148:12;7112:50;7197:59;7248:7;7239:6;7228:9;7224:22;7197:59;:::i;:::-;6832:484;;7275:8;;-1:-1:-1;7171:85:29;;-1:-1:-1;;;;6832:484:29:o;7321:260::-;7389:6;7397;7450:2;7438:9;7429:7;7425:23;7421:32;7418:52;;;7466:1;7463;7456:12;7418:52;7489:29;7508:9;7489:29;:::i;:::-;7479:39;;7537:38;7571:2;7560:9;7556:18;7537:38;:::i;7586:866::-;7694:6;7702;7710;7718;7726;7734;7787:3;7775:9;7766:7;7762:23;7758:33;7755:53;;;7804:1;7801;7794:12;7755:53;7844:9;7831:23;7873:18;7914:2;7906:6;7903:14;7900:34;;;7930:1;7927;7920:12;7900:34;7969:59;8020:7;8011:6;8000:9;7996:22;7969:59;:::i;:::-;8047:8;;-1:-1:-1;7943:85:29;-1:-1:-1;8135:2:29;8120:18;;8107:32;;-1:-1:-1;8151:16:29;;;8148:36;;;8180:1;8177;8170:12;8148:36;;8219:61;8272:7;8261:8;8250:9;8246:24;8219:61;:::i;:::-;8299:8;;-1:-1:-1;8193:87:29;-1:-1:-1;8353:36:29;;-1:-1:-1;8385:2:29;8370:18;;8353:36;:::i;:::-;8343:46;;8408:38;8442:2;8431:9;8427:18;8408:38;:::i;:::-;8398:48;;7586:866;;;;;;;;:::o;8457:380::-;8536:1;8532:12;;;;8579;;;8600:61;;8654:4;8646:6;8642:17;8632:27;;8600:61;8707:2;8699:6;8696:14;8676:18;8673:38;8670:161;;8753:10;8748:3;8744:20;8741:1;8734:31;8788:4;8785:1;8778:15;8816:4;8813:1;8806:15;8670:161;;8457:380;;;:::o;9244:432::-;-1:-1:-1;;;;;9501:15:29;;;9483:34;;9553:15;;9548:2;9533:18;;9526:43;9605:2;9600;9585:18;;9578:30;;;9426:4;;9625:45;;9651:18;;9643:6;9625:45;:::i;9681:428::-;9838:3;9876:6;9870:13;9892:66;9951:6;9946:3;9939:4;9931:6;9927:17;9892:66;:::i;:::-;10027:2;10023:15;;;;-1:-1:-1;;10019:53:29;9980:16;;;;10005:68;;;10100:2;10089:14;;9681:428;-1:-1:-1;;9681:428:29:o;10114:287::-;10243:3;10281:6;10275:13;10297:66;10356:6;10351:3;10344:4;10336:6;10332:17;10297:66;:::i;:::-;10379:16;;;;;10114:287;-1:-1:-1;;10114:287:29:o;12081:963::-;12190:4;12219:2;12248;12237:9;12230:21;12271:1;12304:6;12298:13;12334:36;12360:9;12334:36;:::i;:::-;12406:6;12401:2;12390:9;12386:18;12379:34;12432:2;12453:1;12485:2;12474:9;12470:18;12502:1;12497:158;;;;12669:1;12664:354;;;;12463:555;;12497:158;-1:-1:-1;;12545:24:29;;12525:18;;;12518:52;12623:14;;12616:22;12613:1;12609:30;12594:46;;12590:55;;;-1:-1:-1;12497:158:29;;12664:354;12695:6;12692:1;12685:17;12743:2;12740:1;12730:16;12768:1;12782:180;12796:6;12793:1;12790:13;12782:180;;;12889:14;;12865:17;;;12861:26;;12854:50;12932:16;;;;12811:10;;12782:180;;;12986:17;;12982:26;;;-1:-1:-1;;12463:555:29;-1:-1:-1;13035:3:29;;12081:963;-1:-1:-1;;;;;;;;12081:963:29:o;15163:127::-;15224:10;15219:3;15215:20;15212:1;15205:31;15255:4;15252:1;15245:15;15279:4;15276:1;15269:15;15295:135;15334:3;15355:17;;;15352:43;;15375:18;;:::i;:::-;-1:-1:-1;15422:1:29;15411:13;;15295:135::o;16548:419::-;-1:-1:-1;;;16815:3:29;16808:20;16871:6;16863;16859:1;16854:3;16850:11;16837:41;16790:3;16901:16;;16919:1;16897:24;16930:13;;;16897:24;16548:419;-1:-1:-1;16548:419:29:o;18186:125::-;18251:9;;;18272:10;;;18269:36;;;18285:18;;:::i;19482:128::-;19549:9;;;19570:11;;;19567:37;;;19584:18;;:::i;20017:545::-;20119:2;20114:3;20111:11;20108:448;;;20155:1;20180:5;20176:2;20169:17;20225:4;20221:2;20211:19;20295:2;20283:10;20279:19;20276:1;20272:27;20266:4;20262:38;20331:4;20319:10;20316:20;20313:47;;;-1:-1:-1;20354:4:29;20313:47;20409:2;20404:3;20400:12;20397:1;20393:20;20387:4;20383:31;20373:41;;20464:82;20482:2;20475:5;20472:13;20464:82;;;20527:17;;;20508:1;20497:13;20464:82;;;20468:3;;;20017:545;;;:::o;20738:1352::-;20864:3;20858:10;20891:18;20883:6;20880:30;20877:56;;;20913:18;;:::i;:::-;20942:97;21032:6;20992:38;21024:4;21018:11;20992:38;:::i;:::-;20986:4;20942:97;:::i;:::-;21094:4;;21158:2;21147:14;;21175:1;21170:663;;;;21877:1;21894:6;21891:89;;;-1:-1:-1;21946:19:29;;;21940:26;21891:89;-1:-1:-1;;20695:1:29;20691:11;;;20687:24;20683:29;20673:40;20719:1;20715:11;;;20670:57;21993:81;;21140:944;;21170:663;12028:1;12021:14;;;12065:4;12052:18;;-1:-1:-1;;21206:20:29;;;21324:236;21338:7;21335:1;21332:14;21324:236;;;21427:19;;;21421:26;21406:42;;21519:27;;;;21487:1;21475:14;;;;21354:19;;21324:236;;;21328:3;21588:6;21579:7;21576:19;21573:201;;;21649:19;;;21643:26;-1:-1:-1;;21732:1:29;21728:14;;;21744:3;21724:24;21720:37;21716:42;21701:58;21686:74;;21573:201;-1:-1:-1;;;;;21820:1:29;21804:14;;;21800:22;21787:36;;-1:-1:-1;20738:1352:29:o;22589:478::-;22821:3;22859:6;22853:13;22875:66;22934:6;22929:3;22922:4;22914:6;22910:17;22875:66;:::i;:::-;23002:28;22963:16;;22988:43;;;-1:-1:-1;23058:2:29;23047:14;;22589:478;-1:-1:-1;22589:478:29:o;23897:127::-;23958:10;23953:3;23949:20;23946:1;23939:31;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24029:127;24090:10;24085:3;24081:20;24078:1;24071:31;24121:4;24118:1;24111:15;24145:4;24142:1;24135:15"},"methodIdentifiers":{"CHILD_CHAIN_ID()":"626381a0","CHILD_CHAIN_ID_BYTES()":"0b54817c","DEFAULT_ADMIN_ROLE()":"a217fddf","DEPOSITOR_ROLE()":"a3b0b5a3","ERC712_VERSION()":"0f7e5970","PERMIT_TYPEHASH()":"30adf81f","ROOT_CHAIN_ID()":"8acfcaf7","ROOT_CHAIN_ID_BYTES()":"0dd7531a","_mint(address,uint256)":"4e6ec247","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","changeName(string)":"5353a2d8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(address,bytes)":"cf2c52cb","executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)":"0c53c51c","getChainId()":"3408e470","getDomainSeperator()":"20379ee5","getNonce(address)":"2d0335ab","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increaseAllowance(address,uint256)":"39509351","initialize(string,string,uint8,address)":"de7ea79d","move(address,address,uint256)":"bb35783b","name()":"06fdde03","permit(address,address,uint256,uint256,bool,uint8,bytes32,bytes32)":"8fcbaf0c","pull(address,uint256)":"f2d5d56b","push(address,uint256)":"b753a98c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"relayerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"}],\"name\":\"MetaTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC712_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"changeName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"depositData\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"}],\"name\":\"executeMetaTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"childChainManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"pull\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"push\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"_mint(address,uint256)\":{\"details\":\"Creates `amount` tokens and assigns them to `account`, increasing the total supply. Emits a {Transfer} event with `from` set to the zero address. Requirements - `to` cannot be the zero address. \"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(address,bytes)\":{\"details\":\"Should be callable only by ChildChainManager Should handle deposit by minting the required amount for user Make sure minting is done only by this function\",\"params\":{\"depositData\":\"abi encoded amount\",\"user\":\"user address for whom deposit is being done\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"initialize(string,string,uint8,address)\":{\"details\":\"meant to be called once immediately after deployment\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"withdraw(uint256)\":{\"details\":\"Should burn user's tokens. This transaction will be verified when exiting on root chain\",\"params\":{\"amount\":\"amount of tokens to withdraw\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit(address,bytes)\":{\"notice\":\"called when token is deposited on root chain\"},\"initialize(string,string,uint8,address)\":{\"notice\":\"Initialize the contract after it has been proxified\"},\"withdraw(uint256)\":{\"notice\":\"called when user wants to withdraw tokens back to root chain\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"NofTestDAIV3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"SafeMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GT PUSH27 0x27774884C878DAE9AF47B8DFA8B593B9A0A7334EF6F519438B71BC 0xAB PUSH26 0xE164736F6C634300081400330000000000000000000000000000 ","sourceMap":"4349:4578:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4349:4578:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GT PUSH27 0x27774884C878DAE9AF47B8DFA8B593B9A0A7334EF6F519438B71BC 0xAB PUSH26 0xE164736F6C634300081400330000000000000000000000000000 ","sourceMap":"4349:4578:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when 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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"SafeMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"UChildERC20":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSITOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"childChainManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11161":{"entryPoint":null,"id":11161,"parameterSlots":0,"returnSlots":0},"@_9517":{"entryPoint":null,"id":9517,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":205,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":288,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":145,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":123,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"201:325:29","statements":[{"nodeType":"YulAssignment","src":"211:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:29"},"nodeType":"YulFunctionCall","src":"221:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:29"},"nodeType":"YulFunctionCall","src":"268:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:29","statements":[{"nodeType":"YulAssignment","src":"321:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:29"},"nodeType":"YulFunctionCall","src":"331:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:29"},"nodeType":"YulFunctionCall","src":"292:26:29"},"nodeType":"YulIf","src":"289:61:29"},{"body":{"nodeType":"YulBlock","src":"409:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:29"},"nodeType":"YulFunctionCall","src":"467:15:29"},"nodeType":"YulExpressionStatement","src":"467:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:29"},"nodeType":"YulFunctionCall","src":"495:15:29"},"nodeType":"YulExpressionStatement","src":"495:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:29"},"nodeType":"YulFunctionCall","src":"385:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:29"},"nodeType":"YulFunctionCall","src":"362:38:29"},"nodeType":"YulIf","src":"359:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:29","type":""}],"src":"146:380:29"},{"body":{"nodeType":"YulBlock","src":"587:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:29"},"nodeType":"YulFunctionCall","src":"597:14:29"},"nodeType":"YulExpressionStatement","src":"597:14:29"},{"nodeType":"YulAssignment","src":"620:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:29"},"nodeType":"YulFunctionCall","src":"628:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:29","type":""}],"src":"531:121:29"},{"body":{"nodeType":"YulBlock","src":"738:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:17:29"},"nodeType":"YulExpressionStatement","src":"809:17:29"},{"nodeType":"YulVariableDeclaration","src":"839:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:29"},"nodeType":"YulFunctionCall","src":"851:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:29"},"nodeType":"YulFunctionCall","src":"919:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:29"},"nodeType":"YulFunctionCall","src":"912:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:29","statements":[{"nodeType":"YulAssignment","src":"979:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:29"},"nodeType":"YulFunctionCall","src":"956:20:29"},"nodeType":"YulIf","src":"953:47:29"},{"nodeType":"YulVariableDeclaration","src":"1013:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:29"},"nodeType":"YulFunctionCall","src":"1040:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:29"},"nodeType":"YulFunctionCall","src":"1033:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:29"},"nodeType":"YulFunctionCall","src":"1167:17:29"},"nodeType":"YulExpressionStatement","src":"1167:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:29"},"nodeType":"YulFunctionCall","src":"1112:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:29","statements":[{"nodeType":"YulAssignment","src":"1128:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:29"},"nodeType":"YulFunctionCall","src":"1137:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:29","statements":[]},"src":"1104:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:29"},"nodeType":"YulFunctionCall","src":"751:11:29"},"nodeType":"YulIf","src":"748:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:29","type":""}],"src":"657:545:29"},{"body":{"nodeType":"YulBlock","src":"1292:81:29","statements":[{"nodeType":"YulAssignment","src":"1302:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:29"},"nodeType":"YulFunctionCall","src":"1331:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:29"},"nodeType":"YulFunctionCall","src":"1344:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:29"},"nodeType":"YulFunctionCall","src":"1327:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:29"},"nodeType":"YulFunctionCall","src":"1323:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:29"},"nodeType":"YulFunctionCall","src":"1313:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:29"},"nodeType":"YulFunctionCall","src":"1355:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:29"},"nodeType":"YulFunctionCall","src":"1310:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:29","type":""}],"src":"1207:166:29"},{"body":{"nodeType":"YulBlock","src":"1474:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:29"},"nodeType":"YulFunctionCall","src":"1498:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:29"},"nodeType":"YulFunctionCall","src":"1553:18:29"},"nodeType":"YulExpressionStatement","src":"1553:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:29"},"nodeType":"YulFunctionCall","src":"1535:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:29"},"nodeType":"YulFunctionCall","src":"1531:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulIf","src":"1517:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:29"},"nodeType":"YulFunctionCall","src":"1658:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:29"},"nodeType":"YulFunctionCall","src":"1632:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:29"},"nodeType":"YulFunctionCall","src":"1582:97:29"},"nodeType":"YulExpressionStatement","src":"1582:97:29"},{"nodeType":"YulVariableDeclaration","src":"1688:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:29","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:29"},"nodeType":"YulFunctionCall","src":"1846:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:29"},"nodeType":"YulFunctionCall","src":"1893:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:29"},"nodeType":"YulFunctionCall","src":"2067:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:29"},"nodeType":"YulFunctionCall","src":"2061:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:29"},"nodeType":"YulFunctionCall","src":"2046:42:29"},"nodeType":"YulExpressionStatement","src":"2046:42:29"},{"nodeType":"YulAssignment","src":"2105:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:29"},"nodeType":"YulFunctionCall","src":"2115:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:29"}]},{"nodeType":"YulAssignment","src":"2146:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:29"},"nodeType":"YulFunctionCall","src":"2159:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:29"},"nodeType":"YulFunctionCall","src":"1972:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:29","statements":[{"nodeType":"YulAssignment","src":"1989:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:29"},"nodeType":"YulFunctionCall","src":"1994:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:29","statements":[]},"src":"1964:236:29"},{"body":{"nodeType":"YulBlock","src":"2248:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:29"},"nodeType":"YulFunctionCall","src":"2289:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:29"},"nodeType":"YulFunctionCall","src":"2283:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:29"},"nodeType":"YulFunctionCall","src":"2368:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:29"},"nodeType":"YulFunctionCall","src":"2364:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:29"},"nodeType":"YulFunctionCall","src":"2390:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:29"},"nodeType":"YulFunctionCall","src":"2360:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:29"},"nodeType":"YulFunctionCall","src":"2356:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:29"},"nodeType":"YulFunctionCall","src":"2341:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:29"},"nodeType":"YulFunctionCall","src":"2326:74:29"},"nodeType":"YulExpressionStatement","src":"2326:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:29"},"nodeType":"YulFunctionCall","src":"2216:19:29"},"nodeType":"YulIf","src":"2213:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:29"},"nodeType":"YulFunctionCall","src":"2444:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:29"},"nodeType":"YulFunctionCall","src":"2440:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:29"},"nodeType":"YulFunctionCall","src":"2427:36:29"},"nodeType":"YulExpressionStatement","src":"2427:36:29"}]},"nodeType":"YulCase","src":"1810:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:29","statements":[{"nodeType":"YulAssignment","src":"2571:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:29"},"nodeType":"YulFunctionCall","src":"2586:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:29"},"nodeType":"YulFunctionCall","src":"2580:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:29"},"nodeType":"YulIf","src":"2531:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:29"},"nodeType":"YulFunctionCall","src":"2646:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:81:29"},"nodeType":"YulExpressionStatement","src":"2633:81:29"}]},"nodeType":"YulCase","src":"2482:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:29"},"nodeType":"YulFunctionCall","src":"1787:14:29"},"nodeType":"YulSwitch","src":"1780:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:29","type":""}],"src":"1378:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6123b780620001fc6000396000f3fe6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH3 0x444149 PUSH1 0xE8 SHL PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP3 DUP6 MSTORE DUP5 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH3 0x56 DUP4 DUP3 PUSH3 0x120 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x65 DUP3 DUP3 PUSH3 0x120 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE POP PUSH3 0x1EC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0xA6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x11B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xF6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x117 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x102 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x7B JUMP JUMPDEST PUSH3 0x154 DUP2 PUSH3 0x14D DUP5 SLOAD PUSH3 0x91 JUMP JUMPDEST DUP5 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x18C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x173 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x117 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1BD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x19C JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x1DC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x23B7 DUP1 PUSH3 0x1FC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1F9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA15C873 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x571 JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x586 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8ACFCAF7 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x55C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x4A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x190 JUMPI DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x15F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x1CC JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2C6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x286 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x213 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C02 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE8 JUMP JUMPDEST PUSH2 0x95F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x362 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x9E6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0x9FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xA8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x49F CALLDATASIZE PUSH1 0x4 PUSH2 0x1DCD JUMP JUMPDEST PUSH2 0xC41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x524 PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0xD0C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0xD43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xD52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x635 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0xDE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x655 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xE54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x6BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1EAE JUMP JUMPDEST PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E 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 0x6FB SWAP1 PUSH2 0x1F3E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x748 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x71D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x748 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x72B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0x75F PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x7AE DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x82D SWAP1 PUSH1 0x1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x87D SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x1F78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A5 SWAP3 SWAP2 SWAP1 PUSH2 0x1FA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x8BF SWAP2 PUSH2 0x1FDB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8FC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x901 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x96C DUP5 DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH2 0x9DC DUP5 PUSH2 0x978 PUSH2 0x107B JUMP JUMPDEST PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2335 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x9B6 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9F7 PUSH2 0x9F1 PUSH2 0x107B JUMP JUMPDEST DUP3 PUSH2 0x14BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xA18 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x15BF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xA92 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x1628 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xB21 PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xB32 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xBB8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xBC5 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xBEB SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4F DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH2 0xCAF DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD07 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x169D SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1724 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xD5F PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x235D PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0xD89 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xDC7 PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76A SWAP1 PUSH2 0x1752 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0xE12 DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xE32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xE41 DUP4 DUP6 ADD DUP6 PUSH2 0x1D24 JUMP JUMPDEST SWAP1 POP PUSH2 0xE4D DUP6 DUP3 PUSH2 0xB62 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xE72 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xF5A 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF99 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x175C SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0xFD2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFBE SWAP3 SWAP2 SWAP1 PUSH2 0x2082 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1768 JUMP JUMPDEST PUSH2 0xFE4 PUSH1 0x0 PUSH2 0xFDF PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x100E PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x1066 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1796 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1085 PUSH2 0x17F5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x10EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x114D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1215 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1228 PUSH2 0x1223 DUP8 PUSH2 0x1851 JUMP JUMPDEST PUSH2 0x18CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1276 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12AC DUP4 DUP6 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xD24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x13C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1401 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x230F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x1430 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x11A2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x14A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x14B2 DUP5 DUP7 PUSH2 0x20CC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x151B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1558 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225B PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x157E SWAP1 DUP3 PUSH2 0x18FE JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x15D7 SWAP1 DUP3 PUSH2 0x1940 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x15E4 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1640 SWAP1 DUP3 PUSH2 0x1955 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x164D PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x22C0 PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x16D5 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH2 0x196A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76A DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1779 SWAP2 SWAP1 PUSH2 0x21ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x17DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x17E4 DUP3 DUP3 PUSH2 0x169D JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x184B JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x184E SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x227D PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x18B1 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D9 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x18B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x19F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1A3F JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x19C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x19DD JUMPI PUSH2 0x19DD PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1A37 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x76A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1B28 JUMPI PUSH1 0x0 PUSH2 0x1A63 PUSH1 0x1 DUP4 PUSH2 0x20CC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1A77 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x20CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1A90 JUMPI PUSH2 0x1A90 PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1AB3 JUMPI PUSH2 0x1AB3 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1ACA DUP4 PUSH1 0x1 PUSH2 0x20B9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1AEC JUMPI PUSH2 0x1AEC PUSH2 0x2244 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B4D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B35 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1B6E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BCD DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C23 DUP7 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1C40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1C66 JUMPI PUSH2 0x1C66 PUSH2 0x1BDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1C8E JUMPI PUSH2 0x1C8E PUSH2 0x1BDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1CDC PUSH1 0x80 DUP8 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH2 0x1D14 PUSH1 0x20 DUP6 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD24 DUP3 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1D96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1DC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E03 DUP6 DUP3 DUP7 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E4F DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E77 DUP7 DUP3 DUP8 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EA0 DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1EC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1EDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EEB DUP11 DUP4 DUP12 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F11 DUP10 DUP3 DUP11 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x1F24 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F32 PUSH1 0x60 DUP9 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1F52 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1F72 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x14B2 SWAP1 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1FB6 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1FED DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x200B DUP2 PUSH2 0x1F3E JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x202C JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2046 JUMPI PUSH2 0x2074 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2074 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x206C JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2051 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2106 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2125 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2112 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2147 JUMPI PUSH2 0x2147 PUSH2 0x1BDB JUMP JUMPDEST PUSH2 0x215B DUP2 PUSH2 0x2155 DUP5 SLOAD PUSH2 0x1F3E JUMP JUMPDEST DUP5 PUSH2 0x20DF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2190 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2178 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x21BF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x21A0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x21DD JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x21FF DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 0xD0 0xE4 PUSH21 0xE7C0E5222B46307228C2AC6D269F0BBEBDF353FD3F ADD CALLVALUE MUL STOP PUSH20 0xF9577F64736F6C63430008140033000000000000 ","sourceMap":"48416:2287:27:-:0;;;41986:19;;;-1:-1:-1;;41986:19:27;;;48637:36;;;;;;;;;-1:-1:-1;16994:142:27;;;;;;;;;;;;-1:-1:-1;;;16994:142:27;;;;;;;;;;;;;;;;;;;;;;;;17063:14;16994:142;;17063:14;:::i;:::-;-1:-1:-1;17087:7:27;:18;17097:8;17087:7;:18;:::i;:::-;-1:-1:-1;;17115:9:27;:14;;-1:-1:-1;;17115:14:27;17127:2;17115:14;;;-1:-1:-1;48416:2287:27;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:29;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:29;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:29;;;2580:26;2531:89;-1:-1:-1;;1335:1:29;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:29;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:29;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:29;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:29:o;:::-;48416:2287:27;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CHILD_CHAIN_ID_11091":{"entryPoint":null,"id":11091,"parameterSlots":0,"returnSlots":0},"@CHILD_CHAIN_ID_BYTES_11094":{"entryPoint":null,"id":11094,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_10446":{"entryPoint":null,"id":10446,"parameterSlots":0,"returnSlots":0},"@DEPOSITOR_ROLE_11153":{"entryPoint":null,"id":11153,"parameterSlots":0,"returnSlots":0},"@ERC712_VERSION_11082":{"entryPoint":null,"id":11082,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_11085":{"entryPoint":null,"id":11085,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_BYTES_11088":{"entryPoint":null,"id":11088,"parameterSlots":0,"returnSlots":0},"@_add_10050":{"entryPoint":6640,"id":10050,"parameterSlots":2,"returnSlots":1},"@_approve_9975":{"entryPoint":4234,"id":9975,"parameterSlots":3,"returnSlots":0},"@_at_10190":{"entryPoint":6506,"id":10190,"parameterSlots":2,"returnSlots":1},"@_beforeTokenTransfer_9997":{"entryPoint":null,"id":9997,"parameterSlots":3,"returnSlots":0},"@_burn_9930":{"entryPoint":5307,"id":9930,"parameterSlots":2,"returnSlots":0},"@_contains_10150":{"entryPoint":null,"id":10150,"parameterSlots":2,"returnSlots":1},"@_grantRole_10678":{"entryPoint":5567,"id":10678,"parameterSlots":2,"returnSlots":0},"@_initializeEIP712_10806":{"entryPoint":6038,"id":10806,"parameterSlots":2,"returnSlots":0},"@_length_10164":{"entryPoint":null,"id":10164,"parameterSlots":1,"returnSlots":1},"@_mint_9874":{"entryPoint":2914,"id":9874,"parameterSlots":2,"returnSlots":0},"@_msgSender_11226":{"entryPoint":4219,"id":11226,"parameterSlots":0,"returnSlots":1},"@_remove_10131":{"entryPoint":6719,"id":10131,"parameterSlots":2,"returnSlots":1},"@_revokeRole_10702":{"entryPoint":5672,"id":10702,"parameterSlots":2,"returnSlots":0},"@_setDomainSeperator_10844":{"entryPoint":5789,"id":10844,"parameterSlots":2,"returnSlots":0},"@_setupContractId_10725":{"entryPoint":5992,"id":10725,"parameterSlots":1,"returnSlots":0},"@_setupRole_10629":{"entryPoint":null,"id":10629,"parameterSlots":2,"returnSlots":0},"@_transfer_9819":{"entryPoint":4862,"id":9819,"parameterSlots":3,"returnSlots":0},"@add_10221":{"entryPoint":6464,"id":10221,"parameterSlots":2,"returnSlots":1},"@add_9096":{"entryPoint":4767,"id":9096,"parameterSlots":2,"returnSlots":1},"@allowance_9637":{"entryPoint":null,"id":9637,"parameterSlots":2,"returnSlots":1},"@approve_9658":{"entryPoint":1874,"id":9658,"parameterSlots":2,"returnSlots":1},"@at_10317":{"entryPoint":5924,"id":10317,"parameterSlots":2,"returnSlots":1},"@balanceOf_9598":{"entryPoint":null,"id":9598,"parameterSlots":1,"returnSlots":1},"@changeName_11244":{"entryPoint":3137,"id":11244,"parameterSlots":2,"returnSlots":0},"@contains_10275":{"entryPoint":5936,"id":10275,"parameterSlots":2,"returnSlots":1},"@decimals_9564":{"entryPoint":null,"id":9564,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9753":{"entryPoint":3410,"id":9753,"parameterSlots":2,"returnSlots":1},"@deposit_11272":{"entryPoint":3557,"id":11272,"parameterSlots":3,"returnSlots":0},"@executeMetaTransaction_10999":{"entryPoint":1904,"id":10999,"parameterSlots":5,"returnSlots":1},"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"@getNonce_11037":{"entryPoint":null,"id":11037,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_10541":{"entryPoint":null,"id":10541,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_10508":{"entryPoint":3534,"id":10508,"parameterSlots":1,"returnSlots":1},"@getRoleMember_10527":{"entryPoint":3340,"id":10527,"parameterSlots":2,"returnSlots":1},"@grantRole_10567":{"entryPoint":2554,"id":10567,"parameterSlots":2,"returnSlots":0},"@hasRole_10492":{"entryPoint":3371,"id":10492,"parameterSlots":2,"returnSlots":1},"@hashMetaTransaction_11023":{"entryPoint":6225,"id":11023,"parameterSlots":1,"returnSlots":1},"@increaseAllowance_9724":{"entryPoint":2836,"id":9724,"parameterSlots":2,"returnSlots":1},"@initialize_11215":{"entryPoint":3799,"id":11215,"parameterSlots":6,"returnSlots":0},"@length_10290":{"entryPoint":5970,"id":10290,"parameterSlots":1,"returnSlots":1},"@msgSender_11134":{"entryPoint":6133,"id":11134,"parameterSlots":0,"returnSlots":1},"@name_9526":{"entryPoint":1728,"id":9526,"parameterSlots":0,"returnSlots":1},"@remove_10248":{"entryPoint":6485,"id":10248,"parameterSlots":2,"returnSlots":1},"@renounceRole_10615":{"entryPoint":2698,"id":10615,"parameterSlots":2,"returnSlots":0},"@revokeRole_10593":{"entryPoint":3668,"id":10593,"parameterSlots":2,"returnSlots":0},"@setDecimals_9574":{"entryPoint":null,"id":9574,"parameterSlots":1,"returnSlots":0},"@setName_9536":{"entryPoint":5777,"id":9536,"parameterSlots":1,"returnSlots":0},"@setSymbol_9555":{"entryPoint":5980,"id":9555,"parameterSlots":1,"returnSlots":0},"@sub_9113":{"entryPoint":6398,"id":9113,"parameterSlots":2,"returnSlots":1},"@sub_9141":{"entryPoint":5249,"id":9141,"parameterSlots":3,"returnSlots":1},"@symbol_9545":{"entryPoint":3395,"id":9545,"parameterSlots":0,"returnSlots":1},"@toTypedMessageHash_10883":{"entryPoint":6350,"id":10883,"parameterSlots":1,"returnSlots":1},"@totalSupply_9584":{"entryPoint":null,"id":9584,"parameterSlots":0,"returnSlots":1},"@transferFrom_9696":{"entryPoint":2399,"id":9696,"parameterSlots":3,"returnSlots":1},"@transfer_9619":{"entryPoint":3514,"id":9619,"parameterSlots":2,"returnSlots":1},"@verify_11077":{"entryPoint":4527,"id":11077,"parameterSlots":5,"returnSlots":1},"@withdraw_11285":{"entryPoint":2534,"id":11285,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":7061,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":7556,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":7485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":7812,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":7400,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":7729,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8":{"entryPoint":7170,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7089,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":7460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":7512,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":7695,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":7629,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address":{"entryPoint":7854,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":7153,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_string":{"entryPoint":6998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":8100,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8685,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8322,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8056,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7042,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8183,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8377,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8396,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":8415,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":8493,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6962,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":7998,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":8355,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":8772,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":8750,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7131,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:21578:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"80:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"90:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"99:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"94:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"159:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"184:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"189:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"180:3:29"},"nodeType":"YulFunctionCall","src":"180:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"203:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"208:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"199:3:29"},"nodeType":"YulFunctionCall","src":"199:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"193:5:29"},"nodeType":"YulFunctionCall","src":"193:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"173:6:29"},"nodeType":"YulFunctionCall","src":"173:39:29"},"nodeType":"YulExpressionStatement","src":"173:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"120:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"123:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"117:2:29"},"nodeType":"YulFunctionCall","src":"117:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"131:19:29","statements":[{"nodeType":"YulAssignment","src":"133:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"142:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"145:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"138:3:29"},"nodeType":"YulFunctionCall","src":"138:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"133:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"113:3:29","statements":[]},"src":"109:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"242:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"247:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"238:3:29"},"nodeType":"YulFunctionCall","src":"238:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"231:6:29"},"nodeType":"YulFunctionCall","src":"231:27:29"},"nodeType":"YulExpressionStatement","src":"231:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"58:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"63:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"68:6:29","type":""}],"src":"14:250:29"},{"body":{"nodeType":"YulBlock","src":"319:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"329:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"349:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"343:5:29"},"nodeType":"YulFunctionCall","src":"343:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"333:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"371:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"376:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"364:6:29"},"nodeType":"YulFunctionCall","src":"364:19:29"},"nodeType":"YulExpressionStatement","src":"364:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"431:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"438:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:29"},"nodeType":"YulFunctionCall","src":"427:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"449:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"454:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:29"},"nodeType":"YulFunctionCall","src":"445:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"461:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"392:34:29"},"nodeType":"YulFunctionCall","src":"392:76:29"},"nodeType":"YulExpressionStatement","src":"392:76:29"},{"nodeType":"YulAssignment","src":"477:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"492:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"505:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"513:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:29"},"nodeType":"YulFunctionCall","src":"501:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"522:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"518:3:29"},"nodeType":"YulFunctionCall","src":"518:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"497:3:29"},"nodeType":"YulFunctionCall","src":"497:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:29"},"nodeType":"YulFunctionCall","src":"488:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"529:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"484:3:29"},"nodeType":"YulFunctionCall","src":"484:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"477:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"296:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"303:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"311:3:29","type":""}],"src":"269:271:29"},{"body":{"nodeType":"YulBlock","src":"666:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"694:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"676:6:29"},"nodeType":"YulFunctionCall","src":"676:21:29"},"nodeType":"YulExpressionStatement","src":"676:21:29"},{"nodeType":"YulAssignment","src":"706:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"732:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"744:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"755:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"740:3:29"},"nodeType":"YulFunctionCall","src":"740:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"714:17:29"},"nodeType":"YulFunctionCall","src":"714:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"706:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"635:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"646:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"657:4:29","type":""}],"src":"545:220:29"},{"body":{"nodeType":"YulBlock","src":"819:124:29","statements":[{"nodeType":"YulAssignment","src":"829:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"851:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"838:12:29"},"nodeType":"YulFunctionCall","src":"838:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"829:5:29"}]},{"body":{"nodeType":"YulBlock","src":"921:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"930:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"933:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"923:6:29"},"nodeType":"YulFunctionCall","src":"923:12:29"},"nodeType":"YulExpressionStatement","src":"923:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"880:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"891:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"906:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"911:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"915:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:29"},"nodeType":"YulFunctionCall","src":"898:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"887:3:29"},"nodeType":"YulFunctionCall","src":"887:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"877:2:29"},"nodeType":"YulFunctionCall","src":"877:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"870:6:29"},"nodeType":"YulFunctionCall","src":"870:50:29"},"nodeType":"YulIf","src":"867:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"798:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"809:5:29","type":""}],"src":"770:173:29"},{"body":{"nodeType":"YulBlock","src":"1035:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"1081:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1090:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1093:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1083:6:29"},"nodeType":"YulFunctionCall","src":"1083:12:29"},"nodeType":"YulExpressionStatement","src":"1083:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1056:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1052:3:29"},"nodeType":"YulFunctionCall","src":"1052:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1077:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1048:3:29"},"nodeType":"YulFunctionCall","src":"1048:32:29"},"nodeType":"YulIf","src":"1045:52:29"},{"nodeType":"YulAssignment","src":"1106:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1135:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1116:18:29"},"nodeType":"YulFunctionCall","src":"1116:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1106:6:29"}]},{"nodeType":"YulAssignment","src":"1154:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1192:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:29"},"nodeType":"YulFunctionCall","src":"1177:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1164:12:29"},"nodeType":"YulFunctionCall","src":"1164:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1154:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"993:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1004:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1016:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1024:6:29","type":""}],"src":"948:254:29"},{"body":{"nodeType":"YulBlock","src":"1302:92:29","statements":[{"nodeType":"YulAssignment","src":"1312:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1324:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1335:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1320:3:29"},"nodeType":"YulFunctionCall","src":"1320:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1312:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1379:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1372:6:29"},"nodeType":"YulFunctionCall","src":"1372:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1365:6:29"},"nodeType":"YulFunctionCall","src":"1365:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1347:6:29"},"nodeType":"YulFunctionCall","src":"1347:41:29"},"nodeType":"YulExpressionStatement","src":"1347:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1271:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1282:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1293:4:29","type":""}],"src":"1207:187:29"},{"body":{"nodeType":"YulBlock","src":"1518:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1535:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1546:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1528:6:29"},"nodeType":"YulFunctionCall","src":"1528:21:29"},"nodeType":"YulExpressionStatement","src":"1528:21:29"},{"nodeType":"YulAssignment","src":"1558:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1584:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1596:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:29"},"nodeType":"YulFunctionCall","src":"1592:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1566:17:29"},"nodeType":"YulFunctionCall","src":"1566:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1558:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1487:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1498:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1509:4:29","type":""}],"src":"1399:218:29"},{"body":{"nodeType":"YulBlock","src":"1654:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1671:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1678:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1683:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1674:3:29"},"nodeType":"YulFunctionCall","src":"1674:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1664:6:29"},"nodeType":"YulFunctionCall","src":"1664:31:29"},"nodeType":"YulExpressionStatement","src":"1664:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1711:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1714:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1704:6:29"},"nodeType":"YulFunctionCall","src":"1704:15:29"},"nodeType":"YulExpressionStatement","src":"1704:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1735:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1738:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1728:6:29"},"nodeType":"YulFunctionCall","src":"1728:15:29"},"nodeType":"YulExpressionStatement","src":"1728:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1622:127:29"},{"body":{"nodeType":"YulBlock","src":"1801:109:29","statements":[{"nodeType":"YulAssignment","src":"1811:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1820:12:29"},"nodeType":"YulFunctionCall","src":"1820:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1811:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1888:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1897:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1900:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1890:6:29"},"nodeType":"YulFunctionCall","src":"1890:12:29"},"nodeType":"YulExpressionStatement","src":"1890:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1873:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1880:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1869:3:29"},"nodeType":"YulFunctionCall","src":"1869:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1859:2:29"},"nodeType":"YulFunctionCall","src":"1859:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1852:6:29"},"nodeType":"YulFunctionCall","src":"1852:35:29"},"nodeType":"YulIf","src":"1849:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1791:5:29","type":""}],"src":"1754:156:29"},{"body":{"nodeType":"YulBlock","src":"2060:1058:29","statements":[{"body":{"nodeType":"YulBlock","src":"2107:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2116:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2119:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2109:6:29"},"nodeType":"YulFunctionCall","src":"2109:12:29"},"nodeType":"YulExpressionStatement","src":"2109:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2081:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2090:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2077:3:29"},"nodeType":"YulFunctionCall","src":"2077:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2102:3:29","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2073:3:29"},"nodeType":"YulFunctionCall","src":"2073:33:29"},"nodeType":"YulIf","src":"2070:53:29"},{"nodeType":"YulAssignment","src":"2132:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2161:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2142:18:29"},"nodeType":"YulFunctionCall","src":"2142:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2132:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2180:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2211:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2222:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2207:3:29"},"nodeType":"YulFunctionCall","src":"2207:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2194:12:29"},"nodeType":"YulFunctionCall","src":"2194:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2184:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2235:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2245:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2239:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2290:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2299:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2302:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2292:6:29"},"nodeType":"YulFunctionCall","src":"2292:12:29"},"nodeType":"YulExpressionStatement","src":"2292:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2278:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2286:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2275:2:29"},"nodeType":"YulFunctionCall","src":"2275:14:29"},"nodeType":"YulIf","src":"2272:34:29"},{"nodeType":"YulVariableDeclaration","src":"2315:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2329:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"2340:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2325:3:29"},"nodeType":"YulFunctionCall","src":"2325:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2319:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2395:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2404:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2407:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2397:6:29"},"nodeType":"YulFunctionCall","src":"2397:12:29"},"nodeType":"YulExpressionStatement","src":"2397:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2374:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2378:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2370:3:29"},"nodeType":"YulFunctionCall","src":"2370:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2385:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2366:3:29"},"nodeType":"YulFunctionCall","src":"2366:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2359:6:29"},"nodeType":"YulFunctionCall","src":"2359:35:29"},"nodeType":"YulIf","src":"2356:55:29"},{"nodeType":"YulVariableDeclaration","src":"2420:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2443:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2430:12:29"},"nodeType":"YulFunctionCall","src":"2430:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2424:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2469:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2471:16:29"},"nodeType":"YulFunctionCall","src":"2471:18:29"},"nodeType":"YulExpressionStatement","src":"2471:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2461:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2465:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2458:2:29"},"nodeType":"YulFunctionCall","src":"2458:10:29"},"nodeType":"YulIf","src":"2455:36:29"},{"nodeType":"YulVariableDeclaration","src":"2500:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2510:3:29"},"nodeType":"YulFunctionCall","src":"2510:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2504:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2526:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2546:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2540:5:29"},"nodeType":"YulFunctionCall","src":"2540:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2530:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2558:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2580:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2604:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2608:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2600:3:29"},"nodeType":"YulFunctionCall","src":"2600:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2615:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2596:3:29"},"nodeType":"YulFunctionCall","src":"2596:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"2620:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:29"},"nodeType":"YulFunctionCall","src":"2592:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2625:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2588:3:29"},"nodeType":"YulFunctionCall","src":"2588:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2576:3:29"},"nodeType":"YulFunctionCall","src":"2576:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2562:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2688:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2690:16:29"},"nodeType":"YulFunctionCall","src":"2690:18:29"},"nodeType":"YulExpressionStatement","src":"2690:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2647:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2659:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2644:2:29"},"nodeType":"YulFunctionCall","src":"2644:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2667:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2679:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2664:2:29"},"nodeType":"YulFunctionCall","src":"2664:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2641:2:29"},"nodeType":"YulFunctionCall","src":"2641:46:29"},"nodeType":"YulIf","src":"2638:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2726:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2730:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2719:6:29"},"nodeType":"YulFunctionCall","src":"2719:22:29"},"nodeType":"YulExpressionStatement","src":"2719:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2757:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2765:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2750:6:29"},"nodeType":"YulFunctionCall","src":"2750:18:29"},"nodeType":"YulExpressionStatement","src":"2750:18:29"},{"body":{"nodeType":"YulBlock","src":"2814:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2823:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2826:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2816:6:29"},"nodeType":"YulFunctionCall","src":"2816:12:29"},"nodeType":"YulExpressionStatement","src":"2816:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2791:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2795:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2787:3:29"},"nodeType":"YulFunctionCall","src":"2787:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2800:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2783:3:29"},"nodeType":"YulFunctionCall","src":"2783:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2805:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2780:2:29"},"nodeType":"YulFunctionCall","src":"2780:33:29"},"nodeType":"YulIf","src":"2777:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2856:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2864:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:29"},"nodeType":"YulFunctionCall","src":"2852:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2873:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2877:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:29"},"nodeType":"YulFunctionCall","src":"2869:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2882:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2839:12:29"},"nodeType":"YulFunctionCall","src":"2839:46:29"},"nodeType":"YulExpressionStatement","src":"2839:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2909:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2917:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:29"},"nodeType":"YulFunctionCall","src":"2905:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"2922:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2901:3:29"},"nodeType":"YulFunctionCall","src":"2901:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"2927:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2894:6:29"},"nodeType":"YulFunctionCall","src":"2894:35:29"},"nodeType":"YulExpressionStatement","src":"2894:35:29"},{"nodeType":"YulAssignment","src":"2938:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2948:6:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2938:6:29"}]},{"nodeType":"YulAssignment","src":"2963:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3001:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2986:3:29"},"nodeType":"YulFunctionCall","src":"2986:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2973:12:29"},"nodeType":"YulFunctionCall","src":"2973:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2963:6:29"}]},{"nodeType":"YulAssignment","src":"3014:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3024:12:29"},"nodeType":"YulFunctionCall","src":"3024:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3014:6:29"}]},{"nodeType":"YulAssignment","src":"3065:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3096:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3107:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3092:3:29"},"nodeType":"YulFunctionCall","src":"3092:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3075:16:29"},"nodeType":"YulFunctionCall","src":"3075:37:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3065:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1994:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2005:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2017:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2025:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2033:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2041:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2049:6:29","type":""}],"src":"1915:1203:29"},{"body":{"nodeType":"YulBlock","src":"3224:76:29","statements":[{"nodeType":"YulAssignment","src":"3234:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3246:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3257:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3242:3:29"},"nodeType":"YulFunctionCall","src":"3242:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3234:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3276:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3287:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3269:6:29"},"nodeType":"YulFunctionCall","src":"3269:25:29"},"nodeType":"YulExpressionStatement","src":"3269:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3193:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3204:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3215:4:29","type":""}],"src":"3123:177:29"},{"body":{"nodeType":"YulBlock","src":"3406:76:29","statements":[{"nodeType":"YulAssignment","src":"3416:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3428:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3439:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3424:3:29"},"nodeType":"YulFunctionCall","src":"3424:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3416:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3458:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3469:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3451:6:29"},"nodeType":"YulFunctionCall","src":"3451:25:29"},"nodeType":"YulExpressionStatement","src":"3451:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3375:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3386:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3397:4:29","type":""}],"src":"3305:177:29"},{"body":{"nodeType":"YulBlock","src":"3591:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"3637:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3646:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3649:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3639:6:29"},"nodeType":"YulFunctionCall","src":"3639:12:29"},"nodeType":"YulExpressionStatement","src":"3639:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3612:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3621:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3608:3:29"},"nodeType":"YulFunctionCall","src":"3608:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3633:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3604:3:29"},"nodeType":"YulFunctionCall","src":"3604:32:29"},"nodeType":"YulIf","src":"3601:52:29"},{"nodeType":"YulAssignment","src":"3662:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3691:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3672:18:29"},"nodeType":"YulFunctionCall","src":"3672:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3662:6:29"}]},{"nodeType":"YulAssignment","src":"3710:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3743:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3754:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3739:3:29"},"nodeType":"YulFunctionCall","src":"3739:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3720:18:29"},"nodeType":"YulFunctionCall","src":"3720:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3710:6:29"}]},{"nodeType":"YulAssignment","src":"3767:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3805:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:29"},"nodeType":"YulFunctionCall","src":"3790:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3777:12:29"},"nodeType":"YulFunctionCall","src":"3777:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3767:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3541:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3552:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3564:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3572:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3580:6:29","type":""}],"src":"3487:328:29"},{"body":{"nodeType":"YulBlock","src":"3890:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3936:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3945:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3948:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3938:6:29"},"nodeType":"YulFunctionCall","src":"3938:12:29"},"nodeType":"YulExpressionStatement","src":"3938:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3911:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3920:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3907:3:29"},"nodeType":"YulFunctionCall","src":"3907:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3932:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3903:3:29"},"nodeType":"YulFunctionCall","src":"3903:32:29"},"nodeType":"YulIf","src":"3900:52:29"},{"nodeType":"YulAssignment","src":"3961:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3984:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3971:12:29"},"nodeType":"YulFunctionCall","src":"3971:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3961:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3856:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3867:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3879:6:29","type":""}],"src":"3820:180:29"},{"body":{"nodeType":"YulBlock","src":"4075:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"4121:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4130:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4133:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4123:6:29"},"nodeType":"YulFunctionCall","src":"4123:12:29"},"nodeType":"YulExpressionStatement","src":"4123:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4096:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4105:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4092:3:29"},"nodeType":"YulFunctionCall","src":"4092:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4117:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4088:3:29"},"nodeType":"YulFunctionCall","src":"4088:32:29"},"nodeType":"YulIf","src":"4085:52:29"},{"nodeType":"YulAssignment","src":"4146:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4156:18:29"},"nodeType":"YulFunctionCall","src":"4156:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4146:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4041:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4052:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4064:6:29","type":""}],"src":"4005:186:29"},{"body":{"nodeType":"YulBlock","src":"4266:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"4312:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4321:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4324:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4314:6:29"},"nodeType":"YulFunctionCall","src":"4314:12:29"},"nodeType":"YulExpressionStatement","src":"4314:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4287:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4283:3:29"},"nodeType":"YulFunctionCall","src":"4283:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4308:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4279:3:29"},"nodeType":"YulFunctionCall","src":"4279:32:29"},"nodeType":"YulIf","src":"4276:52:29"},{"nodeType":"YulAssignment","src":"4337:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4360:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4347:12:29"},"nodeType":"YulFunctionCall","src":"4347:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4337:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4232:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4243:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4255:6:29","type":""}],"src":"4196:180:29"},{"body":{"nodeType":"YulBlock","src":"4468:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"4514:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4523:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4526:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4516:6:29"},"nodeType":"YulFunctionCall","src":"4516:12:29"},"nodeType":"YulExpressionStatement","src":"4516:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4489:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4485:3:29"},"nodeType":"YulFunctionCall","src":"4485:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4510:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4481:3:29"},"nodeType":"YulFunctionCall","src":"4481:32:29"},"nodeType":"YulIf","src":"4478:52:29"},{"nodeType":"YulAssignment","src":"4539:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4562:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4549:12:29"},"nodeType":"YulFunctionCall","src":"4549:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4539:6:29"}]},{"nodeType":"YulAssignment","src":"4581:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4614:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4625:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4610:3:29"},"nodeType":"YulFunctionCall","src":"4610:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4591:18:29"},"nodeType":"YulFunctionCall","src":"4591:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4581:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4426:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4437:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4449:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4457:6:29","type":""}],"src":"4381:254:29"},{"body":{"nodeType":"YulBlock","src":"4737:87:29","statements":[{"nodeType":"YulAssignment","src":"4747:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4759:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4770:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4755:3:29"},"nodeType":"YulFunctionCall","src":"4755:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4747:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4789:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4804:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4812:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4800:3:29"},"nodeType":"YulFunctionCall","src":"4800:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4782:6:29"},"nodeType":"YulFunctionCall","src":"4782:36:29"},"nodeType":"YulExpressionStatement","src":"4782:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4706:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4717:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4728:4:29","type":""}],"src":"4640:184:29"},{"body":{"nodeType":"YulBlock","src":"4902:275:29","statements":[{"body":{"nodeType":"YulBlock","src":"4951:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4960:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4963:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4953:6:29"},"nodeType":"YulFunctionCall","src":"4953:12:29"},"nodeType":"YulExpressionStatement","src":"4953:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4930:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4938:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4926:3:29"},"nodeType":"YulFunctionCall","src":"4926:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"4945:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4922:3:29"},"nodeType":"YulFunctionCall","src":"4922:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4915:6:29"},"nodeType":"YulFunctionCall","src":"4915:35:29"},"nodeType":"YulIf","src":"4912:55:29"},{"nodeType":"YulAssignment","src":"4976:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4999:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4986:12:29"},"nodeType":"YulFunctionCall","src":"4986:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4976:6:29"}]},{"body":{"nodeType":"YulBlock","src":"5049:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5058:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5061:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5051:6:29"},"nodeType":"YulFunctionCall","src":"5051:12:29"},"nodeType":"YulExpressionStatement","src":"5051:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5021:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5029:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5018:2:29"},"nodeType":"YulFunctionCall","src":"5018:30:29"},"nodeType":"YulIf","src":"5015:50:29"},{"nodeType":"YulAssignment","src":"5074:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5090:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5098:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5086:3:29"},"nodeType":"YulFunctionCall","src":"5086:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5074:8:29"}]},{"body":{"nodeType":"YulBlock","src":"5155:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5164:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5167:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5157:6:29"},"nodeType":"YulFunctionCall","src":"5157:12:29"},"nodeType":"YulExpressionStatement","src":"5157:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5126:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"5134:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:29"},"nodeType":"YulFunctionCall","src":"5122:19:29"},{"kind":"number","nodeType":"YulLiteral","src":"5143:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5118:3:29"},"nodeType":"YulFunctionCall","src":"5118:30:29"},{"name":"end","nodeType":"YulIdentifier","src":"5150:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5115:2:29"},"nodeType":"YulFunctionCall","src":"5115:39:29"},"nodeType":"YulIf","src":"5112:59:29"}]},"name":"abi_decode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4865:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"4873:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"4881:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"4891:6:29","type":""}],"src":"4829:348:29"},{"body":{"nodeType":"YulBlock","src":"5272:321:29","statements":[{"body":{"nodeType":"YulBlock","src":"5318:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5327:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5330:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5320:6:29"},"nodeType":"YulFunctionCall","src":"5320:12:29"},"nodeType":"YulExpressionStatement","src":"5320:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5293:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5302:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5289:3:29"},"nodeType":"YulFunctionCall","src":"5289:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5314:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5285:3:29"},"nodeType":"YulFunctionCall","src":"5285:32:29"},"nodeType":"YulIf","src":"5282:52:29"},{"nodeType":"YulVariableDeclaration","src":"5343:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5370:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5357:12:29"},"nodeType":"YulFunctionCall","src":"5357:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5347:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5423:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5432:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5435:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5425:6:29"},"nodeType":"YulFunctionCall","src":"5425:12:29"},"nodeType":"YulExpressionStatement","src":"5425:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5395:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5403:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5392:2:29"},"nodeType":"YulFunctionCall","src":"5392:30:29"},"nodeType":"YulIf","src":"5389:50:29"},{"nodeType":"YulVariableDeclaration","src":"5448:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5505:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"5516:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5501:3:29"},"nodeType":"YulFunctionCall","src":"5501:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5525:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"5474:26:29"},"nodeType":"YulFunctionCall","src":"5474:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5452:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5462:8:29","type":""}]},{"nodeType":"YulAssignment","src":"5542:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5552:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5542:6:29"}]},{"nodeType":"YulAssignment","src":"5569:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5579:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5569:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5230:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5241:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5253:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5261:6:29","type":""}],"src":"5182:411:29"},{"body":{"nodeType":"YulBlock","src":"5685:161:29","statements":[{"body":{"nodeType":"YulBlock","src":"5731:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5740:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5743:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5733:6:29"},"nodeType":"YulFunctionCall","src":"5733:12:29"},"nodeType":"YulExpressionStatement","src":"5733:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5706:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5715:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5702:3:29"},"nodeType":"YulFunctionCall","src":"5702:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5727:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5698:3:29"},"nodeType":"YulFunctionCall","src":"5698:32:29"},"nodeType":"YulIf","src":"5695:52:29"},{"nodeType":"YulAssignment","src":"5756:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5779:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5766:12:29"},"nodeType":"YulFunctionCall","src":"5766:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5756:6:29"}]},{"nodeType":"YulAssignment","src":"5798:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5825:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5836:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5821:3:29"},"nodeType":"YulFunctionCall","src":"5821:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5808:12:29"},"nodeType":"YulFunctionCall","src":"5808:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5798:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5643:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5654:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5666:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5674:6:29","type":""}],"src":"5598:248:29"},{"body":{"nodeType":"YulBlock","src":"5952:102:29","statements":[{"nodeType":"YulAssignment","src":"5962:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5974:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5985:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5970:3:29"},"nodeType":"YulFunctionCall","src":"5970:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5962:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6004:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6019:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6035:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6040:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6031:3:29"},"nodeType":"YulFunctionCall","src":"6031:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6044:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6027:3:29"},"nodeType":"YulFunctionCall","src":"6027:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6015:3:29"},"nodeType":"YulFunctionCall","src":"6015:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5997:6:29"},"nodeType":"YulFunctionCall","src":"5997:51:29"},"nodeType":"YulExpressionStatement","src":"5997:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5921:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5932:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5943:4:29","type":""}],"src":"5851:203:29"},{"body":{"nodeType":"YulBlock","src":"6165:378:29","statements":[{"body":{"nodeType":"YulBlock","src":"6211:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6220:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6223:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6213:6:29"},"nodeType":"YulFunctionCall","src":"6213:12:29"},"nodeType":"YulExpressionStatement","src":"6213:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6186:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6195:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6182:3:29"},"nodeType":"YulFunctionCall","src":"6182:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6207:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6178:3:29"},"nodeType":"YulFunctionCall","src":"6178:32:29"},"nodeType":"YulIf","src":"6175:52:29"},{"nodeType":"YulAssignment","src":"6236:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6265:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6246:18:29"},"nodeType":"YulFunctionCall","src":"6246:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6236:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"6284:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6315:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6326:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6311:3:29"},"nodeType":"YulFunctionCall","src":"6311:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6298:12:29"},"nodeType":"YulFunctionCall","src":"6298:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6288:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6373:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6382:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6385:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6375:6:29"},"nodeType":"YulFunctionCall","src":"6375:12:29"},"nodeType":"YulExpressionStatement","src":"6375:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6345:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6353:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6342:2:29"},"nodeType":"YulFunctionCall","src":"6342:30:29"},"nodeType":"YulIf","src":"6339:50:29"},{"nodeType":"YulVariableDeclaration","src":"6398:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6455:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"6466:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6451:3:29"},"nodeType":"YulFunctionCall","src":"6451:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6475:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"6424:26:29"},"nodeType":"YulFunctionCall","src":"6424:59:29"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"6402:8:29","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"6412:8:29","type":""}]},{"nodeType":"YulAssignment","src":"6492:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6502:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6492:6:29"}]},{"nodeType":"YulAssignment","src":"6519:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6529:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6519:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6115:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6126:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6138:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6146:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6154:6:29","type":""}],"src":"6059:484:29"},{"body":{"nodeType":"YulBlock","src":"6635:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"6681:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6690:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6693:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6683:6:29"},"nodeType":"YulFunctionCall","src":"6683:12:29"},"nodeType":"YulExpressionStatement","src":"6683:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6656:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6652:3:29"},"nodeType":"YulFunctionCall","src":"6652:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6677:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6648:3:29"},"nodeType":"YulFunctionCall","src":"6648:32:29"},"nodeType":"YulIf","src":"6645:52:29"},{"nodeType":"YulAssignment","src":"6706:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6735:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6716:18:29"},"nodeType":"YulFunctionCall","src":"6716:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6706:6:29"}]},{"nodeType":"YulAssignment","src":"6754:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6787:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6798:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6783:3:29"},"nodeType":"YulFunctionCall","src":"6783:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6764:18:29"},"nodeType":"YulFunctionCall","src":"6764:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6754:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6593:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6604:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6616:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6624:6:29","type":""}],"src":"6548:260:29"},{"body":{"nodeType":"YulBlock","src":"6972:707:29","statements":[{"body":{"nodeType":"YulBlock","src":"7019:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7028:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7031:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7021:6:29"},"nodeType":"YulFunctionCall","src":"7021:12:29"},"nodeType":"YulExpressionStatement","src":"7021:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6993:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7002:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6989:3:29"},"nodeType":"YulFunctionCall","src":"6989:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7014:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6985:3:29"},"nodeType":"YulFunctionCall","src":"6985:33:29"},"nodeType":"YulIf","src":"6982:53:29"},{"nodeType":"YulVariableDeclaration","src":"7044:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7071:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7058:12:29"},"nodeType":"YulFunctionCall","src":"7058:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7048:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7090:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7100:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7094:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7145:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7154:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7157:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7147:6:29"},"nodeType":"YulFunctionCall","src":"7147:12:29"},"nodeType":"YulExpressionStatement","src":"7147:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7133:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7141:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7130:2:29"},"nodeType":"YulFunctionCall","src":"7130:14:29"},"nodeType":"YulIf","src":"7127:34:29"},{"nodeType":"YulVariableDeclaration","src":"7170:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7227:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"7238:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7223:3:29"},"nodeType":"YulFunctionCall","src":"7223:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7247:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7196:26:29"},"nodeType":"YulFunctionCall","src":"7196:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7174:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7184:8:29","type":""}]},{"nodeType":"YulAssignment","src":"7264:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"7274:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7264:6:29"}]},{"nodeType":"YulAssignment","src":"7291:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"7301:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7291:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"7318:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7351:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7362:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7347:3:29"},"nodeType":"YulFunctionCall","src":"7347:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7334:12:29"},"nodeType":"YulFunctionCall","src":"7334:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7322:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7395:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7404:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7407:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7397:6:29"},"nodeType":"YulFunctionCall","src":"7397:12:29"},"nodeType":"YulExpressionStatement","src":"7397:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7381:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7391:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7378:2:29"},"nodeType":"YulFunctionCall","src":"7378:16:29"},"nodeType":"YulIf","src":"7375:36:29"},{"nodeType":"YulVariableDeclaration","src":"7420:87:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7477:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7488:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7473:3:29"},"nodeType":"YulFunctionCall","src":"7473:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7499:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7446:26:29"},"nodeType":"YulFunctionCall","src":"7446:61:29"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"7424:8:29","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"7434:8:29","type":""}]},{"nodeType":"YulAssignment","src":"7516:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7526:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7516:6:29"}]},{"nodeType":"YulAssignment","src":"7543:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7553:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7543:6:29"}]},{"nodeType":"YulAssignment","src":"7570:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7601:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7612:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7597:3:29"},"nodeType":"YulFunctionCall","src":"7597:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"7580:16:29"},"nodeType":"YulFunctionCall","src":"7580:36:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7570:6:29"}]},{"nodeType":"YulAssignment","src":"7625:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7658:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7669:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7654:3:29"},"nodeType":"YulFunctionCall","src":"7654:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7635:18:29"},"nodeType":"YulFunctionCall","src":"7635:38:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7625:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6898:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6909:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6921:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6929:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6937:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6945:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6953:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6961:6:29","type":""}],"src":"6813:866:29"},{"body":{"nodeType":"YulBlock","src":"7739:325:29","statements":[{"nodeType":"YulAssignment","src":"7749:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7763:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"7766:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7759:3:29"},"nodeType":"YulFunctionCall","src":"7759:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7749:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"7780:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7810:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"7816:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7806:3:29"},"nodeType":"YulFunctionCall","src":"7806:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"7784:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7857:31:29","statements":[{"nodeType":"YulAssignment","src":"7859:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7873:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7881:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7869:3:29"},"nodeType":"YulFunctionCall","src":"7869:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7859:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7837:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7830:6:29"},"nodeType":"YulFunctionCall","src":"7830:26:29"},"nodeType":"YulIf","src":"7827:61:29"},{"body":{"nodeType":"YulBlock","src":"7947:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7968:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7975:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7980:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7971:3:29"},"nodeType":"YulFunctionCall","src":"7971:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7961:6:29"},"nodeType":"YulFunctionCall","src":"7961:31:29"},"nodeType":"YulExpressionStatement","src":"7961:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8012:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8015:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8005:6:29"},"nodeType":"YulFunctionCall","src":"8005:15:29"},"nodeType":"YulExpressionStatement","src":"8005:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8040:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8043:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8033:6:29"},"nodeType":"YulFunctionCall","src":"8033:15:29"},"nodeType":"YulExpressionStatement","src":"8033:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7903:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7926:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7934:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7923:2:29"},"nodeType":"YulFunctionCall","src":"7923:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7900:2:29"},"nodeType":"YulFunctionCall","src":"7900:38:29"},"nodeType":"YulIf","src":"7897:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"7719:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"7728:6:29","type":""}],"src":"7684:380:29"},{"body":{"nodeType":"YulBlock","src":"8243:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8260:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8253:6:29"},"nodeType":"YulFunctionCall","src":"8253:21:29"},"nodeType":"YulExpressionStatement","src":"8253:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8294:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8305:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8290:3:29"},"nodeType":"YulFunctionCall","src":"8290:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"8310:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8283:6:29"},"nodeType":"YulFunctionCall","src":"8283:30:29"},"nodeType":"YulExpressionStatement","src":"8283:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8333:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8344:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8329:3:29"},"nodeType":"YulFunctionCall","src":"8329:18:29"},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d617463","kind":"string","nodeType":"YulLiteral","src":"8349:34:29","type":"","value":"Signer and signature do not matc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8322:6:29"},"nodeType":"YulFunctionCall","src":"8322:62:29"},"nodeType":"YulExpressionStatement","src":"8322:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8404:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8415:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8400:3:29"},"nodeType":"YulFunctionCall","src":"8400:18:29"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"8420:3:29","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8393:6:29"},"nodeType":"YulFunctionCall","src":"8393:31:29"},"nodeType":"YulExpressionStatement","src":"8393:31:29"},{"nodeType":"YulAssignment","src":"8433:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8445:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8456:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8441:3:29"},"nodeType":"YulFunctionCall","src":"8441:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8433:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8220:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8234:4:29","type":""}],"src":"8069:397:29"},{"body":{"nodeType":"YulBlock","src":"8662:241:29","statements":[{"nodeType":"YulVariableDeclaration","src":"8672:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8690:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8695:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8686:3:29"},"nodeType":"YulFunctionCall","src":"8686:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"8699:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8682:3:29"},"nodeType":"YulFunctionCall","src":"8682:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8676:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8717:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8732:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8740:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8728:3:29"},"nodeType":"YulFunctionCall","src":"8728:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8710:6:29"},"nodeType":"YulFunctionCall","src":"8710:34:29"},"nodeType":"YulExpressionStatement","src":"8710:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8764:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8775:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8760:3:29"},"nodeType":"YulFunctionCall","src":"8760:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8784:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8792:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8780:3:29"},"nodeType":"YulFunctionCall","src":"8780:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8753:6:29"},"nodeType":"YulFunctionCall","src":"8753:43:29"},"nodeType":"YulExpressionStatement","src":"8753:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8816:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8827:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8812:3:29"},"nodeType":"YulFunctionCall","src":"8812:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"8832:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8805:6:29"},"nodeType":"YulFunctionCall","src":"8805:30:29"},"nodeType":"YulExpressionStatement","src":"8805:30:29"},{"nodeType":"YulAssignment","src":"8844:53:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8870:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8882:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8893:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8878:3:29"},"nodeType":"YulFunctionCall","src":"8878:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"8852:17:29"},"nodeType":"YulFunctionCall","src":"8852:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8844:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8615:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8626:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8634:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8642:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8653:4:29","type":""}],"src":"8471:432:29"},{"body":{"nodeType":"YulBlock","src":"9073:263:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9083:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9103:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9097:5:29"},"nodeType":"YulFunctionCall","src":"9097:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9087:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9158:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9166:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9154:3:29"},"nodeType":"YulFunctionCall","src":"9154:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"9173:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9178:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9119:34:29"},"nodeType":"YulFunctionCall","src":"9119:66:29"},"nodeType":"YulExpressionStatement","src":"9119:66:29"},{"nodeType":"YulVariableDeclaration","src":"9194:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9211:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9216:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9207:3:29"},"nodeType":"YulFunctionCall","src":"9207:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"9198:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"9239:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9254:2:29","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"9258:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9250:3:29"},"nodeType":"YulFunctionCall","src":"9250:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9271:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9267:3:29"},"nodeType":"YulFunctionCall","src":"9267:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9246:3:29"},"nodeType":"YulFunctionCall","src":"9246:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9232:6:29"},"nodeType":"YulFunctionCall","src":"9232:68:29"},"nodeType":"YulExpressionStatement","src":"9232:68:29"},{"nodeType":"YulAssignment","src":"9309:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"9320:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"9327:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9316:3:29"},"nodeType":"YulFunctionCall","src":"9316:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9309:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9041:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9046:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9054:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9065:3:29","type":""}],"src":"8908:428:29"},{"body":{"nodeType":"YulBlock","src":"9478:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9488:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9508:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9502:5:29"},"nodeType":"YulFunctionCall","src":"9502:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9492:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9563:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9571:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9559:3:29"},"nodeType":"YulFunctionCall","src":"9559:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"9578:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9583:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9524:34:29"},"nodeType":"YulFunctionCall","src":"9524:66:29"},"nodeType":"YulExpressionStatement","src":"9524:66:29"},{"nodeType":"YulAssignment","src":"9599:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9610:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9615:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9606:3:29"},"nodeType":"YulFunctionCall","src":"9606:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9599:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9454:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9459:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9470:3:29","type":""}],"src":"9341:287:29"},{"body":{"nodeType":"YulBlock","src":"9807:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9824:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9835:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9817:6:29"},"nodeType":"YulFunctionCall","src":"9817:21:29"},"nodeType":"YulExpressionStatement","src":"9817:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9858:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9869:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9854:3:29"},"nodeType":"YulFunctionCall","src":"9854:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"9874:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9847:6:29"},"nodeType":"YulFunctionCall","src":"9847:30:29"},"nodeType":"YulExpressionStatement","src":"9847:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9897:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9908:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9893:3:29"},"nodeType":"YulFunctionCall","src":"9893:18:29"},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","kind":"string","nodeType":"YulLiteral","src":"9913:30:29","type":"","value":"Function call not successful"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9886:6:29"},"nodeType":"YulFunctionCall","src":"9886:58:29"},"nodeType":"YulExpressionStatement","src":"9886:58:29"},{"nodeType":"YulAssignment","src":"9953:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9965:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9976:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9961:3:29"},"nodeType":"YulFunctionCall","src":"9961:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9953:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9784:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9798:4:29","type":""}],"src":"9633:352:29"},{"body":{"nodeType":"YulBlock","src":"10164:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10192:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10174:6:29"},"nodeType":"YulFunctionCall","src":"10174:21:29"},"nodeType":"YulExpressionStatement","src":"10174:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10215:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10226:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10211:3:29"},"nodeType":"YulFunctionCall","src":"10211:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"10231:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10204:6:29"},"nodeType":"YulFunctionCall","src":"10204:30:29"},"nodeType":"YulExpressionStatement","src":"10204:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10254:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10265:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10250:3:29"},"nodeType":"YulFunctionCall","src":"10250:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"10270:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10243:6:29"},"nodeType":"YulFunctionCall","src":"10243:62:29"},"nodeType":"YulExpressionStatement","src":"10243:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10325:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10336:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10321:3:29"},"nodeType":"YulFunctionCall","src":"10321:18:29"},{"hexValue":"2061646d696e20746f206772616e74","kind":"string","nodeType":"YulLiteral","src":"10341:17:29","type":"","value":" admin to grant"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10314:6:29"},"nodeType":"YulFunctionCall","src":"10314:45:29"},"nodeType":"YulExpressionStatement","src":"10314:45:29"},{"nodeType":"YulAssignment","src":"10368:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10380:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10391:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10376:3:29"},"nodeType":"YulFunctionCall","src":"10376:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10368:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10141:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10155:4:29","type":""}],"src":"9990:411:29"},{"body":{"nodeType":"YulBlock","src":"10580:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10597:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10608:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10590:6:29"},"nodeType":"YulFunctionCall","src":"10590:21:29"},"nodeType":"YulExpressionStatement","src":"10590:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10631:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10642:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10627:3:29"},"nodeType":"YulFunctionCall","src":"10627:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"10647:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10620:6:29"},"nodeType":"YulFunctionCall","src":"10620:30:29"},"nodeType":"YulExpressionStatement","src":"10620:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10670:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10681:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10666:3:29"},"nodeType":"YulFunctionCall","src":"10666:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"10686:34:29","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10659:6:29"},"nodeType":"YulFunctionCall","src":"10659:62:29"},"nodeType":"YulExpressionStatement","src":"10659:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10741:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10752:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10737:3:29"},"nodeType":"YulFunctionCall","src":"10737:18:29"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"10757:17:29","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10730:6:29"},"nodeType":"YulFunctionCall","src":"10730:45:29"},"nodeType":"YulExpressionStatement","src":"10730:45:29"},{"nodeType":"YulAssignment","src":"10784:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10796:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10807:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10792:3:29"},"nodeType":"YulFunctionCall","src":"10792:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10784:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10557:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10571:4:29","type":""}],"src":"10406:411:29"},{"body":{"nodeType":"YulBlock","src":"10996:181:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11013:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11024:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11006:6:29"},"nodeType":"YulFunctionCall","src":"11006:21:29"},"nodeType":"YulExpressionStatement","src":"11006:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11047:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11058:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11043:3:29"},"nodeType":"YulFunctionCall","src":"11043:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11063:2:29","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11036:6:29"},"nodeType":"YulFunctionCall","src":"11036:30:29"},"nodeType":"YulExpressionStatement","src":"11036:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11086:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11097:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11082:3:29"},"nodeType":"YulFunctionCall","src":"11082:18:29"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"11102:33:29","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11075:6:29"},"nodeType":"YulFunctionCall","src":"11075:61:29"},"nodeType":"YulExpressionStatement","src":"11075:61:29"},{"nodeType":"YulAssignment","src":"11145:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11157:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11168:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11153:3:29"},"nodeType":"YulFunctionCall","src":"11153:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11145:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10973:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10987:4:29","type":""}],"src":"10822:355:29"},{"body":{"nodeType":"YulBlock","src":"11238:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11255:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"11258:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11248:6:29"},"nodeType":"YulFunctionCall","src":"11248:14:29"},"nodeType":"YulExpressionStatement","src":"11248:14:29"},{"nodeType":"YulAssignment","src":"11271:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11289:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11292:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"11279:9:29"},"nodeType":"YulFunctionCall","src":"11279:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"11271:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11221:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"11229:4:29","type":""}],"src":"11182:121:29"},{"body":{"nodeType":"YulBlock","src":"11426:845:29","statements":[{"nodeType":"YulVariableDeclaration","src":"11436:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11446:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11440:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11464:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11475:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11457:6:29"},"nodeType":"YulFunctionCall","src":"11457:21:29"},"nodeType":"YulExpressionStatement","src":"11457:21:29"},{"nodeType":"YulVariableDeclaration","src":"11487:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11498:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"11491:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11508:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11531:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"11525:5:29"},"nodeType":"YulFunctionCall","src":"11525:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"11512:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11547:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"11587:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"11561:25:29"},"nodeType":"YulFunctionCall","src":"11561:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11551:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11617:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11628:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11613:3:29"},"nodeType":"YulFunctionCall","src":"11613:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"11633:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11606:6:29"},"nodeType":"YulFunctionCall","src":"11606:34:29"},"nodeType":"YulExpressionStatement","src":"11606:34:29"},{"nodeType":"YulVariableDeclaration","src":"11649:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11659:2:29","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11653:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11670:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11680:1:29","type":"","value":"1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11674:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"11731:151:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11756:9:29"},{"name":"_2","nodeType":"YulIdentifier","src":"11767:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11752:3:29"},"nodeType":"YulFunctionCall","src":"11752:18:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"11776:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11791:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11787:3:29"},"nodeType":"YulFunctionCall","src":"11787:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11772:3:29"},"nodeType":"YulFunctionCall","src":"11772:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11745:6:29"},"nodeType":"YulFunctionCall","src":"11745:52:29"},"nodeType":"YulExpressionStatement","src":"11745:52:29"},{"nodeType":"YulAssignment","src":"11810:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11825:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11840:1:29","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11857:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11850:6:29"},"nodeType":"YulFunctionCall","src":"11850:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11843:6:29"},"nodeType":"YulFunctionCall","src":"11843:22:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11836:3:29"},"nodeType":"YulFunctionCall","src":"11836:30:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11821:3:29"},"nodeType":"YulFunctionCall","src":"11821:46:29"},{"name":"_2","nodeType":"YulIdentifier","src":"11869:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11817:3:29"},"nodeType":"YulFunctionCall","src":"11817:55:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11810:3:29"}]}]},"nodeType":"YulCase","src":"11724:158:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11729:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"11898:347:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11919:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"11922:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11912:6:29"},"nodeType":"YulFunctionCall","src":"11912:17:29"},"nodeType":"YulExpressionStatement","src":"11912:17:29"},{"nodeType":"YulVariableDeclaration","src":"11942:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11967:1:29","type":"","value":"0"},{"name":"_1","nodeType":"YulIdentifier","src":"11970:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"11957:9:29"},"nodeType":"YulFunctionCall","src":"11957:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"11946:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11986:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11995:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11990:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"12063:126:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12096:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"12107:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12092:3:29"},"nodeType":"YulFunctionCall","src":"12092:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12111:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12088:3:29"},"nodeType":"YulFunctionCall","src":"12088:26:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12122:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12116:5:29"},"nodeType":"YulFunctionCall","src":"12116:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12081:6:29"},"nodeType":"YulFunctionCall","src":"12081:50:29"},"nodeType":"YulExpressionStatement","src":"12081:50:29"},{"nodeType":"YulAssignment","src":"12148:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12163:7:29"},{"name":"_3","nodeType":"YulIdentifier","src":"12172:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12159:3:29"},"nodeType":"YulFunctionCall","src":"12159:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12148:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12020:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"12023:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12017:2:29"},"nodeType":"YulFunctionCall","src":"12017:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12031:19:29","statements":[{"nodeType":"YulAssignment","src":"12033:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12042:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12045:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12038:3:29"},"nodeType":"YulFunctionCall","src":"12038:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12033:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"12013:3:29","statements":[]},"src":"12009:180:29"},{"nodeType":"YulAssignment","src":"12202:33:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12217:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"12228:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12213:3:29"},"nodeType":"YulFunctionCall","src":"12213:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12232:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12209:3:29"},"nodeType":"YulFunctionCall","src":"12209:26:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12202:3:29"}]}]},"nodeType":"YulCase","src":"11891:354:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11896:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"11701:9:29"},{"name":"_3","nodeType":"YulIdentifier","src":"11712:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11697:3:29"},"nodeType":"YulFunctionCall","src":"11697:18:29"},"nodeType":"YulSwitch","src":"11690:555:29"},{"nodeType":"YulAssignment","src":"12254:11:29","value":{"name":"ret","nodeType":"YulIdentifier","src":"12262:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12254:4:29"}]}]},"name":"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11395:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11406:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11417:4:29","type":""}],"src":"11308:963:29"},{"body":{"nodeType":"YulBlock","src":"12450:238:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12467:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12478:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12460:6:29"},"nodeType":"YulFunctionCall","src":"12460:21:29"},"nodeType":"YulExpressionStatement","src":"12460:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12512:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12497:3:29"},"nodeType":"YulFunctionCall","src":"12497:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"12517:2:29","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12490:6:29"},"nodeType":"YulFunctionCall","src":"12490:30:29"},"nodeType":"YulExpressionStatement","src":"12490:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12540:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12551:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12536:3:29"},"nodeType":"YulFunctionCall","src":"12536:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"12556:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12529:6:29"},"nodeType":"YulFunctionCall","src":"12529:62:29"},"nodeType":"YulExpressionStatement","src":"12529:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12622:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12607:3:29"},"nodeType":"YulFunctionCall","src":"12607:18:29"},{"hexValue":"2061646d696e20746f207265766f6b65","kind":"string","nodeType":"YulLiteral","src":"12627:18:29","type":"","value":" admin to revoke"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12600:6:29"},"nodeType":"YulFunctionCall","src":"12600:46:29"},"nodeType":"YulExpressionStatement","src":"12600:46:29"},{"nodeType":"YulAssignment","src":"12655:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12667:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12678:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12663:3:29"},"nodeType":"YulFunctionCall","src":"12663:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12655:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12427:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12441:4:29","type":""}],"src":"12276:412:29"},{"body":{"nodeType":"YulBlock","src":"12867:164:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12884:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12895:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12877:6:29"},"nodeType":"YulFunctionCall","src":"12877:21:29"},"nodeType":"YulExpressionStatement","src":"12877:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12918:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12929:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12914:3:29"},"nodeType":"YulFunctionCall","src":"12914:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"12934:2:29","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12907:6:29"},"nodeType":"YulFunctionCall","src":"12907:30:29"},"nodeType":"YulExpressionStatement","src":"12907:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12957:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12968:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12953:3:29"},"nodeType":"YulFunctionCall","src":"12953:18:29"},{"hexValue":"616c726561647920696e69746564","kind":"string","nodeType":"YulLiteral","src":"12973:16:29","type":"","value":"already inited"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12946:6:29"},"nodeType":"YulFunctionCall","src":"12946:44:29"},"nodeType":"YulExpressionStatement","src":"12946:44:29"},{"nodeType":"YulAssignment","src":"12999:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13011:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13007:3:29"},"nodeType":"YulFunctionCall","src":"13007:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12999:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12844:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12858:4:29","type":""}],"src":"12693:338:29"},{"body":{"nodeType":"YulBlock","src":"13286:169:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13303:3:29"},{"hexValue":"4368696c64","kind":"string","nodeType":"YulLiteral","src":"13308:7:29","type":"","value":"Child"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13296:6:29"},"nodeType":"YulFunctionCall","src":"13296:20:29"},"nodeType":"YulExpressionStatement","src":"13296:20:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13342:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13347:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13338:3:29"},"nodeType":"YulFunctionCall","src":"13338:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"13351:6:29"},{"name":"value1","nodeType":"YulIdentifier","src":"13359:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13325:12:29"},"nodeType":"YulFunctionCall","src":"13325:41:29"},"nodeType":"YulExpressionStatement","src":"13325:41:29"},{"nodeType":"YulVariableDeclaration","src":"13375:34:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13393:3:29"},{"name":"value1","nodeType":"YulIdentifier","src":"13398:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13389:3:29"},"nodeType":"YulFunctionCall","src":"13389:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"13407:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13385:3:29"},"nodeType":"YulFunctionCall","src":"13385:24:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13379:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13425:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"13429:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13418:6:29"},"nodeType":"YulFunctionCall","src":"13418:13:29"},"nodeType":"YulExpressionStatement","src":"13418:13:29"},{"nodeType":"YulAssignment","src":"13440:9:29","value":{"name":"_1","nodeType":"YulIdentifier","src":"13447:2:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13440:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13254:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13259:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13267:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13278:3:29","type":""}],"src":"13036:419:29"},{"body":{"nodeType":"YulBlock","src":"13634:226:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13651:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13662:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13644:6:29"},"nodeType":"YulFunctionCall","src":"13644:21:29"},"nodeType":"YulExpressionStatement","src":"13644:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13685:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13696:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13681:3:29"},"nodeType":"YulFunctionCall","src":"13681:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"13701:2:29","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13674:6:29"},"nodeType":"YulFunctionCall","src":"13674:30:29"},"nodeType":"YulExpressionStatement","src":"13674:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13724:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13735:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13720:3:29"},"nodeType":"YulFunctionCall","src":"13720:18:29"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"13740:34:29","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13713:6:29"},"nodeType":"YulFunctionCall","src":"13713:62:29"},"nodeType":"YulExpressionStatement","src":"13713:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13795:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13806:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13791:3:29"},"nodeType":"YulFunctionCall","src":"13791:18:29"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"13811:6:29","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13784:6:29"},"nodeType":"YulFunctionCall","src":"13784:34:29"},"nodeType":"YulExpressionStatement","src":"13784:34:29"},{"nodeType":"YulAssignment","src":"13827:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13839:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13850:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13835:3:29"},"nodeType":"YulFunctionCall","src":"13835:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13827:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13611:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13625:4:29","type":""}],"src":"13460:400:29"},{"body":{"nodeType":"YulBlock","src":"14039:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14056:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14067:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14049:6:29"},"nodeType":"YulFunctionCall","src":"14049:21:29"},"nodeType":"YulExpressionStatement","src":"14049:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14090:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14101:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14086:3:29"},"nodeType":"YulFunctionCall","src":"14086:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"14106:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14079:6:29"},"nodeType":"YulFunctionCall","src":"14079:30:29"},"nodeType":"YulExpressionStatement","src":"14079:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14129:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14140:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14125:3:29"},"nodeType":"YulFunctionCall","src":"14125:18:29"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"14145:34:29","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14118:6:29"},"nodeType":"YulFunctionCall","src":"14118:62:29"},"nodeType":"YulExpressionStatement","src":"14118:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14200:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14211:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14196:3:29"},"nodeType":"YulFunctionCall","src":"14196:18:29"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"14216:4:29","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14189:6:29"},"nodeType":"YulFunctionCall","src":"14189:32:29"},"nodeType":"YulExpressionStatement","src":"14189:32:29"},{"nodeType":"YulAssignment","src":"14230:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14242:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14253:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14238:3:29"},"nodeType":"YulFunctionCall","src":"14238:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14230:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14016:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14030:4:29","type":""}],"src":"13865:398:29"},{"body":{"nodeType":"YulBlock","src":"14442:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14452:6:29"},"nodeType":"YulFunctionCall","src":"14452:21:29"},"nodeType":"YulExpressionStatement","src":"14452:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14493:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14504:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14489:3:29"},"nodeType":"YulFunctionCall","src":"14489:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"14509:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14482:6:29"},"nodeType":"YulFunctionCall","src":"14482:30:29"},"nodeType":"YulExpressionStatement","src":"14482:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14532:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14543:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14528:3:29"},"nodeType":"YulFunctionCall","src":"14528:18:29"},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f53","kind":"string","nodeType":"YulLiteral","src":"14548:34:29","type":"","value":"NativeMetaTransaction: INVALID_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14521:6:29"},"nodeType":"YulFunctionCall","src":"14521:62:29"},"nodeType":"YulExpressionStatement","src":"14521:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14603:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14614:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14599:3:29"},"nodeType":"YulFunctionCall","src":"14599:18:29"},{"hexValue":"49474e4552","kind":"string","nodeType":"YulLiteral","src":"14619:7:29","type":"","value":"IGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14592:6:29"},"nodeType":"YulFunctionCall","src":"14592:35:29"},"nodeType":"YulExpressionStatement","src":"14592:35:29"},{"nodeType":"YulAssignment","src":"14636:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14648:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14659:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14644:3:29"},"nodeType":"YulFunctionCall","src":"14644:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14636:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14419:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14433:4:29","type":""}],"src":"14268:401:29"},{"body":{"nodeType":"YulBlock","src":"14855:217:29","statements":[{"nodeType":"YulAssignment","src":"14865:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14877:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14888:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14873:3:29"},"nodeType":"YulFunctionCall","src":"14873:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14865:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14908:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"14919:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14901:6:29"},"nodeType":"YulFunctionCall","src":"14901:25:29"},"nodeType":"YulExpressionStatement","src":"14901:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14946:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14957:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14942:3:29"},"nodeType":"YulFunctionCall","src":"14942:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14966:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14974:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14962:3:29"},"nodeType":"YulFunctionCall","src":"14962:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14935:6:29"},"nodeType":"YulFunctionCall","src":"14935:45:29"},"nodeType":"YulExpressionStatement","src":"14935:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15000:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15011:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14996:3:29"},"nodeType":"YulFunctionCall","src":"14996:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"15016:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14989:6:29"},"nodeType":"YulFunctionCall","src":"14989:34:29"},"nodeType":"YulExpressionStatement","src":"14989:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15043:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15054:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15039:3:29"},"nodeType":"YulFunctionCall","src":"15039:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"15059:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15032:6:29"},"nodeType":"YulFunctionCall","src":"15032:34:29"},"nodeType":"YulExpressionStatement","src":"15032:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14800:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14811:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14819:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14827:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14835:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14846:4:29","type":""}],"src":"14674:398:29"},{"body":{"nodeType":"YulBlock","src":"15109:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15126:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15133:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15138:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15129:3:29"},"nodeType":"YulFunctionCall","src":"15129:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15119:6:29"},"nodeType":"YulFunctionCall","src":"15119:31:29"},"nodeType":"YulExpressionStatement","src":"15119:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15166:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15169:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15159:6:29"},"nodeType":"YulFunctionCall","src":"15159:15:29"},"nodeType":"YulExpressionStatement","src":"15159:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15190:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15193:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15183:6:29"},"nodeType":"YulFunctionCall","src":"15183:15:29"},"nodeType":"YulExpressionStatement","src":"15183:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"15077:127:29"},{"body":{"nodeType":"YulBlock","src":"15257:77:29","statements":[{"nodeType":"YulAssignment","src":"15267:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15278:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"15281:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15274:3:29"},"nodeType":"YulFunctionCall","src":"15274:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"15267:3:29"}]},{"body":{"nodeType":"YulBlock","src":"15306:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15308:16:29"},"nodeType":"YulFunctionCall","src":"15308:18:29"},"nodeType":"YulExpressionStatement","src":"15308:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15298:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"15301:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15295:2:29"},"nodeType":"YulFunctionCall","src":"15295:10:29"},"nodeType":"YulIf","src":"15292:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15240:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"15243:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"15249:3:29","type":""}],"src":"15209:125:29"},{"body":{"nodeType":"YulBlock","src":"15513:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15530:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15541:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15523:6:29"},"nodeType":"YulFunctionCall","src":"15523:21:29"},"nodeType":"YulExpressionStatement","src":"15523:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15564:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15575:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15560:3:29"},"nodeType":"YulFunctionCall","src":"15560:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15580:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15553:6:29"},"nodeType":"YulFunctionCall","src":"15553:30:29"},"nodeType":"YulExpressionStatement","src":"15553:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15603:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15614:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15599:3:29"},"nodeType":"YulFunctionCall","src":"15599:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"15619:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15592:6:29"},"nodeType":"YulFunctionCall","src":"15592:57:29"},"nodeType":"YulExpressionStatement","src":"15592:57:29"},{"nodeType":"YulAssignment","src":"15658:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15670:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15681:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15666:3:29"},"nodeType":"YulFunctionCall","src":"15666:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15658:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15490:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15504:4:29","type":""}],"src":"15339:351:29"},{"body":{"nodeType":"YulBlock","src":"15869:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15886:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15897:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15879:6:29"},"nodeType":"YulFunctionCall","src":"15879:21:29"},"nodeType":"YulExpressionStatement","src":"15879:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15920:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15931:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15916:3:29"},"nodeType":"YulFunctionCall","src":"15916:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15936:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15909:6:29"},"nodeType":"YulFunctionCall","src":"15909:30:29"},"nodeType":"YulExpressionStatement","src":"15909:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15959:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15970:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15955:3:29"},"nodeType":"YulFunctionCall","src":"15955:18:29"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"15975:34:29","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15948:6:29"},"nodeType":"YulFunctionCall","src":"15948:62:29"},"nodeType":"YulExpressionStatement","src":"15948:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16030:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16041:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16026:3:29"},"nodeType":"YulFunctionCall","src":"16026:18:29"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"16046:7:29","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16019:6:29"},"nodeType":"YulFunctionCall","src":"16019:35:29"},"nodeType":"YulExpressionStatement","src":"16019:35:29"},{"nodeType":"YulAssignment","src":"16063:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16075:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16086:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16071:3:29"},"nodeType":"YulFunctionCall","src":"16071:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16063:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15846:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15860:4:29","type":""}],"src":"15695:401:29"},{"body":{"nodeType":"YulBlock","src":"16275:225:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16303:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16285:6:29"},"nodeType":"YulFunctionCall","src":"16285:21:29"},"nodeType":"YulExpressionStatement","src":"16285:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16326:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16337:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16322:3:29"},"nodeType":"YulFunctionCall","src":"16322:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16342:2:29","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16315:6:29"},"nodeType":"YulFunctionCall","src":"16315:30:29"},"nodeType":"YulExpressionStatement","src":"16315:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16365:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16376:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16361:3:29"},"nodeType":"YulFunctionCall","src":"16361:18:29"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"16381:34:29","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16354:6:29"},"nodeType":"YulFunctionCall","src":"16354:62:29"},"nodeType":"YulExpressionStatement","src":"16354:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16436:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16447:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16432:3:29"},"nodeType":"YulFunctionCall","src":"16432:18:29"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"16452:5:29","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16425:6:29"},"nodeType":"YulFunctionCall","src":"16425:33:29"},"nodeType":"YulExpressionStatement","src":"16425:33:29"},{"nodeType":"YulAssignment","src":"16467:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16479:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16490:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16475:3:29"},"nodeType":"YulFunctionCall","src":"16475:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16467:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16252:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16266:4:29","type":""}],"src":"16101:399:29"},{"body":{"nodeType":"YulBlock","src":"16554:79:29","statements":[{"nodeType":"YulAssignment","src":"16564:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"16576:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"16579:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16572:3:29"},"nodeType":"YulFunctionCall","src":"16572:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"16564:4:29"}]},{"body":{"nodeType":"YulBlock","src":"16605:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"16607:16:29"},"nodeType":"YulFunctionCall","src":"16607:18:29"},"nodeType":"YulExpressionStatement","src":"16607:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"16596:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"16602:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16593:2:29"},"nodeType":"YulFunctionCall","src":"16593:11:29"},"nodeType":"YulIf","src":"16590:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"16536:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"16539:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"16545:4:29","type":""}],"src":"16505:128:29"},{"body":{"nodeType":"YulBlock","src":"16812:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16829:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16840:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16822:6:29"},"nodeType":"YulFunctionCall","src":"16822:21:29"},"nodeType":"YulExpressionStatement","src":"16822:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16863:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16874:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16859:3:29"},"nodeType":"YulFunctionCall","src":"16859:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16879:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16852:6:29"},"nodeType":"YulFunctionCall","src":"16852:30:29"},"nodeType":"YulExpressionStatement","src":"16852:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16902:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16913:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16898:3:29"},"nodeType":"YulFunctionCall","src":"16898:18:29"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nodeType":"YulLiteral","src":"16918:34:29","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16891:6:29"},"nodeType":"YulFunctionCall","src":"16891:62:29"},"nodeType":"YulExpressionStatement","src":"16891:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16973:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16984:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16969:3:29"},"nodeType":"YulFunctionCall","src":"16969:18:29"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"16989:3:29","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16962:6:29"},"nodeType":"YulFunctionCall","src":"16962:31:29"},"nodeType":"YulExpressionStatement","src":"16962:31:29"},{"nodeType":"YulAssignment","src":"17002:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17014:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17025:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17010:3:29"},"nodeType":"YulFunctionCall","src":"17010:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17002:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16789:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16803:4:29","type":""}],"src":"16638:397:29"},{"body":{"nodeType":"YulBlock","src":"17121:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"17154:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"17168:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"17178:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17172:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17199:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"17203:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17192:6:29"},"nodeType":"YulFunctionCall","src":"17192:17:29"},"nodeType":"YulExpressionStatement","src":"17192:17:29"},{"nodeType":"YulVariableDeclaration","src":"17222:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17244:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"17248:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"17234:9:29"},"nodeType":"YulFunctionCall","src":"17234:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"17226:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17266:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17289:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17299:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"17306:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"17318:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17302:3:29"},"nodeType":"YulFunctionCall","src":"17302:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17295:3:29"},"nodeType":"YulFunctionCall","src":"17295:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17285:3:29"},"nodeType":"YulFunctionCall","src":"17285:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"17270:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17360:23:29","statements":[{"nodeType":"YulAssignment","src":"17362:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"17377:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"17362:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"17342:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"17354:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17339:2:29"},"nodeType":"YulFunctionCall","src":"17339:20:29"},"nodeType":"YulIf","src":"17336:47:29"},{"nodeType":"YulVariableDeclaration","src":"17396:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17410:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17420:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"17427:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"17432:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17423:3:29"},"nodeType":"YulFunctionCall","src":"17423:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17416:3:29"},"nodeType":"YulFunctionCall","src":"17416:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17406:3:29"},"nodeType":"YulFunctionCall","src":"17406:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"17400:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17450:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"17463:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"17454:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17548:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"17557:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"17564:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"17550:6:29"},"nodeType":"YulFunctionCall","src":"17550:17:29"},"nodeType":"YulExpressionStatement","src":"17550:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"17498:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"17505:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17495:2:29"},"nodeType":"YulFunctionCall","src":"17495:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17509:26:29","statements":[{"nodeType":"YulAssignment","src":"17511:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"17524:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"17531:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17520:3:29"},"nodeType":"YulFunctionCall","src":"17520:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"17511:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"17491:3:29","statements":[]},"src":"17487:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"17137:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"17142:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17134:2:29"},"nodeType":"YulFunctionCall","src":"17134:11:29"},"nodeType":"YulIf","src":"17131:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"17093:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"17100:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"17105:10:29","type":""}],"src":"17040:545:29"},{"body":{"nodeType":"YulBlock","src":"17675:81:29","statements":[{"nodeType":"YulAssignment","src":"17685:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17700:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17718:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"17721:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17714:3:29"},"nodeType":"YulFunctionCall","src":"17714:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17731:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17727:3:29"},"nodeType":"YulFunctionCall","src":"17727:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17710:3:29"},"nodeType":"YulFunctionCall","src":"17710:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17706:3:29"},"nodeType":"YulFunctionCall","src":"17706:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17696:3:29"},"nodeType":"YulFunctionCall","src":"17696:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17742:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"17745:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17738:3:29"},"nodeType":"YulFunctionCall","src":"17738:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"17693:2:29"},"nodeType":"YulFunctionCall","src":"17693:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"17685:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"17652:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"17658:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"17666:4:29","type":""}],"src":"17590:166:29"},{"body":{"nodeType":"YulBlock","src":"17857:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"17867:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"17887:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17881:5:29"},"nodeType":"YulFunctionCall","src":"17881:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"17871:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17934:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"17936:16:29"},"nodeType":"YulFunctionCall","src":"17936:18:29"},"nodeType":"YulExpressionStatement","src":"17936:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"17906:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"17914:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17903:2:29"},"nodeType":"YulFunctionCall","src":"17903:30:29"},"nodeType":"YulIf","src":"17900:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18009:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18047:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"18041:5:29"},"nodeType":"YulFunctionCall","src":"18041:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"18015:25:29"},"nodeType":"YulFunctionCall","src":"18015:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"18055:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"17965:43:29"},"nodeType":"YulFunctionCall","src":"17965:97:29"},"nodeType":"YulExpressionStatement","src":"17965:97:29"},{"nodeType":"YulVariableDeclaration","src":"18071:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18088:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"18075:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18098:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18117:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"18102:11:29","type":""}]},{"nodeType":"YulAssignment","src":"18130:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"18143:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18130:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"18200:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"18214:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"18233:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18245:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18241:3:29"},"nodeType":"YulFunctionCall","src":"18241:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18229:3:29"},"nodeType":"YulFunctionCall","src":"18229:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"18218:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18262:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18306:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"18276:29:29"},"nodeType":"YulFunctionCall","src":"18276:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"18266:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18324:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18333:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18328:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"18411:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18436:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18454:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18459:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18450:3:29"},"nodeType":"YulFunctionCall","src":"18450:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18444:5:29"},"nodeType":"YulFunctionCall","src":"18444:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18429:6:29"},"nodeType":"YulFunctionCall","src":"18429:42:29"},"nodeType":"YulExpressionStatement","src":"18429:42:29"},{"nodeType":"YulAssignment","src":"18488:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18502:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18510:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18498:3:29"},"nodeType":"YulFunctionCall","src":"18498:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18488:6:29"}]},{"nodeType":"YulAssignment","src":"18529:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18546:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"18557:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18542:3:29"},"nodeType":"YulFunctionCall","src":"18542:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18529:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18358:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"18361:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18355:2:29"},"nodeType":"YulFunctionCall","src":"18355:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18370:28:29","statements":[{"nodeType":"YulAssignment","src":"18372:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18381:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"18384:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:29"},"nodeType":"YulFunctionCall","src":"18377:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18372:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"18351:3:29","statements":[]},"src":"18347:236:29"},{"body":{"nodeType":"YulBlock","src":"18631:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"18649:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18676:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18681:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18672:3:29"},"nodeType":"YulFunctionCall","src":"18672:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18666:5:29"},"nodeType":"YulFunctionCall","src":"18666:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"18653:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18716:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"18728:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18755:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"18758:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18751:3:29"},"nodeType":"YulFunctionCall","src":"18751:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"18767:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18747:3:29"},"nodeType":"YulFunctionCall","src":"18747:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18777:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18773:3:29"},"nodeType":"YulFunctionCall","src":"18773:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"18743:3:29"},"nodeType":"YulFunctionCall","src":"18743:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18739:3:29"},"nodeType":"YulFunctionCall","src":"18739:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18724:3:29"},"nodeType":"YulFunctionCall","src":"18724:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18709:6:29"},"nodeType":"YulFunctionCall","src":"18709:74:29"},"nodeType":"YulExpressionStatement","src":"18709:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"18602:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"18611:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18599:2:29"},"nodeType":"YulFunctionCall","src":"18599:19:29"},"nodeType":"YulIf","src":"18596:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18817:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18831:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"18834:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18827:3:29"},"nodeType":"YulFunctionCall","src":"18827:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"18843:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18823:3:29"},"nodeType":"YulFunctionCall","src":"18823:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18810:6:29"},"nodeType":"YulFunctionCall","src":"18810:36:29"},"nodeType":"YulExpressionStatement","src":"18810:36:29"}]},"nodeType":"YulCase","src":"18193:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18198:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"18873:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"18887:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18900:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"18891:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"18936:67:29","statements":[{"nodeType":"YulAssignment","src":"18954:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18973:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18978:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18969:3:29"},"nodeType":"YulFunctionCall","src":"18969:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18963:5:29"},"nodeType":"YulFunctionCall","src":"18963:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"18954:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"18917:6:29"},"nodeType":"YulIf","src":"18914:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"19023:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19082:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"19089:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"19029:52:29"},"nodeType":"YulFunctionCall","src":"19029:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"19016:6:29"},"nodeType":"YulFunctionCall","src":"19016:81:29"},"nodeType":"YulExpressionStatement","src":"19016:81:29"}]},"nodeType":"YulCase","src":"18865:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"18173:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18181:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18170:2:29"},"nodeType":"YulFunctionCall","src":"18170:14:29"},"nodeType":"YulSwitch","src":"18163:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"17842:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"17848:3:29","type":""}],"src":"17761:1352:29"},{"body":{"nodeType":"YulBlock","src":"19331:276:29","statements":[{"nodeType":"YulAssignment","src":"19341:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19353:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19364:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19349:3:29"},"nodeType":"YulFunctionCall","src":"19349:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19341:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19384:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"19395:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19377:6:29"},"nodeType":"YulFunctionCall","src":"19377:25:29"},"nodeType":"YulExpressionStatement","src":"19377:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19422:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19433:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19418:3:29"},"nodeType":"YulFunctionCall","src":"19418:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"19438:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19411:6:29"},"nodeType":"YulFunctionCall","src":"19411:34:29"},"nodeType":"YulExpressionStatement","src":"19411:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19465:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19476:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19461:3:29"},"nodeType":"YulFunctionCall","src":"19461:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"19481:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19454:6:29"},"nodeType":"YulFunctionCall","src":"19454:34:29"},"nodeType":"YulExpressionStatement","src":"19454:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19508:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19519:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19504:3:29"},"nodeType":"YulFunctionCall","src":"19504:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19528:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19544:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19549:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19540:3:29"},"nodeType":"YulFunctionCall","src":"19540:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"19553:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19536:3:29"},"nodeType":"YulFunctionCall","src":"19536:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19524:3:29"},"nodeType":"YulFunctionCall","src":"19524:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19497:6:29"},"nodeType":"YulFunctionCall","src":"19497:60:29"},"nodeType":"YulExpressionStatement","src":"19497:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19577:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19588:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19573:3:29"},"nodeType":"YulFunctionCall","src":"19573:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19594:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19566:6:29"},"nodeType":"YulFunctionCall","src":"19566:35:29"},"nodeType":"YulExpressionStatement","src":"19566:35:29"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19268:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19279:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19287:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19295:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19303:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19311:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19322:4:29","type":""}],"src":"19118:489:29"},{"body":{"nodeType":"YulBlock","src":"19852:238:29","statements":[{"nodeType":"YulVariableDeclaration","src":"19862:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19882:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19876:5:29"},"nodeType":"YulFunctionCall","src":"19876:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19866:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19937:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"19945:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19933:3:29"},"nodeType":"YulFunctionCall","src":"19933:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"19952:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"19957:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19898:34:29"},"nodeType":"YulFunctionCall","src":"19898:66:29"},"nodeType":"YulExpressionStatement","src":"19898:66:29"},{"nodeType":"YulVariableDeclaration","src":"19973:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19990:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"19995:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19986:3:29"},"nodeType":"YulFunctionCall","src":"19986:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"19977:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"20018:5:29"},{"hexValue":"3a20494e53554646494349454e545f5045524d495353494f4e53","kind":"string","nodeType":"YulLiteral","src":"20025:28:29","type":"","value":": INSUFFICIENT_PERMISSIONS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20011:6:29"},"nodeType":"YulFunctionCall","src":"20011:43:29"},"nodeType":"YulExpressionStatement","src":"20011:43:29"},{"nodeType":"YulAssignment","src":"20063:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"20074:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"20081:2:29","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20070:3:29"},"nodeType":"YulFunctionCall","src":"20070:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20063:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19828:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19833:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19844:3:29","type":""}],"src":"19612:478:29"},{"body":{"nodeType":"YulBlock","src":"20280:232:29","statements":[{"nodeType":"YulAssignment","src":"20290:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20302:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20313:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20298:3:29"},"nodeType":"YulFunctionCall","src":"20298:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20290:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20333:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"20344:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20326:6:29"},"nodeType":"YulFunctionCall","src":"20326:25:29"},"nodeType":"YulExpressionStatement","src":"20326:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20371:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20382:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20367:3:29"},"nodeType":"YulFunctionCall","src":"20367:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"20387:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20360:6:29"},"nodeType":"YulFunctionCall","src":"20360:34:29"},"nodeType":"YulExpressionStatement","src":"20360:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20414:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20425:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20410:3:29"},"nodeType":"YulFunctionCall","src":"20410:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"20434:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20450:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20455:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20446:3:29"},"nodeType":"YulFunctionCall","src":"20446:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"20459:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20442:3:29"},"nodeType":"YulFunctionCall","src":"20442:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20430:3:29"},"nodeType":"YulFunctionCall","src":"20430:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20403:6:29"},"nodeType":"YulFunctionCall","src":"20403:60:29"},"nodeType":"YulExpressionStatement","src":"20403:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20483:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20494:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20479:3:29"},"nodeType":"YulFunctionCall","src":"20479:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"20499:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20472:6:29"},"nodeType":"YulFunctionCall","src":"20472:34:29"},"nodeType":"YulExpressionStatement","src":"20472:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20225:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20236:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20244:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20252:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20260:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20271:4:29","type":""}],"src":"20095:417:29"},{"body":{"nodeType":"YulBlock","src":"20765:144:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20782:3:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20791:3:29","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"20796:4:29","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20787:3:29"},"nodeType":"YulFunctionCall","src":"20787:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20775:6:29"},"nodeType":"YulFunctionCall","src":"20775:27:29"},"nodeType":"YulExpressionStatement","src":"20775:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20822:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20827:1:29","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20818:3:29"},"nodeType":"YulFunctionCall","src":"20818:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"20831:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20811:6:29"},"nodeType":"YulFunctionCall","src":"20811:27:29"},"nodeType":"YulExpressionStatement","src":"20811:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20858:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20863:2:29","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20854:3:29"},"nodeType":"YulFunctionCall","src":"20854:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"20868:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20847:6:29"},"nodeType":"YulFunctionCall","src":"20847:28:29"},"nodeType":"YulExpressionStatement","src":"20847:28:29"},{"nodeType":"YulAssignment","src":"20884:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20895:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20900:2:29","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20891:3:29"},"nodeType":"YulFunctionCall","src":"20891:12:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20884:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"20733:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20738:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20746:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20757:3:29","type":""}],"src":"20517:392:29"},{"body":{"nodeType":"YulBlock","src":"21088:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21105:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21116:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21098:6:29"},"nodeType":"YulFunctionCall","src":"21098:21:29"},"nodeType":"YulExpressionStatement","src":"21098:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21139:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21150:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21135:3:29"},"nodeType":"YulFunctionCall","src":"21135:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"21155:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21128:6:29"},"nodeType":"YulFunctionCall","src":"21128:30:29"},"nodeType":"YulExpressionStatement","src":"21128:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21178:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21189:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21174:3:29"},"nodeType":"YulFunctionCall","src":"21174:18:29"},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e","kind":"string","nodeType":"YulLiteral","src":"21194:34:29","type":"","value":"EnumerableSet: index out of boun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21167:6:29"},"nodeType":"YulFunctionCall","src":"21167:62:29"},"nodeType":"YulExpressionStatement","src":"21167:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21249:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21260:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21245:3:29"},"nodeType":"YulFunctionCall","src":"21245:18:29"},{"hexValue":"6473","kind":"string","nodeType":"YulLiteral","src":"21265:4:29","type":"","value":"ds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21238:6:29"},"nodeType":"YulFunctionCall","src":"21238:32:29"},"nodeType":"YulExpressionStatement","src":"21238:32:29"},{"nodeType":"YulAssignment","src":"21279:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21291:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21302:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21287:3:29"},"nodeType":"YulFunctionCall","src":"21287:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21279:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21065:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21079:4:29","type":""}],"src":"20914:398:29"},{"body":{"nodeType":"YulBlock","src":"21349:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21366:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21373:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"21378:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21369:3:29"},"nodeType":"YulFunctionCall","src":"21369:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21359:6:29"},"nodeType":"YulFunctionCall","src":"21359:31:29"},"nodeType":"YulExpressionStatement","src":"21359:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21406:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21409:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21399:6:29"},"nodeType":"YulFunctionCall","src":"21399:15:29"},"nodeType":"YulExpressionStatement","src":"21399:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21430:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21433:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21423:6:29"},"nodeType":"YulFunctionCall","src":"21423:15:29"},"nodeType":"YulExpressionStatement","src":"21423:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"21317:127:29"},{"body":{"nodeType":"YulBlock","src":"21481:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21498:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21505:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"21510:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21501:3:29"},"nodeType":"YulFunctionCall","src":"21501:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21491:6:29"},"nodeType":"YulFunctionCall","src":"21491:31:29"},"nodeType":"YulExpressionStatement","src":"21491:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21538:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21541:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21531:6:29"},"nodeType":"YulFunctionCall","src":"21531:15:29"},"nodeType":"YulExpressionStatement","src":"21531:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21562:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21565:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21555:6:29"},"nodeType":"YulFunctionCall","src":"21555:15:29"},"nodeType":"YulExpressionStatement","src":"21555:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"21449:127:29"}]},"contents":"{\n { }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n value4 := abi_decode_uint8(add(headStart, 64))\n value5 := abi_decode_address(add(headStart, 96))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Signer and signature do not matc\")\n mstore(add(headStart, 96), \"h\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(end_1, 20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Function call not successful\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to grant\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n mstore(add(headStart, _1), length)\n let _2 := 64\n let _3 := 1\n switch and(slotValue, _3)\n case 0 {\n mstore(add(headStart, _2), and(slotValue, not(255)))\n ret := add(add(headStart, shl(5, iszero(iszero(length)))), _2)\n }\n case 1 {\n mstore(0, value0)\n let dataPos := keccak256(0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), _2), sload(dataPos))\n dataPos := add(dataPos, _3)\n }\n ret := add(add(headStart, i), _2)\n }\n tail := ret\n }\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to revoke\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"already inited\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"Child\")\n calldatacopy(add(pos, 5), value0, value1)\n let _1 := add(add(pos, value1), 5)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"NativeMetaTransaction: INVALID_S\")\n mstore(add(headStart, 96), \"IGNER\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n mstore(add(headStart, 96), \"s\")\n tail := add(headStart, 128)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, \": INSUFFICIENT_PERMISSIONS\")\n end := add(end_1, 26)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"EnumerableSet: index out of boun\")\n mstore(add(headStart, 96), \"ds\")\n tail := add(headStart, 128)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1F9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA15C873 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x571 JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x586 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8ACFCAF7 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x55C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x4A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x190 JUMPI DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x15F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x1CC JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2C6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x286 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x213 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C02 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE8 JUMP JUMPDEST PUSH2 0x95F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x362 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x9E6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0x9FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xA8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x49F CALLDATASIZE PUSH1 0x4 PUSH2 0x1DCD JUMP JUMPDEST PUSH2 0xC41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x524 PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0xD0C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0xD43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xD52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x635 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0xDE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x655 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xE54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x6BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1EAE JUMP JUMPDEST PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E 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 0x6FB SWAP1 PUSH2 0x1F3E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x748 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x71D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x748 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x72B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0x75F PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x7AE DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x82D SWAP1 PUSH1 0x1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x87D SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x1F78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A5 SWAP3 SWAP2 SWAP1 PUSH2 0x1FA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x8BF SWAP2 PUSH2 0x1FDB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8FC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x901 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x96C DUP5 DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH2 0x9DC DUP5 PUSH2 0x978 PUSH2 0x107B JUMP JUMPDEST PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2335 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x9B6 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9F7 PUSH2 0x9F1 PUSH2 0x107B JUMP JUMPDEST DUP3 PUSH2 0x14BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xA18 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x15BF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xA92 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x1628 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xB21 PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xB32 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xBB8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xBC5 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xBEB SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4F DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH2 0xCAF DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD07 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x169D SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1724 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xD5F PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x235D PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0xD89 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xDC7 PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76A SWAP1 PUSH2 0x1752 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0xE12 DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xE32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xE41 DUP4 DUP6 ADD DUP6 PUSH2 0x1D24 JUMP JUMPDEST SWAP1 POP PUSH2 0xE4D DUP6 DUP3 PUSH2 0xB62 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xE72 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xF5A 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF99 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x175C SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0xFD2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFBE SWAP3 SWAP2 SWAP1 PUSH2 0x2082 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1768 JUMP JUMPDEST PUSH2 0xFE4 PUSH1 0x0 PUSH2 0xFDF PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x100E PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x1066 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1796 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1085 PUSH2 0x17F5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x10EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x114D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1215 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1228 PUSH2 0x1223 DUP8 PUSH2 0x1851 JUMP JUMPDEST PUSH2 0x18CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1276 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12AC DUP4 DUP6 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xD24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x13C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1401 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x230F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x1430 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x11A2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x14A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x14B2 DUP5 DUP7 PUSH2 0x20CC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x151B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1558 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225B PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x157E SWAP1 DUP3 PUSH2 0x18FE JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x15D7 SWAP1 DUP3 PUSH2 0x1940 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x15E4 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1640 SWAP1 DUP3 PUSH2 0x1955 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x164D PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x22C0 PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x16D5 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH2 0x196A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76A DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1779 SWAP2 SWAP1 PUSH2 0x21ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x17DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x17E4 DUP3 DUP3 PUSH2 0x169D JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x184B JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x184E SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x227D PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x18B1 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D9 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x18B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x19F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1A3F JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x19C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x19DD JUMPI PUSH2 0x19DD PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1A37 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x76A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1B28 JUMPI PUSH1 0x0 PUSH2 0x1A63 PUSH1 0x1 DUP4 PUSH2 0x20CC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1A77 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x20CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1A90 JUMPI PUSH2 0x1A90 PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1AB3 JUMPI PUSH2 0x1AB3 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1ACA DUP4 PUSH1 0x1 PUSH2 0x20B9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1AEC JUMPI PUSH2 0x1AEC PUSH2 0x2244 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B4D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B35 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1B6E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BCD DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C23 DUP7 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1C40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1C66 JUMPI PUSH2 0x1C66 PUSH2 0x1BDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1C8E JUMPI PUSH2 0x1C8E PUSH2 0x1BDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1CDC PUSH1 0x80 DUP8 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH2 0x1D14 PUSH1 0x20 DUP6 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD24 DUP3 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1D96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1DC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E03 DUP6 DUP3 DUP7 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E4F DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E77 DUP7 DUP3 DUP8 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EA0 DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1EC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1EDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EEB DUP11 DUP4 DUP12 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F11 DUP10 DUP3 DUP11 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x1F24 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F32 PUSH1 0x60 DUP9 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1F52 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1F72 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x14B2 SWAP1 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1FB6 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1FED DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x200B DUP2 PUSH2 0x1F3E JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x202C JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2046 JUMPI PUSH2 0x2074 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2074 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x206C JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2051 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2106 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2125 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2112 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2147 JUMPI PUSH2 0x2147 PUSH2 0x1BDB JUMP JUMPDEST PUSH2 0x215B DUP2 PUSH2 0x2155 DUP5 SLOAD PUSH2 0x1F3E JUMP JUMPDEST DUP5 PUSH2 0x20DF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2190 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2178 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x21BF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x21A0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x21DD JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x21FF DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 0xD0 0xE4 PUSH21 0xE7C0E5222B46307228C2AC6D269F0BBEBDF353FD3F ADD CALLVALUE MUL STOP PUSH20 0xF9577F64736F6C63430008140033000000000000 ","sourceMap":"48416:2287:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19508:166;;;;;;;;;;-1:-1:-1;19508:166:27;;;;;:::i;:::-;;:::i;:::-;;;1372:14:29;;1365:22;1347:41;;1335:2;1320:18;19508:166:27;1207:187:29;47515:52:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47515:52:27;;;;;45105:1117;;;;;;:::i;:::-;;:::i;47407:51::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47407:51:27;;;;;47310:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47310:43:27;;;;;18515:98;;;;;;;;;;-1:-1:-1;18594:12:27;;18515:98;;;3269:25:29;;;3257:2;3242:18;18515:98:27;3123:177:29;43354:99:27;;;;;;;;;;-1:-1:-1;43431:15:27;;43354:99;;20134:330;;;;;;;;;;-1:-1:-1;20134:330:27;;;;;:::i;:::-;;:::i;38118:112::-;;;;;;;;;;-1:-1:-1;38118:112:27;;;;;:::i;:::-;38175:7;38201:12;;;:6;:12;;;;;:22;;;;38118:112;46630:105;;;;;;;;;;-1:-1:-1;46630:105:27;;;;;:::i;:::-;-1:-1:-1;;;;;46716:12:27;46683:13;46716:12;;;:6;:12;;;;;;;46630:105;50614:87;;;;;;;;;;-1:-1:-1;50614:87:27;;;;;:::i;:::-;;:::i;:::-;;38480:223;;;;;;;;;;-1:-1:-1;38480:223:27;;;;;:::i;:::-;;:::i;18281:81::-;;;;;;;;;;-1:-1:-1;18346:9:27;;18281:81;;18346:9;;;;4782:36:29;;4770:2;4755:18;18281:81:27;4640:184:29;43459:155:27;;;;;;;;;;-1:-1:-1;43570:9:27;43459:155;;39654:205;;;;;;;;;;-1:-1:-1;39654:205:27;;;;;:::i;:::-;;:::i;20859:215::-;;;;;;;;;;-1:-1:-1;20859:215:27;;;;;:::i;:::-;;:::i;23115:369::-;;;;;;;;;;-1:-1:-1;23115:369:27;;;;;:::i;:::-;;:::i;49612:160::-;;;;;;;;;;-1:-1:-1;49612:160:27;;;;;:::i;:::-;;:::i;47465:44::-;;;;;;;;;;;;47506:3;47465:44;;18671:117;;;;;;;;;;-1:-1:-1;18671:117:27;;;;;:::i;:::-;-1:-1:-1;;;;;18763:18:27;18737:7;18763:18;;;;;;;;;;;;18671:117;47360:41;;;;;;;;;;;;47400:1;47360:41;;37801:136;;;;;;;;;;-1:-1:-1;37801:136:27;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;6015:32:29;;;5997:51;;5985:2;5970:18;37801:136:27;5851:203:29;36798:137:27;;;;;;;;;;-1:-1:-1;36798:137:27;;;;;:::i;:::-;;:::i;17480:85::-;;;;;;;;;;;;;:::i;35575:49::-;;;;;;;;;;-1:-1:-1;35575:49:27;35620:4;35575:49;;48562:68;;;;;;;;;;;;48603:27;48562:68;;21561:279;;;;;;;;;;-1:-1:-1;21561:279:27;;;;;:::i;:::-;;:::i;18991:172::-;;;;;;;;;;-1:-1:-1;18991:172:27;;;;;:::i;:::-;;:::i;37103:125::-;;;;;;;;;;-1:-1:-1;37103:125:27;;;;;:::i;:::-;;:::i;50143:223::-;;;;;;;;;;-1:-1:-1;50143:223:27;;;;;:::i;:::-;;:::i;38937:226::-;;;;;;;;;;-1:-1:-1;38937:226:27;;;;;:::i;:::-;;:::i;19221:149::-;;;;;;;;;;-1:-1:-1;19221:149:27;;;;;:::i;:::-;-1:-1:-1;;;;;19336:18:27;;;19310:7;19336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19221:149;48827:497;;;;;;;;;;-1:-1:-1;48827:497:27;;;;;:::i;:::-;;:::i;17201:81::-;17238:13;17270:5;17263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;:::o;19508:166::-;19591:4;19607:39;19616:12;:10;:12::i;:::-;19630:7;19639:6;19607:8;:39::i;:::-;-1:-1:-1;19663:4:27;19508:166;;;;;:::o;45105:1117::-;45356:148;;;45300:12;45356:148;;;;;-1:-1:-1;;;;;45393:19:27;;45324:29;45393:19;;;:6;:19;;;;;;;;;45356:148;;;;;;;;;;;45536:45;45400:11;45356:148;45564:4;45570;45576;45536:6;:45::i;:::-;45515:125;;;;-1:-1:-1;;;45515:125:27;;8271:2:29;45515:125:27;;;8253:21:29;8310:2;8290:18;;;8283:30;8349:34;8329:18;;;8322:62;-1:-1:-1;;;8400:18:29;;;8393:31;8441:19;;45515:125:27;;;;;;;;;-1:-1:-1;;;;;45726:19:27;;;;;;:6;:19;;;;;;:26;;45750:1;45726:23;:26::i;:::-;-1:-1:-1;;;;;45704:19:27;;;;;;:6;:19;;;;;;;:48;;;;45768:122;;;;;45711:11;;45838:10;;45863:17;;45768:122;:::i;:::-;;;;;;;;45998:12;46012:23;46047:4;-1:-1:-1;;;;;46039:18:27;46088:17;46107:11;46071:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;46071:48:27;;;;;;;;;;46039:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45997:132;;;;46147:7;46139:48;;;;-1:-1:-1;;;46139:48:27;;9835:2:29;46139:48:27;;;9817:21:29;9874:2;9854:18;;;9847:30;9913;9893:18;;;9886:58;9961:18;;46139:48:27;9633:352:29;46139:48:27;46205:10;45105:1117;-1:-1:-1;;;;;;;;45105:1117:27:o;20134:330::-;20240:4;20256:36;20266:6;20274:9;20285:6;20256:9;:36::i;:::-;20302:134;20311:6;20319:12;:10;:12::i;:::-;20333:102;20371:6;20333:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20333:19:27;;;;;;:11;:19;;;;;;20353:12;:10;:12::i;:::-;-1:-1:-1;;;;;20333:33:27;;;;;;;;;;;;-1:-1:-1;20333:33:27;;;:102;:37;:102::i;:::-;20302:8;:134::i;:::-;-1:-1:-1;20453:4:27;20134:330;;;;;:::o;50614:87::-;50667:27;50673:12;:10;:12::i;:::-;50687:6;50667:5;:27::i;:::-;50614:87;:::o;38480:223::-;38571:12;;;;:6;:12;;;;;:22;;;38563:45;;38595:12;:10;:12::i;38563:45::-;38555:105;;;;-1:-1:-1;;;38555:105:27;;10192:2:29;38555:105:27;;;10174:21:29;10231:2;10211:18;;;10204:30;10270:34;10250:18;;;10243:62;-1:-1:-1;;;10321:18:29;;;10314:45;10376:19;;38555:105:27;9990:411:29;38555:105:27;38671:25;38682:4;38688:7;38671:10;:25::i;:::-;38480:223;;:::o;39654:205::-;39751:12;:10;:12::i;:::-;-1:-1:-1;;;;;39740:23:27;:7;-1:-1:-1;;;;;39740:23:27;;39732:83;;;;-1:-1:-1;;;39732:83:27;;10608:2:29;39732:83:27;;;10590:21:29;10647:2;10627:18;;;10620:30;10686:34;10666:18;;;10659:62;-1:-1:-1;;;10737:18:29;;;10730:45;10792:19;;39732:83:27;10406:411:29;39732:83:27;39826:26;39838:4;39844:7;39826:11;:26::i;20859:215::-;20947:4;20963:83;20972:12;:10;:12::i;:::-;20986:7;20995:50;21034:10;20995:11;:25;21007:12;:10;:12::i;:::-;-1:-1:-1;;;;;20995:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;20995:25:27;;;:34;;;;;;;;;;;:38;:50::i;23115:369::-;-1:-1:-1;;;;;23197:21:27;;23189:65;;;;-1:-1:-1;;;23189:65:27;;11024:2:29;23189:65:27;;;11006:21:29;11063:2;11043:18;;;11036:30;11102:33;11082:18;;;11075:61;11153:18;;23189:65:27;10822:355:29;23189:65:27;23340:12;;:24;;23357:6;23340:16;:24::i;:::-;23325:12;:39;-1:-1:-1;;;;;23395:18:27;;:9;:18;;;;;;;;;;;:30;;23418:6;23395:22;:30::i;:::-;-1:-1:-1;;;;;23374:18:27;;:9;:18;;;;;;;;;;;:51;;;;23440:37;;3269:25:29;;;23374:18:27;;:9;;23440:37;;3242:18:29;23440:37:27;;;;;;;;23115:369;;:::o;49612:160::-;35620:4;41624:27;35620:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;;49699:14:::1;49707:5;;49699:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49699:7:27::1;::::0;-1:-1:-1;;;49699:14:27:i:1;:::-;49723:42;49743:5;;49723:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49750:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49750:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49723:19:27::1;::::0;-1:-1:-1;49723:42:27:i:1;:::-;49612:160:::0;;;:::o;37801:136::-;37874:7;37900:12;;;:6;:12;;;;;:30;;37924:5;37900:23;:30::i;:::-;37893:37;37801:136;-1:-1:-1;;;37801:136:27:o;36798:137::-;36867:4;36890:12;;;:6;:12;;;;;:38;;36920:7;36890:29;:38::i;17480:85::-;17519:13;17551:7;17544:14;;;;;:::i;21561:279::-;21654:4;21670:142;21679:12;:10;:12::i;:::-;21693:7;21702:109;21741:15;21702:109;;;;;;;;;;;;;;;;;:11;:25;21714:12;:10;:12::i;:::-;-1:-1:-1;;;;;21702:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;21702:25:27;;;:34;;;;;;;;;;;:109;:38;:109::i;18991:172::-;19077:4;19093:42;19103:12;:10;:12::i;:::-;19117:9;19128:6;19093:9;:42::i;37103:125::-;37166:7;37192:12;;;:6;:12;;;;;:29;;:27;:29::i;50143:223::-;48603:27;41624;41632:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;-1:-1:-1;50279:14:27::1;50296:34;::::0;;::::1;50307:11:::0;50296:34:::1;:::i;:::-;50279:51;;50340:19;50346:4;50352:6;50340:5;:19::i;:::-;50269:97;50143:223:::0;;;;:::o;38937:226::-;39029:12;;;;:6;:12;;;;;:22;;;39021:45;;39053:12;:10;:12::i;39021:45::-;39013:106;;;;-1:-1:-1;;;39013:106:27;;12478:2:29;39013:106:27;;;12460:21:29;12517:2;12497:18;;;12490:30;12556:34;12536:18;;;12529:62;-1:-1:-1;;;12607:18:29;;;12600:46;12663:19;;39013:106:27;12276:412:29;48827:497:27;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;12895:2:29;42045:34:27;;;12877:21:29;12934:2;12914:18;;;12907:30;-1:-1:-1;;;12953:18:29;;;12946:44;13007:18;;42045:34:27;12693:338:29;42045:34:27;49026:14:::1;49034:5;;49026:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49026:7:27::1;::::0;-1:-1:-1;;;49026:14:27:i:1;:::-;49048:18;49058:7;;49048:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49048:9:27::1;::::0;-1:-1:-1;;;49048:18:27:i:1;:::-;18425:9:::0;:23;;-1:-1:-1;;18425:23:27;;;;;;;49104:60:::1;49154:7;;49128:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;49104:16;:60::i;:::-;49172:44;35620:4;49203:12;:10;:12::i;:::-;49172:10;:44::i;:::-;49224:45;48603:27;49251:17;49224:10;:45::i;:::-;49277:40;49295:5;;49277:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49302:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49302:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49277:17:27::1;::::0;-1:-1:-1;49277:40:27:i:1;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;-1:-1:-1;;;;48827:497:27:o;49444:162::-;49530:22;49575:24;:22;:24::i;:::-;49568:31;;49444:162;:::o;24638:340::-;-1:-1:-1;;;;;24739:19:27;;24731:68;;;;-1:-1:-1;;;24731:68:27;;13662:2:29;24731:68:27;;;13644:21:29;13701:2;13681:18;;;13674:30;13740:34;13720:18;;;13713:62;-1:-1:-1;;;13791:18:29;;;13784:34;13835:19;;24731:68:27;13460:400:29;24731:68:27;-1:-1:-1;;;;;24817:21:27;;24809:68;;;;-1:-1:-1;;;24809:68:27;;14067:2:29;24809:68:27;;;14049:21:29;14106:2;14086:18;;;14079:30;14145:34;14125:18;;;14118:62;-1:-1:-1;;;14196:18:29;;;14189:32;14238:19;;24809:68:27;13865:398:29;24809:68:27;-1:-1:-1;;;;;24888:18:27;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24939:32;;3269:25:29;;;24939:32:27;;3242:18:29;24939:32:27;;;;;;;;24638:340;;;:::o;46741:470::-;46913:4;-1:-1:-1;;;;;46937:20:27;;46929:70;;;;-1:-1:-1;;;46929:70:27;;14470:2:29;46929:70:27;;;14452:21:29;14509:2;14489:18;;;14482:30;14548:34;14528:18;;;14521:62;-1:-1:-1;;;14599:18:29;;;14592:35;14644:19;;46929:70:27;14268:401:29;46929:70:27;47050:154;47077:47;47096:27;47116:6;47096:19;:27::i;:::-;47077:18;:47::i;:::-;47050:154;;;;;;;;;;;;14901:25:29;;;;14974:4;14962:17;;14942:18;;;14935:45;14996:18;;;14989:34;;;15039:18;;;15032:34;;;14873:19;;47050:154:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47028:176:27;:6;-1:-1:-1;;;;;47028:176:27;;47009:195;;46741:470;;;;;;;:::o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;15541:2:29;4705:46:27;;;15523:21:29;15580:2;15560:18;;;15553:30;15619:29;15599:18;;;15592:57;15666:18;;4705:46:27;15339:351:29;22314:530:27;-1:-1:-1;;;;;22419:20:27;;22411:70;;;;-1:-1:-1;;;22411:70:27;;15897:2:29;22411:70:27;;;15879:21:29;15936:2;15916:18;;;15909:30;15975:34;15955:18;;;15948:62;-1:-1:-1;;;16026:18:29;;;16019:35;16071:19;;22411:70:27;15695:401:29;22411:70:27;-1:-1:-1;;;;;22499:23:27;;22491:71;;;;-1:-1:-1;;;22491:71:27;;16303:2:29;22491:71:27;;;16285:21:29;16342:2;16322:18;;;16315:30;16381:34;16361:18;;;16354:62;-1:-1:-1;;;16432:18:29;;;16425:33;16475:19;;22491:71:27;16101:399:29;22491:71:27;22651;22673:6;22651:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22651:17:27;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22631:17:27;;;:9;:17;;;;;;;;;;;:91;;;;22755:20;;;;;;;:32;;22780:6;22755:24;:32::i;:::-;-1:-1:-1;;;;;22732:20:27;;;:9;:20;;;;;;;;;;;;:55;;;;22802:35;3269:25:29;;;22732:20:27;;22802:35;;;;;;3242:18:29;22802:35:27;3123:177:29;5473:187:27;5559:7;5594:12;5586:6;;;;5578:29;;;;-1:-1:-1;;;5578:29:27;;;;;;;;:::i;:::-;-1:-1:-1;5617:9:27;5629:5;5633:1;5629;:5;:::i;:::-;5617:17;5473:187;-1:-1:-1;;;;;5473:187:27:o;23803:410::-;-1:-1:-1;;;;;23886:21:27;;23878:67;;;;-1:-1:-1;;;23878:67:27;;16840:2:29;23878:67:27;;;16822:21:29;16879:2;16859:18;;;16852:30;16918:34;16898:18;;;16891:62;-1:-1:-1;;;16969:18:29;;;16962:31;17010:19;;23878:67:27;16638:397:29;23878:67:27;24037:68;24060:6;24037:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24037:18:27;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;24016:18:27;;:9;:18;;;;;;;;;;:89;24130:12;;:24;;24147:6;24130:16;:24::i;:::-;24115:12;:39;24169:37;;3269:25:29;;;24195:1:27;;-1:-1:-1;;;;;24169:37:27;;;;;3257:2:29;3242:18;24169:37:27;3123:177:29;40861:184:27;40934:12;;;;:6;:12;;;;;:33;;40959:7;40934:24;:33::i;:::-;40930:109;;;41015:12;:10;:12::i;:::-;-1:-1:-1;;;;;40988:40:27;41006:7;-1:-1:-1;;;;;40988:40:27;41000:4;40988:40;;;;;;;;;;40861:184;;:::o;41051:188::-;41125:12;;;;:6;:12;;;;;:36;;41153:7;41125:27;:36::i;:::-;41121:112;;;41209:12;:10;:12::i;:::-;-1:-1:-1;;;;;41182:40:27;41200:7;-1:-1:-1;;;;;41182:40:27;41194:4;41182:40;;;;;;;;;;41051:188;;:::o;17288:79::-;17345:5;:15;17353:7;17345:5;:15;:::i;42982:366::-;42441:110;;;;;;;;;;;;;;;;;42422:135;;;;;;43198:4;43182:22;;;;;;43238:7;43222:25;;;;;;43273:4;43304:12;43570:9;;43459:155;43304:12;43114:217;;;;;;19377:25:29;;;;19418:18;;19411:34;;;;19461:18;;;19454:34;;;;-1:-1:-1;;;;;19524:32:29;19504:18;;;19497:60;19573:19;;;19566:35;19349:19;;43114:217:27;;;-1:-1:-1;;43114:217:27;;;;;;;;;43091:250;;43114:217;43091:250;;;;43073:15;:268;-1:-1:-1;;42982:366:27:o;32212:156::-;32286:7;32336:22;32340:3;32352:5;32336:3;:22::i;31519:165::-;-1:-1:-1;;;;;31652:23:27;;31599:4;29972:19;;;:12;;;:19;;;;;;:24;;31622:55;29876:127;31765:115;31828:7;31854:19;31862:3;30166:18;;30084:107;17571:87;17632:7;:19;17642:9;17632:7;:19;:::i;41402:157::-;41510:10;41493:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;41473:10;:79;;;;;;:::i;42792:184::-;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;12895:2:29;42045:34:27;;;12877:21:29;12934:2;12914:18;;;12907:30;-1:-1:-1;;;12953:18:29;;;12946:44;13007:18;;42045:34:27;12693:338:29;42045:34:27;42935::::1;42955:4;42961:7;42935:19;:34::i;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;42792:184::o;47679:631::-;47747:22;47811:4;47789:10;:27;47785:496;;47832:18;47853:8;;47832:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;47891:8:27;48098:17;48092:24;-1:-1:-1;;;;;48067:131:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;48259:10:27;47785:496;47679:631;:::o;46228:396::-;46335:7;44463:98;;;;;;;;;;;;;;;;;44444:123;;;;;;;46483:12;;46517:11;;;;46560:24;;;;;46550:35;;;;;;46404:199;;;;;20326:25:29;;;20382:2;20367:18;;20360:34;;;;-1:-1:-1;;;;;20430:32:29;20425:2;20410:18;;20403:60;20494:2;20479:18;;20472:34;20313:3;20298:19;;20095:417;46404:199:27;;;;;;;;;;;;;46377:240;;;;;;46358:259;;46228:396;;;:::o;43974:249::-;44070:7;44168:20;43431:15;;;43354:99;44168:20;44139:63;;-1:-1:-1;;;44139:63:27;;;20775:27:29;20818:11;;;20811:27;;;;20854:12;;;20847:28;;;20891:12;;44139:63:27;20517:392:29;5048:134:27;5106:7;5132:43;5136:1;5139;5132:43;;;;;;;;;;;;;;;;;:3;:43::i;30964:150::-;31034:4;31057:50;31062:3;-1:-1:-1;;;;;31082:23:27;;31057:4;:50::i;31282:156::-;31355:4;31378:53;31386:3;-1:-1:-1;;;;;31406:23:27;;31378:7;:53::i;30523:201::-;30617:18;;30590:7;;30617:26;-1:-1:-1;30609:73:27;;;;-1:-1:-1;;;30609:73:27;;21116:2:29;30609:73:27;;;21098:21:29;21155:2;21135:18;;;21128:30;21194:34;21174:18;;;21167:62;-1:-1:-1;;;21245:18:29;;;21238:32;21287:19;;30609:73:27;20914:398:29;30609:73:27;30699:3;:11;;30711:5;30699:18;;;;;;;;:::i;:::-;;;;;;;;;30692:25;;30523:201;;;;:::o;27711:404::-;27774:4;29972:19;;;:12;;;:19;;;;;;27790:319;;-1:-1:-1;27832:23:27;;;;;;;;:11;:23;;;;;;;;;;;;;28012:18;;27990:19;;;:12;;;:19;;;;;;:40;;;;28044:11;;27790:319;-1:-1:-1;28093:5:27;28086:12;;28283:1512;28349:4;28486:19;;;:12;;;:19;;;;;;28520:15;;28516:1273;;28877:21;28901:14;28914:1;28901:10;:14;:::i;:::-;28949:18;;28877:38;;-1:-1:-1;28929:17:27;;28949:22;;28970:1;;28949:22;:::i;:::-;28929:42;;29211:17;29231:3;:11;;29243:9;29231:22;;;;;;;;:::i;:::-;;;;;;;;;29211:42;;29374:9;29345:3;:11;;29357:13;29345:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;29475:17;:13;29491:1;29475:17;:::i;:::-;29449:23;;;;:12;;;:23;;;;;:43;29598:17;;29449:3;;29598:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29690:3;:12;;:19;29703:5;29690:19;;;;;;;;;;;29683:26;;;29731:4;29724:11;;;;;;;;28516:1273;29773:5;29766:12;;;;;14:250:29;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:29;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:29;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:29:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:173::-;838:20;;-1:-1:-1;;;;;887:31:29;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:29:o;1622:127::-;1683:10;1678:3;1674:20;1671:1;1664:31;1714:4;1711:1;1704:15;1738:4;1735:1;1728:15;1754:156;1820:20;;1880:4;1869:16;;1859:27;;1849:55;;1900:1;1897;1890:12;1915:1203;2017:6;2025;2033;2041;2049;2102:3;2090:9;2081:7;2077:23;2073:33;2070:53;;;2119:1;2116;2109:12;2070:53;2142:29;2161:9;2142:29;:::i;:::-;2132:39;;2222:2;2211:9;2207:18;2194:32;2245:18;2286:2;2278:6;2275:14;2272:34;;;2302:1;2299;2292:12;2272:34;2340:6;2329:9;2325:22;2315:32;;2385:7;2378:4;2374:2;2370:13;2366:27;2356:55;;2407:1;2404;2397:12;2356:55;2443:2;2430:16;2465:2;2461;2458:10;2455:36;;;2471:18;;:::i;:::-;2546:2;2540:9;2514:2;2600:13;;-1:-1:-1;;2596:22:29;;;2620:2;2592:31;2588:40;2576:53;;;2644:18;;;2664:22;;;2641:46;2638:72;;;2690:18;;:::i;:::-;2730:10;2726:2;2719:22;2765:2;2757:6;2750:18;2805:7;2800:2;2795;2791;2787:11;2783:20;2780:33;2777:53;;;2826:1;2823;2816:12;2777:53;2882:2;2877;2873;2869:11;2864:2;2856:6;2852:15;2839:46;2927:1;2922:2;2917;2909:6;2905:15;2901:24;2894:35;2948:6;2938:16;;;;;;;3001:2;2990:9;2986:18;2973:32;2963:42;;3052:2;3041:9;3037:18;3024:32;3014:42;;3075:37;3107:3;3096:9;3092:19;3075:37;:::i;:::-;3065:47;;1915:1203;;;;;;;;:::o;3487:328::-;3564:6;3572;3580;3633:2;3621:9;3612:7;3608:23;3604:32;3601:52;;;3649:1;3646;3639:12;3601:52;3672:29;3691:9;3672:29;:::i;:::-;3662:39;;3720:38;3754:2;3743:9;3739:18;3720:38;:::i;:::-;3710:48;;3805:2;3794:9;3790:18;3777:32;3767:42;;3487:328;;;;;:::o;3820:180::-;3879:6;3932:2;3920:9;3911:7;3907:23;3903:32;3900:52;;;3948:1;3945;3938:12;3900:52;-1:-1:-1;3971:23:29;;3820:180;-1:-1:-1;3820:180:29:o;4005:186::-;4064:6;4117:2;4105:9;4096:7;4092:23;4088:32;4085:52;;;4133:1;4130;4123:12;4085:52;4156:29;4175:9;4156:29;:::i;4381:254::-;4449:6;4457;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;4562:9;4549:23;4539:33;;4591:38;4625:2;4614:9;4610:18;4591:38;:::i;:::-;4581:48;;4381:254;;;;;:::o;4829:348::-;4881:8;4891:6;4945:3;4938:4;4930:6;4926:17;4922:27;4912:55;;4963:1;4960;4953:12;4912:55;-1:-1:-1;4986:20:29;;5029:18;5018:30;;5015:50;;;5061:1;5058;5051:12;5015:50;5098:4;5090:6;5086:17;5074:29;;5150:3;5143:4;5134:6;5126;5122:19;5118:30;5115:39;5112:59;;;5167:1;5164;5157:12;5112:59;4829:348;;;;;:::o;5182:411::-;5253:6;5261;5314:2;5302:9;5293:7;5289:23;5285:32;5282:52;;;5330:1;5327;5320:12;5282:52;5370:9;5357:23;5403:18;5395:6;5392:30;5389:50;;;5435:1;5432;5425:12;5389:50;5474:59;5525:7;5516:6;5505:9;5501:22;5474:59;:::i;:::-;5552:8;;5448:85;;-1:-1:-1;5182:411:29;-1:-1:-1;;;;5182:411:29:o;5598:248::-;5666:6;5674;5727:2;5715:9;5706:7;5702:23;5698:32;5695:52;;;5743:1;5740;5733:12;5695:52;-1:-1:-1;;5766:23:29;;;5836:2;5821:18;;;5808:32;;-1:-1:-1;5598:248:29:o;6059:484::-;6138:6;6146;6154;6207:2;6195:9;6186:7;6182:23;6178:32;6175:52;;;6223:1;6220;6213:12;6175:52;6246:29;6265:9;6246:29;:::i;:::-;6236:39;;6326:2;6315:9;6311:18;6298:32;6353:18;6345:6;6342:30;6339:50;;;6385:1;6382;6375:12;6339:50;6424:59;6475:7;6466:6;6455:9;6451:22;6424:59;:::i;:::-;6059:484;;6502:8;;-1:-1:-1;6398:85:29;;-1:-1:-1;;;;6059:484:29:o;6548:260::-;6616:6;6624;6677:2;6665:9;6656:7;6652:23;6648:32;6645:52;;;6693:1;6690;6683:12;6645:52;6716:29;6735:9;6716:29;:::i;:::-;6706:39;;6764:38;6798:2;6787:9;6783:18;6764:38;:::i;6813:866::-;6921:6;6929;6937;6945;6953;6961;7014:3;7002:9;6993:7;6989:23;6985:33;6982:53;;;7031:1;7028;7021:12;6982:53;7071:9;7058:23;7100:18;7141:2;7133:6;7130:14;7127:34;;;7157:1;7154;7147:12;7127:34;7196:59;7247:7;7238:6;7227:9;7223:22;7196:59;:::i;:::-;7274:8;;-1:-1:-1;7170:85:29;-1:-1:-1;7362:2:29;7347:18;;7334:32;;-1:-1:-1;7378:16:29;;;7375:36;;;7407:1;7404;7397:12;7375:36;;7446:61;7499:7;7488:8;7477:9;7473:24;7446:61;:::i;:::-;7526:8;;-1:-1:-1;7420:87:29;-1:-1:-1;7580:36:29;;-1:-1:-1;7612:2:29;7597:18;;7580:36;:::i;:::-;7570:46;;7635:38;7669:2;7658:9;7654:18;7635:38;:::i;:::-;7625:48;;6813:866;;;;;;;;:::o;7684:380::-;7763:1;7759:12;;;;7806;;;7827:61;;7881:4;7873:6;7869:17;7859:27;;7827:61;7934:2;7926:6;7923:14;7903:18;7900:38;7897:161;;7980:10;7975:3;7971:20;7968:1;7961:31;8015:4;8012:1;8005:15;8043:4;8040:1;8033:15;7897:161;;7684:380;;;:::o;8471:432::-;-1:-1:-1;;;;;8728:15:29;;;8710:34;;8780:15;;8775:2;8760:18;;8753:43;8832:2;8827;8812:18;;8805:30;;;8653:4;;8852:45;;8878:18;;8870:6;8852:45;:::i;8908:428::-;9065:3;9103:6;9097:13;9119:66;9178:6;9173:3;9166:4;9158:6;9154:17;9119:66;:::i;:::-;9254:2;9250:15;;;;-1:-1:-1;;9246:53:29;9207:16;;;;9232:68;;;9327:2;9316:14;;8908:428;-1:-1:-1;;8908:428:29:o;9341:287::-;9470:3;9508:6;9502:13;9524:66;9583:6;9578:3;9571:4;9563:6;9559:17;9524:66;:::i;:::-;9606:16;;;;;9341:287;-1:-1:-1;;9341:287:29:o;11308:963::-;11417:4;11446:2;11475;11464:9;11457:21;11498:1;11531:6;11525:13;11561:36;11587:9;11561:36;:::i;:::-;11633:6;11628:2;11617:9;11613:18;11606:34;11659:2;11680:1;11712:2;11701:9;11697:18;11729:1;11724:158;;;;11896:1;11891:354;;;;11690:555;;11724:158;-1:-1:-1;;11772:24:29;;11752:18;;;11745:52;11850:14;;11843:22;11840:1;11836:30;11821:46;;11817:55;;;-1:-1:-1;11724:158:29;;11891:354;11922:6;11919:1;11912:17;11970:2;11967:1;11957:16;11995:1;12009:180;12023:6;12020:1;12017:13;12009:180;;;12116:14;;12092:17;;;12088:26;;12081:50;12159:16;;;;12038:10;;12009:180;;;12213:17;;12209:26;;;-1:-1:-1;;11690:555:29;-1:-1:-1;12262:3:29;;11308:963;-1:-1:-1;;;;;;;;11308:963:29:o;13036:419::-;-1:-1:-1;;;13303:3:29;13296:20;13359:6;13351;13347:1;13342:3;13338:11;13325:41;13278:3;13389:16;;13407:1;13385:24;13418:13;;;13385:24;13036:419;-1:-1:-1;13036:419:29:o;15077:127::-;15138:10;15133:3;15129:20;15126:1;15119:31;15169:4;15166:1;15159:15;15193:4;15190:1;15183:15;15209:125;15274:9;;;15295:10;;;15292:36;;;15308:18;;:::i;16505:128::-;16572:9;;;16593:11;;;16590:37;;;16607:18;;:::i;17040:545::-;17142:2;17137:3;17134:11;17131:448;;;17178:1;17203:5;17199:2;17192:17;17248:4;17244:2;17234:19;17318:2;17306:10;17302:19;17299:1;17295:27;17289:4;17285:38;17354:4;17342:10;17339:20;17336:47;;;-1:-1:-1;17377:4:29;17336:47;17432:2;17427:3;17423:12;17420:1;17416:20;17410:4;17406:31;17396:41;;17487:82;17505:2;17498:5;17495:13;17487:82;;;17550:17;;;17531:1;17520:13;17487:82;;;17491:3;;;17040:545;;;:::o;17761:1352::-;17887:3;17881:10;17914:18;17906:6;17903:30;17900:56;;;17936:18;;:::i;:::-;17965:97;18055:6;18015:38;18047:4;18041:11;18015:38;:::i;:::-;18009:4;17965:97;:::i;:::-;18117:4;;18181:2;18170:14;;18198:1;18193:663;;;;18900:1;18917:6;18914:89;;;-1:-1:-1;18969:19:29;;;18963:26;18914:89;-1:-1:-1;;17718:1:29;17714:11;;;17710:24;17706:29;17696:40;17742:1;17738:11;;;17693:57;19016:81;;18163:944;;18193:663;11255:1;11248:14;;;11292:4;11279:18;;-1:-1:-1;;18229:20:29;;;18347:236;18361:7;18358:1;18355:14;18347:236;;;18450:19;;;18444:26;18429:42;;18542:27;;;;18510:1;18498:14;;;;18377:19;;18347:236;;;18351:3;18611:6;18602:7;18599:19;18596:201;;;18672:19;;;18666:26;-1:-1:-1;;18755:1:29;18751:14;;;18767:3;18747:24;18743:37;18739:42;18724:58;18709:74;;18596:201;-1:-1:-1;;;;;18843:1:29;18827:14;;;18823:22;18810:36;;-1:-1:-1;17761:1352:29:o;19612:478::-;19844:3;19882:6;19876:13;19898:66;19957:6;19952:3;19945:4;19937:6;19933:17;19898:66;:::i;:::-;20025:28;19986:16;;20011:43;;;-1:-1:-1;20081:2:29;20070:14;;19612:478;-1:-1:-1;19612:478:29:o;21317:127::-;21378:10;21373:3;21369:20;21366:1;21359:31;21409:4;21406:1;21399:15;21433:4;21430:1;21423:15;21449:127;21510:10;21505:3;21501:20;21498:1;21491:31;21541:4;21538:1;21531:15;21565:4;21562:1;21555:15"},"methodIdentifiers":{"CHILD_CHAIN_ID()":"626381a0","CHILD_CHAIN_ID_BYTES()":"0b54817c","DEFAULT_ADMIN_ROLE()":"a217fddf","DEPOSITOR_ROLE()":"a3b0b5a3","ERC712_VERSION()":"0f7e5970","ROOT_CHAIN_ID()":"8acfcaf7","ROOT_CHAIN_ID_BYTES()":"0dd7531a","_mint(address,uint256)":"4e6ec247","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","changeName(string)":"5353a2d8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(address,bytes)":"cf2c52cb","executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)":"0c53c51c","getChainId()":"3408e470","getDomainSeperator()":"20379ee5","getNonce(address)":"2d0335ab","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increaseAllowance(address,uint256)":"39509351","initialize(string,string,uint8,address)":"de7ea79d","name()":"06fdde03","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"relayerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"}],\"name\":\"MetaTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC712_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"changeName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"depositData\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"}],\"name\":\"executeMetaTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"childChainManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"_mint(address,uint256)\":{\"details\":\"Creates `amount` tokens and assigns them to `account`, increasing the total supply. Emits a {Transfer} event with `from` set to the zero address. Requirements - `to` cannot be the zero address. \"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(address,bytes)\":{\"details\":\"Should be callable only by ChildChainManager Should handle deposit by minting the required amount for user Make sure minting is done only by this function\",\"params\":{\"depositData\":\"abi encoded amount\",\"user\":\"user address for whom deposit is being done\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"initialize(string,string,uint8,address)\":{\"details\":\"meant to be called once immediately after deployment\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"withdraw(uint256)\":{\"details\":\"Should burn user's tokens. This transaction will be verified when exiting on root chain\",\"params\":{\"amount\":\"amount of tokens to withdraw\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit(address,bytes)\":{\"notice\":\"called when token is deposited on root chain\"},\"initialize(string,string,uint8,address)\":{\"notice\":\"Initialize the contract after it has been proxified\"},\"withdraw(uint256)\":{\"notice\":\"called when user wants to withdraw tokens back to root chain\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"UChildERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"}},"hardhat/console.sol":{"console":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:68934:28;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:28:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json new file mode 100644 index 00000000..9548c37a --- /dev/null +++ b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json @@ -0,0 +1,112 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IgammaOffersContract", + "sourceName": "contracts/gamma/GammaCards.v5.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOfferByUserAndCardNumber", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getOffersByUserCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "hasOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "removeOffersByUser", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json new file mode 100644 index 00000000..ff4687bd --- /dev/null +++ b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json @@ -0,0 +1,66 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IgammaPacksContract", + "sourceName": "contracts/gamma/GammaCards.v5.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getPackOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "openPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "openPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json new file mode 100644 index 00000000..9324a62b --- /dev/null +++ b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IgammaTicketsContract", + "sourceName": "contracts/gamma/GammaCards.v5.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "generateTicket", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json b/artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json new file mode 100644 index 00000000..477c0f52 --- /dev/null +++ b/artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json @@ -0,0 +1,2007 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaCardsV5", + "sourceName": "contracts/gamma/GammaCards.v5.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_daiTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaOffersContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + }, + { + "internalType": "string", + "name": "_baseUri", + "type": "string" + }, + { + "internalType": "address", + "name": "_signer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "CannotRemoveUserOffers", + "type": "error" + }, + { + "inputs": [], + "name": "CardLimitExceeded", + "type": "error" + }, + { + "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" + }, + { + "inputs": [], + "name": "IncorrectPrizeAmount", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientCards", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCardNumber", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidSignature", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidTransfer", + "type": "error" + }, + { + "inputs": [], + "name": "MustCompleteAlbum", + "type": "error" + }, + { + "inputs": [], + "name": "NotYourPack", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyGammaPacksContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOffersContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "UserDoesNotHaveCardOrAlbum", + "type": "error" + }, + { + "inputs": [], + "name": "WrongPacksQuantity", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "player", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8", + "name": "albumClass", + "type": "uint8" + } + ], + "name": "AlbumCompleted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "player", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "cardTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "albumTokenId", + "type": "uint256" + } + ], + "name": "CardPasted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "CardTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8[]", + "name": "cardsNumber", + "type": "uint8[]" + } + ], + "name": "CardsBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8[]", + "name": "cardNumber", + "type": "uint8[]" + } + ], + "name": "CardsTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "EmergencyWithdrawal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaOffersContract", + "type": "address" + } + ], + "name": "NewGammaOffersContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaPacksContract", + "type": "address" + } + ], + "name": "NewGammaPacksContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaTicketContract", + "type": "address" + } + ], + "name": "NewGammaTicketsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newSigner", + "type": "address" + } + ], + "name": "NewSigner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "string", + "name": "newMainUri", + "type": "string" + }, + { + "indexed": true, + "internalType": "string", + "name": "newSecondaryUri", + "type": "string" + } + ], + "name": "NewUris", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumberFrom", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumberTo", + "type": "uint8" + } + ], + "name": "OfferCardsExchanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "player", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + } + ], + "name": "PackOpened", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DAI_TOKEN", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newSigner", + "type": "address" + } + ], + "name": "addSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8[]", + "name": "cardNumbers", + "type": "uint8[]" + } + ], + "name": "burnCards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "_maxPacksToOpenAtOnce", + "type": "uint8" + } + ], + "name": "changeMaxPacksToOpenAtOnce", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newPackPrice", + "type": "uint256" + } + ], + "name": "changePackPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "required", + "type": "bool" + } + ], + "name": "changeRequireOfferValidationInMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "required", + "type": "bool" + } + ], + "name": "changeRequireOfferValidationInTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "required", + "type": "bool" + } + ], + "name": "changeRequireOpenPackSignerValidation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "emergencyWithdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberFrom", + "type": "uint8" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberTo", + "type": "uint8" + } + ], + "name": "exchangeCardsOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finishAlbum", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaOffersContract", + "outputs": [ + { + "internalType": "contract IgammaOffersContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaPacksContract", + "outputs": [ + { + "internalType": "contract IgammaPacksContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaTicketsContract", + "outputs": [ + { + "internalType": "contract IgammaTicketsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getBurnedCardQttyByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNum", + "type": "uint8" + } + ], + "name": "getCardQuantityByUser", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getCardsByUser", + "outputs": [ + { + "internalType": "uint8[]", + "name": "", + "type": "uint8[]" + }, + { + "internalType": "uint8[]", + "name": "", + "type": "uint8[]" + }, + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLotteryPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNum", + "type": "uint8" + } + ], + "name": "hasCard", + "outputs": [ + { + "internalType": "bool", + "name": "has", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "hasCardByOffer", + "outputs": [ + { + "internalType": "bool", + "name": "has", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isSigner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNum", + "type": "uint8" + } + ], + "name": "mintCard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "openPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "packsQuantity", + "type": "uint8" + }, + { + "internalType": "uint256[]", + "name": "packsNumber", + "type": "uint256[]" + }, + { + "internalType": "uint8[][]", + "name": "packsData", + "type": "uint8[][]" + }, + { + "internalType": "bytes[]", + "name": "signatures", + "type": "bytes[]" + } + ], + "name": "openPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_signerToRemove", + "type": "address" + } + ], + "name": "removeSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "restoreCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "s_baseUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "s_burnedCards", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "s_cards", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "number", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "pasted", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "class", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "completion", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "s_cardsByUser", + "outputs": [ + { + "internalType": "uint8", + "name": "amount", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "cardNumber", + "type": "uint256" + } + ], + "name": "s_cardsInventory", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_lotteryPrizePercentage", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_mainAlbumPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_mainUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_maxPacksToOpenAtOnce", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_packPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_prizesBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOfferValidationInMint", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOfferValidationInTransfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOpenPackSignerValidation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_secondaryAlbumPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_secondaryUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_tokenIdCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaOffersContract", + "type": "address" + } + ], + "name": "setGammaOffersContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + } + ], + "name": "setGammaPacksContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "name": "setGammaTicketsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "amount", + "type": "uint8" + } + ], + "name": "setLotteryPrizePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setMainAlbumPrize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setPrizesBalance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setSecondaryAlbumPrize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newMainUri", + "type": "string" + }, + { + "internalType": "string", + "name": "newSecondaryUri", + "type": "string" + } + ], + "name": "setUris", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "testAddCards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + } + ], + "name": "testOpenPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "transferCard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8[]", + "name": "cardNumbers", + "type": "uint8[]" + } + ], + "name": "transferCards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "verifyPackSigner", + "outputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040516200592d3803806200592d8339810160408190526200007d91620003ae565b336040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000d1919062000554565b506001620000e0828262000554565b5050506001600160a01b0381166200011257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200011d8162000303565b50336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a805486841690831617905560098054928716929091169190911790556017620001a4838262000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b81840152935162000203946017949390910162000620565b6040516020818303038152906040526015908162000222919062000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b81840152935162000281946017949390910162000620565b60405160208183030381529060405260169081620002a0919062000554565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015620002f6576000818152601a602052604090206001905580620002ed81620006dd565b915050620002c5565b5050505050505062000705565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003a55781810151838201526020016200038b565b50506000910152565b60008060008060008060c08789031215620003c857600080fd5b620003d38762000355565b9550620003e36020880162000355565b9450620003f36040880162000355565b9350620004036060880162000355565b60808801519093506001600160401b03808211156200042157600080fd5b818901915089601f8301126200043657600080fd5b8151818111156200044b576200044b62000372565b604051601f8201601f19908116603f0116810190838211818310171562000476576200047662000372565b816040528281528c60208487010111156200049057600080fd5b620004a383602083016020880162000388565b8096505050505050620004b960a0880162000355565b90509295509295509295565b600181811c90821680620004da57607f821691505b602082108103620004fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054f57600081815260208120601f850160051c810160208610156200052a5750805b601f850160051c820191505b818110156200054b5782815560010162000536565b5050505b505050565b81516001600160401b0381111562000570576200057062000372565b6200058881620005818454620004c5565b8462000501565b602080601f831160018114620005c05760008415620005a75750858301515b600019600386901b1c1916600185901b1785556200054b565b600085815260208120601f198616915b82811015620005f157888601518255948401946001909101908401620005d0565b5085821015620006105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008086546200063081620004c5565b600182811680156200064b5760018114620006615762000692565b60ff198416875282151583028701945062000692565b8a60005260208060002060005b85811015620006895781548a8201529084019082016200066e565b50505082870194505b505050508551620006a8818360208a0162000388565b8551910190620006bd81836020890162000388565b8451910190620006d281836020880162000388565b019695505050505050565b600060018201620006fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b61521880620007156000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 5805 + }, + { + "length": 20, + "start": 6489 + }, + { + "length": 20, + "start": 10458 + }, + { + "length": 20, + "start": 15317 + } + ] + }, + "contracts/gamma/libs/LibPackVerifier.sol": { + "LibPackVerifier": [ + { + "length": 20, + "start": 6067 + }, + { + "length": 20, + "start": 15807 + } + ] + }, + "contracts/gamma/libs/LibStringUtils.sol": { + "LibStringUtils": [ + { + "length": 20, + "start": 14469 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 3992 + }, + { + "length": 20, + "start": 4676 + }, + { + "length": 20, + "start": 8645 + }, + { + "length": 20, + "start": 13504 + } + ] + }, + "contracts/gamma/libs/LibPackVerifier.sol": { + "LibPackVerifier": [ + { + "length": 20, + "start": 4254 + }, + { + "length": 20, + "start": 13994 + } + ] + }, + "contracts/gamma/libs/LibStringUtils.sol": { + "LibStringUtils": [ + { + "length": 20, + "start": 12656 + } + ] + } + } +} diff --git a/artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json b/artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json new file mode 100644 index 00000000..33cf9eb9 --- /dev/null +++ b/artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json @@ -0,0 +1,494 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaCardsNFTV1", + "sourceName": "contracts/gamma/GammaCardsNFT.v1.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61106480620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json b/artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json new file mode 100644 index 00000000..f63542d5 --- /dev/null +++ b/artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json @@ -0,0 +1,99 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IGammaCardsContract", + "sourceName": "contracts/gamma/GammaOffers.v4.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberFrom", + "type": "uint8" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberTo", + "type": "uint8" + } + ], + "name": "exchangeCardsOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "hasCardByOffer", + "outputs": [ + { + "internalType": "bool", + "name": "has", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "restoreCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json b/artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json new file mode 100644 index 00000000..c7c5c39c --- /dev/null +++ b/artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json @@ -0,0 +1,1042 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaOffersV4", + "sourceName": "contracts/gamma/GammaOffers.v4.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_cardsContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ExchangeError", + "type": "error" + }, + { + "inputs": [], + "name": "GammaCardsContractNotSet", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCard", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCardNumber", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidOfferId", + "type": "error" + }, + { + "inputs": [], + "name": "OfferAlreadyExists", + "type": "error" + }, + { + "inputs": [], + "name": "OfferDoesNotExists", + "type": "error" + }, + { + "inputs": [], + "name": "OfferNotDeleted", + "type": "error" + }, + { + "inputs": [], + "name": "OffersMaximumAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCardsContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "RemoveOfferFromCardNumberMapping_DoNotMatch", + "type": "error" + }, + { + "inputs": [], + "name": "RemoveOfferFromUserMapping_DoNotMatch", + "type": "error" + }, + { + "inputs": [], + "name": "UserAlreadyHasCard", + "type": "error" + }, + { + "inputs": [], + "name": "UserDoesNotHaveCard", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "AllOffersRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newGammaCardsContract", + "type": "address" + } + ], + "name": "NewGammaCardsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + } + ], + "name": "OfferCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "OfferRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "UserOffersRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "canAnyUserPublishOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "canUserPublishOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_value", + "type": "bool" + } + ], + "name": "changeRemoveCardinInventoryWhenOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberWanted", + "type": "uint8" + }, + { + "internalType": "address", + "name": "offerWallet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "offerCardNumber", + "type": "uint8" + } + ], + "name": "confirmOfferExchange", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + } + ], + "name": "createOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + } + ], + "name": "createOfferWithoUser", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "deleteAllOffers", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaCardsContract", + "outputs": [ + { + "internalType": "contract IGammaCardsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaxOffersAllowed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaxOffersByUserAllowed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getOfferByIndex", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + } + ], + "name": "getOfferByOfferId", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOfferByUserAndCardNumber", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOffers", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOffersByCardNumber", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOffersByCardNumberCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getOffersByUser", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getOffersByUserCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOffersCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "hasOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "offers", + "outputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "name": "offersByCardNumberCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "offersByUserCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "offersTotalCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeOfferByCardNumber", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeOfferByUserAndCardNumber", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "removeOffersByUser", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + } + ], + "name": "setGammaCardsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxCardNumbersAllowed", + "type": "uint256" + } + ], + "name": "setMaxCardNumbersAllowed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxOffersAllowed", + "type": "uint256" + } + ], + "name": "setMaxOffersAllowed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxOffersByUserAllowed", + "type": "uint256" + } + ], + "name": "setMaxOffersByUserAllowed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b506040516200379b3803806200379b8339810160408190526200004d9162000138565b33806200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f81620000e8565b506001600160a01b038116620000a85760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff191690911790556200016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014b57600080fd5b81516001600160a01b03811681146200016357600080fd5b9392505050565b613621806200017a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1898 + }, + { + "length": 20, + "start": 3666 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1520 + }, + { + "length": 20, + "start": 3288 + } + ] + } + } +} diff --git a/artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json b/artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json new file mode 100644 index 00000000..c34566c7 --- /dev/null +++ b/artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json @@ -0,0 +1,37 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IGammaCardsContract", + "sourceName": "contracts/gamma/GammaPacks.v3.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "changePackPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setPrizesBalance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json b/artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json new file mode 100644 index 00000000..14cc29e4 --- /dev/null +++ b/artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json @@ -0,0 +1,46 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IgammaTicketsContract", + "sourceName": "contracts/gamma/GammaPacks.v3.sol", + "abi": [ + { + "inputs": [], + "name": "deleteAllTickets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getLotteryWinner", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json b/artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json new file mode 100644 index 00000000..6e18eaad --- /dev/null +++ b/artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json @@ -0,0 +1,875 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaPacksV3", + "sourceName": "contracts/gamma/GammaPacks.v3.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_daiTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_balanceReceiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InsufficientAllowance", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientPacksAvailable", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidNumberOfPacks", + "type": "error" + }, + { + "inputs": [], + "name": "NotGammaCardsContract", + "type": "error" + }, + { + "inputs": [], + "name": "NotYourPack", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "OwnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "TransferPrizeError", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "balanceReceiver", + "type": "address" + } + ], + "name": "NewBalanceReceiver", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newCardsContract", + "type": "address" + } + ], + "name": "NewGammaCardsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaTicketContract", + "type": "address" + } + ], + "name": "NewGammaTicketsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newPrice", + "type": "uint256" + } + ], + "name": "NewPrice", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "PackOpened", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "PackPurchased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "PackTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + } + ], + "name": "PacksPurchased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256[]", + "name": "tokenId", + "type": "uint256[]" + } + ], + "name": "PacksTransfered", + "type": "event" + }, + { + "inputs": [], + "name": "DAI_TOKEN", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOTALSUPPLY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "buyPack", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "buyPackByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "buyPacks", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "buyPacksByUser", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newBalanceReceiver", + "type": "address" + } + ], + "name": "changeBalanceReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_newPrice", + "type": "uint256" + } + ], + "name": "changePrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_transferDai", + "type": "bool" + } + ], + "name": "changeTransferDaiFlag", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaCardsContract", + "outputs": [ + { + "internalType": "contract IGammaCardsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaTicketsContract", + "outputs": [ + { + "internalType": "contract IgammaTicketsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "getAmountRequiredToBuyPacks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getPackOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "getPacksByUser", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "getPrizeAmountToBuyPacks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "getPrizeNoFAccountAmountToBuyPacks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "meetQuantityConditionsToBuy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "openPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "openPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "s_balanceReceiver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_packPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "s_packs", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "s_packsByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenIds", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + } + ], + "name": "setGammaCardsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "name": "setGammaTicketsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "testOpenPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "testOpenPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + } + ], + "name": "transferPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526710a741a46278000060075560006008556009805460ff191660011790553480156200002f57600080fd5b5060405162001c6238038062001c628339810160408190526200005291620001af565b33806200007957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000848162000142565b506001600160a01b0383161580620000a357506001600160a01b038216155b80620000b657506001600160a01b038116155b15620000d55760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff191690911790556200020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001aa57600080fd5b919050565b60008060008060808587031215620001c657600080fd5b620001d18562000192565b9350620001e16020860162000192565b9250620001f16040860162000192565b9150620002016060860162000192565b905092959194509250565b611a46806200021c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 2093 + }, + { + "length": 20, + "start": 2602 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1553 + }, + { + "length": 20, + "start": 2062 + } + ] + } + } +} diff --git a/artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json b/artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json new file mode 100644 index 00000000..bb6d2a74 --- /dev/null +++ b/artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json @@ -0,0 +1,63 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LibControlMgmt", + "sourceName": "contracts/gamma/libs/LibControlMgmt.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "NewOwnerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newSigner", + "type": "address" + } + ], + "name": "NewSignerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnerRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerRemoved", + "type": "event" + } + ], + "bytecode": "0x6105e461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json b/artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json new file mode 100644 index 00000000..ec049ba7 --- /dev/null +++ b/artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json @@ -0,0 +1,72 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LibPackVerifier", + "sourceName": "contracts/gamma/libs/LibPackVerifier.sol", + "abi": [ + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "verifyPackSigner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x61058c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json b/artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json new file mode 100644 index 00000000..89ec9e64 --- /dev/null +++ b/artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LibStringUtils", + "sourceName": "contracts/gamma/libs/LibStringUtils.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "toString", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x6102ce61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json b/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json new file mode 100644 index 00000000..42d9adf3 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json @@ -0,0 +1,239 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessControl", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json b/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json new file mode 100644 index 00000000..d91b3fb7 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json @@ -0,0 +1,239 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessControlMixin", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610736806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/Address.json b/artifacts/contracts/testDai/TestDAI.v3.sol/Address.json new file mode 100644 index 00000000..ff1c885e --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/Address.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Address", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json b/artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json new file mode 100644 index 00000000..a415a529 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json @@ -0,0 +1,76 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ChainConstants", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "inputs": [], + "name": "CHILD_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "CHILD_CHAIN_ID_BYTES", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ERC712_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_CHAIN_ID_BYTES", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610186806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/Context.json b/artifacts/contracts/testDai/TestDAI.v3.sol/Context.json new file mode 100644 index 00000000..d4e2baa6 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/Context.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Context", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json b/artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json new file mode 100644 index 00000000..49c59466 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ContextMixin", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json b/artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json new file mode 100644 index 00000000..c56b5e39 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json @@ -0,0 +1,37 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EIP712Base", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDomainSeperator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040526000805460ff19169055348015601957600080fd5b506088806100286000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json b/artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json new file mode 100644 index 00000000..08ff0c05 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json @@ -0,0 +1,315 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC20", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "__name", + "type": "string" + }, + { + "internalType": "string", + "name": "__symbol", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "_mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d0838038062000d0883398101604081905262000034916200012c565b600362000042838262000225565b50600462000051828262000225565b50506005805460ff1916601217905550620002f1565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008f57600080fd5b81516001600160401b0380821115620000ac57620000ac62000067565b604051601f8301601f19908116603f01168101908282118183101715620000d757620000d762000067565b81604052838152602092508683858801011115620000f457600080fd5b600091505b83821015620001185785820183015181830184015290820190620000f9565b600093810190920192909252949350505050565b600080604083850312156200014057600080fd5b82516001600160401b03808211156200015857600080fd5b62000166868387016200007d565b935060208501519150808211156200017d57600080fd5b506200018c858286016200007d565b9150509250929050565b600181811c90821680620001ab57607f821691505b602082108103620001cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022057600081815260208120601f850160051c81016020861015620001fb5750805b601f850160051c820191505b818110156200021c5782815560010162000207565b5050505b505050565b81516001600160401b0381111562000241576200024162000067565b620002598162000252845462000196565b84620001d2565b602080601f831160018114620002915760008415620002785750858301515b600019600386901b1c1916600185901b1785556200021c565b600085815260208120601f198616915b82811015620002c257888601518255948401946001909101908401620002a1565b5085821015620002e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a0780620003016000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json b/artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json new file mode 100644 index 00000000..0429cefd --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EnumerableSet", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json b/artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json new file mode 100644 index 00000000..92828116 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json @@ -0,0 +1,29 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IChildToken", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "bytes", + "name": "depositData", + "type": "bytes" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json b/artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json new file mode 100644 index 00000000..5c04d59f --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json @@ -0,0 +1,194 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json b/artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json new file mode 100644 index 00000000..28828511 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Initializable", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [], + "bytecode": "0x60806040526000805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033", + "deployedBytecode": "0x6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json b/artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json new file mode 100644 index 00000000..d26e226b --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json @@ -0,0 +1,120 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NativeMetaTransaction", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "userAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "relayerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "functionSignature", + "type": "bytes" + } + ], + "name": "MetaTransactionExecuted", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "userAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "functionSignature", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "sigR", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "sigS", + "type": "bytes32" + }, + { + "internalType": "uint8", + "name": "sigV", + "type": "uint8" + } + ], + "name": "executeMetaTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDomainSeperator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040526000805460ff1916905534801561001a57600080fd5b506107998061002a6000396000f3fe60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033", + "deployedBytecode": "0x60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json b/artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json new file mode 100644 index 00000000..7b890789 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json @@ -0,0 +1,906 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofTestDAIV3", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "userAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "relayerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "functionSignature", + "type": "bytes" + } + ], + "name": "MetaTransactionExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "CHILD_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "CHILD_CHAIN_ID_BYTES", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEPOSITOR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ERC712_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_CHAIN_ID_BYTES", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "_mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + } + ], + "name": "changeName", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "bytes", + "name": "depositData", + "type": "bytes" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "userAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "functionSignature", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "sigR", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "sigS", + "type": "bytes32" + }, + { + "internalType": "uint8", + "name": "sigV", + "type": "uint8" + } + ], + "name": "executeMetaTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDomainSeperator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + }, + { + "internalType": "uint8", + "name": "decimals_", + "type": "uint8" + }, + { + "internalType": "address", + "name": "childChainManager", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "move", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "holder", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "allowed", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "usr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "pull", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "usr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "push", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127d580620001fc6000396000f3fe6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json b/artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json new file mode 100644 index 00000000..83ce32e6 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SafeMath", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json b/artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json new file mode 100644 index 00000000..68654302 --- /dev/null +++ b/artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json @@ -0,0 +1,791 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "UChildERC20", + "sourceName": "contracts/testDai/TestDAI.v3.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "userAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "relayerAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "functionSignature", + "type": "bytes" + } + ], + "name": "MetaTransactionExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "CHILD_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "CHILD_CHAIN_ID_BYTES", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEPOSITOR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ERC712_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_CHAIN_ID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_CHAIN_ID_BYTES", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "_mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + } + ], + "name": "changeName", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "bytes", + "name": "depositData", + "type": "bytes" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "userAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "functionSignature", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "sigR", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "sigS", + "type": "bytes32" + }, + { + "internalType": "uint8", + "name": "sigV", + "type": "uint8" + } + ], + "name": "executeMetaTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDomainSeperator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + }, + { + "internalType": "uint8", + "name": "decimals_", + "type": "uint8" + }, + { + "internalType": "address", + "name": "childChainManager", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6123b780620001fc6000396000f3fe6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/hardhat/console.sol/console.json b/artifacts/hardhat/console.sol/console.json new file mode 100644 index 00000000..48515ec2 --- /dev/null +++ b/artifacts/hardhat/console.sol/console.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "console", + "sourceName": "hardhat/console.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/contracts/gamma/GammaCards.v5.sol b/contracts/gamma/GammaCards.v5.sol new file mode 100644 index 00000000..52ee0d80 --- /dev/null +++ b/contracts/gamma/GammaCards.v5.sol @@ -0,0 +1,572 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {LibStringUtils} from "./libs/LibStringUtils.sol"; +import {LibPackVerifier} from "./libs/LibPackVerifier.sol"; +import {LibControlMgmt} from "./libs/LibControlMgmt.sol"; +import {console} from "hardhat/console.sol"; +import {NofGammaCardsNFTV1} from "./GammaCardsNFT.v1.sol"; + +error OnlyGammaPacksContract(); +error OnlyOffersContract(); +error OnlyOwners(); +error InvalidAddress(); +error InvalidCardNumber(); +error InvalidTransfer(); +error InvalidSignature(); +error IncorrectPrizeAmount(); +error WrongPacksQuantity(); +error NotYourPack(); +error CardLimitExceeded(); +error UserDoesNotHaveCardOrAlbum(); +error InsufficientFunds(); +error InsufficientCards(); +error MustCompleteAlbum(); +error CannotRemoveUserOffers(); + +interface IgammaPacksContract { + function getPackOwner(uint256 tokenId) external view returns (address); + + function openPack(uint256 tokenId, address owner) external; + + function openPacks(uint256[] memory tokenIds, address owner) external; +} + +interface IgammaOffersContract { + function hasOffer(address user, uint8 cardNumber) external view returns (bool); + + function removeOffersByUser(address user) external returns (bool); + + function getOffersByUserCounter(address user) external view returns (uint256); + + function getOfferByUserAndCardNumber( + address user, + uint8 cardNumber + ) external view returns (uint256, uint8, uint8[] memory, address); +} + +interface IgammaTicketsContract { + function generateTicket(address user) external; +} + +contract NofGammaCardsV5 is NofGammaCardsNFTV1, Ownable { + using LibStringUtils for uint8; + using LibControlMgmt for LibControlMgmt.Data; + + IgammaPacksContract public gammaPacksContract; + IgammaOffersContract public gammaOffersContract; + IgammaTicketsContract public gammaTicketsContract; + + LibControlMgmt.Data private ownersData; + LibControlMgmt.Data private signersData; + + uint8 public s_maxPacksToOpenAtOnce = 10; + uint8 public s_lotteryPrizePercentage = 50; + address public DAI_TOKEN; + uint256 public s_tokenIdCounter; + uint256 public s_packPrice = 12e17; // 1.2 DAI + uint256 public s_prizesBalance = 0; + uint256 public s_mainAlbumPrize = 15e18; // 15 DAI por album principal completado + uint256 public s_secondaryAlbumPrize = 1e18; // 1 DAI por album secundario completado + string public s_mainUri; + string public s_secondaryUri; + string public s_baseUri; + bool public s_requireOpenPackSignerValidation; + bool public s_requireOfferValidationInMint = true; + bool public s_requireOfferValidationInTransfer = true; + + struct Card { + uint256 tokenId; + uint256 number; + bool pasted; + uint8 class; // 1 para cartas, 2 para album de 120, 3 para album de 60 + uint256 completion; // solo se modifica en el caso de los albums + } + + mapping(uint256 tokenId => Card) public s_cards; + mapping(uint256 cardNumber => uint256 amount) public s_cardsInventory; // maximos: 120 => 5000 + mapping(address user => uint256 amount) public s_burnedCards; + mapping(address user => mapping(uint8 cardNumber => uint8 amount)) public s_cardsByUser; + + event NewGammaOffersContract(address indexed newGammaOffersContract); + event NewGammaPacksContract(address indexed newGammaPacksContract); + event NewGammaTicketsContract(address indexed newGammaTicketContract); + event PackOpened(address indexed player, uint8[] indexed packData, uint256 indexed packNumber); + event AlbumCompleted(address indexed player, uint8 indexed albumClass); + event CardPasted(address indexed player, uint256 indexed cardTokenId, uint256 indexed albumTokenId); + event EmergencyWithdrawal(address indexed receiver, uint256 indexed amount); + event NewSigner(address indexed newSigner); + event NewUris(string indexed newMainUri, string indexed newSecondaryUri); + event OfferCardsExchanged(address indexed from, address indexed to, uint8 cardNumberFrom, uint8 cardNumberTo); + event CardTransfered(address indexed from, address indexed to, uint8 cardNumber); + event CardsTransfered(address indexed from, address indexed to, uint8[] indexed cardNumber); + event CardsBurned(address indexed user, uint8[] indexed cardsNumber); + + modifier onlyGammaPacksContract() { + if(msg.sender != address(gammaPacksContract)) revert OnlyGammaPacksContract(); + _; + } + + modifier onlyGammaOffersContract() { + if(msg.sender != address(gammaOffersContract)) revert OnlyOffersContract(); + _; + } + + modifier onlyOwners() { + if(!ownersData.owners[msg.sender]) revert OnlyOwners(); + _; + } + + modifier checkAddressZero(address _address) { + if(_address == address(0)) revert InvalidAddress(); + _; + } + + constructor ( + address _daiTokenAddress, + address _gammaPacksContract, + address _gammaOffersContract, + address _gammaTicketsContract, + string memory _baseUri, + address _signer + ) Ownable(msg.sender) { + ownersData.owners[msg.sender] = true; + + DAI_TOKEN = _daiTokenAddress; + gammaPacksContract = IgammaPacksContract(_gammaPacksContract); + gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); + gammaOffersContract = IgammaOffersContract(_gammaOffersContract); + + s_baseUri = _baseUri; + s_mainUri = string(abi.encodePacked(bytes(s_baseUri), bytes("/"), bytes("120"), bytes("F.json"))); + s_secondaryUri = string( + abi.encodePacked(bytes(s_baseUri), bytes("/"), bytes("121"), bytes("F.json")) + ); + signersData.signers[_signer] = true; + + for (uint256 i; i < 122; i++) { + s_cardsInventory[i] = 1; + } + } + + function addOwner(address _newOwner) external onlyOwners { + ownersData.addOwner(_newOwner); + } + + function removeOwner(address _ownerToRemove) external onlyOwners { + ownersData.removeOwner(_ownerToRemove); + } + + function addSigner(address _newSigner) external onlyOwners { + signersData.addSigner(_newSigner); + } + + function removeSigner(address _signerToRemove) external onlyOwners { + signersData.removeSigner(_signerToRemove); + } + + function setGammaOffersContract(address _gammaOffersContract) external onlyOwners checkAddressZero(_gammaOffersContract) { + gammaOffersContract = IgammaOffersContract(_gammaOffersContract); + emit NewGammaOffersContract(_gammaOffersContract); + } + + function setGammaPacksContract(address _gammaPacksContract) external onlyOwners checkAddressZero(_gammaPacksContract){ + gammaPacksContract = IgammaPacksContract(_gammaPacksContract); + emit NewGammaPacksContract(_gammaPacksContract); + } + + function setGammaTicketsContract(address _gammaTicketsContract) external onlyOwners checkAddressZero(_gammaTicketsContract){ + gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); + emit NewGammaTicketsContract(_gammaTicketsContract); + } + + function setPrizesBalance(uint256 amount) external onlyGammaPacksContract { + s_prizesBalance += amount; + } + + function setMainAlbumPrize(uint256 amount) external onlyOwners { + if(amount == 0) revert IncorrectPrizeAmount(); + s_mainAlbumPrize = amount; + } + + function setSecondaryAlbumPrize(uint256 amount) external onlyOwners { + if(amount == 0) revert IncorrectPrizeAmount(); + s_secondaryAlbumPrize = amount; + } + + function setLotteryPrizePercentage(uint8 amount) external onlyOwners { + if(amount > 100) revert IncorrectPrizeAmount(); + s_lotteryPrizePercentage = amount; + } + + function setUris(string memory newMainUri, string memory newSecondaryUri) external onlyOwners { + s_mainUri = newMainUri; + s_secondaryUri = newSecondaryUri; + emit NewUris(newMainUri, newSecondaryUri); + } + + function changeRequireOpenPackSignerValidation(bool required) external onlyOwners { + s_requireOpenPackSignerValidation = required; + } + + function changeRequireOfferValidationInMint(bool required) external onlyOwners { + s_requireOfferValidationInMint = required; + } + + function changeRequireOfferValidationInTransfer(bool required) external onlyOwners { + s_requireOfferValidationInTransfer = required; + } + + function changePackPrice(uint256 newPackPrice) external onlyGammaPacksContract { + s_packPrice = newPackPrice; + } + + function changeMaxPacksToOpenAtOnce(uint8 _maxPacksToOpenAtOnce) external onlyOwners { + s_maxPacksToOpenAtOnce = _maxPacksToOpenAtOnce; + } + + function removeCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract { + s_cardsByUser[user][cardNumber]--; + } + + function restoreCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract { + s_cardsByUser[user][cardNumber]++; + } + + function hasCardByOffer( + address user, + uint8 cardNumber + ) external view onlyGammaOffersContract returns (bool has) { + return s_cardsByUser[user][cardNumber] > 0; + } + + function hasCard(address user, uint8 cardNum) public view checkAddressZero(user) returns (bool has) { + return s_cardsByUser[user][cardNum] > 0; + } + + function isOwner(address user) external view returns (bool) { + return ownersData.owners[user]; + } + + function isSigner(address user) external view returns (bool) { + return signersData.signers[user]; + } + + function getLotteryPrize() public view returns (uint256) { + return (s_lotteryPrizePercentage * s_prizesBalance) / 100; + } + + function getCardQuantityByUser(address user, uint8 cardNum) public view checkAddressZero(user) returns (uint8) { + return s_cardsByUser[user][cardNum]; + } + + function getBurnedCardQttyByUser(address user) public view checkAddressZero(user) returns (uint256) { + return s_burnedCards[user]; + } + + function getCardsByUser( + address user + ) public view returns (uint8[] memory, uint8[] memory, bool[] memory) { + uint8[] memory cardNumbers = new uint8[](122); + uint8[] memory quantities = new uint8[](122); + bool[] memory offers = new bool[](122); + uint8 index = 0; + + for (uint8 i; i <= 121; i++) { + if (s_cardsByUser[user][i] > 0) { + cardNumbers[index] = i; + quantities[index] = s_cardsByUser[user][i]; + offers[index] = gammaOffersContract.hasOffer(user, i); + index++; + } + } + + uint8[] memory userCardNumbers = new uint8[](index); + uint8[] memory userCardsQtty = new uint8[](index); + bool[] memory userCardsOffers = new bool[](index); + + for (uint256 j; j < index; j++) { + userCardNumbers[j] = cardNumbers[j]; + userCardsQtty[j] = quantities[j]; + userCardsOffers[j] = offers[j]; + } + + return (userCardNumbers, userCardsQtty, userCardsOffers); + } + + function verifyPackSigner( + uint256 packNumber, + uint8[] memory packData, + bytes calldata signature + ) public view returns (address signer) { + return LibPackVerifier.verifyPackSigner(msg.sender, packNumber, packData, signature); + } + + function openPack( + uint256 packNumber, + uint8[] memory packData, + bytes calldata signature + ) external { + _openPack(msg.sender, packNumber, packData, signature); + } + + function openPacks( + uint8 packsQuantity, + uint256[] memory packsNumber, + uint8[][] memory packsData, + bytes[] calldata signatures + ) external { + if(packsQuantity == 0 || packsQuantity > s_maxPacksToOpenAtOnce) revert WrongPacksQuantity(); + + for (uint256 i; i < packsQuantity; i++) { + _openPack(msg.sender, packsNumber[i], packsData[i], signatures[i]); + } + } + + function _openPack( + address user, + uint256 packNumber, + uint8[] memory packData, + bytes calldata signature + ) private { + if(gammaPacksContract.getPackOwner(packNumber) != user) revert NotYourPack(); // @tomas read storage in packs + if(packData.length >= 15) revert CardLimitExceeded(); + + if (s_requireOpenPackSignerValidation) { // @tomas read storage + // Recreates the message present in the `signature` + address signer = LibPackVerifier.verifyPackSigner( + msg.sender, + packNumber, + packData, + signature + ); + + if(!signersData.signers[signer]) revert InvalidSignature(); + } + + gammaPacksContract.openPack(packNumber, user); // @tomas read storage in packs + s_prizesBalance += s_packPrice - s_packPrice / 6; // @tomas read storage + + + for (uint256 i; i < packData.length;) { + if(packData[i] == 120){ + if(s_cardsInventory[120] > 3000) revert InvalidCardNumber(); + } else { + if(s_cardsInventory[packData[i]] > 5000) revert InvalidCardNumber(); + } + s_cardsInventory[packData[i]]++; // @tomas modify storage / 280k gas aprox. + s_cardsByUser[user][packData[i]]++; // @tomas modify storage / 310k gas aprox. + unchecked { + i++; + } + } + + emit PackOpened(user, packData, packNumber); + } + + function exchangeCardsOffer( + address from, + uint8 cardNumberFrom, + address to, + uint8 cardNumberTo + ) external onlyGammaOffersContract checkAddressZero(from) checkAddressZero(to) { + if(s_cardsByUser[from][cardNumberFrom] == 0 || s_cardsByUser[to][cardNumberTo] == 0) revert UserDoesNotHaveCardOrAlbum(); + + s_cardsByUser[from][cardNumberFrom]--; + s_cardsByUser[to][cardNumberFrom]++; + s_cardsByUser[to][cardNumberTo]--; + s_cardsByUser[from][cardNumberTo]++; + + emit OfferCardsExchanged(from, to, cardNumberFrom, cardNumberTo); + } + + function transferCard(address to, uint8 cardNumber) external checkAddressZero(to) { + if(s_cardsByUser[msg.sender][cardNumber] == 0) revert UserDoesNotHaveCardOrAlbum(); + if(to == msg.sender) revert InvalidTransfer(); + + if (s_requireOfferValidationInTransfer) { + bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumber); + bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumber] > 1; + /* + The user can only make an offer for one letter and in that case he cannot mint or transfer it. + If you have more than one copy (quantity > 1) of that card, you must be able to mint + or transfer the rest. + */ + require(!hasOffer || hasMoreThanOne, "This card has an offer."); + } + + s_cardsByUser[msg.sender][cardNumber]--; + s_cardsByUser[to][cardNumber]++; + emit CardTransfered(msg.sender, to, cardNumber); + } + + function transferCards(address to, uint8[] calldata cardNumbers) public checkAddressZero(to) { + if(to == msg.sender) revert InvalidTransfer(); + + for (uint256 i; i < cardNumbers.length; i++) { + if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum(); + s_cardsByUser[msg.sender][cardNumbers[i]]--; + s_cardsByUser[to][cardNumbers[i]]++; + + if (s_requireOfferValidationInTransfer) { + bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumbers[i]); + bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumbers[i]] > 1; + /* + The user can only make an offer for one letter and in that case he cannot mint or transfer it. + If you have more than one copy (quantity > 1) of that card, you must be able to mint + or transfer the rest. + */ + require(!hasOffer || hasMoreThanOne, "This card has an offer."); + } + } + emit CardsTransfered(msg.sender, to, cardNumbers); + } + + // user must call this function when they have at least 1 + // card of each number (120 total) + a 120 album card + function finishAlbum() public returns (bool) { + // requires the user to have at least one 120 album + if(s_cardsByUser[msg.sender][120] == 0) revert UserDoesNotHaveCardOrAlbum(); + if(s_prizesBalance < s_mainAlbumPrize) revert IncorrectPrizeAmount(); + + uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this)); + if(contractBalance < s_mainAlbumPrize) revert InsufficientFunds(); + + // check that you have at least one card of each number + bool unfinished; + + for (uint8 i; i <= 120;) { + if (s_cardsByUser[msg.sender][i] == 0) { + unfinished = true; + break; + } + s_cardsByUser[msg.sender][i]--; + unchecked { + i++; + } + } + if(unfinished) revert MustCompleteAlbum(); + + // mint the completed album. + safeMint(msg.sender, s_mainUri, 120, 2); + + // transfer prize in DAI. + IERC20(DAI_TOKEN).transfer(msg.sender, s_mainAlbumPrize); + s_prizesBalance -= s_mainAlbumPrize; + + bool userOffersRemoved = gammaOffersContract.removeOffersByUser(msg.sender); + if(!userOffersRemoved) revert CannotRemoveUserOffers(); + + emit AlbumCompleted(msg.sender, 1); + return true; + } + + // user should call this function if they want to 'paste' selected cards in + // the 60 cards album to 'burn' them. + function burnCards(uint8[] calldata cardNumbers) public { + if(s_cardsByUser[msg.sender][121] == 0) revert UserDoesNotHaveCardOrAlbum(); + uint256 totalUserBurnedCards = s_burnedCards[msg.sender] + cardNumbers.length; + bool mustPayPrize; + + if (totalUserBurnedCards >= 60) { + uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this)); + if(contractBalance < s_secondaryAlbumPrize || s_prizesBalance < s_secondaryAlbumPrize) revert InsufficientFunds(); + mustPayPrize = true; + } + + bool userHasOffers = (gammaOffersContract.getOffersByUserCounter(msg.sender) > 0); + uint256 cardNumbersLength = cardNumbers.length; + for (uint256 i; i < cardNumbersLength;) { + if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum(); + if (userHasOffers) { + if (gammaOffersContract.hasOffer(msg.sender, cardNumbers[i])) { + if(s_cardsByUser[msg.sender][cardNumbers[i]] < 2) revert InsufficientCards(); + } + } + s_cardsByUser[msg.sender][cardNumbers[i]]--; + unchecked { + i++; + } + } + + s_burnedCards[msg.sender] += cardNumbersLength; + emit CardsBurned(msg.sender, cardNumbers); + + if (mustPayPrize) { + s_cardsByUser[msg.sender][121]--; + safeMint(msg.sender, s_secondaryUri, 121, 2); // mint album of 60 cards. + + s_prizesBalance -= s_secondaryAlbumPrize; + IERC20(DAI_TOKEN).transfer(msg.sender, s_secondaryAlbumPrize); + + gammaTicketsContract.generateTicket(msg.sender); + emit AlbumCompleted(msg.sender, 2); + } + } + + function mintCard(uint8 cardNum) public { + if(s_cardsByUser[msg.sender][cardNum] == 0) revert UserDoesNotHaveCardOrAlbum(); + + if (s_requireOfferValidationInMint) { + bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNum); + bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNum] > 1; + /* + The user can only make an offer for one letter and in that case he cannot mint or transfer it. + If you have more than one copy (quantity > 1) of that card, you must be able to mint + or transfer the rest. + */ + require(!hasOffer || hasMoreThanOne, "This card has an offer."); + } + + s_cardsByUser[msg.sender][cardNum]--; + + string memory uri = string( + abi.encodePacked(bytes(s_baseUri), bytes("/"), bytes(cardNum.toString()), bytes(".json")) + ); + + safeMint(msg.sender, uri, cardNum, 1); + } + + function safeMint(address _to, string memory _uri, uint256 _number, uint8 _class) internal { + uint256 tokenId = s_tokenIdCounter; + s_cards[tokenId].tokenId = tokenId; + s_cards[tokenId].number = _number; + s_cards[tokenId].class = _class; + _safeMint(_to, tokenId); + _setTokenURI(tokenId, _uri); + s_tokenIdCounter += 1; + } + + // do not call unless really necessary + function emergencyWithdraw(uint256 amount) public onlyOwners { + if(balanceOf(address(this)) < amount) revert InsufficientFunds(); + s_prizesBalance -= amount; + IERC20(DAI_TOKEN).transfer(msg.sender, amount); + emit EmergencyWithdrawal(msg.sender, amount); + } + + + + + // for testing purposes only, will remove on deploy + function testAddCards(address user) public onlyOwners { + for(uint8 i; i<=121; i++){ // 0-119: cards, 120: album-120, 121: album-60 + s_cardsByUser[user][i]++; + } + } + + function testOpenPack(address user, uint256 packNumber, uint8[] memory packData) external onlyOwners { + gammaPacksContract.openPack(packNumber, user); + s_prizesBalance += s_packPrice - s_packPrice / 6; + + for(uint256 i; i Offer[]) offersByUser; + mapping(uint8 cardNumber => Offer[]) offersByCardNumber; + mapping(address => uint256) public offersByUserCounter; + mapping(uint8 => uint256) public offersByCardNumberCounter; + uint256 public offersTotalCounter; + + event NewGammaCardsContract(address newGammaCardsContract); + event OfferCreated(address user, uint8 cardNumber, uint8[] wantedCardNumbers); + event OfferRemoved(address user, uint8 cardNumber); + event UserOffersRemoved(address user); + event AllOffersRemoved(); + + modifier onlyCardsContract() { + if (msg.sender != address(gammaCardsContract)) revert OnlyCardsContract(); + _; + } + + modifier onlyOwners() { + if (!ownersData.owners[msg.sender]) revert OnlyOwners(); + _; + } + + constructor (address _cardsContract) Ownable(msg.sender) { + if (_cardsContract == address(0)) revert InvalidAddress(); + gammaCardsContract = IGammaCardsContract(_cardsContract); + ownersData.owners[msg.sender] = true; + } + + function addOwner(address _newOwner) external onlyOwners { + ownersData.addOwner(_newOwner); + } + + function removeOwner(address _ownerToRemove) external onlyOwners { + ownersData.removeOwner(_ownerToRemove); + } + + function setGammaCardsContract(address _gammaCardsContract) public onlyOwners { + if (_gammaCardsContract == address(0)) revert InvalidAddress(); + gammaCardsContract = IGammaCardsContract(_gammaCardsContract); + emit NewGammaCardsContract(_gammaCardsContract); + } + + function setMaxOffersAllowed(uint256 _maxOffersAllowed) external onlyOwners { + maxOffersAllowed = _maxOffersAllowed; + } + + function setMaxOffersByUserAllowed(uint256 _maxOffersByUserAllowed) external onlyOwners { + maxOffersByUserAllowed = _maxOffersByUserAllowed; + } + + function setMaxCardNumbersAllowed(uint256 _maxCardNumbersAllowed) external onlyOwners { + maxCardNumbersAllowed = _maxCardNumbersAllowed; + } + + function changeRemoveCardinInventoryWhenOffer(bool _value) external onlyOwners { + removeCardInInventoryWhenOffer = _value; + } + + function createOffer( + string memory offerId, + uint8 cardNumber, + uint8[] memory wantedCardNumbers + ) public { + _createOfferWithUser(offerId, msg.sender, cardNumber, wantedCardNumbers); + } + + function createOfferWithoUser( + string memory offerId, + address user, + uint8 cardNumber, + uint8[] memory wantedCardNumbers + ) public onlyOwners { + _createOfferWithUser(offerId, user, cardNumber, wantedCardNumbers); + } + + function _createOfferWithUser( + string memory offerId, + address user, + uint8 cardNumber, + uint8[] memory wantedCardNumbers + ) private { + if (address(gammaCardsContract) == address(0)) revert GammaCardsContractNotSet(); + if (offersByUserCounter[user] >= maxOffersByUserAllowed) revert OffersMaximumAllowed(); + if (offersTotalCounter >= maxOffersAllowed) revert OffersMaximumAllowed(); + + bool userHasCard = gammaCardsContract.hasCardByOffer(user, cardNumber); + if (!userHasCard) revert UserDoesNotHaveCard(); + + for (uint8 i = 0; i < wantedCardNumbers.length; i++) { + if (wantedCardNumbers[i] == cardNumber) revert InvalidCardNumber(); + } + + Offer memory existingOffer = getOfferByUserAndCardNumber(user, cardNumber); + if (existingOffer.owner != address(0)) revert OfferAlreadyExists(); + + offersByUserCounter[user] += 1; + offersByCardNumberCounter[cardNumber] += 1; + offersTotalCounter += 1; + + offers.push(Offer(offerId, cardNumber, wantedCardNumbers, user, block.timestamp)); + offersByUser[user].push(offers[offers.length - 1]); + offersByCardNumber[cardNumber].push(offers[offers.length - 1]); + + if (removeCardInInventoryWhenOffer) { + gammaCardsContract.removeCardByOffer(user, cardNumber); + } + + emit OfferCreated(user, cardNumber, wantedCardNumbers); + } + + function isOwner(address user) external view returns (bool) { + return ownersData.owners[user]; + } + + function getOffersByUserCounter(address user) external view returns (uint256) { + if (user == address(0)) revert InvalidAddress(); + return offersByUserCounter[user]; + } + + function getOffersByCardNumberCounter(uint8 cardNumber) external view returns (uint256) { + return offersByCardNumberCounter[cardNumber]; + } + + function getOffersCounter() external view returns (uint256) { + return offersTotalCounter; + } + + function getMaxOffersAllowed() external view returns (uint256) { + return maxOffersAllowed; + } + + function getMaxOffersByUserAllowed() external view returns (uint256) { + return maxOffersByUserAllowed; + } + + function getOffers() external view returns (Offer[] memory) { + return offers; + } + + function getOfferByIndex(uint256 index) public view returns (Offer memory) { + if (index >= offers.length) revert InvalidOfferId(); + return offers[index]; + } + + function getOfferByOfferId(string memory offerId) external view returns (Offer memory) { + for (uint256 i = 0; i < offers.length; i++) { + if (keccak256(abi.encodePacked(offers[i].offerId)) == keccak256(abi.encodePacked(offerId))) { + return (offers[i]); + } + } + return _emptyOffer(); + } + + function getOffersByUser(address user) external view returns (Offer[] memory) { + if (user == address(0)) revert InvalidAddress(); + return offersByUser[user]; + } + + function getOffersByCardNumber(uint8 cardNumber) external view returns (Offer[] memory) { + return offersByCardNumber[cardNumber]; + } + + function getOfferByUserAndCardNumber( + address user, + uint8 cardNumber + ) public view returns (Offer memory) { + if (user == address(0)) revert InvalidAddress(); + + Offer[] storage userOffers = offersByUser[user]; + uint256 currentUserOffersCounter = offersByUserCounter[user]; + for (uint256 i = 0; i < currentUserOffersCounter; i++) { + if (userOffers[i].cardNumber == cardNumber) { + return userOffers[i]; + } + } + return _emptyOffer(); + } + + function canUserPublishOffer(address user) public view returns (bool) { + return maxOffersByUserAllowed > offersByUserCounter[user]; + } + + function canAnyUserPublishOffer() public view returns (bool) { + return maxOffersAllowed > offersTotalCounter; + } + + function hasOffer(address user, uint8 cardNumber) public view returns (bool) { + if (user == address(0)) revert InvalidAddress(); + for (uint256 i = 0; i < offersByUserCounter[user]; i++) { + if (offersByUser[user][i].cardNumber == cardNumber) { + return true; + } + } + return false; + } + + function confirmOfferExchange( + address from, + uint8 cardNumberWanted, + address offerWallet, + uint8 offerCardNumber + ) external { + Offer memory offer = getOfferByUserAndCardNumber(offerWallet, offerCardNumber); + if (offer.owner != offerWallet) revert OfferDoesNotExists(); + + uint8[] memory wantedCardNumbers = offer.wantedCardNumbers; + if (wantedCardNumbers.length == 0) { + //buscamos que el usuario no tenga la carta + if (gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted)) + revert UserAlreadyHasCard(); + } else { + //validamos contra las cartas que acepta el usuario + bool foundCardWanted = false; + for (uint8 j = 0; j < wantedCardNumbers.length; j++) { + if (wantedCardNumbers[j] == cardNumberWanted) { + foundCardWanted = true; + break; + } + } + if (!foundCardWanted) revert InvalidCard(); + } + + bool offerDeleted = _removeOfferByUserAndCardNumber( + offerWallet, + offerCardNumber, + offer.offerId, + true + ); + if (!offerDeleted) revert OfferNotDeleted(); + + gammaCardsContract.exchangeCardsOffer(from, cardNumberWanted, offerWallet, offerCardNumber); + if ( + !gammaCardsContract.hasCardByOffer(from, offerCardNumber) || + !gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted) + ) revert ExchangeError(); + } + + function deleteAllOffers() external onlyOwners { + for (uint256 i = 0; i < offers.length; i++) { + delete offersByUser[offers[i].owner]; + offersByUserCounter[offers[i].owner] = 0; + + delete offersByCardNumber[offers[i].cardNumber]; + offersByCardNumberCounter[offers[i].cardNumber] = 0; + } + offersTotalCounter = 0; + delete offers; + + emit AllOffersRemoved(); + } + + function removeOfferByCardNumber(uint8 cardNumber) external returns (bool) { + Offer memory offer = getOfferByUserAndCardNumber(msg.sender, cardNumber); + if (offer.owner != msg.sender) { + return false; + } + bool result = _removeOfferByUserAndCardNumber(msg.sender, cardNumber, offer.offerId, false); + return result; + } + + function removeOfferByUserAndCardNumber( + address user, + uint8 cardNumber + ) public onlyOwners returns (bool) { + Offer memory offer = getOfferByUserAndCardNumber(user, cardNumber); + if (offer.owner != user) { + return false; + } + bool result = _removeOfferByUserAndCardNumber(user, cardNumber, offer.offerId, false); + return result; + } + + function removeOffersByUser(address user) external onlyCardsContract returns (bool) { + if (user == address(0)) revert InvalidAddress(); + + Offer[] storage userOffers = offersByUser[user]; + uint256 currentUserOffersCounter = offersByUserCounter[user]; + + for (uint256 i = 0; i < currentUserOffersCounter; i++) { + string memory offerId = userOffers[i].offerId; + uint8 cardNumber = userOffers[i].cardNumber; + _removeOfferFromCardNumberMapping(user, cardNumber, offerId); + _removeOfferByOfferId(offerId); + offersByCardNumberCounter[cardNumber] -= 1; + offersTotalCounter -= 1; + } + + delete offersByUser[user]; + offersByUserCounter[user] = 0; + + emit UserOffersRemoved(user); + return true; + } + + function _removeOfferByUserAndCardNumber( + address user, + uint8 cardNumber, + string memory offerId, + bool fromConfirmOfferExchange + ) private returns (bool) { + if (user == address(0)) revert InvalidAddress(); + + _removeOfferFromUserMapping(user, cardNumber, offerId); + _removeOfferFromCardNumberMapping(user, cardNumber, offerId); + _removeOfferByOfferId(offerId); + offersByUserCounter[user] -= 1; + offersByCardNumberCounter[cardNumber] -= 1; + offersTotalCounter -= 1; + + if (removeCardInInventoryWhenOffer && !fromConfirmOfferExchange) { + gammaCardsContract.restoreCardByOffer(user, cardNumber); + } + + emit OfferRemoved(user, cardNumber); + return true; + } + + function _removeOfferFromUserMapping( + address user, + uint8 cardNumber, + string memory offerId + ) private { + Offer[] storage userOffers = offersByUser[user]; + for (uint256 i = 0; i < userOffers.length; i++) { + if (_sameOfferId(userOffers[i].offerId, offerId)) { + if (userOffers[i].owner != user || userOffers[i].cardNumber != cardNumber) + revert RemoveOfferFromUserMapping_DoNotMatch(); + if (i < (userOffers.length - 1)) { + userOffers[i] = userOffers[userOffers.length - 1]; + } + userOffers.pop(); + break; + } + } + } + + function _removeOfferFromCardNumberMapping( + address user, + uint8 cardNumber, + string memory offerId + ) private { + Offer[] storage cardOffers = offersByCardNumber[cardNumber]; + + for (uint256 i = 0; i < cardOffers.length; i++) { + if (_sameOfferId(cardOffers[i].offerId, offerId)) { + if (cardOffers[i].owner != user || cardOffers[i].cardNumber != cardNumber) + revert RemoveOfferFromCardNumberMapping_DoNotMatch(); + + if (i < cardOffers.length - 1) { + cardOffers[i] = cardOffers[cardOffers.length - 1]; + } + cardOffers.pop(); + break; + } + } + } + + function _removeOfferByOfferId(string memory offerId) private returns (bool) { + bool deleted = false; + for (uint256 j = 0; j < offers.length; j++) { + if (j < offers.length && _sameOfferId(offers[j].offerId, offerId)) { + delete offers[j]; + offers[j] = offers[offers.length - 1]; + offers.pop(); + deleted = true; + break; + } + } + return deleted; + } + + function _emptyOffer() internal pure returns (Offer memory) { + return Offer("", 0, new uint8[](0), address(0), 0); + } + + function _sameOfferId( + string memory offerId1, + string memory offerId2 + ) internal pure returns (bool) { + return keccak256(abi.encodePacked(offerId1)) == keccak256(abi.encodePacked(offerId2)); + } +} diff --git a/contracts/gamma/GammaPacks.v3.sol b/contracts/gamma/GammaPacks.v3.sol new file mode 100644 index 00000000..479446fe --- /dev/null +++ b/contracts/gamma/GammaPacks.v3.sol @@ -0,0 +1,315 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {LibControlMgmt} from "./libs/LibControlMgmt.sol"; +import {console} from "hardhat/console.sol"; + +error NotGammaCardsContract(); +error OwnlyOwners(); +error InvalidAddress(); +error InvalidNumberOfPacks(); +error InsufficientPacksAvailable(); +error TransferPrizeError(address _to); +error InsufficientAllowance(); +error InsufficientBalance(); +error NotYourPack(); +error ContractAddressNotSet(); + +interface IGammaCardsContract { + function setPrizesBalance(uint256 amount) external; + + function changePackPrice(uint256 amount) external; +} + +interface IgammaTicketsContract { + function getLotteryWinner() + external + returns (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user); + + function deleteAllTickets() external; +} + +contract NofGammaPacksV3 is Ownable { + using LibControlMgmt for LibControlMgmt.Data; + + IGammaCardsContract public gammaCardsContract; + IgammaTicketsContract public gammaTicketsContract; + + LibControlMgmt.Data private ownersData; + + address public DAI_TOKEN; + address public s_balanceReceiver; + uint256 public constant TOTALSUPPLY = 50000; + uint256 public s_packPrice = 12e17; // 1.2 DAI + uint256 private s_packsCounter = 0; + bool s_transferDai = true; + + mapping(uint256 tokenId => address owner) public s_packs; + mapping(address owner => uint256[] tokenIds) public s_packsByUser; + + event NewGammaCardsContract(address indexed newCardsContract); + event NewGammaTicketsContract(address indexed newGammaTicketContract); + event NewBalanceReceiver(address indexed balanceReceiver); + event PackPurchased(address indexed buyer, uint256 indexed tokenId); + event PacksPurchased(address indexed buyer, uint256[] indexed tokenIds); + event PackTransfered(address indexed from, address indexed to, uint256 indexed tokenId); + event PacksTransfered(address indexed from, address indexed to, uint256[] indexed tokenId); + event PackOpened(address indexed user, uint256 indexed tokenId); + event NewPrice(uint256 indexed newPrice); + + modifier onlyGammaCardsContract() { + if (msg.sender != address(gammaCardsContract)) revert NotGammaCardsContract(); + _; + } + + modifier onlyOwners() { + if (!ownersData.owners[msg.sender]) revert OwnlyOwners(); + _; + } + + constructor( + address _daiTokenAddress, + address _balanceReceiver, + address _gammaCardsContract, + address _gammaTicketsContract + ) Ownable(msg.sender) { + if ( + _balanceReceiver == address(0) || + _gammaCardsContract == address(0) || + _gammaTicketsContract == address(0) + ) revert InvalidAddress(); + + DAI_TOKEN = _daiTokenAddress; + s_balanceReceiver = _balanceReceiver; + gammaCardsContract = IGammaCardsContract(_gammaCardsContract); + gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); + + ownersData.owners[msg.sender] = true; + } + + function addOwner(address _newOwner) external onlyOwners { + ownersData.addOwner(_newOwner); + } + + function removeOwner(address _ownerToRemove) external onlyOwners { + ownersData.removeOwner(_ownerToRemove); + } + + function changeBalanceReceiver(address _newBalanceReceiver) external onlyOwners { + if (_newBalanceReceiver == address(0)) revert InvalidAddress(); + s_balanceReceiver = _newBalanceReceiver; + emit NewBalanceReceiver(_newBalanceReceiver); + } + + function changePrice(uint256 _newPrice) public onlyOwners { + s_packPrice = _newPrice; + gammaCardsContract.changePackPrice(_newPrice); + emit NewPrice(_newPrice); + } + + function changeTransferDaiFlag(bool _transferDai) public onlyOwners { + s_transferDai = _transferDai; + } + + function setGammaCardsContract(address _gammaCardsContract) public onlyOwners { + if (_gammaCardsContract == address(0)) revert InvalidAddress(); + gammaCardsContract = IGammaCardsContract(_gammaCardsContract); + emit NewGammaCardsContract(_gammaCardsContract); + } + + function setGammaTicketsContract(address _gammaTicketsContract) public onlyOwners { + if (_gammaTicketsContract == address(0)) revert InvalidAddress(); + gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); + emit NewGammaTicketsContract(_gammaTicketsContract); + } + + function isOwner(address user) external view returns (bool) { + return ownersData.owners[user]; + } + + function getPrizeAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) { + return (s_packPrice - (s_packPrice / 6)) * numberOfPacks; + } + + function getPrizeNoFAccountAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) { + uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks); + return (s_packPrice * numberOfPacks) - prizesAmount; + } + + function getAmountRequiredToBuyPacks(uint256 numberOfPacks) public view returns (uint256) { + uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks); + uint256 NoFAccountAmount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks); + return prizesAmount + NoFAccountAmount; + } + + function getPacksByUser(address owner) public view returns (uint256[] memory) { + return s_packsByUser[owner]; + } + + function getPackOwner(uint256 tokenId) public view returns (address) { + return s_packs[tokenId]; + } + + function meetQuantityConditionsToBuy(uint256 numberOfPacks) public view returns (bool) { + if (numberOfPacks == 0) revert InvalidNumberOfPacks(); + return (s_packsCounter + numberOfPacks) < TOTALSUPPLY; + } + + function buyPack() public returns (uint256) { + return _buyPack(msg.sender); + } + + function buyPacks(uint256 numberOfPacks) public returns (uint256[] memory) { + return _buyPacks(msg.sender, numberOfPacks); + } + + function buyPackByUser(address user) public onlyOwners returns (uint256) { + return _buyPack(user); + } + + function buyPacksByUser( + address user, + uint256 numberOfPacks + ) public onlyOwners returns (uint256[] memory) { + return _buyPacks(user, numberOfPacks); + } + + function _buyPack(address user) private returns (uint256) { + uint256[] memory tokenIds = _buyPacks(user, 1); + return tokenIds[0]; + } + + function _buyPacks(address user, uint256 numberOfPacks) private returns (uint256[] memory) { + if (user == address(0)) revert InvalidAddress(); + if (numberOfPacks == 0 || numberOfPacks > 100) revert InvalidNumberOfPacks(); + if ((s_packsCounter + numberOfPacks) >= TOTALSUPPLY) revert InsufficientPacksAvailable(); + uint256[] memory tokenIds = new uint256[](numberOfPacks); + uint256 m_packsCounter = s_packsCounter; + + for (uint256 i; i < numberOfPacks;) { + if (m_packsCounter >= TOTALSUPPLY) revert InsufficientPacksAvailable(); + s_packs[m_packsCounter] = user; + s_packsByUser[user].push(m_packsCounter); + tokenIds[i] = m_packsCounter; + m_packsCounter++; + unchecked { + i++; + } + } + + s_packsCounter = m_packsCounter; + + bool transferPrizeResult = _transferPrizesAmounts(user, numberOfPacks); + if (!transferPrizeResult) revert TransferPrizeError(user); + + if (numberOfPacks == 1) { + emit PackPurchased(user, tokenIds[0]); + } else { + emit PacksPurchased(user, tokenIds); + } + + return tokenIds; + } + + function _transferPrizesAmounts(address user, uint256 numberOfPacks) private returns (bool) { + uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks); + uint256 prizeNoFAccount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks); + gammaCardsContract.setPrizesBalance(prizesAmount); + + if (s_transferDai) { + IERC20 erc20Token = IERC20(DAI_TOKEN); + + if (erc20Token.allowance(user, address(this)) < (prizesAmount + prizeNoFAccount)) revert InsufficientAllowance(); + if (erc20Token.balanceOf(user) < prizesAmount || erc20Token.balanceOf(user) < prizeNoFAccount) + revert InsufficientBalance(); + + // send prize amount to the card contract + bool successTx1 = erc20Token.transferFrom(user, address(gammaCardsContract), prizesAmount); + if (!successTx1) revert TransferPrizeError(address(gammaCardsContract)); + + // send profit amount to NoF account + bool successTx2 = erc20Token.transferFrom(user, s_balanceReceiver, prizeNoFAccount); + if (!successTx2) revert TransferPrizeError(s_balanceReceiver); + } + return true; + } + + function deleteTokenId(uint256 tokenId, address owner) internal { + uint256 packsByUserLength = s_packsByUser[owner].length; + for (uint256 i; i < packsByUserLength; i++) { + if (s_packsByUser[owner][i] == tokenId) { + s_packsByUser[owner][i] = s_packsByUser[owner][s_packsByUser[owner].length - 1]; + s_packsByUser[owner].pop(); + break; + } + } + } + + function transferPack(address to, uint256 tokenId) public { + _transferPack(to, tokenId); + } + + function transferPacks(address to, uint256[] memory tokenIds) public { + for (uint256 i = 0; i < tokenIds.length; i++) { + uint256 tokenId = tokenIds[i]; + _transferPack(to, tokenId); + } + emit PacksTransfered(msg.sender, to, tokenIds); + } + + function _transferPack(address to, uint256 tokenId) private { + if (to == address(0)) revert InvalidAddress(); + if (s_packs[tokenId] != msg.sender) revert NotYourPack(); + s_packs[tokenId] = to; + deleteTokenId(tokenId, msg.sender); + s_packsByUser[to].push(tokenId); + emit PackTransfered(msg.sender, to, tokenId); + } + + function openPack(uint256 tokenId, address owner) public onlyGammaCardsContract { + _openPack(tokenId, owner); + } + + function openPacks(uint256[] memory tokenIds, address owner) public onlyGammaCardsContract { + for (uint256 i = 0; i < tokenIds.length; i++) { + uint256 tokenId = tokenIds[i]; + _openPack(tokenId, owner); + } + } + + function _openPack(uint256 tokenId, address owner) private { + deleteTokenId(tokenId, owner); + delete s_packs[tokenId]; + emit PackOpened(owner, tokenId); + } + + function _lottery() private { + if (address(gammaTicketsContract) == address(0)) revert ContractAddressNotSet(); + // (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user) = gammaTicketsContract.getLotteryWinner(); + + // TODO: get %price from gamma cards contract + + // TODO: transfer price + if (s_transferDai) { + // IERC20 erc20Token = IERC20(DAI_TOKEN); + } + + // TODO: burn tickets en gamma tickets contract + gammaTicketsContract.deleteAllTickets(); + } + + // for testing purposes only, will delete upon deployment + function testOpenPack(uint256 tokenId, address owner) public onlyOwners { + _openPack(tokenId, owner); + } + + function testOpenPacks(uint256[] memory tokenIds, address owner) public onlyOwners { + for (uint256 i = 0; i < tokenIds.length; i++) { + uint256 tokenId = tokenIds[i]; + _openPack(tokenId, owner); + } + } + // for testing purposes only, will delete upon deployment +} diff --git a/contracts/gamma/libs/LibControlMgmt.sol b/contracts/gamma/libs/LibControlMgmt.sol new file mode 100644 index 00000000..a633743b --- /dev/null +++ b/contracts/gamma/libs/LibControlMgmt.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +library LibControlMgmt { + struct Data { + mapping(address => bool) owners; + mapping(address => bool) signers; + } + + event NewOwnerAdded(address newOwner); + event OwnerRemoved(address owner); + event NewSignerAdded(address newSigner); + event SignerRemoved(address signer); + + function addOwner(Data storage self, address newOwner) external { + require(newOwner != address(0), "Invalid address."); + require(!self.owners[newOwner], "Address is already an owner."); + self.owners[newOwner] = true; + emit NewOwnerAdded(newOwner); + } + + function removeOwner(Data storage self, address ownerToRemove) external { + require(ownerToRemove != address(0), "Invalid address."); + require(self.owners[ownerToRemove], "Address is not an owner."); + require(ownerToRemove != msg.sender, "You cannot remove yourself as an owner."); + self.owners[ownerToRemove] = false; + emit OwnerRemoved(ownerToRemove); + } + + function addSigner(Data storage self, address newSigner) external { + require(newSigner != address(0), "Invalid address."); + require(!self.signers[newSigner], "Address is already a signer."); + self.signers[newSigner] = true; + emit NewSignerAdded(newSigner); + } + + function removeSigner(Data storage self, address signerToRemove) external { + require(signerToRemove != address(0), "Invalid address."); + require(self.signers[signerToRemove], "Address is not a signer."); + require(signerToRemove != msg.sender, "You cannot remove yourself as a signer."); + self.signers[signerToRemove] = false; + emit SignerRemoved(signerToRemove); + } +} diff --git a/contracts/gamma/libs/LibPackVerifier.sol b/contracts/gamma/libs/LibPackVerifier.sol new file mode 100644 index 00000000..8926de23 --- /dev/null +++ b/contracts/gamma/libs/LibPackVerifier.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; + + +library LibPackVerifier { + using ECDSA for bytes32; + using MessageHashUtils for bytes32; + + function verifyPackSigner( + address sender, + uint256 packNumber, + uint8[] memory packData, + bytes calldata signature + ) public pure returns (address) { + bytes32 messageHash = keccak256( + abi.encodePacked(sender, packNumber, packData, '0xf1dD71895e49b1563693969de50898197cDF3481') + ).toEthSignedMessageHash(); + + address recoveredSigner = messageHash.recover(signature); + return recoveredSigner; + } +} diff --git a/contracts/gamma/libs/LibStringUtils.sol b/contracts/gamma/libs/LibStringUtils.sol new file mode 100644 index 00000000..2c712483 --- /dev/null +++ b/contracts/gamma/libs/LibStringUtils.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +library LibStringUtils { + + // Inspired by OraclizeAPI's implementation - MIT licence + // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.sol#L15-L35 + function toString(uint256 value) public pure returns (string memory) { + + if (value == 0) { + return "0"; + } + uint256 temp = value; + uint256 digits; + while (temp != 0) { + digits++; + temp /= 10; + } + bytes memory buffer = new bytes(digits); + while (value != 0) { + digits -= 1; + buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); + value /= 10; + } + return string(buffer); + } + +} diff --git a/contracts/testDai/TestDAI.v3.sol b/contracts/testDai/TestDAI.v3.sol new file mode 100644 index 00000000..e76603c3 --- /dev/null +++ b/contracts/testDai/TestDAI.v3.sol @@ -0,0 +1,1614 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +/* + * @dev 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 GSN 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. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address payable) { + return payable(address(msg.sender)); + } + + function _msgData() internal view virtual returns (bytes memory) { + // silence state mutability warning without generating bytecode + // more info: see https://github.com/ethereum/solidity/issues/2691 + this; + return msg.data; + } +} + +// File: @openzeppelin/contracts/token/ERC20/IERC20.sol + + + +pragma solidity ^0.8.20; + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. + */ +interface IERC20 { + /** + * @dev Returns the amount of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the amount of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves `amount` tokens from the caller's account to `recipient`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address recipient, uint256 amount) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 amount) external returns (bool); + + /** + * @dev Moves `amount` tokens from `sender` to `recipient` using the + * allowance mechanism. `amount` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); +} + +// File: @openzeppelin/contracts/math/SafeMath.sol + + + +pragma solidity ^0.8.20; + +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when 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. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b <= a, errorMessage); + uint256 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + return div(a, b, "SafeMath: division by zero"); + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + return mod(a, b, "SafeMath: modulo by zero"); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b != 0, errorMessage); + return a % b; + } +} + +// File: @openzeppelin/contracts/utils/Address.sol + + + +pragma solidity ^0.8.20; + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + */ + function isContract(address account) internal view returns (bool) { + // According to EIP-1052, 0x0 is the value returned for not-yet created accounts + // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned + // for accounts without code, i.e. `keccak256('')` + bytes32 codehash; + bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; + // solhint-disable-next-line no-inline-assembly + assembly { codehash := extcodehash(account) } + return (codehash != accountHash && codehash != 0x0); + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + // solhint-disable-next-line avoid-low-level-calls, avoid-call-value + (bool success, ) = recipient.call{ value: amount }(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain`call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCall(target, data, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data, string memory errorMessage) internal + returns (bytes memory) { + return _functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, bytes memory data, + uint256 value, string memory errorMessage) internal returns (bytes memory) { + + require(address(this).balance >= value, "Address: insufficient balance for call"); + return _functionCallWithValue(target, data, value, errorMessage); + } + + function _functionCallWithValue( + address target, bytes memory data, + uint256 weiValue, string memory errorMessage) private returns (bytes memory) { + + require(isContract(target), "Address: call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); + if (success) { + return returndata; + } else { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + + // solhint-disable-next-line no-inline-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } + } +} + +// File: contracts/child/ChildToken/UpgradeableChildERC20/ERC20.sol + + + +pragma solidity ^0.8.20; + + + + +/** + * Modified openzeppelin implemtation to add setters for name, symbol and decimals. + * This was needed because the variables cannot be set in constructor as the contract is upgradeable. + */ + +/** + * @dev openzeppelin Implementation of the {IERC20} interface. + * + * Modified to add setters for name, symbol and decimals. This was needed + * because + * + * This implementation is agnostic to the way tokens are created. This means + * that a supply mechanism has to be added in a derived contract using {_mint}. + * For a generic mechanism see {ERC20PresetMinterPauser}. + * + * TIP: For a detailed writeup see our guide + * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How + * to implement supply mechanisms]. + * + * We have followed general OpenZeppelin guidelines: functions revert instead + * of returning `false` on failure. This behavior is nonetheless conventional + * and does not conflict with the expectations of ERC20 applications. + * + * Additionally, an {Approval} event is emitted on calls to {transferFrom}. + * This allows applications to reconstruct the allowance for all accounts just + * by listening to said events. Other implementations of the EIP may not emit + * these events, as it isn't required by the specification. + * + * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} + * functions have been added to mitigate the well-known issues around setting + * allowances. See {IERC20-approve}. + */ +contract ERC20 is Context, IERC20 { + using SafeMath for uint256; + using Address for address; + + mapping (address => uint256) private _balances; + + mapping (address => mapping (address => uint256)) private _allowances; + + uint256 private _totalSupply; + + string private _name; + string private _symbol; + uint8 private _decimals; + + /** + * @dev Sets the values for {name} and {symbol}, initializes {decimals} with + * a default value of 18. + * + * To select a different value for {decimals}, use {_setupDecimals}. + * + * All three of these values are immutable: they can only be set once during + * construction. + */ + constructor (string memory __name, string memory __symbol) { + _name = __name; + _symbol = __symbol; + _decimals = 18; + } + + /** + * @dev Returns the name of the token. + */ + function name() public view returns (string memory) { + return _name; + } + + function setName(string memory newName) internal { + _name = newName; + } + + /** + * @dev Returns the symbol of the token, usually a shorter version of the + * name. + */ + function symbol() public view returns (string memory) { + return _symbol; + } + + function setSymbol(string memory newSymbol) internal { + _symbol = newSymbol; + } + + /** + * @dev Returns the number of decimals used to get its user representation. + * For example, if `decimals` equals `2`, a balance of `505` tokens should + * be displayed to a user as `5,05` (`505 / 10 ** 2`). + * + * Tokens usually opt for a value of 18, imitating the relationship between + * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is + * called. + * + * NOTE: This information is only used for _display_ purposes: it in + * no way affects any of the arithmetic of the contract, including + * {IERC20-balanceOf} and {IERC20-transfer}. + */ + function decimals() public view returns (uint8) { + return _decimals; + } + + function setDecimals(uint8 newDecimals) internal { + _decimals = newDecimals; + } + + /** + * @dev See {IERC20-totalSupply}. + */ + function totalSupply() public view override returns (uint256) { + return _totalSupply; + } + + /** + * @dev See {IERC20-balanceOf}. + */ + function balanceOf(address account) public view override returns (uint256) { + return _balances[account]; + } + + /** + * @dev See {IERC20-transfer}. + * + * Requirements: + * + * - `recipient` cannot be the zero address. + * - the caller must have a balance of at least `amount`. + */ + function transfer(address recipient, uint256 amount) public virtual override returns (bool) { + _transfer(_msgSender(), recipient, amount); + return true; + } + + /** + * @dev See {IERC20-allowance}. + */ + function allowance(address owner, address spender) public view virtual override returns (uint256) { + return _allowances[owner][spender]; + } + + /** + * @dev See {IERC20-approve}. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function approve(address spender, uint256 amount) public virtual override returns (bool) { + _approve(_msgSender(), spender, amount); + return true; + } + + /** + * @dev See {IERC20-transferFrom}. + * + * Emits an {Approval} event indicating the updated allowance. This is not + * required by the EIP. See the note at the beginning of {ERC20}; + * + * Requirements: + * - `sender` and `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + * - the caller must have allowance for ``sender``'s tokens of at least + * `amount`. + */ + function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { + _transfer(sender, recipient, amount); + _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, + "ERC20: transfer amount exceeds allowance")); + return true; + } + + /** + * @dev Atomically increases the allowance granted to `spender` by the caller. + * + * This is an alternative to {approve} that can be used as a mitigation for + * problems described in {IERC20-approve}. + * + * Emits an {Approval} event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + */ + function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); + return true; + } + + /** + * @dev Atomically decreases the allowance granted to `spender` by the caller. + * + * This is an alternative to {approve} that can be used as a mitigation for + * problems described in {IERC20-approve}. + * + * Emits an {Approval} event indicating the updated allowance. + * + * Requirements: + * + * - `spender` cannot be the zero address. + * - `spender` must have allowance for the caller of at least + * `subtractedValue`. + */ + function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { + _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, + "ERC20: decreased allowance below zero")); + return true; + } + + /** + * @dev Moves tokens `amount` from `sender` to `recipient`. + * + * This is internal function is equivalent to {transfer}, and can be used to + * e.g. implement automatic token fees, slashing mechanisms, etc. + * + * Emits a {Transfer} event. + * + * Requirements: + * + * - `sender` cannot be the zero address. + * - `recipient` cannot be the zero address. + * - `sender` must have a balance of at least `amount`. + */ + function _transfer(address sender, address recipient, uint256 amount) internal virtual { + require(sender != address(0), "ERC20: transfer from the zero address"); + require(recipient != address(0), "ERC20: transfer to the zero address"); + + _beforeTokenTransfer(sender, recipient, amount); + + _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); + _balances[recipient] = _balances[recipient].add(amount); + emit Transfer(sender, recipient, amount); + } + + /** @dev Creates `amount` tokens and assigns them to `account`, increasing + * the total supply. + * + * Emits a {Transfer} event with `from` set to the zero address. + * + * Requirements + * + * - `to` cannot be the zero address. + */ + function _mint(address account, uint256 amount) public virtual { + require(account != address(0), "ERC20: mint to the zero address"); + + _beforeTokenTransfer(address(0), account, amount); + + _totalSupply = _totalSupply.add(amount); + _balances[account] = _balances[account].add(amount); + emit Transfer(address(0), account, amount); + } + + /** + * @dev Destroys `amount` tokens from `account`, reducing the + * total supply. + * + * Emits a {Transfer} event with `to` set to the zero address. + * + * Requirements + * + * - `account` cannot be the zero address. + * - `account` must have at least `amount` tokens. + */ + function _burn(address account, uint256 amount) internal virtual { + require(account != address(0), "ERC20: burn from the zero address"); + + _beforeTokenTransfer(account, address(0), amount); + + _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); + _totalSupply = _totalSupply.sub(amount); + emit Transfer(account, address(0), amount); + } + + /** + * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. + * + * This is internal function is equivalent to `approve`, and can be used to + * e.g. set automatic allowances for certain subsystems, etc. + * + * Emits an {Approval} event. + * + * Requirements: + * + * - `owner` cannot be the zero address. + * - `spender` cannot be the zero address. + */ + function _approve(address owner, address spender, uint256 amount) internal virtual { + require(owner != address(0), "ERC20: approve from the zero address"); + require(spender != address(0), "ERC20: approve to the zero address"); + + _allowances[owner][spender] = amount; + emit Approval(owner, spender, amount); + } + + /** + * @dev Sets {decimals} to a value other than the default one of 18. + * + * WARNING: This function should only be called from the constructor. Most + * applications that interact with token contracts will not expect + * {decimals} to ever change, and may work incorrectly if it does. + */ + function _setupDecimals(uint8 decimals_) internal { + _decimals = decimals_; + } + + /** + * @dev Hook that is called before any transfer of tokens. This includes + * minting and burning. + * + * Calling conditions: + * + * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens + * will be to transferred to `to`. + * - when `from` is zero, `amount` tokens will be minted for `to`. + * - when `to` is zero, `amount` of ``from``'s tokens will be burned. + * - `from` and `to` are never both zero. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } +} + +// File: @openzeppelin/contracts/utils/EnumerableSet.sol + + + +pragma solidity ^0.8.20; + +/** + * @dev Library for managing + * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive + * types. + * + * Sets have the following properties: + * + * - Elements are added, removed, and checked for existence in constant time + * (O(1)). + * - Elements are enumerated in O(n). No guarantees are made on the ordering. + * + * ``` + * contract Example { + * // Add the library methods + * using EnumerableSet for EnumerableSet.AddressSet; + * + * // Declare a set state variable + * EnumerableSet.AddressSet private mySet; + * } + * ``` + * + * As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` + * (`UintSet`) are supported. + */ +library EnumerableSet { + // To implement this library for multiple types with as little code + // repetition as possible, we write it in terms of a generic Set type with + // bytes32 values. + // The Set implementation uses private functions, and user-facing + // implementations (such as AddressSet) are just wrappers around the + // underlying Set. + // This means that we can only create new EnumerableSets for types that fit + // in bytes32. + + struct Set { + // Storage of set values + bytes32[] _values; + + // Position of the value in the `values` array, plus 1 because index 0 + // means a value is not in the set. + mapping (bytes32 => uint256) _indexes; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function _add(Set storage set, bytes32 value) private returns (bool) { + if (!_contains(set, value)) { + set._values.push(value); + // The value is stored at length-1, but we add 1 to all indexes + // and use 0 as a sentinel value + set._indexes[value] = set._values.length; + return true; + } else { + return false; + } + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function _remove(Set storage set, bytes32 value) private returns (bool) { + // We read and store the value's index to prevent multiple reads from the same storage slot + uint256 valueIndex = set._indexes[value]; + + if (valueIndex != 0) { // Equivalent to contains(set, value) + // To delete an element from the _values array in O(1), we swap the element to delete with the last one in + // the array, and then remove the last element (sometimes called as 'swap and pop'). + // This modifies the order of the array, as noted in {at}. + + uint256 toDeleteIndex = valueIndex - 1; + uint256 lastIndex = set._values.length - 1; + + // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs + // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. + + bytes32 lastvalue = set._values[lastIndex]; + + // Move the last value to the index where the value to delete is + set._values[toDeleteIndex] = lastvalue; + // Update the index for the moved value + set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based + + // Delete the slot where the moved value was stored + set._values.pop(); + + // Delete the index for the deleted slot + delete set._indexes[value]; + + return true; + } else { + return false; + } + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function _contains(Set storage set, bytes32 value) private view returns (bool) { + return set._indexes[value] != 0; + } + + /** + * @dev Returns the number of values on the set. O(1). + */ + function _length(Set storage set) private view returns (uint256) { + return set._values.length; + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function _at(Set storage set, uint256 index) private view returns (bytes32) { + require(set._values.length > index, "EnumerableSet: index out of bounds"); + return set._values[index]; + } + + // AddressSet + + struct AddressSet { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(AddressSet storage set, address value) internal returns (bool) { + return _add(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(AddressSet storage set, address value) internal returns (bool) { + return _remove(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(AddressSet storage set, address value) internal view returns (bool) { + return _contains(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Returns the number of values in the set. O(1). + */ + function length(AddressSet storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(AddressSet storage set, uint256 index) internal view returns (address) { + return address(uint160(uint256(_at(set._inner, index)))); + } + + + // UintSet + + struct UintSet { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(UintSet storage set, uint256 value) internal returns (bool) { + return _add(set._inner, bytes32(value)); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(UintSet storage set, uint256 value) internal returns (bool) { + return _remove(set._inner, bytes32(value)); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(UintSet storage set, uint256 value) internal view returns (bool) { + return _contains(set._inner, bytes32(value)); + } + + /** + * @dev Returns the number of values on the set. O(1). + */ + function length(UintSet storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(UintSet storage set, uint256 index) internal view returns (uint256) { + return uint256(_at(set._inner, index)); + } +} + +// File: @openzeppelin/contracts/access/AccessControl.sol + + + +pragma solidity ^0.8.20; + + + + +/** + * @dev Contract module that allows children to implement role-based access + * control mechanisms. + * + * Roles are referred to by their `bytes32` identifier. These should be exposed + * in the external API and be unique. The best way to achieve this is by + * using `public constant` hash digests: + * + * ``` + * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); + * ``` + * + * Roles can be used to represent a set of permissions. To restrict access to a + * function call, use {hasRole}: + * + * ``` + * function foo() public { + * require(hasRole(MY_ROLE, msg.sender)); + * ... + * } + * ``` + * + * Roles can be granted and revoked dynamically via the {grantRole} and + * {revokeRole} functions. Each role has an associated admin role, and only + * accounts that have a role's admin role can call {grantRole} and {revokeRole}. + * + * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means + * that only accounts with this role will be able to grant or revoke other + * roles. More complex role relationships can be created by using + * {_setRoleAdmin}. + * + * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to + * grant and revoke this role. Extra precautions should be taken to secure + * accounts that have been granted it. + */ +abstract contract AccessControl is Context { + using EnumerableSet for EnumerableSet.AddressSet; + using Address for address; + + struct RoleData { + EnumerableSet.AddressSet members; + bytes32 adminRole; + } + + mapping (bytes32 => RoleData) private _roles; + + bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; + + /** + * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` + * + * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite + * {RoleAdminChanged} not being emitted signaling this. + * + * _Available since v3.1._ + */ + event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); + + /** + * @dev Emitted when `account` is granted `role`. + * + * `sender` is the account that originated the contract call, an admin role + * bearer except when using {_setupRole}. + */ + event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); + + /** + * @dev Emitted when `account` is revoked `role`. + * + * `sender` is the account that originated the contract call: + * - if using `revokeRole`, it is the admin role bearer + * - if using `renounceRole`, it is the role bearer (i.e. `account`) + */ + event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); + + /** + * @dev Returns `true` if `account` has been granted `role`. + */ + function hasRole(bytes32 role, address account) public view returns (bool) { + return _roles[role].members.contains(account); + } + + /** + * @dev Returns the number of accounts that have `role`. Can be used + * together with {getRoleMember} to enumerate all bearers of a role. + */ + function getRoleMemberCount(bytes32 role) public view returns (uint256) { + return _roles[role].members.length(); + } + + /** + * @dev Returns one of the accounts that have `role`. `index` must be a + * value between 0 and {getRoleMemberCount}, non-inclusive. + * + * Role bearers are not sorted in any particular way, and their ordering may + * change at any point. + * + * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure + * you perform all queries on the same block. See the following + * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 + * for more information. + */ + function getRoleMember(bytes32 role, uint256 index) public view returns (address) { + return _roles[role].members.at(index); + } + + /** + * @dev Returns the admin role that controls `role`. See {grantRole} and + * {revokeRole}. + * + * To change a role's admin, use {_setRoleAdmin}. + */ + function getRoleAdmin(bytes32 role) public view returns (bytes32) { + return _roles[role].adminRole; + } + + /** + * @dev Grants `role` to `account`. + * + * If `account` had not been already granted `role`, emits a {RoleGranted} + * event. + * + * Requirements: + * + * - the caller must have ``role``'s admin role. + */ + function grantRole(bytes32 role, address account) public virtual { + require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant"); + + _grantRole(role, account); + } + + /** + * @dev Revokes `role` from `account`. + * + * If `account` had been granted `role`, emits a {RoleRevoked} event. + * + * Requirements: + * + * - the caller must have ``role``'s admin role. + */ + function revokeRole(bytes32 role, address account) public virtual { + require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke"); + + _revokeRole(role, account); + } + + /** + * @dev Revokes `role` from the calling account. + * + * Roles are often managed via {grantRole} and {revokeRole}: this function's + * purpose is to provide a mechanism for accounts to lose their privileges + * if they are compromised (such as when a trusted device is misplaced). + * + * If the calling account had been granted `role`, emits a {RoleRevoked} + * event. + * + * Requirements: + * + * - the caller must be `account`. + */ + function renounceRole(bytes32 role, address account) public virtual { + require(account == _msgSender(), "AccessControl: can only renounce roles for self"); + + _revokeRole(role, account); + } + + /** + * @dev Grants `role` to `account`. + * + * If `account` had not been already granted `role`, emits a {RoleGranted} + * event. Note that unlike {grantRole}, this function doesn't perform any + * checks on the calling account. + * + * [WARNING] + * ==== + * This function should only be called from the constructor when setting + * up the initial roles for the system. + * + * Using this function in any other way is effectively circumventing the admin + * system imposed by {AccessControl}. + * ==== + */ + function _setupRole(bytes32 role, address account) internal virtual { + _grantRole(role, account); + } + + /** + * @dev Sets `adminRole` as ``role``'s admin role. + * + * Emits a {RoleAdminChanged} event. + */ + function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { + emit RoleAdminChanged(role, _roles[role].adminRole, adminRole); + _roles[role].adminRole = adminRole; + } + + function _grantRole(bytes32 role, address account) private { + if (_roles[role].members.add(account)) { + emit RoleGranted(role, account, _msgSender()); + } + } + + function _revokeRole(bytes32 role, address account) private { + if (_roles[role].members.remove(account)) { + emit RoleRevoked(role, account, _msgSender()); + } + } +} + +// File: contracts/common/AccessControlMixin.sol + +pragma solidity ^0.8.20; + + +contract AccessControlMixin is AccessControl { + string private _revertMsg; + function _setupContractId(string memory contractId) internal { + _revertMsg = string(abi.encodePacked(contractId, ": INSUFFICIENT_PERMISSIONS")); + } + + modifier only(bytes32 role) { + require( + hasRole(role, _msgSender()), + _revertMsg + ); + _; + } +} + +// File: contracts/child/ChildToken/IChildToken.sol + +pragma solidity ^0.8.20; + +interface IChildToken { + function deposit(address user, bytes calldata depositData) external; +} + +// File: contracts/common/Initializable.sol + +pragma solidity ^0.8.20; + +contract Initializable { + bool inited = false; + + modifier initializer() { + require(!inited, "already inited"); + _; + inited = true; + } +} + +// File: contracts/common/EIP712Base.sol + +pragma solidity ^0.8.20; + + +contract EIP712Base is Initializable { + struct EIP712Domain { + string name; + string version; + address verifyingContract; + bytes32 salt; + } + + bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256( + bytes( + "EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)" + ) + ); + bytes32 internal domainSeperator; + + // supposed to be called once while initializing. + // one of the contractsa that inherits this contract follows proxy pattern + // so it is not possible to do this in a constructor + function _initializeEIP712( + string memory name, + string memory version + ) + internal + initializer + { + _setDomainSeperator(name, version); + } + + function _setDomainSeperator(string memory name, string memory version) internal { + domainSeperator = keccak256( + abi.encode( + EIP712_DOMAIN_TYPEHASH, + keccak256(bytes(name)), + keccak256(bytes(version)), + address(this), + bytes32(getChainId()) + ) + ); + } + + function getDomainSeperator() public view returns (bytes32) { + return domainSeperator; + } + + function getChainId() public view returns (uint256) { + uint256 id; + assembly { + id := chainid() + } + return id; + } + + /** + * Accept message hash and returns hash message in EIP712 compatible form + * So that it can be used to recover signer from signature signed using EIP712 formatted data + * https://eips.ethereum.org/EIPS/eip-712 + * "\\x19" makes the encoding deterministic + * "\\x01" is the version byte to make it compatible to EIP-191 + */ + function toTypedMessageHash(bytes32 messageHash) + internal + view + returns (bytes32) + { + return + keccak256( + abi.encodePacked("\x19\x01", getDomainSeperator(), messageHash) + ); + } +} + +// File: contracts/common/NativeMetaTransaction.sol + +pragma solidity ^0.8.20; + + + +contract NativeMetaTransaction is EIP712Base { + using SafeMath for uint256; + bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256( + bytes( + "MetaTransaction(uint256 nonce,address from,bytes functionSignature)" + ) + ); + event MetaTransactionExecuted( + address userAddress, + address payable relayerAddress, + bytes functionSignature + ); + mapping(address => uint256) nonces; + + /* + * Meta transaction structure. + * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas + * He should call the desired function directly in that case. + */ + struct MetaTransaction { + uint256 nonce; + address from; + bytes functionSignature; + } + + function executeMetaTransaction( + address userAddress, + bytes memory functionSignature, + bytes32 sigR, + bytes32 sigS, + uint8 sigV + ) public payable returns (bytes memory) { + MetaTransaction memory metaTx = MetaTransaction({ + nonce: nonces[userAddress], + from: userAddress, + functionSignature: functionSignature + }); + + require( + verify(userAddress, metaTx, sigR, sigS, sigV), + "Signer and signature do not match" + ); + + // increase nonce for user (to avoid re-use) + nonces[userAddress] = nonces[userAddress].add(1); + + emit MetaTransactionExecuted( + userAddress, + payable(msg.sender), + functionSignature + ); + + // Append userAddress and relayer address at the end to extract it from calling context + (bool success, bytes memory returnData) = address(this).call( + abi.encodePacked(functionSignature, userAddress) + ); + require(success, "Function call not successful"); + + return returnData; + } + + function hashMetaTransaction(MetaTransaction memory metaTx) + internal + pure + returns (bytes32) + { + return + keccak256( + abi.encode( + META_TRANSACTION_TYPEHASH, + metaTx.nonce, + metaTx.from, + keccak256(metaTx.functionSignature) + ) + ); + } + + function getNonce(address user) public view returns (uint256 nonce) { + nonce = nonces[user]; + } + + function verify( + address signer, + MetaTransaction memory metaTx, + bytes32 sigR, + bytes32 sigS, + uint8 sigV + ) internal view returns (bool) { + require(signer != address(0), "NativeMetaTransaction: INVALID_SIGNER"); + return + signer == + ecrecover( + toTypedMessageHash(hashMetaTransaction(metaTx)), + sigV, + sigR, + sigS + ); + } +} + +// File: contracts/ChainConstants.sol + +pragma solidity ^0.8.20; + +contract ChainConstants { + string constant public ERC712_VERSION = "1"; + + uint256 constant public ROOT_CHAIN_ID = 1; + bytes constant public ROOT_CHAIN_ID_BYTES = hex"01"; + + uint256 constant public CHILD_CHAIN_ID = 137; + bytes constant public CHILD_CHAIN_ID_BYTES = hex"89"; +} + +// File: contracts/common/ContextMixin.sol + +pragma solidity ^0.8.20; + +abstract contract ContextMixin { + function msgSender() + internal + view + returns (address payable sender) + { + if (msg.sender == address(this)) { + bytes memory array = msg.data; + uint256 index = msg.data.length; + assembly { + // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those. + sender := and( + mload(add(array, index)), + 0xffffffffffffffffffffffffffffffffffffffff + ) + } + } else { + sender = payable(msg.sender); + } + return sender; + } +} + +// File: contracts/child/ChildToken/UpgradeableChildERC20/UChildERC20.sol + +pragma solidity ^0.8.20; + + +contract UChildERC20 is + ERC20, + IChildToken, + AccessControlMixin, + NativeMetaTransaction, + ChainConstants, + ContextMixin +{ + bytes32 public constant DEPOSITOR_ROLE = keccak256("DEPOSITOR_ROLE"); + + constructor() ERC20("DAI", "DAI") {} + + /** + * @notice Initialize the contract after it has been proxified + * @dev meant to be called once immediately after deployment + */ + function initialize( + string calldata name_, + string calldata symbol_, + uint8 decimals_, + address childChainManager + ) + external + initializer + { + setName(name_); + setSymbol(symbol_); + setDecimals(decimals_); + _setupContractId(string(abi.encodePacked("Child", symbol_))); + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + _setupRole(DEPOSITOR_ROLE, childChainManager); + _initializeEIP712(name_, ERC712_VERSION); + } + + // This is to support Native meta transactions + // never use msg.sender directly, use _msgSender() instead + function _msgSender() + internal + override + view + returns (address payable sender) + { + return ContextMixin.msgSender(); + } + + function changeName(string calldata name_) external only(DEFAULT_ADMIN_ROLE) { + setName(name_); + _setDomainSeperator(name_, ERC712_VERSION); + } + + /** + * @notice called when token is deposited on root chain + * @dev Should be callable only by ChildChainManager + * Should handle deposit by minting the required amount for user + * Make sure minting is done only by this function + * @param user user address for whom deposit is being done + * @param depositData abi encoded amount + */ + function deposit(address user, bytes calldata depositData) + external + override + only(DEPOSITOR_ROLE) + { + uint256 amount = abi.decode(depositData, (uint256)); + _mint(user, amount); + } + + /** + * @notice called when user wants to withdraw tokens back to root chain + * @dev Should burn user's tokens. This transaction will be verified when exiting on root chain + * @param amount amount of tokens to withdraw + */ + function withdraw(uint256 amount) external { + _burn(_msgSender(), amount); + } +} + +// File: contracts/child/ChildToken/DappTokens/UChildDAI.sol + +pragma solidity ^0.8.20; + + +contract NofTestDAIV3 is UChildERC20 { + // bytes32 public constant PERMIT_TYPEHASH = + // keccak256("Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)"); + bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb; + + // --- Alias --- + function push(address usr, uint wad) external { + transferFrom(msg.sender, usr, wad); + } + function pull(address usr, uint wad) external { + transferFrom(usr, msg.sender, wad); + } + function move(address src, address dst, uint wad) external { + transferFrom(src, dst, wad); + } + + // --- Approve by signature --- + function permit( + address holder, + address spender, + uint256 nonce, + uint256 expiry, + bool allowed, + uint8 v, + bytes32 r, + bytes32 s + ) external { + bytes32 digest = keccak256( + abi.encodePacked( + "\x19\x01", + getDomainSeperator(), + keccak256( + abi.encode( + PERMIT_TYPEHASH, + holder, + spender, + nonce, + expiry, + allowed + ) + ) + )); + + require(holder == ecrecover(digest, v, r, s), "UChildDAI: INVALID-PERMIT"); + require(expiry == 0 || block.timestamp <= expiry, "UChildDAI: PERMIT-EXPIRED"); + require(nonce == nonces[holder]++, "UChildDAI: INVALID-NONCE"); + uint wad = allowed ? type(uint).max : 0; + _approve(holder, spender, wad); + } +} \ No newline at end of file diff --git a/hardhat.config.js b/hardhat.config.js new file mode 100644 index 00000000..2ef14876 --- /dev/null +++ b/hardhat.config.js @@ -0,0 +1,18 @@ +/** @type import('hardhat/config').HardhatUserConfig */ + +const solidityVersions = ["0.6.0", "0.6.2", "0.6.6", "0.8.18", "0.8.20"] +const compilers = solidityVersions.map((version) => ({ + version, + settings: { + optimizer: { + enabled: true, + runs: 200 + } + } +})) + +module.exports = { + solidity: { + compilers + }, +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2abd4c19..c46865db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@next/eslint-plugin-next": "^14.0.1", "@nomicfoundation/hardhat-toolbox": "^2.0.0", + "@openzeppelin/contracts": "^5.0.2", "@sendgrid/mail": "^8.1.0", "@walletconnect/web3-provider": "^1.8.0", "@web3modal/ethers5": "^3.5.1", @@ -69,35 +70,39 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -169,33 +174,33 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", - "convert-source-map": "^1.7.0", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -205,17 +210,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -225,11 +219,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -261,13 +255,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -275,14 +269,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -291,22 +277,17 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -351,27 +332,18 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { @@ -428,9 +400,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -457,9 +429,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "engines": { "node": ">=6.9.0" } @@ -530,9 +502,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } @@ -546,9 +518,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } @@ -567,22 +539,22 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -657,9 +629,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -668,9 +640,9 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -682,13 +654,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -697,6 +669,21 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -767,9 +754,9 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -781,9 +768,9 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -816,6 +803,20 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -926,9 +927,9 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -940,9 +941,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -957,13 +958,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -973,9 +974,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -987,9 +988,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1001,11 +1002,11 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1016,11 +1017,11 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -1032,17 +1033,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -1062,12 +1062,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/template": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1077,9 +1077,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1091,11 +1091,11 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1106,9 +1106,9 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1120,9 +1120,9 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1135,11 +1135,11 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1150,9 +1150,9 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1165,11 +1165,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1179,12 +1180,12 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1195,9 +1196,9 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1210,9 +1211,9 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1224,9 +1225,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1239,9 +1240,9 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1253,11 +1254,11 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1268,11 +1269,11 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1284,12 +1285,12 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20" }, @@ -1301,11 +1302,11 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1331,9 +1332,9 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1345,9 +1346,9 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1360,9 +1361,9 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1375,15 +1376,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1393,12 +1394,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-replace-supers": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1408,9 +1409,9 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1423,9 +1424,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1439,9 +1440,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1453,11 +1454,11 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1468,12 +1469,12 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1485,9 +1486,9 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1499,9 +1500,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1514,9 +1515,9 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1528,16 +1529,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", + "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1555,9 +1556,9 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1569,9 +1570,9 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1584,9 +1585,9 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1598,9 +1599,9 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1612,9 +1613,9 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1626,9 +1627,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1640,11 +1641,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1655,11 +1656,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1670,11 +1671,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1685,24 +1686,25 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1714,59 +1716,58 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1777,57 +1778,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1855,9 +1805,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1865,38 +1815,33 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1912,11 +1857,11 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, @@ -1951,74 +1896,26 @@ "node": ">= 10.0.0" } }, - "node_modules/@coinbase/wallet-sdk/node_modules/eth-block-tracker": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz", - "integrity": "sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==", - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "@metamask/utils": "^3.0.1", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@coinbase/wallet-sdk/node_modules/eth-json-rpc-filters": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-5.1.0.tgz", - "integrity": "sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==", - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@coinbase/wallet-sdk/node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@coinbase/wallet-sdk/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "engines": { - "node": ">=4" - } - }, "node_modules/@coinbase/wallet-sdk/node_modules/preact": { - "version": "10.19.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz", - "integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==", + "version": "10.19.6", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.6.tgz", + "integrity": "sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" } }, "node_modules/@commitlint/cli": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.4.3.tgz", - "integrity": "sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.6.1.tgz", + "integrity": "sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==", "dev": true, "dependencies": { - "@commitlint/format": "^18.4.3", - "@commitlint/lint": "^18.4.3", - "@commitlint/load": "^18.4.3", - "@commitlint/read": "^18.4.3", - "@commitlint/types": "^18.4.3", + "@commitlint/format": "^18.6.1", + "@commitlint/lint": "^18.6.1", + "@commitlint/load": "^18.6.1", + "@commitlint/read": "^18.6.1", + "@commitlint/types": "^18.6.1", "execa": "^5.0.0", "lodash.isfunction": "^3.0.9", "resolve-from": "5.0.0", @@ -2032,136 +1929,39 @@ "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@commitlint/config-conventional": { + "version": "18.6.2", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz", + "integrity": "sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "@commitlint/types": "^18.6.1", + "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { - "node": ">=12" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@commitlint/config-validator": { + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.6.1.tgz", + "integrity": "sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==", "dev": true, + "dependencies": { + "@commitlint/types": "^18.6.1", + "ajv": "^8.11.0" + }, "engines": { - "node": ">=8" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@commitlint/cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@commitlint/cli/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.4.3.tgz", - "integrity": "sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==", - "dev": true, - "dependencies": { - "conventional-changelog-conventionalcommits": "^7.0.2" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/config-validator": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.4.3.tgz", - "integrity": "sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==", - "dev": true, - "dependencies": { - "@commitlint/types": "^18.4.3", - "ajv": "^8.11.0" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/@commitlint/ensure": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.4.3.tgz", - "integrity": "sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.6.1.tgz", + "integrity": "sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==", "dev": true, "dependencies": { - "@commitlint/types": "^18.4.3", + "@commitlint/types": "^18.6.1", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -2173,21 +1973,21 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.4.3.tgz", - "integrity": "sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz", + "integrity": "sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/format": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.4.3.tgz", - "integrity": "sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.6.1.tgz", + "integrity": "sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==", "dev": true, "dependencies": { - "@commitlint/types": "^18.4.3", + "@commitlint/types": "^18.6.1", "chalk": "^4.1.0" }, "engines": { @@ -2195,44 +1995,43 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.4.3.tgz", - "integrity": "sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz", + "integrity": "sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==", "dev": true, "dependencies": { - "@commitlint/types": "^18.4.3", - "semver": "7.5.4" + "@commitlint/types": "^18.6.1", + "semver": "7.6.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/lint": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.4.3.tgz", - "integrity": "sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.6.1.tgz", + "integrity": "sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^18.4.3", - "@commitlint/parse": "^18.4.3", - "@commitlint/rules": "^18.4.3", - "@commitlint/types": "^18.4.3" + "@commitlint/is-ignored": "^18.6.1", + "@commitlint/parse": "^18.6.1", + "@commitlint/rules": "^18.6.1", + "@commitlint/types": "^18.6.1" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.4.3.tgz", - "integrity": "sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.6.1.tgz", + "integrity": "sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^18.4.3", - "@commitlint/execute-rule": "^18.4.3", - "@commitlint/resolve-extends": "^18.4.3", - "@commitlint/types": "^18.4.3", - "@types/node": "^18.11.9", + "@commitlint/config-validator": "^18.6.1", + "@commitlint/execute-rule": "^18.6.1", + "@commitlint/resolve-extends": "^18.6.1", + "@commitlint/types": "^18.6.1", "chalk": "^4.1.0", "cosmiconfig": "^8.3.6", "cosmiconfig-typescript-loader": "^5.0.0", @@ -2245,92 +2044,22 @@ "node": ">=v18" } }, - "node_modules/@commitlint/load/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", - "dev": true, - "dependencies": { - "jiti": "^1.19.1" - }, - "engines": { - "node": ">=v16" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=8.2", - "typescript": ">=4" - } - }, - "node_modules/@commitlint/load/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/load/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@commitlint/message": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.4.3.tgz", - "integrity": "sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.6.1.tgz", + "integrity": "sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/parse": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.4.3.tgz", - "integrity": "sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.6.1.tgz", + "integrity": "sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==", "dev": true, "dependencies": { - "@commitlint/types": "^18.4.3", + "@commitlint/types": "^18.6.1", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, @@ -2339,14 +2068,13 @@ } }, "node_modules/@commitlint/read": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.4.3.tgz", - "integrity": "sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.6.1.tgz", + "integrity": "sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==", "dev": true, "dependencies": { - "@commitlint/top-level": "^18.4.3", - "@commitlint/types": "^18.4.3", - "fs-extra": "^11.0.0", + "@commitlint/top-level": "^18.6.1", + "@commitlint/types": "^18.6.1", "git-raw-commits": "^2.0.11", "minimist": "^1.2.6" }, @@ -2354,49 +2082,14 @@ "node": ">=v18" } }, - "node_modules/@commitlint/read/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@commitlint/read/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@commitlint/read/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@commitlint/resolve-extends": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.4.3.tgz", - "integrity": "sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz", + "integrity": "sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^18.4.3", - "@commitlint/types": "^18.4.3", + "@commitlint/config-validator": "^18.6.1", + "@commitlint/types": "^18.6.1", "import-fresh": "^3.0.0", "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0", @@ -2406,25 +2099,16 @@ "node": ">=v18" } }, - "node_modules/@commitlint/resolve-extends/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@commitlint/rules": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.4.3.tgz", - "integrity": "sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.6.1.tgz", + "integrity": "sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==", "dev": true, "dependencies": { - "@commitlint/ensure": "^18.4.3", - "@commitlint/message": "^18.4.3", - "@commitlint/to-lines": "^18.4.3", - "@commitlint/types": "^18.4.3", + "@commitlint/ensure": "^18.6.1", + "@commitlint/message": "^18.6.1", + "@commitlint/to-lines": "^18.6.1", + "@commitlint/types": "^18.6.1", "execa": "^5.0.0" }, "engines": { @@ -2432,18 +2116,18 @@ } }, "node_modules/@commitlint/to-lines": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.4.3.tgz", - "integrity": "sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.6.1.tgz", + "integrity": "sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/top-level": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.4.3.tgz", - "integrity": "sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.6.1.tgz", + "integrity": "sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==", "dev": true, "dependencies": { "find-up": "^5.0.0" @@ -2453,9 +2137,9 @@ } }, "node_modules/@commitlint/types": { - "version": "18.4.3", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.4.3.tgz", - "integrity": "sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.6.1.tgz", + "integrity": "sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==", "dev": true, "dependencies": { "chalk": "^4.1.0" @@ -2487,17 +2171,19 @@ } }, "node_modules/@emotion/is-prop-valid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", - "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, "dependencies": { - "@emotion/memoize": "^0.8.0" + "@emotion/memoize": "0.7.4" } }, "node_modules/@emotion/memoize": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", - "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true }, "node_modules/@emotion/stylis": { "version": "0.8.5", @@ -2534,9 +2220,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2556,15 +2242,75 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "peer": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "peer": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, "node_modules/@ethersproject/abi": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", @@ -2864,6 +2610,11 @@ "scrypt-js": "3.0.1" } }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, "node_modules/@ethersproject/keccak256": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", @@ -2990,26 +2741,6 @@ "ws": "7.4.6" } }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@ethersproject/random": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", @@ -3257,22 +2988,22 @@ } }, "node_modules/@fastify/busboy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", - "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "peer": true, "engines": { "node": ">=14" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -3293,9 +3024,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@ioredis/commands": { @@ -3303,12 +3034,96 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jimp/bmp": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.10.tgz", - "integrity": "sha512-1UXRl1Nw1KptZ1r0ANqtXOst9vGH51dq7keVKQzyyTO2lz4dOaezS9StuSTNh+RmiHg/SVPaFRpPfB0S/ln4Kg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.12.tgz", + "integrity": "sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "bmp-js": "^0.1.0" }, "peerDependencies": { @@ -3316,11 +3131,11 @@ } }, "node_modules/@jimp/core": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.10.tgz", - "integrity": "sha512-ZKyrehVy6wu1PnBXIUpn/fXmyMRQiVSbvHDubgXz4bfTOao3GiOurKHjByutQIgozuAN6ZHWiSge1dKA+dex3w==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.12.tgz", + "integrity": "sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "any-base": "^1.1.0", "buffer": "^5.2.0", "exif-parser": "^0.1.12", @@ -3354,19 +3169,19 @@ } }, "node_modules/@jimp/custom": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.10.tgz", - "integrity": "sha512-sPZkUYe1hu0iIgNisjizxPJqq2vaaKvkCkPoXq2U6UV3ZA1si/WVdrg25da3IcGIEV+83AoHgM8TvqlLgrCJsg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", + "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", "dependencies": { - "@jimp/core": "^0.22.10" + "@jimp/core": "^0.22.12" } }, "node_modules/@jimp/gif": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.10.tgz", - "integrity": "sha512-yEX2dSpamvkSx1PPDWGnKeWDrBz0vrCKjVG/cn4Zr68MRRT75tbZIeOrBa+RiUpY3ho5ix7d36LkYvt3qfUIhQ==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.12.tgz", + "integrity": "sha512-y6BFTJgch9mbor2H234VSjd9iwAhaNf/t3US5qpYIs0TSbAvM02Fbc28IaDETj9+4YB4676sz4RcN/zwhfu1pg==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "gifwrap": "^0.10.1", "omggif": "^1.0.9" }, @@ -3375,11 +3190,11 @@ } }, "node_modules/@jimp/jpeg": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.10.tgz", - "integrity": "sha512-6bu98pAcVN4DY2oiDLC4TOgieX/lZrLd1tombWZOFCN5PBmqaHQxm7IUmT+Wj4faEvh8QSHgVLSA+2JQQRJWVA==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.12.tgz", + "integrity": "sha512-Rq26XC/uQWaQKyb/5lksCTCxXhtY01NJeBN+dQv5yNYedN0i7iYu+fXEoRsfaJ8xZzjoANH8sns7rVP4GE7d/Q==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "jpeg-js": "^0.4.4" }, "peerDependencies": { @@ -3387,44 +3202,44 @@ } }, "node_modules/@jimp/plugin-blit": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.10.tgz", - "integrity": "sha512-6EI8Sl+mxYHEIy6Yteh6eknD+EZguKpNdr3sCKxNezmLR0+vK99vHcllo6uGSjXXiwtwS67Xqxn8SsoatL+UJQ==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz", + "integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-blur": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.10.tgz", - "integrity": "sha512-4XRTWuPVdMXJeclJMisXPGizeHtTryVaVV5HnuQXpKqIZtzXReCCpNGH8q/i0kBQOQMXhGWS3mpqOEwtpPePKw==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz", + "integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-circle": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.10.tgz", - "integrity": "sha512-mhcwTO1ywRxiCgtLGge6tDDIDPlX6qkI3CY+BjgGG/XhVHccCddXgOGLdlf+5OuKIEF2Nqs0V01LQEQIJFTmEw==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.12.tgz", + "integrity": "sha512-SWVXx1yiuj5jZtMijqUfvVOJBwOifFn0918ou4ftoHgegc5aHWW5dZbYPjvC9fLpvz7oSlptNl2Sxr1zwofjTg==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-color": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.10.tgz", - "integrity": "sha512-e4t3L7Kedd96E0x1XjsTM6NcgulKUU66HdFTao7Tc9FYJRFSlttARZ/C6LEryGDm/i69R6bJEpo7BkNz0YL55Q==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz", + "integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "tinycolor2": "^1.6.0" }, "peerDependencies": { @@ -3432,11 +3247,11 @@ } }, "node_modules/@jimp/plugin-contain": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.10.tgz", - "integrity": "sha512-eP8KrzctuEoqibQAxi9WhbnoRosydhiwg+IYya3dKuKDBTrD9UHt+ERlPQ/lTNWHzV/l4S1ntV3r9s9saJgsXA==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.12.tgz", + "integrity": "sha512-Eo3DmfixJw3N79lWk8q/0SDYbqmKt1xSTJ69yy8XLYQj9svoBbyRpSnHR+n9hOw5pKXytHwUW6nU4u1wegHNoQ==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3446,11 +3261,11 @@ } }, "node_modules/@jimp/plugin-cover": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.10.tgz", - "integrity": "sha512-kJCwL5T1igfa0InCfkE7bBeqg26m46aoRt10ug+rvm11P6RrvRMGrgINFyIKB+mnB7CiyBN/MOula1CvLhSInQ==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.12.tgz", + "integrity": "sha512-z0w/1xH/v/knZkpTNx+E8a7fnasQ2wHG5ze6y5oL2dhH1UufNua8gLQXlv8/W56+4nJ1brhSd233HBJCo01BXA==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3460,55 +3275,55 @@ } }, "node_modules/@jimp/plugin-crop": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.10.tgz", - "integrity": "sha512-BOZ+YGaZlhU7c5ye65RxikicXH0Ki0It6/XHISvipR5WZrfjLjL2Ke20G+AGnwBQc76gKenVcMXVUCnEjtZV+Q==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz", + "integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-displace": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.10.tgz", - "integrity": "sha512-llNiWWMTKISDXt5+cXI0GaFmZWAjlT+4fFLYf4eXquuL/9wZoQsEBhv2GdGd48mkiS8jZq1Nnb2Q4ehEPTvrzw==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.12.tgz", + "integrity": "sha512-qpRM8JRicxfK6aPPqKZA6+GzBwUIitiHaZw0QrJ64Ygd3+AsTc7BXr+37k2x7QcyCvmKXY4haUrSIsBug4S3CA==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-dither": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.10.tgz", - "integrity": "sha512-05WLmeV5M+P/0FS+bWf13hMew2X0oa8w9AtmevL2UyA/5GqiyvP2Xm5WfGQ8oFiiMvpnL6RFomJQOZtWca0C2w==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.12.tgz", + "integrity": "sha512-jYgGdSdSKl1UUEanX8A85v4+QUm+PE8vHFwlamaKk89s+PXQe7eVE3eNeSZX4inCq63EHL7cX580dMqkoC3ZLw==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-fisheye": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.10.tgz", - "integrity": "sha512-InjiXvc7Gkzrx8VWtU97kDqV7ENnhHGPULymJWeZaF2aicud9Fpk4iCtd/DcZIrk7Cbe60A8RwNXN00HXIbSCg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.12.tgz", + "integrity": "sha512-LGuUTsFg+fOp6KBKrmLkX4LfyCy8IIsROwoUvsUPKzutSqMJnsm3JGDW2eOmWIS/jJpPaeaishjlxvczjgII+Q==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-flip": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.10.tgz", - "integrity": "sha512-42GkGtTHWnhnwTMPVK/kXObZbkYIpQWfuIfy5EMEMk6zRj05zpv4vsjkKWfuemweZINwfvD7wDJF7FVFNNcZZg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.12.tgz", + "integrity": "sha512-m251Rop7GN8W0Yo/rF9LWk6kNclngyjIJs/VXHToGQ6EGveOSTSQaX2Isi9f9lCDLxt+inBIb7nlaLLxnvHX8Q==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3516,55 +3331,55 @@ } }, "node_modules/@jimp/plugin-gaussian": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.10.tgz", - "integrity": "sha512-ykrG/6lTp9Q5YA8jS5XzwMHtRxb9HOFMgtmnrUZ8kU+BK8REecfy9Ic5BUEOjCYvS1a/xLsnrZQU07iiYxBxFg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.12.tgz", + "integrity": "sha512-sBfbzoOmJ6FczfG2PquiK84NtVGeScw97JsCC3rpQv1PHVWyW+uqWFF53+n3c8Y0P2HWlUjflEla2h/vWShvhg==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-invert": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.10.tgz", - "integrity": "sha512-d8j9BlUJYs/c994t4azUWSWmQq4LLPG4ecm8m6SSNqap+S/HlVQGqjYhJEBbY9EXkOTYB9vBL9bqwSM1Rr6paA==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.12.tgz", + "integrity": "sha512-N+6rwxdB+7OCR6PYijaA/iizXXodpxOGvT/smd/lxeXsZ/empHmFFFJ/FaXcYh19Tm04dGDaXcNF/dN5nm6+xQ==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-mask": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.10.tgz", - "integrity": "sha512-yRBs1230XZkz24uFTdTcSlZ0HXZpIWzM3iFQN56MzZ7USgdVZjPPDCQ8I9RpqfZ36nDflQkUO0wV7ucsi4ogow==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.12.tgz", + "integrity": "sha512-4AWZg+DomtpUA099jRV8IEZUfn1wLv6+nem4NRJC7L/82vxzLCgXKTxvNvBcNmJjT9yS1LAAmiJGdWKXG63/NA==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-normalize": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.10.tgz", - "integrity": "sha512-Wk9GX6eJMchX/ZAazVa70Fagu+OXMvHiPY+HrcEwcclL+p1wo8xAHEsf9iKno7Ja4EU9lLhbBRY5hYJyiKMEkg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.12.tgz", + "integrity": "sha512-0So0rexQivnWgnhacX4cfkM2223YdExnJTTy6d06WbkfZk5alHUx8MM3yEzwoCN0ErO7oyqEWRnEkGC+As1FtA==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-print": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.10.tgz", - "integrity": "sha512-1U3VloIR+beE1kWPdGEJMiE2h1Do29iv3w8sBbvPyRP4qXxRFcDpmCGtctsrKmb1krlBFlj8ubyAY90xL+5n9w==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.12.tgz", + "integrity": "sha512-c7TnhHlxm87DJeSnwr/XOLjJU/whoiKYY7r21SbuJ5nuH+7a78EW1teOaj5gEr2wYEd7QtkFqGlmyGXY/YclyQ==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "load-bmfont": "^1.4.1" }, "peerDependencies": { @@ -3573,22 +3388,22 @@ } }, "node_modules/@jimp/plugin-resize": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.10.tgz", - "integrity": "sha512-ixomxVcnAONXDgaq0opvAx4UAOiEhOA/tipuhFFOvPKFd4yf1BAnEviB5maB0SBHHkJXPUSzDp/73xVTMGSe7g==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz", + "integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-rotate": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.10.tgz", - "integrity": "sha512-eeFX8dnRyf3LAdsdXWKWuN18hLRg8zy1cP0cP9rHzQVWRK7ck/QsLxK1vHq7MADGwQalNaNTJ9SQxH6c8mz6jw==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz", + "integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3598,11 +3413,11 @@ } }, "node_modules/@jimp/plugin-scale": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.10.tgz", - "integrity": "sha512-TG/H0oUN69C9ArBCZg4PmuoixFVKIiru8282KzSB/Tp1I0xwX0XLTv3dJ5pobPlIgPcB+TmD4xAIdkCT4rtWxg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz", + "integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3610,11 +3425,11 @@ } }, "node_modules/@jimp/plugin-shadow": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.10.tgz", - "integrity": "sha512-TN9xm6fI7XfxbMUQqFPZjv59Xdpf0tSiAQdINB4g6pJMWiVANR/74OtDONoy3KKpenu5Y38s+FkrtID/KcQAhw==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.12.tgz", + "integrity": "sha512-FX8mTJuCt7/3zXVoeD/qHlm4YH2bVqBuWQHXSuBK054e7wFRnRnbSLPUqAwSeYP3lWqpuQzJtgiiBxV3+WWwTg==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3623,11 +3438,11 @@ } }, "node_modules/@jimp/plugin-threshold": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.10.tgz", - "integrity": "sha512-DA2lSnU0TgIRbAgmXaxroYw3Ad6J2DOFEoJp0NleSm2h3GWbZEE5yW9U2B6hD3iqn4AenG4E2b2WzHXZyzSutw==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.12.tgz", + "integrity": "sha512-4x5GrQr1a/9L0paBC/MZZJjjgjxLYrqSmWd+e+QfAEPvmRxdRoQ5uKEuNgXnm9/weHQBTnQBQsOY2iFja+XGAw==", "dependencies": { - "@jimp/utils": "^0.22.10" + "@jimp/utils": "^0.22.12" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3636,31 +3451,31 @@ } }, "node_modules/@jimp/plugins": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.10.tgz", - "integrity": "sha512-KDMZyM6pmvS8freB+UBLko1TO/k4D7URS/nphCozuH+P7i3UMe7NdckXKJ8u+WD6sqN0YFYvBehpkpnUiw/91w==", - "dependencies": { - "@jimp/plugin-blit": "^0.22.10", - "@jimp/plugin-blur": "^0.22.10", - "@jimp/plugin-circle": "^0.22.10", - "@jimp/plugin-color": "^0.22.10", - "@jimp/plugin-contain": "^0.22.10", - "@jimp/plugin-cover": "^0.22.10", - "@jimp/plugin-crop": "^0.22.10", - "@jimp/plugin-displace": "^0.22.10", - "@jimp/plugin-dither": "^0.22.10", - "@jimp/plugin-fisheye": "^0.22.10", - "@jimp/plugin-flip": "^0.22.10", - "@jimp/plugin-gaussian": "^0.22.10", - "@jimp/plugin-invert": "^0.22.10", - "@jimp/plugin-mask": "^0.22.10", - "@jimp/plugin-normalize": "^0.22.10", - "@jimp/plugin-print": "^0.22.10", - "@jimp/plugin-resize": "^0.22.10", - "@jimp/plugin-rotate": "^0.22.10", - "@jimp/plugin-scale": "^0.22.10", - "@jimp/plugin-shadow": "^0.22.10", - "@jimp/plugin-threshold": "^0.22.10", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.12.tgz", + "integrity": "sha512-yBJ8vQrDkBbTgQZLty9k4+KtUQdRjsIDJSPjuI21YdVeqZxYywifHl4/XWILoTZsjTUASQcGoH0TuC0N7xm3ww==", + "dependencies": { + "@jimp/plugin-blit": "^0.22.12", + "@jimp/plugin-blur": "^0.22.12", + "@jimp/plugin-circle": "^0.22.12", + "@jimp/plugin-color": "^0.22.12", + "@jimp/plugin-contain": "^0.22.12", + "@jimp/plugin-cover": "^0.22.12", + "@jimp/plugin-crop": "^0.22.12", + "@jimp/plugin-displace": "^0.22.12", + "@jimp/plugin-dither": "^0.22.12", + "@jimp/plugin-fisheye": "^0.22.12", + "@jimp/plugin-flip": "^0.22.12", + "@jimp/plugin-gaussian": "^0.22.12", + "@jimp/plugin-invert": "^0.22.12", + "@jimp/plugin-mask": "^0.22.12", + "@jimp/plugin-normalize": "^0.22.12", + "@jimp/plugin-print": "^0.22.12", + "@jimp/plugin-resize": "^0.22.12", + "@jimp/plugin-rotate": "^0.22.12", + "@jimp/plugin-scale": "^0.22.12", + "@jimp/plugin-shadow": "^0.22.12", + "@jimp/plugin-threshold": "^0.22.12", "timm": "^1.6.1" }, "peerDependencies": { @@ -3668,29 +3483,21 @@ } }, "node_modules/@jimp/png": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.10.tgz", - "integrity": "sha512-RYinU7tZToeeR2g2qAMn42AU+8OUHjXPKZZ9RkmoL4bguA1xyZWaSdr22/FBkmnHhOERRlr02KPDN1OTOYHLDQ==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.12.tgz", + "integrity": "sha512-Mrp6dr3UTn+aLK8ty/dSKELz+Otdz1v4aAXzV5q53UDD2rbB5joKVJ/ChY310B+eRzNxIovbUF1KVrUsYdE8Hg==", "dependencies": { - "@jimp/utils": "^0.22.10", + "@jimp/utils": "^0.22.12", "pngjs": "^6.0.0" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, - "node_modules/@jimp/png/node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "engines": { - "node": ">=12.13.0" - } - }, "node_modules/@jimp/tiff": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.10.tgz", - "integrity": "sha512-OaivlSYzpNTHyH/h7pEtl3A7F7TbsgytZs52GLX/xITW92ffgDgT6PkldIrMrET6ERh/hdijNQiew7IoEEr2og==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.12.tgz", + "integrity": "sha512-E1LtMh4RyJsoCAfAkBRVSYyZDTtLq9p9LUiiYP0vPtXyxX4BiYBUYihTLSBlCQg5nF2e4OpQg7SPrLdJ66u7jg==", "dependencies": { "utif2": "^4.0.1" }, @@ -3699,15 +3506,15 @@ } }, "node_modules/@jimp/types": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.10.tgz", - "integrity": "sha512-u/r+XYzbCx4zZukDmxx8S0er3Yq3iDPI6+31WKX0N18i2qPPJYcn8qwIFurfupRumGvJ8SlGLCgt/T+Y8zzUIw==", - "dependencies": { - "@jimp/bmp": "^0.22.10", - "@jimp/gif": "^0.22.10", - "@jimp/jpeg": "^0.22.10", - "@jimp/png": "^0.22.10", - "@jimp/tiff": "^0.22.10", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.12.tgz", + "integrity": "sha512-wwKYzRdElE1MBXFREvCto5s699izFHNVvALUv79GXNbsOVqlwlOxlWJ8DuyOGIXoLP4JW/m30YyuTtfUJgMRMA==", + "dependencies": { + "@jimp/bmp": "^0.22.12", + "@jimp/gif": "^0.22.12", + "@jimp/jpeg": "^0.22.12", + "@jimp/png": "^0.22.12", + "@jimp/tiff": "^0.22.12", "timm": "^1.6.1" }, "peerDependencies": { @@ -3715,38 +3522,43 @@ } }, "node_modules/@jimp/utils": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.10.tgz", - "integrity": "sha512-ztlOK9Mm2iLG2AMoabzM4i3WZ/FtshcgsJCbZCRUs/DKoeS2tySRJTnQZ1b7Roq0M4Ce+FUAxnCAcBV0q7PH9w==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.12.tgz", + "integrity": "sha512-yJ5cWUknGnilBq97ZXOyOS0HhsHOyAyjHwYfHxGbSyMTohgQI6sVyE8KPgDwH8HHW/nMKXk8TrSwAE71zt716Q==", "dependencies": { "regenerator-runtime": "^0.13.3" } }, + "node_modules/@jimp/utils/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } @@ -3761,23 +3573,23 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", - "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", + "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" }, "node_modules/@lit/reactive-element": { "version": "1.6.3", @@ -3818,29 +3630,6 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "peer": true }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", @@ -3884,57 +3673,77 @@ } }, "node_modules/@mongodb-js/saslprep": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", - "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", + "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", "optional": true, "dependencies": { "sparse-bitfield": "^3.0.3" } }, "node_modules/@motionone/animation": { - "version": "10.16.3", - "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.16.3.tgz", - "integrity": "sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g==", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz", + "integrity": "sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==", "dependencies": { - "@motionone/easing": "^10.16.3", - "@motionone/types": "^10.16.3", - "@motionone/utils": "^10.16.3", + "@motionone/easing": "^10.17.0", + "@motionone/types": "^10.17.0", + "@motionone/utils": "^10.17.0", "tslib": "^2.3.1" } }, + "node_modules/@motionone/animation/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@motionone/dom": { - "version": "10.16.4", - "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.16.4.tgz", - "integrity": "sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA==", - "dependencies": { - "@motionone/animation": "^10.16.3", - "@motionone/generators": "^10.16.4", - "@motionone/types": "^10.16.3", - "@motionone/utils": "^10.16.3", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.17.0.tgz", + "integrity": "sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q==", + "dependencies": { + "@motionone/animation": "^10.17.0", + "@motionone/generators": "^10.17.0", + "@motionone/types": "^10.17.0", + "@motionone/utils": "^10.17.0", "hey-listen": "^1.0.8", "tslib": "^2.3.1" } }, + "node_modules/@motionone/dom/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@motionone/easing": { - "version": "10.16.3", - "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.16.3.tgz", - "integrity": "sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w==", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz", + "integrity": "sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==", "dependencies": { - "@motionone/utils": "^10.16.3", + "@motionone/utils": "^10.17.0", "tslib": "^2.3.1" } }, + "node_modules/@motionone/easing/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@motionone/generators": { - "version": "10.16.4", - "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.16.4.tgz", - "integrity": "sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg==", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz", + "integrity": "sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==", "dependencies": { - "@motionone/types": "^10.16.3", - "@motionone/utils": "^10.16.3", + "@motionone/types": "^10.17.0", + "@motionone/utils": "^10.17.0", "tslib": "^2.3.1" } }, + "node_modules/@motionone/generators/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@motionone/svelte": { "version": "10.16.4", "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", @@ -3944,60 +3753,57 @@ "tslib": "^2.3.1" } }, + "node_modules/@motionone/svelte/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@motionone/types": { - "version": "10.16.3", - "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.16.3.tgz", - "integrity": "sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg==" + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz", + "integrity": "sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA==" }, "node_modules/@motionone/utils": { - "version": "10.16.3", - "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.16.3.tgz", - "integrity": "sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA==", + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz", + "integrity": "sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==", "dependencies": { - "@motionone/types": "^10.16.3", + "@motionone/types": "^10.17.0", "hey-listen": "^1.0.8", "tslib": "^2.3.1" } }, + "node_modules/@motionone/utils/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@motionone/vue": { "version": "10.16.4", "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==", + "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion", "dependencies": { "@motionone/dom": "^10.16.4", "tslib": "^2.3.1" } }, + "node_modules/@motionone/vue/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@next/env": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.0.1.tgz", "integrity": "sha512-gK60YoFae3s8qi5UgIzbvxOhsh5gKyEaiKH5+kLBUYXLlrPyWJR2xKBj2WqvHkO7wDX7/Hed3DAqjSpU4ijIvQ==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.1.tgz", - "integrity": "sha512-bLjJMwXdzvhnQOnxvHoTTUh/+PYk6FF/DCgHi4BXwXCINer+o1ZYfL9aVeezj/oI7wqGJOqwGIXrlBvPbAId3w==", - "dependencies": { - "glob": "7.1.7" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.2.tgz", + "integrity": "sha512-k9h9NfR1joJI48uwdQd/DuOV1mBgcjlmWaX45eAXCFGT96oc+/6SMjO3s7naVtTXqSKjFAgk2GDlW6Hv41ROXQ==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "glob": "10.3.10" } }, "node_modules/@next/swc-android-arm-eabi": { @@ -4196,20 +4002,20 @@ } }, "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", "dependencies": { - "@noble/hashes": "1.3.2" + "@noble/hashes": "1.3.3" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", "engines": { "node": ">= 16" }, @@ -4217,22 +4023,10 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/hashes": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", - "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true - }, "node_modules/@noble/secp256k1": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", @@ -4273,421 +4067,244 @@ "node": ">= 8" } }, - "node_modules/@nomicfoundation/ethereumjs-block": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz", - "integrity": "sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA==", + "node_modules/@nomicfoundation/edr": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.2.0.tgz", + "integrity": "sha512-RRWJepP4ozI4jVxqNtuw53ZbPcUB4FcKry2aYVQw8KAp9o8j/I5H3SsfpmKT+lgHRSL/5/KK0RxOx1GQSyDAZw==", "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-trie": "^5.0.0", - "@nomicfoundation/ethereumjs-tx": "^4.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "ethereum-cryptography": "0.1.3" + "engines": { + "node": ">= 18" }, + "optionalDependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.2.0", + "@nomicfoundation/edr-darwin-x64": "0.2.0", + "@nomicfoundation/edr-linux-arm64-gnu": "0.2.0", + "@nomicfoundation/edr-linux-arm64-musl": "0.2.0", + "@nomicfoundation/edr-linux-x64-gnu": "0.2.0", + "@nomicfoundation/edr-linux-x64-musl": "0.2.0", + "@nomicfoundation/edr-win32-arm64-msvc": "0.2.0", + "@nomicfoundation/edr-win32-ia32-msvc": "0.2.0", + "@nomicfoundation/edr-win32-x64-msvc": "0.2.0" + } + }, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.2.0.tgz", + "integrity": "sha512-OfXruInMbc6+J6BnAlYlpTS8lj5hHmfLdzqthhiQaayuHxT6iBMrefe6N+2DC9hBxD3VjCApUWtLfV3pJzpbCg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-block/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.2.0.tgz", + "integrity": "sha512-tfNhHYSgro3nOTGCQzBvFniUy0cvUBtPCSeniNleu5M4nolArnxlZfEkNdpYRB92QRjfaREZttuBP1nrIO/b+w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-blockchain": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz", - "integrity": "sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw==", - "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "^4.0.0", - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-ethash": "^2.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-trie": "^5.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "abstract-level": "^1.0.3", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "level": "^8.0.0", - "lru-cache": "^5.1.1", - "memory-level": "^1.0.0" - }, "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.2.0.tgz", + "integrity": "sha512-Km4rZIsARkiIR7HfpU6ybCkAHpD+Gg68x+5+dhQsv+eT3XvQ9pRv3jz14v3aimOjwpCd5/uUw9LhQrPtFyMGGA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "engines": { + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.2.0.tgz", + "integrity": "sha512-pD4g2r5Q54b3AzEaI0okDktFrYjhcdCxO3lvP1pYGCvha8KYrUv9DM3Z/0kfnn3vP9y/PxzcJUBfXjG4NZuHpw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "yallist": "^3.0.2" + "engines": { + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "peer": true - }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz", - "integrity": "sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA==", - "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "crc-32": "^1.2.0" - } - }, - "node_modules/@nomicfoundation/ethereumjs-ethash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz", - "integrity": "sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew==", + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.2.0.tgz", + "integrity": "sha512-xjw8yNiEED0jlM5HuWXF/61+4bBkEpSZpMmb39XChPJXVxtZIIBzj0AcGTdzkSyH/atgkEaNutkEb1PeEuFwnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "^4.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "abstract-level": "^1.0.3", - "bigint-crypto-utils": "^3.0.23", - "ethereum-cryptography": "0.1.3" - }, "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-ethash/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.2.0.tgz", + "integrity": "sha512-aqqR0usfHt6V2j+7pQiMqIrIBpUwDeU27w27kuvZsHDUhrvg4sgGm3FBG1QUxN8tv9E/UrbUuW0kVt7tbEmKMA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "engines": { + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-evm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz", - "integrity": "sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q==", + "node_modules/@nomicfoundation/edr-win32-arm64-msvc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-arm64-msvc/-/edr-win32-arm64-msvc-0.2.0.tgz", + "integrity": "sha512-+S4Qnx5CVdUAxGUXa3rNq0h/qALIHkGdlKLT5KDsk/qGTmI/uuAB4tnoOaaHMc5ANckPtBdWfSwnLJjWPZbR6w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "@types/async-eventemitter": "^0.2.1", - "async-eventemitter": "^0.2.4", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, "engines": { - "node": ">=14" + "node": ">= 10" } }, - "node_modules/@nomicfoundation/ethereumjs-evm/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "node_modules/@nomicfoundation/edr-win32-ia32-msvc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-ia32-msvc/-/edr-win32-ia32-msvc-0.2.0.tgz", + "integrity": "sha512-hK0RVcNog8sJ63QmeEJ+WIhnCLfUCl5jXYCBjQtGOWlIkC7EzNddkZ28MmrFOMrV3xstSGOmdPvvq8q1HNVakA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "engines": { + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz", - "integrity": "sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw==", + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.2.0.tgz", + "integrity": "sha512-gWgMU4I94fHIeda3xOnHBYcCOzRF6ySB89vgENK4Y1S1Un/qpZ+tQwf+/hX0HCaZGMw/LqBG61ltOYUXVfZ6Yg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], "peer": true, - "bin": { - "rlp": "bin/rlp" - }, "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-statemanager": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz", - "integrity": "sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ==", + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-trie": "^5.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "functional-red-black-tree": "^1.0.1" + "@nomicfoundation/ethereumjs-util": "9.0.4" } }, - "node_modules/@nomicfoundation/ethereumjs-statemanager/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-trie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz", - "integrity": "sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A==", + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "ethereum-cryptography": "0.1.3", - "readable-stream": "^3.6.0" + "bin": { + "rlp": "bin/rlp.cjs" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-trie/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "node": ">=18" } }, "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz", - "integrity": "sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", "ethereum-cryptography": "0.1.3" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } } }, "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz", - "integrity": "sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "^4.0.0-beta.2", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", "ethereum-cryptography": "0.1.3" }, "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-vm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz", - "integrity": "sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w==", - "peer": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "^4.0.0", - "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-evm": "^1.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", - "@nomicfoundation/ethereumjs-trie": "^5.0.0", - "@nomicfoundation/ethereumjs-tx": "^4.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "@types/async-eventemitter": "^0.2.1", - "async-eventemitter": "^0.2.4", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "functional-red-black-tree": "^1.0.1", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" + "node": ">=18" }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-vm/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } } }, "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.5.tgz", - "integrity": "sha512-+W5C/+5FHI2xBajUN9THSNc1UP6FUsA7LeLmfnaC9VMi/50/DEjjxd8OmizEXgV1Bjck7my4NVQLL1Ti39FkpA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz", + "integrity": "sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@types/chai-as-promised": "^7.1.3", "chai-as-promised": "^7.1.1", - "chalk": "^2.4.2", "deep-eql": "^4.0.1", "ordinal": "^1.0.3" }, @@ -4698,81 +4315,10 @@ "hardhat": "^2.9.4" } }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "peer": true - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.7.tgz", - "integrity": "sha512-X+3mNvn8B7BY5hpIaLO+TrfzWq12bpux+ajGGdmdcfC78NXmYmOZkAtiz1QZx1YIZGMS1LaXzPXyBExxKFpCaw==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", + "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", "peer": true, "dependencies": { "ethereumjs-util": "^7.1.4" @@ -4781,49 +4327,10 @@ "hardhat": "^2.9.5" } }, - "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "peer": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@nomicfoundation/hardhat-toolbox": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.0.tgz", - "integrity": "sha512-BoOPbzLQ1GArnBZd4Jz4IU8FY3RY4nUwpXlfymXwxlXNimngkPRJj7ivVNurD7igohEjf90v/Axn2M5WwAdCJQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.2.tgz", + "integrity": "sha512-vnN1AzxbvpSx9pfdRHbUzTRIXpMLPXnUlkW855VaDk6N1pwRaQ2gNzEmFAABk4lWf11E00PKwFd/q27HuwYrYg==", "peerDependencies": { "@ethersproject/abi": "^5.4.7", "@ethersproject/providers": "^5.4.7", @@ -4834,7 +4341,7 @@ "@typechain/ethers-v5": "^10.1.0", "@typechain/hardhat": "^6.1.2", "@types/chai": "^4.2.0", - "@types/mocha": "^9.1.0", + "@types/mocha": ">=9.1.0", "@types/node": ">=12.0.0", "chai": "^4.2.0", "ethers": "^5.4.7", @@ -4847,30 +4354,110 @@ } }, "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.0.tgz", - "integrity": "sha512-xGWAiVCGOycvGiP/qrlf9f9eOn7fpNbyJygcB0P21a1MDuVPlKt0Srp7rvtBEutYQ48ouYnRXm33zlRnlTOPHg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", "peer": true, "engines": { "node": ">= 12" }, "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.0", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.0", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.0", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.0", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.0", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.0", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.0", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.0", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.0", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.0" + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" } }, "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.0.tgz", - "integrity": "sha512-lR0AxK1x/MeKQ/3Pt923kPvwigmGX3OxeU5qNtQ9pj9iucgk4PzhbS3ruUeSpYhUxG50jN4RkIGwUMoev5lguw==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", "cpu": [ "x64" ], @@ -4884,9 +4471,9 @@ } }, "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.0.tgz", - "integrity": "sha512-A1he/8gy/JeBD3FKvmI6WUJrGrI5uWJNr5Xb9WdV+DK0F8msuOqpEByLlnTdLkXMwW7nSl3awvLezOs9xBHJEg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", "cpu": [ "x64" ], @@ -4899,10 +4486,58 @@ "node": ">= 10" } }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@nomiclabs/hardhat-ethers": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.1.tgz", - "integrity": "sha512-RHWYwnxryWR8hzRmU4Jm/q4gzvXpetUOJ4OPlwH2YARcDB+j79+yAYCwO0lN1SUOb4++oOTJEe6AWLEc42LIvg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz", + "integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==", "peer": true, "peerDependencies": { "ethers": "^5.0.0", @@ -4910,9 +4545,10 @@ } }, "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.4.tgz", - "integrity": "sha512-fw8JCfukf6MdIGoySRmSftlM2wBgoaSbWQZgiYfD/KTeaSFEWCdMpuPZcLSBXtwtnQyyWDs07Lo7fL8HSqtD2Q==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz", + "integrity": "sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==", + "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", @@ -4924,7 +4560,7 @@ "lodash": "^4.17.11", "semver": "^6.3.0", "table": "^6.8.0", - "undici": "^5.4.0" + "undici": "^5.14.0" }, "peerDependencies": { "hardhat": "^2.0.4" @@ -4980,20 +4616,6 @@ "node": ">=0.8.0" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/@nomiclabs/hardhat-etherscan/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -5024,11 +4646,15 @@ "node": ">=4" } }, + "node_modules/@openzeppelin/contracts": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", + "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==" + }, "node_modules/@parcel/watcher": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", - "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", - "hasInstallScript": true, + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -5043,24 +4669,24 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.3.0", - "@parcel/watcher-darwin-arm64": "2.3.0", - "@parcel/watcher-darwin-x64": "2.3.0", - "@parcel/watcher-freebsd-x64": "2.3.0", - "@parcel/watcher-linux-arm-glibc": "2.3.0", - "@parcel/watcher-linux-arm64-glibc": "2.3.0", - "@parcel/watcher-linux-arm64-musl": "2.3.0", - "@parcel/watcher-linux-x64-glibc": "2.3.0", - "@parcel/watcher-linux-x64-musl": "2.3.0", - "@parcel/watcher-win32-arm64": "2.3.0", - "@parcel/watcher-win32-ia32": "2.3.0", - "@parcel/watcher-win32-x64": "2.3.0" + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz", - "integrity": "sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", "cpu": [ "arm64" ], @@ -5077,9 +4703,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz", - "integrity": "sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", "cpu": [ "arm64" ], @@ -5096,9 +4722,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz", - "integrity": "sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", "cpu": [ "x64" ], @@ -5115,9 +4741,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz", - "integrity": "sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", "cpu": [ "x64" ], @@ -5134,9 +4760,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz", - "integrity": "sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", "cpu": [ "arm" ], @@ -5153,9 +4779,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz", - "integrity": "sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", "cpu": [ "arm64" ], @@ -5172,9 +4798,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz", - "integrity": "sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", "cpu": [ "arm64" ], @@ -5191,9 +4817,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", - "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", "cpu": [ "x64" ], @@ -5210,9 +4836,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", - "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", "cpu": [ "x64" ], @@ -5229,9 +4855,9 @@ } }, "node_modules/@parcel/watcher-wasm": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz", - "integrity": "sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.4.1.tgz", + "integrity": "sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==", "bundleDependencies": [ "napi-wasm" ], @@ -5254,9 +4880,9 @@ "license": "MIT" }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz", - "integrity": "sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", "cpu": [ "arm64" ], @@ -5273,9 +4899,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz", - "integrity": "sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", "cpu": [ "ia32" ], @@ -5292,9 +4918,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz", - "integrity": "sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", "cpu": [ "x64" ], @@ -5322,9 +4948,21 @@ } }, "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", - "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", @@ -5379,6 +5017,14 @@ "rollup": "^1.20.0 || ^2.0.0" } }, + "node_modules/@rollup/plugin-replace/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", @@ -5406,60 +5052,54 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", - "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz", + "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==", "dev": true }, "node_modules/@scure/base": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", - "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", + "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", "peer": true, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", - "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", + "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", "peer": true, "dependencies": { - "@noble/hashes": "~1.1.1", - "@noble/secp256k1": "~1.6.0", - "@scure/base": "~1.1.0" + "@noble/curves": "~1.3.0", + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", + "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", "peer": true, "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@sendgrid/client": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.0.tgz", - "integrity": "sha512-Kp2kKLr307v/HnR3uGuySt0AbCkeG7naDVOzfPOtWvKHVZIEHmKidQjJjzytVZNYWtoRdYgNfBw6GyUznGqa6w==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.1.tgz", + "integrity": "sha512-pg0gYhAdyQil3Aga7/xHVcZFpvDAjAQMNBgMy5njTSkjACoWHmpSi1nWBZM7nIH/ptcRNMpnBbm9B5EvQ8fX2w==", "dependencies": { "@sendgrid/helpers": "^8.0.0", - "axios": "^1.6.0" + "axios": "^1.6.4" }, "engines": { "node": ">=12.*" @@ -5477,11 +5117,11 @@ } }, "node_modules/@sendgrid/mail": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-8.1.0.tgz", - "integrity": "sha512-WkE0qwOrJMX9oQ+Xvtl3CdmucD6/iKw6go0VPoPieVlfXc43rbIf91wvtO6m7sKPnzxw3G+8rekBgXibmP4S8Q==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-8.1.1.tgz", + "integrity": "sha512-tNtmgWLtBA7ZxKtPuEGOaIdEZP1vZSXsj5zg9iuoDBPVj/fNz+7LWzndvTcKumHk5eaDrS0UPXJqBm61m3+H1A==", "dependencies": { - "@sendgrid/client": "^8.1.0", + "@sendgrid/client": "^8.1.1", "@sendgrid/helpers": "^8.0.0" }, "engines": { @@ -5504,12 +5144,6 @@ "node": ">=6" } }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, "node_modules/@sentry/hub": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", @@ -5524,12 +5158,6 @@ "node": ">=6" } }, - "node_modules/@sentry/hub/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, "node_modules/@sentry/minimal": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", @@ -5544,12 +5172,6 @@ "node": ">=6" } }, - "node_modules/@sentry/minimal/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, "node_modules/@sentry/node": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", @@ -5570,12 +5192,6 @@ "node": ">=6" } }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, "node_modules/@sentry/tracing": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", @@ -5592,12 +5208,6 @@ "node": ">=6" } }, - "node_modules/@sentry/tracing/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, "node_modules/@sentry/types": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", @@ -5620,12 +5230,6 @@ "node": ">=6" } }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "peer": true - }, "node_modules/@solana/buffer-layout": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", @@ -5638,15 +5242,15 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.87.6", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.87.6.tgz", - "integrity": "sha512-LkqsEBgTZztFiccZZXnawWa8qNCATEqE97/d0vIwjTclmVlc8pBpD1DmjfVHtZ1HS5fZorFlVhXfpwnCNDZfyg==", + "version": "1.90.1", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.90.1.tgz", + "integrity": "sha512-BaopDf3TN54N9/T1iILu+Fz2gthIZzi+6X2A7bb0FWvGlwI/78iKRb2WjSnCfrHmMbWVLJR5n/pmXteezMXgVw==", "dependencies": { - "@babel/runtime": "^7.23.2", + "@babel/runtime": "^7.23.4", "@noble/curves": "^1.2.0", - "@noble/hashes": "^1.3.1", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.3.0", + "@noble/hashes": "^1.3.3", + "@solana/buffer-layout": "^4.0.1", + "agentkeepalive": "^4.5.0", "bigint-buffer": "^1.1.5", "bn.js": "^5.2.1", "borsh": "^0.7.0", @@ -5654,22 +5258,11 @@ "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", "jayson": "^4.1.0", - "node-fetch": "^2.6.12", + "node-fetch": "^2.7.0", "rpc-websockets": "^7.5.1", "superstruct": "^0.14.2" } }, - "node_modules/@solana/web3.js/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@solidity-parser/parser": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", @@ -5836,15 +5429,12 @@ "string.prototype.matchall": "^4.0.6" } }, - "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" } }, "node_modules/@swc/helpers": { @@ -5855,6 +5445,11 @@ "tslib": "^2.4.0" } }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -5879,15 +5474,15 @@ "peer": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "peer": true }, "node_modules/@typechain/ethers-v5": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", - "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz", + "integrity": "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==", "peer": true, "dependencies": { "lodash": "^4.17.15", @@ -5895,7 +5490,6 @@ }, "peerDependencies": { "@ethersproject/abi": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", "@ethersproject/providers": "^5.0.0", "ethers": "^5.1.3", "typechain": "^8.1.1", @@ -5903,9 +5497,9 @@ } }, "node_modules/@typechain/hardhat": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.5.tgz", - "integrity": "sha512-lg7LW4qDZpxFMknp3Xool61Fg6Lays8F8TXdFGBG+MxyYcYU5795P1U2XdStuzGq9S2Dzdgh+1jGww9wvZ6r4Q==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.6.tgz", + "integrity": "sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA==", "peer": true, "dependencies": { "fs-extra": "^9.1.0" @@ -5913,7 +5507,7 @@ "peerDependencies": { "@ethersproject/abi": "^5.4.7", "@ethersproject/providers": "^5.4.7", - "@typechain/ethers-v5": "^10.2.0", + "@typechain/ethers-v5": "^10.2.1", "ethers": "^5.4.7", "hardhat": "^2.9.9", "typechain": "^8.1.1" @@ -5947,39 +5541,33 @@ } }, "node_modules/@typechain/hardhat/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "peer": true, "engines": { "node": ">= 10.0.0" } }, - "node_modules/@types/async-eventemitter": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz", - "integrity": "sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==", - "peer": true - }, "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", "peer": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", + "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", "peer": true }, "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "peer": true, "dependencies": { "@types/chai": "*" @@ -6011,9 +5599,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "8.56.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", "peer": true, "dependencies": { "@types/estree": "*", @@ -6021,9 +5609,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "peer": true, "dependencies": { "@types/eslint": "*", @@ -6031,9 +5619,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", - "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "peer": true }, "node_modules/@types/form-data": { @@ -6055,18 +5643,18 @@ } }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz", - "integrity": "sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -6092,9 +5680,9 @@ "dev": true }, "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", "peer": true }, "node_modules/@types/ms": { @@ -6103,9 +5691,12 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "18.11.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.14.tgz", - "integrity": "sha512-0KXV57tENYmmJMl+FekeW9V3O/rlcqGQQJ/hNh9r8pKIj304pskWuEd8fCyNT86g/TpO0gcOTiLzsHLEURFMIQ==" + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", @@ -6114,34 +5705,34 @@ "dev": true }, "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", "peer": true }, "node_modules/@types/prop-types": { - "version": "15.7.9", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", - "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.12", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==", "peer": true }, "node_modules/@types/react": { - "version": "18.2.36", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.36.tgz", - "integrity": "sha512-o9XFsHYLLZ4+sb9CWUYwHqFVoG61SesydF353vFMMsQziiyRu8np4n2OYMUSDZ8XuImxDr9c5tR7gidlH29Vnw==", + "version": "18.2.62", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.62.tgz", + "integrity": "sha512-l3f57BbaEKP0xcFzf+5qRG8/PXykZiuVM6eEoPtqBPCp6dxO3HhDkLIgIyXPhPKNAeXn3KO2pEaNgzaEo/asaw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -6157,27 +5748,27 @@ } }, "node_modules/@types/scheduler": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", - "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, "node_modules/@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" }, "node_modules/@types/whatwg-url": { "version": "8.2.2", @@ -6197,15 +5788,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz", - "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.9.1", - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/typescript-estree": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -6225,13 +5816,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz", - "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6242,9 +5833,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", - "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6255,16 +5846,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", - "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -6281,33 +5873,37 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", - "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -6325,62 +5921,46 @@ "dev": true }, "node_modules/@vue/compiler-core": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", - "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", "dependencies": { - "@babel/parser": "^7.23.5", - "@vue/shared": "3.3.13", + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.21", + "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", - "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", + "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", "dependencies": { - "@vue/compiler-core": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz", - "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==", - "dependencies": { - "@babel/parser": "^7.23.5", - "@vue/compiler-core": "3.3.13", - "@vue/compiler-dom": "3.3.13", - "@vue/compiler-ssr": "3.3.13", - "@vue/reactivity-transform": "3.3.13", - "@vue/shared": "3.3.13", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", + "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5", - "postcss": "^8.4.32", + "magic-string": "^0.30.7", + "postcss": "^8.4.35", "source-map-js": "^1.0.2" } }, - "node_modules/@vue/compiler-sfc/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@vue/compiler-sfc/node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@vue/compiler-sfc/node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", @@ -6405,85 +5985,57 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", - "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", + "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", "dependencies": { - "@vue/compiler-dom": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-dom": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/reactivity": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.13.tgz", - "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==", - "dependencies": { - "@vue/shared": "3.3.13" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz", - "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==", - "dependencies": { - "@babel/parser": "^7.23.5", - "@vue/compiler-core": "3.3.13", - "@vue/shared": "3.3.13", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.5" - } - }, - "node_modules/@vue/reactivity-transform/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@vue/reactivity-transform/node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", + "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@vue/shared": "3.4.21" } }, "node_modules/@vue/runtime-core": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.13.tgz", - "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", + "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", "dependencies": { - "@vue/reactivity": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/reactivity": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz", - "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", + "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", "dependencies": { - "@vue/runtime-core": "3.3.13", - "@vue/shared": "3.3.13", + "@vue/runtime-core": "3.4.21", + "@vue/shared": "3.4.21", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.13.tgz", - "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", + "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", "dependencies": { - "@vue/compiler-ssr": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21" }, "peerDependencies": { - "vue": "3.3.13" + "vue": "3.4.21" } }, "node_modules/@vue/shared": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", - "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", + "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==" }, "node_modules/@walletconnect/browser-utils": { "version": "1.8.0", @@ -6497,15 +6049,11 @@ "detect-browser": "5.2.0" } }, - "node_modules/@walletconnect/browser-utils/node_modules/@walletconnect/safe-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz", - "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" - }, "node_modules/@walletconnect/client": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.8.0.tgz", "integrity": "sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==", + "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/", "dependencies": { "@walletconnect/core": "^1.8.0", "@walletconnect/iso-crypto": "^1.8.0", @@ -6536,43 +6084,121 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/crypto/node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" - }, - "node_modules/@walletconnect/crypto/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/encoding": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.2.tgz", + "integrity": "sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==", + "dependencies": { + "is-typedarray": "1.0.0", + "tslib": "1.14.1", + "typedarray-to-buffer": "3.1.5" + } + }, + "node_modules/@walletconnect/environment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", + "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/ethereum-provider": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.11.0.tgz", + "integrity": "sha512-YrTeHVjuSuhlUw7SQ6xBJXDuJ6iAC+RwINm9nVhoKYJSHAy3EVSJZOofMKrnecL0iRMtD29nj57mxAInIBRuZA==", + "dependencies": { + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "^1.0.13", + "@walletconnect/jsonrpc-types": "^1.0.3", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/modal": "^2.6.2", + "@walletconnect/sign-client": "2.11.0", + "@walletconnect/types": "2.11.0", + "@walletconnect/universal-provider": "2.11.0", + "@walletconnect/utils": "2.11.0", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/types": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.0.tgz", + "integrity": "sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==", + "dependencies": { + "@walletconnect/events": "^1.0.1", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/keyvaluestorage": "^1.1.1", + "@walletconnect/logger": "^2.0.1", + "events": "^3.3.0" + } }, - "node_modules/@walletconnect/encoding": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.2.tgz", - "integrity": "sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==", + "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/utils": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.0.tgz", + "integrity": "sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==", "dependencies": { - "is-typedarray": "1.0.0", - "tslib": "1.14.1", - "typedarray-to-buffer": "3.1.5" + "@stablelib/chacha20poly1305": "1.0.1", + "@stablelib/hkdf": "1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/sha256": "1.0.1", + "@stablelib/x25519": "^1.0.3", + "@walletconnect/relay-api": "^1.0.9", + "@walletconnect/safe-json": "^1.0.2", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.11.0", + "@walletconnect/window-getters": "^1.0.1", + "@walletconnect/window-metadata": "^1.0.1", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "^3.1.0" } }, - "node_modules/@walletconnect/encoding/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "dependencies": { + "tslib": "1.14.1" + } }, - "node_modules/@walletconnect/environment": { + "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/window-metadata": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", - "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", "dependencies": { + "@walletconnect/window-getters": "^1.0.1", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/environment/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/ethereum-provider/node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/@walletconnect/ethereum-provider/node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/@walletconnect/events": { "version": "1.0.1", @@ -6583,11 +6209,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/events/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/heartbeat": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz", @@ -6598,11 +6219,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/heartbeat/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/http-connection": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.8.0.tgz", @@ -6635,10 +6251,13 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } }, "node_modules/@walletconnect/jsonrpc-provider": { "version": "1.0.13", @@ -6650,10 +6269,13 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/jsonrpc-provider/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/jsonrpc-provider/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } }, "node_modules/@walletconnect/jsonrpc-types": { "version": "1.0.3", @@ -6664,11 +6286,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/jsonrpc-types/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/jsonrpc-utils": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", @@ -6679,11 +6296,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/jsonrpc-ws-connection": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", @@ -6695,6 +6307,34 @@ "ws": "^7.5.1" } }, + "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@walletconnect/keyvaluestorage": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", @@ -6713,6 +6353,14 @@ } } }, + "node_modules/@walletconnect/keyvaluestorage/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } + }, "node_modules/@walletconnect/logger": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.0.1.tgz", @@ -6722,11 +6370,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/logger/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/mobile-registry": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz", @@ -6761,27 +6404,78 @@ "qrcode": "1.5.3" } }, - "node_modules/@walletconnect/modal-ui/node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "node_modules/@walletconnect/modal-ui/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "node_modules/@walletconnect/modal-ui/node_modules/motion": { - "version": "10.16.2", - "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", - "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", + "node_modules/@walletconnect/modal-ui/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dependencies": { - "@motionone/animation": "^10.15.1", - "@motionone/dom": "^10.16.2", - "@motionone/svelte": "^10.16.2", - "@motionone/types": "^10.15.1", - "@motionone/utils": "^10.15.1", - "@motionone/vue": "^10.16.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@walletconnect/modal-ui/node_modules/pngjs": { @@ -6789,30 +6483,82 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", "engines": { - "node": ">=10.13.0" + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/@walletconnect/modal-ui/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@walletconnect/modal-ui/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "node_modules/@walletconnect/modal-ui/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=6" } }, "node_modules/@walletconnect/qrcode-modal": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz", "integrity": "sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==", + "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/", "dependencies": { "@walletconnect/browser-utils": "^1.8.0", "@walletconnect/mobile-registry": "^1.4.0", @@ -6833,11 +6579,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/randombytes/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/relay-api": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.9.tgz", @@ -6847,11 +6588,6 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/relay-api/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/relay-auth": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz", @@ -6865,12 +6601,60 @@ "uint8arrays": "^3.0.0" } }, - "node_modules/@walletconnect/relay-auth/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/relay-auth/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } }, "node_modules/@walletconnect/safe-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz", + "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" + }, + "node_modules/@walletconnect/sign-client": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.11.0.tgz", + "integrity": "sha512-H2ukscibBS+6WrzQWh+WyVBqO5z4F5et12JcwobdwgHnJSlqIoZxqnUYYWNCI5rUR5UKsKWaUyto4AE9N5dw4Q==", + "dependencies": { + "@walletconnect/core": "2.11.0", + "@walletconnect/events": "^1.0.1", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "^2.0.1", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.11.0", + "@walletconnect/utils": "2.11.0", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.11.0.tgz", + "integrity": "sha512-2Tjp5BCevI7dbmqo/OrCjX4tqgMqwJNQLlQAlphqPfvwlF9+tIu6pGcVbSN3U9zyXzWIZCeleqEaWUeSeET4Ew==", + "dependencies": { + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-provider": "1.0.13", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.14", + "@walletconnect/keyvaluestorage": "^1.1.1", + "@walletconnect/logger": "^2.0.1", + "@walletconnect/relay-api": "^1.0.9", + "@walletconnect/relay-auth": "^1.0.4", + "@walletconnect/safe-json": "^1.0.2", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.11.0", + "@walletconnect/utils": "2.11.0", + "events": "^3.3.0", + "isomorphic-unfetch": "3.1.0", + "lodash.isequal": "4.5.0", + "uint8arrays": "^3.1.0" + } + }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/safe-json": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", @@ -6878,10 +6662,78 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/safe-json/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.0.tgz", + "integrity": "sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==", + "dependencies": { + "@walletconnect/events": "^1.0.1", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/keyvaluestorage": "^1.1.1", + "@walletconnect/logger": "^2.0.1", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/utils": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.0.tgz", + "integrity": "sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==", + "dependencies": { + "@stablelib/chacha20poly1305": "1.0.1", + "@stablelib/hkdf": "1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/sha256": "1.0.1", + "@stablelib/x25519": "^1.0.3", + "@walletconnect/relay-api": "^1.0.9", + "@walletconnect/safe-json": "^1.0.2", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.11.0", + "@walletconnect/window-getters": "^1.0.1", + "@walletconnect/window-metadata": "^1.0.1", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "^3.1.0" + } + }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "dependencies": { + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/sign-client/node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/@walletconnect/sign-client/node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/@walletconnect/socket-transport": { "version": "1.8.0", @@ -6893,6 +6745,26 @@ "ws": "7.5.3" } }, + "node_modules/@walletconnect/socket-transport/node_modules/ws": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@walletconnect/time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", @@ -6901,41 +6773,99 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/time/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@walletconnect/types": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz", - "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==" + "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==", + "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/" }, - "node_modules/@walletconnect/utils": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.8.0.tgz", - "integrity": "sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==", + "node_modules/@walletconnect/universal-provider": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.11.0.tgz", + "integrity": "sha512-zgJv8jDvIMP4Qse/D9oIRXGdfoNqonsrjPZanQ/CHNe7oXGOBiQND2IIeX+tS0H7uNA0TPvctljCLiIN9nw4eA==", "dependencies": { - "@walletconnect/browser-utils": "^1.8.0", - "@walletconnect/encoding": "^1.0.1", - "@walletconnect/jsonrpc-utils": "^1.0.3", - "@walletconnect/types": "^1.8.0", - "bn.js": "4.11.8", - "js-sha3": "0.8.0", - "query-string": "6.13.5" + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "1.0.13", + "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/jsonrpc-utils": "^1.0.7", + "@walletconnect/logger": "^2.0.1", + "@walletconnect/sign-client": "2.11.0", + "@walletconnect/types": "2.11.0", + "@walletconnect/utils": "2.11.0", + "events": "^3.3.0" } }, - "node_modules/@walletconnect/utils/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "dependencies": { + "tslib": "1.14.1" + } }, - "node_modules/@walletconnect/utils/node_modules/query-string": { - "version": "6.13.5", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz", - "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==", + "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/types": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.0.tgz", + "integrity": "sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==", "dependencies": { - "decode-uri-component": "^0.2.0", + "@walletconnect/events": "^1.0.1", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/keyvaluestorage": "^1.1.1", + "@walletconnect/logger": "^2.0.1", + "events": "^3.3.0" + } + }, + "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/utils": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.0.tgz", + "integrity": "sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==", + "dependencies": { + "@stablelib/chacha20poly1305": "1.0.1", + "@stablelib/hkdf": "1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/sha256": "1.0.1", + "@stablelib/x25519": "^1.0.3", + "@walletconnect/relay-api": "^1.0.9", + "@walletconnect/safe-json": "^1.0.2", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.11.0", + "@walletconnect/window-getters": "^1.0.1", + "@walletconnect/window-metadata": "^1.0.1", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "^3.1.0" + } + }, + "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "dependencies": { + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "dependencies": { + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" + } + }, + "node_modules/@walletconnect/universal-provider/node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/@walletconnect/universal-provider/node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" }, @@ -6946,6 +6876,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@walletconnect/utils": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.8.0.tgz", + "integrity": "sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==", + "dependencies": { + "@walletconnect/browser-utils": "^1.8.0", + "@walletconnect/encoding": "^1.0.1", + "@walletconnect/jsonrpc-utils": "^1.0.3", + "@walletconnect/types": "^1.8.0", + "bn.js": "4.11.8", + "js-sha3": "0.8.0", + "query-string": "6.13.5" + } + }, + "node_modules/@walletconnect/utils/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, "node_modules/@walletconnect/web3-provider": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.8.0.tgz", @@ -6974,38 +6923,39 @@ } }, "node_modules/@web3modal/common": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/common/-/common-3.5.1.tgz", - "integrity": "sha512-OBm8ugfK7VoVSIJdZRhcxGFU3yNoHnCVxrOxnJ/+cBnGT/hariWtGOIaGJXaaj+HHWm9sRDsk8iMHS/Nil+lHw==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/common/-/common-3.5.7.tgz", + "integrity": "sha512-QUT9VP7GLTbJB+a8DDdLqyi97E7J/VAgFqCZrtO4rTnilI/0CaDP5WkU1sX/O5AJO5CsLfJMxUmBKxppy6kl2g==", "dependencies": { "dayjs": "1.11.10" } }, "node_modules/@web3modal/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-3.5.1.tgz", - "integrity": "sha512-lJrUbDSU36ejeoUynq+7WoSeDgb50m+Hgj0QnnnB2eG59dZ+2ls5PuEPLsKy/1O4sUyHoUpSqjbd3jUt5ic68g==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-3.5.7.tgz", + "integrity": "sha512-RCqhydtqZRVrOtC5E88s97cJcRNcD3euBatu0Z+TXUvuK52p9JHC7Yq2j/E7rDS4dTa0hgzqNOw3/pYScoLfiQ==", "dependencies": { - "@web3modal/common": "3.5.1", + "@web3modal/common": "3.5.7", + "@web3modal/wallet": "3.5.7", "valtio": "1.11.2" } }, "node_modules/@web3modal/ethers5": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/ethers5/-/ethers5-3.5.1.tgz", - "integrity": "sha512-wQVwddwkTs8xPwrNQwOz/zF7bUONF0+2YWEckhWexMQkcJ6CVGMZRNb8OziwPrryScj+Zrak7GWsTkxv1yCX+g==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/ethers5/-/ethers5-3.5.7.tgz", + "integrity": "sha512-qCBYxWcIpIgkEw1mA0PqEVG2dsmPxoIJX0aCF8LCkW7AHHJtDGxlW6hPS3qRRdl7s6idVgGC+JV5esdQX+qt5A==", "dependencies": { "@coinbase/wallet-sdk": "3.7.2", - "@walletconnect/ethereum-provider": "2.10.6", - "@web3modal/polyfills": "3.5.1", - "@web3modal/scaffold": "3.5.1", - "@web3modal/scaffold-react": "3.5.1", - "@web3modal/scaffold-utils": "3.5.1", - "@web3modal/scaffold-vue": "3.5.1", + "@walletconnect/ethereum-provider": "2.11.0", + "@web3modal/polyfills": "3.5.7", + "@web3modal/scaffold": "3.5.7", + "@web3modal/scaffold-react": "3.5.7", + "@web3modal/scaffold-utils": "3.5.7", + "@web3modal/scaffold-vue": "3.5.7", "valtio": "1.11.2" }, "optionalDependencies": { - "@web3modal/siwe": "3.5.0-6a05dc24", + "@web3modal/siwe": "3.5.7", "react": ">=17", "react-dom": ">=17", "vue": ">=3" @@ -7032,198 +6982,242 @@ } } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/core": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.10.6.tgz", - "integrity": "sha512-Z4vh4ZdfcoQjgPEOxeuF9HUZCVLtV3MgRbS/awLIj/omDrFnOwlBhxi5Syr4Y8muVGC0ocRetQYHae0/gX5crQ==", + "node_modules/@web3modal/polyfills": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/polyfills/-/polyfills-3.5.7.tgz", + "integrity": "sha512-B0lyHcXOsJfd70HEAi+6uiCDhoIu5am76aV+0E2UrQ4mAFBhH7zJlVeLdPHZ/phfk4y9Eq9kQgwJC2dk2SMIVQ==", "dependencies": { - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-provider": "1.0.13", - "@walletconnect/jsonrpc-types": "1.0.3", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.14", - "@walletconnect/keyvaluestorage": "^1.1.1", - "@walletconnect/logger": "^2.0.1", - "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/relay-auth": "^1.0.4", - "@walletconnect/safe-json": "^1.0.2", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.10.6", - "@walletconnect/utils": "2.10.6", - "events": "^3.3.0", - "lodash.isequal": "4.5.0", - "uint8arrays": "^3.1.0" + "buffer": "6.0.3" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/ethereum-provider": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.6.tgz", - "integrity": "sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==", + "node_modules/@web3modal/scaffold": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold/-/scaffold-3.5.7.tgz", + "integrity": "sha512-/yQwXg2qUX1srNmoqmVAgqa8INNi2ObR9BaaNo/UFzRn02qMQsV9BQfkTrp2lC91HPUGewM833eKQw20+sUfTg==", "dependencies": { - "@walletconnect/jsonrpc-http-connection": "^1.0.7", - "@walletconnect/jsonrpc-provider": "^1.0.13", - "@walletconnect/jsonrpc-types": "^1.0.3", - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/modal": "^2.4.3", - "@walletconnect/sign-client": "2.10.6", - "@walletconnect/types": "2.10.6", - "@walletconnect/universal-provider": "2.10.6", - "@walletconnect/utils": "2.10.6", - "events": "^3.3.0" + "@web3modal/common": "3.5.7", + "@web3modal/core": "3.5.7", + "@web3modal/ui": "3.5.7", + "lit": "3.1.0" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/sign-client": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.10.6.tgz", - "integrity": "sha512-EvUWjaZBQu2yKnH5/5F2qzbuiIuUN9ZgrNKgvXkw5z1Dq5RJCks0S9/MFlKH/ZSGqXnLl7uAzBXtoX4sMgbCMA==", + "node_modules/@web3modal/scaffold-react": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold-react/-/scaffold-react-3.5.7.tgz", + "integrity": "sha512-t2mzqPWpxes5SkwAsXwcE+2TEXfnS3x+cc1d8VKevvz2/R9Z9Kf14RY/2hKHeKN4W3E5KFftHuAepUZleKgYVQ==", "dependencies": { - "@walletconnect/core": "2.10.6", - "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "^2.0.1", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.10.6", - "@walletconnect/utils": "2.10.6", - "events": "^3.3.0" + "@web3modal/scaffold": "3.5.7" + }, + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/types": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.10.6.tgz", - "integrity": "sha512-WgHfiTG1yakmxheaBRiXhUdEmgxwrvsAdOIWaMf/spvrzVKYh6sHI3oyEEky5qj5jjiMiyQBeB57QamzCotbcQ==", + "node_modules/@web3modal/scaffold-utils": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold-utils/-/scaffold-utils-3.5.7.tgz", + "integrity": "sha512-pRa47Ev1VPAqOhkH3H1N+NkziCuTB6iJ2I7tbEe/zKSdSN6CuNeYEwhcwukagGk1yV00He4MsLhIDz54tAs3Fg==", "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-types": "1.0.3", - "@walletconnect/keyvaluestorage": "^1.1.1", - "@walletconnect/logger": "^2.0.1", - "events": "^3.3.0" + "@web3modal/polyfills": "3.5.7", + "@web3modal/scaffold": "3.5.7", + "valtio": "1.11.2" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/universal-provider": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.10.6.tgz", - "integrity": "sha512-CEivusqqoD31BhCTKp08DnrccfGjwD9MFjZs5BNRorDteRFE8zVm9LmP6DSiNJCw82ZajGlZThggLQ/BAATfwA==", + "node_modules/@web3modal/scaffold-vue": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold-vue/-/scaffold-vue-3.5.7.tgz", + "integrity": "sha512-WIS4tXauPMTGD+nUbemc+lhR3hiRh51yICm6hkbaW4Agf6e0rKpCiqtIAqLJL+hhMLNu6ZJ6gWjCOSym4hb9wQ==", "dependencies": { - "@walletconnect/jsonrpc-http-connection": "^1.0.7", - "@walletconnect/jsonrpc-provider": "1.0.13", - "@walletconnect/jsonrpc-types": "^1.0.2", - "@walletconnect/jsonrpc-utils": "^1.0.7", - "@walletconnect/logger": "^2.0.1", - "@walletconnect/sign-client": "2.10.6", - "@walletconnect/types": "2.10.6", - "@walletconnect/utils": "2.10.6", - "events": "^3.3.0" + "@web3modal/scaffold": "3.5.7" + }, + "peerDependencies": { + "vue": ">=3" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/utils": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.10.6.tgz", - "integrity": "sha512-oRsWWhN2+hi3aiDXrQEOfysz6FHQJGXLsNQPVt+WIBJplO6Szmdau9dbleD88u1iiT4GKPqE0R9FOYvvPm1H/w==", + "node_modules/@web3modal/scaffold/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", "dependencies": { - "@stablelib/chacha20poly1305": "1.0.1", - "@stablelib/hkdf": "1.0.1", - "@stablelib/random": "^1.0.2", - "@stablelib/sha256": "1.0.1", - "@stablelib/x25519": "^1.0.3", - "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/safe-json": "^1.0.2", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.10.6", - "@walletconnect/window-getters": "^1.0.1", - "@walletconnect/window-metadata": "^1.0.1", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "^3.1.0" + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "node_modules/@web3modal/scaffold/node_modules/lit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", "dependencies": { - "tslib": "1.14.1" + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" } }, - "node_modules/@web3modal/ethers5/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@web3modal/scaffold/node_modules/lit-element": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", + "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" } }, - "node_modules/@web3modal/ethers5/node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + "node_modules/@web3modal/scaffold/node_modules/lit-html": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", + "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } }, - "node_modules/@web3modal/ethers5/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@web3modal/siwe": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/siwe/-/siwe-3.5.7.tgz", + "integrity": "sha512-dV0yhJYtKq4VxKSSlTxpFgVice0qhcTPfTxrD9Z8u8O5QYw4gv8S7g6dvtFCvTce4DlHSlqNM9MZqeViB6BHpg==", + "optional": true, + "dependencies": { + "@web3modal/core": "3.5.7", + "@web3modal/scaffold-utils": "3.5.7" + }, + "optionalDependencies": { + "react": ">=17", + "react-dom": ">=17", + "vue": ">=3" + }, + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17", + "vue": ">=3" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "vue": { + "optional": true + } + } }, - "node_modules/@web3modal/polyfills": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/polyfills/-/polyfills-3.5.1.tgz", - "integrity": "sha512-vBfwmFpeRXxrm6b9DPlfN2ntOCojs7CxBP9696wYir2/C1TbrjxvDbO43oiU9resiAmGqGBm39cwpYz2gDni+w==", + "node_modules/@web3modal/ui": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-3.5.7.tgz", + "integrity": "sha512-tXoRq9vZro/5oGYQtGXnq5KZ3YB2NuTNVKJ1evSq6WfHFcQr3AxinWfaJaWryLgkCmvMJXGvL6oSUWpodgTi5Q==", "dependencies": { - "buffer": "6.0.3" + "lit": "3.1.0", + "qrcode": "1.5.3" } }, - "node_modules/@web3modal/scaffold": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold/-/scaffold-3.5.1.tgz", - "integrity": "sha512-0lfjqoGs5atqEC0I+Gs4GlxYR6Ud7c3tpIw7zcraQ45ctFDQWnHffxZsCjO67WQvmeyRs96QlG9bLT+nO1qxXQ==", + "node_modules/@web3modal/ui/node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", "dependencies": { - "@web3modal/common": "3.5.1", - "@web3modal/core": "3.5.1", - "@web3modal/ui": "3.5.1", - "lit": "3.1.0" + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, - "node_modules/@web3modal/scaffold-react": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold-react/-/scaffold-react-3.5.1.tgz", - "integrity": "sha512-oF+QGc2I9nNEwwaRGKgqqCG48baNQL/g/Pgv1qRpp1E08kohYLgRF7KNE1IYtSQ/kq+Kejm+K5mQHSX7mPVBOw==", + "node_modules/@web3modal/ui/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@web3modal/ui/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@web3modal/ui/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@web3modal/ui/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dependencies": { - "@web3modal/scaffold": "3.5.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "peerDependencies": { - "react": ">=17", - "react-dom": ">=17" + "engines": { + "node": ">=8" } }, - "node_modules/@web3modal/scaffold-utils": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold-utils/-/scaffold-utils-3.5.1.tgz", - "integrity": "sha512-EUEqSaIQeuPc6+UdZfwtTmEQVypitJTeb0RRSrzcoVUh4UA22o5mcrt1IRUgKM7WtUvAKKPEHbvl+fc3Qow4ig==", + "node_modules/@web3modal/ui/node_modules/lit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", "dependencies": { - "@web3modal/polyfills": "3.5.1", - "@web3modal/scaffold": "3.5.1", - "valtio": "1.11.2" + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" } }, - "node_modules/@web3modal/scaffold-vue": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold-vue/-/scaffold-vue-3.5.1.tgz", - "integrity": "sha512-4Xrc3YoQJbY4oOJGKfh9ENxFIB/R0DE1Hq0p5O6S56/VO3hxYAmp8eXfFDqeo1qAJkPAcII2FdMnnTIfj2TGaQ==", + "node_modules/@web3modal/ui/node_modules/lit-element": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", + "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" + } + }, + "node_modules/@web3modal/ui/node_modules/lit-html": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", + "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/@web3modal/ui/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { - "@web3modal/scaffold": "3.5.1" + "p-locate": "^4.1.0" }, - "peerDependencies": { - "vue": ">=3" + "engines": { + "node": ">=8" } }, - "node_modules/@web3modal/ui": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-3.5.1.tgz", - "integrity": "sha512-sfj0DL6fBdnYEeENV5FvebUzCnx+blch3cRG1lIorCGz9/nB4gBpxNjBFl6ONF7AgekMnnn109JpTqdlmO7Wig==", + "node_modules/@web3modal/ui/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { - "lit": "3.1.0", - "qrcode": "1.5.3" + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@web3modal/ui/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@web3modal/ui/node_modules/pngjs": { @@ -7248,7 +7242,66 @@ "qrcode": "bin/qrcode" }, "engines": { - "node": ">=10.13.0" + "node": ">=10.13.0" + } + }, + "node_modules/@web3modal/ui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@web3modal/ui/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/@web3modal/ui/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@web3modal/ui/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@web3modal/wallet": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@web3modal/wallet/-/wallet-3.5.7.tgz", + "integrity": "sha512-jJq7q2N3KImLDZt5E5vJTIeVsJTf7Gc4YBaA9/pBrv/k/tKFrGfZKloHm+sklLGtFVn0j2IeEx136DnXxmitUg==", + "dependencies": { + "zod": "3.22.4" } }, "node_modules/@webassemblyjs/ast": { @@ -7415,59 +7468,6 @@ "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "peer": true }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "peer": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "peer": true, - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/abstract-level/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/abstract-leveldown": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", @@ -7477,9 +7477,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "bin": { "acorn": "bin/acorn" }, @@ -7506,23 +7506,14 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "peer": true, "engines": { "node": ">=0.4.0" } }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -7533,9 +7524,9 @@ } }, "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" }, "node_modules/agent-base": { "version": "6.0.2", @@ -7574,13 +7565,13 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { @@ -7588,14 +7579,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -7606,6 +7589,15 @@ "node": ">=0.4.2" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "peer": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -7687,25 +7679,6 @@ "node": ">= 8" } }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -7736,12 +7709,15 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7788,17 +7764,55 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", + "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7843,30 +7857,43 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { + "node_modules/array.prototype.toreversed": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -7917,15 +7944,24 @@ } }, "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" }, "node_modules/async-eventemitter": { "version": "0.2.4", @@ -7956,6 +7992,11 @@ "tslib": "^2.0.0" } }, + "node_modules/async-mutex/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, "node_modules/asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -7987,9 +8028,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -8011,20 +8055,20 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "node_modules/axe-core": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz", - "integrity": "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -8039,9 +8083,9 @@ } }, "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" }, "node_modules/babel-loader": { "version": "8.3.0", @@ -8049,107 +8093,46 @@ "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/babel-loader/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" }, "engines": { - "node": ">=8" + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/babel-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { - "find-up": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/babel-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" } }, + "node_modules/babel-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/babel-loader/node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -8167,25 +8150,17 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/babel-loader/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { @@ -8197,48 +8172,43 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.5.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-styled-components": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", - "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", - "picomatch": "^2.3.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" }, "peerDependencies": { "styled-components": ">= 2" } }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" - }, "node_modules/backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", @@ -8255,6 +8225,39 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-events": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.1.tgz", + "integrity": "sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-os": "^2.0.0", + "bare-path": "^2.0.0", + "streamx": "^2.13.0" + } + }, + "node_modules/bare-os": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz", + "integrity": "sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", + "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -8320,27 +8323,6 @@ "node": ">= 10.0.0" } }, - "node_modules/bigint-crypto-utils": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz", - "integrity": "sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw==", - "peer": true, - "dependencies": { - "bigint-mod-arith": "^3.1.0" - }, - "engines": { - "node": ">=10.4.0" - } - }, - "node_modules/bigint-mod-arith": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz", - "integrity": "sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ==", - "peer": true, - "engines": { - "node": ">=10.4.0" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -8425,6 +8407,28 @@ "text-encoding-utf-8": "^1.0.2" } }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "peer": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8450,18 +8454,6 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, - "node_modules/browser-level": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", - "peer": true, - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.1", - "module-error": "^1.0.2", - "run-parallel-limit": "^1.1.0" - } - }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -8482,9 +8474,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -8500,9 +8492,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -8633,14 +8625,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8702,9 +8708,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001559", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz", - "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==", + "version": "1.0.30001593", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz", + "integrity": "sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==", "funding": [ { "type": "opencollective", @@ -8725,15 +8731,6 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/cbor": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", @@ -8747,18 +8744,18 @@ } }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "peer": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" @@ -8801,10 +8798,13 @@ } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "peer": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -8818,15 +8818,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8839,6 +8833,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -8884,30 +8881,13 @@ } }, "node_modules/citty": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.5.tgz", - "integrity": "sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", "dependencies": { "consola": "^3.2.3" } }, - "node_modules/classic-level": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz", - "integrity": "sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==", - "hasInstallScript": true, - "peer": true, - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.0", - "module-error": "^1.0.1", - "napi-macros": "~2.0.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -8931,6 +8911,18 @@ "webpack": ">=4.0.0 <6.0.0" } }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -8956,73 +8948,197 @@ "node": ">=4" } }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/cli-table3/node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "peer": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "peer": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clipboardy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", + "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", + "dependencies": { + "execa": "^8.0.1", + "is-wsl": "^3.1.0", + "is64bit": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/clipboardy/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/clipboardy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-table3/node_modules/strip-ansi": { + "node_modules/clipboardy/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "peer": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "node_modules/clipboardy/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/clipboardy": { + "node_modules/clipboardy/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", - "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", - "dependencies": { - "arch": "^2.2.0", - "execa": "^5.1.1", - "is-wsl": "^2.2.0" - }, + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/clone": { @@ -9278,10 +9394,15 @@ "typedarray": "^0.0.6" } }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9356,9 +9477,9 @@ } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/cookie": { "version": "0.4.2", @@ -9388,9 +9509,9 @@ } }, "node_modules/core-js": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz", - "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -9398,11 +9519,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", - "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", @@ -9410,20 +9531,51 @@ } }, "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "peer": true, - "bin": { - "crc32": "bin/crc32.njs" + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=0.8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "dev": true, + "dependencies": { + "jiti": "^1.19.1" + }, + "engines": { + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" } }, "node_modules/create-hash": { @@ -9478,6 +9630,19 @@ "node": ">= 8" } }, + "node_modules/crossws": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.2.4.tgz", + "integrity": "sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==", + "peerDependencies": { + "uWebSockets.js": "*" + }, + "peerDependenciesMeta": { + "uWebSockets.js": { + "optional": true + } + } + }, "node_modules/crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", @@ -9504,9 +9669,9 @@ } }, "node_modules/css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", @@ -9572,11 +9737,15 @@ } }, "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decamelize-keys": { @@ -9595,6 +9764,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -9668,16 +9846,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -9697,9 +9878,9 @@ } }, "node_modules/defu": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz", - "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==" + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" }, "node_modules/del": { "version": "4.1.1", @@ -9729,6 +9910,25 @@ "node": ">=0.10.0" } }, + "node_modules/del/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/del/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -9760,6 +9960,14 @@ "node": ">=6" } }, + "node_modules/del/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, "node_modules/del/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -9817,9 +10025,9 @@ } }, "node_modules/destr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.2.tgz", - "integrity": "sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==" }, "node_modules/detect-browser": { "version": "5.2.0", @@ -9834,20 +10042,6 @@ "node": ">=8" } }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "peer": true, - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -9870,9 +10064,9 @@ } }, "node_modules/dijkstrajs": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", - "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" }, "node_modules/dir-glob": { "version": "3.0.1", @@ -9903,9 +10097,9 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "node_modules/dom7": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.4.tgz", - "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.6.tgz", + "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", "dependencies": { "ssr-window": "^4.0.0" } @@ -9933,6 +10127,11 @@ "stream-shift": "^1.0.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -9942,6 +10141,11 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, "node_modules/ejs": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", @@ -9957,9 +10161,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.572", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.572.tgz", - "integrity": "sha512-RlFobl4D3ieetbnR+2EpxdzFl9h0RAJkPK3pfiwMug2nhBin2ZCsGIAJWdpNniLz43sgXam/CgipOmvTA+rUiA==" + "version": "1.4.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.692.tgz", + "integrity": "sha512-d5rZRka9n2Y3MkWRN74IoAsxR0HK3yaAt7T50e3iT9VZmCCQDT3geXUO5ZRMhDToa1pkCeQXuNo+0g+NfDOVPA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -9981,9 +10185,9 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -10007,9 +10211,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", + "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -10019,17 +10223,29 @@ } }, "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "peer": true, "dependencies": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -10060,49 +10276,51 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -10111,42 +10329,71 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz", + "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==", "dev": true, "dependencies": { "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", + "es-abstract": "^1.22.4", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", + "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", + "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "safe-array-concat": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "peer": true }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -10191,9 +10438,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { "node": ">=6" } @@ -10279,19 +10526,6 @@ "node": ">= 0.8.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", - "optional": true, - "peer": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -10305,16 +10539,16 @@ } }, "node_modules/eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -10360,12 +10594,12 @@ } }, "node_modules/eslint-config-next": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.1.tgz", - "integrity": "sha512-QfIFK2WD39H4WOespjgf6PLv9Bpsd7KGGelCtmq4l67nGvnlsGpuvj0hIT+aIy6p5gKH+lAChYILsyDlxP52yg==", + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.1.2.tgz", + "integrity": "sha512-g46mlgWmHoWhHuDbaQS8PLNQtBkVkiQMnVLhFcqnPSXN2I+R4Obom3ihCIQuNLbjVUgiFFHqmEwwtDuWv1wYKA==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "14.0.1", + "@next/eslint-plugin-next": "14.1.2", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", "eslint-import-resolver-node": "^0.3.6", @@ -10386,9 +10620,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -10443,9 +10677,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -10469,9 +10703,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", @@ -10490,7 +10724,7 @@ "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -10530,27 +10764,27 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", - "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.20.7", - "aria-query": "^5.1.3", - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.6.2", - "axobject-query": "^3.1.1", + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.3", - "language-tags": "=1.0.5", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "semver": "^6.3.0" + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" }, "engines": { "node": ">=4.0" @@ -10559,43 +10793,30 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.34.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz", + "integrity": "sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -10629,12 +10850,12 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10682,6 +10903,28 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -10757,24 +11000,17 @@ } }, "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz", + "integrity": "sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==", "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", + "@metamask/safe-event-emitter": "^2.0.0", + "@metamask/utils": "^3.0.1", "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/eth-block-tracker/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "pify": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, "node_modules/eth-gas-reporter": { @@ -10806,17 +11042,76 @@ } } }, + "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true + }, + "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "peer": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, "node_modules/eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-5.1.0.tgz", + "integrity": "sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==", "dependencies": { "@metamask/safe-event-emitter": "^2.0.0", "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", "eth-query": "^2.1.2", "json-rpc-engine": "^6.1.0", "pify": "^5.0.0" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/eth-json-rpc-filters/node_modules/pify": { @@ -10877,6 +11172,11 @@ "safe-event-emitter": "^1.0.1" } }, + "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/eth-json-rpc-middleware/node_modules/eth-rpc-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", @@ -10885,6 +11185,20 @@ "fast-safe-stringify": "^2.0.6" } }, + "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", @@ -10894,14 +11208,6 @@ "safe-event-emitter": "^1.0.1" } }, - "node_modules/eth-json-rpc-middleware/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "engines": { - "node": ">=4" - } - }, "node_modules/eth-query": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", @@ -10929,6 +11235,25 @@ "ethereumjs-util": "^5.1.1" } }, + "node_modules/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eth-sig-util/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, "node_modules/ethereum-bloom-filters": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", @@ -10944,15 +11269,25 @@ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" }, "node_modules/ethereum-cryptography": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", - "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", - "peer": true, + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dependencies": { - "@noble/hashes": "1.1.2", - "@noble/secp256k1": "1.6.3", - "@scure/bip32": "1.1.0", - "@scure/bip39": "1.1.0" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, "node_modules/ethereumjs-abi": { @@ -10977,28 +11312,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/ethereumjs-abi/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", @@ -11023,6 +11336,25 @@ "safe-buffer": "^5.1.1" } }, + "node_modules/ethereumjs-account/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, "node_modules/ethereumjs-block": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", @@ -11044,6 +11376,25 @@ "lodash": "^4.17.14" } }, + "node_modules/ethereumjs-block/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, "node_modules/ethereumjs-common": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", @@ -11060,12 +11411,17 @@ "ethereumjs-util": "^5.0.0" } }, + "node_modules/ethereumjs-tx/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/ethereumjs-tx/node_modules/ethereum-common": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==" }, - "node_modules/ethereumjs-util": { + "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", @@ -11077,33 +11433,22 @@ "ethjs-util": "^0.1.3", "rlp": "^2.0.0", "safe-buffer": "^5.1.1" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "peer": true, "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, "node_modules/ethereumjs-vm": { @@ -11146,28 +11491,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/ethereumjs-vm/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", @@ -11299,15 +11622,6 @@ "npm": ">=3" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -11334,6 +11648,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -11405,9 +11720,9 @@ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -11459,9 +11774,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { "reusify": "^1.0.4" } @@ -11565,6 +11880,22 @@ "node": ">=0.10.0" } }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", @@ -11602,12 +11933,13 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -11615,15 +11947,15 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", @@ -11647,6 +11979,32 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -11675,12 +12033,10 @@ "peer": true }, "node_modules/framer-motion": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-9.0.2.tgz", - "integrity": "sha512-n7ZdIUBrT1xklowQNRQ6/h54+3ysmz422CP0rrhjE1X2tshiJy0WWQ7tv6y/fcOSQd23htNA9vvbUFLYMQ5lEQ==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-9.1.7.tgz", + "integrity": "sha512-nKxBkIO4IPkMEqcBbbATxsVjwPYShKl051yhBv9628iAH6JLeHD0siBHxkL62oQzMC1+GNX73XtPjgP753ufuw==", "dependencies": { - "@motionone/dom": "^10.15.3", - "hey-listen": "^1.0.8", "tslib": "^2.4.0" }, "optionalDependencies": { @@ -11691,20 +12047,10 @@ "react-dom": "^18.0.0" } }, - "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "optional": true, - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/framer-motion/node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "optional": true + "node_modules/framer-motion/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/fs-constants": { "version": "1.0.0", @@ -11712,12 +12058,12 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", + "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" }, @@ -11813,15 +12159,19 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11841,14 +12191,15 @@ } }, "node_modules/get-port-please": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.1.tgz", - "integrity": "sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", + "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==" }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, "engines": { "node": ">=10" }, @@ -11857,12 +12208,13 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -12037,15 +12389,6 @@ "readable-stream": "^3.0.0" } }, - "node_modules/git-raw-commits/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/git-raw-commits/node_modules/type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", @@ -12058,34 +12401,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/git-raw-commits/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12109,6 +12445,28 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "peer": true }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -12169,9 +12527,9 @@ } }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -12198,22 +12556,22 @@ } }, "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "peer": true, + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dependencies": { - "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gopd": { @@ -12228,9 +12586,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -12239,33 +12597,35 @@ "dev": true }, "node_modules/gsap": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.11.4.tgz", - "integrity": "sha512-McHhEguHyExMMnjqKA8G+7TvxmlKQGMbjgwAilnFe1e4id7V/tFveRQ2YMZhTYu0oxHGWvbPltdVYQOu3z1SCA==" + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.12.5.tgz", + "integrity": "sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==" }, "node_modules/h3": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.9.0.tgz", - "integrity": "sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.11.1.tgz", + "integrity": "sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==", "dependencies": { "cookie-es": "^1.0.0", - "defu": "^6.1.3", - "destr": "^2.0.2", + "crossws": "^0.2.2", + "defu": "^6.1.4", + "destr": "^2.0.3", "iron-webcrypto": "^1.0.0", + "ohash": "^1.1.3", "radix3": "^1.1.0", - "ufo": "^1.3.2", + "ufo": "^1.4.0", "uncrypto": "^0.1.3", - "unenv": "^1.7.4" + "unenv": "^1.9.0" } }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "peer": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -12279,6 +12639,15 @@ "uglify-js": "^3.1.4" } }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -12300,6 +12669,26 @@ "node": ">=6" } }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -12310,31 +12699,25 @@ } }, "node_modules/hardhat": { - "version": "2.12.5", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.12.5.tgz", - "integrity": "sha512-f/t7+hLlhsnQZ6LDXyV+8rHGRZFZY1sgFvgrwr9fBjMdGp1Bu6hHq1KXS4/VFZfZcVdL1DAWWEkryinZhqce+A==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.21.0.tgz", + "integrity": "sha512-8DlJAVJDEVHaV1sh9FLuKLLgCFv9EAJ+M+8IbjSIPgoeNo3ss5L1HgGBMfnI88c7OzMEZkdcuyGoobFeK3Orqw==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/ethereumjs-block": "^4.0.0", - "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", - "@nomicfoundation/ethereumjs-common": "^3.0.0", - "@nomicfoundation/ethereumjs-evm": "^1.0.0", - "@nomicfoundation/ethereumjs-rlp": "^4.0.0", - "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", - "@nomicfoundation/ethereumjs-trie": "^5.0.0", - "@nomicfoundation/ethereumjs-tx": "^4.0.0", - "@nomicfoundation/ethereumjs-util": "^8.0.0", - "@nomicfoundation/ethereumjs-vm": "^6.0.0", + "@nomicfoundation/edr": "^0.2.0", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", "@nomicfoundation/solidity-analyzer": "^0.1.0", "@sentry/node": "^5.18.1", "@types/bn.js": "^5.1.0", "@types/lru-cache": "^5.1.0", - "abort-controller": "^3.0.0", "adm-zip": "^0.4.16", "aggregate-error": "^3.0.0", "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", "chalk": "^2.4.2", "chokidar": "^3.4.0", "ci-info": "^2.0.0", @@ -12354,7 +12737,6 @@ "mnemonist": "^0.38.0", "mocha": "^10.0.0", "p-map": "^4.0.0", - "qs": "^6.7.0", "raw-body": "^2.4.1", "resolve": "1.17.0", "semver": "^6.3.0", @@ -12362,15 +12744,12 @@ "source-map-support": "^0.5.13", "stacktrace-parser": "^0.1.10", "tsort": "0.0.1", - "undici": "^5.4.0", + "undici": "^5.14.0", "uuid": "^8.3.2", "ws": "^7.4.6" }, "bin": { - "hardhat": "internal/cli/cli.js" - }, - "engines": { - "node": "^14.0.0 || ^16.0.0 || ^18.0.0" + "hardhat": "internal/cli/bootstrap.js" }, "peerDependencies": { "ts-node": "*", @@ -12385,18 +12764,63 @@ } } }, - "node_modules/hardhat-gas-reporter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", - "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "peer": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/hardhat/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true + }, + "node_modules/hardhat/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/hardhat/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "peer": true, "dependencies": { - "array-uniq": "1.0.3", - "eth-gas-reporter": "^0.2.25", - "sha1": "^1.1.1" - }, - "peerDependencies": { - "hardhat": "^2.0.2" + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" } }, "node_modules/hardhat/node_modules/ansi-styles": { @@ -12449,6 +12873,18 @@ "node": ">=0.8.0" } }, + "node_modules/hardhat/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "peer": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, "node_modules/hardhat/node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -12461,20 +12897,6 @@ "node": ">=4" } }, - "node_modules/hardhat/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/hardhat/node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -12601,18 +13023,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -12630,20 +13040,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -12663,11 +13073,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -12699,9 +13109,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dependencies": { "function-bind": "^1.1.2" }, @@ -12747,6 +13157,11 @@ "react-is": "^16.7.0" } }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -12759,6 +13174,24 @@ "node": ">=10" } }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", @@ -12854,6 +13287,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, "engines": { "node": ">=10.17.0" } @@ -12867,9 +13301,9 @@ } }, "node_modules/i18next": { - "version": "23.6.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.6.0.tgz", - "integrity": "sha512-z0Cxr0MGkt+kli306WS4nNNM++9cgt2b2VCMprY92j+AIab/oclgPxdwtTZVLP1zn5t5uo8M6uLsZmYrcjr3HA==", + "version": "23.10.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.10.0.tgz", + "integrity": "sha512-/TgHOqsa7/9abUKJjdPeydoyDc0oTi/7u9F8lMSj6ufg4cbC1Oj3f/Jja7zj7WRIhEQKB7Q4eN6y68I9RDxxGQ==", "funding": [ { "type": "individual", @@ -12886,13 +13320,13 @@ ], "peer": true, "dependencies": { - "@babel/runtime": "^7.22.5" + "@babel/runtime": "^7.23.2" } }, "node_modules/i18next-fs-backend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.2.0.tgz", - "integrity": "sha512-VOPHhdDX0M/csRqEw+9Ectpf6wvTIg1MZDfAHxc3JKnAlJz7fcZSAKAeyDohOq0xuLx57esYpJopIvBaRb0Bag==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.3.1.tgz", + "integrity": "sha512-tvfXskmG/9o+TJ5Fxu54sSO5OkY6d+uMn+K6JiUGLJrwxAVfer+8V3nU8jq3ts9Pe5lXJv4b1N7foIjJ8Iy2Gg==" }, "node_modules/iconv-lite": { "version": "0.4.24", @@ -12936,9 +13370,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } @@ -12962,9 +13396,9 @@ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" }, "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==" + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -12982,6 +13416,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -13019,11 +13462,11 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -13072,6 +13515,18 @@ "url": "https://opencollective.com/ioredis" } }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/iron-webcrypto": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz", @@ -13096,13 +13551,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13203,14 +13660,14 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13245,11 +13702,11 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/is-function": { @@ -13291,6 +13748,23 @@ "npm": ">=3" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -13306,9 +13780,9 @@ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { "node": ">= 0.4" }, @@ -13428,11 +13902,14 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13490,11 +13967,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -13554,20 +14031,37 @@ } }, "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dependencies": { - "is-docker": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is64bit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", + "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "dependencies": { + "system-architecture": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", @@ -13583,6 +14077,15 @@ "whatwg-fetch": "^3.4.1" } }, + "node_modules/isomorphic-unfetch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", + "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "dependencies": { + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" + } + }, "node_modules/isomorphic-ws": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", @@ -13609,6 +14112,23 @@ "set-function-name": "^2.0.1" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jake": { "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", @@ -13626,6 +14146,11 @@ "node": ">=10" } }, + "node_modules/jake/node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, "node_modules/jayson": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", @@ -13692,16 +14217,21 @@ } }, "node_modules/jimp": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.10.tgz", - "integrity": "sha512-lCaHIJAgTOsplyJzC1w/laxSxrbSsEBw4byKwXgUdMmh+ayPsnidTblenQm+IvhIs44Gcuvlb6pd2LQ0wcKaKg==", + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.12.tgz", + "integrity": "sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==", "dependencies": { - "@jimp/custom": "^0.22.10", - "@jimp/plugins": "^0.22.10", - "@jimp/types": "^0.22.10", + "@jimp/custom": "^0.22.12", + "@jimp/plugins": "^0.22.12", + "@jimp/types": "^0.22.12", "regenerator-runtime": "^0.13.3" } }, + "node_modules/jimp/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -13737,9 +14267,9 @@ } }, "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -13752,6 +14282,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -13780,16 +14316,22 @@ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", "dependencies": { - "jsonify": "^0.0.1" + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13807,21 +14349,20 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" }, "node_modules/jsonfile": { "version": "4.0.0", @@ -13895,22 +14436,24 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, "engines": { "node": ">=4.0" } }, "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", "hasInstallScript": true, "dependencies": { "node-addon-api": "^2.0.0", @@ -13921,6 +14464,15 @@ "node": ">=10.0.0" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/keyvaluestorage-interface": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", @@ -13950,29 +14502,15 @@ "dev": true }, "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, "dependencies": { - "language-subtag-registry": "~0.3.2" - } - }, - "node_modules/level": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", - "peer": true, - "dependencies": { - "browser-level": "^1.0.1", - "classic-level": "^1.2.0" + "language-subtag-registry": "^0.3.20" }, "engines": { - "node": ">=12" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" + "node": ">=0.10" } }, "node_modules/level-codec": { @@ -14015,32 +14553,10 @@ "string_decoder": "~0.10.x" } }, - "node_modules/level-iterator-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "peer": true, - "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } + "node_modules/level-iterator-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, "node_modules/level-ws": { "version": "0.0.0", @@ -14138,26 +14654,27 @@ "dev": true }, "node_modules/listhen": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.5.5.tgz", - "integrity": "sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA==", - "dependencies": { - "@parcel/watcher": "^2.3.0", - "@parcel/watcher-wasm": "2.3.0", - "citty": "^0.1.4", - "clipboardy": "^3.0.0", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.7.2.tgz", + "integrity": "sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==", + "dependencies": { + "@parcel/watcher": "^2.4.1", + "@parcel/watcher-wasm": "^2.4.1", + "citty": "^0.1.6", + "clipboardy": "^4.0.0", "consola": "^3.2.3", - "defu": "^6.1.2", - "get-port-please": "^3.1.1", - "h3": "^1.8.1", + "crossws": "^0.2.0", + "defu": "^6.1.4", + "get-port-please": "^3.1.2", + "h3": "^1.10.2", "http-shutdown": "^1.2.2", - "jiti": "^1.20.0", - "mlly": "^1.4.2", + "jiti": "^1.21.0", + "mlly": "^1.6.1", "node-forge": "^1.3.1", - "pathe": "^1.1.1", - "std-env": "^3.4.3", - "ufo": "^1.3.0", - "untun": "^0.1.2", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "ufo": "^1.4.0", + "untun": "^0.1.3", "uqr": "^0.1.2" }, "bin": { @@ -14166,13 +14683,13 @@ } }, "node_modules/lit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", - "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", "dependencies": { - "@lit/reactive-element": "^2.0.0", - "lit-element": "^4.0.0", - "lit-html": "^3.1.0" + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" } }, "node_modules/lit-element": { @@ -14193,32 +14710,6 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/lit/node_modules/@lit/reactive-element": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.2.tgz", - "integrity": "sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.2" - } - }, - "node_modules/lit/node_modules/lit-element": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.2.tgz", - "integrity": "sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.2", - "@lit/reactive-element": "^2.0.0", - "lit-html": "^3.1.0" - } - }, - "node_modules/lit/node_modules/lit-html": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.0.tgz", - "integrity": "sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", @@ -14256,17 +14747,6 @@ "node": ">=8.9.0" } }, - "node_modules/loader-utils/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -14409,12 +14889,12 @@ } }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "peer": true, "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru_map": { @@ -14424,14 +14904,11 @@ "peer": true }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/ltgt": { @@ -14440,11 +14917,36 @@ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" }, "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dependencies": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/make-error": { @@ -14471,15 +14973,6 @@ "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "peer": true }, - "node_modules/mcl-wasm": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", - "peer": true, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -14516,20 +15009,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/memory-level": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", - "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", - "peer": true, - "dependencies": { - "abstract-level": "^1.0.0", - "functional-red-black-tree": "^1.0.1", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -14585,10 +15064,29 @@ "semaphore": ">=1.0.1" } }, - "node_modules/merkle-patricia-tree/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + "node_modules/merkle-patricia-tree/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/merkle-patricia-tree/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/merkle-patricia-tree/node_modules/readable-stream": { "version": "2.3.8", @@ -14617,6 +15115,12 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "peer": true + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -14663,6 +15167,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, "engines": { "node": ">=6" } @@ -14717,9 +15222,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -14747,13 +15252,21 @@ "node": ">=0.10.0" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "peer": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -14765,14 +15278,14 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/mlly": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", - "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", + "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", "dependencies": { - "acorn": "^8.10.0", - "pathe": "^1.1.1", + "acorn": "^8.11.3", + "pathe": "^1.1.2", "pkg-types": "^1.0.3", - "ufo": "^1.3.0" + "ufo": "^1.3.2" } }, "node_modules/mnemonist": { @@ -14785,9 +15298,9 @@ } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "peer": true, "dependencies": { "ansi-colors": "4.1.1", @@ -14797,13 +15310,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -14818,10 +15330,6 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/ansi-colors": { @@ -14833,6 +15341,42 @@ "node": ">=6" } }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -14845,35 +15389,34 @@ } }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/mocha/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "is-glob": "^4.0.1" }, "engines": { - "node": "*" + "node": ">= 6" } }, "node_modules/mocha/node_modules/minimatch": { @@ -14888,33 +15431,12 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "peer": true }, - "node_modules/mocha/node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -14930,80 +15452,36 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "peer": true, - "engines": { - "node": ">=10" - } - }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "peer": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, "engines": { "node": ">=10" } }, "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "engines": { "node": "*" } }, "node_modules/moment-timezone": { - "version": "0.5.43", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", - "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", + "version": "0.5.45", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", + "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", "dependencies": { "moment": "^2.29.4" }, @@ -15012,9 +15490,9 @@ } }, "node_modules/mongodb": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.1.tgz", - "integrity": "sha512-NBGA8AfJxGPeB12F73xXwozt8ZpeIPmCUeWRwl9xejozTXFes/3zaep9zhzs1B/nKKsw4P3I4iPfXl3K7s6g+Q==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", "dependencies": { "bson": "^5.5.0", "mongodb-connection-string-url": "^2.6.0", @@ -15060,35 +15538,17 @@ "whatwg-url": "^11.0.0" } }, - "node_modules/mongodb-connection-string-url/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "engines": { - "node": ">=12" - } - }, - "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "node_modules/motion": { + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", + "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" + "@motionone/animation": "^10.15.1", + "@motionone/dom": "^10.16.2", + "@motionone/svelte": "^10.16.2", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "@motionone/vue": "^10.16.2" } }, "node_modules/mri": { @@ -15131,12 +15591,6 @@ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, - "node_modules/napi-macros": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", - "peer": true - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -15210,9 +15664,9 @@ } }, "node_modules/next-i18next": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/next-i18next/-/next-i18next-15.0.0.tgz", - "integrity": "sha512-9iGEU4dt1YCC5CXh6H8YHmDpmeWKjxES6XfoABxy9mmfaLLJcqS92F56ZKmVuZUPXEOLtgY/JtsnxsHYom9J4g==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/next-i18next/-/next-i18next-15.2.0.tgz", + "integrity": "sha512-Rl5yZ4oGffsB0AjRykZ5PzNQ2M6am54MaMayldGmH/UKZisrIxk2SKEPJvaHhKlWe1qgdNi2FkodwK8sEjfEmg==", "funding": [ { "type": "individual", @@ -15232,16 +15686,16 @@ "@types/hoist-non-react-statics": "^3.3.4", "core-js": "^3", "hoist-non-react-statics": "^3.3.2", - "i18next-fs-backend": "^2.2.0" + "i18next-fs-backend": "^2.3.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "i18next": "^23.6.0", + "i18next": ">= 23.7.13", "next": ">= 12.0.0", "react": ">= 17.0.2", - "react-i18next": "^13.3.1" + "react-i18next": ">= 13.5.0" } }, "node_modules/next-pwa": { @@ -15260,29 +15714,10 @@ "next": ">=9.0.0" } }, - "node_modules/next-pwa/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-abi": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", - "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", + "version": "3.56.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", + "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", "dependencies": { "semver": "^7.3.5" }, @@ -15324,9 +15759,28 @@ } }, "node_modules/node-fetch-native": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz", - "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==" + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.2.tgz", + "integrity": "sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==" + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } }, "node_modules/node-forge": { "version": "1.3.1", @@ -15337,9 +15791,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -15347,14 +15801,14 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/nodemailer": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.8.tgz", - "integrity": "sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==", + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.11.tgz", + "integrity": "sha512-UiAkgiERuG94kl/3bKfE8o10epvDnl0vokNEtZDPTq9BWzIl6EFT9336SbIT4oaTBD8NmmUTLsQyXHV82eXSWg==", "engines": { "node": ">=6.0.0" } @@ -15407,6 +15861,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -15467,12 +15922,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -15515,15 +15970,16 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" } }, "node_modules/object.hasown": { @@ -15572,6 +16028,11 @@ "ufo": "^1.3.0" } }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==" + }, "node_modules/omggif": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", @@ -15594,6 +16055,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -15724,12 +16186,12 @@ "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" }, "node_modules/parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", "dependencies": { "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" + "xml2js": "^0.5.0" } }, "node_modules/parse-cache-control": { @@ -15743,6 +16205,24 @@ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -15777,6 +16257,29 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -15786,9 +16289,9 @@ } }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" }, "node_modules/pathval": { "version": "1.1.1", @@ -15834,7 +16337,8 @@ "node_modules/phin": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." }, "node_modules/picocolors": { "version": "1.0.0", @@ -15853,11 +16357,11 @@ } }, "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/pinkie": { @@ -15925,6 +16429,73 @@ "pixelmatch": "bin/pixelmatch" } }, + "node_modules/pixelmatch/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pkg-types": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", @@ -15936,11 +16507,19 @@ } }, "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", "engines": { - "node": ">=4.0.0" + "node": ">=12.13.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" } }, "node_modules/postcss": { @@ -16053,9 +16632,9 @@ } }, "node_modules/prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -16077,6 +16656,32 @@ "node": ">=10" } }, + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", @@ -16095,9 +16700,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "bin": { "prettier": "bin/prettier.cjs" }, @@ -16168,6 +16773,11 @@ "react-is": "^16.13.1" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/proxy-compare": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", @@ -16204,9 +16814,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -16236,7 +16846,18 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/qrcode/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, "node_modules/qrcode/node_modules/buffer": { @@ -16280,6 +16901,27 @@ "wrap-ansi": "^5.1.0" } }, + "node_modules/qrcode/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/qrcode/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/qrcode/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/qrcode/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -16296,10 +16938,13 @@ "node": ">=6" } }, - "node_modules/qrcode/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "node_modules/qrcode/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "engines": { + "node": ">=4" + } }, "node_modules/qrcode/node_modules/locate-path": { "version": "3.0.0", @@ -16346,6 +16991,14 @@ "node": ">=4" } }, + "node_modules/qrcode/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/qrcode/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -16370,6 +17023,24 @@ "node": ">=6" } }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, "node_modules/qrcode/node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", @@ -16397,9 +17068,9 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { "side-channel": "^1.0.4" }, @@ -16411,12 +17082,11 @@ } }, "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "version": "6.13.5", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz", + "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==", "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", + "decode-uri-component": "^0.2.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" }, @@ -16479,9 +17149,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "peer": true, "dependencies": { "bytes": "3.1.2", @@ -16493,15 +17163,6 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -16557,12 +17218,12 @@ } }, "node_modules/react-i18next": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.3.1.tgz", - "integrity": "sha512-JAtYREK879JXaN9GdzfBI4yJeo/XyLeXWUsRABvYXiFUakhZJ40l+kaTo+i+A/3cKIED41kS/HAbZ5BzFtq/Og==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.0.5.tgz", + "integrity": "sha512-5+bQSeEtgJrMBABBL5lO7jPdSNAbeAZ+MlFWDw//7FnVacuVu3l9EeWFzBQvZsKy+cihkbThWOAThEdH8YjGEw==", "peer": true, "dependencies": { - "@babel/runtime": "^7.22.5", + "@babel/runtime": "^7.23.9", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { @@ -16579,22 +17240,23 @@ } }, "node_modules/react-icons": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", - "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", "peerDependencies": { "react": "*" } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true }, "node_modules/react-scroll": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.8.tgz", - "integrity": "sha512-RnU0wLaLozKIhLNAfoz6yxMus+PMypk7eBRfOitalYd2+qCiHrZdJ0MSDBs1Y23IFSfqSCdCEmENMJeSh0KoHA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.0.tgz", + "integrity": "sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==", "dependencies": { "lodash.throttle": "^4.1.1", "prop-types": "^15.7.2" @@ -16715,24 +17377,6 @@ "validate-npm-package-license": "^3.0.1" } }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/read-pkg/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -16752,9 +17396,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16864,15 +17508,16 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", + "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0", + "get-intrinsic": "^1.2.3", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -16900,9 +17545,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -16913,13 +17558,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -17095,12 +17741,12 @@ } }, "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/resolve-global": { @@ -17148,6 +17794,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -17246,9 +17912,9 @@ } }, "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", - "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "engines": { "node": ">=10.0.0" }, @@ -17287,29 +17953,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", @@ -17326,18 +17969,13 @@ "npm": ">=2.0.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -17348,11 +17986,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -17382,14 +18015,17 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17408,9 +18044,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", - "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -17420,7 +18056,7 @@ "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/sax": { @@ -17462,12 +18098,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/sc-istanbul/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "peer": true - }, "node_modules/sc-istanbul/node_modules/glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", @@ -17525,6 +18155,12 @@ "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", "peer": true }, + "node_modules/sc-istanbul/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "peer": true + }, "node_modules/sc-istanbul/node_modules/supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -17574,6 +18210,34 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, "node_modules/scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", @@ -17602,9 +18266,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -17615,6 +18279,22 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -17630,27 +18310,30 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -17728,29 +18411,9 @@ } }, "node_modules/sharp/node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" - }, - "node_modules/sharp/node_modules/tar-fs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", - "dependencies": { - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "node_modules/sharp/node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -17788,14 +18451,38 @@ "node": ">=4" } }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -17804,7 +18491,8 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "node_modules/simple-concat": { "version": "1.0.1", @@ -17870,6 +18558,23 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -17880,23 +18585,18 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, - "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, "node_modules/solc": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", @@ -17939,6 +18639,26 @@ "rimraf": "^2.2.8" } }, + "node_modules/solc/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/solc/node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", @@ -17970,16 +18690,15 @@ } }, "node_modules/solidity-coverage": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz", - "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==", + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.10.tgz", + "integrity": "sha512-6nvlWLnCjBIVnCgTZiIo2XBI62O3YJuU83xj+bklnH/B+dXGTjuQB7SccZfysUC3LFkjtZO/KjzUJ/hiSlkXWw==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.16.0", + "@solidity-parser/parser": "^0.18.0", "chalk": "^2.4.2", "death": "^1.1.0", - "detect-port": "^1.3.0", "difflib": "^0.2.4", "fs-extra": "^8.1.0", "ghost-testrpc": "^0.0.2", @@ -17987,7 +18706,7 @@ "globby": "^10.0.1", "jsonschema": "^1.2.4", "lodash": "^4.17.15", - "mocha": "10.2.0", + "mocha": "^10.2.0", "node-emoji": "^1.10.0", "pify": "^4.0.1", "recursive-readdir": "^2.2.2", @@ -18004,13 +18723,10 @@ } }, "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", - "peer": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "peer": true }, "node_modules/solidity-coverage/node_modules/ansi-styles": { "version": "3.2.1", @@ -18062,6 +18778,59 @@ "node": ">=0.8.0" } }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solidity-coverage/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/solidity-coverage/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18071,6 +18840,15 @@ "node": ">=4" } }, + "node_modules/solidity-coverage/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/solidity-coverage/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -18097,11 +18875,16 @@ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.8.0" } }, "node_modules/source-map-js": { @@ -18121,6 +18904,14 @@ "source-map": "^0.6.0" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -18158,9 +18949,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -18174,9 +18965,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/split-on-first": { @@ -18196,10 +18987,9 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "peer": true + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" }, "node_modules/sshpk": { "version": "1.18.0", @@ -18225,6 +19015,11 @@ "node": ">=0.10.0" } }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, "node_modules/sshpk/node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -18285,17 +19080,20 @@ } }, "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" }, "node_modules/streamx": { - "version": "2.15.5", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", - "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, "node_modules/strict-uri-encode": { @@ -18333,14 +19131,30 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "node_modules/string.prototype.matchall": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", @@ -18434,6 +19248,18 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -18455,6 +19281,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, "engines": { "node": ">=6" } @@ -18511,10 +19338,9 @@ } }, "node_modules/styled-components": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", - "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", - "hasInstallScript": true, + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz", + "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -18540,6 +19366,19 @@ "react-is": ">= 16.8.0" } }, + "node_modules/styled-components/node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/styled-components/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, "node_modules/styled-components/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18609,18 +19448,18 @@ } }, "node_modules/sweetalert2": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.9.0.tgz", - "integrity": "sha512-PA3qinKZMNGAhA+AUu2wU7yQOpeZCgOaYWRcg26f4cZN6f7M9iPBuobsxOhR9EHs7ihUIxT6vhAMiB4kcmk1SA==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.5.tgz", + "integrity": "sha512-q9eE3EKhMcpIDU/Xcz7z5lk8axCGkgxwK47gXGrrfncnBJWxHPPHnBVAjfsVXcTt8Yi8U6HNEcBRSu+qGeyFdA==", "funding": { "type": "individual", "url": "https://github.com/sponsors/limonte" } }, "node_modules/swiper": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.5.tgz", - "integrity": "sha512-zveyEFBBv4q1sVkbJHnuH4xCtarKieavJ4SxP0QEHvdpPLJRuD7j/Xg38IVVLbp7Db6qrPsLUePvxohYx39Agw==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.7.tgz", + "integrity": "sha512-VwO/KU3i9IV2Sf+W2NqyzwWob4yX9Qdedq6vBtS0rFqJ6Fa5iLUJwxQkuD4I38w0WDJwmFl8ojkdcRFPHWD+2g==", "funding": [ { "type": "patreon", @@ -18641,15 +19480,13 @@ } }, "node_modules/swr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.3.tgz", - "integrity": "sha512-sGvQDok/AHEWTPfhUWXEHBVEXmgGnuahyhmRQbjl9XBYxT/MSlAzvXEKQpyM++bMPaI52vcWS2HiKNaW7+9OFw==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", + "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", "dependencies": { + "client-only": "^0.0.1", "use-sync-external-store": "^1.2.0" }, - "engines": { - "pnpm": "7" - }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0" } @@ -18677,6 +19514,17 @@ "get-port": "^3.1.0" } }, + "node_modules/system-architecture": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", + "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/table": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", @@ -18723,64 +19571,7 @@ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "peer": true, "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "peer": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/tapable": { @@ -18792,29 +19583,26 @@ } }, "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/temp-dir": { @@ -18854,9 +19642,9 @@ } }, "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", + "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -18871,15 +19659,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" @@ -18904,9 +19692,9 @@ } }, "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dependencies": { "randombytes": "^2.1.0" } @@ -18989,6 +19777,15 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, "node_modules/timm": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", @@ -19073,9 +19870,15 @@ } }, "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } }, "node_modules/trim-newlines": { "version": "3.0.1", @@ -19087,21 +19890,21 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" } }, "node_modules/ts-command-line-args": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz", - "integrity": "sha512-FR3y7pLl/fuUNSmnPhfLArGqRrpojQgIEEOVzYx9DhTmfIN7C9RWSfpkJEF4J+Gk7aVx5pak8I7vWZsaN4N84g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", "peer": true, "dependencies": { "chalk": "^4.1.0", @@ -19123,9 +19926,9 @@ } }, "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -19175,9 +19978,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -19186,10 +19989,22 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/tsort": { "version": "0.0.1", @@ -19245,7 +20060,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -19254,9 +20068,9 @@ } }, "node_modules/typechain": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", - "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", "peer": true, "dependencies": { "@types/prettier": "^2.1.1", @@ -19277,20 +20091,6 @@ "typescript": ">=4.3.0" } }, - "node_modules/typechain/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/typechain/node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -19339,27 +20139,28 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -19369,15 +20170,16 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -19387,13 +20189,19 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19413,9 +20221,9 @@ } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "peer": true, "bin": { "tsc": "bin/tsc", @@ -19435,9 +20243,9 @@ } }, "node_modules/ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==" }, "node_modules/uglify-js": { "version": "3.17.4", @@ -19480,9 +20288,9 @@ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" }, "node_modules/undici": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.0.tgz", - "integrity": "sha512-l3ydWhlhOJzMVOYkymLykcRRXqbUaQriERtR70B9LzNkZ4bX52Fc8wbTDneMiwo8T+AemZXvXaTx+9o5ROxrXg==", + "version": "5.28.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", + "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", "peer": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -19491,15 +20299,20 @@ "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/unenv": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.8.0.tgz", - "integrity": "sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz", + "integrity": "sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==", "dependencies": { "consola": "^3.2.3", "defu": "^6.1.3", "mime": "^3.0.0", - "node-fetch-native": "^1.4.1", + "node-fetch-native": "^1.6.1", "pathe": "^1.1.1" } }, @@ -19514,6 +20327,11 @@ "node": ">=10.0.0" } }, + "node_modules/unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -19650,9 +20468,9 @@ } }, "node_modules/unstorage/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "engines": { "node": "14 || >=16.14" } @@ -19872,11 +20690,6 @@ "extsprintf": "^1.2.0" } }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", @@ -19887,15 +20700,15 @@ } }, "node_modules/vue": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.13.tgz", - "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", + "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", "dependencies": { - "@vue/compiler-dom": "3.3.13", - "@vue/compiler-sfc": "3.3.13", - "@vue/runtime-dom": "3.3.13", - "@vue/server-renderer": "3.3.13", - "@vue/shared": "3.3.13" + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/runtime-dom": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21" }, "peerDependencies": { "typescript": "*" @@ -19956,6 +20769,11 @@ "lodash": "^4.17.14" } }, + "node_modules/web3-provider-engine/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/web3-provider-engine/node_modules/cross-fetch": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", @@ -19965,6 +20783,43 @@ "whatwg-fetch": "^2.0.4" } }, + "node_modules/web3-provider-engine/node_modules/eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "dependencies": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/web3-provider-engine/node_modules/eth-json-rpc-filters": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + } + }, + "node_modules/web3-provider-engine/node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/web3-provider-engine/node_modules/eth-rpc-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", @@ -19973,6 +20828,25 @@ "fast-safe-stringify": "^2.0.6" } }, + "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/web3-provider-engine/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/web3-provider-engine/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -20014,14 +20888,15 @@ } }, "node_modules/web3-utils": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", - "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", "peer": true, "dependencies": { + "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", + "ethereum-cryptography": "^2.1.2", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", @@ -20032,63 +20907,39 @@ } }, "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", "peer": true, "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" } }, - "node_modules/web3-utils/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "peer": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "engines": { - "node": ">=10.0.0" + "node": ">=12" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", @@ -20102,7 +20953,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -20154,17 +21005,20 @@ } }, "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" }, "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/which": { @@ -20222,12 +21076,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", @@ -20244,20 +21092,20 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -20266,6 +21114,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "peer": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -20367,37 +21227,6 @@ "node": ">=10.0.0" } }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/workbox-build/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -20412,10 +21241,24 @@ "node": ">=10" } }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "node_modules/workbox-build/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/workbox-build/node_modules/jsonfile": { "version": "6.1.0", @@ -20497,6 +21340,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", @@ -20591,6 +21435,14 @@ "webpack": "^4.4.0 || ^5.9.0" } }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -20616,77 +21468,36 @@ "peer": true }, "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" + "node": ">=10" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" + "node": ">=10" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -20695,9 +21506,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "engines": { "node": ">=8.3.0" }, @@ -20739,9 +21550,9 @@ "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" }, "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -20767,54 +21578,42 @@ } }, "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/yargs-unparser": { @@ -20832,64 +21631,13 @@ "node": ">=10" } }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/yn": { @@ -20911,6 +21659,14 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index a4954bd4..ee46afbb 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "dependencies": { "@next/eslint-plugin-next": "^14.0.1", "@nomicfoundation/hardhat-toolbox": "^2.0.0", + "@openzeppelin/contracts": "^5.0.2", "@sendgrid/mail": "^8.1.0", "@walletconnect/web3-provider": "^1.8.0", "@web3modal/ethers5": "^3.5.1", diff --git a/src/config.js b/src/config.js index 55141228..0ba78bcd 100644 --- a/src/config.js +++ b/src/config.js @@ -86,11 +86,11 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlMumbai // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d', + daiAddress: '0x950795BFeCf1AD7A0e4B82051Fac0e47385942eF', alphaAddress: '0x46b142DD1E924FAb83eCc3c08e4D46E82f005e0E', - gammaCardsAddress: '0xC9a43158891282A2B1475592D5719c001986Aaec', - gammaPackAddress: '0x1c85638e118b37167e9298c2268758e058DdfDA0', - gammaOffersAddress: '0x367761085BF3C12e5DA2Df99AC6E1a824612b8fb', + gammaCardsAddress: '0xc147F78a979266c07e2A49e01B6af2fc3D7793c5', + gammaPackAddress: '0x941157F9B5b77e27fBdA12eb0c35988A1117De2D', + gammaOffersAddress: '0xBc3e1E3690329eDE0364784da68F77A8515EB55f', gammaTicketsAddress: '0x4C2F7092C2aE51D986bEFEe378e50BD4dB99C901' } }, diff --git a/src/context/GammaDataContext.js b/src/context/GammaDataContext.js index 72109ebd..597e081e 100644 --- a/src/context/GammaDataContext.js +++ b/src/context/GammaDataContext.js @@ -25,13 +25,19 @@ const GammaDataContextProvider = ({ children }) => { const [currentAlbum, setCurrentAlbum] = useState(ALBUMS.INVENTORY) const refreshPaginationObj = async () => { - const userCards = await getCardsByUser(gammaCardsContract, walletAddress) - setPaginationObj({}) // para limpiar ref - setPaginationObj(userCards) - setAlbums120Qtty(getAlbums120Qtty()) - setAlbums60Qtty(getAlbums60Qtty()) - setUniqueCardsQtty(getUniqueCardsQtty()) - setRepeatedCardsQtty(getRepeatedCardsQtty()) + try { + console.log(gammaCardsContract?.address) + const userCards = await getCardsByUser(gammaCardsContract, walletAddress) + setPaginationObj({}) // para limpiar ref + setPaginationObj(userCards) + setAlbums120Qtty(getAlbums120Qtty()) + setAlbums60Qtty(getAlbums60Qtty()) + setUniqueCardsQtty(getUniqueCardsQtty()) + setRepeatedCardsQtty(getRepeatedCardsQtty()) + } catch(e) { + console.error({ e }); + throw e; + } } const generatePaginationObjToBurn = (force) => { diff --git a/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json b/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json index 4160c544..477c0f52 100644 --- a/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json +++ b/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json @@ -3,17 +3,258 @@ "contractName": "NofGammaCardsV5", "sourceName": "contracts/gamma/GammaCards.v5.sol", "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_daiTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaOffersContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + }, + { + "internalType": "string", + "name": "_baseUri", + "type": "string" + }, + { + "internalType": "address", + "name": "_signer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "CannotRemoveUserOffers", + "type": "error" + }, + { + "inputs": [], + "name": "CardLimitExceeded", + "type": "error" + }, + { + "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" + }, + { + "inputs": [], + "name": "IncorrectPrizeAmount", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientCards", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCardNumber", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidSignature", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidTransfer", + "type": "error" + }, + { + "inputs": [], + "name": "MustCompleteAlbum", + "type": "error" + }, + { + "inputs": [], + "name": "NotYourPack", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyGammaPacksContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOffersContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "UserDoesNotHaveCardOrAlbum", + "type": "error" + }, + { + "inputs": [], + "name": "WrongPacksQuantity", + "type": "error" + }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "player", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint8", "name": "albumClass", "type": "uint8" @@ -95,19 +336,19 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "player", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "cardTokenId", "type": "uint256" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "albumTokenId", "type": "uint256" @@ -120,13 +361,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", "name": "to", "type": "address" @@ -145,13 +386,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint8[]", "name": "cardsNumber", "type": "uint8[]" @@ -164,19 +405,19 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint8[]", "name": "cardNumber", "type": "uint8[]" @@ -189,13 +430,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" @@ -221,7 +462,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "newGammaOffersContract", "type": "address" @@ -234,7 +475,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "newGammaPacksContract", "type": "address" @@ -247,7 +488,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "newGammaTicketContract", "type": "address" @@ -260,7 +501,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "newSigner", "type": "address" @@ -273,13 +514,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "string", "name": "newMainUri", "type": "string" }, { - "indexed": false, + "indexed": true, "internalType": "string", "name": "newSecondaryUri", "type": "string" @@ -292,13 +533,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", "name": "to", "type": "address" @@ -342,19 +583,19 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "player", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint8[]", "name": "packData", "type": "uint8[]" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "packNumber", "type": "uint256" @@ -401,19 +642,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "_tokenIdCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -478,24 +706,11 @@ "type": "function" }, { - "inputs": [], - "name": "baseUri", - "outputs": [ + "inputs": [ { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], "name": "burn", @@ -516,107 +731,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "burnedCards", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "cards", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "number", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "pasted", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "completion", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "cardsByUser", - "outputs": [ - { - "internalType": "uint8", - "name": "amount", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "cardNumber", - "type": "uint256" - } - ], - "name": "cardsInventory", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -927,44 +1041,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_daiTokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaOffersContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - }, - { - "internalType": "string", - "name": "_baseUri", - "type": "string" - }, - { - "internalType": "address", - "name": "_signer", - "type": "address" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -1027,58 +1103,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "lotteryPrizePercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "mainAlbumPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "mainUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPacksToOpenAtOnce", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -1188,13 +1212,101 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_signerToRemove", + "type": "address" + } + ], + "name": "removeSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], - "name": "packPrice", + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "restoreCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "s_baseUri", "outputs": [ { - "internalType": "uint256", + "internalType": "string", "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "s_burnedCards", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], @@ -1202,12 +1314,38 @@ "type": "function" }, { - "inputs": [], - "name": "prizesBalance", + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "s_cards", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "number", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "pasted", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "class", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "completion", "type": "uint256" } ], @@ -1227,47 +1365,117 @@ "type": "uint8" } ], - "name": "removeCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", + "name": "s_cardsByUser", + "outputs": [ + { + "internalType": "uint8", + "name": "amount", + "type": "uint8" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" + "internalType": "uint256", + "name": "cardNumber", + "type": "uint256" } ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", + "name": "s_cardsInventory", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "s_lotteryPrizePercentage", + "outputs": [ { - "internalType": "address", - "name": "_signerToRemove", - "type": "address" + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "removeSigner", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "s_mainAlbumPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_mainUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_maxPacksToOpenAtOnce", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "requireOfferValidationInMint", + "name": "s_packPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_prizesBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOfferValidationInMint", "outputs": [ { "internalType": "bool", @@ -1280,7 +1488,7 @@ }, { "inputs": [], - "name": "requireOfferValidationInTransfer", + "name": "s_requireOfferValidationInTransfer", "outputs": [ { "internalType": "bool", @@ -1293,7 +1501,7 @@ }, { "inputs": [], - "name": "requireOpenPackSignerValidation", + "name": "s_requireOpenPackSignerValidation", "outputs": [ { "internalType": "bool", @@ -1305,21 +1513,42 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "s_secondaryAlbumPrize", + "outputs": [ { - "internalType": "address", - "name": "user", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_secondaryUri", + "outputs": [ { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "restoreCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_tokenIdCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -1373,32 +1602,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "secondaryAlbumPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "secondaryUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -1715,26 +1918,26 @@ "type": "function" } ], - "bytecode": "0x6080604052600f805460ff19908116600a179091556710a741a462780000601255600060135567d02ab486cedc0000601555670de0b6b3a7640000601655601780549091166032179055601a80546201010062ffffff199091161790553480156200006957600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000bd9190620001ea565b506001620000cc8282620001ea565b505050620000e9620000e3620000ef60201b60201c565b620000f3565b620002b6565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200017057607f821691505b6020821081036200019157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001e557600081815260208120601f850160051c81016020861015620001c05750805b601f850160051c820191505b81811015620001e157828155600101620001cc565b5050505b505050565b81516001600160401b0381111562000206576200020662000145565b6200021e816200021784546200015b565b8462000197565b602080601f8311600181146200025657600084156200023d5750858301515b600019600386901b1c1916600185901b178555620001e1565b600085815260208120601f198616915b82811015620002875788860151825594840194600190910190840162000266565b5085821015620002a65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b615fb480620002c66000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c80637cf86b721161024c578063a419811d11610146578063dbfc05cf116100c3578063e606df8711610087578063e606df8714610a6c578063e985e9c514610a7f578063eb12d61e14610abb578063f2fde38b14610ace578063f98fd28314610ae157600080fd5b8063dbfc05cf14610a22578063ddb975e814610a35578063dec3f6d914610a48578063e1883c6e14610a50578063e5db587a14610a6357600080fd5b8063c3461c071161010a578063c3461c07146109d9578063c87b56dd146109e1578063cafaa473146109f4578063d322b56314610a07578063d780c47714610a1a57600080fd5b8063a419811d1461097a578063ad1684fa1461098d578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638dc10768116101d45780639abc8320116101985780639abc8320146109305780639c7f707f146109385780639f4415d81461094b578063a1af8ad414610954578063a22cb4651461096757600080fd5b80638dc107681461088f5780639038f41414610901578063915656641461090957806395d89b411461091b578063968841351461092357600080fd5b8063809eb3551161021b578063809eb3551461082157806384c4bd4b1461084f578063886eb60f146108585780638bf670c81461086b5780638da5cb5b1461087e57600080fd5b80637cf86b72146107af5780637de99bd9146107c25780637df73e27146107d55780637e50fa8f1461080157600080fd5b80632ca699e7116103685780635dde20d8116102e557806370a08231116102a957806370a082311461075b578063715018a61461076e5780637155a3ac146107765780637232d7d4146107895780637ce65f7b1461079c57600080fd5b80635dde20d8146106ef5780635e31ce481461070f5780636352211e1461072257806368cc5bc1146107355780637065cb481461074857600080fd5b806342842e0e1161032c57806342842e0e1461069a57806342966c68146106ad578063483823e8146106c0578063511b9307146106c95780635312ea8e146106dc57600080fd5b80632ca699e71461061e5780632f54bf6e146106315780632f9e026a1461065d57806330f5cc5814610670578063335c8b631461068357600080fd5b806314cca36a116103f657806320965a5f116103ba57806320965a5f146105c5578063225a993b146105d857806323b872dd146105e5578063241a08fe146105f8578063267b841d1461060b57600080fd5b806314cca36a14610566578063155e2f92146105795780631585cc4e1461058c578063173825d91461059f578063203335f6146105b257600080fd5b8063081812fc1161043d578063081812fc146104ed578063095ea7b3146105185780630e316ab71461052d578063128916dc146105405780631306952c1461055357600080fd5b806301ffc9a71461046f57806303900270146104975780630435dcaf146104b657806306fdde03146104d8575b600080fd5b61048261047d366004614e78565b610af4565b60405190151581526020015b60405180910390f35b600f546104a49060ff1681565b60405160ff909116815260200161048e565b6104c96104c4366004614eaa565b610b05565b60405161048e93929190614f05565b6104e0610ec2565b60405161048e9190614fc0565b6105006104fb366004614fd3565b610f54565b6040516001600160a01b03909116815260200161048e565b61052b610526366004614fec565b610f7b565b005b61052b61053b366004614eaa565b611095565b61052b61054e366004614eaa565b61113a565b610500610561366004615109565b6111e4565b600a54610500906001600160a01b031681565b61052b6105873660046151a3565b611272565b6104a461059a3660046151a3565b6112ee565b61052b6105ad366004614eaa565b611345565b61052b6105c03660046152a2565b6113bb565b61052b6105d3366004615398565b61150b565b6017546104a49060ff1681565b61052b6105f33660046153d9565b611c20565b61052b61060636600461541a565b611c52565b61052b610619366004615109565b611c97565b61052b61062c3660046151a3565b611caa565b61048261063f366004614eaa565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610500906001600160a01b031681565b61052b61067e366004615435565b611f1e565b61068c60125481565b60405190815260200161048e565b61052b6106a83660046153d9565b6121b4565b61052b6106bb366004614fd3565b6121cf565b61068c60165481565b601a546104829062010000900460ff1681565b61052b6106ea366004614fd3565b612200565b61068c6106fd366004614fd3565b601c6020526000908152604090205481565b61052b61071d366004614fd3565b612307565b610500610730366004614fd3565b612372565b61052b61074336600461549b565b6123d2565b61052b610756366004614eaa565b61241d565b61068c610769366004614eaa565b612493565b61052b612519565b61052b6107843660046151a3565b61252d565b61052b610797366004614fd3565b61258c565b61052b6107aa36600461541a565b612628565b61068c6107bd366004614eaa565b6126c1565b61052b6107d0366004615538565b612705565b6104826107e3366004614eaa565b6001600160a01b03166000908152600e602052604090205460ff1690565b61068c61080f366004614eaa565b601d6020526000908152604090205481565b6104a461082f3660046151a3565b601e60209081526000928352604080842090915290825290205460ff1681565b61068c60105481565b6104826108663660046151a3565b6128cc565b6104826108793660046151a3565b612925565b6007546001600160a01b0316610500565b6108d161089d366004614fd3565b601b6020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b610482612952565b601a5461048290610100900460ff1681565b6104e0612df4565b601a546104829060ff1681565b6104e0612e03565b61052b6109463660046155d2565b612e91565b61068c60155481565b61052b610962366004615635565b612f0b565b61052b610975366004615689565b6132a6565b61052b610988366004614eaa565b6132b5565b61052b61099b3660046156c2565b613353565b61052b6109ae36600461571a565b613667565b61052b6109c1366004614fd3565b613699565b61052b6109d436600461541a565b613743565b6104e061398b565b6104e06109ef366004614fd3565b613998565b61052b610a02366004614eaa565b6139a3565b600954610500906001600160a01b031681565b61068c613a46565b61052b610a3036600461549b565b613a6e565b61052b610a43366004614eaa565b613ab0565b6104e0613b53565b61052b610a5e366004614fd3565b613b60565b61068c60135481565b601154610500906001600160a01b031681565b610482610a8d366004615799565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61052b610ac9366004614eaa565b613bb6565b61052b610adc366004614eaa565b613c2c565b61052b610aef36600461549b565b613ca2565b6000610aff82613ceb565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610ceb576001600160a01b0389166000908152601e6020908152604080832060ff80861685529252909120541615610cd95780858360ff1681518110610bd157610bd16157c7565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601e82526040808220858516835290925220548551908216918691908516908110610c2157610c216157c7565b60ff90921660209283029190910190910152600954604051632edb5fcf60e01b81526001600160a01b0390911690632edb5fcf90610c65908c9085906004016157dd565b602060405180830381865afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca691906157f9565b838360ff1681518110610cbb57610cbb6157c7565b9115156020928302919091019091015281610cd58161582c565b9250505b80610ce38161582c565b915050610b82565b5060008160ff166001600160401b03811115610d0957610d09615018565b604051908082528060200260200182016040528015610d32578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5257610d52615018565b604051908082528060200260200182016040528015610d7b578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d9b57610d9b615018565b604051908082528060200260200182016040528015610dc4578160200160208202803683370190505b50905060005b8460ff168160ff161015610eb057878160ff1681518110610ded57610ded6157c7565b6020026020010151848260ff1681518110610e0a57610e0a6157c7565b60ff9283166020918202929092010152875188918316908110610e2f57610e2f6157c7565b6020026020010151838260ff1681518110610e4c57610e4c6157c7565b60ff9283166020918202929092010152865187918316908110610e7157610e716157c7565b6020026020010151828260ff1681518110610e8e57610e8e6157c7565b9115156020928302919091019091015280610ea88161582c565b915050610dca565b50919a90995090975095505050505050565b606060008054610ed19061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd9061584b565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b5050505050905090565b6000610f5f82613d10565b506000908152600460205260409020546001600160a01b031690565b6000610f8682612372565b9050806001600160a01b0316836001600160a01b031603610ff85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101457506110148133610a8d565b6110865760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fef565b6110908383613d6f565b505050565b336000908152600b602052604090205460ff166110c45760405162461bcd60e51b8152600401610fef90615885565b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111f57600080fd5b505af4158015611133573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff166111695760405162461bcd60e51b8152600401610fef90615885565b6001600160a01b03811661118f5760405162461bcd60e51b8152600401610fef906158ab565b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead0906020015b60405180910390a150565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061122690339089908990899089906004016158d1565b602060405180830381865af4158015611243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112679190615958565b90505b949350505050565b6009546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610fef90615975565b6001600160a01b0382166000908152601e6020908152604080832060ff8086168552925282208054909116916112d18361582c565b91906101000a81548160ff021916908360ff160217905550505050565b60006001600160a01b0383166113165760405162461bcd60e51b8152600401610fef906158ab565b506001600160a01b03919091166000908152601e6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff166113745760405162461bcd60e51b8152600401610fef90615885565b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611107565b60008560ff161161140e5760405162461bcd60e51b815260206004820152601760248201527f7061636b732071747479206d757374206265203e20302e0000000000000000006044820152606401610fef565b600f5460ff90811690861611156114765760405162461bcd60e51b815260206004820152602660248201527f7061636b732071747479206d757374206265203c206d6178207174747920616c6044820152653637bbb2b21760d11b6064820152608401610fef565b60005b8560ff168160ff161015611503576114f133868360ff16815181106114a0576114a06157c7565b6020026020010151868460ff16815181106114bd576114bd6157c7565b602002602001015186868660ff168181106114da576114da6157c7565b90506020028101906114ec91906159a4565b613ddd565b806114fb8161582c565b915050611479565b505050505050565b336000908152601e602090815260408083206079845290915290205460ff166115825760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6573206e6f74206861766520616e79206275726e696e6720616c604482015263313ab69760e11b6064820152608401610fef565b336000908152601d602052604081205461159d9083906159ea565b90506000603c82106116d457601654601354101561160d5760405162461bcd60e51b815260206004820152602760248201527f496e73756666696369656e742066756e647320286275726e43617264732062616044820152663630b731b2949760c91b6064820152608401610fef565b6011546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a91906159fd565b90506016548110156116ce5760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e64732028636f6e7472616374292e00006044820152606401610fef565b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611721573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174591906159fd565b11905060005b60ff81168511156119ad57336000908152601e6020526040812081888860ff861681811061177b5761177b6157c7565b9050602002016020810190611790919061541a565b60ff908116825260208201929092526040016000205416116117c45760405162461bcd60e51b8152600401610fef90615a16565b8115611920576009546001600160a01b0316632edb5fcf33888860ff86168181106117f1576117f16157c7565b9050602002016020810190611806919061541a565b6040518363ffffffff1660e01b81526004016118239291906157dd565b602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186491906157f9565b1561192057336000908152601e60205260408120600291888860ff8616818110611890576118906157c7565b90506020020160208101906118a5919061541a565b60ff90811682526020820192909252604001600020541610156119205760405162461bcd60e51b815260206004820152602d60248201527f596f752063616e6e6f74206275726e20616e79206d6f726520636f706965732060448201526c37b3103a3434b99031b0b9321760991b6064820152608401610fef565b336000908152601e6020526040812090878760ff8516818110611945576119456157c7565b905060200201602081019061195a919061541a565b60ff9081168252602082019290925260400160009081208054909216919061198183615a4d565b91906101000a81548160ff021916908360ff1602179055505080806119a59061582c565b91505061174b565b50336000908152601d6020526040812080548692906119cd9084906159ea565b90915550506040517fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190611a0690339088908890615aa0565b60405180910390a1811561113357336000908152601e60209081526040808320607984529091528120805460ff1691611a3e83615a4d565b91906101000a81548160ff021916908360ff16021790555050611aef3360198054611a689061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054611a949061584b565b8015611ae15780601f10611ab657610100808354040283529160200191611ae1565b820191906000526020600020905b815481529060010190602001808311611ac457829003601f168201915b505050505060796002614274565b60165460136000828254611b039190615ac5565b909155505060115460165460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8191906157f9565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611bc757600080fd5b505af1158015611bdb573d6000803e3d6000fd5b505050507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa336002604051611c119291906157dd565b60405180910390a15050505050565b611c2b335b826142d7565b611c475760405162461bcd60e51b8152600401610fef90615ad8565b611090838383614355565b336000908152600b602052604090205460ff16611c815760405162461bcd60e51b8152600401610fef90615885565b600f805460ff191660ff92909216919091179055565b611ca43385858585613ddd565b50505050565b336000908152601e6020908152604080832060ff808616855292529091205416611ce65760405162461bcd60e51b8152600401610fef90615a16565b336001600160a01b03831603611d3e5760405162461bcd60e51b815260206004820152601960248201527f4f776e207472616e73666572206e6f7420616c6c6f7765642e000000000000006044820152606401610fef565b6001600160a01b038216611d645760405162461bcd60e51b8152600401610fef906158ab565b601a5462010000900460ff1615611e3957600954604051632edb5fcf60e01b81526000916001600160a01b031690632edb5fcf90611da890339086906004016157dd565b602060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de991906157f9565b336000908152601e6020908152604080832060ff80881685529252909120549192506001911611811580611e1a5750805b611e365760405162461bcd60e51b8152600401610fef90615b25565b50505b336000908152601e6020908152604080832060ff808616855292528220805490911691611e6583615a4d565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0384166000908152601e602090815260408083208685168452909152812080549092169250611eb48361582c565b82546101009290920a60ff818102199093169183160217909155604080513381526001600160a01b0386166020820152918416908201527f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da91506060015b60405180910390a15050565b336000908152600b602052604090205460ff16611f4d5760405162461bcd60e51b8152600401610fef90615885565b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b505050506006601254611fc29190615b5c565b601254611fcf9190615ac5565b60136000828254611fe091906159ea565b90915550600090505b81518160ff161015611ca457818160ff168151811061200a5761200a6157c7565b602002602001015160ff1660781461205857611389601c6000848460ff1681518110612038576120386157c7565b602002602001015160ff1681526020019081526020016000205410612089565b6078600052601c6020527f6ec98d8d39cd9309189aa82063f91dfcf737ce38f7d69eacedb0acfc0872981c54610bb9115b6120d55760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fef565b601c6000838360ff16815181106120ee576120ee6157c7565b602002602001015160ff168152602001908152602001600020600081548092919061211890615b7e565b90915550506001600160a01b0384166000908152601e602052604081208351909190849060ff851690811061214f5761214f6157c7565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff16809291906121889061582c565b91906101000a81548160ff021916908360ff1602179055505080806121ac9061582c565b915050611fe9565b61109083838360405180602001604052806000815250613667565b6121d833611c25565b6121f45760405162461bcd60e51b8152600401610fef90615ad8565b6121fd816144b9565b50565b336000908152600b602052604090205460ff1661222f5760405162461bcd60e51b8152600401610fef90615885565b8061223930612493565b101561224457600080fd5b80601360008282546122569190615ac5565b909155505060115460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906157f9565b5060408051338152602081018390527f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2091016111d9565b6008546001600160a01b031633146123585760405162461bcd60e51b815260206004820152601460248201527327b7363c903830b1b5b99031b7b73a3930b1ba1760611b6044820152606401610fef565b806013600082825461236a91906159ea565b909155505050565b6000818152600260205260408120546001600160a01b031680610aff5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fef565b336000908152600b602052604090205460ff166124015760405162461bcd60e51b8152600401610fef90615885565b601a8054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661244c5760405162461bcd60e51b8152600401610fef90615885565b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611107565b60006001600160a01b0382166124fd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fef565b506001600160a01b031660009081526003602052604090205490565b6125216144c2565b61252b600061451c565b565b6009546001600160a01b031633146125575760405162461bcd60e51b8152600401610fef90615975565b6001600160a01b0382166000908152601e6020908152604080832060ff8086168552925282208054909116916112d183615a4d565b336000908152600b602052604090205460ff166125bb5760405162461bcd60e51b8152600401610fef90615885565b600081116126235760405162461bcd60e51b815260206004820152602f60248201527f546865207072697a6520666f7220636f6d706c6574696e672074686520616c6260448201526e3ab69036bab9ba103132901f10181760891b6064820152608401610fef565b601555565b336000908152600b602052604090205460ff166126575760405162461bcd60e51b8152600401610fef90615885565b60648160ff1611156126ab5760405162461bcd60e51b815260206004820152601e60248201527f5468652025206d757374206265206265747765656e20302026203130302e00006044820152606401610fef565b6017805460ff191660ff92909216919091179055565b60006001600160a01b0382166126e95760405162461bcd60e51b8152600401610fef906158ab565b506001600160a01b03166000908152601d602052604090205490565b61270d6144c2565b336000908152600b60205260409020805460ff19166001179055601180546001600160a01b038881166001600160a01b03199283161790925560088054888416908316179055600a80548684169083161790556009805492871692909116919091179055601461277d8382615bdd565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516127da9460149493909101615c9c565b604051602081830303815290604052601890816127f79190615bdd565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516128549460149493909101615c9c565b604051602081830303815290604052601990816128719190615bdd565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a8110156128c3576000818152601c6020526040902060019055806128bb81615b7e565b915050612896565b50505050505050565b60006001600160a01b0383166128f45760405162461bcd60e51b8152600401610fef906158ab565b506001600160a01b03919091166000908152601e6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146128f45760405162461bcd60e51b8152600401610fef90615975565b336000908152601e602090815260408083206078845290915281205460ff166129bd5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6573206e6f74206861766520616e7920616c62756d2e000000006044820152606401610fef565b6015546013541015612a225760405162461bcd60e51b815260206004820152602860248201527f496e73756666696369656e742066756e647320286f70656e2d7061636b73206260448201526730b630b731b2949760c11b6064820152608401610fef565b6011546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8f91906159fd565b9050601554811015612ae35760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e64732028636f6e7472616374292e00006044820152606401610fef565b6000805b60788160ff1611612b7857336000908152601e6020908152604080832060ff80861685529252822054169003612b205760019150612b78565b336000908152601e6020908152604080832060ff808616855292528220805490911691612b4c83615a4d565b91906101000a81548160ff021916908360ff160217905550508080612b709061582c565b915050612ae7565b508015612bc75760405162461bcd60e51b815260206004820152601860248201527f4d75737420636f6d706c6574652074686520616c62756d2e00000000000000006044820152606401610fef565b612c5f3360188054612bd89061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054612c049061584b565b8015612c515780601f10612c2657610100808354040283529160200191612c51565b820191906000526020600020905b815481529060010190602001808311612c3457829003601f168201915b505050505060786002614274565b60115460155460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015612cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd891906157f9565b5060155460136000828254612ced9190615ac5565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6191906157f9565b905080612db05760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f742072656d6f76652075736572206f6666657273000000000000006044820152606401610fef565b7f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa336001604051612de29291906157dd565b60405180910390a16001935050505090565b606060018054610ed19061584b565b60148054612e109061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054612e3c9061584b565b8015612e895780601f10612e5e57610100808354040283529160200191612e89565b820191906000526020600020905b815481529060010190602001808311612e6c57829003601f168201915b505050505081565b336000908152600b602052604090205460ff16612ec05760405162461bcd60e51b8152600401610fef90615885565b6018612ecc8382615bdd565b506019612ed98282615bdd565b507fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec68282604051611f12929190615d4b565b336001600160a01b03841603612f6e5760405162461bcd60e51b815260206004820152602260248201527f596f752063616e6e6f742073656e6420636172647320746f20796f757273656c604482015261331760f11b6064820152608401610fef565b6001600160a01b038316612f945760405162461bcd60e51b8152600401610fef906158ab565b60005b60ff811682111561326357336000908152601e6020526040812081858560ff8616818110612fc757612fc76157c7565b9050602002016020810190612fdc919061541a565b60ff908116825260208201929092526040016000205416116130105760405162461bcd60e51b8152600401610fef90615a16565b336000908152601e6020526040812090848460ff8516818110613035576130356157c7565b905060200201602081019061304a919061541a565b60ff9081168252602082019290925260400160009081208054909216919061307183615a4d565b91906101000a81548160ff021916908360ff16021790555050601e6000856001600160a01b03166001600160a01b03168152602001908152602001600020600084848460ff168181106130c6576130c66157c7565b90506020020160208101906130db919061541a565b60ff908116825260208201929092526040016000908120805490921691906131028361582c565b91906101000a81548160ff021916908360ff16021790555050601a60029054906101000a900460ff1615613251576009546000906001600160a01b0316632edb5fcf33868660ff871681811061315a5761315a6157c7565b905060200201602081019061316f919061541a565b6040518363ffffffff1660e01b815260040161318c9291906157dd565b602060405180830381865afa1580156131a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cd91906157f9565b336000908152601e602052604081209192509060019082878760ff88168181106131f9576131f96157c7565b905060200201602081019061320e919061541a565b60ff9081168252602082019290925260400160002054161190508115806132325750805b61324e5760405162461bcd60e51b8152600401610fef90615b25565b50505b8061325b8161582c565b915050612f97565b507f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b338484846040516132999493929190615d79565b60405180910390a1505050565b6132b133838361456e565b5050565b336000908152600b602052604090205460ff166132e45760405162461bcd60e51b8152600401610fef90615885565b60005b60798160ff16116132b1576001600160a01b0382166000908152601e6020908152604080832060ff8086168552925282208054909116916133278361582c565b91906101000a81548160ff021916908360ff16021790555050808061334b9061582c565b9150506132e7565b6009546001600160a01b0316331461337d5760405162461bcd60e51b8152600401610fef90615975565b6001600160a01b0384166133a35760405162461bcd60e51b8152600401610fef906158ab565b6001600160a01b0382166133c95760405162461bcd60e51b8152600401610fef906158ab565b6001600160a01b0384166000908152601e6020908152604080832060ff80881685529252909120541661344d5760405162461bcd60e51b815260206004820152602660248201527f55736572202866726f6d2920646f6573206e6f74206861766520636172642028604482015265333937b6949760d11b6064820152608401610fef565b6001600160a01b0382166000908152601e6020908152604080832060ff8086168552925290912054166134cd5760405162461bcd60e51b815260206004820152602260248201527f557365722028746f2920646f6573206e6f74206861766520636172642028746f604482015261149760f11b6064820152608401610fef565b6001600160a01b0384166000908152601e6020908152604080832060ff80881685529252822080549091169161350283615a4d565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0384166000908152601e6020908152604080832088851684529091528120805490921692506135518361582c565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0384166000908152601e6020908152604080832086851684529091528120805490921692506135a083615a4d565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601e6020908152604080832086851684529091528120805490921692506135ef8361582c565b82546101009290920a60ff818102199093169183160217909155604080516001600160a01b038881168252861660208201528683169181019190915290831660608201527f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524915060800160405180910390a150505050565b61367133836142d7565b61368d5760405162461bcd60e51b8152600401610fef90615ad8565b611ca48484848461463c565b336000908152600b602052604090205460ff166136c85760405162461bcd60e51b8152600401610fef90615885565b6000811161373e5760405162461bcd60e51b815260206004820152603760248201527f546865207072697a6520666f7220636f6d706c6574696e67207468652062757260448201527f6e696e6720616c62756d206d757374206265203e20302e0000000000000000006064820152608401610fef565b601655565b336000908152601e6020908152604080832060ff80861685529252909120541661377f5760405162461bcd60e51b8152600401610fef90615a16565b601a54610100900460ff161561385357600954604051632edb5fcf60e01b81526000916001600160a01b031690632edb5fcf906137c290339086906004016157dd565b602060405180830381865afa1580156137df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380391906157f9565b336000908152601e6020908152604080832060ff808816855292529091205491925060019116118115806138345750805b6138505760405162461bcd60e51b8152600401610fef90615b25565b50505b336000908152601e6020908152604080832060ff80861685529252822080549091169161387f83615a4d565b91906101000a81548160ff021916908360ff1602179055505060006014604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016138f491815260200190565b600060405180830381865af4158015613911573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139399190810190615db0565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161396a9493929190615c9c565b60405160208183030381529060405290506132b133828460ff166001614274565b60188054612e109061584b565b6060610aff8261466f565b336000908152600b602052604090205460ff166139d25760405162461bcd60e51b8152600401610fef90615885565b6001600160a01b0381166139f85760405162461bcd60e51b8152600401610fef906158ab565b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f906020016111d9565b601354601754600091606491613a5f919060ff16615e1d565b613a699190615b5c565b905090565b336000908152600b602052604090205460ff16613a9d5760405162461bcd60e51b8152600401610fef90615885565b601a805460ff1916911515919091179055565b336000908152600b602052604090205460ff16613adf5760405162461bcd60e51b8152600401610fef90615885565b6001600160a01b038116613b055760405162461bcd60e51b8152600401610fef906158ab565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa202906020016111d9565b60198054612e109061584b565b6008546001600160a01b03163314613bb15760405162461bcd60e51b815260206004820152601460248201527327b7363c903830b1b5b99031b7b73a3930b1ba1760611b6044820152606401610fef565b601255565b336000908152600b602052604090205460ff16613be55760405162461bcd60e51b8152600401610fef90615885565b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611107565b613c346144c2565b6001600160a01b038116613c995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fef565b6121fd8161451c565b336000908152600b602052604090205460ff16613cd15760405162461bcd60e51b8152600401610fef90615885565b601a80549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610aff5750610aff82614777565b6000818152600260205260409020546001600160a01b03166121fd5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fef565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613da482612372565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e4c9190615958565b6001600160a01b031614613ea25760405162461bcd60e51b815260206004820152601760248201527f54686973207061636b206973206e6f7420796f7572732e0000000000000000006044820152606401610fef565b600f835110613ee95760405162461bcd60e51b815260206004820152601360248201527210d85c99081b1a5b5a5d08195e18d959591959606a1b6044820152606401610fef565b601a5460ff1615613fd9576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613f3690339089908990899089906004016158d1565b602060405180830381865af4158015613f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f779190615958565b6001600160a01b0381166000908152600e602052604090205490915060ff16613fd75760405162461bcd60e51b815260206004820152601260248201527124b73b30b634b21039b4b3b730ba3ab9329760711b6044820152606401610fef565b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b15801561402757600080fd5b505af115801561403b573d6000803e3d6000fd5b50505050600660125461404e9190615b5c565b60125461405b9190615ac5565b6013600082825461406c91906159ea565b90915550600090505b83518160ff16101561424057838160ff1681518110614096576140966157c7565b602002602001015160ff166078146140e457611389601c6000868460ff16815181106140c4576140c46157c7565b602002602001015160ff1681526020019081526020016000205410614115565b6078600052601c6020527f6ec98d8d39cd9309189aa82063f91dfcf737ce38f7d69eacedb0acfc0872981c54610bb9115b6141615760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fef565b601c6000858360ff168151811061417a5761417a6157c7565b602002602001015160ff16815260200190815260200160002060008154809291906141a490615b7e565b90915550506001600160a01b0386166000908152601e602052604081208551909190869060ff85169081106141db576141db6157c7565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff16809291906142149061582c565b91906101000a81548160ff021916908360ff1602179055505080806142389061582c565b915050614075565b507fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e3858486604051611c1193929190615e34565b6010546000818152601b6020526040902081815560018101849055600201805461ff00191661010060ff8516021790556142ae85826147c7565b6142b881856147e1565b6001601060008282546142cb91906159ea565b90915550505050505050565b6000806142e383612372565b9050806001600160a01b0316846001600160a01b0316148061432a57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b8061126a5750836001600160a01b031661434384610f54565b6001600160a01b031614949350505050565b826001600160a01b031661436882612372565b6001600160a01b03161461438e5760405162461bcd60e51b8152600401610fef90615e68565b6001600160a01b0382166143f05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fef565b826001600160a01b031661440382612372565b6001600160a01b0316146144295760405162461bcd60e51b8152600401610fef90615e68565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6121fd816148a5565b6007546001600160a01b0316331461252b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fef565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036145cf5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fef565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b614647848484614355565b614653848484846148e5565b611ca45760405162461bcd60e51b8152600401610fef90615ead565b606061467a82613d10565b600082815260066020526040812080546146939061584b565b80601f01602080910402602001604051908101604052809291908181526020018280546146bf9061584b565b801561470c5780601f106146e15761010080835404028352916020019161470c565b820191906000526020600020905b8154815290600101906020018083116146ef57829003601f168201915b50505050509050600061472a60408051602081019091526000815290565b9050805160000361473c575092915050565b81511561476e578082604051602001614756929190615eff565b60405160208183030381529060405292505050919050565b61126a846149e3565b60006001600160e01b031982166380ac58cd60e01b14806147a857506001600160e01b03198216635b5e139f60e01b145b80610aff57506301ffc9a760e01b6001600160e01b0319831614610aff565b6132b1828260405180602001604052806000815250614a57565b6000828152600260205260409020546001600160a01b031661485c5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fef565b60008281526006602052604090206148748282615bdd565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790602001611f12565b6148ae81614a8a565b600081815260066020526040902080546148c79061584b565b1590506121fd5760008181526006602052604081206121fd91614e14565b60006001600160a01b0384163b156149db57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614929903390899088908890600401615f2e565b6020604051808303816000875af1925050508015614964575060408051601f3d908101601f1916820190925261496191810190615f61565b60015b6149c1573d808015614992576040519150601f19603f3d011682016040523d82523d6000602084013e614997565b606091505b5080516000036149b95760405162461bcd60e51b8152600401610fef90615ead565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061126a565b50600161126a565b60606149ee82613d10565b6000614a0560408051602081019091526000815290565b90506000815111614a255760405180602001604052806000815250614a50565b80614a2f84614b1f565b604051602001614a40929190615eff565b6040516020818303038152906040525b9392505050565b614a618383614bb1565b614a6e60008484846148e5565b6110905760405162461bcd60e51b8152600401610fef90615ead565b6000614a9582612372565b9050614aa082612372565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606000614b2c83614d3c565b60010190506000816001600160401b03811115614b4b57614b4b615018565b6040519080825280601f01601f191660200182016040528015614b75576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084614b7f57509392505050565b6001600160a01b038216614c075760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fef565b6000818152600260205260409020546001600160a01b031615614c6c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fef565b6000818152600260205260409020546001600160a01b031615614cd15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fef565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310614d7b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614da7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310614dc557662386f26fc10000830492506010015b6305f5e1008310614ddd576305f5e100830492506008015b6127108310614df157612710830492506004015b60648310614e03576064830492506002015b600a8310610aff5760010192915050565b508054614e209061584b565b6000825580601f10614e30575050565b601f0160209004906000526020600020908101906121fd91905b80821115614e5e5760008155600101614e4a565b5090565b6001600160e01b0319811681146121fd57600080fd5b600060208284031215614e8a57600080fd5b8135614a5081614e62565b6001600160a01b03811681146121fd57600080fd5b600060208284031215614ebc57600080fd5b8135614a5081614e95565b600081518084526020808501945080840160005b83811015614efa57815160ff1687529582019590820190600101614edb565b509495945050505050565b606081526000614f186060830186614ec7565b602083820381850152614f2b8287614ec7565b8481036040860152855180825282870193509082019060005b81811015614f62578451151583529383019391830191600101614f44565b509098975050505050505050565b60005b83811015614f8b578181015183820152602001614f73565b50506000910152565b60008151808452614fac816020860160208601614f70565b601f01601f19169290920160200192915050565b602081526000614a506020830184614f94565b600060208284031215614fe557600080fd5b5035919050565b60008060408385031215614fff57600080fd5b823561500a81614e95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561505657615056615018565b604052919050565b60006001600160401b0382111561507757615077615018565b5060051b60200190565b803560ff8116811461509257600080fd5b919050565b600082601f8301126150a857600080fd5b813560206150bd6150b88361505e565b61502e565b82815260059290921b840181019181810190868411156150dc57600080fd5b8286015b848110156150fe576150f181615081565b83529183019183016150e0565b509695505050505050565b6000806000806060858703121561511f57600080fd5b8435935060208501356001600160401b038082111561513d57600080fd5b61514988838901615097565b9450604087013591508082111561515f57600080fd5b818701915087601f83011261517357600080fd5b81358181111561518257600080fd5b88602082850101111561519457600080fd5b95989497505060200194505050565b600080604083850312156151b657600080fd5b82356151c181614e95565b91506151cf60208401615081565b90509250929050565b600082601f8301126151e957600080fd5b813560206151f96150b88361505e565b82815260059290921b8401810191818101908684111561521857600080fd5b8286015b848110156150fe5780356001600160401b0381111561523b5760008081fd5b6152498986838b0101615097565b84525091830191830161521c565b60008083601f84011261526957600080fd5b5081356001600160401b0381111561528057600080fd5b6020830191508360208260051b850101111561529b57600080fd5b9250929050565b6000806000806000608086880312156152ba57600080fd5b6152c386615081565b94506020808701356001600160401b03808211156152e057600080fd5b818901915089601f8301126152f457600080fd5b81356153026150b88261505e565b81815260059190911b8301840190848101908c83111561532157600080fd5b938501935b8285101561533f57843582529385019390850190615326565b98505050604089013592508083111561535757600080fd5b6153638a848b016151d8565b9550606089013592508083111561537957600080fd5b505061538788828901615257565b969995985093965092949392505050565b600080602083850312156153ab57600080fd5b82356001600160401b038111156153c157600080fd5b6153cd85828601615257565b90969095509350505050565b6000806000606084860312156153ee57600080fd5b83356153f981614e95565b9250602084013561540981614e95565b929592945050506040919091013590565b60006020828403121561542c57600080fd5b614a5082615081565b60008060006060848603121561544a57600080fd5b833561545581614e95565b92506020840135915060408401356001600160401b0381111561547757600080fd5b61548386828701615097565b9150509250925092565b80151581146121fd57600080fd5b6000602082840312156154ad57600080fd5b8135614a508161548d565b60006001600160401b038211156154d1576154d1615018565b50601f01601f191660200190565b60006154ed6150b8846154b8565b905082815283838301111561550157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261552957600080fd5b614a50838335602085016154df565b60008060008060008060c0878903121561555157600080fd5b863561555c81614e95565b9550602087013561556c81614e95565b9450604087013561557c81614e95565b9350606087013561558c81614e95565b925060808701356001600160401b038111156155a757600080fd5b6155b389828a01615518565b92505060a08701356155c481614e95565b809150509295509295509295565b600080604083850312156155e557600080fd5b82356001600160401b03808211156155fc57600080fd5b61560886838701615518565b9350602085013591508082111561561e57600080fd5b5061562b85828601615518565b9150509250929050565b60008060006040848603121561564a57600080fd5b833561565581614e95565b925060208401356001600160401b0381111561567057600080fd5b61567c86828701615257565b9497909650939450505050565b6000806040838503121561569c57600080fd5b82356156a781614e95565b915060208301356156b78161548d565b809150509250929050565b600080600080608085870312156156d857600080fd5b84356156e381614e95565b93506156f160208601615081565b9250604085013561570181614e95565b915061570f60608601615081565b905092959194509250565b6000806000806080858703121561573057600080fd5b843561573b81614e95565b9350602085013561574b81614e95565b92506040850135915060608501356001600160401b0381111561576d57600080fd5b8501601f8101871361577e57600080fd5b61578d878235602084016154df565b91505092959194509250565b600080604083850312156157ac57600080fd5b82356157b781614e95565b915060208301356156b781614e95565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392909216825260ff16602082015260400190565b60006020828403121561580b57600080fd5b8151614a508161548d565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff810361584257615842615816565b60010192915050565b600181811c9082168061585f57607f821691505b60208210810361587f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b6020808252600c908201526b3130b21030b2323932b9b99760a11b604082015260600190565b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561592357845160ff1683529383019391830191600101615904565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b60006020828403121561596a57600080fd5b8151614a5081614e95565b60208082526015908201527427b7363c9037b33332b9399031b7b73a3930b1ba1760591b604082015260600190565b6000808335601e198436030181126159bb57600080fd5b8301803591506001600160401b038211156159d557600080fd5b60200191503681900382131561529b57600080fd5b80820180821115610aff57610aff615816565b600060208284031215615a0f57600080fd5b5051919050565b6020808252601c908201527f596f7520646f6573206e6f742068617665207468697320636172642e00000000604082015260600190565b600060ff821680615a6057615a60615816565b6000190192915050565b8183526000602080850194508260005b85811015614efa5760ff615a8d83615081565b1687529582019590820190600101615a7a565b6001600160a01b03841681526040602082018190526000906112679083018486615a6a565b81810381811115610aff57610aff615816565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082615b7957634e487b7160e01b600052601260045260246000fd5b500490565b600060018201615b9057615b90615816565b5060010190565b601f82111561109057600081815260208120601f850160051c81016020861015615bbe5750805b601f850160051c820191505b8181101561150357828155600101615bca565b81516001600160401b03811115615bf657615bf6615018565b615c0a81615c04845461584b565b84615b97565b602080601f831160018114615c3f5760008415615c275750858301515b600019600386901b1c1916600185901b178555611503565b600085815260208120601f198616915b82811015615c6e57888601518255948401946001909101908401615c4f565b5085821015615c8c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615caa8161584b565b60018281168015615cc25760018114615cd757615d06565b60ff1984168752821515830287019450615d06565b8a60005260208060002060005b85811015615cfd5781548a820152908401908201615ce4565b50505082870194505b505050508551615d1a818360208a01614f70565b8551910190615d2d818360208901614f70565b8451910190615d40818360208801614f70565b019695505050505050565b604081526000615d5e6040830185614f94565b8281036020840152615d708185614f94565b95945050505050565b6001600160a01b03858116825284166020820152606060408201819052600090615da69083018486615a6a565b9695505050505050565b600060208284031215615dc257600080fd5b81516001600160401b03811115615dd857600080fd5b8201601f81018413615de957600080fd5b8051615df76150b8826154b8565b818152856020838501011115615e0c57600080fd5b615d70826020830160208601614f70565b8082028115828204841417610aff57610aff615816565b6001600160a01b0384168152606060208201819052600090615e5890830185614ec7565b9050826040830152949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615f11818460208801614f70565b835190830190615f25818360208801614f70565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615da690830184614f94565b600060208284031215615f7357600080fd5b8151614a5081614e6256fea26469706673582212208ff8d7b5090c37bcec4ee454063a81cffc1364cff8658d383f8cefc59f4a6b1964736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061046a5760003560e01c80637cf86b721161024c578063a419811d11610146578063dbfc05cf116100c3578063e606df8711610087578063e606df8714610a6c578063e985e9c514610a7f578063eb12d61e14610abb578063f2fde38b14610ace578063f98fd28314610ae157600080fd5b8063dbfc05cf14610a22578063ddb975e814610a35578063dec3f6d914610a48578063e1883c6e14610a50578063e5db587a14610a6357600080fd5b8063c3461c071161010a578063c3461c07146109d9578063c87b56dd146109e1578063cafaa473146109f4578063d322b56314610a07578063d780c47714610a1a57600080fd5b8063a419811d1461097a578063ad1684fa1461098d578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638dc10768116101d45780639abc8320116101985780639abc8320146109305780639c7f707f146109385780639f4415d81461094b578063a1af8ad414610954578063a22cb4651461096757600080fd5b80638dc107681461088f5780639038f41414610901578063915656641461090957806395d89b411461091b578063968841351461092357600080fd5b8063809eb3551161021b578063809eb3551461082157806384c4bd4b1461084f578063886eb60f146108585780638bf670c81461086b5780638da5cb5b1461087e57600080fd5b80637cf86b72146107af5780637de99bd9146107c25780637df73e27146107d55780637e50fa8f1461080157600080fd5b80632ca699e7116103685780635dde20d8116102e557806370a08231116102a957806370a082311461075b578063715018a61461076e5780637155a3ac146107765780637232d7d4146107895780637ce65f7b1461079c57600080fd5b80635dde20d8146106ef5780635e31ce481461070f5780636352211e1461072257806368cc5bc1146107355780637065cb481461074857600080fd5b806342842e0e1161032c57806342842e0e1461069a57806342966c68146106ad578063483823e8146106c0578063511b9307146106c95780635312ea8e146106dc57600080fd5b80632ca699e71461061e5780632f54bf6e146106315780632f9e026a1461065d57806330f5cc5814610670578063335c8b631461068357600080fd5b806314cca36a116103f657806320965a5f116103ba57806320965a5f146105c5578063225a993b146105d857806323b872dd146105e5578063241a08fe146105f8578063267b841d1461060b57600080fd5b806314cca36a14610566578063155e2f92146105795780631585cc4e1461058c578063173825d91461059f578063203335f6146105b257600080fd5b8063081812fc1161043d578063081812fc146104ed578063095ea7b3146105185780630e316ab71461052d578063128916dc146105405780631306952c1461055357600080fd5b806301ffc9a71461046f57806303900270146104975780630435dcaf146104b657806306fdde03146104d8575b600080fd5b61048261047d366004614e78565b610af4565b60405190151581526020015b60405180910390f35b600f546104a49060ff1681565b60405160ff909116815260200161048e565b6104c96104c4366004614eaa565b610b05565b60405161048e93929190614f05565b6104e0610ec2565b60405161048e9190614fc0565b6105006104fb366004614fd3565b610f54565b6040516001600160a01b03909116815260200161048e565b61052b610526366004614fec565b610f7b565b005b61052b61053b366004614eaa565b611095565b61052b61054e366004614eaa565b61113a565b610500610561366004615109565b6111e4565b600a54610500906001600160a01b031681565b61052b6105873660046151a3565b611272565b6104a461059a3660046151a3565b6112ee565b61052b6105ad366004614eaa565b611345565b61052b6105c03660046152a2565b6113bb565b61052b6105d3366004615398565b61150b565b6017546104a49060ff1681565b61052b6105f33660046153d9565b611c20565b61052b61060636600461541a565b611c52565b61052b610619366004615109565b611c97565b61052b61062c3660046151a3565b611caa565b61048261063f366004614eaa565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610500906001600160a01b031681565b61052b61067e366004615435565b611f1e565b61068c60125481565b60405190815260200161048e565b61052b6106a83660046153d9565b6121b4565b61052b6106bb366004614fd3565b6121cf565b61068c60165481565b601a546104829062010000900460ff1681565b61052b6106ea366004614fd3565b612200565b61068c6106fd366004614fd3565b601c6020526000908152604090205481565b61052b61071d366004614fd3565b612307565b610500610730366004614fd3565b612372565b61052b61074336600461549b565b6123d2565b61052b610756366004614eaa565b61241d565b61068c610769366004614eaa565b612493565b61052b612519565b61052b6107843660046151a3565b61252d565b61052b610797366004614fd3565b61258c565b61052b6107aa36600461541a565b612628565b61068c6107bd366004614eaa565b6126c1565b61052b6107d0366004615538565b612705565b6104826107e3366004614eaa565b6001600160a01b03166000908152600e602052604090205460ff1690565b61068c61080f366004614eaa565b601d6020526000908152604090205481565b6104a461082f3660046151a3565b601e60209081526000928352604080842090915290825290205460ff1681565b61068c60105481565b6104826108663660046151a3565b6128cc565b6104826108793660046151a3565b612925565b6007546001600160a01b0316610500565b6108d161089d366004614fd3565b601b6020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b610482612952565b601a5461048290610100900460ff1681565b6104e0612df4565b601a546104829060ff1681565b6104e0612e03565b61052b6109463660046155d2565b612e91565b61068c60155481565b61052b610962366004615635565b612f0b565b61052b610975366004615689565b6132a6565b61052b610988366004614eaa565b6132b5565b61052b61099b3660046156c2565b613353565b61052b6109ae36600461571a565b613667565b61052b6109c1366004614fd3565b613699565b61052b6109d436600461541a565b613743565b6104e061398b565b6104e06109ef366004614fd3565b613998565b61052b610a02366004614eaa565b6139a3565b600954610500906001600160a01b031681565b61068c613a46565b61052b610a3036600461549b565b613a6e565b61052b610a43366004614eaa565b613ab0565b6104e0613b53565b61052b610a5e366004614fd3565b613b60565b61068c60135481565b601154610500906001600160a01b031681565b610482610a8d366004615799565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61052b610ac9366004614eaa565b613bb6565b61052b610adc366004614eaa565b613c2c565b61052b610aef36600461549b565b613ca2565b6000610aff82613ceb565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610ceb576001600160a01b0389166000908152601e6020908152604080832060ff80861685529252909120541615610cd95780858360ff1681518110610bd157610bd16157c7565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601e82526040808220858516835290925220548551908216918691908516908110610c2157610c216157c7565b60ff90921660209283029190910190910152600954604051632edb5fcf60e01b81526001600160a01b0390911690632edb5fcf90610c65908c9085906004016157dd565b602060405180830381865afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca691906157f9565b838360ff1681518110610cbb57610cbb6157c7565b9115156020928302919091019091015281610cd58161582c565b9250505b80610ce38161582c565b915050610b82565b5060008160ff166001600160401b03811115610d0957610d09615018565b604051908082528060200260200182016040528015610d32578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5257610d52615018565b604051908082528060200260200182016040528015610d7b578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d9b57610d9b615018565b604051908082528060200260200182016040528015610dc4578160200160208202803683370190505b50905060005b8460ff168160ff161015610eb057878160ff1681518110610ded57610ded6157c7565b6020026020010151848260ff1681518110610e0a57610e0a6157c7565b60ff9283166020918202929092010152875188918316908110610e2f57610e2f6157c7565b6020026020010151838260ff1681518110610e4c57610e4c6157c7565b60ff9283166020918202929092010152865187918316908110610e7157610e716157c7565b6020026020010151828260ff1681518110610e8e57610e8e6157c7565b9115156020928302919091019091015280610ea88161582c565b915050610dca565b50919a90995090975095505050505050565b606060008054610ed19061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd9061584b565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b5050505050905090565b6000610f5f82613d10565b506000908152600460205260409020546001600160a01b031690565b6000610f8682612372565b9050806001600160a01b0316836001600160a01b031603610ff85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101457506110148133610a8d565b6110865760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fef565b6110908383613d6f565b505050565b336000908152600b602052604090205460ff166110c45760405162461bcd60e51b8152600401610fef90615885565b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111f57600080fd5b505af4158015611133573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff166111695760405162461bcd60e51b8152600401610fef90615885565b6001600160a01b03811661118f5760405162461bcd60e51b8152600401610fef906158ab565b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead0906020015b60405180910390a150565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061122690339089908990899089906004016158d1565b602060405180830381865af4158015611243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112679190615958565b90505b949350505050565b6009546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610fef90615975565b6001600160a01b0382166000908152601e6020908152604080832060ff8086168552925282208054909116916112d18361582c565b91906101000a81548160ff021916908360ff160217905550505050565b60006001600160a01b0383166113165760405162461bcd60e51b8152600401610fef906158ab565b506001600160a01b03919091166000908152601e6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff166113745760405162461bcd60e51b8152600401610fef90615885565b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611107565b60008560ff161161140e5760405162461bcd60e51b815260206004820152601760248201527f7061636b732071747479206d757374206265203e20302e0000000000000000006044820152606401610fef565b600f5460ff90811690861611156114765760405162461bcd60e51b815260206004820152602660248201527f7061636b732071747479206d757374206265203c206d6178207174747920616c6044820152653637bbb2b21760d11b6064820152608401610fef565b60005b8560ff168160ff161015611503576114f133868360ff16815181106114a0576114a06157c7565b6020026020010151868460ff16815181106114bd576114bd6157c7565b602002602001015186868660ff168181106114da576114da6157c7565b90506020028101906114ec91906159a4565b613ddd565b806114fb8161582c565b915050611479565b505050505050565b336000908152601e602090815260408083206079845290915290205460ff166115825760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6573206e6f74206861766520616e79206275726e696e6720616c604482015263313ab69760e11b6064820152608401610fef565b336000908152601d602052604081205461159d9083906159ea565b90506000603c82106116d457601654601354101561160d5760405162461bcd60e51b815260206004820152602760248201527f496e73756666696369656e742066756e647320286275726e43617264732062616044820152663630b731b2949760c91b6064820152608401610fef565b6011546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a91906159fd565b90506016548110156116ce5760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e64732028636f6e7472616374292e00006044820152606401610fef565b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611721573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174591906159fd565b11905060005b60ff81168511156119ad57336000908152601e6020526040812081888860ff861681811061177b5761177b6157c7565b9050602002016020810190611790919061541a565b60ff908116825260208201929092526040016000205416116117c45760405162461bcd60e51b8152600401610fef90615a16565b8115611920576009546001600160a01b0316632edb5fcf33888860ff86168181106117f1576117f16157c7565b9050602002016020810190611806919061541a565b6040518363ffffffff1660e01b81526004016118239291906157dd565b602060405180830381865afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186491906157f9565b1561192057336000908152601e60205260408120600291888860ff8616818110611890576118906157c7565b90506020020160208101906118a5919061541a565b60ff90811682526020820192909252604001600020541610156119205760405162461bcd60e51b815260206004820152602d60248201527f596f752063616e6e6f74206275726e20616e79206d6f726520636f706965732060448201526c37b3103a3434b99031b0b9321760991b6064820152608401610fef565b336000908152601e6020526040812090878760ff8516818110611945576119456157c7565b905060200201602081019061195a919061541a565b60ff9081168252602082019290925260400160009081208054909216919061198183615a4d565b91906101000a81548160ff021916908360ff1602179055505080806119a59061582c565b91505061174b565b50336000908152601d6020526040812080548692906119cd9084906159ea565b90915550506040517fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190611a0690339088908890615aa0565b60405180910390a1811561113357336000908152601e60209081526040808320607984529091528120805460ff1691611a3e83615a4d565b91906101000a81548160ff021916908360ff16021790555050611aef3360198054611a689061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054611a949061584b565b8015611ae15780601f10611ab657610100808354040283529160200191611ae1565b820191906000526020600020905b815481529060010190602001808311611ac457829003601f168201915b505050505060796002614274565b60165460136000828254611b039190615ac5565b909155505060115460165460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8191906157f9565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611bc757600080fd5b505af1158015611bdb573d6000803e3d6000fd5b505050507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa336002604051611c119291906157dd565b60405180910390a15050505050565b611c2b335b826142d7565b611c475760405162461bcd60e51b8152600401610fef90615ad8565b611090838383614355565b336000908152600b602052604090205460ff16611c815760405162461bcd60e51b8152600401610fef90615885565b600f805460ff191660ff92909216919091179055565b611ca43385858585613ddd565b50505050565b336000908152601e6020908152604080832060ff808616855292529091205416611ce65760405162461bcd60e51b8152600401610fef90615a16565b336001600160a01b03831603611d3e5760405162461bcd60e51b815260206004820152601960248201527f4f776e207472616e73666572206e6f7420616c6c6f7765642e000000000000006044820152606401610fef565b6001600160a01b038216611d645760405162461bcd60e51b8152600401610fef906158ab565b601a5462010000900460ff1615611e3957600954604051632edb5fcf60e01b81526000916001600160a01b031690632edb5fcf90611da890339086906004016157dd565b602060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de991906157f9565b336000908152601e6020908152604080832060ff80881685529252909120549192506001911611811580611e1a5750805b611e365760405162461bcd60e51b8152600401610fef90615b25565b50505b336000908152601e6020908152604080832060ff808616855292528220805490911691611e6583615a4d565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0384166000908152601e602090815260408083208685168452909152812080549092169250611eb48361582c565b82546101009290920a60ff818102199093169183160217909155604080513381526001600160a01b0386166020820152918416908201527f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da91506060015b60405180910390a15050565b336000908152600b602052604090205460ff16611f4d5760405162461bcd60e51b8152600401610fef90615885565b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b505050506006601254611fc29190615b5c565b601254611fcf9190615ac5565b60136000828254611fe091906159ea565b90915550600090505b81518160ff161015611ca457818160ff168151811061200a5761200a6157c7565b602002602001015160ff1660781461205857611389601c6000848460ff1681518110612038576120386157c7565b602002602001015160ff1681526020019081526020016000205410612089565b6078600052601c6020527f6ec98d8d39cd9309189aa82063f91dfcf737ce38f7d69eacedb0acfc0872981c54610bb9115b6120d55760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fef565b601c6000838360ff16815181106120ee576120ee6157c7565b602002602001015160ff168152602001908152602001600020600081548092919061211890615b7e565b90915550506001600160a01b0384166000908152601e602052604081208351909190849060ff851690811061214f5761214f6157c7565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff16809291906121889061582c565b91906101000a81548160ff021916908360ff1602179055505080806121ac9061582c565b915050611fe9565b61109083838360405180602001604052806000815250613667565b6121d833611c25565b6121f45760405162461bcd60e51b8152600401610fef90615ad8565b6121fd816144b9565b50565b336000908152600b602052604090205460ff1661222f5760405162461bcd60e51b8152600401610fef90615885565b8061223930612493565b101561224457600080fd5b80601360008282546122569190615ac5565b909155505060115460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156122ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d091906157f9565b5060408051338152602081018390527f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2091016111d9565b6008546001600160a01b031633146123585760405162461bcd60e51b815260206004820152601460248201527327b7363c903830b1b5b99031b7b73a3930b1ba1760611b6044820152606401610fef565b806013600082825461236a91906159ea565b909155505050565b6000818152600260205260408120546001600160a01b031680610aff5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fef565b336000908152600b602052604090205460ff166124015760405162461bcd60e51b8152600401610fef90615885565b601a8054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661244c5760405162461bcd60e51b8152600401610fef90615885565b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611107565b60006001600160a01b0382166124fd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fef565b506001600160a01b031660009081526003602052604090205490565b6125216144c2565b61252b600061451c565b565b6009546001600160a01b031633146125575760405162461bcd60e51b8152600401610fef90615975565b6001600160a01b0382166000908152601e6020908152604080832060ff8086168552925282208054909116916112d183615a4d565b336000908152600b602052604090205460ff166125bb5760405162461bcd60e51b8152600401610fef90615885565b600081116126235760405162461bcd60e51b815260206004820152602f60248201527f546865207072697a6520666f7220636f6d706c6574696e672074686520616c6260448201526e3ab69036bab9ba103132901f10181760891b6064820152608401610fef565b601555565b336000908152600b602052604090205460ff166126575760405162461bcd60e51b8152600401610fef90615885565b60648160ff1611156126ab5760405162461bcd60e51b815260206004820152601e60248201527f5468652025206d757374206265206265747765656e20302026203130302e00006044820152606401610fef565b6017805460ff191660ff92909216919091179055565b60006001600160a01b0382166126e95760405162461bcd60e51b8152600401610fef906158ab565b506001600160a01b03166000908152601d602052604090205490565b61270d6144c2565b336000908152600b60205260409020805460ff19166001179055601180546001600160a01b038881166001600160a01b03199283161790925560088054888416908316179055600a80548684169083161790556009805492871692909116919091179055601461277d8382615bdd565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516127da9460149493909101615c9c565b604051602081830303815290604052601890816127f79190615bdd565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516128549460149493909101615c9c565b604051602081830303815290604052601990816128719190615bdd565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a8110156128c3576000818152601c6020526040902060019055806128bb81615b7e565b915050612896565b50505050505050565b60006001600160a01b0383166128f45760405162461bcd60e51b8152600401610fef906158ab565b506001600160a01b03919091166000908152601e6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146128f45760405162461bcd60e51b8152600401610fef90615975565b336000908152601e602090815260408083206078845290915281205460ff166129bd5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6573206e6f74206861766520616e7920616c62756d2e000000006044820152606401610fef565b6015546013541015612a225760405162461bcd60e51b815260206004820152602860248201527f496e73756666696369656e742066756e647320286f70656e2d7061636b73206260448201526730b630b731b2949760c11b6064820152608401610fef565b6011546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8f91906159fd565b9050601554811015612ae35760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e64732028636f6e7472616374292e00006044820152606401610fef565b6000805b60788160ff1611612b7857336000908152601e6020908152604080832060ff80861685529252822054169003612b205760019150612b78565b336000908152601e6020908152604080832060ff808616855292528220805490911691612b4c83615a4d565b91906101000a81548160ff021916908360ff160217905550508080612b709061582c565b915050612ae7565b508015612bc75760405162461bcd60e51b815260206004820152601860248201527f4d75737420636f6d706c6574652074686520616c62756d2e00000000000000006044820152606401610fef565b612c5f3360188054612bd89061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054612c049061584b565b8015612c515780601f10612c2657610100808354040283529160200191612c51565b820191906000526020600020905b815481529060010190602001808311612c3457829003601f168201915b505050505060786002614274565b60115460155460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015612cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd891906157f9565b5060155460136000828254612ced9190615ac5565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6191906157f9565b905080612db05760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f742072656d6f76652075736572206f6666657273000000000000006044820152606401610fef565b7f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa336001604051612de29291906157dd565b60405180910390a16001935050505090565b606060018054610ed19061584b565b60148054612e109061584b565b80601f0160208091040260200160405190810160405280929190818152602001828054612e3c9061584b565b8015612e895780601f10612e5e57610100808354040283529160200191612e89565b820191906000526020600020905b815481529060010190602001808311612e6c57829003601f168201915b505050505081565b336000908152600b602052604090205460ff16612ec05760405162461bcd60e51b8152600401610fef90615885565b6018612ecc8382615bdd565b506019612ed98282615bdd565b507fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec68282604051611f12929190615d4b565b336001600160a01b03841603612f6e5760405162461bcd60e51b815260206004820152602260248201527f596f752063616e6e6f742073656e6420636172647320746f20796f757273656c604482015261331760f11b6064820152608401610fef565b6001600160a01b038316612f945760405162461bcd60e51b8152600401610fef906158ab565b60005b60ff811682111561326357336000908152601e6020526040812081858560ff8616818110612fc757612fc76157c7565b9050602002016020810190612fdc919061541a565b60ff908116825260208201929092526040016000205416116130105760405162461bcd60e51b8152600401610fef90615a16565b336000908152601e6020526040812090848460ff8516818110613035576130356157c7565b905060200201602081019061304a919061541a565b60ff9081168252602082019290925260400160009081208054909216919061307183615a4d565b91906101000a81548160ff021916908360ff16021790555050601e6000856001600160a01b03166001600160a01b03168152602001908152602001600020600084848460ff168181106130c6576130c66157c7565b90506020020160208101906130db919061541a565b60ff908116825260208201929092526040016000908120805490921691906131028361582c565b91906101000a81548160ff021916908360ff16021790555050601a60029054906101000a900460ff1615613251576009546000906001600160a01b0316632edb5fcf33868660ff871681811061315a5761315a6157c7565b905060200201602081019061316f919061541a565b6040518363ffffffff1660e01b815260040161318c9291906157dd565b602060405180830381865afa1580156131a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cd91906157f9565b336000908152601e602052604081209192509060019082878760ff88168181106131f9576131f96157c7565b905060200201602081019061320e919061541a565b60ff9081168252602082019290925260400160002054161190508115806132325750805b61324e5760405162461bcd60e51b8152600401610fef90615b25565b50505b8061325b8161582c565b915050612f97565b507f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b338484846040516132999493929190615d79565b60405180910390a1505050565b6132b133838361456e565b5050565b336000908152600b602052604090205460ff166132e45760405162461bcd60e51b8152600401610fef90615885565b60005b60798160ff16116132b1576001600160a01b0382166000908152601e6020908152604080832060ff8086168552925282208054909116916133278361582c565b91906101000a81548160ff021916908360ff16021790555050808061334b9061582c565b9150506132e7565b6009546001600160a01b0316331461337d5760405162461bcd60e51b8152600401610fef90615975565b6001600160a01b0384166133a35760405162461bcd60e51b8152600401610fef906158ab565b6001600160a01b0382166133c95760405162461bcd60e51b8152600401610fef906158ab565b6001600160a01b0384166000908152601e6020908152604080832060ff80881685529252909120541661344d5760405162461bcd60e51b815260206004820152602660248201527f55736572202866726f6d2920646f6573206e6f74206861766520636172642028604482015265333937b6949760d11b6064820152608401610fef565b6001600160a01b0382166000908152601e6020908152604080832060ff8086168552925290912054166134cd5760405162461bcd60e51b815260206004820152602260248201527f557365722028746f2920646f6573206e6f74206861766520636172642028746f604482015261149760f11b6064820152608401610fef565b6001600160a01b0384166000908152601e6020908152604080832060ff80881685529252822080549091169161350283615a4d565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0384166000908152601e6020908152604080832088851684529091528120805490921692506135518361582c565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0384166000908152601e6020908152604080832086851684529091528120805490921692506135a083615a4d565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601e6020908152604080832086851684529091528120805490921692506135ef8361582c565b82546101009290920a60ff818102199093169183160217909155604080516001600160a01b038881168252861660208201528683169181019190915290831660608201527f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524915060800160405180910390a150505050565b61367133836142d7565b61368d5760405162461bcd60e51b8152600401610fef90615ad8565b611ca48484848461463c565b336000908152600b602052604090205460ff166136c85760405162461bcd60e51b8152600401610fef90615885565b6000811161373e5760405162461bcd60e51b815260206004820152603760248201527f546865207072697a6520666f7220636f6d706c6574696e67207468652062757260448201527f6e696e6720616c62756d206d757374206265203e20302e0000000000000000006064820152608401610fef565b601655565b336000908152601e6020908152604080832060ff80861685529252909120541661377f5760405162461bcd60e51b8152600401610fef90615a16565b601a54610100900460ff161561385357600954604051632edb5fcf60e01b81526000916001600160a01b031690632edb5fcf906137c290339086906004016157dd565b602060405180830381865afa1580156137df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061380391906157f9565b336000908152601e6020908152604080832060ff808816855292529091205491925060019116118115806138345750805b6138505760405162461bcd60e51b8152600401610fef90615b25565b50505b336000908152601e6020908152604080832060ff80861685529252822080549091169161387f83615a4d565b91906101000a81548160ff021916908360ff1602179055505060006014604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016138f491815260200190565b600060405180830381865af4158015613911573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139399190810190615db0565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161396a9493929190615c9c565b60405160208183030381529060405290506132b133828460ff166001614274565b60188054612e109061584b565b6060610aff8261466f565b336000908152600b602052604090205460ff166139d25760405162461bcd60e51b8152600401610fef90615885565b6001600160a01b0381166139f85760405162461bcd60e51b8152600401610fef906158ab565b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f906020016111d9565b601354601754600091606491613a5f919060ff16615e1d565b613a699190615b5c565b905090565b336000908152600b602052604090205460ff16613a9d5760405162461bcd60e51b8152600401610fef90615885565b601a805460ff1916911515919091179055565b336000908152600b602052604090205460ff16613adf5760405162461bcd60e51b8152600401610fef90615885565b6001600160a01b038116613b055760405162461bcd60e51b8152600401610fef906158ab565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa202906020016111d9565b60198054612e109061584b565b6008546001600160a01b03163314613bb15760405162461bcd60e51b815260206004820152601460248201527327b7363c903830b1b5b99031b7b73a3930b1ba1760611b6044820152606401610fef565b601255565b336000908152600b602052604090205460ff16613be55760405162461bcd60e51b8152600401610fef90615885565b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611107565b613c346144c2565b6001600160a01b038116613c995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fef565b6121fd8161451c565b336000908152600b602052604090205460ff16613cd15760405162461bcd60e51b8152600401610fef90615885565b601a80549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610aff5750610aff82614777565b6000818152600260205260409020546001600160a01b03166121fd5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fef565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613da482612372565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e4c9190615958565b6001600160a01b031614613ea25760405162461bcd60e51b815260206004820152601760248201527f54686973207061636b206973206e6f7420796f7572732e0000000000000000006044820152606401610fef565b600f835110613ee95760405162461bcd60e51b815260206004820152601360248201527210d85c99081b1a5b5a5d08195e18d959591959606a1b6044820152606401610fef565b601a5460ff1615613fd9576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613f3690339089908990899089906004016158d1565b602060405180830381865af4158015613f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f779190615958565b6001600160a01b0381166000908152600e602052604090205490915060ff16613fd75760405162461bcd60e51b815260206004820152601260248201527124b73b30b634b21039b4b3b730ba3ab9329760711b6044820152606401610fef565b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b15801561402757600080fd5b505af115801561403b573d6000803e3d6000fd5b50505050600660125461404e9190615b5c565b60125461405b9190615ac5565b6013600082825461406c91906159ea565b90915550600090505b83518160ff16101561424057838160ff1681518110614096576140966157c7565b602002602001015160ff166078146140e457611389601c6000868460ff16815181106140c4576140c46157c7565b602002602001015160ff1681526020019081526020016000205410614115565b6078600052601c6020527f6ec98d8d39cd9309189aa82063f91dfcf737ce38f7d69eacedb0acfc0872981c54610bb9115b6141615760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fef565b601c6000858360ff168151811061417a5761417a6157c7565b602002602001015160ff16815260200190815260200160002060008154809291906141a490615b7e565b90915550506001600160a01b0386166000908152601e602052604081208551909190869060ff85169081106141db576141db6157c7565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff16809291906142149061582c565b91906101000a81548160ff021916908360ff1602179055505080806142389061582c565b915050614075565b507fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e3858486604051611c1193929190615e34565b6010546000818152601b6020526040902081815560018101849055600201805461ff00191661010060ff8516021790556142ae85826147c7565b6142b881856147e1565b6001601060008282546142cb91906159ea565b90915550505050505050565b6000806142e383612372565b9050806001600160a01b0316846001600160a01b0316148061432a57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b8061126a5750836001600160a01b031661434384610f54565b6001600160a01b031614949350505050565b826001600160a01b031661436882612372565b6001600160a01b03161461438e5760405162461bcd60e51b8152600401610fef90615e68565b6001600160a01b0382166143f05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fef565b826001600160a01b031661440382612372565b6001600160a01b0316146144295760405162461bcd60e51b8152600401610fef90615e68565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6121fd816148a5565b6007546001600160a01b0316331461252b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fef565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036145cf5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fef565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b614647848484614355565b614653848484846148e5565b611ca45760405162461bcd60e51b8152600401610fef90615ead565b606061467a82613d10565b600082815260066020526040812080546146939061584b565b80601f01602080910402602001604051908101604052809291908181526020018280546146bf9061584b565b801561470c5780601f106146e15761010080835404028352916020019161470c565b820191906000526020600020905b8154815290600101906020018083116146ef57829003601f168201915b50505050509050600061472a60408051602081019091526000815290565b9050805160000361473c575092915050565b81511561476e578082604051602001614756929190615eff565b60405160208183030381529060405292505050919050565b61126a846149e3565b60006001600160e01b031982166380ac58cd60e01b14806147a857506001600160e01b03198216635b5e139f60e01b145b80610aff57506301ffc9a760e01b6001600160e01b0319831614610aff565b6132b1828260405180602001604052806000815250614a57565b6000828152600260205260409020546001600160a01b031661485c5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fef565b60008281526006602052604090206148748282615bdd565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790602001611f12565b6148ae81614a8a565b600081815260066020526040902080546148c79061584b565b1590506121fd5760008181526006602052604081206121fd91614e14565b60006001600160a01b0384163b156149db57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614929903390899088908890600401615f2e565b6020604051808303816000875af1925050508015614964575060408051601f3d908101601f1916820190925261496191810190615f61565b60015b6149c1573d808015614992576040519150601f19603f3d011682016040523d82523d6000602084013e614997565b606091505b5080516000036149b95760405162461bcd60e51b8152600401610fef90615ead565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061126a565b50600161126a565b60606149ee82613d10565b6000614a0560408051602081019091526000815290565b90506000815111614a255760405180602001604052806000815250614a50565b80614a2f84614b1f565b604051602001614a40929190615eff565b6040516020818303038152906040525b9392505050565b614a618383614bb1565b614a6e60008484846148e5565b6110905760405162461bcd60e51b8152600401610fef90615ead565b6000614a9582612372565b9050614aa082612372565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606000614b2c83614d3c565b60010190506000816001600160401b03811115614b4b57614b4b615018565b6040519080825280601f01601f191660200182016040528015614b75576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084614b7f57509392505050565b6001600160a01b038216614c075760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fef565b6000818152600260205260409020546001600160a01b031615614c6c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fef565b6000818152600260205260409020546001600160a01b031615614cd15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fef565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310614d7b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614da7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310614dc557662386f26fc10000830492506010015b6305f5e1008310614ddd576305f5e100830492506008015b6127108310614df157612710830492506004015b60648310614e03576064830492506002015b600a8310610aff5760010192915050565b508054614e209061584b565b6000825580601f10614e30575050565b601f0160209004906000526020600020908101906121fd91905b80821115614e5e5760008155600101614e4a565b5090565b6001600160e01b0319811681146121fd57600080fd5b600060208284031215614e8a57600080fd5b8135614a5081614e62565b6001600160a01b03811681146121fd57600080fd5b600060208284031215614ebc57600080fd5b8135614a5081614e95565b600081518084526020808501945080840160005b83811015614efa57815160ff1687529582019590820190600101614edb565b509495945050505050565b606081526000614f186060830186614ec7565b602083820381850152614f2b8287614ec7565b8481036040860152855180825282870193509082019060005b81811015614f62578451151583529383019391830191600101614f44565b509098975050505050505050565b60005b83811015614f8b578181015183820152602001614f73565b50506000910152565b60008151808452614fac816020860160208601614f70565b601f01601f19169290920160200192915050565b602081526000614a506020830184614f94565b600060208284031215614fe557600080fd5b5035919050565b60008060408385031215614fff57600080fd5b823561500a81614e95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561505657615056615018565b604052919050565b60006001600160401b0382111561507757615077615018565b5060051b60200190565b803560ff8116811461509257600080fd5b919050565b600082601f8301126150a857600080fd5b813560206150bd6150b88361505e565b61502e565b82815260059290921b840181019181810190868411156150dc57600080fd5b8286015b848110156150fe576150f181615081565b83529183019183016150e0565b509695505050505050565b6000806000806060858703121561511f57600080fd5b8435935060208501356001600160401b038082111561513d57600080fd5b61514988838901615097565b9450604087013591508082111561515f57600080fd5b818701915087601f83011261517357600080fd5b81358181111561518257600080fd5b88602082850101111561519457600080fd5b95989497505060200194505050565b600080604083850312156151b657600080fd5b82356151c181614e95565b91506151cf60208401615081565b90509250929050565b600082601f8301126151e957600080fd5b813560206151f96150b88361505e565b82815260059290921b8401810191818101908684111561521857600080fd5b8286015b848110156150fe5780356001600160401b0381111561523b5760008081fd5b6152498986838b0101615097565b84525091830191830161521c565b60008083601f84011261526957600080fd5b5081356001600160401b0381111561528057600080fd5b6020830191508360208260051b850101111561529b57600080fd5b9250929050565b6000806000806000608086880312156152ba57600080fd5b6152c386615081565b94506020808701356001600160401b03808211156152e057600080fd5b818901915089601f8301126152f457600080fd5b81356153026150b88261505e565b81815260059190911b8301840190848101908c83111561532157600080fd5b938501935b8285101561533f57843582529385019390850190615326565b98505050604089013592508083111561535757600080fd5b6153638a848b016151d8565b9550606089013592508083111561537957600080fd5b505061538788828901615257565b969995985093965092949392505050565b600080602083850312156153ab57600080fd5b82356001600160401b038111156153c157600080fd5b6153cd85828601615257565b90969095509350505050565b6000806000606084860312156153ee57600080fd5b83356153f981614e95565b9250602084013561540981614e95565b929592945050506040919091013590565b60006020828403121561542c57600080fd5b614a5082615081565b60008060006060848603121561544a57600080fd5b833561545581614e95565b92506020840135915060408401356001600160401b0381111561547757600080fd5b61548386828701615097565b9150509250925092565b80151581146121fd57600080fd5b6000602082840312156154ad57600080fd5b8135614a508161548d565b60006001600160401b038211156154d1576154d1615018565b50601f01601f191660200190565b60006154ed6150b8846154b8565b905082815283838301111561550157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261552957600080fd5b614a50838335602085016154df565b60008060008060008060c0878903121561555157600080fd5b863561555c81614e95565b9550602087013561556c81614e95565b9450604087013561557c81614e95565b9350606087013561558c81614e95565b925060808701356001600160401b038111156155a757600080fd5b6155b389828a01615518565b92505060a08701356155c481614e95565b809150509295509295509295565b600080604083850312156155e557600080fd5b82356001600160401b03808211156155fc57600080fd5b61560886838701615518565b9350602085013591508082111561561e57600080fd5b5061562b85828601615518565b9150509250929050565b60008060006040848603121561564a57600080fd5b833561565581614e95565b925060208401356001600160401b0381111561567057600080fd5b61567c86828701615257565b9497909650939450505050565b6000806040838503121561569c57600080fd5b82356156a781614e95565b915060208301356156b78161548d565b809150509250929050565b600080600080608085870312156156d857600080fd5b84356156e381614e95565b93506156f160208601615081565b9250604085013561570181614e95565b915061570f60608601615081565b905092959194509250565b6000806000806080858703121561573057600080fd5b843561573b81614e95565b9350602085013561574b81614e95565b92506040850135915060608501356001600160401b0381111561576d57600080fd5b8501601f8101871361577e57600080fd5b61578d878235602084016154df565b91505092959194509250565b600080604083850312156157ac57600080fd5b82356157b781614e95565b915060208301356156b781614e95565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392909216825260ff16602082015260400190565b60006020828403121561580b57600080fd5b8151614a508161548d565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff810361584257615842615816565b60010192915050565b600181811c9082168061585f57607f821691505b60208210810361587f57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b6020808252600c908201526b3130b21030b2323932b9b99760a11b604082015260600190565b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561592357845160ff1683529383019391830191600101615904565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b60006020828403121561596a57600080fd5b8151614a5081614e95565b60208082526015908201527427b7363c9037b33332b9399031b7b73a3930b1ba1760591b604082015260600190565b6000808335601e198436030181126159bb57600080fd5b8301803591506001600160401b038211156159d557600080fd5b60200191503681900382131561529b57600080fd5b80820180821115610aff57610aff615816565b600060208284031215615a0f57600080fd5b5051919050565b6020808252601c908201527f596f7520646f6573206e6f742068617665207468697320636172642e00000000604082015260600190565b600060ff821680615a6057615a60615816565b6000190192915050565b8183526000602080850194508260005b85811015614efa5760ff615a8d83615081565b1687529582019590820190600101615a7a565b6001600160a01b03841681526040602082018190526000906112679083018486615a6a565b81810381811115610aff57610aff615816565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082615b7957634e487b7160e01b600052601260045260246000fd5b500490565b600060018201615b9057615b90615816565b5060010190565b601f82111561109057600081815260208120601f850160051c81016020861015615bbe5750805b601f850160051c820191505b8181101561150357828155600101615bca565b81516001600160401b03811115615bf657615bf6615018565b615c0a81615c04845461584b565b84615b97565b602080601f831160018114615c3f5760008415615c275750858301515b600019600386901b1c1916600185901b178555611503565b600085815260208120601f198616915b82811015615c6e57888601518255948401946001909101908401615c4f565b5085821015615c8c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615caa8161584b565b60018281168015615cc25760018114615cd757615d06565b60ff1984168752821515830287019450615d06565b8a60005260208060002060005b85811015615cfd5781548a820152908401908201615ce4565b50505082870194505b505050508551615d1a818360208a01614f70565b8551910190615d2d818360208901614f70565b8451910190615d40818360208801614f70565b019695505050505050565b604081526000615d5e6040830185614f94565b8281036020840152615d708185614f94565b95945050505050565b6001600160a01b03858116825284166020820152606060408201819052600090615da69083018486615a6a565b9695505050505050565b600060208284031215615dc257600080fd5b81516001600160401b03811115615dd857600080fd5b8201601f81018413615de957600080fd5b8051615df76150b8826154b8565b818152856020838501011115615e0c57600080fd5b615d70826020830160208601614f70565b8082028115828204841417610aff57610aff615816565b6001600160a01b0384168152606060208201819052600090615e5890830185614ec7565b9050826040830152949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615f11818460208801614f70565b835190830190615f25818360208801614f70565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615da690830184614f94565b600060208284031215615f7357600080fd5b8151614a5081614e6256fea26469706673582212208ff8d7b5090c37bcec4ee454063a81cffc1364cff8658d383f8cefc59f4a6b1964736f6c63430008140033", + "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040516200592d3803806200592d8339810160408190526200007d91620003ae565b336040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000d1919062000554565b506001620000e0828262000554565b5050506001600160a01b0381166200011257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200011d8162000303565b50336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a805486841690831617905560098054928716929091169190911790556017620001a4838262000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b81840152935162000203946017949390910162000620565b6040516020818303038152906040526015908162000222919062000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b81840152935162000281946017949390910162000620565b60405160208183030381529060405260169081620002a0919062000554565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015620002f6576000818152601a602052604090206001905580620002ed81620006dd565b915050620002c5565b5050505050505062000705565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003a55781810151838201526020016200038b565b50506000910152565b60008060008060008060c08789031215620003c857600080fd5b620003d38762000355565b9550620003e36020880162000355565b9450620003f36040880162000355565b9350620004036060880162000355565b60808801519093506001600160401b03808211156200042157600080fd5b818901915089601f8301126200043657600080fd5b8151818111156200044b576200044b62000372565b604051601f8201601f19908116603f0116810190838211818310171562000476576200047662000372565b816040528281528c60208487010111156200049057600080fd5b620004a383602083016020880162000388565b8096505050505050620004b960a0880162000355565b90509295509295509295565b600181811c90821680620004da57607f821691505b602082108103620004fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054f57600081815260208120601f850160051c810160208610156200052a5750805b601f850160051c820191505b818110156200054b5782815560010162000536565b5050505b505050565b81516001600160401b0381111562000570576200057062000372565b6200058881620005818454620004c5565b8462000501565b602080601f831160018114620005c05760008415620005a75750858301515b600019600386901b1c1916600185901b1785556200054b565b600085815260208120601f198616915b82811015620005f157888601518255948401946001909101908401620005d0565b5085821015620006105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008086546200063081620004c5565b600182811680156200064b5760018114620006615762000692565b60ff198416875282151583028701945062000692565b8a60005260208060002060005b85811015620006895781548a8201529084019082016200066e565b50505082870194505b505050508551620006a8818360208a0162000388565b8551910190620006bd81836020890162000388565b8451910190620006d281836020880162000388565b019695505050505050565b600060018201620006fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b61521880620007156000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", "linkReferences": { "contracts/gamma/libs/LibControlMgmt.sol": { "LibControlMgmt": [ { "length": 20, - "start": 5039 + "start": 5805 }, { "length": 20, - "start": 5727 + "start": 6489 }, { "length": 20, - "start": 10039 + "start": 10458 }, { "length": 20, - "start": 16080 + "start": 15317 } ] }, @@ -1742,11 +1945,11 @@ "LibPackVerifier": [ { "length": 20, - "start": 5308 + "start": 6067 }, { "length": 20, - "start": 16844 + "start": 15807 } ] }, @@ -1754,7 +1957,7 @@ "LibStringUtils": [ { "length": 20, - "start": 15234 + "start": 14469 } ] } @@ -1764,19 +1967,19 @@ "LibControlMgmt": [ { "length": 20, - "start": 4329 + "start": 3992 }, { "length": 20, - "start": 5017 + "start": 4676 }, { "length": 20, - "start": 9329 + "start": 8645 }, { "length": 20, - "start": 15370 + "start": 13504 } ] }, @@ -1784,11 +1987,11 @@ "LibPackVerifier": [ { "length": 20, - "start": 4598 + "start": 4254 }, { "length": 20, - "start": 16134 + "start": 13994 } ] }, @@ -1796,7 +1999,7 @@ "LibStringUtils": [ { "length": 20, - "start": 14524 + "start": 12656 } ] } diff --git a/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json b/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json index 27b779bb..33cf9eb9 100644 --- a/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json +++ b/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json @@ -8,6 +8,109 @@ "stateMutability": "nonpayable", "type": "constructor" }, + { + "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" + }, { "anonymous": false, "inputs": [ @@ -384,8 +487,8 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6113c380620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610f4f565b610256565b60405190151581526020015b60405180910390f35b61011f610267565b60405161010e9190610fbc565b61013f61013a366004610fcf565b6102f9565b6040516001600160a01b03909116815260200161010e565b61016a610165366004611004565b610320565b005b61016a61017a36600461102e565b61043a565b61016a61018d36600461102e565b61046c565b61016a6101a0366004610fcf565b610487565b61013f6101b3366004610fcf565b6104b8565b6101cb6101c636600461106a565b610518565b60405190815260200161010e565b61011f61059e565b61016a6101ef366004611085565b6105ad565b61016a6102023660046110d7565b6105bc565b61011f610215366004610fcf565b6105f4565b6101026102283660046111b3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000610261826105ff565b92915050565b606060008054610276906111e6565b80601f01602080910402602001604051908101604052809291908181526020018280546102a2906111e6565b80156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b5050505050905090565b600061030482610624565b506000908152600460205260409020546001600160a01b031690565b600061032b826104b8565b9050806001600160a01b0316836001600160a01b03160361039d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103b957506103b98133610228565b61042b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610394565b6104358383610683565b505050565b610445335b826106f1565b6104615760405162461bcd60e51b815260040161039490611220565b610435838383610770565b610435838383604051806020016040528060008152506105bc565b6104903361043f565b6104ac5760405162461bcd60e51b815260040161039490611220565b6104b5816108d4565b50565b6000818152600260205260408120546001600160a01b0316806102615760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b60006001600160a01b0382166105825760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610394565b506001600160a01b031660009081526003602052604090205490565b606060018054610276906111e6565b6105b83383836108dd565b5050565b6105c633836106f1565b6105e25760405162461bcd60e51b815260040161039490611220565b6105ee848484846109ab565b50505050565b6060610261826109de565b60006001600160e01b03198216632483248360e11b1480610261575061026182610ae6565b6000818152600260205260409020546001600160a01b03166104b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106b8826104b8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806106fd836104b8565b9050806001600160a01b0316846001600160a01b0316148061074457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107685750836001600160a01b031661075d846102f9565b6001600160a01b0316145b949350505050565b826001600160a01b0316610783826104b8565b6001600160a01b0316146107a95760405162461bcd60e51b81526004016103949061126d565b6001600160a01b03821661080b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b826001600160a01b031661081e826104b8565b6001600160a01b0316146108445760405162461bcd60e51b81526004016103949061126d565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6104b581610b36565b816001600160a01b0316836001600160a01b03160361093e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610394565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109b6848484610770565b6109c284848484610b76565b6105ee5760405162461bcd60e51b8152600401610394906112b2565b60606109e982610624565b60008281526006602052604081208054610a02906111e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2e906111e6565b8015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b505050505090506000610a9960408051602081019091526000815290565b90508051600003610aab575092915050565b815115610add578082604051602001610ac5929190611304565b60405160208183030381529060405292505050919050565b61076884610c77565b60006001600160e01b031982166380ac58cd60e01b1480610b1757506001600160e01b03198216635b5e139f60e01b145b8061026157506301ffc9a760e01b6001600160e01b0319831614610261565b610b3f81610ceb565b60008181526006602052604090208054610b58906111e6565b1590506104b55760008181526006602052604081206104b591610eeb565b60006001600160a01b0384163b15610c6c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610bba903390899088908890600401611333565b6020604051808303816000875af1925050508015610bf5575060408051601f3d908101601f19168201909252610bf291810190611370565b60015b610c52573d808015610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b508051600003610c4a5760405162461bcd60e51b8152600401610394906112b2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610768565b506001949350505050565b6060610c8282610624565b6000610c9960408051602081019091526000815290565b90506000815111610cb95760405180602001604052806000815250610ce4565b80610cc384610d80565b604051602001610cd4929190611304565b6040516020818303038152906040525b9392505050565b6000610cf6826104b8565b9050610d01826104b8565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606000610d8d83610e13565b600101905060008167ffffffffffffffff811115610dad57610dad6110c1565b6040519080825280601f01601f191660200182016040528015610dd7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610de157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e525772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e7e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e9c57662386f26fc10000830492506010015b6305f5e1008310610eb4576305f5e100830492506008015b6127108310610ec857612710830492506004015b60648310610eda576064830492506002015b600a83106102615760010192915050565b508054610ef7906111e6565b6000825580601f10610f07575050565b601f0160209004906000526020600020908101906104b591905b80821115610f355760008155600101610f21565b5090565b6001600160e01b0319811681146104b557600080fd5b600060208284031215610f6157600080fd5b8135610ce481610f39565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b602081526000610ce46020830184610f90565b600060208284031215610fe157600080fd5b5035919050565b80356001600160a01b0381168114610fff57600080fd5b919050565b6000806040838503121561101757600080fd5b61102083610fe8565b946020939093013593505050565b60008060006060848603121561104357600080fd5b61104c84610fe8565b925061105a60208501610fe8565b9150604084013590509250925092565b60006020828403121561107c57600080fd5b610ce482610fe8565b6000806040838503121561109857600080fd5b6110a183610fe8565b9150602083013580151581146110b657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156110ed57600080fd5b6110f685610fe8565b935061110460208601610fe8565b925060408501359150606085013567ffffffffffffffff8082111561112857600080fd5b818701915087601f83011261113c57600080fd5b81358181111561114e5761114e6110c1565b604051601f8201601f19908116603f01168101908382118183101715611176576111766110c1565b816040528281528a602084870101111561118f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156111c657600080fd5b6111cf83610fe8565b91506111dd60208401610fe8565b90509250929050565b600181811c908216806111fa57607f821691505b60208210810361121a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351611316818460208801610f6c565b83519083019061132a818360208801610f6c565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061136690830184610f90565b9695505050505050565b60006020828403121561138257600080fd5b8151610ce481610f3956fea2646970667358221220e08a3b2b261b9ae224ea2bfae48f715a5b58c0f2d8e5e6ea25c65957bbb0dce564736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610f4f565b610256565b60405190151581526020015b60405180910390f35b61011f610267565b60405161010e9190610fbc565b61013f61013a366004610fcf565b6102f9565b6040516001600160a01b03909116815260200161010e565b61016a610165366004611004565b610320565b005b61016a61017a36600461102e565b61043a565b61016a61018d36600461102e565b61046c565b61016a6101a0366004610fcf565b610487565b61013f6101b3366004610fcf565b6104b8565b6101cb6101c636600461106a565b610518565b60405190815260200161010e565b61011f61059e565b61016a6101ef366004611085565b6105ad565b61016a6102023660046110d7565b6105bc565b61011f610215366004610fcf565b6105f4565b6101026102283660046111b3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000610261826105ff565b92915050565b606060008054610276906111e6565b80601f01602080910402602001604051908101604052809291908181526020018280546102a2906111e6565b80156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b5050505050905090565b600061030482610624565b506000908152600460205260409020546001600160a01b031690565b600061032b826104b8565b9050806001600160a01b0316836001600160a01b03160361039d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103b957506103b98133610228565b61042b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610394565b6104358383610683565b505050565b610445335b826106f1565b6104615760405162461bcd60e51b815260040161039490611220565b610435838383610770565b610435838383604051806020016040528060008152506105bc565b6104903361043f565b6104ac5760405162461bcd60e51b815260040161039490611220565b6104b5816108d4565b50565b6000818152600260205260408120546001600160a01b0316806102615760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b60006001600160a01b0382166105825760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610394565b506001600160a01b031660009081526003602052604090205490565b606060018054610276906111e6565b6105b83383836108dd565b5050565b6105c633836106f1565b6105e25760405162461bcd60e51b815260040161039490611220565b6105ee848484846109ab565b50505050565b6060610261826109de565b60006001600160e01b03198216632483248360e11b1480610261575061026182610ae6565b6000818152600260205260409020546001600160a01b03166104b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106b8826104b8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806106fd836104b8565b9050806001600160a01b0316846001600160a01b0316148061074457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107685750836001600160a01b031661075d846102f9565b6001600160a01b0316145b949350505050565b826001600160a01b0316610783826104b8565b6001600160a01b0316146107a95760405162461bcd60e51b81526004016103949061126d565b6001600160a01b03821661080b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b826001600160a01b031661081e826104b8565b6001600160a01b0316146108445760405162461bcd60e51b81526004016103949061126d565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6104b581610b36565b816001600160a01b0316836001600160a01b03160361093e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610394565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109b6848484610770565b6109c284848484610b76565b6105ee5760405162461bcd60e51b8152600401610394906112b2565b60606109e982610624565b60008281526006602052604081208054610a02906111e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2e906111e6565b8015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b505050505090506000610a9960408051602081019091526000815290565b90508051600003610aab575092915050565b815115610add578082604051602001610ac5929190611304565b60405160208183030381529060405292505050919050565b61076884610c77565b60006001600160e01b031982166380ac58cd60e01b1480610b1757506001600160e01b03198216635b5e139f60e01b145b8061026157506301ffc9a760e01b6001600160e01b0319831614610261565b610b3f81610ceb565b60008181526006602052604090208054610b58906111e6565b1590506104b55760008181526006602052604081206104b591610eeb565b60006001600160a01b0384163b15610c6c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610bba903390899088908890600401611333565b6020604051808303816000875af1925050508015610bf5575060408051601f3d908101601f19168201909252610bf291810190611370565b60015b610c52573d808015610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b508051600003610c4a5760405162461bcd60e51b8152600401610394906112b2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610768565b506001949350505050565b6060610c8282610624565b6000610c9960408051602081019091526000815290565b90506000815111610cb95760405180602001604052806000815250610ce4565b80610cc384610d80565b604051602001610cd4929190611304565b6040516020818303038152906040525b9392505050565b6000610cf6826104b8565b9050610d01826104b8565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606000610d8d83610e13565b600101905060008167ffffffffffffffff811115610dad57610dad6110c1565b6040519080825280601f01601f191660200182016040528015610dd7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610de157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e525772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e7e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e9c57662386f26fc10000830492506010015b6305f5e1008310610eb4576305f5e100830492506008015b6127108310610ec857612710830492506004015b60648310610eda576064830492506002015b600a83106102615760010192915050565b508054610ef7906111e6565b6000825580601f10610f07575050565b601f0160209004906000526020600020908101906104b591905b80821115610f355760008155600101610f21565b5090565b6001600160e01b0319811681146104b557600080fd5b600060208284031215610f6157600080fd5b8135610ce481610f39565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b602081526000610ce46020830184610f90565b600060208284031215610fe157600080fd5b5035919050565b80356001600160a01b0381168114610fff57600080fd5b919050565b6000806040838503121561101757600080fd5b61102083610fe8565b946020939093013593505050565b60008060006060848603121561104357600080fd5b61104c84610fe8565b925061105a60208501610fe8565b9150604084013590509250925092565b60006020828403121561107c57600080fd5b610ce482610fe8565b6000806040838503121561109857600080fd5b6110a183610fe8565b9150602083013580151581146110b657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156110ed57600080fd5b6110f685610fe8565b935061110460208601610fe8565b925060408501359150606085013567ffffffffffffffff8082111561112857600080fd5b818701915087601f83011261113c57600080fd5b81358181111561114e5761114e6110c1565b604051601f8201601f19908116603f01168101908382118183101715611176576111766110c1565b816040528281528a602084870101111561118f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156111c657600080fd5b6111cf83610fe8565b91506111dd60208401610fe8565b90509250929050565b600181811c908216806111fa57607f821691505b60208210810361121a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351611316818460208801610f6c565b83519083019061132a818360208801610f6c565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061136690830184610f90565b9695505050505050565b60006020828403121561138257600080fd5b8151610ce481610f3956fea2646970667358221220e08a3b2b261b9ae224ea2bfae48f715a5b58c0f2d8e5e6ea25c65957bbb0dce564736f6c63430008140033", + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61106480620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json b/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json index 13fbf43a..c7c5c39c 100644 --- a/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json +++ b/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json @@ -3,6 +3,119 @@ "contractName": "NofGammaOffersV4", "sourceName": "contracts/gamma/GammaOffers.v4.sol", "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_cardsContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ExchangeError", + "type": "error" + }, + { + "inputs": [], + "name": "GammaCardsContractNotSet", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCard", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCardNumber", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidOfferId", + "type": "error" + }, + { + "inputs": [], + "name": "OfferAlreadyExists", + "type": "error" + }, + { + "inputs": [], + "name": "OfferDoesNotExists", + "type": "error" + }, + { + "inputs": [], + "name": "OfferNotDeleted", + "type": "error" + }, + { + "inputs": [], + "name": "OffersMaximumAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCardsContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "RemoveOfferFromCardNumberMapping_DoNotMatch", + "type": "error" + }, + { + "inputs": [], + "name": "RemoveOfferFromUserMapping_DoNotMatch", + "type": "error" + }, + { + "inputs": [], + "name": "UserAlreadyHasCard", + "type": "error" + }, + { + "inputs": [], + "name": "UserDoesNotHaveCard", + "type": "error" + }, { "anonymous": false, "inputs": [], @@ -631,19 +744,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_cardsContract", - "type": "address" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -909,18 +1009,18 @@ "type": "function" } ], - "bytecode": "0x60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b5062000036336200003c565b6200008c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613c1f806200009c6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b3659614610515578063e359a0a114610528578063e5e5f7321461053b578063f2fde38b1461054e578063fc9e80fc1461056157600080fd5b8063ce7483d5146104a4578063cf86f8e5146104c7578063d250f03a146104cf578063d827a8f4146104e2578063e02f97231461050257600080fd5b806390222aa1116100ff57806390222aa11461044e5780639618b333146104565780639f91506914610469578063ba79b77b14610489578063c08029e71461049157600080fd5b80637594a6ed146103d35780638400a189146103f35780638a72ea6a146104065780638da5cb5b1461042957600080fd5b80633a027073116101be5780635a919aeb116101825780635a919aeb146103905780635bbfbfd614610399578063619980dc146103ac5780637065cb48146103b8578063715018a6146103cb57600080fd5b80633a0270731461032f5780633e293e16146103425780633ee992ee146103555780634c7a7ad31461036a57806358e57ebb1461037d57600080fd5b806329d3f60b1161020557806329d3f60b146102985780632edb5fcf146102d55780632f54bf6e146102e8578063322fba27146103145780633808dfe71461031c57600080fd5b80630cdb311714610237578063173825d91461025d57806317a1fed91461027257806319ab453c14610285575b600080fd5b61024a6102453660046132bf565b610574565b6040519081526020015b60405180910390f35b61027061026b3660046132bf565b6105c1565b005b610270610280366004613430565b610666565b6102706102933660046132bf565b6106a7565b6102c56102a63660046132bf565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610254565b6102c56102e33660046134b5565b610711565b6102c56102f63660046132bf565b6001600160a01b031660009081526002602052604090205460ff1690565b6102706107d0565b61027061032a3660046134e8565b61097e565b6102c561033d366004613501565b6109b2565b61027061035036600461351c565b6109fa565b61035d610a0b565b6040516102549190613682565b6102706103783660046132bf565b610b9f565b61027061038b3660046136f2565b610c48565b61024a600d5481565b6102c56103a73660046134b5565b610c8a565b600d54600454116102c5565b6102706103c63660046132bf565b610d0a565b610270610d80565b61024a6103e13660046132bf565b600b6020526000908152604090205481565b61035d610401366004613501565b610d94565b6104196104143660046134e8565b610f38565b604051610254949392919061370f565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610254565b60045461024a565b61035d6104643660046132bf565b611010565b61047c6104773660046134b5565b6111d2565b604051610254919061374a565b60055461024a565b61027061049f36600461375d565b6113e1565b61024a6104b2366004613501565b60ff166000908152600c602052604090205490565b600d5461024a565b600154610436906001600160a01b031681565b61024a6104f0366004613501565b600c6020526000908152604090205481565b6102706105103660046134e8565b61186e565b61047c6105233660046137b1565b6118a2565b61047c6105363660046134e8565b611aab565b6102706105493660046134e8565b611c66565b61027061055c3660046132bf565b611c9a565b6102c561056f3660046132bf565b611d13565b60006001600160a01b0382166105a55760405162461bcd60e51b815260040161059c906137e6565b60405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105f05760405162461bcd60e51b815260040161059c90613810565b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064b57600080fd5b505af415801561065f573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff166106955760405162461bcd60e51b815260040161059c90613810565b6106a184848484611fa6565b50505050565b6106af612654565b6001600160a01b0381166106d55760405162461bcd60e51b815260040161059c906137e6565b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff19169091179055565b60006001600160a01b0383166107395760405162461bcd60e51b815260040161059c906137e6565b60005b6001600160a01b0384166000908152600b60205260409020548110156107c4576001600160a01b0384166000908152600960205260409020805460ff851691908390811061078c5761078c613836565b600091825260209091206001600590920201015460ff16036107b25760019150506107ca565b806107bc81613862565b91505061073c565b50600090505b92915050565b3360009081526002602052604090205460ff166107ff5760405162461bcd60e51b815260040161059c90613810565b60005b60085481101561093f57600960006008838154811061082357610823613836565b60009182526020808320600360059093020191909101546001600160a01b03168352820192909252604001812061085991613094565b6000600b60006008848154811061087257610872613836565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a929190849081106108bc576108bc613836565b600091825260208083206001600590930201919091015460ff16835282019290925260400181206108ec91613094565b6000600c60006008848154811061090557610905613836565b600091825260208083206001600590930201919091015460ff1683528201929092526040019020558061093781613862565b915050610802565b506000600d81905561095390600890613094565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff166109ad5760405162461bcd60e51b815260040161059c90613810565b600555565b6000806109bf33846111d2565b60608101519091506001600160a01b031633146109df5750600092915050565b60006109f23385846000015160006126ae565b949350505050565b610a0683338484611fa6565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b9657838290600052602060002090600502016040518060a0016040529081600082018054610a629061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8e9061387b565b8015610adb5780601f10610ab057610100808354040283529160200191610adb565b820191906000526020600020905b815481529060010190602001808311610abe57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610b5b57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610b2c5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610a2f565b50505050905090565b3360009081526002602052604090205460ff16610bce5760405162461bcd60e51b815260040161059c90613810565b6001600160a01b038116610bf45760405162461bcd60e51b815260040161059c906137e6565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610c775760405162461bcd60e51b815260040161059c90613810565b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610cb95760405162461bcd60e51b815260040161059c90613810565b6000610cc584846111d2565b9050836001600160a01b031681606001516001600160a01b031614610cee5760009150506107ca565b6000610d018585846000015160006126ae565b95945050505050565b3360009081526002602052604090205460ff16610d395760405162461bcd60e51b815260040161059c90613810565b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610633565b610d88612654565b610d926000612824565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610f2d57838290600052602060002090600502016040518060a0016040529081600082018054610df99061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e259061387b565b8015610e725780601f10610e4757610100808354040283529160200191610e72565b820191906000526020600020905b815481529060010190602001808311610e5557829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ef257602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610ec35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610dc6565b505050509050919050565b60088181548110610f4857600080fd5b9060005260206000209060050201600091509050806000018054610f6b9061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f979061387b565b8015610fe45780601f10610fb957610100808354040283529160200191610fe4565b820191906000526020600020905b815481529060010190602001808311610fc757829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b0382166110385760405162461bcd60e51b815260040161059c906137e6565b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610f2d57838290600052602060002090600502016040518060a001604052908160008201805461109e9061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546110ca9061387b565b80156111175780601f106110ec57610100808354040283529160200191611117565b820191906000526020600020905b8154815290600101906020018083116110fa57829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561119757602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116111685790505b505050918352505060038201546001600160a01b0316602080830191909152600490920154604090910152908252600192909201910161106b565b6111da6130b5565b6001600160a01b0383166112005760405162461bcd60e51b815260040161059c906137e6565b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b818110156113d8578460ff1683828154811061124457611244613836565b600091825260209091206001600590920201015460ff16036113c65782818154811061127257611272613836565b90600052602060002090600502016040518060a001604052908160008201805461129b9061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546112c79061387b565b80156113145780601f106112e957610100808354040283529160200191611314565b820191906000526020600020905b8154815290600101906020018083116112f757829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561139457602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116113655790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015293506107ca92505050565b806113d081613862565b915050611226565b50610d01612874565b60006113ed83836111d2565b9050826001600160a01b031681606001516001600160a01b0316146114705760405162461bcd60e51b815260206004820152603360248201527f416e206f6666657220666f722074686973207573657220616e6420636172644e6044820152723ab6b132b9103237b713ba1032bc34b9ba399760691b606482015260840161059c565b604081015180516000036115455760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906114b090879089906004016138b5565b6020604051808303816000875af11580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f391906138d1565b156115405760405162461bcd60e51b815260206004820152601f60248201527f546865207573657220616c726561647920686173207468617420636172642e00604482015260640161059c565b6115f7565b6000805b82518160ff161015611599578660ff16838260ff168151811061156e5761156e613836565b602002602001015160ff16036115875760019150611599565b80611591816138ee565b915050611549565b50806115f55760405162461bcd60e51b815260206004820152602560248201527f5468652063617264206973206e6f7420696e2077616e746564436172644e756d6044820152643132b9399760d91b606482015260840161059c565b505b600061160a8585856000015160016126ae565b90508061166b5760405162461bcd60e51b815260206004820152602960248201527f4572726f722064656c6574696e67206f66666572206166746572207472616e7360448201526866657220636172647360b81b606482015260840161059c565b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b1580156116cb57600080fd5b505af11580156116df573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611715908a9088906004016138b5565b6020604051808303816000875af1158015611734573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175891906138d1565b6117a45760405162461bcd60e51b815260206004820152601f60248201527f45786368616e6765206572726f7220776974682077616c6c65742066726f6d00604482015260640161059c565b60015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906117d69088908a906004016138b5565b6020604051808303816000875af11580156117f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181991906138d1565b6118655760405162461bcd60e51b815260206004820152601d60248201527f45786368616e6765206572726f7220776974682077616c6c657420746f000000604482015260640161059c565b50505050505050565b3360009081526002602052604090205460ff1661189d5760405162461bcd60e51b815260040161059c90613810565b600655565b6118aa6130b5565b60005b600854811015611aa257826040516020016118c8919061390d565b60405160208183030381529060405280519060200120600882815481106118f1576118f1613836565b90600052602060002090600502016000016040516020016119129190613929565b6040516020818303038152906040528051906020012003611a90576008818154811061194057611940613836565b90600052602060002090600502016040518060a00160405290816000820180546119699061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546119959061387b565b80156119e25780601f106119b7576101008083540402835291602001916119e2565b820191906000526020600020905b8154815290600101906020018083116119c557829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a6257602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611a335790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b80611a9a81613862565b9150506118ad565b506107ca612874565b611ab36130b5565b6008548210611b045760405162461bcd60e51b815260206004820152601760248201527f4f6666657220496420646f6573206e6f74206578697374000000000000000000604482015260640161059c565b60088281548110611b1757611b17613836565b90600052602060002090600502016040518060a0016040529081600082018054611b409061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6c9061387b565b8015611bb95780601f10611b8e57610100808354040283529160200191611bb9565b820191906000526020600020905b815481529060010190602001808311611b9c57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611c3957602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611c0a5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611c955760405162461bcd60e51b815260040161059c90613810565b600455565b611ca2612654565b6001600160a01b038116611d075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059c565b611d1081612824565b50565b6001546000906001600160a01b03163314611d8a5760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792067616d6d6120636172647320636f6e74726163742063616e2063616044820152703636103a3434b990333ab731ba34b7b71760791b606482015260840161059c565b6001600160a01b038216611db05760405162461bcd60e51b815260040161059c906137e6565b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611f29576000838281548110611df257611df2613836565b90600052602060002090600502016000018054611e0e9061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3a9061387b565b8015611e875780601f10611e5c57610100808354040283529160200191611e87565b820191906000526020600020905b815481529060010190602001808311611e6a57829003601f168201915b505050505090506000848381548110611ea257611ea2613836565b600091825260209091206001600590920201015460ff169050611ec68782846128bd565b611ecf82612c2e565b5060ff81166000908152600c60205260408120805460019290611ef390849061399f565b925050819055506001600d6000828254611f0d919061399f565b9250508190555050508080611f2190613862565b915050611dd6565b506001600160a01b0384166000908152600960205260408120611f4b91613094565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611ffe5760405162461bcd60e51b815260206004820152601b60248201527f47616d6d614361726473436f6e7472616374206e6f74207365742e0000000000604482015260640161059c565b6005546001600160a01b0384166000908152600b60205260409020541061207c5760405162461bcd60e51b815260206004820152602c60248201527f5573657220686173207265616368656420746865206d6178696d756d20616c6c60448201526b37bbb2b21037b33332b9399760a11b606482015260840161059c565b600454600d54106120e65760405162461bcd60e51b815260206004820152602e60248201527f546f74616c206f66666572732068617665207265616368656420746865206d6160448201526d3c34b6bab69030b63637bbb2b21760911b606482015260840161059c565b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c89061211990879087906004016138b5565b6020604051808303816000875af1158015612138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215c91906138d1565b9050806121ab5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6573206e6f742068617665207468617420636172642e00000000604482015260640161059c565b60005b82518160ff161015612254578360ff16838260ff16815181106121d3576121d3613836565b602002602001015160ff16036122425760405162461bcd60e51b815260206004820152602e60248201527f54686520636172644e756d6265722063616e6e6f7420626520696e2077616e7460448201526d32b221b0b932273ab6b132b9399760911b606482015260840161059c565b8061224c816138ee565b9150506121ae565b50600061226185856111d2565b60608101519091506001600160a01b0316156122dd5760405162461bcd60e51b815260206004820152603560248201527f416e206f6666657220666f722074686973207573657220616e6420636172644e6044820152743ab6b132b91030b63932b0b23c9032bc34b9ba399760591b606482015260840161059c565b6001600160a01b0385166000908152600b602052604081208054600192906123069084906139b2565b909155505060ff84166000908152600c6020526040812080546001929061232e9084906139b2565b925050819055506001600d600082825461234891906139b2565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3019081906123c49082613a13565b5060208281015160018301805460ff191660ff909216919091179055604083015180516123f792600285019201906130f0565b5060608201516003820180546001600160a01b0319166001600160a01b0392831617905560809092015160049091015585166000908152600960205260409020600880546124479060019061399f565b8154811061245757612457613836565b60009182526020808320845460018101865594845292206005918202909201920201806124848382613ad3565b50600182810154908201805460ff191660ff909216919091179055600280830180546124b39284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546125059060019061399f565b8154811061251557612515613836565b60009182526020808320845460018101865594845292206005918202909201920201806125428382613ad3565b50600182810154908201805460ff191660ff909216919091179055600280830180546125719284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff161561261157600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906125de90889088906004016138b5565b600060405180830381600087803b1580156125f857600080fd5b505af115801561260c573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc585858560405161264493929190613ba6565b60405180910390a1505050505050565b6000546001600160a01b03163314610d925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059c565b60006001600160a01b0385166126d65760405162461bcd60e51b815260040161059c906137e6565b6126e1858585612eab565b6126ec8585856128bd565b6126f583612c2e565b506001600160a01b0385166000908152600b6020526040812080546001929061271f90849061399f565b909155505060ff84166000908152600c6020526040812080546001929061274790849061399f565b925050819055506001600d6000828254612761919061399f565b909155505060075460ff168015612776575081155b156127e057600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f92906127ad90889088906004016138b5565b600060405180830381600087803b1580156127c757600080fd5b505af11580156127db573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516128119291906138b5565b60405180910390a1506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61287c6130b5565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561065f5761298f8282815481106128ef576128ef613836565b9060005260206000209060050201600001805461290b9061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546129379061387b565b80156129845780601f1061295957610100808354040283529160200191612984565b820191906000526020600020905b81548152906001019060200180831161296757829003601f168201915b50505050508461303b565b15612c1c57846001600160a01b03168282815481106129b0576129b0613836565b60009182526020909120600360059092020101546001600160a01b031614612a405760405162461bcd60e51b815260206004820152603860248201527f5f72656d6f76654f6666657246726f6d436172644e756d6265724d617070696e60448201527f673a206f776e657220646f6573206e6f74206d617463682e0000000000000000606482015260840161059c565b8360ff16828281548110612a5657612a56613836565b600091825260209091206001600590920201015460ff1614612ae05760405162461bcd60e51b815260206004820152603d60248201527f5f72656d6f76654f6666657246726f6d436172644e756d6265724d617070696e60448201527f673a20636172644e756d62657220646f6573206e6f74206d617463682e000000606482015260840161059c565b8154612aee9060019061399f565b811015612bb05781548290612b059060019061399f565b81548110612b1557612b15613836565b9060005260206000209060050201828281548110612b3557612b35613836565b6000918252602090912060059091020180612b508382613ad3565b50600182810154908201805460ff191660ff90921691909117905560028083018054612b7f9284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b81805480612bc057612bc0613bd3565b60008281526020812060001990920191600583020190612be082826131e4565b60018201805460ff19169055612bfa60028301600061321e565b506003810180546001600160a01b03191690556000600490910155905561065f565b80612c2681613862565b9150506128d1565b600080805b600854811015612ea45760085481108015612cff5750612cff60088281548110612c5f57612c5f613836565b90600052602060002090600502016000018054612c7b9061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca79061387b565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050508561303b565b15612e925760088181548110612d1757612d17613836565b60009182526020822060059091020190612d3182826131e4565b60018201805460ff19169055612d4b60028301600061321e565b506003810180546001600160a01b0319169055600060049091015560088054612d769060019061399f565b81548110612d8657612d86613836565b906000526020600020906005020160088281548110612da757612da7613836565b6000918252602090912060059091020180612dc28382613ad3565b50600182810154908201805460ff191660ff90921691909117905560028083018054612df19284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612e3257612e32613bd3565b60008281526020812060001990920191600583020190612e5282826131e4565b60018201805460ff19169055612e6c60028301600061321e565b506003810180546001600160a01b03191690556000600490910155905560019150612ea4565b80612e9c81613862565b915050612c33565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561065f57612ee38282815481106128ef576128ef613836565b1561302957846001600160a01b0316828281548110612f0457612f04613836565b60009182526020909120600360059092020101546001600160a01b031614612f895760405162461bcd60e51b815260206004820152603260248201527f5f72656d6f76654f6666657246726f6d557365724d617070696e673a206f776e60448201527132b9103237b2b9903737ba1036b0ba31b41760711b606482015260840161059c565b8360ff16828281548110612f9f57612f9f613836565b600091825260209091206001600590920201015460ff1614612ae05760405162461bcd60e51b815260206004820152603760248201527f5f72656d6f76654f6666657246726f6d557365724d617070696e673a2063617260448201527f644e756d62657220646f6573206e6f74206d617463682e000000000000000000606482015260840161059c565b8061303381613862565b915050612ec5565b60008160405160200161304e919061390d565b6040516020818303038152906040528051906020012083604051602001613075919061390d565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611d109190613243565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f016020900481019282156131865791602002820160005b8382111561315757835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613119565b80156131845782816101000a81549060ff0219169055600101602081600001049283019260010302613157565b505b50613192929150613293565b5090565b82805482825590600052602060002090601f0160209004810192821561318657600052602060002091601f016020900482015b828111156131865782548255916001019190600101906131c9565b5080546131f09061387b565b6000825580601f10613200575050565b601f016020900490600052602060002090810190611d109190613293565b50805460008255601f016020900490600052602060002090810190611d109190613293565b8082111561319257600061325782826131e4565b60018201805460ff1916905561327160028301600061321e565b506003810180546001600160a01b031916905560006004820155600501613243565b5b808211156131925760008155600101613294565b80356001600160a01b0381168114611fa157600080fd5b6000602082840312156132d157600080fd5b6132da826132a8565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613320576133206132e1565b604052919050565b600082601f83011261333957600080fd5b813567ffffffffffffffff811115613353576133536132e1565b613366601f8201601f19166020016132f7565b81815284602083860101111561337b57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611fa157600080fd5b600082601f8301126133ba57600080fd5b8135602067ffffffffffffffff8211156133d6576133d66132e1565b8160051b6133e58282016132f7565b92835284810182019282810190878511156133ff57600080fd5b83870192505b848310156134255761341683613398565b82529183019190830190613405565b979650505050505050565b6000806000806080858703121561344657600080fd5b843567ffffffffffffffff8082111561345e57600080fd5b61346a88838901613328565b9550613478602088016132a8565b945061348660408801613398565b9350606087013591508082111561349c57600080fd5b506134a9878288016133a9565b91505092959194509250565b600080604083850312156134c857600080fd5b6134d1836132a8565b91506134df60208401613398565b90509250929050565b6000602082840312156134fa57600080fd5b5035919050565b60006020828403121561351357600080fd5b6132da82613398565b60008060006060848603121561353157600080fd5b833567ffffffffffffffff8082111561354957600080fd5b61355587838801613328565b945061356360208701613398565b9350604086013591508082111561357957600080fd5b50613586868287016133a9565b9150509250925092565b60005b838110156135ab578181015183820152602001613593565b50506000910152565b600081518084526135cc816020860160208601613590565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561361357815160ff16875295820195908201906001016135f4565b509495945050505050565b6000815160a0845261363360a08501826135b4565b905060ff60208401511660208501526040830151848203604086015261365982826135e0565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156136d757603f198886030184526136c585835161361e565b945092850192908501906001016136a9565b5092979650505050505050565b8015158114611d1057600080fd5b60006020828403121561370457600080fd5b81356132da816136e4565b60808152600061372260808301876135b4565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b6020815260006132da602083018461361e565b6000806000806080858703121561377357600080fd5b61377c856132a8565b935061378a60208601613398565b9250613798604086016132a8565b91506137a660608601613398565b905092959194509250565b6000602082840312156137c357600080fd5b813567ffffffffffffffff8111156137da57600080fd5b6109f284828501613328565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b604082015260600190565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016138745761387461384c565b5060010190565b600181811c9082168061388f57607f821691505b6020821081036138af57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156138e357600080fd5b81516132da816136e4565b600060ff821660ff81036139045761390461384c565b60010192915050565b6000825161391f818460208701613590565b9190910192915050565b60008083546139378161387b565b6001828116801561394f576001811461396457613993565b60ff1984168752821515830287019450613993565b8760005260208060002060005b8581101561398a5781548a820152908401908201613971565b50505082870194505b50929695505050505050565b818103818111156107ca576107ca61384c565b808201808211156107ca576107ca61384c565b601f821115610a0657600081815260208120601f850160051c810160208610156139ec5750805b601f850160051c820191505b81811015613a0b578281556001016139f8565b505050505050565b815167ffffffffffffffff811115613a2d57613a2d6132e1565b613a4181613a3b845461387b565b846139c5565b602080601f831160018114613a765760008415613a5e5750858301515b600019600386901b1c1916600185901b178555613a0b565b600085815260208120601f198616915b82811015613aa557888601518255948401946001909101908401613a86565b5085821015613ac35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103613ade575050565b613ae8825461387b565b67ffffffffffffffff811115613b0057613b006132e1565b613b0e81613a3b845461387b565b6000601f821160018114613b425760008315613b2a5750848201545b600019600385901b1c1916600184901b17845561065f565b600085815260209020601f19841690600086815260209020845b83811015613b7c5782860154825560019586019590910190602001613b5c565b5085831015613ac35793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610d01908301846135e0565b634e487b7160e01b600052603160045260246000fdfea264697066735822122092cd44bbd1c5e46ead7241ec5e135e7cba9ff72a72a707c2c7292b608df6d10964736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102325760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b3659614610515578063e359a0a114610528578063e5e5f7321461053b578063f2fde38b1461054e578063fc9e80fc1461056157600080fd5b8063ce7483d5146104a4578063cf86f8e5146104c7578063d250f03a146104cf578063d827a8f4146104e2578063e02f97231461050257600080fd5b806390222aa1116100ff57806390222aa11461044e5780639618b333146104565780639f91506914610469578063ba79b77b14610489578063c08029e71461049157600080fd5b80637594a6ed146103d35780638400a189146103f35780638a72ea6a146104065780638da5cb5b1461042957600080fd5b80633a027073116101be5780635a919aeb116101825780635a919aeb146103905780635bbfbfd614610399578063619980dc146103ac5780637065cb48146103b8578063715018a6146103cb57600080fd5b80633a0270731461032f5780633e293e16146103425780633ee992ee146103555780634c7a7ad31461036a57806358e57ebb1461037d57600080fd5b806329d3f60b1161020557806329d3f60b146102985780632edb5fcf146102d55780632f54bf6e146102e8578063322fba27146103145780633808dfe71461031c57600080fd5b80630cdb311714610237578063173825d91461025d57806317a1fed91461027257806319ab453c14610285575b600080fd5b61024a6102453660046132bf565b610574565b6040519081526020015b60405180910390f35b61027061026b3660046132bf565b6105c1565b005b610270610280366004613430565b610666565b6102706102933660046132bf565b6106a7565b6102c56102a63660046132bf565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610254565b6102c56102e33660046134b5565b610711565b6102c56102f63660046132bf565b6001600160a01b031660009081526002602052604090205460ff1690565b6102706107d0565b61027061032a3660046134e8565b61097e565b6102c561033d366004613501565b6109b2565b61027061035036600461351c565b6109fa565b61035d610a0b565b6040516102549190613682565b6102706103783660046132bf565b610b9f565b61027061038b3660046136f2565b610c48565b61024a600d5481565b6102c56103a73660046134b5565b610c8a565b600d54600454116102c5565b6102706103c63660046132bf565b610d0a565b610270610d80565b61024a6103e13660046132bf565b600b6020526000908152604090205481565b61035d610401366004613501565b610d94565b6104196104143660046134e8565b610f38565b604051610254949392919061370f565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610254565b60045461024a565b61035d6104643660046132bf565b611010565b61047c6104773660046134b5565b6111d2565b604051610254919061374a565b60055461024a565b61027061049f36600461375d565b6113e1565b61024a6104b2366004613501565b60ff166000908152600c602052604090205490565b600d5461024a565b600154610436906001600160a01b031681565b61024a6104f0366004613501565b600c6020526000908152604090205481565b6102706105103660046134e8565b61186e565b61047c6105233660046137b1565b6118a2565b61047c6105363660046134e8565b611aab565b6102706105493660046134e8565b611c66565b61027061055c3660046132bf565b611c9a565b6102c561056f3660046132bf565b611d13565b60006001600160a01b0382166105a55760405162461bcd60e51b815260040161059c906137e6565b60405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105f05760405162461bcd60e51b815260040161059c90613810565b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064b57600080fd5b505af415801561065f573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff166106955760405162461bcd60e51b815260040161059c90613810565b6106a184848484611fa6565b50505050565b6106af612654565b6001600160a01b0381166106d55760405162461bcd60e51b815260040161059c906137e6565b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff19169091179055565b60006001600160a01b0383166107395760405162461bcd60e51b815260040161059c906137e6565b60005b6001600160a01b0384166000908152600b60205260409020548110156107c4576001600160a01b0384166000908152600960205260409020805460ff851691908390811061078c5761078c613836565b600091825260209091206001600590920201015460ff16036107b25760019150506107ca565b806107bc81613862565b91505061073c565b50600090505b92915050565b3360009081526002602052604090205460ff166107ff5760405162461bcd60e51b815260040161059c90613810565b60005b60085481101561093f57600960006008838154811061082357610823613836565b60009182526020808320600360059093020191909101546001600160a01b03168352820192909252604001812061085991613094565b6000600b60006008848154811061087257610872613836565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a929190849081106108bc576108bc613836565b600091825260208083206001600590930201919091015460ff16835282019290925260400181206108ec91613094565b6000600c60006008848154811061090557610905613836565b600091825260208083206001600590930201919091015460ff1683528201929092526040019020558061093781613862565b915050610802565b506000600d81905561095390600890613094565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff166109ad5760405162461bcd60e51b815260040161059c90613810565b600555565b6000806109bf33846111d2565b60608101519091506001600160a01b031633146109df5750600092915050565b60006109f23385846000015160006126ae565b949350505050565b610a0683338484611fa6565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b9657838290600052602060002090600502016040518060a0016040529081600082018054610a629061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8e9061387b565b8015610adb5780601f10610ab057610100808354040283529160200191610adb565b820191906000526020600020905b815481529060010190602001808311610abe57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610b5b57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610b2c5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610a2f565b50505050905090565b3360009081526002602052604090205460ff16610bce5760405162461bcd60e51b815260040161059c90613810565b6001600160a01b038116610bf45760405162461bcd60e51b815260040161059c906137e6565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610c775760405162461bcd60e51b815260040161059c90613810565b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610cb95760405162461bcd60e51b815260040161059c90613810565b6000610cc584846111d2565b9050836001600160a01b031681606001516001600160a01b031614610cee5760009150506107ca565b6000610d018585846000015160006126ae565b95945050505050565b3360009081526002602052604090205460ff16610d395760405162461bcd60e51b815260040161059c90613810565b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610633565b610d88612654565b610d926000612824565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610f2d57838290600052602060002090600502016040518060a0016040529081600082018054610df99061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e259061387b565b8015610e725780601f10610e4757610100808354040283529160200191610e72565b820191906000526020600020905b815481529060010190602001808311610e5557829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ef257602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610ec35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610dc6565b505050509050919050565b60088181548110610f4857600080fd5b9060005260206000209060050201600091509050806000018054610f6b9061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f979061387b565b8015610fe45780601f10610fb957610100808354040283529160200191610fe4565b820191906000526020600020905b815481529060010190602001808311610fc757829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b0382166110385760405162461bcd60e51b815260040161059c906137e6565b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610f2d57838290600052602060002090600502016040518060a001604052908160008201805461109e9061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546110ca9061387b565b80156111175780601f106110ec57610100808354040283529160200191611117565b820191906000526020600020905b8154815290600101906020018083116110fa57829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561119757602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116111685790505b505050918352505060038201546001600160a01b0316602080830191909152600490920154604090910152908252600192909201910161106b565b6111da6130b5565b6001600160a01b0383166112005760405162461bcd60e51b815260040161059c906137e6565b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b818110156113d8578460ff1683828154811061124457611244613836565b600091825260209091206001600590920201015460ff16036113c65782818154811061127257611272613836565b90600052602060002090600502016040518060a001604052908160008201805461129b9061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546112c79061387b565b80156113145780601f106112e957610100808354040283529160200191611314565b820191906000526020600020905b8154815290600101906020018083116112f757829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561139457602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116113655790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015293506107ca92505050565b806113d081613862565b915050611226565b50610d01612874565b60006113ed83836111d2565b9050826001600160a01b031681606001516001600160a01b0316146114705760405162461bcd60e51b815260206004820152603360248201527f416e206f6666657220666f722074686973207573657220616e6420636172644e6044820152723ab6b132b9103237b713ba1032bc34b9ba399760691b606482015260840161059c565b604081015180516000036115455760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906114b090879089906004016138b5565b6020604051808303816000875af11580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f391906138d1565b156115405760405162461bcd60e51b815260206004820152601f60248201527f546865207573657220616c726561647920686173207468617420636172642e00604482015260640161059c565b6115f7565b6000805b82518160ff161015611599578660ff16838260ff168151811061156e5761156e613836565b602002602001015160ff16036115875760019150611599565b80611591816138ee565b915050611549565b50806115f55760405162461bcd60e51b815260206004820152602560248201527f5468652063617264206973206e6f7420696e2077616e746564436172644e756d6044820152643132b9399760d91b606482015260840161059c565b505b600061160a8585856000015160016126ae565b90508061166b5760405162461bcd60e51b815260206004820152602960248201527f4572726f722064656c6574696e67206f66666572206166746572207472616e7360448201526866657220636172647360b81b606482015260840161059c565b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b1580156116cb57600080fd5b505af11580156116df573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611715908a9088906004016138b5565b6020604051808303816000875af1158015611734573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175891906138d1565b6117a45760405162461bcd60e51b815260206004820152601f60248201527f45786368616e6765206572726f7220776974682077616c6c65742066726f6d00604482015260640161059c565b60015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906117d69088908a906004016138b5565b6020604051808303816000875af11580156117f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181991906138d1565b6118655760405162461bcd60e51b815260206004820152601d60248201527f45786368616e6765206572726f7220776974682077616c6c657420746f000000604482015260640161059c565b50505050505050565b3360009081526002602052604090205460ff1661189d5760405162461bcd60e51b815260040161059c90613810565b600655565b6118aa6130b5565b60005b600854811015611aa257826040516020016118c8919061390d565b60405160208183030381529060405280519060200120600882815481106118f1576118f1613836565b90600052602060002090600502016000016040516020016119129190613929565b6040516020818303038152906040528051906020012003611a90576008818154811061194057611940613836565b90600052602060002090600502016040518060a00160405290816000820180546119699061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546119959061387b565b80156119e25780601f106119b7576101008083540402835291602001916119e2565b820191906000526020600020905b8154815290600101906020018083116119c557829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a6257602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611a335790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b80611a9a81613862565b9150506118ad565b506107ca612874565b611ab36130b5565b6008548210611b045760405162461bcd60e51b815260206004820152601760248201527f4f6666657220496420646f6573206e6f74206578697374000000000000000000604482015260640161059c565b60088281548110611b1757611b17613836565b90600052602060002090600502016040518060a0016040529081600082018054611b409061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054611b6c9061387b565b8015611bb95780601f10611b8e57610100808354040283529160200191611bb9565b820191906000526020600020905b815481529060010190602001808311611b9c57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611c3957602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611c0a5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611c955760405162461bcd60e51b815260040161059c90613810565b600455565b611ca2612654565b6001600160a01b038116611d075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059c565b611d1081612824565b50565b6001546000906001600160a01b03163314611d8a5760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792067616d6d6120636172647320636f6e74726163742063616e2063616044820152703636103a3434b990333ab731ba34b7b71760791b606482015260840161059c565b6001600160a01b038216611db05760405162461bcd60e51b815260040161059c906137e6565b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611f29576000838281548110611df257611df2613836565b90600052602060002090600502016000018054611e0e9061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3a9061387b565b8015611e875780601f10611e5c57610100808354040283529160200191611e87565b820191906000526020600020905b815481529060010190602001808311611e6a57829003601f168201915b505050505090506000848381548110611ea257611ea2613836565b600091825260209091206001600590920201015460ff169050611ec68782846128bd565b611ecf82612c2e565b5060ff81166000908152600c60205260408120805460019290611ef390849061399f565b925050819055506001600d6000828254611f0d919061399f565b9250508190555050508080611f2190613862565b915050611dd6565b506001600160a01b0384166000908152600960205260408120611f4b91613094565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611ffe5760405162461bcd60e51b815260206004820152601b60248201527f47616d6d614361726473436f6e7472616374206e6f74207365742e0000000000604482015260640161059c565b6005546001600160a01b0384166000908152600b60205260409020541061207c5760405162461bcd60e51b815260206004820152602c60248201527f5573657220686173207265616368656420746865206d6178696d756d20616c6c60448201526b37bbb2b21037b33332b9399760a11b606482015260840161059c565b600454600d54106120e65760405162461bcd60e51b815260206004820152602e60248201527f546f74616c206f66666572732068617665207265616368656420746865206d6160448201526d3c34b6bab69030b63637bbb2b21760911b606482015260840161059c565b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c89061211990879087906004016138b5565b6020604051808303816000875af1158015612138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215c91906138d1565b9050806121ab5760405162461bcd60e51b815260206004820152601c60248201527f596f7520646f6573206e6f742068617665207468617420636172642e00000000604482015260640161059c565b60005b82518160ff161015612254578360ff16838260ff16815181106121d3576121d3613836565b602002602001015160ff16036122425760405162461bcd60e51b815260206004820152602e60248201527f54686520636172644e756d6265722063616e6e6f7420626520696e2077616e7460448201526d32b221b0b932273ab6b132b9399760911b606482015260840161059c565b8061224c816138ee565b9150506121ae565b50600061226185856111d2565b60608101519091506001600160a01b0316156122dd5760405162461bcd60e51b815260206004820152603560248201527f416e206f6666657220666f722074686973207573657220616e6420636172644e6044820152743ab6b132b91030b63932b0b23c9032bc34b9ba399760591b606482015260840161059c565b6001600160a01b0385166000908152600b602052604081208054600192906123069084906139b2565b909155505060ff84166000908152600c6020526040812080546001929061232e9084906139b2565b925050819055506001600d600082825461234891906139b2565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3019081906123c49082613a13565b5060208281015160018301805460ff191660ff909216919091179055604083015180516123f792600285019201906130f0565b5060608201516003820180546001600160a01b0319166001600160a01b0392831617905560809092015160049091015585166000908152600960205260409020600880546124479060019061399f565b8154811061245757612457613836565b60009182526020808320845460018101865594845292206005918202909201920201806124848382613ad3565b50600182810154908201805460ff191660ff909216919091179055600280830180546124b39284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546125059060019061399f565b8154811061251557612515613836565b60009182526020808320845460018101865594845292206005918202909201920201806125428382613ad3565b50600182810154908201805460ff191660ff909216919091179055600280830180546125719284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff161561261157600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906125de90889088906004016138b5565b600060405180830381600087803b1580156125f857600080fd5b505af115801561260c573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc585858560405161264493929190613ba6565b60405180910390a1505050505050565b6000546001600160a01b03163314610d925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059c565b60006001600160a01b0385166126d65760405162461bcd60e51b815260040161059c906137e6565b6126e1858585612eab565b6126ec8585856128bd565b6126f583612c2e565b506001600160a01b0385166000908152600b6020526040812080546001929061271f90849061399f565b909155505060ff84166000908152600c6020526040812080546001929061274790849061399f565b925050819055506001600d6000828254612761919061399f565b909155505060075460ff168015612776575081155b156127e057600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f92906127ad90889088906004016138b5565b600060405180830381600087803b1580156127c757600080fd5b505af11580156127db573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516128119291906138b5565b60405180910390a1506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61287c6130b5565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561065f5761298f8282815481106128ef576128ef613836565b9060005260206000209060050201600001805461290b9061387b565b80601f01602080910402602001604051908101604052809291908181526020018280546129379061387b565b80156129845780601f1061295957610100808354040283529160200191612984565b820191906000526020600020905b81548152906001019060200180831161296757829003601f168201915b50505050508461303b565b15612c1c57846001600160a01b03168282815481106129b0576129b0613836565b60009182526020909120600360059092020101546001600160a01b031614612a405760405162461bcd60e51b815260206004820152603860248201527f5f72656d6f76654f6666657246726f6d436172644e756d6265724d617070696e60448201527f673a206f776e657220646f6573206e6f74206d617463682e0000000000000000606482015260840161059c565b8360ff16828281548110612a5657612a56613836565b600091825260209091206001600590920201015460ff1614612ae05760405162461bcd60e51b815260206004820152603d60248201527f5f72656d6f76654f6666657246726f6d436172644e756d6265724d617070696e60448201527f673a20636172644e756d62657220646f6573206e6f74206d617463682e000000606482015260840161059c565b8154612aee9060019061399f565b811015612bb05781548290612b059060019061399f565b81548110612b1557612b15613836565b9060005260206000209060050201828281548110612b3557612b35613836565b6000918252602090912060059091020180612b508382613ad3565b50600182810154908201805460ff191660ff90921691909117905560028083018054612b7f9284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b81805480612bc057612bc0613bd3565b60008281526020812060001990920191600583020190612be082826131e4565b60018201805460ff19169055612bfa60028301600061321e565b506003810180546001600160a01b03191690556000600490910155905561065f565b80612c2681613862565b9150506128d1565b600080805b600854811015612ea45760085481108015612cff5750612cff60088281548110612c5f57612c5f613836565b90600052602060002090600502016000018054612c7b9061387b565b80601f0160208091040260200160405190810160405280929190818152602001828054612ca79061387b565b8015612cf45780601f10612cc957610100808354040283529160200191612cf4565b820191906000526020600020905b815481529060010190602001808311612cd757829003601f168201915b50505050508561303b565b15612e925760088181548110612d1757612d17613836565b60009182526020822060059091020190612d3182826131e4565b60018201805460ff19169055612d4b60028301600061321e565b506003810180546001600160a01b0319169055600060049091015560088054612d769060019061399f565b81548110612d8657612d86613836565b906000526020600020906005020160088281548110612da757612da7613836565b6000918252602090912060059091020180612dc28382613ad3565b50600182810154908201805460ff191660ff90921691909117905560028083018054612df19284019190613196565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612e3257612e32613bd3565b60008281526020812060001990920191600583020190612e5282826131e4565b60018201805460ff19169055612e6c60028301600061321e565b506003810180546001600160a01b03191690556000600490910155905560019150612ea4565b80612e9c81613862565b915050612c33565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561065f57612ee38282815481106128ef576128ef613836565b1561302957846001600160a01b0316828281548110612f0457612f04613836565b60009182526020909120600360059092020101546001600160a01b031614612f895760405162461bcd60e51b815260206004820152603260248201527f5f72656d6f76654f6666657246726f6d557365724d617070696e673a206f776e60448201527132b9103237b2b9903737ba1036b0ba31b41760711b606482015260840161059c565b8360ff16828281548110612f9f57612f9f613836565b600091825260209091206001600590920201015460ff1614612ae05760405162461bcd60e51b815260206004820152603760248201527f5f72656d6f76654f6666657246726f6d557365724d617070696e673a2063617260448201527f644e756d62657220646f6573206e6f74206d617463682e000000000000000000606482015260840161059c565b8061303381613862565b915050612ec5565b60008160405160200161304e919061390d565b6040516020818303038152906040528051906020012083604051602001613075919061390d565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611d109190613243565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f016020900481019282156131865791602002820160005b8382111561315757835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613119565b80156131845782816101000a81549060ff0219169055600101602081600001049283019260010302613157565b505b50613192929150613293565b5090565b82805482825590600052602060002090601f0160209004810192821561318657600052602060002091601f016020900482015b828111156131865782548255916001019190600101906131c9565b5080546131f09061387b565b6000825580601f10613200575050565b601f016020900490600052602060002090810190611d109190613293565b50805460008255601f016020900490600052602060002090810190611d109190613293565b8082111561319257600061325782826131e4565b60018201805460ff1916905561327160028301600061321e565b506003810180546001600160a01b031916905560006004820155600501613243565b5b808211156131925760008155600101613294565b80356001600160a01b0381168114611fa157600080fd5b6000602082840312156132d157600080fd5b6132da826132a8565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613320576133206132e1565b604052919050565b600082601f83011261333957600080fd5b813567ffffffffffffffff811115613353576133536132e1565b613366601f8201601f19166020016132f7565b81815284602083860101111561337b57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611fa157600080fd5b600082601f8301126133ba57600080fd5b8135602067ffffffffffffffff8211156133d6576133d66132e1565b8160051b6133e58282016132f7565b92835284810182019282810190878511156133ff57600080fd5b83870192505b848310156134255761341683613398565b82529183019190830190613405565b979650505050505050565b6000806000806080858703121561344657600080fd5b843567ffffffffffffffff8082111561345e57600080fd5b61346a88838901613328565b9550613478602088016132a8565b945061348660408801613398565b9350606087013591508082111561349c57600080fd5b506134a9878288016133a9565b91505092959194509250565b600080604083850312156134c857600080fd5b6134d1836132a8565b91506134df60208401613398565b90509250929050565b6000602082840312156134fa57600080fd5b5035919050565b60006020828403121561351357600080fd5b6132da82613398565b60008060006060848603121561353157600080fd5b833567ffffffffffffffff8082111561354957600080fd5b61355587838801613328565b945061356360208701613398565b9350604086013591508082111561357957600080fd5b50613586868287016133a9565b9150509250925092565b60005b838110156135ab578181015183820152602001613593565b50506000910152565b600081518084526135cc816020860160208601613590565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561361357815160ff16875295820195908201906001016135f4565b509495945050505050565b6000815160a0845261363360a08501826135b4565b905060ff60208401511660208501526040830151848203604086015261365982826135e0565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156136d757603f198886030184526136c585835161361e565b945092850192908501906001016136a9565b5092979650505050505050565b8015158114611d1057600080fd5b60006020828403121561370457600080fd5b81356132da816136e4565b60808152600061372260808301876135b4565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b6020815260006132da602083018461361e565b6000806000806080858703121561377357600080fd5b61377c856132a8565b935061378a60208601613398565b9250613798604086016132a8565b91506137a660608601613398565b905092959194509250565b6000602082840312156137c357600080fd5b813567ffffffffffffffff8111156137da57600080fd5b6109f284828501613328565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b604082015260600190565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016138745761387461384c565b5060010190565b600181811c9082168061388f57607f821691505b6020821081036138af57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156138e357600080fd5b81516132da816136e4565b600060ff821660ff81036139045761390461384c565b60010192915050565b6000825161391f818460208701613590565b9190910192915050565b60008083546139378161387b565b6001828116801561394f576001811461396457613993565b60ff1984168752821515830287019450613993565b8760005260208060002060005b8581101561398a5781548a820152908401908201613971565b50505082870194505b50929695505050505050565b818103818111156107ca576107ca61384c565b808201808211156107ca576107ca61384c565b601f821115610a0657600081815260208120601f850160051c810160208610156139ec5750805b601f850160051c820191505b81811015613a0b578281556001016139f8565b505050505050565b815167ffffffffffffffff811115613a2d57613a2d6132e1565b613a4181613a3b845461387b565b846139c5565b602080601f831160018114613a765760008415613a5e5750858301515b600019600386901b1c1916600185901b178555613a0b565b600085815260208120601f198616915b82811015613aa557888601518255948401946001909101908401613a86565b5085821015613ac35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103613ade575050565b613ae8825461387b565b67ffffffffffffffff811115613b0057613b006132e1565b613b0e81613a3b845461387b565b6000601f821160018114613b425760008315613b2a5750848201545b600019600385901b1c1916600184901b17845561065f565b600085815260209020601f19841690600086815260209020845b83811015613b7c5782860154825560019586019590910190602001613b5c565b5085831015613ac35793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610d01908301846135e0565b634e487b7160e01b600052603160045260246000fdfea264697066735822122092cd44bbd1c5e46ead7241ec5e135e7cba9ff72a72a707c2c7292b608df6d10964736f6c63430008140033", + "bytecode": "0x60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b506040516200379b3803806200379b8339810160408190526200004d9162000138565b33806200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f81620000e8565b506001600160a01b038116620000a85760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff191690911790556200016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014b57600080fd5b81516001600160a01b03811681146200016357600080fd5b9392505050565b613621806200017a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", "linkReferences": { "contracts/gamma/libs/LibControlMgmt.sol": { "LibControlMgmt": [ { "length": 20, - "start": 1713 + "start": 1898 }, { "length": 20, - "start": 3578 + "start": 3666 } ] } @@ -930,11 +1030,11 @@ "LibControlMgmt": [ { "length": 20, - "start": 1557 + "start": 1520 }, { "length": 20, - "start": 3422 + "start": 3288 } ] } diff --git a/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json b/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json index 7af1ceab..6e18eaad 100644 --- a/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json +++ b/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json @@ -3,11 +3,110 @@ "contractName": "NofGammaPacksV3", "sourceName": "contracts/gamma/GammaPacks.v3.sol", "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_daiTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_balanceReceiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InsufficientAllowance", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientPacksAvailable", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidNumberOfPacks", + "type": "error" + }, + { + "inputs": [], + "name": "NotGammaCardsContract", + "type": "error" + }, + { + "inputs": [], + "name": "NotYourPack", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "OwnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "TransferPrizeError", + "type": "error" + }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "balanceReceiver", "type": "address" @@ -20,7 +119,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "newCardsContract", "type": "address" @@ -33,7 +132,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "newGammaTicketContract", "type": "address" @@ -46,7 +145,7 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "newPrice", "type": "uint256" @@ -78,13 +177,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" @@ -97,13 +196,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" @@ -116,19 +215,19 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" @@ -141,13 +240,13 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" @@ -160,19 +259,19 @@ "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256[]", "name": "tokenId", "type": "uint256[]" @@ -195,29 +294,29 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TOTALSUPPLY", + "outputs": [ { - "internalType": "address", - "name": "_newOwner", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "balanceReceiver", - "outputs": [ + "inputs": [ { "internalType": "address", - "name": "", + "name": "_newOwner", "type": "address" } ], - "stateMutability": "view", + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -455,34 +554,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_daiTokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_balanceReceiver", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -570,9 +641,42 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], - "name": "packPrice", + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "s_balanceReceiver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_packPrice", "outputs": [ { "internalType": "uint256", @@ -591,7 +695,7 @@ "type": "uint256" } ], - "name": "packs", + "name": "s_packs", "outputs": [ { "internalType": "address", @@ -615,7 +719,7 @@ "type": "uint256" } ], - "name": "packsByUser", + "name": "s_packsByUser", "outputs": [ { "internalType": "uint256", @@ -626,26 +730,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -708,19 +792,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -771,18 +842,18 @@ "type": "function" } ], - "bytecode": "0x60806040526710a741a46278000060065560006008556009805460ff1916600117905534801561002e57600080fd5b506100383361003d565b61008d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611fb88061009c6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c80638fd5baf711610125578063c37b9bcd116100ad578063d6a4c3e41161007c578063d6a4c3e4146104d1578063ddb975e8146104e4578063e0f78307146104f7578063e606df871461050a578063f2fde38b1461051d57600080fd5b8063c37b9bcd1461047a578063d250f03a14610482578063d3e6a7ad14610495578063d611713e146104be57600080fd5b8063a2b40d19116100f4578063a2b40d1914610405578063ab4bdbc814610418578063b48ce6531461042b578063b84c13921461043e578063bd7133801461046757600080fd5b80638fd5baf7146103b9578063967ed63d146103cc57806397f8b3d3146103df57806399e5f896146103f257600080fd5b80633f6ecd48116101a85780636adbaf75116101775780636adbaf75146103675780637065cb481461037a578063715018a61461038d57806380f2540b146103955780638da5cb5b146103a857600080fd5b80633f6ecd481461030e5780634c7a7ad314610321578063627b253f1461033457806362e218781461034757600080fd5b8063173825d9116101ef578063173825d91461029a57806318160ddd146102ad5780632f54bf6e146102b6578063335c8b63146102f257806339e8d3ec146102fb57600080fd5b806301321c4d1461022157806306552ff3146102475780630c3e5c001461025c57806314cca36a1461026f575b600080fd5b61023461022f366004611a9a565b610530565b6040519081526020015b60405180910390f35b61025a610255366004611aca565b61055e565b005b61025a61026a366004611bcf565b61064a565b600254610282906001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b61025a6102a8366004611c1d565b6106c5565b61023461c35081565b6102e26102c4366004611c1d565b6001600160a01b031660009081526003602052604090205460ff1690565b604051901515815260200161023e565b61023460065481565b61025a610309366004611c38565b61076a565b61023461031c366004611a9a565b6107a7565b61025a61032f366004611c1d565b6107d5565b600754610282906001600160a01b031681565b61035a610355366004611c5b565b61087f565b60405161023e9190611cc0565b61035a610375366004611a9a565b6108bb565b61025a610388366004611c1d565b6108c7565b61025a61093d565b61025a6103a3366004611c38565b610951565b6000546001600160a01b0316610282565b61035a6103c7366004611c1d565b61097b565b6102346103da366004611c1d565b6109e7565b61025a6103ed366004611bcf565b610a24565b61025a610400366004611ce1565b610a95565b61025a610413366004611a9a565b610ad7565b61025a610426366004611cfe565b610b9a565b610234610439366004611a9a565b610c21565b61028261044c366004611a9a565b600a602052600090815260409020546001600160a01b031681565b610234610475366004611c5b565b610c4e565b610234610c7f565b600154610282906001600160a01b031681565b6102826104a3366004611a9a565b6000908152600a60205260409020546001600160a01b031690565b61025a6104cc366004611c5b565b610c8f565b6102e26104df366004611a9a565b610c99565b61025a6104f2366004611c1d565b610cd2565b61025a610505366004611c1d565b610d75565b600554610282906001600160a01b031681565b61025a61052b366004611c1d565b610e18565b60008061053c836107a7565b9050808360065461054d9190611d62565b6105579190611d79565b9392505050565b610566610e91565b6001600160a01b0383166105955760405162461bcd60e51b815260040161058c90611d8c565b60405180910390fd5b6001600160a01b0382166105bb5760405162461bcd60e51b815260040161058c90611d8c565b6001600160a01b0381166105e15760405162461bcd60e51b815260040161058c90611d8c565b600580546001600160a01b03199081166001600160a01b039687161790915560078054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff19169091179055565b3360009081526003602052604090205460ff166106795760405162461bcd60e51b815260040161058c90611db6565b60005b82518110156106c057600083828151811061069957610699611ddc565b602002602001015190506106ad8184610eeb565b50806106b881611df2565b91505061067c565b505050565b3360009081526003602052604090205460ff166106f45760405162461bcd60e51b815260040161058c90611db6565b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561074f57600080fd5b505af4158015610763573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff166107995760405162461bcd60e51b815260040161058c90611db6565b6107a38282610eeb565b5050565b600081600680546107b89190611e0b565b6006546107c59190611d79565b6107cf9190611d62565b92915050565b3360009081526003602052604090205460ff166108045760405162461bcd60e51b815260040161058c90611db6565b6001600160a01b03811661082a5760405162461bcd60e51b815260040161058c90611d8c565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa906020015b60405180910390a150565b3360009081526003602052604090205460609060ff166108b15760405162461bcd60e51b815260040161058c90611db6565b6105578383610f51565b60606107cf3383610f51565b3360009081526003602052604090205460ff166108f65760405162461bcd60e51b815260040161058c90611db6565b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610737565b610945610e91565b61094f600061129c565b565b6001546001600160a01b031633146107995760405162461bcd60e51b815260040161058c90611e2d565b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156109db57602002820191906000526020600020905b8154815260200190600101908083116109c7575b50505050509050919050565b3360009081526003602052604081205460ff16610a165760405162461bcd60e51b815260040161058c90611db6565b6107cf826112ec565b919050565b6001546001600160a01b03163314610a4e5760405162461bcd60e51b815260040161058c90611e2d565b60005b82518110156106c0576000838281518110610a6e57610a6e611ddc565b60200260200101519050610a828184610eeb565b5080610a8d81611df2565b915050610a51565b3360009081526003602052604090205460ff16610ac45760405162461bcd60e51b815260040161058c90611db6565b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff16610b065760405162461bcd60e51b815260040161058c90611db6565b60068190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b78160405161087491815260200190565b60005b8151811015610be1576000828281518110610bba57610bba611ddc565b60200260200101519050610bce848261131f565b5080610bd981611df2565b915050610b9d565b507f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f1338383604051610c1593929190611e7e565b60405180910390a15050565b600080610c2d836107a7565b90506000610c3a84610530565b9050610c468183611eb3565b949350505050565b600b6020528160005260406000208181548110610c6a57600080fd5b90600052602060002001600091509150505481565b6000610c8a336112ec565b905090565b6107a3828261131f565b6000808211610cba5760405162461bcd60e51b815260040161058c90611ec6565b61c35082600854610ccb9190611eb3565b1092915050565b3360009081526003602052604090205460ff16610d015760405162461bcd60e51b815260040161058c90611db6565b6001600160a01b038116610d275760405162461bcd60e51b815260040161058c90611d8c565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290602001610874565b3360009081526003602052604090205460ff16610da45760405162461bcd60e51b815260040161058c90611db6565b6001600160a01b038116610dca5760405162461bcd60e51b815260040161058c90611d8c565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590602001610874565b610e20610e91565b6001600160a01b038116610e855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161058c565b610e8e8161129c565b50565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058c565b610ef58282611447565b6000828152600a602090815260409182902080546001600160a01b031916905581516001600160a01b03841681529081018490527f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9101610c15565b60606001600160a01b038316610f795760405162461bcd60e51b815260040161058c90611d8c565b60008211610f995760405162461bcd60e51b815260040161058c90611ec6565b61c35082600854610faa9190611eb3565b1061101d5760405162461bcd60e51b815260206004820152603c60248201527f546865206e756d626572206f66207061636b7320796f752077616e7420746f2060448201527f62757920657863656564732074686f736520617661696c61626c652e00000000606482015260840161058c565b60008267ffffffffffffffff81111561103857611038611b1e565b604051908082528060200260200182016040528015611061578160200160208202803683370190505b50905060005b838110156111555760085461c35081106110c35760405162461bcd60e51b815260206004820152601860248201527f546865726520617265206e6f206d6f7265207061636b732e0000000000000000604482015260640161058c565b6001600860008282546110d69190611eb3565b90915550506000818152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b8252822080546001810182559083529120018190558251819084908490811061113757611137611ddc565b6020908102919091010152508061114d81611df2565b915050611067565b5060006111628585611586565b9050806111e65760405162461bcd60e51b815260206004820152604660248201527f546865207472616e73666572732072656c6174656420746f207468652070757260448201527f6368617365206f66207061636b7320636f756c64206e6f7420626520636f6d706064820152653632ba32b21760d11b608482015260a40161058c565b8360010361125a577fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca7858360008151811061122357611223611ddc565b602002602001015160405161124d9291906001600160a01b03929092168252602082015260400190565b60405180910390a1611294565b7f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c9858360405161128b929190611f12565b60405180910390a15b509392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806112fa836001610f51565b90508060008151811061130f5761130f611ddc565b6020026020010151915050919050565b6001600160a01b0382166113455760405162461bcd60e51b815260040161058c90611d8c565b6000818152600a60205260409020546001600160a01b031633146113ab5760405162461bcd60e51b815260206004820152601760248201527f54486973207061636b206973206e6f7420796f7572732e000000000000000000604482015260640161058c565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384161790556113dc8133611447565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529282902090920184905581513381529081019290925281018290527f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a290606001610c15565b6001600160a01b0381166000908152600b6020526040812054905b81811015611580576001600160a01b0383166000908152600b6020526040902080548591908390811061149757611497611ddc565b90600052602060002001540361156e576001600160a01b0383166000908152600b6020526040902080546114cd90600190611d79565b815481106114dd576114dd611ddc565b9060005260206000200154600b6000856001600160a01b03166001600160a01b03168152602001908152602001600020828154811061151e5761151e611ddc565b60009182526020808320909101929092556001600160a01b0385168152600b9091526040902080548061155357611553611f36565b60019003818190600052602060002001600090559055611580565b8061157881611df2565b915050611462565b50505050565b600080611592836107a7565b9050600061159f84610530565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b505060095460ff16159150611a8f905057600554604051636eb1769f60e11b81526001600160a01b03878116600483015230602483015290911690600090829063dd62ed3e90604401602060405180830381865afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116849190611f4c565b90506116908385611eb3565b8110156117165760405162461bcd60e51b815260206004820152604860248201527f496e73756666696369656e7420616c6c6f77616e636520746f207472616e736660448201527f6572207072697a657320616d6f756e7420616e64204e4f46204163636f756e746064820152671030b6b7bab73a1760c11b608482015260a40161058c565b6040516370a0823160e01b81526001600160a01b0388811660048301528591908416906370a0823190602401602060405180830381865afa15801561175f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117839190611f4c565b10156117e95760405162461bcd60e51b815260206004820152602f60248201527f496e73756666696369656e742062616c616e636520746f207472616e7366657260448201526e10383934bd32b99030b6b7bab73a1760891b606482015260840161058c565b6040516370a0823160e01b81526001600160a01b0388811660048301528491908416906370a0823190602401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118569190611f4c565b10156118bc5760405162461bcd60e51b815260206004820152602f60248201527f496e73756666696369656e742062616c616e636520746f207472616e7366657260448201526e10383937b334ba1030b6b7bab73a1760891b606482015260840161058c565b6001546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018690526000918416906323b872dd906064016020604051808303816000875af1158015611919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193d9190611f65565b9050806119a65760405162461bcd60e51b815260206004820152603160248201527f4572726f722073656e64696e67207072697a6520616d6f756e7420746f20676160448201527036b6b0a1b0b93239a1b7b73a3930b1ba1760791b606482015260840161058c565b6007546040516323b872dd60e01b81526001600160a01b038a811660048301529182166024820152604481018690526000918516906323b872dd906064016020604051808303816000875af1158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a279190611f65565b905080611a8a5760405162461bcd60e51b815260206004820152602b60248201527f4572726f722073656e64696e672070726f66697420616d6f756e7420746f204e60448201526a37a31030b1b1b7bab73a1760a91b606482015260840161058c565b505050505b506001949350505050565b600060208284031215611aac57600080fd5b5035919050565b80356001600160a01b0381168114610a1f57600080fd5b60008060008060808587031215611ae057600080fd5b611ae985611ab3565b9350611af760208601611ab3565b9250611b0560408601611ab3565b9150611b1360608601611ab3565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b4557600080fd5b8135602067ffffffffffffffff80831115611b6257611b62611b1e565b8260051b604051601f19603f83011681018181108482111715611b8757611b87611b1e565b604052938452858101830193838101925087851115611ba557600080fd5b83870191505b84821015611bc457813583529183019190830190611bab565b979650505050505050565b60008060408385031215611be257600080fd5b823567ffffffffffffffff811115611bf957600080fd5b611c0585828601611b34565b925050611c1460208401611ab3565b90509250929050565b600060208284031215611c2f57600080fd5b61055782611ab3565b60008060408385031215611c4b57600080fd5b82359150611c1460208401611ab3565b60008060408385031215611c6e57600080fd5b611c7783611ab3565b946020939093013593505050565b600081518084526020808501945080840160005b83811015611cb557815187529582019590820190600101611c99565b509495945050505050565b6020815260006105576020830184611c85565b8015158114610e8e57600080fd5b600060208284031215611cf357600080fd5b813561055781611cd3565b60008060408385031215611d1157600080fd5b611d1a83611ab3565b9150602083013567ffffffffffffffff811115611d3657600080fd5b611d4285828601611b34565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107cf576107cf611d4c565b818103818111156107cf576107cf611d4c565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b604082015260600190565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611e0457611e04611d4c565b5060010190565b600082611e2857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526031908201527f4f6e6c792067616d6d6120636172647320636f6e74726163742063616e2063616040820152703636103a3434b990333ab731ba34b7b71760791b606082015260800190565b6001600160a01b03848116825283166020820152606060408201819052600090611eaa90830184611c85565b95945050505050565b808201808211156107cf576107cf611d4c565b6020808252602c908201527f4e756d626572206f66207061636b732073686f756c642062652067726561746560408201526b39103a3430b7103d32b9379760a11b606082015260800190565b6001600160a01b0383168152604060208201819052600090610c4690830184611c85565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611f5e57600080fd5b5051919050565b600060208284031215611f7757600080fd5b815161055781611cd356fea2646970667358221220c72b2393e3bcd3deb50f5fff31aba6f60a77f67288c45d0a79012f6e873e6a6864736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061021c5760003560e01c80638fd5baf711610125578063c37b9bcd116100ad578063d6a4c3e41161007c578063d6a4c3e4146104d1578063ddb975e8146104e4578063e0f78307146104f7578063e606df871461050a578063f2fde38b1461051d57600080fd5b8063c37b9bcd1461047a578063d250f03a14610482578063d3e6a7ad14610495578063d611713e146104be57600080fd5b8063a2b40d19116100f4578063a2b40d1914610405578063ab4bdbc814610418578063b48ce6531461042b578063b84c13921461043e578063bd7133801461046757600080fd5b80638fd5baf7146103b9578063967ed63d146103cc57806397f8b3d3146103df57806399e5f896146103f257600080fd5b80633f6ecd48116101a85780636adbaf75116101775780636adbaf75146103675780637065cb481461037a578063715018a61461038d57806380f2540b146103955780638da5cb5b146103a857600080fd5b80633f6ecd481461030e5780634c7a7ad314610321578063627b253f1461033457806362e218781461034757600080fd5b8063173825d9116101ef578063173825d91461029a57806318160ddd146102ad5780632f54bf6e146102b6578063335c8b63146102f257806339e8d3ec146102fb57600080fd5b806301321c4d1461022157806306552ff3146102475780630c3e5c001461025c57806314cca36a1461026f575b600080fd5b61023461022f366004611a9a565b610530565b6040519081526020015b60405180910390f35b61025a610255366004611aca565b61055e565b005b61025a61026a366004611bcf565b61064a565b600254610282906001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b61025a6102a8366004611c1d565b6106c5565b61023461c35081565b6102e26102c4366004611c1d565b6001600160a01b031660009081526003602052604090205460ff1690565b604051901515815260200161023e565b61023460065481565b61025a610309366004611c38565b61076a565b61023461031c366004611a9a565b6107a7565b61025a61032f366004611c1d565b6107d5565b600754610282906001600160a01b031681565b61035a610355366004611c5b565b61087f565b60405161023e9190611cc0565b61035a610375366004611a9a565b6108bb565b61025a610388366004611c1d565b6108c7565b61025a61093d565b61025a6103a3366004611c38565b610951565b6000546001600160a01b0316610282565b61035a6103c7366004611c1d565b61097b565b6102346103da366004611c1d565b6109e7565b61025a6103ed366004611bcf565b610a24565b61025a610400366004611ce1565b610a95565b61025a610413366004611a9a565b610ad7565b61025a610426366004611cfe565b610b9a565b610234610439366004611a9a565b610c21565b61028261044c366004611a9a565b600a602052600090815260409020546001600160a01b031681565b610234610475366004611c5b565b610c4e565b610234610c7f565b600154610282906001600160a01b031681565b6102826104a3366004611a9a565b6000908152600a60205260409020546001600160a01b031690565b61025a6104cc366004611c5b565b610c8f565b6102e26104df366004611a9a565b610c99565b61025a6104f2366004611c1d565b610cd2565b61025a610505366004611c1d565b610d75565b600554610282906001600160a01b031681565b61025a61052b366004611c1d565b610e18565b60008061053c836107a7565b9050808360065461054d9190611d62565b6105579190611d79565b9392505050565b610566610e91565b6001600160a01b0383166105955760405162461bcd60e51b815260040161058c90611d8c565b60405180910390fd5b6001600160a01b0382166105bb5760405162461bcd60e51b815260040161058c90611d8c565b6001600160a01b0381166105e15760405162461bcd60e51b815260040161058c90611d8c565b600580546001600160a01b03199081166001600160a01b039687161790915560078054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff19169091179055565b3360009081526003602052604090205460ff166106795760405162461bcd60e51b815260040161058c90611db6565b60005b82518110156106c057600083828151811061069957610699611ddc565b602002602001015190506106ad8184610eeb565b50806106b881611df2565b91505061067c565b505050565b3360009081526003602052604090205460ff166106f45760405162461bcd60e51b815260040161058c90611db6565b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561074f57600080fd5b505af4158015610763573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff166107995760405162461bcd60e51b815260040161058c90611db6565b6107a38282610eeb565b5050565b600081600680546107b89190611e0b565b6006546107c59190611d79565b6107cf9190611d62565b92915050565b3360009081526003602052604090205460ff166108045760405162461bcd60e51b815260040161058c90611db6565b6001600160a01b03811661082a5760405162461bcd60e51b815260040161058c90611d8c565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa906020015b60405180910390a150565b3360009081526003602052604090205460609060ff166108b15760405162461bcd60e51b815260040161058c90611db6565b6105578383610f51565b60606107cf3383610f51565b3360009081526003602052604090205460ff166108f65760405162461bcd60e51b815260040161058c90611db6565b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610737565b610945610e91565b61094f600061129c565b565b6001546001600160a01b031633146107995760405162461bcd60e51b815260040161058c90611e2d565b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156109db57602002820191906000526020600020905b8154815260200190600101908083116109c7575b50505050509050919050565b3360009081526003602052604081205460ff16610a165760405162461bcd60e51b815260040161058c90611db6565b6107cf826112ec565b919050565b6001546001600160a01b03163314610a4e5760405162461bcd60e51b815260040161058c90611e2d565b60005b82518110156106c0576000838281518110610a6e57610a6e611ddc565b60200260200101519050610a828184610eeb565b5080610a8d81611df2565b915050610a51565b3360009081526003602052604090205460ff16610ac45760405162461bcd60e51b815260040161058c90611db6565b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff16610b065760405162461bcd60e51b815260040161058c90611db6565b60068190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610b5157600080fd5b505af1158015610b65573d6000803e3d6000fd5b505050507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b78160405161087491815260200190565b60005b8151811015610be1576000828281518110610bba57610bba611ddc565b60200260200101519050610bce848261131f565b5080610bd981611df2565b915050610b9d565b507f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f1338383604051610c1593929190611e7e565b60405180910390a15050565b600080610c2d836107a7565b90506000610c3a84610530565b9050610c468183611eb3565b949350505050565b600b6020528160005260406000208181548110610c6a57600080fd5b90600052602060002001600091509150505481565b6000610c8a336112ec565b905090565b6107a3828261131f565b6000808211610cba5760405162461bcd60e51b815260040161058c90611ec6565b61c35082600854610ccb9190611eb3565b1092915050565b3360009081526003602052604090205460ff16610d015760405162461bcd60e51b815260040161058c90611db6565b6001600160a01b038116610d275760405162461bcd60e51b815260040161058c90611d8c565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290602001610874565b3360009081526003602052604090205460ff16610da45760405162461bcd60e51b815260040161058c90611db6565b6001600160a01b038116610dca5760405162461bcd60e51b815260040161058c90611d8c565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590602001610874565b610e20610e91565b6001600160a01b038116610e855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161058c565b610e8e8161129c565b50565b6000546001600160a01b0316331461094f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161058c565b610ef58282611447565b6000828152600a602090815260409182902080546001600160a01b031916905581516001600160a01b03841681529081018490527f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9101610c15565b60606001600160a01b038316610f795760405162461bcd60e51b815260040161058c90611d8c565b60008211610f995760405162461bcd60e51b815260040161058c90611ec6565b61c35082600854610faa9190611eb3565b1061101d5760405162461bcd60e51b815260206004820152603c60248201527f546865206e756d626572206f66207061636b7320796f752077616e7420746f2060448201527f62757920657863656564732074686f736520617661696c61626c652e00000000606482015260840161058c565b60008267ffffffffffffffff81111561103857611038611b1e565b604051908082528060200260200182016040528015611061578160200160208202803683370190505b50905060005b838110156111555760085461c35081106110c35760405162461bcd60e51b815260206004820152601860248201527f546865726520617265206e6f206d6f7265207061636b732e0000000000000000604482015260640161058c565b6001600860008282546110d69190611eb3565b90915550506000818152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b8252822080546001810182559083529120018190558251819084908490811061113757611137611ddc565b6020908102919091010152508061114d81611df2565b915050611067565b5060006111628585611586565b9050806111e65760405162461bcd60e51b815260206004820152604660248201527f546865207472616e73666572732072656c6174656420746f207468652070757260448201527f6368617365206f66207061636b7320636f756c64206e6f7420626520636f6d706064820152653632ba32b21760d11b608482015260a40161058c565b8360010361125a577fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca7858360008151811061122357611223611ddc565b602002602001015160405161124d9291906001600160a01b03929092168252602082015260400190565b60405180910390a1611294565b7f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c9858360405161128b929190611f12565b60405180910390a15b509392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806112fa836001610f51565b90508060008151811061130f5761130f611ddc565b6020026020010151915050919050565b6001600160a01b0382166113455760405162461bcd60e51b815260040161058c90611d8c565b6000818152600a60205260409020546001600160a01b031633146113ab5760405162461bcd60e51b815260206004820152601760248201527f54486973207061636b206973206e6f7420796f7572732e000000000000000000604482015260640161058c565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384161790556113dc8133611447565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529282902090920184905581513381529081019290925281018290527f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a290606001610c15565b6001600160a01b0381166000908152600b6020526040812054905b81811015611580576001600160a01b0383166000908152600b6020526040902080548591908390811061149757611497611ddc565b90600052602060002001540361156e576001600160a01b0383166000908152600b6020526040902080546114cd90600190611d79565b815481106114dd576114dd611ddc565b9060005260206000200154600b6000856001600160a01b03166001600160a01b03168152602001908152602001600020828154811061151e5761151e611ddc565b60009182526020808320909101929092556001600160a01b0385168152600b9091526040902080548061155357611553611f36565b60019003818190600052602060002001600090559055611580565b8061157881611df2565b915050611462565b50505050565b600080611592836107a7565b9050600061159f84610530565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b505060095460ff16159150611a8f905057600554604051636eb1769f60e11b81526001600160a01b03878116600483015230602483015290911690600090829063dd62ed3e90604401602060405180830381865afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116849190611f4c565b90506116908385611eb3565b8110156117165760405162461bcd60e51b815260206004820152604860248201527f496e73756666696369656e7420616c6c6f77616e636520746f207472616e736660448201527f6572207072697a657320616d6f756e7420616e64204e4f46204163636f756e746064820152671030b6b7bab73a1760c11b608482015260a40161058c565b6040516370a0823160e01b81526001600160a01b0388811660048301528591908416906370a0823190602401602060405180830381865afa15801561175f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117839190611f4c565b10156117e95760405162461bcd60e51b815260206004820152602f60248201527f496e73756666696369656e742062616c616e636520746f207472616e7366657260448201526e10383934bd32b99030b6b7bab73a1760891b606482015260840161058c565b6040516370a0823160e01b81526001600160a01b0388811660048301528491908416906370a0823190602401602060405180830381865afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118569190611f4c565b10156118bc5760405162461bcd60e51b815260206004820152602f60248201527f496e73756666696369656e742062616c616e636520746f207472616e7366657260448201526e10383937b334ba1030b6b7bab73a1760891b606482015260840161058c565b6001546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018690526000918416906323b872dd906064016020604051808303816000875af1158015611919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193d9190611f65565b9050806119a65760405162461bcd60e51b815260206004820152603160248201527f4572726f722073656e64696e67207072697a6520616d6f756e7420746f20676160448201527036b6b0a1b0b93239a1b7b73a3930b1ba1760791b606482015260840161058c565b6007546040516323b872dd60e01b81526001600160a01b038a811660048301529182166024820152604481018690526000918516906323b872dd906064016020604051808303816000875af1158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a279190611f65565b905080611a8a5760405162461bcd60e51b815260206004820152602b60248201527f4572726f722073656e64696e672070726f66697420616d6f756e7420746f204e60448201526a37a31030b1b1b7bab73a1760a91b606482015260840161058c565b505050505b506001949350505050565b600060208284031215611aac57600080fd5b5035919050565b80356001600160a01b0381168114610a1f57600080fd5b60008060008060808587031215611ae057600080fd5b611ae985611ab3565b9350611af760208601611ab3565b9250611b0560408601611ab3565b9150611b1360608601611ab3565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b4557600080fd5b8135602067ffffffffffffffff80831115611b6257611b62611b1e565b8260051b604051601f19603f83011681018181108482111715611b8757611b87611b1e565b604052938452858101830193838101925087851115611ba557600080fd5b83870191505b84821015611bc457813583529183019190830190611bab565b979650505050505050565b60008060408385031215611be257600080fd5b823567ffffffffffffffff811115611bf957600080fd5b611c0585828601611b34565b925050611c1460208401611ab3565b90509250929050565b600060208284031215611c2f57600080fd5b61055782611ab3565b60008060408385031215611c4b57600080fd5b82359150611c1460208401611ab3565b60008060408385031215611c6e57600080fd5b611c7783611ab3565b946020939093013593505050565b600081518084526020808501945080840160005b83811015611cb557815187529582019590820190600101611c99565b509495945050505050565b6020815260006105576020830184611c85565b8015158114610e8e57600080fd5b600060208284031215611cf357600080fd5b813561055781611cd3565b60008060408385031215611d1157600080fd5b611d1a83611ab3565b9150602083013567ffffffffffffffff811115611d3657600080fd5b611d4285828601611b34565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107cf576107cf611d4c565b818103818111156107cf576107cf611d4c565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b604082015260600190565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611e0457611e04611d4c565b5060010190565b600082611e2857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526031908201527f4f6e6c792067616d6d6120636172647320636f6e74726163742063616e2063616040820152703636103a3434b990333ab731ba34b7b71760791b606082015260800190565b6001600160a01b03848116825283166020820152606060408201819052600090611eaa90830184611c85565b95945050505050565b808201808211156107cf576107cf611d4c565b6020808252602c908201527f4e756d626572206f66207061636b732073686f756c642062652067726561746560408201526b39103a3430b7103d32b9379760a11b606082015260800190565b6001600160a01b0383168152604060208201819052600090610c4690830184611c85565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611f5e57600080fd5b5051919050565b600060208284031215611f7757600080fd5b815161055781611cd356fea2646970667358221220c72b2393e3bcd3deb50f5fff31aba6f60a77f67288c45d0a79012f6e873e6a6864736f6c63430008140033", + "bytecode": "0x60806040526710a741a46278000060075560006008556009805460ff191660011790553480156200002f57600080fd5b5060405162001c6238038062001c628339810160408190526200005291620001af565b33806200007957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000848162000142565b506001600160a01b0383161580620000a357506001600160a01b038216155b80620000b657506001600160a01b038116155b15620000d55760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff191690911790556200020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001aa57600080fd5b919050565b60008060008060808587031215620001c657600080fd5b620001d18562000192565b9350620001e16020860162000192565b9250620001f16040860162000192565b9150620002016060860162000192565b905092959194509250565b611a46806200021c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", "linkReferences": { "contracts/gamma/libs/LibControlMgmt.sol": { "LibControlMgmt": [ { "length": 20, - "start": 1973 + "start": 2093 }, { "length": 20, - "start": 2487 + "start": 2602 } ] } @@ -792,11 +863,11 @@ "LibControlMgmt": [ { "length": 20, - "start": 1817 + "start": 1553 }, { "length": 20, - "start": 2331 + "start": 2062 } ] } diff --git a/src/sections/Gamma/GammaMain.jsx b/src/sections/Gamma/GammaMain.jsx index 08c2d24d..983be3da 100644 --- a/src/sections/Gamma/GammaMain.jsx +++ b/src/sections/Gamma/GammaMain.jsx @@ -88,7 +88,9 @@ const GammaMain = () => { try { if (!walletAddress) return startLoading() + console.log("hola") await refreshPaginationObj() + console.log("chau") stopLoading() } catch (e) { stopLoading() diff --git a/src/services/gamma.js b/src/services/gamma.js index baf774ec..298cc256 100644 --- a/src/services/gamma.js +++ b/src/services/gamma.js @@ -111,7 +111,7 @@ export const openPacks = async ( export const getMaxPacksAllowedToOpenAtOnce = async (cardsContract) => { try { - const result = await cardsContract.maxPacksToOpenAtOnce() + const result = await cardsContract.s_maxPacksToOpenAtOnce() return result } catch (e) { handleError('0x', 'getMaxPacksAllowedToOpenAtOnce', e) @@ -121,9 +121,8 @@ export const getMaxPacksAllowedToOpenAtOnce = async (cardsContract) => { export const getCardsByUser = async (cardsContract, walletAddress) => { try { - if (!cardsContract || !walletAddress) return + if (!cardsContract || !walletAddress) return; const cardData = await cardsContract?.getCardsByUser(walletAddress) - const cardsPages = getGammacardsPages() let cardsObj = { ...cardsPages } @@ -186,8 +185,11 @@ export const hasCard = async (cardsContract, walletAddress, cardNumber) => { export const getPackPrice = async (cardsContract) => { try { + console.log("trying...") + console.log({ cardsContract }) if (!cardsContract) return - const price = await cardsContract.packPrice() + const price = await cardsContract.s_packPrice() + console.log({ price }) const result = ethers.utils.formatUnits(price, 18) return result } catch (e) { @@ -199,7 +201,7 @@ export const getPackPrice = async (cardsContract) => { export const getUserAlbums120Qtty = async (cardsContract, walletAddress) => { try { if (!cardsContract || !walletAddress) return - const userHasAlbum = await cardsContract.cardsByUser(walletAddress, 120) + const userHasAlbum = await cardsContract.s_cardsByUser(walletAddress, 120) return userHasAlbum } catch (e) { handleError(walletAddress, 'getUserAlbums120Qtty', e) @@ -275,20 +277,20 @@ export const burnCards = async (cardsContract, daiContract, walletAddress, cards } export const allowedToFinishAlbum60 = async (cardsContract, daiContract, walletAddress) => { - const userHasAlbum = await cardsContract.cardsByUser(walletAddress, 121) - const prizesBalance = await cardsContract.prizesBalance() - const secondaryAlbumPrize = await cardsContract.secondaryAlbumPrize() + const userHasAlbum = await cardsContract.s_cardsByUser(walletAddress, 121) + const s_prizesBalance = await cardsContract.s_prizesBalance() + const s_secondaryAlbumPrize = await cardsContract.s_secondaryAlbumPrize() const gammaContractBalance = await verifyDAIBalance(daiContract, cardsContract.address) - const prizeBalanceFormatted = ethers.utils.formatUnits(prizesBalance, 18) - const secondaryAlbumPrizeFormatted = ethers.utils.formatUnits(secondaryAlbumPrize, 18) + const prizeBalanceFormatted = ethers.utils.formatUnits(s_prizesBalance, 18) + const secondaryAlbumPrizeFormatted = ethers.utils.formatUnits(s_secondaryAlbumPrize, 18) const gammaContractBalanceFormatted = ethers.utils.formatUnits(gammaContractBalance, 18) - // require(prizesBalance >= secondaryAlbumPrize, "Insufficient funds (burnCards balance)."); + // require(s_prizesBalance >= s_secondaryAlbumPrize, "Insufficient funds (burnCards balance)."); const prizesBalanzGTSecondaryAlbumPrice = parseInt(prizeBalanceFormatted) >= parseInt(secondaryAlbumPrizeFormatted) // uint256 contractBalance = erc20Token.balanceOf(address(this)); - // require(contractBalance >= secondaryAlbumPrize, "Insufficient funds (contract)."); + // require(contractBalance >= s_secondaryAlbumPrize, "Insufficient funds (contract)."); const contractBalanzGTAlSecondarybumPrice = parseInt(gammaContractBalanceFormatted) >= parseInt(secondaryAlbumPrizeFormatted) @@ -305,31 +307,31 @@ export const allowedToFinishAlbum60 = async (cardsContract, daiContract, walletA result }) - return { result: result, amountRequired: secondaryAlbumPrize } + return { result: result, amountRequired: s_secondaryAlbumPrize } } export const allowedToFinishAlbum120 = async (cardsContract, daiContract, walletAddress) => { // Hay 4 condicione sen el contrato para poder completarlo: // 1. Que el usuario tengan un álbum: require(cardsByUser[msg.sender][120] > 0, "No tienes ningun album"); - // 2. Que haya un balance mayor a lo que se paga de premio: require(prizesBalance >= mainAlbumPrize, "Fondos insuficientes"); + // 2. Que haya un balance mayor a lo que se paga de premio: require(s_prizesBalance >= s_mainAlbumPrize, "Fondos insuficientes"); // 3. Que el usuario tenga todas las cartas. - // 4. Que el contrato tenga un balance superior al precio del premio (mainAlbumPrize) + // 4. Que el contrato tenga un balance superior al precio del premio (s_mainAlbumPrize) // Las 4 se validan en el contrato y aquí (para evitar la llamada al contrato) // require(cardsByUser[msg.sender][120] > 0, "No tienes ningun album"); if (!cardsContract || !walletAddress) return - const userHasAlbum = await cardsContract.cardsByUser(walletAddress, 120) - const prizesBalance = await cardsContract.prizesBalance() - const mainAlbumPrize = await cardsContract.mainAlbumPrize() + const userHasAlbum = await cardsContract.s_cardsByUser(walletAddress, 120) + const s_prizesBalance = await cardsContract.s_prizesBalance() + const s_mainAlbumPrize = await cardsContract.s_mainAlbumPrize() const gammaContractBalance = await verifyDAIBalance(daiContract, cardsContract.address) - const prizeBalanceFormatted = ethers.utils.formatUnits(prizesBalance, 18) - const albumPrizeFormatted = ethers.utils.formatUnits(mainAlbumPrize, 18) + const prizeBalanceFormatted = ethers.utils.formatUnits(s_prizesBalance, 18) + const albumPrizeFormatted = ethers.utils.formatUnits(s_mainAlbumPrize, 18) const gammaContractBalanceFormatted = ethers.utils.formatUnits(gammaContractBalance, 18) - // require(prizesBalance >= mainAlbumPrize, "Fondos insuficientes"); + // require(s_prizesBalance >= s_mainAlbumPrize, "Fondos insuficientes"); const prizesBalanzGTAlbumPrice = parseInt(prizeBalanceFormatted) >= parseInt(albumPrizeFormatted) - // require gammaCardContractBalance >= mainAlbumPrize + // require gammaCardContractBalance >= s_mainAlbumPrize const contractBalanzGTAlbumPrice = parseInt(gammaContractBalanceFormatted) >= parseInt(albumPrizeFormatted) From b0cc15a90dec758952266dda5a2f666d0c242a2c Mon Sep 17 00:00:00 2001 From: Tomas Date: Tue, 5 Mar 2024 08:54:31 -0300 Subject: [PATCH 02/11] [style] removed console logs --- src/config.js | 8 ++++---- src/context/GammaDataContext.js | 1 - src/sections/Gamma/GammaMain.jsx | 2 -- src/services/gamma.js | 3 --- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/config.js b/src/config.js index 0ba78bcd..52a07f45 100644 --- a/src/config.js +++ b/src/config.js @@ -86,11 +86,11 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlMumbai // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0x950795BFeCf1AD7A0e4B82051Fac0e47385942eF', + daiAddress: '0xECDecF03FF06Ee5DC34BF23643c425164Be4d881', alphaAddress: '0x46b142DD1E924FAb83eCc3c08e4D46E82f005e0E', - gammaCardsAddress: '0xc147F78a979266c07e2A49e01B6af2fc3D7793c5', - gammaPackAddress: '0x941157F9B5b77e27fBdA12eb0c35988A1117De2D', - gammaOffersAddress: '0xBc3e1E3690329eDE0364784da68F77A8515EB55f', + gammaCardsAddress: '0xAa6Fa84cdBE8B3C8c8EB6B3A4dfF7C120A699583', + gammaPackAddress: '0x34e459a1Ea8a21813A9dF066B8D4b2904Ac990fB', + gammaOffersAddress: '0x9544e48Cc3b43848dd7EA642Bb5dbD2814C0728e', gammaTicketsAddress: '0x4C2F7092C2aE51D986bEFEe378e50BD4dB99C901' } }, diff --git a/src/context/GammaDataContext.js b/src/context/GammaDataContext.js index 597e081e..280e2e91 100644 --- a/src/context/GammaDataContext.js +++ b/src/context/GammaDataContext.js @@ -26,7 +26,6 @@ const GammaDataContextProvider = ({ children }) => { const refreshPaginationObj = async () => { try { - console.log(gammaCardsContract?.address) const userCards = await getCardsByUser(gammaCardsContract, walletAddress) setPaginationObj({}) // para limpiar ref setPaginationObj(userCards) diff --git a/src/sections/Gamma/GammaMain.jsx b/src/sections/Gamma/GammaMain.jsx index 983be3da..08c2d24d 100644 --- a/src/sections/Gamma/GammaMain.jsx +++ b/src/sections/Gamma/GammaMain.jsx @@ -88,9 +88,7 @@ const GammaMain = () => { try { if (!walletAddress) return startLoading() - console.log("hola") await refreshPaginationObj() - console.log("chau") stopLoading() } catch (e) { stopLoading() diff --git a/src/services/gamma.js b/src/services/gamma.js index 298cc256..b972b9ac 100644 --- a/src/services/gamma.js +++ b/src/services/gamma.js @@ -185,11 +185,8 @@ export const hasCard = async (cardsContract, walletAddress, cardNumber) => { export const getPackPrice = async (cardsContract) => { try { - console.log("trying...") - console.log({ cardsContract }) if (!cardsContract) return const price = await cardsContract.s_packPrice() - console.log({ price }) const result = ethers.utils.formatUnits(price, 18) return result } catch (e) { From 1c330be0a72484ad8fdebc3cc62f2038d6ad8787 Mon Sep 17 00:00:00 2001 From: dappsar Date: Tue, 5 Mar 2024 22:27:30 -0300 Subject: [PATCH 03/11] [refactor] :recycle: put abis in same folder-tree that source contracts-folder --- src/context/Web3Context.js | 12 +- .../GammaCards.v5.sol/NofGammaCardsV5.json | 2007 ----------------- .../NofGammaCardsNFTV1.json | 494 ---- .../GammaOffers.v4.sol/NofGammaOffersV4.json | 1042 --------- .../GammaPacks.v3.sol/NofGammaPacksV3.json | 875 ------- .../NofGammaTicketsV1.json | 564 ----- .../{ => alpha}/Alpha.v3.sol/NofAlphaV3.json | 0 .../ContextMixin.v2.sol/ContextMixinV2.json | 0 .../IgammaOffersContract.json | 0 .../IgammaPacksContract.json | 0 .../IgammaTicketsContract.json | 0 .../GammaCards.v5.sol/NofGammaCardsV5.json | 1884 ++++++++++++++++ .../NofGammaCardsNFTV1.json | 391 ++++ .../IGammaCardsContract.json | 0 .../GammaOffers.v4.sol/NofGammaOffersV4.json | 1022 +++++++++ .../IGammaCardsContract.json | 0 .../IgammaTicketsContract.json | 0 .../GammaPacks.v3.sol/NofGammaPacksV3.json | 855 +++++++ .../IGammaCardsContract.json | 0 .../IgammaPacksContract.json | 0 .../NofGammaTicketsV1.json | 584 +++++ .../LibControlMgmt.sol/LibControlMgmt.json | 0 .../LibPackVerifier.sol/LibPackVerifier.json | 0 .../LibStringUtils.sol/LibStringUtils.json | 0 .../TestDAI.v3.sol/AccessControl.json | 0 .../TestDAI.v3.sol/AccessControlMixin.json | 0 .../{ => testDai}/TestDAI.v3.sol/Address.json | 0 .../TestDAI.v3.sol/ChainConstants.json | 0 .../{ => testDai}/TestDAI.v3.sol/Context.json | 0 .../TestDAI.v3.sol/ContextMixin.json | 0 .../TestDAI.v3.sol/EIP712Base.json | 0 .../{ => testDai}/TestDAI.v3.sol/ERC20.json | 0 .../TestDAI.v3.sol/EnumerableSet.json | 0 .../TestDAI.v3.sol/IChildToken.json | 0 .../{ => testDai}/TestDAI.v3.sol/IERC20.json | 0 .../TestDAI.v3.sol/Initializable.json | 0 .../TestDAI.v3.sol/NativeMetaTransaction.json | 0 .../TestDAI.v3.sol/NofTestDAIV3.json | 0 .../TestDAI.v3.sol/SafeMath.json | 0 .../TestDAI.v3.sol/UChildERC20.json | 0 40 files changed, 4742 insertions(+), 4988 deletions(-) delete mode 100644 src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json delete mode 100644 src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json delete mode 100644 src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json delete mode 100644 src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json delete mode 100644 src/context/abis/GammaTickets.v1.sol/NofGammaTicketsV1.json rename src/context/abis/{ => alpha}/Alpha.v3.sol/NofAlphaV3.json (100%) rename src/context/abis/{ => alpha}/ContextMixin.v2.sol/ContextMixinV2.json (100%) rename src/context/abis/{ => gamma}/GammaCards.v5.sol/IgammaOffersContract.json (100%) rename src/context/abis/{ => gamma}/GammaCards.v5.sol/IgammaPacksContract.json (100%) rename src/context/abis/{ => gamma}/GammaCards.v5.sol/IgammaTicketsContract.json (100%) create mode 100644 src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json create mode 100644 src/context/abis/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json rename src/context/abis/{ => gamma}/GammaOffers.v4.sol/IGammaCardsContract.json (100%) create mode 100644 src/context/abis/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json rename src/context/abis/{ => gamma}/GammaPacks.v3.sol/IGammaCardsContract.json (100%) rename src/context/abis/{ => gamma}/GammaPacks.v3.sol/IgammaTicketsContract.json (100%) create mode 100644 src/context/abis/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json rename src/context/abis/{ => gamma}/GammaTickets.v1.sol/IGammaCardsContract.json (100%) rename src/context/abis/{ => gamma}/GammaTickets.v1.sol/IgammaPacksContract.json (100%) create mode 100644 src/context/abis/gamma/GammaTickets.v1.sol/NofGammaTicketsV1.json rename src/context/abis/{ => gamma}/libs/LibControlMgmt.sol/LibControlMgmt.json (100%) rename src/context/abis/{ => gamma}/libs/LibPackVerifier.sol/LibPackVerifier.json (100%) rename src/context/abis/{ => gamma}/libs/LibStringUtils.sol/LibStringUtils.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/AccessControl.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/AccessControlMixin.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/Address.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/ChainConstants.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/Context.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/ContextMixin.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/EIP712Base.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/ERC20.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/EnumerableSet.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/IChildToken.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/IERC20.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/Initializable.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/NativeMetaTransaction.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/NofTestDAIV3.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/SafeMath.json (100%) rename src/context/abis/{ => testDai}/TestDAI.v3.sol/UChildERC20.json (100%) diff --git a/src/context/Web3Context.js b/src/context/Web3Context.js index bedab265..e317fae3 100644 --- a/src/context/Web3Context.js +++ b/src/context/Web3Context.js @@ -4,12 +4,12 @@ import { ethers } from 'ethers' import { createWeb3Modal, defaultConfig } from '@web3modal/ethers5/react' import { useWeb3ModalProvider, useWeb3ModalAccount } from '@web3modal/ethers5/react' import { useWeb3Modal, useDisconnect } from '@web3modal/ethers5/react' -import daiAbi from './abis/TestDAI.v3.sol/NofTestDAIV3.json' -import alphaAbi from './abis/Alpha.v3.sol/NofAlphaV3.json' -import gammaPacksAbi from './abis/GammaPacks.v3.sol/NofGammaPacksV3.json' -import gammaCardsAbi from './abis/GammaCards.v5.sol/NofGammaCardsV5.json' -import gammaOffersAbi from './abis/GammaOffers.v4.sol/NofGammaOffersV4.json' -import gammaTicketsAbi from './abis/GammaTickets.v1.sol/NofGammaTicketsV1.json' +import daiAbi from './abis/testDai/TestDAI.v3.sol/NofTestDAIV3.json' +import alphaAbi from './abis/alpha/Alpha.v3.sol/NofAlphaV3.json' +import gammaPacksAbi from './abis/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json' +import gammaCardsAbi from './abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json' +import gammaOffersAbi from './abis/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json' +import gammaTicketsAbi from './abis/gamma/GammaTickets.v1.sol/NofGammaTicketsV1.json' import { NETWORKS, walletConnectProjectId, environment } from '../config' import { NotificationContext } from './NotificationContext' import { getAccountAddressText } from '../utils/stringUtils' diff --git a/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json b/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json deleted file mode 100644 index 477c0f52..00000000 --- a/src/context/abis/GammaCards.v5.sol/NofGammaCardsV5.json +++ /dev/null @@ -1,2007 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaCardsV5", - "sourceName": "contracts/gamma/GammaCards.v5.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_daiTokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaOffersContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - }, - { - "internalType": "string", - "name": "_baseUri", - "type": "string" - }, - { - "internalType": "address", - "name": "_signer", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "CannotRemoveUserOffers", - "type": "error" - }, - { - "inputs": [], - "name": "CardLimitExceeded", - "type": "error" - }, - { - "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" - }, - { - "inputs": [], - "name": "IncorrectPrizeAmount", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientCards", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientFunds", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCardNumber", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidSignature", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTransfer", - "type": "error" - }, - { - "inputs": [], - "name": "MustCompleteAlbum", - "type": "error" - }, - { - "inputs": [], - "name": "NotYourPack", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyGammaPacksContract", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOffersContract", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOwners", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [], - "name": "UserDoesNotHaveCardOrAlbum", - "type": "error" - }, - { - "inputs": [], - "name": "WrongPacksQuantity", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "albumClass", - "type": "uint8" - } - ], - "name": "AlbumCompleted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_fromTokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_toTokenId", - "type": "uint256" - } - ], - "name": "BatchMetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "cardTokenId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "albumTokenId", - "type": "uint256" - } - ], - "name": "CardPasted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "CardTransfered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8[]", - "name": "cardsNumber", - "type": "uint8[]" - } - ], - "name": "CardsBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8[]", - "name": "cardNumber", - "type": "uint8[]" - } - ], - "name": "CardsTransfered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "EmergencyWithdrawal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "MetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaOffersContract", - "type": "address" - } - ], - "name": "NewGammaOffersContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaPacksContract", - "type": "address" - } - ], - "name": "NewGammaPacksContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaTicketContract", - "type": "address" - } - ], - "name": "NewGammaTicketsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSigner", - "type": "address" - } - ], - "name": "NewSigner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "newMainUri", - "type": "string" - }, - { - "indexed": true, - "internalType": "string", - "name": "newSecondaryUri", - "type": "string" - } - ], - "name": "NewUris", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumberFrom", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumberTo", - "type": "uint8" - } - ], - "name": "OfferCardsExchanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - } - ], - "name": "PackOpened", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DAI_TOKEN", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newSigner", - "type": "address" - } - ], - "name": "addSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8[]", - "name": "cardNumbers", - "type": "uint8[]" - } - ], - "name": "burnCards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_maxPacksToOpenAtOnce", - "type": "uint8" - } - ], - "name": "changeMaxPacksToOpenAtOnce", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPackPrice", - "type": "uint256" - } - ], - "name": "changePackPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "required", - "type": "bool" - } - ], - "name": "changeRequireOfferValidationInMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "required", - "type": "bool" - } - ], - "name": "changeRequireOfferValidationInTransfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "required", - "type": "bool" - } - ], - "name": "changeRequireOpenPackSignerValidation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "emergencyWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberFrom", - "type": "uint8" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberTo", - "type": "uint8" - } - ], - "name": "exchangeCardsOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "finishAlbum", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaOffersContract", - "outputs": [ - { - "internalType": "contract IgammaOffersContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaPacksContract", - "outputs": [ - { - "internalType": "contract IgammaPacksContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaTicketsContract", - "outputs": [ - { - "internalType": "contract IgammaTicketsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getBurnedCardQttyByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNum", - "type": "uint8" - } - ], - "name": "getCardQuantityByUser", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getCardsByUser", - "outputs": [ - { - "internalType": "uint8[]", - "name": "", - "type": "uint8[]" - }, - { - "internalType": "uint8[]", - "name": "", - "type": "uint8[]" - }, - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getLotteryPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNum", - "type": "uint8" - } - ], - "name": "hasCard", - "outputs": [ - { - "internalType": "bool", - "name": "has", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "hasCardByOffer", - "outputs": [ - { - "internalType": "bool", - "name": "has", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNum", - "type": "uint8" - } - ], - "name": "mintCard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "openPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "packsQuantity", - "type": "uint8" - }, - { - "internalType": "uint256[]", - "name": "packsNumber", - "type": "uint256[]" - }, - { - "internalType": "uint8[][]", - "name": "packsData", - "type": "uint8[][]" - }, - { - "internalType": "bytes[]", - "name": "signatures", - "type": "bytes[]" - } - ], - "name": "openPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_signerToRemove", - "type": "address" - } - ], - "name": "removeSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "restoreCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "s_baseUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "s_burnedCards", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "s_cards", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "number", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "pasted", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "completion", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "s_cardsByUser", - "outputs": [ - { - "internalType": "uint8", - "name": "amount", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "cardNumber", - "type": "uint256" - } - ], - "name": "s_cardsInventory", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_lotteryPrizePercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_mainAlbumPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_mainUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_maxPacksToOpenAtOnce", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_packPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_prizesBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_requireOfferValidationInMint", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_requireOfferValidationInTransfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_requireOpenPackSignerValidation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_secondaryAlbumPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_secondaryUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_tokenIdCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaOffersContract", - "type": "address" - } - ], - "name": "setGammaOffersContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - } - ], - "name": "setGammaPacksContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "name": "setGammaTicketsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "amount", - "type": "uint8" - } - ], - "name": "setLotteryPrizePercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setMainAlbumPrize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setPrizesBalance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setSecondaryAlbumPrize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "newMainUri", - "type": "string" - }, - { - "internalType": "string", - "name": "newSecondaryUri", - "type": "string" - } - ], - "name": "setUris", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "testAddCards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - } - ], - "name": "testOpenPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "transferCard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8[]", - "name": "cardNumbers", - "type": "uint8[]" - } - ], - "name": "transferCards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "verifyPackSigner", - "outputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040516200592d3803806200592d8339810160408190526200007d91620003ae565b336040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000d1919062000554565b506001620000e0828262000554565b5050506001600160a01b0381166200011257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200011d8162000303565b50336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a805486841690831617905560098054928716929091169190911790556017620001a4838262000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b81840152935162000203946017949390910162000620565b6040516020818303038152906040526015908162000222919062000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b81840152935162000281946017949390910162000620565b60405160208183030381529060405260169081620002a0919062000554565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015620002f6576000818152601a602052604090206001905580620002ed81620006dd565b915050620002c5565b5050505050505062000705565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003a55781810151838201526020016200038b565b50506000910152565b60008060008060008060c08789031215620003c857600080fd5b620003d38762000355565b9550620003e36020880162000355565b9450620003f36040880162000355565b9350620004036060880162000355565b60808801519093506001600160401b03808211156200042157600080fd5b818901915089601f8301126200043657600080fd5b8151818111156200044b576200044b62000372565b604051601f8201601f19908116603f0116810190838211818310171562000476576200047662000372565b816040528281528c60208487010111156200049057600080fd5b620004a383602083016020880162000388565b8096505050505050620004b960a0880162000355565b90509295509295509295565b600181811c90821680620004da57607f821691505b602082108103620004fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054f57600081815260208120601f850160051c810160208610156200052a5750805b601f850160051c820191505b818110156200054b5782815560010162000536565b5050505b505050565b81516001600160401b0381111562000570576200057062000372565b6200058881620005818454620004c5565b8462000501565b602080601f831160018114620005c05760008415620005a75750858301515b600019600386901b1c1916600185901b1785556200054b565b600085815260208120601f198616915b82811015620005f157888601518255948401946001909101908401620005d0565b5085821015620006105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008086546200063081620004c5565b600182811680156200064b5760018114620006615762000692565b60ff198416875282151583028701945062000692565b8a60005260208060002060005b85811015620006895781548a8201529084019082016200066e565b50505082870194505b505050508551620006a8818360208a0162000388565b8551910190620006bd81836020890162000388565b8451910190620006d281836020880162000388565b019695505050505050565b600060018201620006fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b61521880620007156000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 5805 - }, - { - "length": 20, - "start": 6489 - }, - { - "length": 20, - "start": 10458 - }, - { - "length": 20, - "start": 15317 - } - ] - }, - "contracts/gamma/libs/LibPackVerifier.sol": { - "LibPackVerifier": [ - { - "length": 20, - "start": 6067 - }, - { - "length": 20, - "start": 15807 - } - ] - }, - "contracts/gamma/libs/LibStringUtils.sol": { - "LibStringUtils": [ - { - "length": 20, - "start": 14469 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 3992 - }, - { - "length": 20, - "start": 4676 - }, - { - "length": 20, - "start": 8645 - }, - { - "length": 20, - "start": 13504 - } - ] - }, - "contracts/gamma/libs/LibPackVerifier.sol": { - "LibPackVerifier": [ - { - "length": 20, - "start": 4254 - }, - { - "length": 20, - "start": 13994 - } - ] - }, - "contracts/gamma/libs/LibStringUtils.sol": { - "LibStringUtils": [ - { - "length": 20, - "start": 12656 - } - ] - } - } -} diff --git a/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json b/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json deleted file mode 100644 index 33cf9eb9..00000000 --- a/src/context/abis/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json +++ /dev/null @@ -1,494 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaCardsNFTV1", - "sourceName": "contracts/gamma/GammaCardsNFT.v1.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "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" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_fromTokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_toTokenId", - "type": "uint256" - } - ], - "name": "BatchMetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "MetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61106480620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json b/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json deleted file mode 100644 index c7c5c39c..00000000 --- a/src/context/abis/GammaOffers.v4.sol/NofGammaOffersV4.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaOffersV4", - "sourceName": "contracts/gamma/GammaOffers.v4.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_cardsContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ExchangeError", - "type": "error" - }, - { - "inputs": [], - "name": "GammaCardsContractNotSet", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCard", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCardNumber", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidOfferId", - "type": "error" - }, - { - "inputs": [], - "name": "OfferAlreadyExists", - "type": "error" - }, - { - "inputs": [], - "name": "OfferDoesNotExists", - "type": "error" - }, - { - "inputs": [], - "name": "OfferNotDeleted", - "type": "error" - }, - { - "inputs": [], - "name": "OffersMaximumAllowed", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyCardsContract", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOwners", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [], - "name": "RemoveOfferFromCardNumberMapping_DoNotMatch", - "type": "error" - }, - { - "inputs": [], - "name": "RemoveOfferFromUserMapping_DoNotMatch", - "type": "error" - }, - { - "inputs": [], - "name": "UserAlreadyHasCard", - "type": "error" - }, - { - "inputs": [], - "name": "UserDoesNotHaveCard", - "type": "error" - }, - { - "anonymous": false, - "inputs": [], - "name": "AllOffersRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newGammaCardsContract", - "type": "address" - } - ], - "name": "NewGammaCardsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - } - ], - "name": "OfferCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "OfferRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "UserOffersRemoved", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "canAnyUserPublishOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "canUserPublishOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_value", - "type": "bool" - } - ], - "name": "changeRemoveCardinInventoryWhenOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberWanted", - "type": "uint8" - }, - { - "internalType": "address", - "name": "offerWallet", - "type": "address" - }, - { - "internalType": "uint8", - "name": "offerCardNumber", - "type": "uint8" - } - ], - "name": "confirmOfferExchange", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - } - ], - "name": "createOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - } - ], - "name": "createOfferWithoUser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deleteAllOffers", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaCardsContract", - "outputs": [ - { - "internalType": "contract IGammaCardsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxOffersAllowed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxOffersByUserAllowed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getOfferByIndex", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - } - ], - "name": "getOfferByOfferId", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOfferByUserAndCardNumber", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOffers", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOffersByCardNumber", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOffersByCardNumberCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getOffersByUser", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getOffersByUserCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOffersCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "hasOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "offers", - "outputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "name": "offersByCardNumberCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "offersByUserCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "offersTotalCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeOfferByCardNumber", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeOfferByUserAndCardNumber", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "removeOffersByUser", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - } - ], - "name": "setGammaCardsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxCardNumbersAllowed", - "type": "uint256" - } - ], - "name": "setMaxCardNumbersAllowed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxOffersAllowed", - "type": "uint256" - } - ], - "name": "setMaxOffersAllowed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxOffersByUserAllowed", - "type": "uint256" - } - ], - "name": "setMaxOffersByUserAllowed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b506040516200379b3803806200379b8339810160408190526200004d9162000138565b33806200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f81620000e8565b506001600160a01b038116620000a85760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff191690911790556200016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014b57600080fd5b81516001600160a01b03811681146200016357600080fd5b9392505050565b613621806200017a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1898 - }, - { - "length": 20, - "start": 3666 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1520 - }, - { - "length": 20, - "start": 3288 - } - ] - } - } -} diff --git a/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json b/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json deleted file mode 100644 index 6e18eaad..00000000 --- a/src/context/abis/GammaPacks.v3.sol/NofGammaPacksV3.json +++ /dev/null @@ -1,875 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaPacksV3", - "sourceName": "contracts/gamma/GammaPacks.v3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_daiTokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_balanceReceiver", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "InsufficientAllowance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientPacksAvailable", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidNumberOfPacks", - "type": "error" - }, - { - "inputs": [], - "name": "NotGammaCardsContract", - "type": "error" - }, - { - "inputs": [], - "name": "NotYourPack", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [], - "name": "OwnlyOwners", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - } - ], - "name": "TransferPrizeError", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "balanceReceiver", - "type": "address" - } - ], - "name": "NewBalanceReceiver", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newCardsContract", - "type": "address" - } - ], - "name": "NewGammaCardsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaTicketContract", - "type": "address" - } - ], - "name": "NewGammaTicketsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } - ], - "name": "NewPrice", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "PackOpened", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "buyer", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "PackPurchased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "PackTransfered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "buyer", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - } - ], - "name": "PacksPurchased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256[]", - "name": "tokenId", - "type": "uint256[]" - } - ], - "name": "PacksTransfered", - "type": "event" - }, - { - "inputs": [], - "name": "DAI_TOKEN", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TOTALSUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "buyPack", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "buyPackByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "buyPacks", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "buyPacksByUser", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newBalanceReceiver", - "type": "address" - } - ], - "name": "changeBalanceReceiver", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_newPrice", - "type": "uint256" - } - ], - "name": "changePrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_transferDai", - "type": "bool" - } - ], - "name": "changeTransferDaiFlag", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaCardsContract", - "outputs": [ - { - "internalType": "contract IGammaCardsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaTicketsContract", - "outputs": [ - { - "internalType": "contract IgammaTicketsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "getAmountRequiredToBuyPacks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getPackOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getPacksByUser", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "getPrizeAmountToBuyPacks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "getPrizeNoFAccountAmountToBuyPacks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "meetQuantityConditionsToBuy", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "openPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "openPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "s_balanceReceiver", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_packPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "s_packs", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "s_packsByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenIds", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - } - ], - "name": "setGammaCardsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "name": "setGammaTicketsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "testOpenPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "testOpenPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - } - ], - "name": "transferPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526710a741a46278000060075560006008556009805460ff191660011790553480156200002f57600080fd5b5060405162001c6238038062001c628339810160408190526200005291620001af565b33806200007957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000848162000142565b506001600160a01b0383161580620000a357506001600160a01b038216155b80620000b657506001600160a01b038116155b15620000d55760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff191690911790556200020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001aa57600080fd5b919050565b60008060008060808587031215620001c657600080fd5b620001d18562000192565b9350620001e16020860162000192565b9250620001f16040860162000192565b9150620002016060860162000192565b905092959194509250565b611a46806200021c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 2093 - }, - { - "length": 20, - "start": 2602 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1553 - }, - { - "length": 20, - "start": 2062 - } - ] - } - } -} diff --git a/src/context/abis/GammaTickets.v1.sol/NofGammaTicketsV1.json b/src/context/abis/GammaTickets.v1.sol/NofGammaTicketsV1.json deleted file mode 100644 index 62a651f9..00000000 --- a/src/context/abis/GammaTickets.v1.sol/NofGammaTicketsV1.json +++ /dev/null @@ -1,564 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaTicketsV1", - "sourceName": "contracts/gamma/GammaTickets.v1.sol", - "abi": [ - { - "anonymous": false, - "inputs": [], - "name": "AllTicketsRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newGammaCardsContract", - "type": "address" - } - ], - "name": "NewGammaCardsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newGammaPacksContract", - "type": "address" - } - ], - "name": "NewGammaPacksContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "TicketGenerated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "WinnerObtained", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deleteAllTickets", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaCardsContract", - "outputs": [ - { - "internalType": "contract IGammaCardsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaPacksContract", - "outputs": [ - { - "internalType": "contract IgammaPacksContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "generateTicket", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getLotteryWinner", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getTickets", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "internalType": "struct NofGammaTicketsV1.Ticket[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getTicketsByUser", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "internalType": "struct NofGammaTicketsV1.Ticket[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWinner", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - } - ], - "name": "setGammaCardsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - } - ], - "name": "setGammaPacksContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "tickets", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "ticketsByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ticketsTotalCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "winner", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040526000600b5534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6110f7806100836000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063dfbf53ae1161007c578063dfbf53ae1461029e578063e5b0b100146102bd578063e6afe6bc146102d0578063f09a4016146102e7578063f2fde38b146102fa578063fa8213d31461030d57600080fd5b80638da5cb5b146102575780638e7ea5b214610268578063b2d55c1c14610270578063cafaa47314610278578063d250f03a1461028b57600080fd5b80634c7a7ad3116100ff5780634c7a7ad3146102015780634ed026221461021457806350b44712146102295780637065cb481461023c578063715018a61461024f57600080fd5b806304ac05cf1461013c578063173825d91461017d5780632f54bf6e146101925780632f9e026a146101ce578063306e4118146101f9575b600080fd5b61014f61014a366004610ebc565b610320565b604080519485526020850193909352918301526001600160a01b031660608201526080015b60405180910390f35b61019061018b366004610ee6565b61036f565b005b6101be6101a0366004610ee6565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610174565b6002546101e1906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b61019061041d565b61019061020f366004610ee6565b6104f0565b61021c61059a565b6040516101749190610f08565b61014f610237366004610f75565b610624565b61019061024a366004610ee6565b610667565b6101906106dd565b6000546001600160a01b03166101e1565b61014f6106f1565b61014f61070d565b610190610286366004610ee6565b6108ef565b6001546101e1906001600160a01b031681565b60065460075460085460095461014f939291906001600160a01b031684565b61021c6102cb366004610ee6565b610992565b6102d9600b5481565b604051908152602001610174565b6101906102f5366004610f8e565b610a32565b610190610308366004610ee6565b610ace565b61019061031b366004610ee6565b610b47565b600a602052816000526040600020818154811061033c57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526003602052604090205460ff166103a75760405162461bcd60e51b815260040161039e90610fc1565b60405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561040257600080fd5b505af4158015610416573d6000803e3d6000fd5b5050505050565b6002546001600160a01b031633146104475760405162461bcd60e51b815260040161039e90610fe7565b61045360056000610e4c565b6000600b8190555b6005548110156104c457600a60006005838154811061047c5761047c611038565b60009182526020808320600360049093020191909101546001600160a01b0316835282019290925260400181206104b291610e4c565b806104bc8161104e565b91505061045b565b506040517fc3ed638c0e10b967891ee71bc361fabc770df50e93331cdf41fddc37deb28b5b90600090a1565b3360009081526003602052604090205460ff1661051f5760405162461bcd60e51b815260040161039e90610fc1565b6001600160a01b0381166105455760405162461bcd60e51b815260040161039e90611075565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa906020015b60405180910390a150565b60606005805480602002602001604051908101604052809291908181526020016000905b8282101561061b57600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b0316606083015290835290920191016105be565b50505050905090565b6005818154811061063457600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491935091906001600160a01b031684565b3360009081526003602052604090205460ff166106965760405162461bcd60e51b815260040161039e90610fc1565b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae4906044016103ea565b6106e5610da2565b6106ef6000610dfc565b565b6006546007546008546009546001600160a01b03165b90919293565b6002546000908190819081906001600160a01b031633146107405760405162461bcd60e51b815260040161039e90610fe7565b60055461079d5760405162461bcd60e51b815260206004820152602560248201527f4e6f207469636b65747320617661696c61626c6520666f7220746865206c6f746044820152643a32b93c9760d91b606482015260840161039e565b600654156107c8575050600654600754600854600954929450909250906001600160a01b0316610707565b60055460408051426020820152449181019190915260608101829052600091906080016040516020818303038152906040528051906020012060001c61080e919061109f565b90506005818154811061082357610823611038565b60009182526020909120600490910201805460068190556001820154600781905560028301546008819055600390930154600980546001600160a01b0319166001600160a01b0390921691821790556040517f314d0f2749f4f47e45bd658d5f379146bedd6ac53f8e6f0f63c5fe4ab14bc2aa946108c39493929091938452602084019290925260408301526001600160a01b0316606082015260800190565b60405180910390a15050600654600754600854600954929691955093506001600160a01b039091169150565b3360009081526003602052604090205460ff1661091e5760405162461bcd60e51b815260040161039e90610fc1565b6001600160a01b0381166109445760405162461bcd60e51b815260040161039e90611075565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f9060200161058f565b6001600160a01b0381166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610a2757600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b0316606083015290835290920191016109ca565b505050509050919050565b610a3a610da2565b6001600160a01b038216610a605760405162461bcd60e51b815260040161039e90611075565b6001600160a01b038116610a865760405162461bcd60e51b815260040161039e90611075565b600280546001600160a01b039384166001600160a01b03199182161790915560018054929093169116178155336000908152600360205260409020805460ff19169091179055565b610ad6610da2565b6001600160a01b038116610b3b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039e565b610b4481610dfc565b50565b6001546001600160a01b03163314610bbb5760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792067616d6d6120636172647320636f6e74726163742063616e2063616044820152703636103a3434b990333ab731ba34b7b71760791b606482015260840161039e565b600b54604080514260208201819052918101839052606084811b6bffffffffffffffffffffffff19169082015260009060740160408051601f1981840301815282825280516020918201206080840183528584528382018181528484018881526001600160a01b03808b1660608801818152600580546001818101835560009283528b5160049283027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019190915588517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015587517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db282015584517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db390910180549188166001600160a01b0319928316179055948352600a8a529982208054808c0182559083529882208b519990910201978855945197870197909755915160028601559451600394909401805494909516931692909217909255600b805492945090610d4a8361104e565b909155505060408051848152602081018490529081018590526001600160a01b038616907f0493d9379fb7ffa47303ca5a377a34a8034f42db6d986fe1f57b0b800fd210919060600160405180910390a25050505050565b6000546001600160a01b031633146106ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546000825560040290600052602060002090810190610b4491905b80821115610e9c5760008082556001820181905560028201556003810180546001600160a01b0319169055600401610e69565b5090565b80356001600160a01b0381168114610eb757600080fd5b919050565b60008060408385031215610ecf57600080fd5b610ed883610ea0565b946020939093013593505050565b600060208284031215610ef857600080fd5b610f0182610ea0565b9392505050565b602080825282518282018190526000919060409081850190868401855b82811015610f6857815180518552868101518786015285810151868601526060908101516001600160a01b03169085015260809093019290850190600101610f25565b5091979650505050505050565b600060208284031215610f8757600080fd5b5035919050565b60008060408385031215610fa157600080fd5b610faa83610ea0565b9150610fb860208401610ea0565b90509250929050565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b60208082526031908201527f4f6e6c792067616d6d61207061636b7320636f6e74726163742063616e2063616040820152703636103a3434b990333ab731ba34b7b71760791b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161106e57634e487b7160e01b600052601160045260246000fd5b5060010190565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b604082015260600190565b6000826110bc57634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220cf6908679797d80ede0649852205b6283ff297198660c59b234d3069ef46f77c64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063dfbf53ae1161007c578063dfbf53ae1461029e578063e5b0b100146102bd578063e6afe6bc146102d0578063f09a4016146102e7578063f2fde38b146102fa578063fa8213d31461030d57600080fd5b80638da5cb5b146102575780638e7ea5b214610268578063b2d55c1c14610270578063cafaa47314610278578063d250f03a1461028b57600080fd5b80634c7a7ad3116100ff5780634c7a7ad3146102015780634ed026221461021457806350b44712146102295780637065cb481461023c578063715018a61461024f57600080fd5b806304ac05cf1461013c578063173825d91461017d5780632f54bf6e146101925780632f9e026a146101ce578063306e4118146101f9575b600080fd5b61014f61014a366004610ebc565b610320565b604080519485526020850193909352918301526001600160a01b031660608201526080015b60405180910390f35b61019061018b366004610ee6565b61036f565b005b6101be6101a0366004610ee6565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610174565b6002546101e1906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b61019061041d565b61019061020f366004610ee6565b6104f0565b61021c61059a565b6040516101749190610f08565b61014f610237366004610f75565b610624565b61019061024a366004610ee6565b610667565b6101906106dd565b6000546001600160a01b03166101e1565b61014f6106f1565b61014f61070d565b610190610286366004610ee6565b6108ef565b6001546101e1906001600160a01b031681565b60065460075460085460095461014f939291906001600160a01b031684565b61021c6102cb366004610ee6565b610992565b6102d9600b5481565b604051908152602001610174565b6101906102f5366004610f8e565b610a32565b610190610308366004610ee6565b610ace565b61019061031b366004610ee6565b610b47565b600a602052816000526040600020818154811061033c57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526003602052604090205460ff166103a75760405162461bcd60e51b815260040161039e90610fc1565b60405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561040257600080fd5b505af4158015610416573d6000803e3d6000fd5b5050505050565b6002546001600160a01b031633146104475760405162461bcd60e51b815260040161039e90610fe7565b61045360056000610e4c565b6000600b8190555b6005548110156104c457600a60006005838154811061047c5761047c611038565b60009182526020808320600360049093020191909101546001600160a01b0316835282019290925260400181206104b291610e4c565b806104bc8161104e565b91505061045b565b506040517fc3ed638c0e10b967891ee71bc361fabc770df50e93331cdf41fddc37deb28b5b90600090a1565b3360009081526003602052604090205460ff1661051f5760405162461bcd60e51b815260040161039e90610fc1565b6001600160a01b0381166105455760405162461bcd60e51b815260040161039e90611075565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa906020015b60405180910390a150565b60606005805480602002602001604051908101604052809291908181526020016000905b8282101561061b57600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b0316606083015290835290920191016105be565b50505050905090565b6005818154811061063457600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491935091906001600160a01b031684565b3360009081526003602052604090205460ff166106965760405162461bcd60e51b815260040161039e90610fc1565b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae4906044016103ea565b6106e5610da2565b6106ef6000610dfc565b565b6006546007546008546009546001600160a01b03165b90919293565b6002546000908190819081906001600160a01b031633146107405760405162461bcd60e51b815260040161039e90610fe7565b60055461079d5760405162461bcd60e51b815260206004820152602560248201527f4e6f207469636b65747320617661696c61626c6520666f7220746865206c6f746044820152643a32b93c9760d91b606482015260840161039e565b600654156107c8575050600654600754600854600954929450909250906001600160a01b0316610707565b60055460408051426020820152449181019190915260608101829052600091906080016040516020818303038152906040528051906020012060001c61080e919061109f565b90506005818154811061082357610823611038565b60009182526020909120600490910201805460068190556001820154600781905560028301546008819055600390930154600980546001600160a01b0319166001600160a01b0390921691821790556040517f314d0f2749f4f47e45bd658d5f379146bedd6ac53f8e6f0f63c5fe4ab14bc2aa946108c39493929091938452602084019290925260408301526001600160a01b0316606082015260800190565b60405180910390a15050600654600754600854600954929691955093506001600160a01b039091169150565b3360009081526003602052604090205460ff1661091e5760405162461bcd60e51b815260040161039e90610fc1565b6001600160a01b0381166109445760405162461bcd60e51b815260040161039e90611075565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f9060200161058f565b6001600160a01b0381166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610a2757600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b0316606083015290835290920191016109ca565b505050509050919050565b610a3a610da2565b6001600160a01b038216610a605760405162461bcd60e51b815260040161039e90611075565b6001600160a01b038116610a865760405162461bcd60e51b815260040161039e90611075565b600280546001600160a01b039384166001600160a01b03199182161790915560018054929093169116178155336000908152600360205260409020805460ff19169091179055565b610ad6610da2565b6001600160a01b038116610b3b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039e565b610b4481610dfc565b50565b6001546001600160a01b03163314610bbb5760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792067616d6d6120636172647320636f6e74726163742063616e2063616044820152703636103a3434b990333ab731ba34b7b71760791b606482015260840161039e565b600b54604080514260208201819052918101839052606084811b6bffffffffffffffffffffffff19169082015260009060740160408051601f1981840301815282825280516020918201206080840183528584528382018181528484018881526001600160a01b03808b1660608801818152600580546001818101835560009283528b5160049283027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019190915588517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015587517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db282015584517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db390910180549188166001600160a01b0319928316179055948352600a8a529982208054808c0182559083529882208b519990910201978855945197870197909755915160028601559451600394909401805494909516931692909217909255600b805492945090610d4a8361104e565b909155505060408051848152602081018490529081018590526001600160a01b038616907f0493d9379fb7ffa47303ca5a377a34a8034f42db6d986fe1f57b0b800fd210919060600160405180910390a25050505050565b6000546001600160a01b031633146106ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546000825560040290600052602060002090810190610b4491905b80821115610e9c5760008082556001820181905560028201556003810180546001600160a01b0319169055600401610e69565b5090565b80356001600160a01b0381168114610eb757600080fd5b919050565b60008060408385031215610ecf57600080fd5b610ed883610ea0565b946020939093013593505050565b600060208284031215610ef857600080fd5b610f0182610ea0565b9392505050565b602080825282518282018190526000919060409081850190868401855b82811015610f6857815180518552868101518786015285810151868601526060908101516001600160a01b03169085015260809093019290850190600101610f25565b5091979650505050505050565b600060208284031215610f8757600080fd5b5035919050565b60008060408385031215610fa157600080fd5b610faa83610ea0565b9150610fb860208401610ea0565b90509250929050565b6020808252600c908201526b27b7363c9037bbb732b9399760a11b604082015260600190565b60208082526031908201527f4f6e6c792067616d6d61207061636b7320636f6e74726163742063616e2063616040820152703636103a3434b990333ab731ba34b7b71760791b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161106e57634e487b7160e01b600052601160045260246000fd5b5060010190565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b604082015260600190565b6000826110bc57634e487b7160e01b600052601260045260246000fd5b50069056fea2646970667358221220cf6908679797d80ede0649852205b6283ff297198660c59b234d3069ef46f77c64736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1103 - }, - { - "length": 20, - "start": 1854 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 972 - }, - { - "length": 20, - "start": 1723 - } - ] - } - } -} diff --git a/src/context/abis/Alpha.v3.sol/NofAlphaV3.json b/src/context/abis/alpha/Alpha.v3.sol/NofAlphaV3.json similarity index 100% rename from src/context/abis/Alpha.v3.sol/NofAlphaV3.json rename to src/context/abis/alpha/Alpha.v3.sol/NofAlphaV3.json diff --git a/src/context/abis/ContextMixin.v2.sol/ContextMixinV2.json b/src/context/abis/alpha/ContextMixin.v2.sol/ContextMixinV2.json similarity index 100% rename from src/context/abis/ContextMixin.v2.sol/ContextMixinV2.json rename to src/context/abis/alpha/ContextMixin.v2.sol/ContextMixinV2.json diff --git a/src/context/abis/GammaCards.v5.sol/IgammaOffersContract.json b/src/context/abis/gamma/GammaCards.v5.sol/IgammaOffersContract.json similarity index 100% rename from src/context/abis/GammaCards.v5.sol/IgammaOffersContract.json rename to src/context/abis/gamma/GammaCards.v5.sol/IgammaOffersContract.json diff --git a/src/context/abis/GammaCards.v5.sol/IgammaPacksContract.json b/src/context/abis/gamma/GammaCards.v5.sol/IgammaPacksContract.json similarity index 100% rename from src/context/abis/GammaCards.v5.sol/IgammaPacksContract.json rename to src/context/abis/gamma/GammaCards.v5.sol/IgammaPacksContract.json diff --git a/src/context/abis/GammaCards.v5.sol/IgammaTicketsContract.json b/src/context/abis/gamma/GammaCards.v5.sol/IgammaTicketsContract.json similarity index 100% rename from src/context/abis/GammaCards.v5.sol/IgammaTicketsContract.json rename to src/context/abis/gamma/GammaCards.v5.sol/IgammaTicketsContract.json diff --git a/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json b/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json new file mode 100644 index 00000000..07a8c7d0 --- /dev/null +++ b/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json @@ -0,0 +1,1884 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaCardsV5", + "sourceName": "contracts/gamma/GammaCards.v5.sol", + "abi": [ + { + "inputs": [], + "name": "CannotRemoveUserOffers", + "type": "error" + }, + { + "inputs": [], + "name": "CardLimitExceeded", + "type": "error" + }, + { + "inputs": [], + "name": "IncorrectPrizeAmount", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientCards", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientFunds", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCardNumber", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidSignature", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidTransfer", + "type": "error" + }, + { + "inputs": [], + "name": "MustCompleteAlbum", + "type": "error" + }, + { + "inputs": [], + "name": "NotYourPack", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyGammaPacksContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOffersContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "inputs": [], + "name": "UserDoesNotHaveCardOrAlbum", + "type": "error" + }, + { + "inputs": [], + "name": "WrongPacksQuantity", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "player", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8", + "name": "albumClass", + "type": "uint8" + } + ], + "name": "AlbumCompleted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "player", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "cardTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "albumTokenId", + "type": "uint256" + } + ], + "name": "CardPasted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "CardTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8[]", + "name": "cardsNumber", + "type": "uint8[]" + } + ], + "name": "CardsBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8[]", + "name": "cardNumber", + "type": "uint8[]" + } + ], + "name": "CardsTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "EmergencyWithdrawal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaOffersContract", + "type": "address" + } + ], + "name": "NewGammaOffersContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaPacksContract", + "type": "address" + } + ], + "name": "NewGammaPacksContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaTicketContract", + "type": "address" + } + ], + "name": "NewGammaTicketsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newSigner", + "type": "address" + } + ], + "name": "NewSigner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "string", + "name": "newMainUri", + "type": "string" + }, + { + "indexed": true, + "internalType": "string", + "name": "newSecondaryUri", + "type": "string" + } + ], + "name": "NewUris", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumberFrom", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumberTo", + "type": "uint8" + } + ], + "name": "OfferCardsExchanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "player", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + } + ], + "name": "PackOpened", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DAI_TOKEN", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newSigner", + "type": "address" + } + ], + "name": "addSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8[]", + "name": "cardNumbers", + "type": "uint8[]" + } + ], + "name": "burnCards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "_maxPacksToOpenAtOnce", + "type": "uint8" + } + ], + "name": "changeMaxPacksToOpenAtOnce", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newPackPrice", + "type": "uint256" + } + ], + "name": "changePackPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "required", + "type": "bool" + } + ], + "name": "changeRequireOfferValidationInMint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "required", + "type": "bool" + } + ], + "name": "changeRequireOfferValidationInTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "required", + "type": "bool" + } + ], + "name": "changeRequireOpenPackSignerValidation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "emergencyWithdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberFrom", + "type": "uint8" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberTo", + "type": "uint8" + } + ], + "name": "exchangeCardsOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finishAlbum", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaOffersContract", + "outputs": [ + { + "internalType": "contract IgammaOffersContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaPacksContract", + "outputs": [ + { + "internalType": "contract IgammaPacksContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaTicketsContract", + "outputs": [ + { + "internalType": "contract IgammaTicketsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getBurnedCardQttyByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNum", + "type": "uint8" + } + ], + "name": "getCardQuantityByUser", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getCardsByUser", + "outputs": [ + { + "internalType": "uint8[]", + "name": "", + "type": "uint8[]" + }, + { + "internalType": "uint8[]", + "name": "", + "type": "uint8[]" + }, + { + "internalType": "bool[]", + "name": "", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLotteryPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNum", + "type": "uint8" + } + ], + "name": "hasCard", + "outputs": [ + { + "internalType": "bool", + "name": "has", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "hasCardByOffer", + "outputs": [ + { + "internalType": "bool", + "name": "has", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daiTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaOffersContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + }, + { + "internalType": "string", + "name": "_baseUri", + "type": "string" + }, + { + "internalType": "address", + "name": "_signer", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isSigner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNum", + "type": "uint8" + } + ], + "name": "mintCard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "openPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "packsQuantity", + "type": "uint8" + }, + { + "internalType": "uint256[]", + "name": "packsNumber", + "type": "uint256[]" + }, + { + "internalType": "uint8[][]", + "name": "packsData", + "type": "uint8[][]" + }, + { + "internalType": "bytes[]", + "name": "signatures", + "type": "bytes[]" + } + ], + "name": "openPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_signerToRemove", + "type": "address" + } + ], + "name": "removeSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "restoreCardByOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "s_baseUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "s_burnedCards", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "s_cards", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "number", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "pasted", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "class", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "completion", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "s_cardsByUser", + "outputs": [ + { + "internalType": "uint8", + "name": "amount", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "cardNumber", + "type": "uint256" + } + ], + "name": "s_cardsInventory", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_lotteryPrizePercentage", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_mainAlbumPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_mainUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_maxPacksToOpenAtOnce", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_packPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_prizesBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOfferValidationInMint", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOfferValidationInTransfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_requireOpenPackSignerValidation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_secondaryAlbumPrize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_secondaryUri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_tokenIdCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaOffersContract", + "type": "address" + } + ], + "name": "setGammaOffersContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + } + ], + "name": "setGammaPacksContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "name": "setGammaTicketsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "amount", + "type": "uint8" + } + ], + "name": "setLotteryPrizePercentage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setMainAlbumPrize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setPrizesBalance", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "setSecondaryAlbumPrize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newMainUri", + "type": "string" + }, + { + "internalType": "string", + "name": "newSecondaryUri", + "type": "string" + } + ], + "name": "setUris", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "testAddCards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + } + ], + "name": "testOpenPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "transferCard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint8[]", + "name": "cardNumbers", + "type": "uint8[]" + } + ], + "name": "transferCards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "packNumber", + "type": "uint256" + }, + { + "internalType": "uint8[]", + "name": "packData", + "type": "uint8[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "verifyPackSigner", + "outputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000ae9190620001db565b506001620000bd8282620001db565b505050620000da620000d4620000e060201b60201c565b620000e4565b620002a7565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016157607f821691505b6020821081036200018257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001d657600081815260208120601f850160051c81016020861015620001b15750805b601f850160051c820191505b81811015620001d257828155600101620001bd565b5050505b505050565b81516001600160401b03811115620001f757620001f762000136565b6200020f816200020884546200014c565b8462000188565b602080601f8311600181146200024757600084156200022e5750858301515b600019600386901b1c1916600185901b178555620001d2565b600085815260208120601f198616915b82811015620002785788860151825594840194600190910190840162000257565b5085821015620002975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b615a3d80620002b76000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c806379e8dadc1161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a82578063e985e9c514610a8a578063eb12d61e14610ac6578063f2fde38b14610ad9578063f98fd28314610aec57600080fd5b8063dbfc05cf14610a23578063ddb975e814610a36578063e1883c6e14610a49578063e4ae0b9b14610a5c578063e606df8714610a6957600080fd5b8063c87b56dd1161010a578063c87b56dd146109d9578063cafaa473146109ec578063d322b563146109ff578063d7093f4014610a12578063d780c47714610a1b57600080fd5b8063ad1684fa14610984578063b352618514610997578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd14610910578063a1af8ad41461093e578063a22cb46514610951578063a419811d14610964578063ab5351601461097757600080fd5b80638da5cb5b146108c95780639038f414146108da57806395d89b41146108e25780639a5613ad146108ea5780639c7f707f146108fd57600080fd5b80637df73e271161021b5780637df73e271461084e57806382d8a1181461087a578063886eb60f1461088357806388e0ef80146108965780638bf670c8146108b657600080fd5b806379e8dadc1461080d5780637ce65f7b146108155780637cf86b72146108285780637de99bd91461083b57600080fd5b8063267b841d116103685780635e31ce48116102e55780637065cb48116102a95780637065cb48146107b957806370a08231146107cc578063715018a6146107df5780637155a3ac146107e75780637232d7d4146107fa57600080fd5b80635e31ce48146107655780636352211e14610778578063656bd0ad1461078b57806368cc5bc1146107945780636d0af178146107a757600080fd5b80634039327e1161032c5780634039327e146106b257806342842e0e146106ba57806342966c68146106cd5780634c03cd0b146106e05780635312ea8e1461075257600080fd5b8063267b841d1461063a5780632ca699e71461064d5780632f54bf6e146106605780632f9e026a1461068c57806330f5cc581461069f57600080fd5b8063147baac7116103f6578063203335f6116103ba578063203335f6146105e557806320965a5f146105f857806321a7c6b01461060b57806323b872dd14610614578063241a08fe1461062757600080fd5b8063147baac71461057557806314cca36a14610587578063155e2f921461059a5780631585cc4e146105ad578063173825d9146105d257600080fd5b8063081812fc1161043d578063081812fc146104fc578063095ea7b3146105275780630e316ab71461053c578063128916dc1461054f5780631306952c1461056257600080fd5b806301ffc9a71461046f5780630435dcaf1461049757806306fdde03146104b957806307b2e246146104ce575b600080fd5b61048261047d366004614a27565b610aff565b60405190151581526020015b60405180910390f35b6104aa6104a5366004614a59565b610b10565b60405161048e93929190614ab4565b6104c1610ec0565b60405161048e9190614b6f565b6104ee6104dc366004614a59565b601b6020526000908152604090205481565b60405190815260200161048e565b61050f61050a366004614b82565b610f52565b6040516001600160a01b03909116815260200161048e565b61053a610535366004614b9b565b610f79565b005b61053a61054a366004614a59565b611093565b61053a61055d366004614a59565b611139565b61050f610570366004614cb8565b6111dc565b60185461048290610100900460ff1681565b600a5461050f906001600160a01b031681565b61053a6105a8366004614d52565b61126a565b6105c06105bb366004614d52565b6112e7565b60405160ff909116815260200161048e565b61053a6105e0366004614a59565b611341565b61053a6105f3366004614e51565b6113b8565b61053a610606366004614f47565b611477565b6104ee60135481565b61053a610622366004614f88565b611a93565b61053a610635366004614fc9565b611ac5565b61053a610648366004614cb8565b611b0b565b61053a61065b366004614d52565b611b1e565b61048261066e366004614a59565b6001600160a01b03166000908152600b602052604090205460ff1690565b60085461050f906001600160a01b031681565b61053a6106ad366004614fe4565b611d71565b6104c1611ff9565b61053a6106c8366004614f88565b612087565b61053a6106db366004614b82565b6120a2565b6107226106ee366004614b82565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b61053a610760366004614b82565b6120d3565b61053a610773366004614b82565b6121ee565b61050f610786366004614b82565b612233565b6104ee60115481565b61053a6107a236600461504a565b612293565b600f546105c090610100900460ff1681565b61053a6107c7366004614a59565b6122df565b6104ee6107da366004614a59565b612356565b61053a6123dc565b61053a6107f5366004614d52565b6123f0565b61053a610808366004614b82565b612450565b6104c16124a6565b61053a610823366004614fc9565b6124b3565b6104ee610836366004614a59565b612524565b61053a6108493660046150e7565b612570565b61048261085c366004614a59565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee60105481565b610482610891366004614d52565b61274b565b6104ee6108a4366004614b82565b601a6020526000908152604090205481565b6104826108c4366004614d52565b6127a7565b6007546001600160a01b031661050f565b610482612806565b6104c1612ba6565b6018546104829062010000900460ff1681565b61053a61090b366004615181565b612bb5565b6105c061091e366004614d52565b601c60209081526000928352604080842090915290825290205460ff1681565b61053a61094c3660046151e4565b612c57565b61053a61095f366004615238565b612fd1565b61053a610972366004614a59565b612fe0565b600f546105c09060ff1681565b61053a610992366004615271565b61307f565b6104ee60145481565b61053a6109ae3660046152c9565b613312565b61053a6109c1366004614b82565b613344565b61053a6109d4366004614fc9565b61339a565b6104c16109e7366004614b82565b6135e6565b61053a6109fa366004614a59565b6135f1565b60095461050f906001600160a01b031681565b6104ee60125481565b6104ee613694565b61053a610a3136600461504a565b6136c1565b61053a610a44366004614a59565b613704565b61053a610a57366004614b82565b6137a7565b6018546104829060ff1681565b600f5461050f906201000090046001600160a01b031681565b6104c16137d7565b610482610a98366004615348565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61053a610ad4366004614a59565b6137e4565b61053a610ae7366004614a59565b61385b565b61053a610afa36600461504a565b6138d1565b6000610b0a8261391b565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610cf6576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610ce45780858360ff1681518110610bdc57610bdc615376565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610c2c57610c2c615376565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb1919061538c565b838360ff1681518110610cc657610cc6615376565b9115156020928302919091019091015281610ce0816153bf565b9250505b80610cee816153bf565b915050610b8d565b5060008160ff166001600160401b03811115610d1457610d14614bc7565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5d57610d5d614bc7565b604051908082528060200260200182016040528015610d86578160200160208202803683370190505b50905060008360ff166001600160401b03811115610da657610da6614bc7565b604051908082528060200260200182016040528015610dcf578160200160208202803683370190505b50905060005b8460ff16811015610eae57878181518110610df257610df2615376565b6020026020010151848281518110610e0c57610e0c615376565b602002602001019060ff16908160ff1681525050868181518110610e3257610e32615376565b6020026020010151838281518110610e4c57610e4c615376565b602002602001019060ff16908160ff1681525050858181518110610e7257610e72615376565b6020026020010151828281518110610e8c57610e8c615376565b9115156020928302919091019091015280610ea6816153de565b915050610dd5565b50919a90995090975095505050505050565b606060008054610ecf906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610efb906153f7565b8015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b5050505050905090565b6000610f5d82613940565b506000908152600460205260409020546001600160a01b031690565b6000610f8482612233565b9050806001600160a01b0316836001600160a01b031603610ff65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101257506110128133610a98565b6110845760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fed565b61108e838361399f565b505050565b336000908152600b602052604090205460ff166110c357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661116957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166111915760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061121e903390899089908990899060040161542b565b602060405180830381865af415801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f91906154b2565b90505b949350505050565b6009546001600160a01b0316331461129557604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca836153bf565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166113115760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661137157604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611106565b60ff851615806113d05750600f5460ff908116908616115b156113ee57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561146f5761145d3386838151811061141257611412615376565b602002602001015186848151811061142c5761142c615376565b602002602001015186868681811061144657611446615376565b905060200281019061145891906154cf565b613a0d565b80611467816153de565b9150506113f1565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036114b55760405163210f01d160e21b815260040160405180910390fd5b336000908152601b60205260408120546114d0908390615515565b90506000603c821061158857600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f9190615528565b90506014548110806115645750601454601254105b156115825760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190615528565b1190508360005b8181101561182057336000908152601c602052604081209088888481811061162a5761162a615376565b905060200201602081019061163f9190614fc9565b60ff9081168252602082019290925260400160009081205490911690036116795760405163210f01d160e21b815260040160405180910390fd5b821561179c576009546001600160a01b0316632edb5fcf338989858181106116a3576116a3615376565b90506020020160208101906116b89190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611728919061538c565b1561179c57336000908152601c6020526040812060029189898581811061175157611751615376565b90506020020160208101906117669190614fc9565b60ff908116825260208201929092526040016000205416101561179c5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c60205260408120908888848181106117be576117be615376565b90506020020160208101906117d39190614fc9565b60ff908116825260208201929092526040016000908120805490921691906117fa83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050611600565b50336000908152601b602052604081208054839290611840908490615515565b9091555050604051611855908790879061555e565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561146f57336000908152601c60209081526040808320607984529091528120805460ff16916118b783615541565b91906101000a81548160ff021916908360ff1602179055505061196833601680546118e1906153f7565b80601f016020809104026020016040519081016040528092919081815260200182805461190d906153f7565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b505050505060796002613e24565b6014546012600082825461197c9190615598565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff919061538c565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b611a9e335b82613e87565b611aba5760405162461bcd60e51b8152600401610fed906155ab565b61108e838383613f05565b336000908152600b602052604090205460ff16611af557604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b611b183385858585613a0d565b50505050565b816001600160a01b038116611b465760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611b845760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611bad57604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611c8457600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c34919061538c565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611c655750805b611c815760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611cb083615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611cff836153bf565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611d64919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611da157604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506006601154611e16919061562f565b601154611e239190615598565b60126000828254611e349190615515565b90915550600090505b8151811015611b1857818181518110611e5857611e58615376565b602002602001015160ff16607814611ea357611389601a6000848481518110611e8357611e83615376565b602002602001015160ff1681526020019081526020016000205410611ed4565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611f205760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fed565b601a6000838381518110611f3657611f36615376565b602002602001015160ff1681526020019081526020016000206000815480929190611f60906153de565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611f9457611f94615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611fcd906153bf565b91906101000a81548160ff021916908360ff160217905550508080611ff1906153de565b915050611e3d565b60168054612006906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906153f7565b801561207f5780601f106120545761010080835404028352916020019161207f565b820191906000526020600020905b81548152906001019060200180831161206257829003601f168201915b505050505081565b61108e83838360405180602001604052806000815250613312565b6120ab33611a98565b6120c75760405162461bcd60e51b8152600401610fed906155ab565b6120d081614069565b50565b336000908152600b602052604090205460ff1661210357604051634289c49360e01b815260040160405180910390fd5b8061210d30612356565b101561212c5760405163356680b760e01b815260040160405180910390fd5b806012600082825461213e9190615598565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd919061538c565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b03163314612219576040516307473cc760e41b815260040160405180910390fd5b806012600082825461222b9190615515565b909155505050565b6000818152600260205260408120546001600160a01b031680610b0a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b336000908152600b602052604090205460ff166122c357604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661230f57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611106565b60006001600160a01b0382166123c05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fed565b506001600160a01b031660009081526003602052604090205490565b6123e4614072565b6123ee60006140cc565b565b6009546001600160a01b0316331461241b57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca83615541565b336000908152600b602052604090205460ff1661248057604051634289c49360e01b815260040160405180910390fd5b806000036124a157604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054612006906153f7565b336000908152600b602052604090205460ff166124e357604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561250857604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b03811661254e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b612578614072565b336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a8054868416908316179055600980549287169290911691909117905560176125fc8382615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516126599460179493909101615756565b604051602081830303815290604052601590816126769190615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516126d39460179493909101615756565b604051602081830303815290604052601690816126f09190615697565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015612742576000818152601a60205260409020600190558061273a816153de565b915050612715565b50505050505050565b6000826001600160a01b0381166127755760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146127d557604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036128445760405163210f01d160e21b815260040160405180910390fd5b601354601254101561286957604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128dc9190615528565b90506013548110156129015760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161299057336000908152601c6020908152604080832060ff8086168552925282205416900361293e5760019150612990565b336000908152601c6020908152604080832060ff80861685529252822080549091169161296a83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050612905565b5080156129af57604051623de82960e51b815260040160405180910390fd5b612a4733601580546129c0906153f7565b80601f01602080910402602001604051908101604052809291908181526020018280546129ec906153f7565b8015612a395780601f10612a0e57610100808354040283529160200191612a39565b820191906000526020600020905b815481529060010190602001808311612a1c57829003601f168201915b505050505060786002613e24565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac5919061538c565b5060135460126000828254612ada9190615598565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e919061538c565b905080612b6e5760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610ecf906153f7565b336000908152600b602052604090205460ff16612be557604051634289c49360e01b815260040160405180910390fd5b6015612bf18382615697565b506016612bfe8282615697565b5080604051612c0d9190615805565b604051809103902082604051612c239190615805565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b038116612c7f5760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03851603612ca857604051632f35253160e01b815260040160405180910390fd5b60005b82811015612f7d57336000908152601c6020526040812090858584818110612cd557612cd5615376565b9050602002016020810190612cea9190614fc9565b60ff908116825260208201929092526040016000908120549091169003612d245760405163210f01d160e21b815260040160405180910390fd5b336000908152601c6020526040812090858584818110612d4657612d46615376565b9050602002016020810190612d5b9190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612d8283615541565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612dd457612dd4615376565b9050602002016020810190612de99190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612e10836153bf565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612f6b576009546000906001600160a01b0316632edb5fcf33878786818110612e6557612e65615376565b9050602002016020810190612e7a9190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061538c565b336000908152601c602052604081209192509060019082888887818110612f1357612f13615376565b9050602002016020810190612f289190614fc9565b60ff908116825260208201929092526040016000205416119050811580612f4c5750805b612f685760405162461bcd60e51b8152600401610fed906155f8565b50505b80612f75816153de565b915050612cab565b508282604051612f8e92919061555e565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b612fdc33838361411e565b5050565b336000908152600b602052604090205460ff1661301057604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611612fdc576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691613053836153bf565b91906101000a81548160ff021916908360ff160217905550508080613077906153bf565b915050613013565b6009546001600160a01b031633146130aa57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b0381166130d25760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b0381166130fa5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292529091205416158061315557506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b156131735760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925282208054909116916131a883615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a851684529091528120805490921692506131f7836153bf565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c60209081526040808320888516845290915281208054909216925061324683615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250613295836153bf565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524878660405161330292919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b61331c3383613e87565b6133385760405162461bcd60e51b8152600401610fed906155ab565b611b18848484846141e4565b336000908152600b602052604090205460ff1661337457604051634289c49360e01b815260040160405180910390fd5b8060000361339557604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036133d85760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff16156134ae57600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e919061538c565b336000908152601c6020908152604080832060ff8088168552925290912054919250600191161181158061348f5750805b6134ab5760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff8086168552925282208054909116916134da83615541565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b815260040161354f91815260200190565b600060405180830381865af415801561356c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135949190810190615821565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016135c59493929190615756565b6040516020818303038152906040529050612fdc33828460ff166001613e24565b6060610b0a82614217565b336000908152600b602052604090205460ff1661362157604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166136495760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f546000916064916136b29190610100900460ff16615897565b6136bc919061562f565b905090565b336000908152600b602052604090205460ff166136f157604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661373457604051634289c49360e01b815260040160405180910390fd5b806001600160a01b03811661375c5760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b031633146137d2576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054612006906153f7565b336000908152600b602052604090205460ff1661381457604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611106565b613863614072565b6001600160a01b0381166138c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fed565b6120d0816140cc565b336000908152600b602052604090205460ff1661390157604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610b0a5750610b0a8261431f565b6000818152600260205260409020546001600160a01b03166120d05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139d482612233565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7c91906154b2565b6001600160a01b031614613aa357604051637f6ecdf560e01b815260040160405180910390fd5b600f835110613ac557604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613b91576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613b12903390899089908990899060040161542b565b602060405180830381865af4158015613b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5391906154b2565b6001600160a01b0381166000908152600e602052604090205490915060ff16613b8f57604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b158015613bdf57600080fd5b505af1158015613bf3573d6000803e3d6000fd5b505050506006601154613c06919061562f565b601154613c139190615598565b60126000828254613c249190615515565b90915550600090505b8351811015613dd257838181518110613c4857613c48615376565b602002602001015160ff16607803613cad576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb81015613ca857604051630d1ecf1760e11b815260040160405180910390fd5b613cff565b611388601a6000868481518110613cc657613cc6615376565b602002602001015160ff168152602001908152602001600020541115613cff57604051630d1ecf1760e11b815260040160405180910390fd5b601a6000858381518110613d1557613d15615376565b602002602001015160ff1681526020019081526020016000206000815480929190613d3f906153de565b90915550506001600160a01b0386166000908152601c602052604081208551909190869084908110613d7357613d73615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190613dac906153bf565b91906101000a81548160ff021916908360ff160217905550508080600101915050613c2d565b508383604051613de291906158ae565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613e5e858261436f565b613e688185614389565b600160106000828254613e7b9190615515565b90915550505050505050565b600080613e9383612233565b9050806001600160a01b0316846001600160a01b03161480613eda57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112625750836001600160a01b0316613ef384610f52565b6001600160a01b031614949350505050565b826001600160a01b0316613f1882612233565b6001600160a01b031614613f3e5760405162461bcd60e51b8152600401610fed906158e7565b6001600160a01b038216613fa05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fed565b826001600160a01b0316613fb382612233565b6001600160a01b031614613fd95760405162461bcd60e51b8152600401610fed906158e7565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120d081614454565b6007546001600160a01b031633146123ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fed565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361417f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fed565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d64565b6141ef848484613f05565b6141fb84848484614494565b611b185760405162461bcd60e51b8152600401610fed9061592c565b606061422282613940565b6000828152600660205260408120805461423b906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054614267906153f7565b80156142b45780601f10614289576101008083540402835291602001916142b4565b820191906000526020600020905b81548152906001019060200180831161429757829003601f168201915b5050505050905060006142d260408051602081019091526000815290565b905080516000036142e4575092915050565b8151156143165780826040516020016142fe92919061597e565b60405160208183030381529060405292505050919050565b61126284614592565b60006001600160e01b031982166380ac58cd60e01b148061435057506001600160e01b03198216635b5e139f60e01b145b80610b0a57506301ffc9a760e01b6001600160e01b0319831614610b0a565b612fdc828260405180602001604052806000815250614606565b6000828152600260205260409020546001600160a01b03166144045760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fed565b600082815260066020526040902061441c8282615697565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61445d81614639565b60008181526006602052604090208054614476906153f7565b1590506120d05760008181526006602052604081206120d0916149c3565b60006001600160a01b0384163b1561458a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144d89033908990889088906004016159ad565b6020604051808303816000875af1925050508015614513575060408051601f3d908101601f19168201909252614510918101906159ea565b60015b614570573d808015614541576040519150601f19603f3d011682016040523d82523d6000602084013e614546565b606091505b5080516000036145685760405162461bcd60e51b8152600401610fed9061592c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611262565b506001611262565b606061459d82613940565b60006145b460408051602081019091526000815290565b905060008151116145d457604051806020016040528060008152506145ff565b806145de846146ce565b6040516020016145ef92919061597e565b6040516020818303038152906040525b9392505050565b6146108383614760565b61461d6000848484614494565b61108e5760405162461bcd60e51b8152600401610fed9061592c565b600061464482612233565b905061464f82612233565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006146db836148eb565b60010190506000816001600160401b038111156146fa576146fa614bc7565b6040519080825280601f01601f191660200182016040528015614724576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461472e57509392505050565b6001600160a01b0382166147b65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fed565b6000818152600260205260409020546001600160a01b03161561481b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6000818152600260205260409020546001600160a01b0316156148805760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061492a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614956576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061497457662386f26fc10000830492506010015b6305f5e100831061498c576305f5e100830492506008015b61271083106149a057612710830492506004015b606483106149b2576064830492506002015b600a8310610b0a5760010192915050565b5080546149cf906153f7565b6000825580601f106149df575050565b601f0160209004906000526020600020908101906120d091905b80821115614a0d57600081556001016149f9565b5090565b6001600160e01b0319811681146120d057600080fd5b600060208284031215614a3957600080fd5b81356145ff81614a11565b6001600160a01b03811681146120d057600080fd5b600060208284031215614a6b57600080fd5b81356145ff81614a44565b600081518084526020808501945080840160005b83811015614aa957815160ff1687529582019590820190600101614a8a565b509495945050505050565b606081526000614ac76060830186614a76565b602083820381850152614ada8287614a76565b8481036040860152855180825282870193509082019060005b81811015614b11578451151583529383019391830191600101614af3565b509098975050505050505050565b60005b83811015614b3a578181015183820152602001614b22565b50506000910152565b60008151808452614b5b816020860160208601614b1f565b601f01601f19169290920160200192915050565b6020815260006145ff6020830184614b43565b600060208284031215614b9457600080fd5b5035919050565b60008060408385031215614bae57600080fd5b8235614bb981614a44565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c0557614c05614bc7565b604052919050565b60006001600160401b03821115614c2657614c26614bc7565b5060051b60200190565b803560ff81168114614c4157600080fd5b919050565b600082601f830112614c5757600080fd5b81356020614c6c614c6783614c0d565b614bdd565b82815260059290921b84018101918181019086841115614c8b57600080fd5b8286015b84811015614cad57614ca081614c30565b8352918301918301614c8f565b509695505050505050565b60008060008060608587031215614cce57600080fd5b8435935060208501356001600160401b0380821115614cec57600080fd5b614cf888838901614c46565b94506040870135915080821115614d0e57600080fd5b818701915087601f830112614d2257600080fd5b813581811115614d3157600080fd5b886020828501011115614d4357600080fd5b95989497505060200194505050565b60008060408385031215614d6557600080fd5b8235614d7081614a44565b9150614d7e60208401614c30565b90509250929050565b600082601f830112614d9857600080fd5b81356020614da8614c6783614c0d565b82815260059290921b84018101918181019086841115614dc757600080fd5b8286015b84811015614cad5780356001600160401b03811115614dea5760008081fd5b614df88986838b0101614c46565b845250918301918301614dcb565b60008083601f840112614e1857600080fd5b5081356001600160401b03811115614e2f57600080fd5b6020830191508360208260051b8501011115614e4a57600080fd5b9250929050565b600080600080600060808688031215614e6957600080fd5b614e7286614c30565b94506020808701356001600160401b0380821115614e8f57600080fd5b818901915089601f830112614ea357600080fd5b8135614eb1614c6782614c0d565b81815260059190911b8301840190848101908c831115614ed057600080fd5b938501935b82851015614eee57843582529385019390850190614ed5565b985050506040890135925080831115614f0657600080fd5b614f128a848b01614d87565b95506060890135925080831115614f2857600080fd5b5050614f3688828901614e06565b969995985093965092949392505050565b60008060208385031215614f5a57600080fd5b82356001600160401b03811115614f7057600080fd5b614f7c85828601614e06565b90969095509350505050565b600080600060608486031215614f9d57600080fd5b8335614fa881614a44565b92506020840135614fb881614a44565b929592945050506040919091013590565b600060208284031215614fdb57600080fd5b6145ff82614c30565b600080600060608486031215614ff957600080fd5b833561500481614a44565b92506020840135915060408401356001600160401b0381111561502657600080fd5b61503286828701614c46565b9150509250925092565b80151581146120d057600080fd5b60006020828403121561505c57600080fd5b81356145ff8161503c565b60006001600160401b0382111561508057615080614bc7565b50601f01601f191660200190565b600061509c614c6784615067565b90508281528383830111156150b057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150d857600080fd5b6145ff8383356020850161508e565b60008060008060008060c0878903121561510057600080fd5b863561510b81614a44565b9550602087013561511b81614a44565b9450604087013561512b81614a44565b9350606087013561513b81614a44565b925060808701356001600160401b0381111561515657600080fd5b61516289828a016150c7565b92505060a087013561517381614a44565b809150509295509295509295565b6000806040838503121561519457600080fd5b82356001600160401b03808211156151ab57600080fd5b6151b7868387016150c7565b935060208501359150808211156151cd57600080fd5b506151da858286016150c7565b9150509250929050565b6000806000604084860312156151f957600080fd5b833561520481614a44565b925060208401356001600160401b0381111561521f57600080fd5b61522b86828701614e06565b9497909650939450505050565b6000806040838503121561524b57600080fd5b823561525681614a44565b915060208301356152668161503c565b809150509250929050565b6000806000806080858703121561528757600080fd5b843561529281614a44565b93506152a060208601614c30565b925060408501356152b081614a44565b91506152be60608601614c30565b905092959194509250565b600080600080608085870312156152df57600080fd5b84356152ea81614a44565b935060208501356152fa81614a44565b92506040850135915060608501356001600160401b0381111561531c57600080fd5b8501601f8101871361532d57600080fd5b61533c8782356020840161508e565b91505092959194509250565b6000806040838503121561535b57600080fd5b823561536681614a44565b9150602083013561526681614a44565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561539e57600080fd5b81516145ff8161503c565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff81036153d5576153d56153a9565b60010192915050565b6000600182016153f0576153f06153a9565b5060010190565b600181811c9082168061540b57607f821691505b60208210810361256a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561547d57845160ff168352938301939183019160010161545e565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b6000602082840312156154c457600080fd5b81516145ff81614a44565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b602001915036819003821315614e4a57600080fd5b80820180821115610b0a57610b0a6153a9565b60006020828403121561553a57600080fd5b5051919050565b600060ff821680615554576155546153a9565b6000190192915050565b60008184825b8581101561558d5760ff61557783614c30565b1683526020928301929190910190600101615564565b509095945050505050565b81810381811115610b0a57610b0a6153a9565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b60008261564c57634e487b7160e01b600052601260045260246000fd5b500490565b601f82111561108e57600081815260208120601f850160051c810160208610156156785750805b601f850160051c820191505b8181101561146f57828155600101615684565b81516001600160401b038111156156b0576156b0614bc7565b6156c4816156be84546153f7565b84615651565b602080601f8311600181146156f957600084156156e15750858301515b600019600386901b1c1916600185901b17855561146f565b600085815260208120601f198616915b8281101561572857888601518255948401946001909101908401615709565b50858210156157465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615764816153f7565b6001828116801561577c5760018114615791576157c0565b60ff19841687528215158302870194506157c0565b8a60005260208060002060005b858110156157b75781548a82015290840190820161579e565b50505082870194505b5050505085516157d4818360208a01614b1f565b85519101906157e7818360208901614b1f565b84519101906157fa818360208801614b1f565b019695505050505050565b60008251615817818460208701614b1f565b9190910192915050565b60006020828403121561583357600080fd5b81516001600160401b0381111561584957600080fd5b8201601f8101841361585a57600080fd5b8051615868614c6782615067565b81815285602083850101111561587d57600080fd5b61588e826020830160208601614b1f565b95945050505050565b8082028115828204841417610b0a57610b0a6153a9565b815160009082906020808601845b838110156158db57815160ff16855293820193908201906001016158bc565b50929695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615990818460208801614b1f565b8351908301906159a4818360208801614b1f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906159e090830184614b43565b9695505050505050565b6000602082840312156159fc57600080fd5b81516145ff81614a1156fea264697066735822122037e4870fe1827025a5878dbedd00e617ea8ebf7de08517dc09f16363951ab41464736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061046a5760003560e01c806379e8dadc1161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a82578063e985e9c514610a8a578063eb12d61e14610ac6578063f2fde38b14610ad9578063f98fd28314610aec57600080fd5b8063dbfc05cf14610a23578063ddb975e814610a36578063e1883c6e14610a49578063e4ae0b9b14610a5c578063e606df8714610a6957600080fd5b8063c87b56dd1161010a578063c87b56dd146109d9578063cafaa473146109ec578063d322b563146109ff578063d7093f4014610a12578063d780c47714610a1b57600080fd5b8063ad1684fa14610984578063b352618514610997578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd14610910578063a1af8ad41461093e578063a22cb46514610951578063a419811d14610964578063ab5351601461097757600080fd5b80638da5cb5b146108c95780639038f414146108da57806395d89b41146108e25780639a5613ad146108ea5780639c7f707f146108fd57600080fd5b80637df73e271161021b5780637df73e271461084e57806382d8a1181461087a578063886eb60f1461088357806388e0ef80146108965780638bf670c8146108b657600080fd5b806379e8dadc1461080d5780637ce65f7b146108155780637cf86b72146108285780637de99bd91461083b57600080fd5b8063267b841d116103685780635e31ce48116102e55780637065cb48116102a95780637065cb48146107b957806370a08231146107cc578063715018a6146107df5780637155a3ac146107e75780637232d7d4146107fa57600080fd5b80635e31ce48146107655780636352211e14610778578063656bd0ad1461078b57806368cc5bc1146107945780636d0af178146107a757600080fd5b80634039327e1161032c5780634039327e146106b257806342842e0e146106ba57806342966c68146106cd5780634c03cd0b146106e05780635312ea8e1461075257600080fd5b8063267b841d1461063a5780632ca699e71461064d5780632f54bf6e146106605780632f9e026a1461068c57806330f5cc581461069f57600080fd5b8063147baac7116103f6578063203335f6116103ba578063203335f6146105e557806320965a5f146105f857806321a7c6b01461060b57806323b872dd14610614578063241a08fe1461062757600080fd5b8063147baac71461057557806314cca36a14610587578063155e2f921461059a5780631585cc4e146105ad578063173825d9146105d257600080fd5b8063081812fc1161043d578063081812fc146104fc578063095ea7b3146105275780630e316ab71461053c578063128916dc1461054f5780631306952c1461056257600080fd5b806301ffc9a71461046f5780630435dcaf1461049757806306fdde03146104b957806307b2e246146104ce575b600080fd5b61048261047d366004614a27565b610aff565b60405190151581526020015b60405180910390f35b6104aa6104a5366004614a59565b610b10565b60405161048e93929190614ab4565b6104c1610ec0565b60405161048e9190614b6f565b6104ee6104dc366004614a59565b601b6020526000908152604090205481565b60405190815260200161048e565b61050f61050a366004614b82565b610f52565b6040516001600160a01b03909116815260200161048e565b61053a610535366004614b9b565b610f79565b005b61053a61054a366004614a59565b611093565b61053a61055d366004614a59565b611139565b61050f610570366004614cb8565b6111dc565b60185461048290610100900460ff1681565b600a5461050f906001600160a01b031681565b61053a6105a8366004614d52565b61126a565b6105c06105bb366004614d52565b6112e7565b60405160ff909116815260200161048e565b61053a6105e0366004614a59565b611341565b61053a6105f3366004614e51565b6113b8565b61053a610606366004614f47565b611477565b6104ee60135481565b61053a610622366004614f88565b611a93565b61053a610635366004614fc9565b611ac5565b61053a610648366004614cb8565b611b0b565b61053a61065b366004614d52565b611b1e565b61048261066e366004614a59565b6001600160a01b03166000908152600b602052604090205460ff1690565b60085461050f906001600160a01b031681565b61053a6106ad366004614fe4565b611d71565b6104c1611ff9565b61053a6106c8366004614f88565b612087565b61053a6106db366004614b82565b6120a2565b6107226106ee366004614b82565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b61053a610760366004614b82565b6120d3565b61053a610773366004614b82565b6121ee565b61050f610786366004614b82565b612233565b6104ee60115481565b61053a6107a236600461504a565b612293565b600f546105c090610100900460ff1681565b61053a6107c7366004614a59565b6122df565b6104ee6107da366004614a59565b612356565b61053a6123dc565b61053a6107f5366004614d52565b6123f0565b61053a610808366004614b82565b612450565b6104c16124a6565b61053a610823366004614fc9565b6124b3565b6104ee610836366004614a59565b612524565b61053a6108493660046150e7565b612570565b61048261085c366004614a59565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee60105481565b610482610891366004614d52565b61274b565b6104ee6108a4366004614b82565b601a6020526000908152604090205481565b6104826108c4366004614d52565b6127a7565b6007546001600160a01b031661050f565b610482612806565b6104c1612ba6565b6018546104829062010000900460ff1681565b61053a61090b366004615181565b612bb5565b6105c061091e366004614d52565b601c60209081526000928352604080842090915290825290205460ff1681565b61053a61094c3660046151e4565b612c57565b61053a61095f366004615238565b612fd1565b61053a610972366004614a59565b612fe0565b600f546105c09060ff1681565b61053a610992366004615271565b61307f565b6104ee60145481565b61053a6109ae3660046152c9565b613312565b61053a6109c1366004614b82565b613344565b61053a6109d4366004614fc9565b61339a565b6104c16109e7366004614b82565b6135e6565b61053a6109fa366004614a59565b6135f1565b60095461050f906001600160a01b031681565b6104ee60125481565b6104ee613694565b61053a610a3136600461504a565b6136c1565b61053a610a44366004614a59565b613704565b61053a610a57366004614b82565b6137a7565b6018546104829060ff1681565b600f5461050f906201000090046001600160a01b031681565b6104c16137d7565b610482610a98366004615348565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61053a610ad4366004614a59565b6137e4565b61053a610ae7366004614a59565b61385b565b61053a610afa36600461504a565b6138d1565b6000610b0a8261391b565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610cf6576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610ce45780858360ff1681518110610bdc57610bdc615376565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610c2c57610c2c615376565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb1919061538c565b838360ff1681518110610cc657610cc6615376565b9115156020928302919091019091015281610ce0816153bf565b9250505b80610cee816153bf565b915050610b8d565b5060008160ff166001600160401b03811115610d1457610d14614bc7565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5d57610d5d614bc7565b604051908082528060200260200182016040528015610d86578160200160208202803683370190505b50905060008360ff166001600160401b03811115610da657610da6614bc7565b604051908082528060200260200182016040528015610dcf578160200160208202803683370190505b50905060005b8460ff16811015610eae57878181518110610df257610df2615376565b6020026020010151848281518110610e0c57610e0c615376565b602002602001019060ff16908160ff1681525050868181518110610e3257610e32615376565b6020026020010151838281518110610e4c57610e4c615376565b602002602001019060ff16908160ff1681525050858181518110610e7257610e72615376565b6020026020010151828281518110610e8c57610e8c615376565b9115156020928302919091019091015280610ea6816153de565b915050610dd5565b50919a90995090975095505050505050565b606060008054610ecf906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610efb906153f7565b8015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b5050505050905090565b6000610f5d82613940565b506000908152600460205260409020546001600160a01b031690565b6000610f8482612233565b9050806001600160a01b0316836001600160a01b031603610ff65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101257506110128133610a98565b6110845760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fed565b61108e838361399f565b505050565b336000908152600b602052604090205460ff166110c357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661116957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166111915760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061121e903390899089908990899060040161542b565b602060405180830381865af415801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f91906154b2565b90505b949350505050565b6009546001600160a01b0316331461129557604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca836153bf565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166113115760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661137157604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611106565b60ff851615806113d05750600f5460ff908116908616115b156113ee57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561146f5761145d3386838151811061141257611412615376565b602002602001015186848151811061142c5761142c615376565b602002602001015186868681811061144657611446615376565b905060200281019061145891906154cf565b613a0d565b80611467816153de565b9150506113f1565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036114b55760405163210f01d160e21b815260040160405180910390fd5b336000908152601b60205260408120546114d0908390615515565b90506000603c821061158857600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f9190615528565b90506014548110806115645750601454601254105b156115825760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190615528565b1190508360005b8181101561182057336000908152601c602052604081209088888481811061162a5761162a615376565b905060200201602081019061163f9190614fc9565b60ff9081168252602082019290925260400160009081205490911690036116795760405163210f01d160e21b815260040160405180910390fd5b821561179c576009546001600160a01b0316632edb5fcf338989858181106116a3576116a3615376565b90506020020160208101906116b89190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611728919061538c565b1561179c57336000908152601c6020526040812060029189898581811061175157611751615376565b90506020020160208101906117669190614fc9565b60ff908116825260208201929092526040016000205416101561179c5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c60205260408120908888848181106117be576117be615376565b90506020020160208101906117d39190614fc9565b60ff908116825260208201929092526040016000908120805490921691906117fa83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050611600565b50336000908152601b602052604081208054839290611840908490615515565b9091555050604051611855908790879061555e565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561146f57336000908152601c60209081526040808320607984529091528120805460ff16916118b783615541565b91906101000a81548160ff021916908360ff1602179055505061196833601680546118e1906153f7565b80601f016020809104026020016040519081016040528092919081815260200182805461190d906153f7565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b505050505060796002613e24565b6014546012600082825461197c9190615598565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff919061538c565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b611a9e335b82613e87565b611aba5760405162461bcd60e51b8152600401610fed906155ab565b61108e838383613f05565b336000908152600b602052604090205460ff16611af557604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b611b183385858585613a0d565b50505050565b816001600160a01b038116611b465760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611b845760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611bad57604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611c8457600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c34919061538c565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611c655750805b611c815760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611cb083615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611cff836153bf565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611d64919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611da157604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506006601154611e16919061562f565b601154611e239190615598565b60126000828254611e349190615515565b90915550600090505b8151811015611b1857818181518110611e5857611e58615376565b602002602001015160ff16607814611ea357611389601a6000848481518110611e8357611e83615376565b602002602001015160ff1681526020019081526020016000205410611ed4565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611f205760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fed565b601a6000838381518110611f3657611f36615376565b602002602001015160ff1681526020019081526020016000206000815480929190611f60906153de565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611f9457611f94615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611fcd906153bf565b91906101000a81548160ff021916908360ff160217905550508080611ff1906153de565b915050611e3d565b60168054612006906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906153f7565b801561207f5780601f106120545761010080835404028352916020019161207f565b820191906000526020600020905b81548152906001019060200180831161206257829003601f168201915b505050505081565b61108e83838360405180602001604052806000815250613312565b6120ab33611a98565b6120c75760405162461bcd60e51b8152600401610fed906155ab565b6120d081614069565b50565b336000908152600b602052604090205460ff1661210357604051634289c49360e01b815260040160405180910390fd5b8061210d30612356565b101561212c5760405163356680b760e01b815260040160405180910390fd5b806012600082825461213e9190615598565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd919061538c565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b03163314612219576040516307473cc760e41b815260040160405180910390fd5b806012600082825461222b9190615515565b909155505050565b6000818152600260205260408120546001600160a01b031680610b0a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b336000908152600b602052604090205460ff166122c357604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661230f57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611106565b60006001600160a01b0382166123c05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fed565b506001600160a01b031660009081526003602052604090205490565b6123e4614072565b6123ee60006140cc565b565b6009546001600160a01b0316331461241b57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca83615541565b336000908152600b602052604090205460ff1661248057604051634289c49360e01b815260040160405180910390fd5b806000036124a157604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054612006906153f7565b336000908152600b602052604090205460ff166124e357604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561250857604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b03811661254e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b612578614072565b336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a8054868416908316179055600980549287169290911691909117905560176125fc8382615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516126599460179493909101615756565b604051602081830303815290604052601590816126769190615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516126d39460179493909101615756565b604051602081830303815290604052601690816126f09190615697565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015612742576000818152601a60205260409020600190558061273a816153de565b915050612715565b50505050505050565b6000826001600160a01b0381166127755760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146127d557604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036128445760405163210f01d160e21b815260040160405180910390fd5b601354601254101561286957604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128dc9190615528565b90506013548110156129015760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161299057336000908152601c6020908152604080832060ff8086168552925282205416900361293e5760019150612990565b336000908152601c6020908152604080832060ff80861685529252822080549091169161296a83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050612905565b5080156129af57604051623de82960e51b815260040160405180910390fd5b612a4733601580546129c0906153f7565b80601f01602080910402602001604051908101604052809291908181526020018280546129ec906153f7565b8015612a395780601f10612a0e57610100808354040283529160200191612a39565b820191906000526020600020905b815481529060010190602001808311612a1c57829003601f168201915b505050505060786002613e24565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac5919061538c565b5060135460126000828254612ada9190615598565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e919061538c565b905080612b6e5760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610ecf906153f7565b336000908152600b602052604090205460ff16612be557604051634289c49360e01b815260040160405180910390fd5b6015612bf18382615697565b506016612bfe8282615697565b5080604051612c0d9190615805565b604051809103902082604051612c239190615805565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b038116612c7f5760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03851603612ca857604051632f35253160e01b815260040160405180910390fd5b60005b82811015612f7d57336000908152601c6020526040812090858584818110612cd557612cd5615376565b9050602002016020810190612cea9190614fc9565b60ff908116825260208201929092526040016000908120549091169003612d245760405163210f01d160e21b815260040160405180910390fd5b336000908152601c6020526040812090858584818110612d4657612d46615376565b9050602002016020810190612d5b9190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612d8283615541565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612dd457612dd4615376565b9050602002016020810190612de99190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612e10836153bf565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612f6b576009546000906001600160a01b0316632edb5fcf33878786818110612e6557612e65615376565b9050602002016020810190612e7a9190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061538c565b336000908152601c602052604081209192509060019082888887818110612f1357612f13615376565b9050602002016020810190612f289190614fc9565b60ff908116825260208201929092526040016000205416119050811580612f4c5750805b612f685760405162461bcd60e51b8152600401610fed906155f8565b50505b80612f75816153de565b915050612cab565b508282604051612f8e92919061555e565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b612fdc33838361411e565b5050565b336000908152600b602052604090205460ff1661301057604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611612fdc576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691613053836153bf565b91906101000a81548160ff021916908360ff160217905550508080613077906153bf565b915050613013565b6009546001600160a01b031633146130aa57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b0381166130d25760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b0381166130fa5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292529091205416158061315557506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b156131735760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925282208054909116916131a883615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a851684529091528120805490921692506131f7836153bf565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c60209081526040808320888516845290915281208054909216925061324683615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250613295836153bf565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524878660405161330292919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b61331c3383613e87565b6133385760405162461bcd60e51b8152600401610fed906155ab565b611b18848484846141e4565b336000908152600b602052604090205460ff1661337457604051634289c49360e01b815260040160405180910390fd5b8060000361339557604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036133d85760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff16156134ae57600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e919061538c565b336000908152601c6020908152604080832060ff8088168552925290912054919250600191161181158061348f5750805b6134ab5760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff8086168552925282208054909116916134da83615541565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b815260040161354f91815260200190565b600060405180830381865af415801561356c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135949190810190615821565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016135c59493929190615756565b6040516020818303038152906040529050612fdc33828460ff166001613e24565b6060610b0a82614217565b336000908152600b602052604090205460ff1661362157604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166136495760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f546000916064916136b29190610100900460ff16615897565b6136bc919061562f565b905090565b336000908152600b602052604090205460ff166136f157604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661373457604051634289c49360e01b815260040160405180910390fd5b806001600160a01b03811661375c5760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b031633146137d2576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054612006906153f7565b336000908152600b602052604090205460ff1661381457604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611106565b613863614072565b6001600160a01b0381166138c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fed565b6120d0816140cc565b336000908152600b602052604090205460ff1661390157604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610b0a5750610b0a8261431f565b6000818152600260205260409020546001600160a01b03166120d05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139d482612233565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7c91906154b2565b6001600160a01b031614613aa357604051637f6ecdf560e01b815260040160405180910390fd5b600f835110613ac557604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613b91576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613b12903390899089908990899060040161542b565b602060405180830381865af4158015613b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5391906154b2565b6001600160a01b0381166000908152600e602052604090205490915060ff16613b8f57604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b158015613bdf57600080fd5b505af1158015613bf3573d6000803e3d6000fd5b505050506006601154613c06919061562f565b601154613c139190615598565b60126000828254613c249190615515565b90915550600090505b8351811015613dd257838181518110613c4857613c48615376565b602002602001015160ff16607803613cad576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb81015613ca857604051630d1ecf1760e11b815260040160405180910390fd5b613cff565b611388601a6000868481518110613cc657613cc6615376565b602002602001015160ff168152602001908152602001600020541115613cff57604051630d1ecf1760e11b815260040160405180910390fd5b601a6000858381518110613d1557613d15615376565b602002602001015160ff1681526020019081526020016000206000815480929190613d3f906153de565b90915550506001600160a01b0386166000908152601c602052604081208551909190869084908110613d7357613d73615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190613dac906153bf565b91906101000a81548160ff021916908360ff160217905550508080600101915050613c2d565b508383604051613de291906158ae565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613e5e858261436f565b613e688185614389565b600160106000828254613e7b9190615515565b90915550505050505050565b600080613e9383612233565b9050806001600160a01b0316846001600160a01b03161480613eda57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112625750836001600160a01b0316613ef384610f52565b6001600160a01b031614949350505050565b826001600160a01b0316613f1882612233565b6001600160a01b031614613f3e5760405162461bcd60e51b8152600401610fed906158e7565b6001600160a01b038216613fa05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fed565b826001600160a01b0316613fb382612233565b6001600160a01b031614613fd95760405162461bcd60e51b8152600401610fed906158e7565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120d081614454565b6007546001600160a01b031633146123ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fed565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361417f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fed565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d64565b6141ef848484613f05565b6141fb84848484614494565b611b185760405162461bcd60e51b8152600401610fed9061592c565b606061422282613940565b6000828152600660205260408120805461423b906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054614267906153f7565b80156142b45780601f10614289576101008083540402835291602001916142b4565b820191906000526020600020905b81548152906001019060200180831161429757829003601f168201915b5050505050905060006142d260408051602081019091526000815290565b905080516000036142e4575092915050565b8151156143165780826040516020016142fe92919061597e565b60405160208183030381529060405292505050919050565b61126284614592565b60006001600160e01b031982166380ac58cd60e01b148061435057506001600160e01b03198216635b5e139f60e01b145b80610b0a57506301ffc9a760e01b6001600160e01b0319831614610b0a565b612fdc828260405180602001604052806000815250614606565b6000828152600260205260409020546001600160a01b03166144045760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fed565b600082815260066020526040902061441c8282615697565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61445d81614639565b60008181526006602052604090208054614476906153f7565b1590506120d05760008181526006602052604081206120d0916149c3565b60006001600160a01b0384163b1561458a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144d89033908990889088906004016159ad565b6020604051808303816000875af1925050508015614513575060408051601f3d908101601f19168201909252614510918101906159ea565b60015b614570573d808015614541576040519150601f19603f3d011682016040523d82523d6000602084013e614546565b606091505b5080516000036145685760405162461bcd60e51b8152600401610fed9061592c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611262565b506001611262565b606061459d82613940565b60006145b460408051602081019091526000815290565b905060008151116145d457604051806020016040528060008152506145ff565b806145de846146ce565b6040516020016145ef92919061597e565b6040516020818303038152906040525b9392505050565b6146108383614760565b61461d6000848484614494565b61108e5760405162461bcd60e51b8152600401610fed9061592c565b600061464482612233565b905061464f82612233565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006146db836148eb565b60010190506000816001600160401b038111156146fa576146fa614bc7565b6040519080825280601f01601f191660200182016040528015614724576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461472e57509392505050565b6001600160a01b0382166147b65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fed565b6000818152600260205260409020546001600160a01b03161561481b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6000818152600260205260409020546001600160a01b0316156148805760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061492a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614956576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061497457662386f26fc10000830492506010015b6305f5e100831061498c576305f5e100830492506008015b61271083106149a057612710830492506004015b606483106149b2576064830492506002015b600a8310610b0a5760010192915050565b5080546149cf906153f7565b6000825580601f106149df575050565b601f0160209004906000526020600020908101906120d091905b80821115614a0d57600081556001016149f9565b5090565b6001600160e01b0319811681146120d057600080fd5b600060208284031215614a3957600080fd5b81356145ff81614a11565b6001600160a01b03811681146120d057600080fd5b600060208284031215614a6b57600080fd5b81356145ff81614a44565b600081518084526020808501945080840160005b83811015614aa957815160ff1687529582019590820190600101614a8a565b509495945050505050565b606081526000614ac76060830186614a76565b602083820381850152614ada8287614a76565b8481036040860152855180825282870193509082019060005b81811015614b11578451151583529383019391830191600101614af3565b509098975050505050505050565b60005b83811015614b3a578181015183820152602001614b22565b50506000910152565b60008151808452614b5b816020860160208601614b1f565b601f01601f19169290920160200192915050565b6020815260006145ff6020830184614b43565b600060208284031215614b9457600080fd5b5035919050565b60008060408385031215614bae57600080fd5b8235614bb981614a44565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c0557614c05614bc7565b604052919050565b60006001600160401b03821115614c2657614c26614bc7565b5060051b60200190565b803560ff81168114614c4157600080fd5b919050565b600082601f830112614c5757600080fd5b81356020614c6c614c6783614c0d565b614bdd565b82815260059290921b84018101918181019086841115614c8b57600080fd5b8286015b84811015614cad57614ca081614c30565b8352918301918301614c8f565b509695505050505050565b60008060008060608587031215614cce57600080fd5b8435935060208501356001600160401b0380821115614cec57600080fd5b614cf888838901614c46565b94506040870135915080821115614d0e57600080fd5b818701915087601f830112614d2257600080fd5b813581811115614d3157600080fd5b886020828501011115614d4357600080fd5b95989497505060200194505050565b60008060408385031215614d6557600080fd5b8235614d7081614a44565b9150614d7e60208401614c30565b90509250929050565b600082601f830112614d9857600080fd5b81356020614da8614c6783614c0d565b82815260059290921b84018101918181019086841115614dc757600080fd5b8286015b84811015614cad5780356001600160401b03811115614dea5760008081fd5b614df88986838b0101614c46565b845250918301918301614dcb565b60008083601f840112614e1857600080fd5b5081356001600160401b03811115614e2f57600080fd5b6020830191508360208260051b8501011115614e4a57600080fd5b9250929050565b600080600080600060808688031215614e6957600080fd5b614e7286614c30565b94506020808701356001600160401b0380821115614e8f57600080fd5b818901915089601f830112614ea357600080fd5b8135614eb1614c6782614c0d565b81815260059190911b8301840190848101908c831115614ed057600080fd5b938501935b82851015614eee57843582529385019390850190614ed5565b985050506040890135925080831115614f0657600080fd5b614f128a848b01614d87565b95506060890135925080831115614f2857600080fd5b5050614f3688828901614e06565b969995985093965092949392505050565b60008060208385031215614f5a57600080fd5b82356001600160401b03811115614f7057600080fd5b614f7c85828601614e06565b90969095509350505050565b600080600060608486031215614f9d57600080fd5b8335614fa881614a44565b92506020840135614fb881614a44565b929592945050506040919091013590565b600060208284031215614fdb57600080fd5b6145ff82614c30565b600080600060608486031215614ff957600080fd5b833561500481614a44565b92506020840135915060408401356001600160401b0381111561502657600080fd5b61503286828701614c46565b9150509250925092565b80151581146120d057600080fd5b60006020828403121561505c57600080fd5b81356145ff8161503c565b60006001600160401b0382111561508057615080614bc7565b50601f01601f191660200190565b600061509c614c6784615067565b90508281528383830111156150b057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150d857600080fd5b6145ff8383356020850161508e565b60008060008060008060c0878903121561510057600080fd5b863561510b81614a44565b9550602087013561511b81614a44565b9450604087013561512b81614a44565b9350606087013561513b81614a44565b925060808701356001600160401b0381111561515657600080fd5b61516289828a016150c7565b92505060a087013561517381614a44565b809150509295509295509295565b6000806040838503121561519457600080fd5b82356001600160401b03808211156151ab57600080fd5b6151b7868387016150c7565b935060208501359150808211156151cd57600080fd5b506151da858286016150c7565b9150509250929050565b6000806000604084860312156151f957600080fd5b833561520481614a44565b925060208401356001600160401b0381111561521f57600080fd5b61522b86828701614e06565b9497909650939450505050565b6000806040838503121561524b57600080fd5b823561525681614a44565b915060208301356152668161503c565b809150509250929050565b6000806000806080858703121561528757600080fd5b843561529281614a44565b93506152a060208601614c30565b925060408501356152b081614a44565b91506152be60608601614c30565b905092959194509250565b600080600080608085870312156152df57600080fd5b84356152ea81614a44565b935060208501356152fa81614a44565b92506040850135915060608501356001600160401b0381111561531c57600080fd5b8501601f8101871361532d57600080fd5b61533c8782356020840161508e565b91505092959194509250565b6000806040838503121561535b57600080fd5b823561536681614a44565b9150602083013561526681614a44565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561539e57600080fd5b81516145ff8161503c565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff81036153d5576153d56153a9565b60010192915050565b6000600182016153f0576153f06153a9565b5060010190565b600181811c9082168061540b57607f821691505b60208210810361256a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561547d57845160ff168352938301939183019160010161545e565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b6000602082840312156154c457600080fd5b81516145ff81614a44565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b602001915036819003821315614e4a57600080fd5b80820180821115610b0a57610b0a6153a9565b60006020828403121561553a57600080fd5b5051919050565b600060ff821680615554576155546153a9565b6000190192915050565b60008184825b8581101561558d5760ff61557783614c30565b1683526020928301929190910190600101615564565b509095945050505050565b81810381811115610b0a57610b0a6153a9565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b60008261564c57634e487b7160e01b600052601260045260246000fd5b500490565b601f82111561108e57600081815260208120601f850160051c810160208610156156785750805b601f850160051c820191505b8181101561146f57828155600101615684565b81516001600160401b038111156156b0576156b0614bc7565b6156c4816156be84546153f7565b84615651565b602080601f8311600181146156f957600084156156e15750858301515b600019600386901b1c1916600185901b17855561146f565b600085815260208120601f198616915b8281101561572857888601518255948401946001909101908401615709565b50858210156157465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615764816153f7565b6001828116801561577c5760018114615791576157c0565b60ff19841687528215158302870194506157c0565b8a60005260208060002060005b858110156157b75781548a82015290840190820161579e565b50505082870194505b5050505085516157d4818360208a01614b1f565b85519101906157e7818360208901614b1f565b84519101906157fa818360208801614b1f565b019695505050505050565b60008251615817818460208701614b1f565b9190910192915050565b60006020828403121561583357600080fd5b81516001600160401b0381111561584957600080fd5b8201601f8101841361585a57600080fd5b8051615868614c6782615067565b81815285602083850101111561587d57600080fd5b61588e826020830160208601614b1f565b95945050505050565b8082028115828204841417610b0a57610b0a6153a9565b815160009082906020808601845b838110156158db57815160ff16855293820193908201906001016158bc565b50929695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615990818460208801614b1f565b8351908301906159a4818360208801614b1f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906159e090830184614b43565b9695505050505050565b6000602082840312156159fc57600080fd5b81516145ff81614a1156fea264697066735822122037e4870fe1827025a5878dbedd00e617ea8ebf7de08517dc09f16363951ab41464736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 5023 + }, + { + "length": 20, + "start": 5709 + }, + { + "length": 20, + "start": 9707 + }, + { + "length": 20, + "start": 15088 + } + ] + }, + "contracts/gamma/libs/LibPackVerifier.sol": { + "LibPackVerifier": [ + { + "length": 20, + "start": 5285 + }, + { + "length": 20, + "start": 15769 + } + ] + }, + "contracts/gamma/libs/LibStringUtils.sol": { + "LibStringUtils": [ + { + "length": 20, + "start": 14286 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 4328 + }, + { + "length": 20, + "start": 5014 + }, + { + "length": 20, + "start": 9012 + }, + { + "length": 20, + "start": 14393 + } + ] + }, + "contracts/gamma/libs/LibPackVerifier.sol": { + "LibPackVerifier": [ + { + "length": 20, + "start": 4590 + }, + { + "length": 20, + "start": 15074 + } + ] + }, + "contracts/gamma/libs/LibStringUtils.sol": { + "LibStringUtils": [ + { + "length": 20, + "start": 13591 + } + ] + } + } +} diff --git a/src/context/abis/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json b/src/context/abis/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json new file mode 100644 index 00000000..215d0923 --- /dev/null +++ b/src/context/abis/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json @@ -0,0 +1,391 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaCardsNFTV1", + "sourceName": "contracts/gamma/GammaCardsNFT.v1.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_fromTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_toTokenId", + "type": "uint256" + } + ], + "name": "BatchMetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "MetadataUpdate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6113c380620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610f4f565b610256565b60405190151581526020015b60405180910390f35b61011f610267565b60405161010e9190610fbc565b61013f61013a366004610fcf565b6102f9565b6040516001600160a01b03909116815260200161010e565b61016a610165366004611004565b610320565b005b61016a61017a36600461102e565b61043a565b61016a61018d36600461102e565b61046c565b61016a6101a0366004610fcf565b610487565b61013f6101b3366004610fcf565b6104b8565b6101cb6101c636600461106a565b610518565b60405190815260200161010e565b61011f61059e565b61016a6101ef366004611085565b6105ad565b61016a6102023660046110d7565b6105bc565b61011f610215366004610fcf565b6105f4565b6101026102283660046111b3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000610261826105ff565b92915050565b606060008054610276906111e6565b80601f01602080910402602001604051908101604052809291908181526020018280546102a2906111e6565b80156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b5050505050905090565b600061030482610624565b506000908152600460205260409020546001600160a01b031690565b600061032b826104b8565b9050806001600160a01b0316836001600160a01b03160361039d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103b957506103b98133610228565b61042b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610394565b6104358383610683565b505050565b610445335b826106f1565b6104615760405162461bcd60e51b815260040161039490611220565b610435838383610770565b610435838383604051806020016040528060008152506105bc565b6104903361043f565b6104ac5760405162461bcd60e51b815260040161039490611220565b6104b5816108d4565b50565b6000818152600260205260408120546001600160a01b0316806102615760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b60006001600160a01b0382166105825760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610394565b506001600160a01b031660009081526003602052604090205490565b606060018054610276906111e6565b6105b83383836108dd565b5050565b6105c633836106f1565b6105e25760405162461bcd60e51b815260040161039490611220565b6105ee848484846109ab565b50505050565b6060610261826109de565b60006001600160e01b03198216632483248360e11b1480610261575061026182610ae6565b6000818152600260205260409020546001600160a01b03166104b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106b8826104b8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806106fd836104b8565b9050806001600160a01b0316846001600160a01b0316148061074457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107685750836001600160a01b031661075d846102f9565b6001600160a01b0316145b949350505050565b826001600160a01b0316610783826104b8565b6001600160a01b0316146107a95760405162461bcd60e51b81526004016103949061126d565b6001600160a01b03821661080b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b826001600160a01b031661081e826104b8565b6001600160a01b0316146108445760405162461bcd60e51b81526004016103949061126d565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6104b581610b36565b816001600160a01b0316836001600160a01b03160361093e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610394565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109b6848484610770565b6109c284848484610b76565b6105ee5760405162461bcd60e51b8152600401610394906112b2565b60606109e982610624565b60008281526006602052604081208054610a02906111e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2e906111e6565b8015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b505050505090506000610a9960408051602081019091526000815290565b90508051600003610aab575092915050565b815115610add578082604051602001610ac5929190611304565b60405160208183030381529060405292505050919050565b61076884610c77565b60006001600160e01b031982166380ac58cd60e01b1480610b1757506001600160e01b03198216635b5e139f60e01b145b8061026157506301ffc9a760e01b6001600160e01b0319831614610261565b610b3f81610ceb565b60008181526006602052604090208054610b58906111e6565b1590506104b55760008181526006602052604081206104b591610eeb565b60006001600160a01b0384163b15610c6c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610bba903390899088908890600401611333565b6020604051808303816000875af1925050508015610bf5575060408051601f3d908101601f19168201909252610bf291810190611370565b60015b610c52573d808015610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b508051600003610c4a5760405162461bcd60e51b8152600401610394906112b2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610768565b506001949350505050565b6060610c8282610624565b6000610c9960408051602081019091526000815290565b90506000815111610cb95760405180602001604052806000815250610ce4565b80610cc384610d80565b604051602001610cd4929190611304565b6040516020818303038152906040525b9392505050565b6000610cf6826104b8565b9050610d01826104b8565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606000610d8d83610e13565b600101905060008167ffffffffffffffff811115610dad57610dad6110c1565b6040519080825280601f01601f191660200182016040528015610dd7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610de157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e525772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e7e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e9c57662386f26fc10000830492506010015b6305f5e1008310610eb4576305f5e100830492506008015b6127108310610ec857612710830492506004015b60648310610eda576064830492506002015b600a83106102615760010192915050565b508054610ef7906111e6565b6000825580601f10610f07575050565b601f0160209004906000526020600020908101906104b591905b80821115610f355760008155600101610f21565b5090565b6001600160e01b0319811681146104b557600080fd5b600060208284031215610f6157600080fd5b8135610ce481610f39565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b602081526000610ce46020830184610f90565b600060208284031215610fe157600080fd5b5035919050565b80356001600160a01b0381168114610fff57600080fd5b919050565b6000806040838503121561101757600080fd5b61102083610fe8565b946020939093013593505050565b60008060006060848603121561104357600080fd5b61104c84610fe8565b925061105a60208501610fe8565b9150604084013590509250925092565b60006020828403121561107c57600080fd5b610ce482610fe8565b6000806040838503121561109857600080fd5b6110a183610fe8565b9150602083013580151581146110b657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156110ed57600080fd5b6110f685610fe8565b935061110460208601610fe8565b925060408501359150606085013567ffffffffffffffff8082111561112857600080fd5b818701915087601f83011261113c57600080fd5b81358181111561114e5761114e6110c1565b604051601f8201601f19908116603f01168101908382118183101715611176576111766110c1565b816040528281528a602084870101111561118f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156111c657600080fd5b6111cf83610fe8565b91506111dd60208401610fe8565b90509250929050565b600181811c908216806111fa57607f821691505b60208210810361121a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351611316818460208801610f6c565b83519083019061132a818360208801610f6c565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061136690830184610f90565b9695505050505050565b60006020828403121561138257600080fd5b8151610ce481610f3956fea2646970667358221220f2ee410a99715667683fa224eb5be2c0b6c98edb2b01b26a54d1a13e0e3f5ce164736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610f4f565b610256565b60405190151581526020015b60405180910390f35b61011f610267565b60405161010e9190610fbc565b61013f61013a366004610fcf565b6102f9565b6040516001600160a01b03909116815260200161010e565b61016a610165366004611004565b610320565b005b61016a61017a36600461102e565b61043a565b61016a61018d36600461102e565b61046c565b61016a6101a0366004610fcf565b610487565b61013f6101b3366004610fcf565b6104b8565b6101cb6101c636600461106a565b610518565b60405190815260200161010e565b61011f61059e565b61016a6101ef366004611085565b6105ad565b61016a6102023660046110d7565b6105bc565b61011f610215366004610fcf565b6105f4565b6101026102283660046111b3565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000610261826105ff565b92915050565b606060008054610276906111e6565b80601f01602080910402602001604051908101604052809291908181526020018280546102a2906111e6565b80156102ef5780601f106102c4576101008083540402835291602001916102ef565b820191906000526020600020905b8154815290600101906020018083116102d257829003601f168201915b5050505050905090565b600061030482610624565b506000908152600460205260409020546001600160a01b031690565b600061032b826104b8565b9050806001600160a01b0316836001600160a01b03160361039d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103b957506103b98133610228565b61042b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610394565b6104358383610683565b505050565b610445335b826106f1565b6104615760405162461bcd60e51b815260040161039490611220565b610435838383610770565b610435838383604051806020016040528060008152506105bc565b6104903361043f565b6104ac5760405162461bcd60e51b815260040161039490611220565b6104b5816108d4565b50565b6000818152600260205260408120546001600160a01b0316806102615760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b60006001600160a01b0382166105825760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610394565b506001600160a01b031660009081526003602052604090205490565b606060018054610276906111e6565b6105b83383836108dd565b5050565b6105c633836106f1565b6105e25760405162461bcd60e51b815260040161039490611220565b6105ee848484846109ab565b50505050565b6060610261826109de565b60006001600160e01b03198216632483248360e11b1480610261575061026182610ae6565b6000818152600260205260409020546001600160a01b03166104b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610394565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106b8826104b8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806106fd836104b8565b9050806001600160a01b0316846001600160a01b0316148061074457506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107685750836001600160a01b031661075d846102f9565b6001600160a01b0316145b949350505050565b826001600160a01b0316610783826104b8565b6001600160a01b0316146107a95760405162461bcd60e51b81526004016103949061126d565b6001600160a01b03821661080b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b826001600160a01b031661081e826104b8565b6001600160a01b0316146108445760405162461bcd60e51b81526004016103949061126d565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6104b581610b36565b816001600160a01b0316836001600160a01b03160361093e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610394565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109b6848484610770565b6109c284848484610b76565b6105ee5760405162461bcd60e51b8152600401610394906112b2565b60606109e982610624565b60008281526006602052604081208054610a02906111e6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2e906111e6565b8015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b505050505090506000610a9960408051602081019091526000815290565b90508051600003610aab575092915050565b815115610add578082604051602001610ac5929190611304565b60405160208183030381529060405292505050919050565b61076884610c77565b60006001600160e01b031982166380ac58cd60e01b1480610b1757506001600160e01b03198216635b5e139f60e01b145b8061026157506301ffc9a760e01b6001600160e01b0319831614610261565b610b3f81610ceb565b60008181526006602052604090208054610b58906111e6565b1590506104b55760008181526006602052604081206104b591610eeb565b60006001600160a01b0384163b15610c6c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610bba903390899088908890600401611333565b6020604051808303816000875af1925050508015610bf5575060408051601f3d908101601f19168201909252610bf291810190611370565b60015b610c52573d808015610c23576040519150601f19603f3d011682016040523d82523d6000602084013e610c28565b606091505b508051600003610c4a5760405162461bcd60e51b8152600401610394906112b2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610768565b506001949350505050565b6060610c8282610624565b6000610c9960408051602081019091526000815290565b90506000815111610cb95760405180602001604052806000815250610ce4565b80610cc384610d80565b604051602001610cd4929190611304565b6040516020818303038152906040525b9392505050565b6000610cf6826104b8565b9050610d01826104b8565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606000610d8d83610e13565b600101905060008167ffffffffffffffff811115610dad57610dad6110c1565b6040519080825280601f01601f191660200182016040528015610dd7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610de157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e525772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e7e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e9c57662386f26fc10000830492506010015b6305f5e1008310610eb4576305f5e100830492506008015b6127108310610ec857612710830492506004015b60648310610eda576064830492506002015b600a83106102615760010192915050565b508054610ef7906111e6565b6000825580601f10610f07575050565b601f0160209004906000526020600020908101906104b591905b80821115610f355760008155600101610f21565b5090565b6001600160e01b0319811681146104b557600080fd5b600060208284031215610f6157600080fd5b8135610ce481610f39565b60005b83811015610f87578181015183820152602001610f6f565b50506000910152565b60008151808452610fa8816020860160208601610f6c565b601f01601f19169290920160200192915050565b602081526000610ce46020830184610f90565b600060208284031215610fe157600080fd5b5035919050565b80356001600160a01b0381168114610fff57600080fd5b919050565b6000806040838503121561101757600080fd5b61102083610fe8565b946020939093013593505050565b60008060006060848603121561104357600080fd5b61104c84610fe8565b925061105a60208501610fe8565b9150604084013590509250925092565b60006020828403121561107c57600080fd5b610ce482610fe8565b6000806040838503121561109857600080fd5b6110a183610fe8565b9150602083013580151581146110b657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156110ed57600080fd5b6110f685610fe8565b935061110460208601610fe8565b925060408501359150606085013567ffffffffffffffff8082111561112857600080fd5b818701915087601f83011261113c57600080fd5b81358181111561114e5761114e6110c1565b604051601f8201601f19908116603f01168101908382118183101715611176576111766110c1565b816040528281528a602084870101111561118f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156111c657600080fd5b6111cf83610fe8565b91506111dd60208401610fe8565b90509250929050565b600181811c908216806111fa57607f821691505b60208210810361121a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351611316818460208801610f6c565b83519083019061132a818360208801610f6c565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061136690830184610f90565b9695505050505050565b60006020828403121561138257600080fd5b8151610ce481610f3956fea2646970667358221220f2ee410a99715667683fa224eb5be2c0b6c98edb2b01b26a54d1a13e0e3f5ce164736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/context/abis/GammaOffers.v4.sol/IGammaCardsContract.json b/src/context/abis/gamma/GammaOffers.v4.sol/IGammaCardsContract.json similarity index 100% rename from src/context/abis/GammaOffers.v4.sol/IGammaCardsContract.json rename to src/context/abis/gamma/GammaOffers.v4.sol/IGammaCardsContract.json diff --git a/src/context/abis/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json b/src/context/abis/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json new file mode 100644 index 00000000..e38152cc --- /dev/null +++ b/src/context/abis/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json @@ -0,0 +1,1022 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaOffersV4", + "sourceName": "contracts/gamma/GammaOffers.v4.sol", + "abi": [ + { + "inputs": [], + "name": "ExchangeError", + "type": "error" + }, + { + "inputs": [], + "name": "GammaCardsContractNotSet", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCard", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCardNumber", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidOfferId", + "type": "error" + }, + { + "inputs": [], + "name": "OfferAlreadyExists", + "type": "error" + }, + { + "inputs": [], + "name": "OfferDoesNotExists", + "type": "error" + }, + { + "inputs": [], + "name": "OfferNotDeleted", + "type": "error" + }, + { + "inputs": [], + "name": "OffersMaximumAllowed", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyCardsContract", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "inputs": [], + "name": "RemoveOfferFromCardNumberMapping_DoNotMatch", + "type": "error" + }, + { + "inputs": [], + "name": "RemoveOfferFromUserMapping_DoNotMatch", + "type": "error" + }, + { + "inputs": [], + "name": "UserAlreadyHasCard", + "type": "error" + }, + { + "inputs": [], + "name": "UserDoesNotHaveCard", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "AllOffersRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newGammaCardsContract", + "type": "address" + } + ], + "name": "NewGammaCardsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + } + ], + "name": "OfferCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "OfferRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "UserOffersRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "canAnyUserPublishOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "canUserPublishOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_value", + "type": "bool" + } + ], + "name": "changeRemoveCardinInventoryWhenOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumberWanted", + "type": "uint8" + }, + { + "internalType": "address", + "name": "offerWallet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "offerCardNumber", + "type": "uint8" + } + ], + "name": "confirmOfferExchange", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + } + ], + "name": "createOffer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + } + ], + "name": "createOfferWithoUser", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "deleteAllOffers", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaCardsContract", + "outputs": [ + { + "internalType": "contract IGammaCardsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaxOffersAllowed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaxOffersByUserAllowed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getOfferByIndex", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + } + ], + "name": "getOfferByOfferId", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOfferByUserAndCardNumber", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOffers", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOffersByCardNumber", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "getOffersByCardNumberCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getOffersByUser", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "uint8[]", + "name": "wantedCardNumbers", + "type": "uint8[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "internalType": "struct NofGammaOffersV4.Offer[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getOffersByUserCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOffersCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "hasOffer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_cardsContract", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "offers", + "outputs": [ + { + "internalType": "string", + "name": "offerId", + "type": "string" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "name": "offersByCardNumberCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "offersByUserCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "offersTotalCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeOfferByCardNumber", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint8", + "name": "cardNumber", + "type": "uint8" + } + ], + "name": "removeOfferByUserAndCardNumber", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "removeOffersByUser", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + } + ], + "name": "setGammaCardsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxCardNumbersAllowed", + "type": "uint256" + } + ], + "name": "setMaxCardNumbersAllowed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxOffersAllowed", + "type": "uint256" + } + ], + "name": "setMaxOffersAllowed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_maxOffersByUserAllowed", + "type": "uint256" + } + ], + "name": "setMaxOffersByUserAllowed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b5062000036336200003c565b6200008c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613712806200009c6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b3659614610515578063e359a0a114610528578063e5e5f7321461053b578063f2fde38b1461054e578063fc9e80fc1461056157600080fd5b8063ce7483d5146104a4578063cf86f8e5146104c7578063d250f03a146104cf578063d827a8f4146104e2578063e02f97231461050257600080fd5b806390222aa1116100ff57806390222aa11461044e5780639618b333146104565780639f91506914610469578063ba79b77b14610489578063c08029e71461049157600080fd5b80637594a6ed146103d35780638400a189146103f35780638a72ea6a146104065780638da5cb5b1461042957600080fd5b80633a027073116101be5780635a919aeb116101825780635a919aeb146103905780635bbfbfd614610399578063619980dc146103ac5780637065cb48146103b8578063715018a6146103cb57600080fd5b80633a0270731461032f5780633e293e16146103425780633ee992ee146103555780634c7a7ad31461036a57806358e57ebb1461037d57600080fd5b806329d3f60b1161020557806329d3f60b146102985780632edb5fcf146102d55780632f54bf6e146102e8578063322fba27146103145780633808dfe71461031c57600080fd5b80630cdb311714610237578063173825d91461025d57806317a1fed91461027257806319ab453c14610285575b600080fd5b61024a610245366004612e02565b610574565b6040519081526020015b60405180910390f35b61027061026b366004612e02565b6105b9565b005b610270610280366004612f73565b61065f565b610270610293366004612e02565b6106a1565b6102c56102a6366004612e02565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610254565b6102c56102e3366004612ff8565b61070c565b6102c56102f6366004612e02565b6001600160a01b031660009081526002602052604090205460ff1690565b6102706107cc565b61027061032a36600461302b565b61097b565b6102c561033d366004613044565b6109b0565b61027061035036600461305f565b6109f8565b61035d610a09565b60405161025491906131c5565b610270610378366004612e02565b610b9d565b61027061038b366004613235565b610c48565b61024a600d5481565b6102c56103a7366004612ff8565b610c8b565b600d54600454116102c5565b6102706103c6366004612e02565b610d0c565b610270610d83565b61024a6103e1366004612e02565b600b6020526000908152604090205481565b61035d610401366004613044565b610d97565b61041961041436600461302b565b610f3b565b6040516102549493929190613252565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610254565b60045461024a565b61035d610464366004612e02565b611013565b61047c610477366004612ff8565b6111d6565b604051610254919061328d565b60055461024a565b61027061049f3660046132a0565b6113e6565b61024a6104b2366004613044565b60ff166000908152600c602052604090205490565b600d5461024a565b600154610436906001600160a01b031681565b61024a6104f0366004613044565b600c6020526000908152604090205481565b61027061051036600461302b565b61170a565b61047c6105233660046132f4565b61173f565b61047c61053636600461302b565b611948565b61027061054936600461302b565b611ad4565b61027061055c366004612e02565b611b09565b6102c561056f366004612e02565b611b87565b60006001600160a01b03821661059d5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105e957604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661068f57604051634289c49360e01b815260040160405180910390fd5b61069b84848484611dd2565b50505050565b6106a9612305565b6001600160a01b0381166106d05760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff19169091179055565b60006001600160a01b0383166107355760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b60205260409020548110156107c0576001600160a01b0384166000908152600960205260409020805460ff851691908390811061078857610788613329565b600091825260209091206001600590920201015460ff16036107ae5760019150506107c6565b806107b881613355565b915050610738565b50600090505b92915050565b3360009081526002602052604090205460ff166107fc57604051634289c49360e01b815260040160405180910390fd5b60005b60085481101561093c57600960006008838154811061082057610820613329565b60009182526020808320600360059093020191909101546001600160a01b03168352820192909252604001812061085691612bd7565b6000600b60006008848154811061086f5761086f613329565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a929190849081106108b9576108b9613329565b600091825260208083206001600590930201919091015460ff16835282019290925260400181206108e991612bd7565b6000600c60006008848154811061090257610902613329565b600091825260208083206001600590930201919091015460ff1683528201929092526040019020558061093481613355565b9150506107ff565b506000600d81905561095090600890612bd7565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff166109ab57604051634289c49360e01b815260040160405180910390fd5b600555565b6000806109bd33846111d6565b60608101519091506001600160a01b031633146109dd5750600092915050565b60006109f033858460000151600061235f565b949350505050565b610a0483338484611dd2565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b9457838290600052602060002090600502016040518060a0016040529081600082018054610a609061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8c9061336e565b8015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610b5957602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610b2a5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610a2d565b50505050905090565b3360009081526002602052604090205460ff16610bcd57604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610bf45760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610c7857604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610cbb57604051634289c49360e01b815260040160405180910390fd5b6000610cc784846111d6565b9050836001600160a01b031681606001516001600160a01b031614610cf05760009150506107c6565b6000610d0385858460000151600061235f565b95945050505050565b3360009081526002602052604090205460ff16610d3c57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062c565b610d8b612305565b610d9560006124d6565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610f3057838290600052602060002090600502016040518060a0016040529081600082018054610dfc9061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e289061336e565b8015610e755780601f10610e4a57610100808354040283529160200191610e75565b820191906000526020600020905b815481529060010190602001808311610e5857829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ef557602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610ec65790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610dc9565b505050509050919050565b60088181548110610f4b57600080fd5b9060005260206000209060050201600091509050806000018054610f6e9061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9a9061336e565b8015610fe75780601f10610fbc57610100808354040283529160200191610fe7565b820191906000526020600020905b815481529060010190602001808311610fca57829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b03821661103c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610f3057838290600052602060002090600502016040518060a00160405290816000820180546110a29061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546110ce9061336e565b801561111b5780601f106110f05761010080835404028352916020019161111b565b820191906000526020600020905b8154815290600101906020018083116110fe57829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561119b57602002820191906000526020600020906000905b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161116c5790505b505050918352505060038201546001600160a01b0316602080830191909152600490920154604090910152908252600192909201910161106f565b6111de612bf8565b6001600160a01b0383166112055760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b818110156113dd578460ff1683828154811061124957611249613329565b600091825260209091206001600590920201015460ff16036113cb5782818154811061127757611277613329565b90600052602060002090600502016040518060a00160405290816000820180546112a09061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546112cc9061336e565b80156113195780601f106112ee57610100808354040283529160200191611319565b820191906000526020600020905b8154815290600101906020018083116112fc57829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561139957602002820191906000526020600020906000905b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161136a5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015293506107c692505050565b806113d581613355565b91505061122b565b50610d03612526565b60006113f283836111d6565b9050826001600160a01b031681606001516001600160a01b03161461142a57604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114d05760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c89061146a90879089906004016133a8565b6020604051808303816000875af1158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad91906133c4565b156114cb57604051631177b29560e11b815260040160405180910390fd5b611545565b6000805b82518160ff161015611524578660ff16838260ff16815181106114f9576114f9613329565b602002602001015160ff16036115125760019150611524565b8061151c816133e1565b9150506114d4565b508061154357604051630eefa23760e11b815260040160405180910390fd5b505b600061155885858560000151600161235f565b90508061157857604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b1580156115d857600080fd5b505af11580156115ec573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611622908a9088906004016133a8565b6020604051808303816000875af1158015611641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166591906133c4565b15806116e3575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c89061169e9088908a906004016133a8565b6020604051808303816000875af11580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e191906133c4565b155b156117015760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff1661173a57604051634289c49360e01b815260040160405180910390fd5b600655565b611747612bf8565b60005b60085481101561193f57826040516020016117659190613400565b604051602081830303815290604052805190602001206008828154811061178e5761178e613329565b90600052602060002090600502016000016040516020016117af919061341c565b604051602081830303815290604052805190602001200361192d57600881815481106117dd576117dd613329565b90600052602060002090600502016040518060a00160405290816000820180546118069061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546118329061336e565b801561187f5780601f106118545761010080835404028352916020019161187f565b820191906000526020600020905b81548152906001019060200180831161186257829003601f168201915b5050509183525050600182015460ff1660208083019190915260028301805460408051828502810185018252828152940193928301828280156118ff57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118d05790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b8061193781613355565b91505061174a565b506107c6612526565b611950612bf8565b600854821061197257604051635129cab160e11b815260040160405180910390fd5b6008828154811061198557611985613329565b90600052602060002090600502016040518060a00160405290816000820180546119ae9061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546119da9061336e565b8015611a275780601f106119fc57610100808354040283529160200191611a27565b820191906000526020600020905b815481529060010190602001808311611a0a57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611aa757602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611a785790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611b0457604051634289c49360e01b815260040160405180910390fd5b600455565b611b11612305565b6001600160a01b038116611b7b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b611b84816124d6565b50565b6001546000906001600160a01b03163314611bb55760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611bdc5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611d55576000838281548110611c1e57611c1e613329565b90600052602060002090600502016000018054611c3a9061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054611c669061336e565b8015611cb35780601f10611c8857610100808354040283529160200191611cb3565b820191906000526020600020905b815481529060010190602001808311611c9657829003601f168201915b505050505090506000848381548110611cce57611cce613329565b600091825260209091206001600590920201015460ff169050611cf287828461256f565b611cfb82612823565b5060ff81166000908152600c60205260408120805460019290611d1f908490613492565b925050819055506001600d6000828254611d399190613492565b9250508190555050508080611d4d90613355565b915050611c02565b506001600160a01b0384166000908152600960205260408120611d7791612bd7565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611dfb5760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611e355760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611e595760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611e8c90879087906004016133a8565b6020604051808303816000875af1158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf91906133c4565b905080611eef5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611f52578360ff16838260ff1681518110611f1757611f17613329565b602002602001015160ff1603611f4057604051630d1ecf1760e11b815260040160405180910390fd5b80611f4a816133e1565b915050611ef2565b506000611f5f85856111d6565b60608101519091506001600160a01b031615611f8e5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611fb79084906134a5565b909155505060ff84166000908152600c60205260408120805460019290611fdf9084906134a5565b925050819055506001600d6000828254611ff991906134a5565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3019081906120759082613506565b5060208281015160018301805460ff191660ff909216919091179055604083015180516120a89260028501920190612c33565b5060608201516003820180546001600160a01b0319166001600160a01b0392831617905560809092015160049091015585166000908152600960205260409020600880546120f890600190613492565b8154811061210857612108613329565b600091825260208083208454600181018655948452922060059182029092019202018061213583826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546121649284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546121b690600190613492565b815481106121c6576121c6613329565b60009182526020808320845460018101865594845292206005918202909201920201806121f383826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546122229284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156122c257600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac9061228f90889088906004016133a8565b600060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc58585856040516122f593929190613699565b60405180910390a1505050505050565b6000546001600160a01b03163314610d955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611b72565b60006001600160a01b0385166123885760405163e6c4247b60e01b815260040160405180910390fd5b612393858585612aa0565b61239e85858561256f565b6123a783612823565b506001600160a01b0385166000908152600b602052604081208054600192906123d1908490613492565b909155505060ff84166000908152600c602052604081208054600192906123f9908490613492565b925050819055506001600d60008282546124139190613492565b909155505060075460ff168015612428575081155b1561249257600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061245f90889088906004016133a8565b600060405180830381600087803b15801561247957600080fd5b505af115801561248d573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516124c39291906133a8565b60405180910390a1506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61252e612bf8565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b8154811015610658576126418282815481106125a1576125a1613329565b906000526020600020906005020160000180546125bd9061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546125e99061336e565b80156126365780601f1061260b57610100808354040283529160200191612636565b820191906000526020600020905b81548152906001019060200180831161261957829003601f168201915b505050505084612b7e565b1561281157846001600160a01b031682828154811061266257612662613329565b60009182526020909120600360059092020101546001600160a01b03161415806126b757508360ff1682828154811061269d5761269d613329565b600091825260209091206001600590920201015460ff1614155b156126d5576040516357aeb86360e11b815260040160405180910390fd5b81546126e390600190613492565b8110156127a557815482906126fa90600190613492565b8154811061270a5761270a613329565b906000526020600020906005020182828154811061272a5761272a613329565b600091825260209091206005909102018061274583826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546127749284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806127b5576127b56136c6565b600082815260208120600019909201916005830201906127d58282612d27565b60018201805460ff191690556127ef600283016000612d61565b506003810180546001600160a01b031916905560006004909101559055610658565b8061281b81613355565b915050612583565b600080805b600854811015612a9957600854811080156128f457506128f46008828154811061285457612854613329565b906000526020600020906005020160000180546128709061336e565b80601f016020809104026020016040519081016040528092919081815260200182805461289c9061336e565b80156128e95780601f106128be576101008083540402835291602001916128e9565b820191906000526020600020905b8154815290600101906020018083116128cc57829003601f168201915b505050505085612b7e565b15612a87576008818154811061290c5761290c613329565b600091825260208220600590910201906129268282612d27565b60018201805460ff19169055612940600283016000612d61565b506003810180546001600160a01b031916905560006004909101556008805461296b90600190613492565b8154811061297b5761297b613329565b90600052602060002090600502016008828154811061299c5761299c613329565b60009182526020909120600590910201806129b783826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546129e69284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612a2757612a276136c6565b60008281526020812060001990920191600583020190612a478282612d27565b60018201805460ff19169055612a61600283016000612d61565b506003810180546001600160a01b03191690556000600490910155905560019150612a99565b80612a9181613355565b915050612828565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561065857612ad88282815481106125a1576125a1613329565b15612b6c57846001600160a01b0316828281548110612af957612af9613329565b60009182526020909120600360059092020101546001600160a01b0316141580612b4e57508360ff16828281548110612b3457612b34613329565b600091825260209091206001600590920201015460ff1614155b156126d55760405163b7f2d83360e01b815260040160405180910390fd5b80612b7681613355565b915050612aba565b600081604051602001612b919190613400565b6040516020818303038152906040528051906020012083604051602001612bb89190613400565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611b849190612d86565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612cc95791602002820160005b83821115612c9a57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612c5c565b8015612cc75782816101000a81549060ff0219169055600101602081600001049283019260010302612c9a565b505b50612cd5929150612dd6565b5090565b82805482825590600052602060002090601f01602090048101928215612cc957600052602060002091601f016020900482015b82811115612cc9578254825591600101919060010190612d0c565b508054612d339061336e565b6000825580601f10612d43575050565b601f016020900490600052602060002090810190611b849190612dd6565b50805460008255601f016020900490600052602060002090810190611b849190612dd6565b80821115612cd5576000612d9a8282612d27565b60018201805460ff19169055612db4600283016000612d61565b506003810180546001600160a01b031916905560006004820155600501612d86565b5b80821115612cd55760008155600101612dd7565b80356001600160a01b0381168114611dcd57600080fd5b600060208284031215612e1457600080fd5b612e1d82612deb565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e6357612e63612e24565b604052919050565b600082601f830112612e7c57600080fd5b813567ffffffffffffffff811115612e9657612e96612e24565b612ea9601f8201601f1916602001612e3a565b818152846020838601011115612ebe57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611dcd57600080fd5b600082601f830112612efd57600080fd5b8135602067ffffffffffffffff821115612f1957612f19612e24565b8160051b612f28828201612e3a565b9283528481018201928281019087851115612f4257600080fd5b83870192505b84831015612f6857612f5983612edb565b82529183019190830190612f48565b979650505050505050565b60008060008060808587031215612f8957600080fd5b843567ffffffffffffffff80821115612fa157600080fd5b612fad88838901612e6b565b9550612fbb60208801612deb565b9450612fc960408801612edb565b93506060870135915080821115612fdf57600080fd5b50612fec87828801612eec565b91505092959194509250565b6000806040838503121561300b57600080fd5b61301483612deb565b915061302260208401612edb565b90509250929050565b60006020828403121561303d57600080fd5b5035919050565b60006020828403121561305657600080fd5b612e1d82612edb565b60008060006060848603121561307457600080fd5b833567ffffffffffffffff8082111561308c57600080fd5b61309887838801612e6b565b94506130a660208701612edb565b935060408601359150808211156130bc57600080fd5b506130c986828701612eec565b9150509250925092565b60005b838110156130ee5781810151838201526020016130d6565b50506000910152565b6000815180845261310f8160208601602086016130d3565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561315657815160ff1687529582019590820190600101613137565b509495945050505050565b6000815160a0845261317660a08501826130f7565b905060ff60208401511660208501526040830151848203604086015261319c8282613123565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561321a57603f19888603018452613208858351613161565b945092850192908501906001016131ec565b5092979650505050505050565b8015158114611b8457600080fd5b60006020828403121561324757600080fd5b8135612e1d81613227565b60808152600061326560808301876130f7565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612e1d6020830184613161565b600080600080608085870312156132b657600080fd5b6132bf85612deb565b93506132cd60208601612edb565b92506132db60408601612deb565b91506132e960608601612edb565b905092959194509250565b60006020828403121561330657600080fd5b813567ffffffffffffffff81111561331d57600080fd5b6109f084828501612e6b565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016133675761336761333f565b5060010190565b600181811c9082168061338257607f821691505b6020821081036133a257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156133d657600080fd5b8151612e1d81613227565b600060ff821660ff81036133f7576133f761333f565b60010192915050565b600082516134128184602087016130d3565b9190910192915050565b600080835461342a8161336e565b60018281168015613442576001811461345757613486565b60ff1984168752821515830287019450613486565b8760005260208060002060005b8581101561347d5781548a820152908401908201613464565b50505082870194505b50929695505050505050565b818103818111156107c6576107c661333f565b808201808211156107c6576107c661333f565b601f821115610a0457600081815260208120601f850160051c810160208610156134df5750805b601f850160051c820191505b818110156134fe578281556001016134eb565b505050505050565b815167ffffffffffffffff81111561352057613520612e24565b6135348161352e845461336e565b846134b8565b602080601f83116001811461356957600084156135515750858301515b600019600386901b1c1916600185901b1785556134fe565b600085815260208120601f198616915b8281101561359857888601518255948401946001909101908401613579565b50858210156135b65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036135d1575050565b6135db825461336e565b67ffffffffffffffff8111156135f3576135f3612e24565b6136018161352e845461336e565b6000601f821160018114613635576000831561361d5750848201545b600019600385901b1c1916600184901b178455610658565b600085815260209020601f19841690600086815260209020845b8381101561366f578286015482556001958601959091019060200161364f565b50858310156135b65793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610d0390830184613123565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c9307e3504111af512d0584b2cbf5f5a632cbc4d88ead7fd05bc3a6458988ba764736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102325760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b3659614610515578063e359a0a114610528578063e5e5f7321461053b578063f2fde38b1461054e578063fc9e80fc1461056157600080fd5b8063ce7483d5146104a4578063cf86f8e5146104c7578063d250f03a146104cf578063d827a8f4146104e2578063e02f97231461050257600080fd5b806390222aa1116100ff57806390222aa11461044e5780639618b333146104565780639f91506914610469578063ba79b77b14610489578063c08029e71461049157600080fd5b80637594a6ed146103d35780638400a189146103f35780638a72ea6a146104065780638da5cb5b1461042957600080fd5b80633a027073116101be5780635a919aeb116101825780635a919aeb146103905780635bbfbfd614610399578063619980dc146103ac5780637065cb48146103b8578063715018a6146103cb57600080fd5b80633a0270731461032f5780633e293e16146103425780633ee992ee146103555780634c7a7ad31461036a57806358e57ebb1461037d57600080fd5b806329d3f60b1161020557806329d3f60b146102985780632edb5fcf146102d55780632f54bf6e146102e8578063322fba27146103145780633808dfe71461031c57600080fd5b80630cdb311714610237578063173825d91461025d57806317a1fed91461027257806319ab453c14610285575b600080fd5b61024a610245366004612e02565b610574565b6040519081526020015b60405180910390f35b61027061026b366004612e02565b6105b9565b005b610270610280366004612f73565b61065f565b610270610293366004612e02565b6106a1565b6102c56102a6366004612e02565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610254565b6102c56102e3366004612ff8565b61070c565b6102c56102f6366004612e02565b6001600160a01b031660009081526002602052604090205460ff1690565b6102706107cc565b61027061032a36600461302b565b61097b565b6102c561033d366004613044565b6109b0565b61027061035036600461305f565b6109f8565b61035d610a09565b60405161025491906131c5565b610270610378366004612e02565b610b9d565b61027061038b366004613235565b610c48565b61024a600d5481565b6102c56103a7366004612ff8565b610c8b565b600d54600454116102c5565b6102706103c6366004612e02565b610d0c565b610270610d83565b61024a6103e1366004612e02565b600b6020526000908152604090205481565b61035d610401366004613044565b610d97565b61041961041436600461302b565b610f3b565b6040516102549493929190613252565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610254565b60045461024a565b61035d610464366004612e02565b611013565b61047c610477366004612ff8565b6111d6565b604051610254919061328d565b60055461024a565b61027061049f3660046132a0565b6113e6565b61024a6104b2366004613044565b60ff166000908152600c602052604090205490565b600d5461024a565b600154610436906001600160a01b031681565b61024a6104f0366004613044565b600c6020526000908152604090205481565b61027061051036600461302b565b61170a565b61047c6105233660046132f4565b61173f565b61047c61053636600461302b565b611948565b61027061054936600461302b565b611ad4565b61027061055c366004612e02565b611b09565b6102c561056f366004612e02565b611b87565b60006001600160a01b03821661059d5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105e957604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064457600080fd5b505af4158015610658573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661068f57604051634289c49360e01b815260040160405180910390fd5b61069b84848484611dd2565b50505050565b6106a9612305565b6001600160a01b0381166106d05760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff19169091179055565b60006001600160a01b0383166107355760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b60205260409020548110156107c0576001600160a01b0384166000908152600960205260409020805460ff851691908390811061078857610788613329565b600091825260209091206001600590920201015460ff16036107ae5760019150506107c6565b806107b881613355565b915050610738565b50600090505b92915050565b3360009081526002602052604090205460ff166107fc57604051634289c49360e01b815260040160405180910390fd5b60005b60085481101561093c57600960006008838154811061082057610820613329565b60009182526020808320600360059093020191909101546001600160a01b03168352820192909252604001812061085691612bd7565b6000600b60006008848154811061086f5761086f613329565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a929190849081106108b9576108b9613329565b600091825260208083206001600590930201919091015460ff16835282019290925260400181206108e991612bd7565b6000600c60006008848154811061090257610902613329565b600091825260208083206001600590930201919091015460ff1683528201929092526040019020558061093481613355565b9150506107ff565b506000600d81905561095090600890612bd7565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff166109ab57604051634289c49360e01b815260040160405180910390fd5b600555565b6000806109bd33846111d6565b60608101519091506001600160a01b031633146109dd5750600092915050565b60006109f033858460000151600061235f565b949350505050565b610a0483338484611dd2565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b9457838290600052602060002090600502016040518060a0016040529081600082018054610a609061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8c9061336e565b8015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610b5957602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610b2a5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610a2d565b50505050905090565b3360009081526002602052604090205460ff16610bcd57604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610bf45760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610c7857604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610cbb57604051634289c49360e01b815260040160405180910390fd5b6000610cc784846111d6565b9050836001600160a01b031681606001516001600160a01b031614610cf05760009150506107c6565b6000610d0385858460000151600061235f565b95945050505050565b3360009081526002602052604090205460ff16610d3c57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062c565b610d8b612305565b610d9560006124d6565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610f3057838290600052602060002090600502016040518060a0016040529081600082018054610dfc9061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e289061336e565b8015610e755780601f10610e4a57610100808354040283529160200191610e75565b820191906000526020600020905b815481529060010190602001808311610e5857829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ef557602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610ec65790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610dc9565b505050509050919050565b60088181548110610f4b57600080fd5b9060005260206000209060050201600091509050806000018054610f6e9061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9a9061336e565b8015610fe75780601f10610fbc57610100808354040283529160200191610fe7565b820191906000526020600020905b815481529060010190602001808311610fca57829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b03821661103c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610f3057838290600052602060002090600502016040518060a00160405290816000820180546110a29061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546110ce9061336e565b801561111b5780601f106110f05761010080835404028352916020019161111b565b820191906000526020600020905b8154815290600101906020018083116110fe57829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561119b57602002820191906000526020600020906000905b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161116c5790505b505050918352505060038201546001600160a01b0316602080830191909152600490920154604090910152908252600192909201910161106f565b6111de612bf8565b6001600160a01b0383166112055760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b818110156113dd578460ff1683828154811061124957611249613329565b600091825260209091206001600590920201015460ff16036113cb5782818154811061127757611277613329565b90600052602060002090600502016040518060a00160405290816000820180546112a09061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546112cc9061336e565b80156113195780601f106112ee57610100808354040283529160200191611319565b820191906000526020600020905b8154815290600101906020018083116112fc57829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561139957602002820191906000526020600020906000905b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161136a5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015293506107c692505050565b806113d581613355565b91505061122b565b50610d03612526565b60006113f283836111d6565b9050826001600160a01b031681606001516001600160a01b03161461142a57604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114d05760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c89061146a90879089906004016133a8565b6020604051808303816000875af1158015611489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ad91906133c4565b156114cb57604051631177b29560e11b815260040160405180910390fd5b611545565b6000805b82518160ff161015611524578660ff16838260ff16815181106114f9576114f9613329565b602002602001015160ff16036115125760019150611524565b8061151c816133e1565b9150506114d4565b508061154357604051630eefa23760e11b815260040160405180910390fd5b505b600061155885858560000151600161235f565b90508061157857604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b1580156115d857600080fd5b505af11580156115ec573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611622908a9088906004016133a8565b6020604051808303816000875af1158015611641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166591906133c4565b15806116e3575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c89061169e9088908a906004016133a8565b6020604051808303816000875af11580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e191906133c4565b155b156117015760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff1661173a57604051634289c49360e01b815260040160405180910390fd5b600655565b611747612bf8565b60005b60085481101561193f57826040516020016117659190613400565b604051602081830303815290604052805190602001206008828154811061178e5761178e613329565b90600052602060002090600502016000016040516020016117af919061341c565b604051602081830303815290604052805190602001200361192d57600881815481106117dd576117dd613329565b90600052602060002090600502016040518060a00160405290816000820180546118069061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546118329061336e565b801561187f5780601f106118545761010080835404028352916020019161187f565b820191906000526020600020905b81548152906001019060200180831161186257829003601f168201915b5050509183525050600182015460ff1660208083019190915260028301805460408051828502810185018252828152940193928301828280156118ff57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118d05790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b8061193781613355565b91505061174a565b506107c6612526565b611950612bf8565b600854821061197257604051635129cab160e11b815260040160405180910390fd5b6008828154811061198557611985613329565b90600052602060002090600502016040518060a00160405290816000820180546119ae9061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546119da9061336e565b8015611a275780601f106119fc57610100808354040283529160200191611a27565b820191906000526020600020905b815481529060010190602001808311611a0a57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611aa757602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611a785790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611b0457604051634289c49360e01b815260040160405180910390fd5b600455565b611b11612305565b6001600160a01b038116611b7b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b611b84816124d6565b50565b6001546000906001600160a01b03163314611bb55760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611bdc5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611d55576000838281548110611c1e57611c1e613329565b90600052602060002090600502016000018054611c3a9061336e565b80601f0160208091040260200160405190810160405280929190818152602001828054611c669061336e565b8015611cb35780601f10611c8857610100808354040283529160200191611cb3565b820191906000526020600020905b815481529060010190602001808311611c9657829003601f168201915b505050505090506000848381548110611cce57611cce613329565b600091825260209091206001600590920201015460ff169050611cf287828461256f565b611cfb82612823565b5060ff81166000908152600c60205260408120805460019290611d1f908490613492565b925050819055506001600d6000828254611d399190613492565b9250508190555050508080611d4d90613355565b915050611c02565b506001600160a01b0384166000908152600960205260408120611d7791612bd7565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611dfb5760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611e355760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611e595760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611e8c90879087906004016133a8565b6020604051808303816000875af1158015611eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecf91906133c4565b905080611eef5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611f52578360ff16838260ff1681518110611f1757611f17613329565b602002602001015160ff1603611f4057604051630d1ecf1760e11b815260040160405180910390fd5b80611f4a816133e1565b915050611ef2565b506000611f5f85856111d6565b60608101519091506001600160a01b031615611f8e5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611fb79084906134a5565b909155505060ff84166000908152600c60205260408120805460019290611fdf9084906134a5565b925050819055506001600d6000828254611ff991906134a5565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3019081906120759082613506565b5060208281015160018301805460ff191660ff909216919091179055604083015180516120a89260028501920190612c33565b5060608201516003820180546001600160a01b0319166001600160a01b0392831617905560809092015160049091015585166000908152600960205260409020600880546120f890600190613492565b8154811061210857612108613329565b600091825260208083208454600181018655948452922060059182029092019202018061213583826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546121649284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546121b690600190613492565b815481106121c6576121c6613329565b60009182526020808320845460018101865594845292206005918202909201920201806121f383826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546122229284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156122c257600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac9061228f90889088906004016133a8565b600060405180830381600087803b1580156122a957600080fd5b505af11580156122bd573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc58585856040516122f593929190613699565b60405180910390a1505050505050565b6000546001600160a01b03163314610d955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611b72565b60006001600160a01b0385166123885760405163e6c4247b60e01b815260040160405180910390fd5b612393858585612aa0565b61239e85858561256f565b6123a783612823565b506001600160a01b0385166000908152600b602052604081208054600192906123d1908490613492565b909155505060ff84166000908152600c602052604081208054600192906123f9908490613492565b925050819055506001600d60008282546124139190613492565b909155505060075460ff168015612428575081155b1561249257600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061245f90889088906004016133a8565b600060405180830381600087803b15801561247957600080fd5b505af115801561248d573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516124c39291906133a8565b60405180910390a1506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61252e612bf8565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b8154811015610658576126418282815481106125a1576125a1613329565b906000526020600020906005020160000180546125bd9061336e565b80601f01602080910402602001604051908101604052809291908181526020018280546125e99061336e565b80156126365780601f1061260b57610100808354040283529160200191612636565b820191906000526020600020905b81548152906001019060200180831161261957829003601f168201915b505050505084612b7e565b1561281157846001600160a01b031682828154811061266257612662613329565b60009182526020909120600360059092020101546001600160a01b03161415806126b757508360ff1682828154811061269d5761269d613329565b600091825260209091206001600590920201015460ff1614155b156126d5576040516357aeb86360e11b815260040160405180910390fd5b81546126e390600190613492565b8110156127a557815482906126fa90600190613492565b8154811061270a5761270a613329565b906000526020600020906005020182828154811061272a5761272a613329565b600091825260209091206005909102018061274583826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546127749284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806127b5576127b56136c6565b600082815260208120600019909201916005830201906127d58282612d27565b60018201805460ff191690556127ef600283016000612d61565b506003810180546001600160a01b031916905560006004909101559055610658565b8061281b81613355565b915050612583565b600080805b600854811015612a9957600854811080156128f457506128f46008828154811061285457612854613329565b906000526020600020906005020160000180546128709061336e565b80601f016020809104026020016040519081016040528092919081815260200182805461289c9061336e565b80156128e95780601f106128be576101008083540402835291602001916128e9565b820191906000526020600020905b8154815290600101906020018083116128cc57829003601f168201915b505050505085612b7e565b15612a87576008818154811061290c5761290c613329565b600091825260208220600590910201906129268282612d27565b60018201805460ff19169055612940600283016000612d61565b506003810180546001600160a01b031916905560006004909101556008805461296b90600190613492565b8154811061297b5761297b613329565b90600052602060002090600502016008828154811061299c5761299c613329565b60009182526020909120600590910201806129b783826135c6565b50600182810154908201805460ff191660ff909216919091179055600280830180546129e69284019190612cd9565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612a2757612a276136c6565b60008281526020812060001990920191600583020190612a478282612d27565b60018201805460ff19169055612a61600283016000612d61565b506003810180546001600160a01b03191690556000600490910155905560019150612a99565b80612a9181613355565b915050612828565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561065857612ad88282815481106125a1576125a1613329565b15612b6c57846001600160a01b0316828281548110612af957612af9613329565b60009182526020909120600360059092020101546001600160a01b0316141580612b4e57508360ff16828281548110612b3457612b34613329565b600091825260209091206001600590920201015460ff1614155b156126d55760405163b7f2d83360e01b815260040160405180910390fd5b80612b7681613355565b915050612aba565b600081604051602001612b919190613400565b6040516020818303038152906040528051906020012083604051602001612bb89190613400565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611b849190612d86565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612cc95791602002820160005b83821115612c9a57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612c5c565b8015612cc75782816101000a81549060ff0219169055600101602081600001049283019260010302612c9a565b505b50612cd5929150612dd6565b5090565b82805482825590600052602060002090601f01602090048101928215612cc957600052602060002091601f016020900482015b82811115612cc9578254825591600101919060010190612d0c565b508054612d339061336e565b6000825580601f10612d43575050565b601f016020900490600052602060002090810190611b849190612dd6565b50805460008255601f016020900490600052602060002090810190611b849190612dd6565b80821115612cd5576000612d9a8282612d27565b60018201805460ff19169055612db4600283016000612d61565b506003810180546001600160a01b031916905560006004820155600501612d86565b5b80821115612cd55760008155600101612dd7565b80356001600160a01b0381168114611dcd57600080fd5b600060208284031215612e1457600080fd5b612e1d82612deb565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e6357612e63612e24565b604052919050565b600082601f830112612e7c57600080fd5b813567ffffffffffffffff811115612e9657612e96612e24565b612ea9601f8201601f1916602001612e3a565b818152846020838601011115612ebe57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611dcd57600080fd5b600082601f830112612efd57600080fd5b8135602067ffffffffffffffff821115612f1957612f19612e24565b8160051b612f28828201612e3a565b9283528481018201928281019087851115612f4257600080fd5b83870192505b84831015612f6857612f5983612edb565b82529183019190830190612f48565b979650505050505050565b60008060008060808587031215612f8957600080fd5b843567ffffffffffffffff80821115612fa157600080fd5b612fad88838901612e6b565b9550612fbb60208801612deb565b9450612fc960408801612edb565b93506060870135915080821115612fdf57600080fd5b50612fec87828801612eec565b91505092959194509250565b6000806040838503121561300b57600080fd5b61301483612deb565b915061302260208401612edb565b90509250929050565b60006020828403121561303d57600080fd5b5035919050565b60006020828403121561305657600080fd5b612e1d82612edb565b60008060006060848603121561307457600080fd5b833567ffffffffffffffff8082111561308c57600080fd5b61309887838801612e6b565b94506130a660208701612edb565b935060408601359150808211156130bc57600080fd5b506130c986828701612eec565b9150509250925092565b60005b838110156130ee5781810151838201526020016130d6565b50506000910152565b6000815180845261310f8160208601602086016130d3565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561315657815160ff1687529582019590820190600101613137565b509495945050505050565b6000815160a0845261317660a08501826130f7565b905060ff60208401511660208501526040830151848203604086015261319c8282613123565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561321a57603f19888603018452613208858351613161565b945092850192908501906001016131ec565b5092979650505050505050565b8015158114611b8457600080fd5b60006020828403121561324757600080fd5b8135612e1d81613227565b60808152600061326560808301876130f7565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612e1d6020830184613161565b600080600080608085870312156132b657600080fd5b6132bf85612deb565b93506132cd60208601612edb565b92506132db60408601612deb565b91506132e960608601612edb565b905092959194509250565b60006020828403121561330657600080fd5b813567ffffffffffffffff81111561331d57600080fd5b6109f084828501612e6b565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016133675761336761333f565b5060010190565b600181811c9082168061338257607f821691505b6020821081036133a257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156133d657600080fd5b8151612e1d81613227565b600060ff821660ff81036133f7576133f761333f565b60010192915050565b600082516134128184602087016130d3565b9190910192915050565b600080835461342a8161336e565b60018281168015613442576001811461345757613486565b60ff1984168752821515830287019450613486565b8760005260208060002060005b8581101561347d5781548a820152908401908201613464565b50505082870194505b50929695505050505050565b818103818111156107c6576107c661333f565b808201808211156107c6576107c661333f565b601f821115610a0457600081815260208120601f850160051c810160208610156134df5750805b601f850160051c820191505b818110156134fe578281556001016134eb565b505050505050565b815167ffffffffffffffff81111561352057613520612e24565b6135348161352e845461336e565b846134b8565b602080601f83116001811461356957600084156135515750858301515b600019600386901b1c1916600185901b1785556134fe565b600085815260208120601f198616915b8281101561359857888601518255948401946001909101908401613579565b50858210156135b65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036135d1575050565b6135db825461336e565b67ffffffffffffffff8111156135f3576135f3612e24565b6136018161352e845461336e565b6000601f821160018114613635576000831561361d5750848201545b600019600385901b1c1916600184901b178455610658565b600085815260209020601f19841690600086815260209020845b8381101561366f578286015482556001958601959091019060200161364f565b50858310156135b65793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610d0390830184613123565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c9307e3504111af512d0584b2cbf5f5a632cbc4d88ead7fd05bc3a6458988ba764736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1706 + }, + { + "length": 20, + "start": 3581 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1550 + }, + { + "length": 20, + "start": 3425 + } + ] + } + } +} diff --git a/src/context/abis/GammaPacks.v3.sol/IGammaCardsContract.json b/src/context/abis/gamma/GammaPacks.v3.sol/IGammaCardsContract.json similarity index 100% rename from src/context/abis/GammaPacks.v3.sol/IGammaCardsContract.json rename to src/context/abis/gamma/GammaPacks.v3.sol/IGammaCardsContract.json diff --git a/src/context/abis/GammaPacks.v3.sol/IgammaTicketsContract.json b/src/context/abis/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json similarity index 100% rename from src/context/abis/GammaPacks.v3.sol/IgammaTicketsContract.json rename to src/context/abis/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json diff --git a/src/context/abis/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json b/src/context/abis/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json new file mode 100644 index 00000000..369c561f --- /dev/null +++ b/src/context/abis/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json @@ -0,0 +1,855 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaPacksV3", + "sourceName": "contracts/gamma/GammaPacks.v3.sol", + "abi": [ + { + "inputs": [], + "name": "InsufficientAllowance", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientBalance", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientPacksAvailable", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidNumberOfPacks", + "type": "error" + }, + { + "inputs": [], + "name": "NotGammaCardsContract", + "type": "error" + }, + { + "inputs": [], + "name": "NotYourPack", + "type": "error" + }, + { + "inputs": [], + "name": "OwnlyOwners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "TransferPrizeError", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "balanceReceiver", + "type": "address" + } + ], + "name": "NewBalanceReceiver", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newCardsContract", + "type": "address" + } + ], + "name": "NewGammaCardsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newGammaTicketContract", + "type": "address" + } + ], + "name": "NewGammaTicketsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newPrice", + "type": "uint256" + } + ], + "name": "NewPrice", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "PackOpened", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "PackPurchased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "PackTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + } + ], + "name": "PacksPurchased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256[]", + "name": "tokenId", + "type": "uint256[]" + } + ], + "name": "PacksTransfered", + "type": "event" + }, + { + "inputs": [], + "name": "DAI_TOKEN", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TOTALSUPPLY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "buyPack", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "buyPackByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "buyPacks", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "buyPacksByUser", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newBalanceReceiver", + "type": "address" + } + ], + "name": "changeBalanceReceiver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_newPrice", + "type": "uint256" + } + ], + "name": "changePrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_transferDai", + "type": "bool" + } + ], + "name": "changeTransferDaiFlag", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaCardsContract", + "outputs": [ + { + "internalType": "contract IGammaCardsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaTicketsContract", + "outputs": [ + { + "internalType": "contract IgammaTicketsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "getAmountRequiredToBuyPacks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getPackOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "getPacksByUser", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "getPrizeAmountToBuyPacks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "getPrizeNoFAccountAmountToBuyPacks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_daiTokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_balanceReceiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numberOfPacks", + "type": "uint256" + } + ], + "name": "meetQuantityConditionsToBuy", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "openPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "openPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "s_balanceReceiver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "s_packPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "s_packs", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "s_packsByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenIds", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + } + ], + "name": "setGammaCardsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaTicketsContract", + "type": "address" + } + ], + "name": "setGammaTicketsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "testOpenPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "testOpenPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferPack", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + } + ], + "name": "transferPacks", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526710a741a46278000060075560006008556009805460ff1916600117905534801561002e57600080fd5b506100383361003d565b61008d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611bde8061009c6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104d1578063ddb975e8146104e4578063e0f78307146104f7578063e606df871461050a578063f2fde38b1461051d57600080fd5b8063d250f03a1461046f578063d3e6a7ad14610482578063d611713e146104ab578063d6a4c3e4146104be57600080fd5b8063a2b40d19116100f4578063a2b40d191461041b578063ab4bdbc81461042e578063b48ce65314610441578063c34e8af414610454578063c37b9bcd1461046757600080fd5b806394a08c69146103d9578063967ed63d146103e257806397f8b3d3146103f557806399e5f8961461040857600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610387578063715018a61461039a57806380f2540b146103a25780638da5cb5b146103b55780638fd5baf7146103c657600080fd5b80634c7a7ad31461033857806362e218781461034b578063656bd0ad1461036b5780636adbaf751461037457600080fd5b8063173825d9116101ef578063173825d91461029a5780632f54bf6e146102ad57806339e8d3ec146102e95780633cd626fd146102fc5780633f6ecd481461032557600080fd5b806301321c4d1461022157806306552ff3146102475780630c3e5c001461025c57806314cca36a1461026f575b600080fd5b61023461022f3660046117da565b610530565b6040519081526020015b60405180910390f35b61025a61025536600461180a565b61055e565b005b61025a61026a36600461190f565b61061c565b600254610282906001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b61025a6102a836600461195d565b610698565b6102d96102bb36600461195d565b6001600160a01b031660009081526003602052604090205460ff1690565b604051901515815260200161023e565b61025a6102f7366004611978565b61073e565b61028261030a3660046117da565b600a602052600090815260409020546001600160a01b031681565b6102346103333660046117da565b61077c565b61025a61034636600461195d565b6107ab565b61035e61035936600461199b565b61084c565b60405161023e91906119c5565b61023460075481565b61035e6103823660046117da565b610889565b61025a61039536600461195d565b610895565b61025a61090c565b61025a6103b0366004611978565b610920565b6000546001600160a01b0316610282565b61035e6103d436600461195d565b61094b565b61023461c35081565b6102346103f036600461195d565b6109b7565b61025a61040336600461190f565b6109f5565b61025a610416366004611a17565b610a67565b61025a6104293660046117da565b610aaa565b61025a61043c366004611a34565b610b6b565b61023461044f3660046117da565b610c02565b600654610282906001600160a01b031681565b610234610c2f565b600154610282906001600160a01b031681565b6102826104903660046117da565b6000908152600a60205260409020546001600160a01b031690565b61025a6104b936600461199b565b610c3f565b6102d96104cc3660046117da565b610c49565b6102346104df36600461199b565b610c84565b61025a6104f236600461195d565b610cb5565b61025a61050536600461195d565b610d56565b600554610282906001600160a01b031681565b61025a61052b36600461195d565b610df7565b60008061053c8361077c565b9050808360075461054d9190611a98565b6105579190611aaf565b9392505050565b610566610e75565b6001600160a01b038316158061058357506001600160a01b038216155b8061059557506001600160a01b038116155b156105b35760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff19169091179055565b3360009081526003602052604090205460ff1661064c57604051631833a1e960e31b815260040160405180910390fd5b60005b825181101561069357600083828151811061066c5761066c611ac2565b602002602001015190506106808184610ecf565b508061068b81611ad8565b91505061064f565b505050565b3360009081526003602052604090205460ff166106c857604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561072357600080fd5b505af4158015610737573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661076e57604051631833a1e960e31b815260040160405180910390fd5b6107788282610ecf565b5050565b600081600660075461078e9190611af1565b60075461079b9190611aaf565b6107a59190611a98565b92915050565b3360009081526003602052604090205460ff166107db57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166108025760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff1661087f57604051631833a1e960e31b815260040160405180910390fd5b6105578383610f2c565b60606107a53383610f2c565b3360009081526003602052604090205460ff166108c557604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161070b565b610914610e75565b61091e6000611192565b565b6001546001600160a01b0316331461076e57604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156109ab57602002820191906000526020600020905b815481526020019060010190808311610997575b50505050509050919050565b3360009081526003602052604081205460ff166109e757604051631833a1e960e31b815260040160405180910390fd5b6107a5826111e2565b919050565b6001546001600160a01b03163314610a2057604051630f8d39bd60e41b815260040160405180910390fd5b60005b8251811015610693576000838281518110610a4057610a40611ac2565b60200260200101519050610a548184610ecf565b5080610a5f81611ad8565b915050610a23565b3360009081526003602052604090205460ff16610a9757604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff16610ada57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610b2557600080fd5b505af1158015610b39573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610bb2576000828281518110610b8b57610b8b611ac2565b60200260200101519050610b9f8482611215565b5080610baa81611ad8565b915050610b6e565b5080604051610bc19190611b13565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610c0e8361077c565b90506000610c1b84610530565b9050610c278183611b49565b949350505050565b6000610c3a336111e2565b905090565b6107788282611215565b600081600003610c6c57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610c7d9190611b49565b1092915050565b600b6020528160005260406000208181548110610ca057600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610ce557604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610d0c5760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610d8657604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610dad5760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610dff610e75565b6001600160a01b038116610e695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610e7281611192565b50565b6000546001600160a01b0316331461091e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e60565b610ed98282611301565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610f555760405163e6c4247b60e01b815260040160405180910390fd5b811580610f625750606482115b15610f8057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610f919190611b49565b10610faf57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610fca57610fca61185e565b604051908082528060200260200182016040528015610ff3578160200160208202803683370190505b5060085490915060005b848110156110a35761c350821061102757604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b8252822080546001810182559083529120018290558251829084908390811061108357611083611ac2565b60209081029190910101528161109881611ad8565b925050600101610ffd565b50600881905560006110b58686611440565b9050806110e057604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610e60565b8460010361113e57826000815181106110fb576110fb611ac2565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611188565b8260405161114c9190611b13565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806111f0836001610f2c565b90508060008151811061120557611205611ac2565b6020026020010151915050919050565b6001600160a01b03821661123c5760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461127357604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384161790556112a48133611301565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b8181101561143a576001600160a01b0383166000908152600b6020526040902080548591908390811061135157611351611ac2565b906000526020600020015403611428576001600160a01b0383166000908152600b60205260409020805461138790600190611aaf565b8154811061139757611397611ac2565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106113d8576113d8611ac2565b60009182526020808320909101929092556001600160a01b0385168152600b9091526040902080548061140d5761140d611b5c565b6001900381819060005260206000200160009055905561143a565b8061143281611ad8565b91505061131c565b50505050565b60008061144c8361077c565b9050600061145984610530565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505060095460ff161591506117cf9050576005546001600160a01b03166114db8284611b49565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190611b72565b101561156a576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa1580156115b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d79190611b72565b108061164d57506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b9190611b72565b105b1561166b57604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af11580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190611b8b565b90508061171b57600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610e60565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190611b8b565b9050806117cb57600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610e60565b5050505b506001949350505050565b6000602082840312156117ec57600080fd5b5035919050565b80356001600160a01b03811681146109f057600080fd5b6000806000806080858703121561182057600080fd5b611829856117f3565b9350611837602086016117f3565b9250611845604086016117f3565b9150611853606086016117f3565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261188557600080fd5b8135602067ffffffffffffffff808311156118a2576118a261185e565b8260051b604051601f19603f830116810181811084821117156118c7576118c761185e565b6040529384528581018301938381019250878511156118e557600080fd5b83870191505b84821015611904578135835291830191908301906118eb565b979650505050505050565b6000806040838503121561192257600080fd5b823567ffffffffffffffff81111561193957600080fd5b61194585828601611874565b925050611954602084016117f3565b90509250929050565b60006020828403121561196f57600080fd5b610557826117f3565b6000806040838503121561198b57600080fd5b82359150611954602084016117f3565b600080604083850312156119ae57600080fd5b6119b7836117f3565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156119fd578351835292840192918401916001016119e1565b50909695505050505050565b8015158114610e7257600080fd5b600060208284031215611a2957600080fd5b813561055781611a09565b60008060408385031215611a4757600080fd5b611a50836117f3565b9150602083013567ffffffffffffffff811115611a6c57600080fd5b611a7885828601611874565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a5576107a5611a82565b818103818111156107a5576107a5611a82565b634e487b7160e01b600052603260045260246000fd5b600060018201611aea57611aea611a82565b5060010190565b600082611b0e57634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b83811015611b3d57815185529382019390820190600101611b21565b50929695505050505050565b808201808211156107a5576107a5611a82565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611b8457600080fd5b5051919050565b600060208284031215611b9d57600080fd5b815161055781611a0956fea2646970667358221220fd54fd5d99679dd24123986c2b3fe3d53c16d5b0be561d77ba62c9b5e4a6b5b064736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061021c5760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104d1578063ddb975e8146104e4578063e0f78307146104f7578063e606df871461050a578063f2fde38b1461051d57600080fd5b8063d250f03a1461046f578063d3e6a7ad14610482578063d611713e146104ab578063d6a4c3e4146104be57600080fd5b8063a2b40d19116100f4578063a2b40d191461041b578063ab4bdbc81461042e578063b48ce65314610441578063c34e8af414610454578063c37b9bcd1461046757600080fd5b806394a08c69146103d9578063967ed63d146103e257806397f8b3d3146103f557806399e5f8961461040857600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610387578063715018a61461039a57806380f2540b146103a25780638da5cb5b146103b55780638fd5baf7146103c657600080fd5b80634c7a7ad31461033857806362e218781461034b578063656bd0ad1461036b5780636adbaf751461037457600080fd5b8063173825d9116101ef578063173825d91461029a5780632f54bf6e146102ad57806339e8d3ec146102e95780633cd626fd146102fc5780633f6ecd481461032557600080fd5b806301321c4d1461022157806306552ff3146102475780630c3e5c001461025c57806314cca36a1461026f575b600080fd5b61023461022f3660046117da565b610530565b6040519081526020015b60405180910390f35b61025a61025536600461180a565b61055e565b005b61025a61026a36600461190f565b61061c565b600254610282906001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b61025a6102a836600461195d565b610698565b6102d96102bb36600461195d565b6001600160a01b031660009081526003602052604090205460ff1690565b604051901515815260200161023e565b61025a6102f7366004611978565b61073e565b61028261030a3660046117da565b600a602052600090815260409020546001600160a01b031681565b6102346103333660046117da565b61077c565b61025a61034636600461195d565b6107ab565b61035e61035936600461199b565b61084c565b60405161023e91906119c5565b61023460075481565b61035e6103823660046117da565b610889565b61025a61039536600461195d565b610895565b61025a61090c565b61025a6103b0366004611978565b610920565b6000546001600160a01b0316610282565b61035e6103d436600461195d565b61094b565b61023461c35081565b6102346103f036600461195d565b6109b7565b61025a61040336600461190f565b6109f5565b61025a610416366004611a17565b610a67565b61025a6104293660046117da565b610aaa565b61025a61043c366004611a34565b610b6b565b61023461044f3660046117da565b610c02565b600654610282906001600160a01b031681565b610234610c2f565b600154610282906001600160a01b031681565b6102826104903660046117da565b6000908152600a60205260409020546001600160a01b031690565b61025a6104b936600461199b565b610c3f565b6102d96104cc3660046117da565b610c49565b6102346104df36600461199b565b610c84565b61025a6104f236600461195d565b610cb5565b61025a61050536600461195d565b610d56565b600554610282906001600160a01b031681565b61025a61052b36600461195d565b610df7565b60008061053c8361077c565b9050808360075461054d9190611a98565b6105579190611aaf565b9392505050565b610566610e75565b6001600160a01b038316158061058357506001600160a01b038216155b8061059557506001600160a01b038116155b156105b35760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff19169091179055565b3360009081526003602052604090205460ff1661064c57604051631833a1e960e31b815260040160405180910390fd5b60005b825181101561069357600083828151811061066c5761066c611ac2565b602002602001015190506106808184610ecf565b508061068b81611ad8565b91505061064f565b505050565b3360009081526003602052604090205460ff166106c857604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561072357600080fd5b505af4158015610737573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661076e57604051631833a1e960e31b815260040160405180910390fd5b6107788282610ecf565b5050565b600081600660075461078e9190611af1565b60075461079b9190611aaf565b6107a59190611a98565b92915050565b3360009081526003602052604090205460ff166107db57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166108025760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff1661087f57604051631833a1e960e31b815260040160405180910390fd5b6105578383610f2c565b60606107a53383610f2c565b3360009081526003602052604090205460ff166108c557604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161070b565b610914610e75565b61091e6000611192565b565b6001546001600160a01b0316331461076e57604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156109ab57602002820191906000526020600020905b815481526020019060010190808311610997575b50505050509050919050565b3360009081526003602052604081205460ff166109e757604051631833a1e960e31b815260040160405180910390fd5b6107a5826111e2565b919050565b6001546001600160a01b03163314610a2057604051630f8d39bd60e41b815260040160405180910390fd5b60005b8251811015610693576000838281518110610a4057610a40611ac2565b60200260200101519050610a548184610ecf565b5080610a5f81611ad8565b915050610a23565b3360009081526003602052604090205460ff16610a9757604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff16610ada57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610b2557600080fd5b505af1158015610b39573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610bb2576000828281518110610b8b57610b8b611ac2565b60200260200101519050610b9f8482611215565b5080610baa81611ad8565b915050610b6e565b5080604051610bc19190611b13565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610c0e8361077c565b90506000610c1b84610530565b9050610c278183611b49565b949350505050565b6000610c3a336111e2565b905090565b6107788282611215565b600081600003610c6c57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610c7d9190611b49565b1092915050565b600b6020528160005260406000208181548110610ca057600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610ce557604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610d0c5760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610d8657604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610dad5760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610dff610e75565b6001600160a01b038116610e695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610e7281611192565b50565b6000546001600160a01b0316331461091e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e60565b610ed98282611301565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610f555760405163e6c4247b60e01b815260040160405180910390fd5b811580610f625750606482115b15610f8057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610f919190611b49565b10610faf57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610fca57610fca61185e565b604051908082528060200260200182016040528015610ff3578160200160208202803683370190505b5060085490915060005b848110156110a35761c350821061102757604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b8252822080546001810182559083529120018290558251829084908390811061108357611083611ac2565b60209081029190910101528161109881611ad8565b925050600101610ffd565b50600881905560006110b58686611440565b9050806110e057604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610e60565b8460010361113e57826000815181106110fb576110fb611ac2565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611188565b8260405161114c9190611b13565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806111f0836001610f2c565b90508060008151811061120557611205611ac2565b6020026020010151915050919050565b6001600160a01b03821661123c5760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461127357604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384161790556112a48133611301565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b8181101561143a576001600160a01b0383166000908152600b6020526040902080548591908390811061135157611351611ac2565b906000526020600020015403611428576001600160a01b0383166000908152600b60205260409020805461138790600190611aaf565b8154811061139757611397611ac2565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106113d8576113d8611ac2565b60009182526020808320909101929092556001600160a01b0385168152600b9091526040902080548061140d5761140d611b5c565b6001900381819060005260206000200160009055905561143a565b8061143281611ad8565b91505061131c565b50505050565b60008061144c8361077c565b9050600061145984610530565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505060095460ff161591506117cf9050576005546001600160a01b03166114db8284611b49565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190611b72565b101561156a576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa1580156115b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d79190611b72565b108061164d57506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b9190611b72565b105b1561166b57604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af11580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190611b8b565b90508061171b57600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610e60565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c9190611b8b565b9050806117cb57600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610e60565b5050505b506001949350505050565b6000602082840312156117ec57600080fd5b5035919050565b80356001600160a01b03811681146109f057600080fd5b6000806000806080858703121561182057600080fd5b611829856117f3565b9350611837602086016117f3565b9250611845604086016117f3565b9150611853606086016117f3565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261188557600080fd5b8135602067ffffffffffffffff808311156118a2576118a261185e565b8260051b604051601f19603f830116810181811084821117156118c7576118c761185e565b6040529384528581018301938381019250878511156118e557600080fd5b83870191505b84821015611904578135835291830191908301906118eb565b979650505050505050565b6000806040838503121561192257600080fd5b823567ffffffffffffffff81111561193957600080fd5b61194585828601611874565b925050611954602084016117f3565b90509250929050565b60006020828403121561196f57600080fd5b610557826117f3565b6000806040838503121561198b57600080fd5b82359150611954602084016117f3565b600080604083850312156119ae57600080fd5b6119b7836117f3565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156119fd578351835292840192918401916001016119e1565b50909695505050505050565b8015158114610e7257600080fd5b600060208284031215611a2957600080fd5b813561055781611a09565b60008060408385031215611a4757600080fd5b611a50836117f3565b9150602083013567ffffffffffffffff811115611a6c57600080fd5b611a7885828601611874565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107a5576107a5611a82565b818103818111156107a5576107a5611a82565b634e487b7160e01b600052603260045260246000fd5b600060018201611aea57611aea611a82565b5060010190565b600082611b0e57634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b83811015611b3d57815185529382019390820190600101611b21565b50929695505050505050565b808201808211156107a5576107a5611a82565b634e487b7160e01b600052603160045260246000fd5b600060208284031215611b8457600080fd5b5051919050565b600060208284031215611b9d57600080fd5b815161055781611a0956fea2646970667358221220fd54fd5d99679dd24123986c2b3fe3d53c16d5b0be561d77ba62c9b5e4a6b5b064736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1929 + }, + { + "length": 20, + "start": 2438 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1773 + }, + { + "length": 20, + "start": 2282 + } + ] + } + } +} diff --git a/src/context/abis/GammaTickets.v1.sol/IGammaCardsContract.json b/src/context/abis/gamma/GammaTickets.v1.sol/IGammaCardsContract.json similarity index 100% rename from src/context/abis/GammaTickets.v1.sol/IGammaCardsContract.json rename to src/context/abis/gamma/GammaTickets.v1.sol/IGammaCardsContract.json diff --git a/src/context/abis/GammaTickets.v1.sol/IgammaPacksContract.json b/src/context/abis/gamma/GammaTickets.v1.sol/IgammaPacksContract.json similarity index 100% rename from src/context/abis/GammaTickets.v1.sol/IgammaPacksContract.json rename to src/context/abis/gamma/GammaTickets.v1.sol/IgammaPacksContract.json diff --git a/src/context/abis/gamma/GammaTickets.v1.sol/NofGammaTicketsV1.json b/src/context/abis/gamma/GammaTickets.v1.sol/NofGammaTicketsV1.json new file mode 100644 index 00000000..982b9a72 --- /dev/null +++ b/src/context/abis/gamma/GammaTickets.v1.sol/NofGammaTicketsV1.json @@ -0,0 +1,584 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "NofGammaTicketsV1", + "sourceName": "contracts/gamma/GammaTickets.v1.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidAddress", + "type": "error" + }, + { + "inputs": [], + "name": "NoTicketsAvailable", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyGammaContractsCanCall", + "type": "error" + }, + { + "inputs": [], + "name": "OnlyOwners", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "AllTicketsRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newGammaCardsContract", + "type": "address" + } + ], + "name": "NewGammaCardsContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newGammaPacksContract", + "type": "address" + } + ], + "name": "NewGammaPacksContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "TicketGenerated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "WinnerObtained", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newOwner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "deleteAllTickets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "gammaCardsContract", + "outputs": [ + { + "internalType": "contract IGammaCardsContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gammaPacksContract", + "outputs": [ + { + "internalType": "contract IgammaPacksContract", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "generateTicket", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getLotteryWinner", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getTickets", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "internalType": "struct NofGammaTicketsV1.Ticket[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "getTicketsByUser", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "internalType": "struct NofGammaTicketsV1.Ticket[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWinner", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_ownerToRemove", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaCardsContract", + "type": "address" + } + ], + "name": "setGammaCardsContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gammaPacksContract", + "type": "address" + } + ], + "name": "setGammaPacksContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "tickets", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "ticketsByUser", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ticketsTotalCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "winner", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "ticketId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "ticketCounter", + "type": "uint256" + }, + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040526000600b5534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fc6806100836000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063dfbf53ae1161007c578063dfbf53ae1461029e578063e5b0b100146102bd578063e6afe6bc146102d0578063f09a4016146102e7578063f2fde38b146102fa578063fa8213d31461030d57600080fd5b80638da5cb5b146102575780638e7ea5b214610268578063b2d55c1c14610270578063cafaa47314610278578063d250f03a1461028b57600080fd5b80634c7a7ad3116100ff5780634c7a7ad3146102015780634ed026221461021457806350b44712146102295780637065cb481461023c578063715018a61461024f57600080fd5b806304ac05cf1461013c578063173825d91461017d5780632f54bf6e146101925780632f9e026a146101ce578063306e4118146101f9575b600080fd5b61014f61014a366004610e2c565b610320565b604080519485526020850193909352918301526001600160a01b031660608201526080015b60405180910390f35b61019061018b366004610e56565b61036f565b005b6101be6101a0366004610e56565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610174565b6002546101e1906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b610190610415565b61019061020f366004610e56565b6104e9565b61021c610595565b6040516101749190610e78565b61014f610237366004610ee5565b61061f565b61019061024a366004610e56565b610662565b6101906106d9565b6000546001600160a01b03166101e1565b61014f6106ed565b61014f610709565b610190610286366004610e56565b6108b2565b6001546101e1906001600160a01b031681565b60065460075460085460095461014f939291906001600160a01b031684565b61021c6102cb366004610e56565b610957565b6102d9600b5481565b604051908152602001610174565b6101906102f5366004610efe565b6109f7565b610190610308366004610e56565b610a82565b61019061031b366004610e56565b610b00565b600a602052816000526040600020818154811061033c57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526003602052604090205460ff1661039f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b1580156103fa57600080fd5b505af415801561040e573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461044057604051633d10446b60e21b815260040160405180910390fd5b61044c60056000610dbc565b6000600b8190555b6005548110156104bd57600a60006005838154811061047557610475610f31565b60009182526020808320600360049093020191909101546001600160a01b0316835282019290925260400181206104ab91610dbc565b806104b581610f47565b915050610454565b506040517fc3ed638c0e10b967891ee71bc361fabc770df50e93331cdf41fddc37deb28b5b90600090a1565b3360009081526003602052604090205460ff1661051957604051634289c49360e01b815260040160405180910390fd5b6001600160a01b0381166105405760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa906020015b60405180910390a150565b60606005805480602002602001604051908101604052809291908181526020016000905b8282101561061657600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b0316606083015290835290920191016105b9565b50505050905090565b6005818154811061062f57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491935091906001600160a01b031684565b3360009081526003602052604090205460ff1661069257604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae4906044016103e2565b6106e1610d12565b6106eb6000610d6c565b565b6006546007546008546009546001600160a01b03165b90919293565b6002546000908190819081906001600160a01b0316331461073d57604051633d10446b60e21b815260040160405180910390fd5b60055460000361076057604051632e12ccb760e11b815260040160405180910390fd5b6006541561078b575050600654600754600854600954929450909250906001600160a01b0316610703565b60055460408051426020820152449181019190915260608101829052600091906080016040516020818303038152906040528051906020012060001c6107d19190610f6e565b9050600581815481106107e6576107e6610f31565b60009182526020909120600490910201805460068190556001820154600781905560028301546008819055600390930154600980546001600160a01b0319166001600160a01b0390921691821790556040517f314d0f2749f4f47e45bd658d5f379146bedd6ac53f8e6f0f63c5fe4ab14bc2aa946108869493929091938452602084019290925260408301526001600160a01b0316606082015260800190565b60405180910390a15050600654600754600854600954929691955093506001600160a01b039091169150565b3360009081526003602052604090205460ff166108e257604051634289c49360e01b815260040160405180910390fd5b6001600160a01b0381166109095760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f9060200161058a565b6001600160a01b0381166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b828210156109ec57600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b03166060830152908352909201910161098f565b505050509050919050565b6109ff610d12565b6001600160a01b0382161580610a1c57506001600160a01b038116155b15610a3a5760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b039384166001600160a01b03199182161790915560018054929093169116178155336000908152600360205260409020805460ff19169091179055565b610a8a610d12565b6001600160a01b038116610af45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610afd81610d6c565b50565b6001546001600160a01b03163314610b2b57604051633d10446b60e21b815260040160405180910390fd5b600b54604080514260208201819052918101839052606084811b6bffffffffffffffffffffffff19169082015260009060740160408051601f1981840301815282825280516020918201206080840183528584528382018181528484018881526001600160a01b03808b1660608801818152600580546001818101835560009283528b5160049283027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019190915588517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015587517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db282015584517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db390910180549188166001600160a01b0319928316179055948352600a8a529982208054808c0182559083529882208b519990910201978855945197870197909755915160028601559451600394909401805494909516931692909217909255600b805492945090610cba83610f47565b909155505060408051848152602081018490529081018590526001600160a01b038616907f0493d9379fb7ffa47303ca5a377a34a8034f42db6d986fe1f57b0b800fd210919060600160405180910390a25050505050565b6000546001600160a01b031633146106eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aeb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546000825560040290600052602060002090810190610afd91905b80821115610e0c5760008082556001820181905560028201556003810180546001600160a01b0319169055600401610dd9565b5090565b80356001600160a01b0381168114610e2757600080fd5b919050565b60008060408385031215610e3f57600080fd5b610e4883610e10565b946020939093013593505050565b600060208284031215610e6857600080fd5b610e7182610e10565b9392505050565b602080825282518282018190526000919060409081850190868401855b82811015610ed857815180518552868101518786015285810151868601526060908101516001600160a01b03169085015260809093019290850190600101610e95565b5091979650505050505050565b600060208284031215610ef757600080fd5b5035919050565b60008060408385031215610f1157600080fd5b610f1a83610e10565b9150610f2860208401610e10565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b600060018201610f6757634e487b7160e01b600052601160045260246000fd5b5060010190565b600082610f8b57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212200b27afe2f53eb51a780c414a34d035477c7e269e22008960598c6789cc86e79164736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638da5cb5b116100b8578063dfbf53ae1161007c578063dfbf53ae1461029e578063e5b0b100146102bd578063e6afe6bc146102d0578063f09a4016146102e7578063f2fde38b146102fa578063fa8213d31461030d57600080fd5b80638da5cb5b146102575780638e7ea5b214610268578063b2d55c1c14610270578063cafaa47314610278578063d250f03a1461028b57600080fd5b80634c7a7ad3116100ff5780634c7a7ad3146102015780634ed026221461021457806350b44712146102295780637065cb481461023c578063715018a61461024f57600080fd5b806304ac05cf1461013c578063173825d91461017d5780632f54bf6e146101925780632f9e026a146101ce578063306e4118146101f9575b600080fd5b61014f61014a366004610e2c565b610320565b604080519485526020850193909352918301526001600160a01b031660608201526080015b60405180910390f35b61019061018b366004610e56565b61036f565b005b6101be6101a0366004610e56565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610174565b6002546101e1906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b610190610415565b61019061020f366004610e56565b6104e9565b61021c610595565b6040516101749190610e78565b61014f610237366004610ee5565b61061f565b61019061024a366004610e56565b610662565b6101906106d9565b6000546001600160a01b03166101e1565b61014f6106ed565b61014f610709565b610190610286366004610e56565b6108b2565b6001546101e1906001600160a01b031681565b60065460075460085460095461014f939291906001600160a01b031684565b61021c6102cb366004610e56565b610957565b6102d9600b5481565b604051908152602001610174565b6101906102f5366004610efe565b6109f7565b610190610308366004610e56565b610a82565b61019061031b366004610e56565b610b00565b600a602052816000526040600020818154811061033c57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526003602052604090205460ff1661039f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b1580156103fa57600080fd5b505af415801561040e573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461044057604051633d10446b60e21b815260040160405180910390fd5b61044c60056000610dbc565b6000600b8190555b6005548110156104bd57600a60006005838154811061047557610475610f31565b60009182526020808320600360049093020191909101546001600160a01b0316835282019290925260400181206104ab91610dbc565b806104b581610f47565b915050610454565b506040517fc3ed638c0e10b967891ee71bc361fabc770df50e93331cdf41fddc37deb28b5b90600090a1565b3360009081526003602052604090205460ff1661051957604051634289c49360e01b815260040160405180910390fd5b6001600160a01b0381166105405760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa906020015b60405180910390a150565b60606005805480602002602001604051908101604052809291908181526020016000905b8282101561061657600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b0316606083015290835290920191016105b9565b50505050905090565b6005818154811061062f57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491935091906001600160a01b031684565b3360009081526003602052604090205460ff1661069257604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae4906044016103e2565b6106e1610d12565b6106eb6000610d6c565b565b6006546007546008546009546001600160a01b03165b90919293565b6002546000908190819081906001600160a01b0316331461073d57604051633d10446b60e21b815260040160405180910390fd5b60055460000361076057604051632e12ccb760e11b815260040160405180910390fd5b6006541561078b575050600654600754600854600954929450909250906001600160a01b0316610703565b60055460408051426020820152449181019190915260608101829052600091906080016040516020818303038152906040528051906020012060001c6107d19190610f6e565b9050600581815481106107e6576107e6610f31565b60009182526020909120600490910201805460068190556001820154600781905560028301546008819055600390930154600980546001600160a01b0319166001600160a01b0390921691821790556040517f314d0f2749f4f47e45bd658d5f379146bedd6ac53f8e6f0f63c5fe4ab14bc2aa946108869493929091938452602084019290925260408301526001600160a01b0316606082015260800190565b60405180910390a15050600654600754600854600954929691955093506001600160a01b039091169150565b3360009081526003602052604090205460ff166108e257604051634289c49360e01b815260040160405180910390fd5b6001600160a01b0381166109095760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f9060200161058a565b6001600160a01b0381166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b828210156109ec57600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b03166060830152908352909201910161098f565b505050509050919050565b6109ff610d12565b6001600160a01b0382161580610a1c57506001600160a01b038116155b15610a3a5760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b039384166001600160a01b03199182161790915560018054929093169116178155336000908152600360205260409020805460ff19169091179055565b610a8a610d12565b6001600160a01b038116610af45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610afd81610d6c565b50565b6001546001600160a01b03163314610b2b57604051633d10446b60e21b815260040160405180910390fd5b600b54604080514260208201819052918101839052606084811b6bffffffffffffffffffffffff19169082015260009060740160408051601f1981840301815282825280516020918201206080840183528584528382018181528484018881526001600160a01b03808b1660608801818152600580546001818101835560009283528b5160049283027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019190915588517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015587517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db282015584517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db390910180549188166001600160a01b0319928316179055948352600a8a529982208054808c0182559083529882208b519990910201978855945197870197909755915160028601559451600394909401805494909516931692909217909255600b805492945090610cba83610f47565b909155505060408051848152602081018490529081018590526001600160a01b038616907f0493d9379fb7ffa47303ca5a377a34a8034f42db6d986fe1f57b0b800fd210919060600160405180910390a25050505050565b6000546001600160a01b031633146106eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aeb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546000825560040290600052602060002090810190610afd91905b80821115610e0c5760008082556001820181905560028201556003810180546001600160a01b0319169055600401610dd9565b5090565b80356001600160a01b0381168114610e2757600080fd5b919050565b60008060408385031215610e3f57600080fd5b610e4883610e10565b946020939093013593505050565b600060208284031215610e6857600080fd5b610e7182610e10565b9392505050565b602080825282518282018190526000919060409081850190868401855b82811015610ed857815180518552868101518786015285810151868601526060908101516001600160a01b03169085015260809093019290850190600101610e95565b5091979650505050505050565b600060208284031215610ef757600080fd5b5035919050565b60008060408385031215610f1157600080fd5b610f1a83610e10565b9150610f2860208401610e10565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b600060018201610f6757634e487b7160e01b600052601160045260246000fd5b5060010190565b600082610f8b57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212200b27afe2f53eb51a780c414a34d035477c7e269e22008960598c6789cc86e79164736f6c63430008140033", + "linkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 1095 + }, + { + "length": 20, + "start": 1850 + } + ] + } + }, + "deployedLinkReferences": { + "contracts/gamma/libs/LibControlMgmt.sol": { + "LibControlMgmt": [ + { + "length": 20, + "start": 964 + }, + { + "length": 20, + "start": 1719 + } + ] + } + } +} diff --git a/src/context/abis/libs/LibControlMgmt.sol/LibControlMgmt.json b/src/context/abis/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json similarity index 100% rename from src/context/abis/libs/LibControlMgmt.sol/LibControlMgmt.json rename to src/context/abis/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json diff --git a/src/context/abis/libs/LibPackVerifier.sol/LibPackVerifier.json b/src/context/abis/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json similarity index 100% rename from src/context/abis/libs/LibPackVerifier.sol/LibPackVerifier.json rename to src/context/abis/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json diff --git a/src/context/abis/libs/LibStringUtils.sol/LibStringUtils.json b/src/context/abis/gamma/libs/LibStringUtils.sol/LibStringUtils.json similarity index 100% rename from src/context/abis/libs/LibStringUtils.sol/LibStringUtils.json rename to src/context/abis/gamma/libs/LibStringUtils.sol/LibStringUtils.json diff --git a/src/context/abis/TestDAI.v3.sol/AccessControl.json b/src/context/abis/testDai/TestDAI.v3.sol/AccessControl.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/AccessControl.json rename to src/context/abis/testDai/TestDAI.v3.sol/AccessControl.json diff --git a/src/context/abis/TestDAI.v3.sol/AccessControlMixin.json b/src/context/abis/testDai/TestDAI.v3.sol/AccessControlMixin.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/AccessControlMixin.json rename to src/context/abis/testDai/TestDAI.v3.sol/AccessControlMixin.json diff --git a/src/context/abis/TestDAI.v3.sol/Address.json b/src/context/abis/testDai/TestDAI.v3.sol/Address.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/Address.json rename to src/context/abis/testDai/TestDAI.v3.sol/Address.json diff --git a/src/context/abis/TestDAI.v3.sol/ChainConstants.json b/src/context/abis/testDai/TestDAI.v3.sol/ChainConstants.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/ChainConstants.json rename to src/context/abis/testDai/TestDAI.v3.sol/ChainConstants.json diff --git a/src/context/abis/TestDAI.v3.sol/Context.json b/src/context/abis/testDai/TestDAI.v3.sol/Context.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/Context.json rename to src/context/abis/testDai/TestDAI.v3.sol/Context.json diff --git a/src/context/abis/TestDAI.v3.sol/ContextMixin.json b/src/context/abis/testDai/TestDAI.v3.sol/ContextMixin.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/ContextMixin.json rename to src/context/abis/testDai/TestDAI.v3.sol/ContextMixin.json diff --git a/src/context/abis/TestDAI.v3.sol/EIP712Base.json b/src/context/abis/testDai/TestDAI.v3.sol/EIP712Base.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/EIP712Base.json rename to src/context/abis/testDai/TestDAI.v3.sol/EIP712Base.json diff --git a/src/context/abis/TestDAI.v3.sol/ERC20.json b/src/context/abis/testDai/TestDAI.v3.sol/ERC20.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/ERC20.json rename to src/context/abis/testDai/TestDAI.v3.sol/ERC20.json diff --git a/src/context/abis/TestDAI.v3.sol/EnumerableSet.json b/src/context/abis/testDai/TestDAI.v3.sol/EnumerableSet.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/EnumerableSet.json rename to src/context/abis/testDai/TestDAI.v3.sol/EnumerableSet.json diff --git a/src/context/abis/TestDAI.v3.sol/IChildToken.json b/src/context/abis/testDai/TestDAI.v3.sol/IChildToken.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/IChildToken.json rename to src/context/abis/testDai/TestDAI.v3.sol/IChildToken.json diff --git a/src/context/abis/TestDAI.v3.sol/IERC20.json b/src/context/abis/testDai/TestDAI.v3.sol/IERC20.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/IERC20.json rename to src/context/abis/testDai/TestDAI.v3.sol/IERC20.json diff --git a/src/context/abis/TestDAI.v3.sol/Initializable.json b/src/context/abis/testDai/TestDAI.v3.sol/Initializable.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/Initializable.json rename to src/context/abis/testDai/TestDAI.v3.sol/Initializable.json diff --git a/src/context/abis/TestDAI.v3.sol/NativeMetaTransaction.json b/src/context/abis/testDai/TestDAI.v3.sol/NativeMetaTransaction.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/NativeMetaTransaction.json rename to src/context/abis/testDai/TestDAI.v3.sol/NativeMetaTransaction.json diff --git a/src/context/abis/TestDAI.v3.sol/NofTestDAIV3.json b/src/context/abis/testDai/TestDAI.v3.sol/NofTestDAIV3.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/NofTestDAIV3.json rename to src/context/abis/testDai/TestDAI.v3.sol/NofTestDAIV3.json diff --git a/src/context/abis/TestDAI.v3.sol/SafeMath.json b/src/context/abis/testDai/TestDAI.v3.sol/SafeMath.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/SafeMath.json rename to src/context/abis/testDai/TestDAI.v3.sol/SafeMath.json diff --git a/src/context/abis/TestDAI.v3.sol/UChildERC20.json b/src/context/abis/testDai/TestDAI.v3.sol/UChildERC20.json similarity index 100% rename from src/context/abis/TestDAI.v3.sol/UChildERC20.json rename to src/context/abis/testDai/TestDAI.v3.sol/UChildERC20.json From 56e3431237502ff7af4b5913f58a254fd396980f Mon Sep 17 00:00:00 2001 From: dappsar Date: Tue, 5 Mar 2024 22:31:10 -0300 Subject: [PATCH 04/11] [style] :lipstick: prettier --- hardhat.config.js | 6 +++--- src/context/GammaDataContext.js | 6 +++--- src/pages/api/characters.js | 1 - src/services/gamma.js | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/hardhat.config.js b/hardhat.config.js index 2ef14876..1c789e25 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -1,6 +1,6 @@ /** @type import('hardhat/config').HardhatUserConfig */ -const solidityVersions = ["0.6.0", "0.6.2", "0.6.6", "0.8.18", "0.8.20"] +const solidityVersions = ['0.6.0', '0.6.2', '0.6.6', '0.8.18', '0.8.20'] const compilers = solidityVersions.map((version) => ({ version, settings: { @@ -14,5 +14,5 @@ const compilers = solidityVersions.map((version) => ({ module.exports = { solidity: { compilers - }, -}; \ No newline at end of file + } +} diff --git a/src/context/GammaDataContext.js b/src/context/GammaDataContext.js index 280e2e91..9a4c82a2 100644 --- a/src/context/GammaDataContext.js +++ b/src/context/GammaDataContext.js @@ -33,9 +33,9 @@ const GammaDataContextProvider = ({ children }) => { setAlbums60Qtty(getAlbums60Qtty()) setUniqueCardsQtty(getUniqueCardsQtty()) setRepeatedCardsQtty(getRepeatedCardsQtty()) - } catch(e) { - console.error({ e }); - throw e; + } catch (e) { + console.error({ e }) + throw e } } diff --git a/src/pages/api/characters.js b/src/pages/api/characters.js index 5d63a17b..dc7a4b26 100644 --- a/src/pages/api/characters.js +++ b/src/pages/api/characters.js @@ -41,7 +41,6 @@ export default async function handler(req, res) { join(process.cwd(), 'scripts', 'characters', `${c.id}.png`) ) - // Crear una matriz de promesas para cargar las imágenes const imagePromises = characterImagePaths.map(async (imagePath) => await Jimp.read(imagePath)) diff --git a/src/services/gamma.js b/src/services/gamma.js index b972b9ac..5fc367f1 100644 --- a/src/services/gamma.js +++ b/src/services/gamma.js @@ -121,7 +121,7 @@ export const getMaxPacksAllowedToOpenAtOnce = async (cardsContract) => { export const getCardsByUser = async (cardsContract, walletAddress) => { try { - if (!cardsContract || !walletAddress) return; + if (!cardsContract || !walletAddress) return const cardData = await cardsContract?.getCardsByUser(walletAddress) const cardsPages = getGammacardsPages() let cardsObj = { ...cardsPages } From 4df347021a967c15b8d481cd227279ca9698f7c0 Mon Sep 17 00:00:00 2001 From: dappsar Date: Thu, 7 Mar 2024 13:37:57 -0300 Subject: [PATCH 05/11] [refactor] :recycle: remove hardhat dependencies --- .../contracts/access/Ownable.sol/Ownable.json | 85 - .../interfaces/IERC4906.sol/IERC4906.json | 328 - .../draft-IERC6093.sol/IERC1155Errors.json | 113 - .../draft-IERC6093.sol/IERC20Errors.json | 97 - .../draft-IERC6093.sol/IERC721Errors.json | 114 - .../token/ERC20/IERC20.sol/IERC20.json | 194 - .../token/ERC721/ERC721.sol/ERC721.json | 444 - .../token/ERC721/IERC721.sol/IERC721.json | 296 - .../IERC721Receiver.sol/IERC721Receiver.json | 45 - .../ERC721Burnable.sol/ERC721Burnable.json | 457 - .../ERC721URIStorage.json | 476 - .../IERC721Metadata.sol/IERC721Metadata.json | 341 - .../contracts/utils/Context.sol/Context.json | 10 - .../contracts/utils/Strings.sol/Strings.json | 27 - .../utils/cryptography/ECDSA.sol/ECDSA.json | 38 - .../MessageHashUtils.json | 10 - .../introspection/ERC165.sol/ERC165.json | 30 - .../introspection/IERC165.sol/IERC165.json | 30 - .../contracts/utils/math/Math.sol/Math.json | 16 - .../utils/math/SignedMath.sol/SignedMath.json | 10 - .../65f0817491599165f934c84c3d1d976c.json | 1 - .../IgammaOffersContract.json | 112 - .../IgammaPacksContract.json | 66 - .../IgammaTicketsContract.json | 24 - .../GammaCards.v5.sol/NofGammaCardsV5.json | 2007 --- .../NofGammaCardsNFTV1.json | 494 - .../IGammaCardsContract.json | 99 - .../GammaOffers.v4.sol/NofGammaOffersV4.json | 1042 -- .../IGammaCardsContract.json | 37 - .../IgammaTicketsContract.json | 46 - .../GammaPacks.v3.sol/NofGammaPacksV3.json | 875 -- .../LibControlMgmt.sol/LibControlMgmt.json | 63 - .../LibPackVerifier.sol/LibPackVerifier.json | 72 - .../LibStringUtils.sol/LibStringUtils.json | 30 - .../testDai/TestDAI.v3.sol/AccessControl.json | 239 - .../TestDAI.v3.sol/AccessControlMixin.json | 239 - .../testDai/TestDAI.v3.sol/Address.json | 10 - .../TestDAI.v3.sol/ChainConstants.json | 76 - .../testDai/TestDAI.v3.sol/Context.json | 10 - .../testDai/TestDAI.v3.sol/ContextMixin.json | 10 - .../testDai/TestDAI.v3.sol/EIP712Base.json | 37 - .../testDai/TestDAI.v3.sol/ERC20.json | 315 - .../testDai/TestDAI.v3.sol/EnumerableSet.json | 10 - .../testDai/TestDAI.v3.sol/IChildToken.json | 29 - .../testDai/TestDAI.v3.sol/IERC20.json | 194 - .../testDai/TestDAI.v3.sol/Initializable.json | 10 - .../TestDAI.v3.sol/NativeMetaTransaction.json | 120 - .../testDai/TestDAI.v3.sol/NofTestDAIV3.json | 906 -- .../testDai/TestDAI.v3.sol/SafeMath.json | 10 - .../testDai/TestDAI.v3.sol/UChildERC20.json | 791 -- artifacts/hardhat/console.sol/console.json | 10 - contracts/gamma/GammaCards.v5.sol | 572 - contracts/gamma/GammaCardsNFT.v1.sol | 28 - contracts/gamma/GammaOffers.v4.sol | 441 - contracts/gamma/GammaPacks.v3.sol | 315 - contracts/gamma/libs/LibControlMgmt.sol | 44 - contracts/gamma/libs/LibPackVerifier.sol | 25 - contracts/gamma/libs/LibStringUtils.sol | 28 - contracts/testDai/TestDAI.v3.sol | 1614 --- hardhat.config.js | 18 - package-lock.json | 10214 +++++++--------- package.json | 1 - 62 files changed, 4729 insertions(+), 19716 deletions(-) delete mode 100644 artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json delete mode 100644 artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json delete mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json delete mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json delete mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json delete mode 100644 artifacts/build-info/65f0817491599165f934c84c3d1d976c.json delete mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json delete mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json delete mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json delete mode 100644 artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json delete mode 100644 artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json delete mode 100644 artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json delete mode 100644 artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json delete mode 100644 artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json delete mode 100644 artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json delete mode 100644 artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json delete mode 100644 artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json delete mode 100644 artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json delete mode 100644 artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/Address.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/Context.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json delete mode 100644 artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json delete mode 100644 artifacts/hardhat/console.sol/console.json delete mode 100644 contracts/gamma/GammaCards.v5.sol delete mode 100644 contracts/gamma/GammaCardsNFT.v1.sol delete mode 100644 contracts/gamma/GammaOffers.v4.sol delete mode 100644 contracts/gamma/GammaPacks.v3.sol delete mode 100644 contracts/gamma/libs/LibControlMgmt.sol delete mode 100644 contracts/gamma/libs/LibPackVerifier.sol delete mode 100644 contracts/gamma/libs/LibStringUtils.sol delete mode 100644 contracts/testDai/TestDAI.v3.sol delete mode 100644 hardhat.config.js diff --git a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json deleted file mode 100644 index 5345edc1..00000000 --- a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Ownable", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json b/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json deleted file mode 100644 index 2c75d794..00000000 --- a/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC4906", - "sourceName": "@openzeppelin/contracts/interfaces/IERC4906.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_fromTokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_toTokenId", - "type": "uint256" - } - ], - "name": "BatchMetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "MetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 107d16fe..00000000 --- a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC1155Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index f77ad64e..00000000 --- a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 6ccf3a73..00000000 --- a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "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" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 12e0777f..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json deleted file mode 100644 index 2cc04a86..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "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" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 3677fd69..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index e91c7b08..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Receiver", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json deleted file mode 100644 index a573d3d4..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json +++ /dev/null @@ -1,457 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721Burnable", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol", - "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" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json deleted file mode 100644 index b5cdcdf9..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +++ /dev/null @@ -1,476 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721URIStorage", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol", - "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" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_fromTokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_toTokenId", - "type": "uint256" - } - ], - "name": "BatchMetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "MetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 4eea2c23..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json deleted file mode 100644 index 8fe86fc7..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index 1b199993..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Strings", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "StringsInsufficientHexLength", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json b/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json deleted file mode 100644 index c6bd23d5..00000000 --- a/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ECDSA", - "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "abi": [ - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json b/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json deleted file mode 100644 index 56155649..00000000 --- a/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MessageHashUtils", - "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json deleted file mode 100644 index 1304472c..00000000 --- a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index ff87f91e..00000000 --- a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json deleted file mode 100644 index 3e52ef1d..00000000 --- a/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Math", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", - "abi": [ - { - "inputs": [], - "name": "MathOverflowedMulDiv", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json b/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json deleted file mode 100644 index 8277c925..00000000 --- a/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SignedMath", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/build-info/65f0817491599165f934c84c3d1d976c.json b/artifacts/build-info/65f0817491599165f934c84c3d1d976c.json deleted file mode 100644 index 2aa487f3..00000000 --- a/artifacts/build-info/65f0817491599165f934c84c3d1d976c.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"65f0817491599165f934c84c3d1d976c","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/interfaces/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 ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 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 ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 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 EIP-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 ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 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/interfaces/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../utils/introspection/IERC165.sol\";\n"},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\nimport {IERC721} from \"./IERC721.sol\";\n\n/// @title EIP-721 Metadata Update Extension\ninterface IERC4906 is IERC165, IERC721 {\n /// @dev This event emits when the metadata of a token is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFT.\n event MetadataUpdate(uint256 _tokenId);\n\n /// @dev This event emits when the metadata of a range of tokens is changed.\n /// So that the third-party platforms such as NFT market could\n /// timely update the images and related attributes of the NFTs.\n event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);\n}\n"},"@openzeppelin/contracts/interfaces/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../token/ERC721/IERC721.sol\";\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"./IERC721.sol\";\nimport {IERC721Receiver} from \"./IERC721Receiver.sol\";\nimport {IERC721Metadata} from \"./extensions/IERC721Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {Strings} from \"../../utils/Strings.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {IERC721Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n mapping(uint256 tokenId => address) private _owners;\n\n mapping(address owner => uint256) private _balances;\n\n mapping(uint256 tokenId => address) private _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n return _owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n * the `spender` for the specific `tokenId`.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n unchecked {\n _balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n _balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n _balances[to] += 1;\n }\n }\n\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n _checkOnERC721Received(address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n _checkOnERC721Received(from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n _tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n\n /**\n * @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n * recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory data) private {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n revert ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert ERC721InvalidReceiver(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/token/ERC721/extensions/ERC721Burnable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721Burnable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Context} from \"../../../utils/Context.sol\";\n\n/**\n * @title ERC721 Burnable Token\n * @dev ERC721 Token that can be burned (destroyed).\n */\nabstract contract ERC721Burnable is Context, ERC721 {\n /**\n * @dev Burns `tokenId`. See {ERC721-_burn}.\n *\n * Requirements:\n *\n * - The caller must own `tokenId` or be an approved operator.\n */\n function burn(uint256 tokenId) public virtual {\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n _update(address(0), tokenId, _msgSender());\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721} from \"../ERC721.sol\";\nimport {Strings} from \"../../../utils/Strings.sol\";\nimport {IERC4906} from \"../../../interfaces/IERC4906.sol\";\nimport {IERC165} from \"../../../interfaces/IERC165.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is IERC4906, ERC721 {\n using Strings for uint256;\n\n // Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only\n // defines events and does not include any external function.\n bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906);\n\n // Optional mapping for token URIs\n mapping(uint256 tokenId => string) private _tokenURIs;\n\n /**\n * @dev See {IERC165-supportsInterface}\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) {\n return interfaceId == ERC4906_INTERFACE_ID || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireOwned(tokenId);\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = _baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via string.concat).\n if (bytes(_tokenURI).length > 0) {\n return string.concat(base, _tokenURI);\n }\n\n return super.tokenURI(tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Emits {MetadataUpdate}.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n _tokenURIs[tokenId] = _tokenURI;\n emit MetadataUpdate(tokenId);\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/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/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n /// @solidity memory-safe-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n */\n function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address, RecoverError, bytes32) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\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 ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\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 ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\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 overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds 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 return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev 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^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = 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^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\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^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\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 unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\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 + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\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 unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 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 + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\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/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"contracts/gamma/GammaCards.v5.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {LibStringUtils} from \"./libs/LibStringUtils.sol\";\nimport {LibPackVerifier} from \"./libs/LibPackVerifier.sol\";\nimport {LibControlMgmt} from \"./libs/LibControlMgmt.sol\";\nimport {console} from \"hardhat/console.sol\";\nimport {NofGammaCardsNFTV1} from \"./GammaCardsNFT.v1.sol\";\n\nerror OnlyGammaPacksContract();\nerror OnlyOffersContract();\nerror OnlyOwners();\nerror InvalidAddress();\nerror InvalidCardNumber();\nerror InvalidTransfer();\nerror InvalidSignature();\nerror IncorrectPrizeAmount();\nerror WrongPacksQuantity();\nerror NotYourPack();\nerror CardLimitExceeded();\nerror UserDoesNotHaveCardOrAlbum();\nerror InsufficientFunds();\nerror InsufficientCards();\nerror MustCompleteAlbum();\nerror CannotRemoveUserOffers();\n\ninterface IgammaPacksContract {\n function getPackOwner(uint256 tokenId) external view returns (address);\n\n function openPack(uint256 tokenId, address owner) external;\n\n function openPacks(uint256[] memory tokenIds, address owner) external;\n}\n\ninterface IgammaOffersContract {\n function hasOffer(address user, uint8 cardNumber) external view returns (bool);\n\n function removeOffersByUser(address user) external returns (bool);\n\n function getOffersByUserCounter(address user) external view returns (uint256);\n\n function getOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber\n ) external view returns (uint256, uint8, uint8[] memory, address);\n}\n\ninterface IgammaTicketsContract {\n function generateTicket(address user) external;\n}\n\ncontract NofGammaCardsV5 is NofGammaCardsNFTV1, Ownable {\n using LibStringUtils for uint8;\n using LibControlMgmt for LibControlMgmt.Data;\n\n IgammaPacksContract public gammaPacksContract;\n IgammaOffersContract public gammaOffersContract;\n IgammaTicketsContract public gammaTicketsContract;\n\n LibControlMgmt.Data private ownersData;\n LibControlMgmt.Data private signersData;\n\n uint8 public s_maxPacksToOpenAtOnce = 10;\n uint8 public s_lotteryPrizePercentage = 50;\n address public DAI_TOKEN;\n uint256 public s_tokenIdCounter;\n uint256 public s_packPrice = 12e17; // 1.2 DAI\n uint256 public s_prizesBalance = 0;\n uint256 public s_mainAlbumPrize = 15e18; // 15 DAI por album principal completado\n uint256 public s_secondaryAlbumPrize = 1e18; // 1 DAI por album secundario completado\n string public s_mainUri;\n string public s_secondaryUri;\n string public s_baseUri;\n bool public s_requireOpenPackSignerValidation;\n bool public s_requireOfferValidationInMint = true;\n bool public s_requireOfferValidationInTransfer = true;\n\n struct Card {\n uint256 tokenId;\n uint256 number;\n bool pasted;\n uint8 class; // 1 para cartas, 2 para album de 120, 3 para album de 60\n uint256 completion; // solo se modifica en el caso de los albums\n }\n\n mapping(uint256 tokenId => Card) public s_cards;\n mapping(uint256 cardNumber => uint256 amount) public s_cardsInventory; // maximos: 120 => 5000\n mapping(address user => uint256 amount) public s_burnedCards;\n mapping(address user => mapping(uint8 cardNumber => uint8 amount)) public s_cardsByUser;\n\n event NewGammaOffersContract(address indexed newGammaOffersContract);\n event NewGammaPacksContract(address indexed newGammaPacksContract);\n event NewGammaTicketsContract(address indexed newGammaTicketContract);\n event PackOpened(address indexed player, uint8[] indexed packData, uint256 indexed packNumber);\n event AlbumCompleted(address indexed player, uint8 indexed albumClass);\n event CardPasted(address indexed player, uint256 indexed cardTokenId, uint256 indexed albumTokenId);\n event EmergencyWithdrawal(address indexed receiver, uint256 indexed amount);\n event NewSigner(address indexed newSigner);\n event NewUris(string indexed newMainUri, string indexed newSecondaryUri);\n event OfferCardsExchanged(address indexed from, address indexed to, uint8 cardNumberFrom, uint8 cardNumberTo);\n event CardTransfered(address indexed from, address indexed to, uint8 cardNumber);\n event CardsTransfered(address indexed from, address indexed to, uint8[] indexed cardNumber);\n event CardsBurned(address indexed user, uint8[] indexed cardsNumber);\n\n modifier onlyGammaPacksContract() {\n if(msg.sender != address(gammaPacksContract)) revert OnlyGammaPacksContract();\n _;\n }\n\n modifier onlyGammaOffersContract() {\n if(msg.sender != address(gammaOffersContract)) revert OnlyOffersContract();\n _;\n }\n\n modifier onlyOwners() {\n if(!ownersData.owners[msg.sender]) revert OnlyOwners();\n _;\n }\n\n modifier checkAddressZero(address _address) {\n if(_address == address(0)) revert InvalidAddress();\n _;\n }\n\n constructor (\n address _daiTokenAddress,\n address _gammaPacksContract,\n address _gammaOffersContract,\n address _gammaTicketsContract,\n string memory _baseUri,\n address _signer\n ) Ownable(msg.sender) {\n ownersData.owners[msg.sender] = true;\n\n DAI_TOKEN = _daiTokenAddress;\n gammaPacksContract = IgammaPacksContract(_gammaPacksContract);\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n gammaOffersContract = IgammaOffersContract(_gammaOffersContract);\n\n s_baseUri = _baseUri;\n s_mainUri = string(abi.encodePacked(bytes(s_baseUri), bytes(\"/\"), bytes(\"120\"), bytes(\"F.json\")));\n s_secondaryUri = string(\n abi.encodePacked(bytes(s_baseUri), bytes(\"/\"), bytes(\"121\"), bytes(\"F.json\"))\n );\n signersData.signers[_signer] = true;\n\n for (uint256 i; i < 122; i++) {\n s_cardsInventory[i] = 1;\n }\n }\n\n function addOwner(address _newOwner) external onlyOwners {\n ownersData.addOwner(_newOwner);\n }\n\n function removeOwner(address _ownerToRemove) external onlyOwners {\n ownersData.removeOwner(_ownerToRemove);\n }\n\n function addSigner(address _newSigner) external onlyOwners {\n signersData.addSigner(_newSigner);\n }\n\n function removeSigner(address _signerToRemove) external onlyOwners {\n signersData.removeSigner(_signerToRemove);\n }\n\n function setGammaOffersContract(address _gammaOffersContract) external onlyOwners checkAddressZero(_gammaOffersContract) {\n gammaOffersContract = IgammaOffersContract(_gammaOffersContract);\n emit NewGammaOffersContract(_gammaOffersContract);\n }\n\n function setGammaPacksContract(address _gammaPacksContract) external onlyOwners checkAddressZero(_gammaPacksContract){\n gammaPacksContract = IgammaPacksContract(_gammaPacksContract);\n emit NewGammaPacksContract(_gammaPacksContract);\n }\n\n function setGammaTicketsContract(address _gammaTicketsContract) external onlyOwners checkAddressZero(_gammaTicketsContract){\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n emit NewGammaTicketsContract(_gammaTicketsContract);\n }\n\n function setPrizesBalance(uint256 amount) external onlyGammaPacksContract {\n s_prizesBalance += amount;\n }\n\n function setMainAlbumPrize(uint256 amount) external onlyOwners {\n if(amount == 0) revert IncorrectPrizeAmount();\n s_mainAlbumPrize = amount;\n }\n\n function setSecondaryAlbumPrize(uint256 amount) external onlyOwners {\n if(amount == 0) revert IncorrectPrizeAmount();\n s_secondaryAlbumPrize = amount;\n }\n\n function setLotteryPrizePercentage(uint8 amount) external onlyOwners {\n if(amount > 100) revert IncorrectPrizeAmount();\n s_lotteryPrizePercentage = amount;\n }\n\n function setUris(string memory newMainUri, string memory newSecondaryUri) external onlyOwners {\n s_mainUri = newMainUri;\n s_secondaryUri = newSecondaryUri;\n emit NewUris(newMainUri, newSecondaryUri);\n }\n\n function changeRequireOpenPackSignerValidation(bool required) external onlyOwners {\n s_requireOpenPackSignerValidation = required;\n }\n\n function changeRequireOfferValidationInMint(bool required) external onlyOwners {\n s_requireOfferValidationInMint = required;\n }\n\n function changeRequireOfferValidationInTransfer(bool required) external onlyOwners {\n s_requireOfferValidationInTransfer = required;\n }\n\n function changePackPrice(uint256 newPackPrice) external onlyGammaPacksContract {\n s_packPrice = newPackPrice;\n }\n\n function changeMaxPacksToOpenAtOnce(uint8 _maxPacksToOpenAtOnce) external onlyOwners {\n s_maxPacksToOpenAtOnce = _maxPacksToOpenAtOnce;\n }\n\n function removeCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract {\n s_cardsByUser[user][cardNumber]--;\n }\n\n function restoreCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract {\n s_cardsByUser[user][cardNumber]++;\n }\n\n function hasCardByOffer(\n address user,\n uint8 cardNumber\n ) external view onlyGammaOffersContract returns (bool has) {\n return s_cardsByUser[user][cardNumber] > 0;\n }\n\n function hasCard(address user, uint8 cardNum) public view checkAddressZero(user) returns (bool has) {\n return s_cardsByUser[user][cardNum] > 0;\n }\n\n function isOwner(address user) external view returns (bool) {\n return ownersData.owners[user];\n }\n\n function isSigner(address user) external view returns (bool) {\n return signersData.signers[user];\n }\n\n function getLotteryPrize() public view returns (uint256) {\n return (s_lotteryPrizePercentage * s_prizesBalance) / 100;\n }\n\n function getCardQuantityByUser(address user, uint8 cardNum) public view checkAddressZero(user) returns (uint8) {\n return s_cardsByUser[user][cardNum];\n }\n\n function getBurnedCardQttyByUser(address user) public view checkAddressZero(user) returns (uint256) {\n return s_burnedCards[user];\n }\n\n function getCardsByUser(\n address user\n ) public view returns (uint8[] memory, uint8[] memory, bool[] memory) {\n uint8[] memory cardNumbers = new uint8[](122);\n uint8[] memory quantities = new uint8[](122);\n bool[] memory offers = new bool[](122);\n uint8 index = 0;\n\n for (uint8 i; i <= 121; i++) {\n if (s_cardsByUser[user][i] > 0) {\n cardNumbers[index] = i;\n quantities[index] = s_cardsByUser[user][i];\n offers[index] = gammaOffersContract.hasOffer(user, i);\n index++;\n }\n }\n\n uint8[] memory userCardNumbers = new uint8[](index);\n uint8[] memory userCardsQtty = new uint8[](index);\n bool[] memory userCardsOffers = new bool[](index);\n\n for (uint256 j; j < index; j++) {\n userCardNumbers[j] = cardNumbers[j];\n userCardsQtty[j] = quantities[j];\n userCardsOffers[j] = offers[j];\n }\n\n return (userCardNumbers, userCardsQtty, userCardsOffers);\n }\n\n function verifyPackSigner(\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) public view returns (address signer) {\n return LibPackVerifier.verifyPackSigner(msg.sender, packNumber, packData, signature);\n }\n\n function openPack(\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) external {\n _openPack(msg.sender, packNumber, packData, signature);\n }\n\n function openPacks(\n uint8 packsQuantity,\n uint256[] memory packsNumber,\n uint8[][] memory packsData,\n bytes[] calldata signatures\n ) external {\n if(packsQuantity == 0 || packsQuantity > s_maxPacksToOpenAtOnce) revert WrongPacksQuantity();\n\n for (uint256 i; i < packsQuantity; i++) {\n _openPack(msg.sender, packsNumber[i], packsData[i], signatures[i]);\n }\n }\n\n function _openPack(\n address user,\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) private {\n if(gammaPacksContract.getPackOwner(packNumber) != user) revert NotYourPack(); // @tomas read storage in packs\n if(packData.length >= 15) revert CardLimitExceeded();\n\n if (s_requireOpenPackSignerValidation) { // @tomas read storage\n // Recreates the message present in the `signature`\n address signer = LibPackVerifier.verifyPackSigner(\n msg.sender,\n packNumber,\n packData,\n signature\n );\n \n if(!signersData.signers[signer]) revert InvalidSignature();\n }\n\n gammaPacksContract.openPack(packNumber, user); // @tomas read storage in packs\n s_prizesBalance += s_packPrice - s_packPrice / 6; // @tomas read storage\n\n \n for (uint256 i; i < packData.length;) {\n if(packData[i] == 120){\n if(s_cardsInventory[120] > 3000) revert InvalidCardNumber();\n } else {\n if(s_cardsInventory[packData[i]] > 5000) revert InvalidCardNumber();\n }\n s_cardsInventory[packData[i]]++; // @tomas modify storage / 280k gas aprox.\n s_cardsByUser[user][packData[i]]++; // @tomas modify storage / 310k gas aprox.\n unchecked {\n i++;\n }\n }\n\n emit PackOpened(user, packData, packNumber);\n }\n\n function exchangeCardsOffer(\n address from,\n uint8 cardNumberFrom,\n address to,\n uint8 cardNumberTo\n ) external onlyGammaOffersContract checkAddressZero(from) checkAddressZero(to) {\n if(s_cardsByUser[from][cardNumberFrom] == 0 || s_cardsByUser[to][cardNumberTo] == 0) revert UserDoesNotHaveCardOrAlbum();\n\n s_cardsByUser[from][cardNumberFrom]--;\n s_cardsByUser[to][cardNumberFrom]++;\n s_cardsByUser[to][cardNumberTo]--;\n s_cardsByUser[from][cardNumberTo]++;\n\n emit OfferCardsExchanged(from, to, cardNumberFrom, cardNumberTo);\n }\n\n function transferCard(address to, uint8 cardNumber) external checkAddressZero(to) {\n if(s_cardsByUser[msg.sender][cardNumber] == 0) revert UserDoesNotHaveCardOrAlbum();\n if(to == msg.sender) revert InvalidTransfer();\n\n if (s_requireOfferValidationInTransfer) {\n bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumber);\n bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumber] > 1;\n /* \n The user can only make an offer for one letter and in that case he cannot mint or transfer it.\n If you have more than one copy (quantity > 1) of that card, you must be able to mint \n or transfer the rest.\n */\n require(!hasOffer || hasMoreThanOne, \"This card has an offer.\");\n }\n\n s_cardsByUser[msg.sender][cardNumber]--;\n s_cardsByUser[to][cardNumber]++;\n emit CardTransfered(msg.sender, to, cardNumber);\n }\n\n function transferCards(address to, uint8[] calldata cardNumbers) public checkAddressZero(to) {\n if(to == msg.sender) revert InvalidTransfer();\n\n for (uint256 i; i < cardNumbers.length; i++) {\n if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum();\n s_cardsByUser[msg.sender][cardNumbers[i]]--;\n s_cardsByUser[to][cardNumbers[i]]++;\n\n if (s_requireOfferValidationInTransfer) {\n bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumbers[i]);\n bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumbers[i]] > 1;\n /* \n The user can only make an offer for one letter and in that case he cannot mint or transfer it.\n If you have more than one copy (quantity > 1) of that card, you must be able to mint \n or transfer the rest.\n */\n require(!hasOffer || hasMoreThanOne, \"This card has an offer.\");\n }\n }\n emit CardsTransfered(msg.sender, to, cardNumbers);\n }\n\n // user must call this function when they have at least 1\n // card of each number (120 total) + a 120 album card\n function finishAlbum() public returns (bool) {\n // requires the user to have at least one 120 album\n if(s_cardsByUser[msg.sender][120] == 0) revert UserDoesNotHaveCardOrAlbum();\n if(s_prizesBalance < s_mainAlbumPrize) revert IncorrectPrizeAmount();\n\n uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this));\n if(contractBalance < s_mainAlbumPrize) revert InsufficientFunds();\n\n // check that you have at least one card of each number\n bool unfinished;\n \n for (uint8 i; i <= 120;) {\n if (s_cardsByUser[msg.sender][i] == 0) {\n unfinished = true;\n break;\n }\n s_cardsByUser[msg.sender][i]--;\n unchecked {\n i++;\n }\n }\n if(unfinished) revert MustCompleteAlbum();\n\n // mint the completed album.\n safeMint(msg.sender, s_mainUri, 120, 2);\n\n // transfer prize in DAI.\n IERC20(DAI_TOKEN).transfer(msg.sender, s_mainAlbumPrize);\n s_prizesBalance -= s_mainAlbumPrize;\n\n bool userOffersRemoved = gammaOffersContract.removeOffersByUser(msg.sender);\n if(!userOffersRemoved) revert CannotRemoveUserOffers();\n\n emit AlbumCompleted(msg.sender, 1);\n return true;\n }\n\n // user should call this function if they want to 'paste' selected cards in\n // the 60 cards album to 'burn' them.\n function burnCards(uint8[] calldata cardNumbers) public {\n if(s_cardsByUser[msg.sender][121] == 0) revert UserDoesNotHaveCardOrAlbum();\n uint256 totalUserBurnedCards = s_burnedCards[msg.sender] + cardNumbers.length;\n bool mustPayPrize;\n\n if (totalUserBurnedCards >= 60) {\n uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this));\n if(contractBalance < s_secondaryAlbumPrize || s_prizesBalance < s_secondaryAlbumPrize) revert InsufficientFunds();\n mustPayPrize = true;\n }\n\n bool userHasOffers = (gammaOffersContract.getOffersByUserCounter(msg.sender) > 0);\n uint256 cardNumbersLength = cardNumbers.length;\n for (uint256 i; i < cardNumbersLength;) {\n if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum();\n if (userHasOffers) {\n if (gammaOffersContract.hasOffer(msg.sender, cardNumbers[i])) {\n if(s_cardsByUser[msg.sender][cardNumbers[i]] < 2) revert InsufficientCards();\n }\n }\n s_cardsByUser[msg.sender][cardNumbers[i]]--;\n unchecked {\n i++;\n }\n }\n\n s_burnedCards[msg.sender] += cardNumbersLength;\n emit CardsBurned(msg.sender, cardNumbers);\n\n if (mustPayPrize) {\n s_cardsByUser[msg.sender][121]--;\n safeMint(msg.sender, s_secondaryUri, 121, 2); // mint album of 60 cards.\n\n s_prizesBalance -= s_secondaryAlbumPrize;\n IERC20(DAI_TOKEN).transfer(msg.sender, s_secondaryAlbumPrize);\n\n gammaTicketsContract.generateTicket(msg.sender);\n emit AlbumCompleted(msg.sender, 2);\n }\n }\n\n function mintCard(uint8 cardNum) public {\n if(s_cardsByUser[msg.sender][cardNum] == 0) revert UserDoesNotHaveCardOrAlbum();\n\n if (s_requireOfferValidationInMint) {\n bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNum);\n bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNum] > 1;\n /* \n The user can only make an offer for one letter and in that case he cannot mint or transfer it.\n If you have more than one copy (quantity > 1) of that card, you must be able to mint \n or transfer the rest.\n */\n require(!hasOffer || hasMoreThanOne, \"This card has an offer.\");\n }\n\n s_cardsByUser[msg.sender][cardNum]--;\n\n string memory uri = string(\n abi.encodePacked(bytes(s_baseUri), bytes(\"/\"), bytes(cardNum.toString()), bytes(\".json\"))\n );\n\n safeMint(msg.sender, uri, cardNum, 1);\n }\n\n function safeMint(address _to, string memory _uri, uint256 _number, uint8 _class) internal {\n uint256 tokenId = s_tokenIdCounter;\n s_cards[tokenId].tokenId = tokenId;\n s_cards[tokenId].number = _number;\n s_cards[tokenId].class = _class;\n _safeMint(_to, tokenId);\n _setTokenURI(tokenId, _uri);\n s_tokenIdCounter += 1;\n }\n\n // do not call unless really necessary\n function emergencyWithdraw(uint256 amount) public onlyOwners {\n if(balanceOf(address(this)) < amount) revert InsufficientFunds();\n s_prizesBalance -= amount;\n IERC20(DAI_TOKEN).transfer(msg.sender, amount);\n emit EmergencyWithdrawal(msg.sender, amount);\n }\n\n\n\n\n // for testing purposes only, will remove on deploy\n function testAddCards(address user) public onlyOwners {\n for(uint8 i; i<=121; i++){ // 0-119: cards, 120: album-120, 121: album-60\n s_cardsByUser[user][i]++;\n }\n }\n\n function testOpenPack(address user, uint256 packNumber, uint8[] memory packData) external onlyOwners {\n gammaPacksContract.openPack(packNumber, user);\n s_prizesBalance += s_packPrice - s_packPrice / 6;\n\n for(uint256 i; i Offer[]) offersByUser;\n mapping(uint8 cardNumber => Offer[]) offersByCardNumber;\n mapping(address => uint256) public offersByUserCounter;\n mapping(uint8 => uint256) public offersByCardNumberCounter;\n uint256 public offersTotalCounter;\n\n event NewGammaCardsContract(address newGammaCardsContract);\n event OfferCreated(address user, uint8 cardNumber, uint8[] wantedCardNumbers);\n event OfferRemoved(address user, uint8 cardNumber);\n event UserOffersRemoved(address user);\n event AllOffersRemoved();\n\n modifier onlyCardsContract() {\n if (msg.sender != address(gammaCardsContract)) revert OnlyCardsContract();\n _;\n }\n\n modifier onlyOwners() {\n if (!ownersData.owners[msg.sender]) revert OnlyOwners();\n _;\n }\n\n constructor (address _cardsContract) Ownable(msg.sender) {\n if (_cardsContract == address(0)) revert InvalidAddress();\n gammaCardsContract = IGammaCardsContract(_cardsContract);\n ownersData.owners[msg.sender] = true;\n }\n\n function addOwner(address _newOwner) external onlyOwners {\n ownersData.addOwner(_newOwner);\n }\n\n function removeOwner(address _ownerToRemove) external onlyOwners {\n ownersData.removeOwner(_ownerToRemove);\n }\n\n function setGammaCardsContract(address _gammaCardsContract) public onlyOwners {\n if (_gammaCardsContract == address(0)) revert InvalidAddress();\n gammaCardsContract = IGammaCardsContract(_gammaCardsContract);\n emit NewGammaCardsContract(_gammaCardsContract);\n }\n\n function setMaxOffersAllowed(uint256 _maxOffersAllowed) external onlyOwners {\n maxOffersAllowed = _maxOffersAllowed;\n }\n\n function setMaxOffersByUserAllowed(uint256 _maxOffersByUserAllowed) external onlyOwners {\n maxOffersByUserAllowed = _maxOffersByUserAllowed;\n }\n\n function setMaxCardNumbersAllowed(uint256 _maxCardNumbersAllowed) external onlyOwners {\n maxCardNumbersAllowed = _maxCardNumbersAllowed;\n }\n\n function changeRemoveCardinInventoryWhenOffer(bool _value) external onlyOwners {\n removeCardInInventoryWhenOffer = _value;\n }\n\n function createOffer(\n string memory offerId,\n uint8 cardNumber,\n uint8[] memory wantedCardNumbers\n ) public {\n _createOfferWithUser(offerId, msg.sender, cardNumber, wantedCardNumbers);\n }\n\n function createOfferWithoUser(\n string memory offerId,\n address user,\n uint8 cardNumber,\n uint8[] memory wantedCardNumbers\n ) public onlyOwners {\n _createOfferWithUser(offerId, user, cardNumber, wantedCardNumbers);\n }\n\n function _createOfferWithUser(\n string memory offerId,\n address user,\n uint8 cardNumber,\n uint8[] memory wantedCardNumbers\n ) private {\n if (address(gammaCardsContract) == address(0)) revert GammaCardsContractNotSet();\n if (offersByUserCounter[user] >= maxOffersByUserAllowed) revert OffersMaximumAllowed();\n if (offersTotalCounter >= maxOffersAllowed) revert OffersMaximumAllowed();\n\n bool userHasCard = gammaCardsContract.hasCardByOffer(user, cardNumber);\n if (!userHasCard) revert UserDoesNotHaveCard();\n\n for (uint8 i = 0; i < wantedCardNumbers.length; i++) {\n if (wantedCardNumbers[i] == cardNumber) revert InvalidCardNumber();\n }\n\n Offer memory existingOffer = getOfferByUserAndCardNumber(user, cardNumber);\n if (existingOffer.owner != address(0)) revert OfferAlreadyExists();\n\n offersByUserCounter[user] += 1;\n offersByCardNumberCounter[cardNumber] += 1;\n offersTotalCounter += 1;\n\n offers.push(Offer(offerId, cardNumber, wantedCardNumbers, user, block.timestamp));\n offersByUser[user].push(offers[offers.length - 1]);\n offersByCardNumber[cardNumber].push(offers[offers.length - 1]);\n\n if (removeCardInInventoryWhenOffer) {\n gammaCardsContract.removeCardByOffer(user, cardNumber);\n }\n\n emit OfferCreated(user, cardNumber, wantedCardNumbers);\n }\n\n function isOwner(address user) external view returns (bool) {\n return ownersData.owners[user];\n }\n\n function getOffersByUserCounter(address user) external view returns (uint256) {\n if (user == address(0)) revert InvalidAddress();\n return offersByUserCounter[user];\n }\n\n function getOffersByCardNumberCounter(uint8 cardNumber) external view returns (uint256) {\n return offersByCardNumberCounter[cardNumber];\n }\n\n function getOffersCounter() external view returns (uint256) {\n return offersTotalCounter;\n }\n\n function getMaxOffersAllowed() external view returns (uint256) {\n return maxOffersAllowed;\n }\n\n function getMaxOffersByUserAllowed() external view returns (uint256) {\n return maxOffersByUserAllowed;\n }\n\n function getOffers() external view returns (Offer[] memory) {\n return offers;\n }\n\n function getOfferByIndex(uint256 index) public view returns (Offer memory) {\n if (index >= offers.length) revert InvalidOfferId();\n return offers[index];\n }\n\n function getOfferByOfferId(string memory offerId) external view returns (Offer memory) {\n for (uint256 i = 0; i < offers.length; i++) {\n if (keccak256(abi.encodePacked(offers[i].offerId)) == keccak256(abi.encodePacked(offerId))) {\n return (offers[i]);\n }\n }\n return _emptyOffer();\n }\n\n function getOffersByUser(address user) external view returns (Offer[] memory) {\n if (user == address(0)) revert InvalidAddress();\n return offersByUser[user];\n }\n\n function getOffersByCardNumber(uint8 cardNumber) external view returns (Offer[] memory) {\n return offersByCardNumber[cardNumber];\n }\n\n function getOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber\n ) public view returns (Offer memory) {\n if (user == address(0)) revert InvalidAddress();\n\n Offer[] storage userOffers = offersByUser[user];\n uint256 currentUserOffersCounter = offersByUserCounter[user];\n for (uint256 i = 0; i < currentUserOffersCounter; i++) {\n if (userOffers[i].cardNumber == cardNumber) {\n return userOffers[i];\n }\n }\n return _emptyOffer();\n }\n\n function canUserPublishOffer(address user) public view returns (bool) {\n return maxOffersByUserAllowed > offersByUserCounter[user];\n }\n\n function canAnyUserPublishOffer() public view returns (bool) {\n return maxOffersAllowed > offersTotalCounter;\n }\n\n function hasOffer(address user, uint8 cardNumber) public view returns (bool) {\n if (user == address(0)) revert InvalidAddress();\n for (uint256 i = 0; i < offersByUserCounter[user]; i++) {\n if (offersByUser[user][i].cardNumber == cardNumber) {\n return true;\n }\n }\n return false;\n }\n\n function confirmOfferExchange(\n address from,\n uint8 cardNumberWanted,\n address offerWallet,\n uint8 offerCardNumber\n ) external {\n Offer memory offer = getOfferByUserAndCardNumber(offerWallet, offerCardNumber);\n if (offer.owner != offerWallet) revert OfferDoesNotExists();\n\n uint8[] memory wantedCardNumbers = offer.wantedCardNumbers;\n if (wantedCardNumbers.length == 0) {\n //buscamos que el usuario no tenga la carta\n if (gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted))\n revert UserAlreadyHasCard();\n } else {\n //validamos contra las cartas que acepta el usuario\n bool foundCardWanted = false;\n for (uint8 j = 0; j < wantedCardNumbers.length; j++) {\n if (wantedCardNumbers[j] == cardNumberWanted) {\n foundCardWanted = true;\n break;\n }\n }\n if (!foundCardWanted) revert InvalidCard();\n }\n\n bool offerDeleted = _removeOfferByUserAndCardNumber(\n offerWallet,\n offerCardNumber,\n offer.offerId,\n true\n );\n if (!offerDeleted) revert OfferNotDeleted();\n\n gammaCardsContract.exchangeCardsOffer(from, cardNumberWanted, offerWallet, offerCardNumber);\n if (\n !gammaCardsContract.hasCardByOffer(from, offerCardNumber) ||\n !gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted)\n ) revert ExchangeError();\n }\n\n function deleteAllOffers() external onlyOwners {\n for (uint256 i = 0; i < offers.length; i++) {\n delete offersByUser[offers[i].owner];\n offersByUserCounter[offers[i].owner] = 0;\n\n delete offersByCardNumber[offers[i].cardNumber];\n offersByCardNumberCounter[offers[i].cardNumber] = 0;\n }\n offersTotalCounter = 0;\n delete offers;\n\n emit AllOffersRemoved();\n }\n\n function removeOfferByCardNumber(uint8 cardNumber) external returns (bool) {\n Offer memory offer = getOfferByUserAndCardNumber(msg.sender, cardNumber);\n if (offer.owner != msg.sender) {\n return false;\n }\n bool result = _removeOfferByUserAndCardNumber(msg.sender, cardNumber, offer.offerId, false);\n return result;\n }\n\n function removeOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber\n ) public onlyOwners returns (bool) {\n Offer memory offer = getOfferByUserAndCardNumber(user, cardNumber);\n if (offer.owner != user) {\n return false;\n }\n bool result = _removeOfferByUserAndCardNumber(user, cardNumber, offer.offerId, false);\n return result;\n }\n\n function removeOffersByUser(address user) external onlyCardsContract returns (bool) {\n if (user == address(0)) revert InvalidAddress();\n\n Offer[] storage userOffers = offersByUser[user];\n uint256 currentUserOffersCounter = offersByUserCounter[user];\n\n for (uint256 i = 0; i < currentUserOffersCounter; i++) {\n string memory offerId = userOffers[i].offerId;\n uint8 cardNumber = userOffers[i].cardNumber;\n _removeOfferFromCardNumberMapping(user, cardNumber, offerId);\n _removeOfferByOfferId(offerId);\n offersByCardNumberCounter[cardNumber] -= 1;\n offersTotalCounter -= 1;\n }\n\n delete offersByUser[user];\n offersByUserCounter[user] = 0;\n\n emit UserOffersRemoved(user);\n return true;\n }\n\n function _removeOfferByUserAndCardNumber(\n address user,\n uint8 cardNumber,\n string memory offerId,\n bool fromConfirmOfferExchange\n ) private returns (bool) {\n if (user == address(0)) revert InvalidAddress();\n\n _removeOfferFromUserMapping(user, cardNumber, offerId);\n _removeOfferFromCardNumberMapping(user, cardNumber, offerId);\n _removeOfferByOfferId(offerId);\n offersByUserCounter[user] -= 1;\n offersByCardNumberCounter[cardNumber] -= 1;\n offersTotalCounter -= 1;\n\n if (removeCardInInventoryWhenOffer && !fromConfirmOfferExchange) {\n gammaCardsContract.restoreCardByOffer(user, cardNumber);\n }\n\n emit OfferRemoved(user, cardNumber);\n return true;\n }\n\n function _removeOfferFromUserMapping(\n address user,\n uint8 cardNumber,\n string memory offerId\n ) private {\n Offer[] storage userOffers = offersByUser[user];\n for (uint256 i = 0; i < userOffers.length; i++) {\n if (_sameOfferId(userOffers[i].offerId, offerId)) {\n if (userOffers[i].owner != user || userOffers[i].cardNumber != cardNumber)\n revert RemoveOfferFromUserMapping_DoNotMatch();\n if (i < (userOffers.length - 1)) {\n userOffers[i] = userOffers[userOffers.length - 1];\n }\n userOffers.pop();\n break;\n }\n }\n }\n\n function _removeOfferFromCardNumberMapping(\n address user,\n uint8 cardNumber,\n string memory offerId\n ) private {\n Offer[] storage cardOffers = offersByCardNumber[cardNumber];\n\n for (uint256 i = 0; i < cardOffers.length; i++) {\n if (_sameOfferId(cardOffers[i].offerId, offerId)) {\n if (cardOffers[i].owner != user || cardOffers[i].cardNumber != cardNumber)\n revert RemoveOfferFromCardNumberMapping_DoNotMatch();\n\n if (i < cardOffers.length - 1) {\n cardOffers[i] = cardOffers[cardOffers.length - 1];\n }\n cardOffers.pop();\n break;\n }\n }\n }\n\n function _removeOfferByOfferId(string memory offerId) private returns (bool) {\n bool deleted = false;\n for (uint256 j = 0; j < offers.length; j++) {\n if (j < offers.length && _sameOfferId(offers[j].offerId, offerId)) {\n delete offers[j];\n offers[j] = offers[offers.length - 1];\n offers.pop();\n deleted = true;\n break;\n }\n }\n return deleted;\n }\n\n function _emptyOffer() internal pure returns (Offer memory) {\n return Offer(\"\", 0, new uint8[](0), address(0), 0);\n }\n\n function _sameOfferId(\n string memory offerId1,\n string memory offerId2\n ) internal pure returns (bool) {\n return keccak256(abi.encodePacked(offerId1)) == keccak256(abi.encodePacked(offerId2));\n }\n}\n"},"contracts/gamma/GammaPacks.v3.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\nimport {LibControlMgmt} from \"./libs/LibControlMgmt.sol\";\nimport {console} from \"hardhat/console.sol\";\n\nerror NotGammaCardsContract();\nerror OwnlyOwners();\nerror InvalidAddress();\nerror InvalidNumberOfPacks();\nerror InsufficientPacksAvailable();\nerror TransferPrizeError(address _to);\nerror InsufficientAllowance();\nerror InsufficientBalance();\nerror NotYourPack();\nerror ContractAddressNotSet();\n\ninterface IGammaCardsContract {\n function setPrizesBalance(uint256 amount) external;\n\n function changePackPrice(uint256 amount) external;\n}\n\ninterface IgammaTicketsContract {\n function getLotteryWinner()\n external\n returns (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user);\n\n function deleteAllTickets() external;\n}\n\ncontract NofGammaPacksV3 is Ownable {\n using LibControlMgmt for LibControlMgmt.Data;\n\n IGammaCardsContract public gammaCardsContract;\n IgammaTicketsContract public gammaTicketsContract;\n\n LibControlMgmt.Data private ownersData;\n\n address public DAI_TOKEN;\n address public s_balanceReceiver;\n uint256 public constant TOTALSUPPLY = 50000;\n uint256 public s_packPrice = 12e17; // 1.2 DAI\n uint256 private s_packsCounter = 0;\n bool s_transferDai = true;\n\n mapping(uint256 tokenId => address owner) public s_packs;\n mapping(address owner => uint256[] tokenIds) public s_packsByUser;\n\n event NewGammaCardsContract(address indexed newCardsContract);\n event NewGammaTicketsContract(address indexed newGammaTicketContract);\n event NewBalanceReceiver(address indexed balanceReceiver);\n event PackPurchased(address indexed buyer, uint256 indexed tokenId);\n event PacksPurchased(address indexed buyer, uint256[] indexed tokenIds);\n event PackTransfered(address indexed from, address indexed to, uint256 indexed tokenId);\n event PacksTransfered(address indexed from, address indexed to, uint256[] indexed tokenId);\n event PackOpened(address indexed user, uint256 indexed tokenId);\n event NewPrice(uint256 indexed newPrice);\n\n modifier onlyGammaCardsContract() {\n if (msg.sender != address(gammaCardsContract)) revert NotGammaCardsContract();\n _;\n }\n\n modifier onlyOwners() {\n if (!ownersData.owners[msg.sender]) revert OwnlyOwners();\n _;\n }\n\n constructor(\n address _daiTokenAddress,\n address _balanceReceiver,\n address _gammaCardsContract,\n address _gammaTicketsContract\n ) Ownable(msg.sender) {\n if (\n _balanceReceiver == address(0) ||\n _gammaCardsContract == address(0) ||\n _gammaTicketsContract == address(0)\n ) revert InvalidAddress();\n\n DAI_TOKEN = _daiTokenAddress;\n s_balanceReceiver = _balanceReceiver;\n gammaCardsContract = IGammaCardsContract(_gammaCardsContract);\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n\n ownersData.owners[msg.sender] = true;\n }\n\n function addOwner(address _newOwner) external onlyOwners {\n ownersData.addOwner(_newOwner);\n }\n\n function removeOwner(address _ownerToRemove) external onlyOwners {\n ownersData.removeOwner(_ownerToRemove);\n }\n\n function changeBalanceReceiver(address _newBalanceReceiver) external onlyOwners {\n if (_newBalanceReceiver == address(0)) revert InvalidAddress();\n s_balanceReceiver = _newBalanceReceiver;\n emit NewBalanceReceiver(_newBalanceReceiver);\n }\n\n function changePrice(uint256 _newPrice) public onlyOwners {\n s_packPrice = _newPrice;\n gammaCardsContract.changePackPrice(_newPrice);\n emit NewPrice(_newPrice);\n }\n\n function changeTransferDaiFlag(bool _transferDai) public onlyOwners {\n s_transferDai = _transferDai;\n }\n\n function setGammaCardsContract(address _gammaCardsContract) public onlyOwners {\n if (_gammaCardsContract == address(0)) revert InvalidAddress();\n gammaCardsContract = IGammaCardsContract(_gammaCardsContract);\n emit NewGammaCardsContract(_gammaCardsContract);\n }\n\n function setGammaTicketsContract(address _gammaTicketsContract) public onlyOwners {\n if (_gammaTicketsContract == address(0)) revert InvalidAddress();\n gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract);\n emit NewGammaTicketsContract(_gammaTicketsContract);\n }\n\n function isOwner(address user) external view returns (bool) {\n return ownersData.owners[user];\n }\n\n function getPrizeAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) {\n return (s_packPrice - (s_packPrice / 6)) * numberOfPacks;\n }\n\n function getPrizeNoFAccountAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) {\n uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks);\n return (s_packPrice * numberOfPacks) - prizesAmount;\n }\n\n function getAmountRequiredToBuyPacks(uint256 numberOfPacks) public view returns (uint256) {\n uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks);\n uint256 NoFAccountAmount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks);\n return prizesAmount + NoFAccountAmount;\n }\n\n function getPacksByUser(address owner) public view returns (uint256[] memory) {\n return s_packsByUser[owner];\n }\n\n function getPackOwner(uint256 tokenId) public view returns (address) {\n return s_packs[tokenId];\n }\n\n function meetQuantityConditionsToBuy(uint256 numberOfPacks) public view returns (bool) {\n if (numberOfPacks == 0) revert InvalidNumberOfPacks();\n return (s_packsCounter + numberOfPacks) < TOTALSUPPLY;\n }\n\n function buyPack() public returns (uint256) {\n return _buyPack(msg.sender);\n }\n\n function buyPacks(uint256 numberOfPacks) public returns (uint256[] memory) {\n return _buyPacks(msg.sender, numberOfPacks);\n }\n\n function buyPackByUser(address user) public onlyOwners returns (uint256) {\n return _buyPack(user);\n }\n\n function buyPacksByUser(\n address user,\n uint256 numberOfPacks\n ) public onlyOwners returns (uint256[] memory) {\n return _buyPacks(user, numberOfPacks);\n }\n\n function _buyPack(address user) private returns (uint256) {\n uint256[] memory tokenIds = _buyPacks(user, 1);\n return tokenIds[0];\n }\n\n function _buyPacks(address user, uint256 numberOfPacks) private returns (uint256[] memory) {\n if (user == address(0)) revert InvalidAddress();\n if (numberOfPacks == 0 || numberOfPacks > 100) revert InvalidNumberOfPacks();\n if ((s_packsCounter + numberOfPacks) >= TOTALSUPPLY) revert InsufficientPacksAvailable();\n uint256[] memory tokenIds = new uint256[](numberOfPacks);\n uint256 m_packsCounter = s_packsCounter;\n\n for (uint256 i; i < numberOfPacks;) {\n if (m_packsCounter >= TOTALSUPPLY) revert InsufficientPacksAvailable();\n s_packs[m_packsCounter] = user;\n s_packsByUser[user].push(m_packsCounter);\n tokenIds[i] = m_packsCounter;\n m_packsCounter++;\n unchecked {\n i++;\n }\n }\n \n s_packsCounter = m_packsCounter;\n\n bool transferPrizeResult = _transferPrizesAmounts(user, numberOfPacks);\n if (!transferPrizeResult) revert TransferPrizeError(user);\n\n if (numberOfPacks == 1) {\n emit PackPurchased(user, tokenIds[0]);\n } else {\n emit PacksPurchased(user, tokenIds);\n }\n \n return tokenIds;\n }\n\n function _transferPrizesAmounts(address user, uint256 numberOfPacks) private returns (bool) {\n uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks);\n uint256 prizeNoFAccount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks);\n gammaCardsContract.setPrizesBalance(prizesAmount);\n\n if (s_transferDai) {\n IERC20 erc20Token = IERC20(DAI_TOKEN);\n\n if (erc20Token.allowance(user, address(this)) < (prizesAmount + prizeNoFAccount)) revert InsufficientAllowance();\n if (erc20Token.balanceOf(user) < prizesAmount || erc20Token.balanceOf(user) < prizeNoFAccount)\n revert InsufficientBalance();\n\n // send prize amount to the card contract\n bool successTx1 = erc20Token.transferFrom(user, address(gammaCardsContract), prizesAmount);\n if (!successTx1) revert TransferPrizeError(address(gammaCardsContract));\n\n // send profit amount to NoF account\n bool successTx2 = erc20Token.transferFrom(user, s_balanceReceiver, prizeNoFAccount);\n if (!successTx2) revert TransferPrizeError(s_balanceReceiver);\n }\n return true;\n }\n\n function deleteTokenId(uint256 tokenId, address owner) internal {\n uint256 packsByUserLength = s_packsByUser[owner].length;\n for (uint256 i; i < packsByUserLength; i++) {\n if (s_packsByUser[owner][i] == tokenId) {\n s_packsByUser[owner][i] = s_packsByUser[owner][s_packsByUser[owner].length - 1];\n s_packsByUser[owner].pop();\n break;\n }\n }\n }\n\n function transferPack(address to, uint256 tokenId) public {\n _transferPack(to, tokenId);\n }\n\n function transferPacks(address to, uint256[] memory tokenIds) public {\n for (uint256 i = 0; i < tokenIds.length; i++) {\n uint256 tokenId = tokenIds[i];\n _transferPack(to, tokenId);\n }\n emit PacksTransfered(msg.sender, to, tokenIds);\n }\n\n function _transferPack(address to, uint256 tokenId) private {\n if (to == address(0)) revert InvalidAddress();\n if (s_packs[tokenId] != msg.sender) revert NotYourPack();\n s_packs[tokenId] = to;\n deleteTokenId(tokenId, msg.sender);\n s_packsByUser[to].push(tokenId);\n emit PackTransfered(msg.sender, to, tokenId);\n }\n\n function openPack(uint256 tokenId, address owner) public onlyGammaCardsContract {\n _openPack(tokenId, owner);\n }\n\n function openPacks(uint256[] memory tokenIds, address owner) public onlyGammaCardsContract {\n for (uint256 i = 0; i < tokenIds.length; i++) {\n uint256 tokenId = tokenIds[i];\n _openPack(tokenId, owner);\n }\n }\n\n function _openPack(uint256 tokenId, address owner) private {\n deleteTokenId(tokenId, owner);\n delete s_packs[tokenId];\n emit PackOpened(owner, tokenId);\n }\n\n function _lottery() private {\n if (address(gammaTicketsContract) == address(0)) revert ContractAddressNotSet();\n // (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user) = gammaTicketsContract.getLotteryWinner();\n\n // TODO: get %price from gamma cards contract\n\n // TODO: transfer price\n if (s_transferDai) {\n // IERC20 erc20Token = IERC20(DAI_TOKEN);\n }\n\n // TODO: burn tickets en gamma tickets contract\n gammaTicketsContract.deleteAllTickets();\n }\n\n // for testing purposes only, will delete upon deployment\n function testOpenPack(uint256 tokenId, address owner) public onlyOwners {\n _openPack(tokenId, owner);\n }\n\n function testOpenPacks(uint256[] memory tokenIds, address owner) public onlyOwners {\n for (uint256 i = 0; i < tokenIds.length; i++) {\n uint256 tokenId = tokenIds[i];\n _openPack(tokenId, owner);\n }\n }\n // for testing purposes only, will delete upon deployment\n}\n"},"contracts/gamma/libs/LibControlMgmt.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nlibrary LibControlMgmt {\n struct Data {\n mapping(address => bool) owners;\n mapping(address => bool) signers;\n }\n\n event NewOwnerAdded(address newOwner);\n event OwnerRemoved(address owner);\n event NewSignerAdded(address newSigner);\n event SignerRemoved(address signer);\n\n function addOwner(Data storage self, address newOwner) external {\n require(newOwner != address(0), \"Invalid address.\");\n require(!self.owners[newOwner], \"Address is already an owner.\");\n self.owners[newOwner] = true;\n emit NewOwnerAdded(newOwner);\n }\n\n function removeOwner(Data storage self, address ownerToRemove) external {\n require(ownerToRemove != address(0), \"Invalid address.\");\n require(self.owners[ownerToRemove], \"Address is not an owner.\");\n require(ownerToRemove != msg.sender, \"You cannot remove yourself as an owner.\");\n self.owners[ownerToRemove] = false;\n emit OwnerRemoved(ownerToRemove);\n }\n\n function addSigner(Data storage self, address newSigner) external {\n require(newSigner != address(0), \"Invalid address.\");\n require(!self.signers[newSigner], \"Address is already a signer.\");\n self.signers[newSigner] = true;\n emit NewSignerAdded(newSigner);\n }\n\n function removeSigner(Data storage self, address signerToRemove) external {\n require(signerToRemove != address(0), \"Invalid address.\");\n require(self.signers[signerToRemove], \"Address is not a signer.\");\n require(signerToRemove != msg.sender, \"You cannot remove yourself as a signer.\");\n self.signers[signerToRemove] = false;\n emit SignerRemoved(signerToRemove);\n }\n}\n"},"contracts/gamma/libs/LibPackVerifier.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\n\n\nlibrary LibPackVerifier {\n using ECDSA for bytes32;\n using MessageHashUtils for bytes32;\n\n function verifyPackSigner(\n address sender,\n uint256 packNumber,\n uint8[] memory packData,\n bytes calldata signature\n ) public pure returns (address) {\n bytes32 messageHash = keccak256(\n abi.encodePacked(sender, packNumber, packData, '0xf1dD71895e49b1563693969de50898197cDF3481')\n ).toEthSignedMessageHash();\n\n address recoveredSigner = messageHash.recover(signature);\n return recoveredSigner;\n }\n}\n"},"contracts/gamma/libs/LibStringUtils.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nlibrary LibStringUtils {\n\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.sol#L15-L35\n function toString(uint256 value) public pure returns (string memory) {\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n}\n"},"contracts/testDai/TestDAI.v3.sol":{"content":"// SPDX-License-Identifier: MIT\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 GSN 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 payable) {\n return payable(address(msg.sender));\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n // silence state mutability warning without generating bytecode\n // more info: see https://github.com/ethereum/solidity/issues/2691\n this; \n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC20/IERC20.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * 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 SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // 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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // According to EIP-1052, 0x0 is the value returned for not-yet created accounts\n // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned\n // for accounts without code, i.e. `keccak256('')`\n bytes32 codehash;\n bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;\n // solhint-disable-next-line no-inline-assembly\n assembly { codehash := extcodehash(account) }\n return (codehash != accountHash && codehash != 0x0);\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal \n returns (bytes memory) {\n return _functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target, bytes memory data, \n uint256 value, string memory errorMessage) internal returns (bytes memory) {\n\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n return _functionCallWithValue(target, data, value, errorMessage);\n }\n\n function _functionCallWithValue(\n address target, bytes memory data, \n uint256 weiValue, string memory errorMessage) private returns (bytes memory) {\n \n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: contracts/child/ChildToken/UpgradeableChildERC20/ERC20.sol\n\n\n\npragma solidity ^0.8.20;\n\n\n\n\n/**\n * Modified openzeppelin implemtation to add setters for name, symbol and decimals.\n * This was needed because the variables cannot be set in constructor as the contract is upgradeable.\n */\n\n/**\n * @dev openzeppelin Implementation of the {IERC20} interface.\n *\n * Modified to add setters for name, symbol and decimals. This was needed\n * because\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin guidelines: functions revert instead\n * of returning `false` on failure. This behavior is nonetheless conventional\n * and does not conflict with the expectations of ERC20 applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20 {\n using SafeMath for uint256;\n using Address for address;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n /**\n * @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n * a default value of 18.\n *\n * To select a different value for {decimals}, use {_setupDecimals}.\n *\n * All three of these values are immutable: they can only be set once during\n * construction.\n */\n constructor (string memory __name, string memory __symbol) {\n _name = __name;\n _symbol = __symbol;\n _decimals = 18;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view returns (string memory) {\n return _name;\n }\n\n function setName(string memory newName) internal {\n _name = newName;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view returns (string memory) {\n return _symbol;\n }\n\n function setSymbol(string memory newSymbol) internal {\n _symbol = newSymbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n * called.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view returns (uint8) {\n return _decimals;\n }\n\n function setDecimals(uint8 newDecimals) internal {\n _decimals = newDecimals;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for ``sender``'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \n \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \n \"ERC20: decreased allowance below zero\"));\n return true;\n }\n\n /**\n * @dev Moves tokens `amount` from `sender` to `recipient`.\n *\n * This is internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(address sender, address recipient, uint256 amount) internal virtual {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(sender, recipient, amount);\n\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\n _balances[recipient] = _balances[recipient].add(amount);\n emit Transfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements\n *\n * - `to` cannot be the zero address. \n */\n function _mint(address account, uint256 amount) public virtual { \n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\n _totalSupply = _totalSupply.sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n *\n * This is internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(address owner, address spender, uint256 amount) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Sets {decimals} to a value other than the default one of 18.\n *\n * WARNING: This function should only be called from the constructor. Most\n * applications that interact with token contracts will not expect\n * {decimals} to ever change, and may work incorrectly if it does.\n */\n function _setupDecimals(uint8 decimals_) internal {\n _decimals = decimals_;\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be to transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\n\n\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`\n * (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/access/AccessControl.sol\n\n\n\npragma solidity ^0.8.20;\n\n\n\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context {\n using EnumerableSet for EnumerableSet.AddressSet;\n using Address for address;\n\n struct RoleData {\n EnumerableSet.AddressSet members;\n bytes32 adminRole;\n }\n\n mapping (bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view returns (bool) {\n return _roles[role].members.contains(account);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view returns (uint256) {\n return _roles[role].members.length();\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view returns (address) {\n return _roles[role].members.at(index);\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to grant\");\n\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) public virtual {\n require(hasRole(_roles[role].adminRole, _msgSender()), \"AccessControl: sender must be an admin to revoke\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) public virtual {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n emit RoleAdminChanged(role, _roles[role].adminRole, adminRole);\n _roles[role].adminRole = adminRole;\n }\n\n function _grantRole(bytes32 role, address account) private {\n if (_roles[role].members.add(account)) {\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n function _revokeRole(bytes32 role, address account) private {\n if (_roles[role].members.remove(account)) {\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n}\n\n// File: contracts/common/AccessControlMixin.sol\n\npragma solidity ^0.8.20;\n\n\ncontract AccessControlMixin is AccessControl {\n string private _revertMsg;\n function _setupContractId(string memory contractId) internal {\n _revertMsg = string(abi.encodePacked(contractId, \": INSUFFICIENT_PERMISSIONS\"));\n }\n\n modifier only(bytes32 role) {\n require(\n hasRole(role, _msgSender()),\n _revertMsg\n );\n _;\n }\n}\n\n// File: contracts/child/ChildToken/IChildToken.sol\n\npragma solidity ^0.8.20;\n\ninterface IChildToken {\n function deposit(address user, bytes calldata depositData) external;\n}\n\n// File: contracts/common/Initializable.sol\n\npragma solidity ^0.8.20;\n\ncontract Initializable {\n bool inited = false;\n\n modifier initializer() {\n require(!inited, \"already inited\");\n _;\n inited = true;\n }\n}\n\n// File: contracts/common/EIP712Base.sol\n\npragma solidity ^0.8.20;\n\n\ncontract EIP712Base is Initializable {\n struct EIP712Domain {\n string name;\n string version;\n address verifyingContract;\n bytes32 salt;\n }\n\n bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(\n bytes(\n \"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\"\n )\n );\n bytes32 internal domainSeperator;\n\n // supposed to be called once while initializing.\n // one of the contractsa that inherits this contract follows proxy pattern\n // so it is not possible to do this in a constructor\n function _initializeEIP712(\n string memory name,\n string memory version\n )\n internal\n initializer\n {\n _setDomainSeperator(name, version);\n }\n\n function _setDomainSeperator(string memory name, string memory version) internal {\n domainSeperator = keccak256(\n abi.encode(\n EIP712_DOMAIN_TYPEHASH,\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n address(this),\n bytes32(getChainId())\n )\n );\n }\n\n function getDomainSeperator() public view returns (bytes32) {\n return domainSeperator;\n }\n\n function getChainId() public view returns (uint256) {\n uint256 id;\n assembly {\n id := chainid()\n }\n return id;\n }\n\n /**\n * Accept message hash and returns hash message in EIP712 compatible form\n * So that it can be used to recover signer from signature signed using EIP712 formatted data\n * https://eips.ethereum.org/EIPS/eip-712\n * \"\\\\x19\" makes the encoding deterministic\n * \"\\\\x01\" is the version byte to make it compatible to EIP-191\n */\n function toTypedMessageHash(bytes32 messageHash)\n internal\n view\n returns (bytes32)\n {\n return\n keccak256(\n abi.encodePacked(\"\\x19\\x01\", getDomainSeperator(), messageHash)\n );\n }\n}\n\n// File: contracts/common/NativeMetaTransaction.sol\n\npragma solidity ^0.8.20;\n\n\n\ncontract NativeMetaTransaction is EIP712Base {\n using SafeMath for uint256;\n bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256(\n bytes(\n \"MetaTransaction(uint256 nonce,address from,bytes functionSignature)\"\n )\n );\n event MetaTransactionExecuted(\n address userAddress,\n address payable relayerAddress,\n bytes functionSignature\n );\n mapping(address => uint256) nonces;\n\n /*\n * Meta transaction structure.\n * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas\n * He should call the desired function directly in that case.\n */\n struct MetaTransaction {\n uint256 nonce;\n address from;\n bytes functionSignature;\n }\n\n function executeMetaTransaction(\n address userAddress,\n bytes memory functionSignature,\n bytes32 sigR,\n bytes32 sigS,\n uint8 sigV\n ) public payable returns (bytes memory) {\n MetaTransaction memory metaTx = MetaTransaction({\n nonce: nonces[userAddress],\n from: userAddress,\n functionSignature: functionSignature\n });\n\n require(\n verify(userAddress, metaTx, sigR, sigS, sigV),\n \"Signer and signature do not match\"\n );\n\n // increase nonce for user (to avoid re-use)\n nonces[userAddress] = nonces[userAddress].add(1);\n\n emit MetaTransactionExecuted(\n userAddress,\n payable(msg.sender),\n functionSignature\n );\n\n // Append userAddress and relayer address at the end to extract it from calling context\n (bool success, bytes memory returnData) = address(this).call(\n abi.encodePacked(functionSignature, userAddress)\n );\n require(success, \"Function call not successful\");\n\n return returnData;\n }\n\n function hashMetaTransaction(MetaTransaction memory metaTx)\n internal\n pure\n returns (bytes32)\n {\n return\n keccak256(\n abi.encode(\n META_TRANSACTION_TYPEHASH,\n metaTx.nonce,\n metaTx.from,\n keccak256(metaTx.functionSignature)\n )\n );\n }\n\n function getNonce(address user) public view returns (uint256 nonce) {\n nonce = nonces[user];\n }\n\n function verify(\n address signer,\n MetaTransaction memory metaTx,\n bytes32 sigR,\n bytes32 sigS,\n uint8 sigV\n ) internal view returns (bool) {\n require(signer != address(0), \"NativeMetaTransaction: INVALID_SIGNER\");\n return\n signer ==\n ecrecover(\n toTypedMessageHash(hashMetaTransaction(metaTx)),\n sigV,\n sigR,\n sigS\n );\n }\n}\n\n// File: contracts/ChainConstants.sol\n\npragma solidity ^0.8.20;\n\ncontract ChainConstants {\n string constant public ERC712_VERSION = \"1\";\n\n uint256 constant public ROOT_CHAIN_ID = 1;\n bytes constant public ROOT_CHAIN_ID_BYTES = hex\"01\";\n\n uint256 constant public CHILD_CHAIN_ID = 137;\n bytes constant public CHILD_CHAIN_ID_BYTES = hex\"89\";\n}\n\n// File: contracts/common/ContextMixin.sol\n\npragma solidity ^0.8.20;\n\nabstract contract ContextMixin {\n function msgSender()\n internal\n view\n returns (address payable sender)\n {\n if (msg.sender == address(this)) {\n bytes memory array = msg.data;\n uint256 index = msg.data.length;\n assembly {\n // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those.\n sender := and(\n mload(add(array, index)),\n 0xffffffffffffffffffffffffffffffffffffffff\n )\n }\n } else {\n sender = payable(msg.sender);\n }\n return sender;\n }\n}\n\n// File: contracts/child/ChildToken/UpgradeableChildERC20/UChildERC20.sol\n\npragma solidity ^0.8.20;\n\n\ncontract UChildERC20 is\n ERC20,\n IChildToken,\n AccessControlMixin,\n NativeMetaTransaction,\n ChainConstants,\n ContextMixin\n{\n bytes32 public constant DEPOSITOR_ROLE = keccak256(\"DEPOSITOR_ROLE\");\n\n constructor() ERC20(\"DAI\", \"DAI\") {}\n\n /**\n * @notice Initialize the contract after it has been proxified\n * @dev meant to be called once immediately after deployment\n */\n function initialize(\n string calldata name_,\n string calldata symbol_,\n uint8 decimals_,\n address childChainManager\n )\n external\n initializer\n {\n setName(name_);\n setSymbol(symbol_);\n setDecimals(decimals_);\n _setupContractId(string(abi.encodePacked(\"Child\", symbol_)));\n _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\n _setupRole(DEPOSITOR_ROLE, childChainManager);\n _initializeEIP712(name_, ERC712_VERSION);\n }\n\n // This is to support Native meta transactions\n // never use msg.sender directly, use _msgSender() instead\n function _msgSender()\n internal\n override\n view\n returns (address payable sender)\n {\n return ContextMixin.msgSender();\n }\n\n function changeName(string calldata name_) external only(DEFAULT_ADMIN_ROLE) {\n setName(name_);\n _setDomainSeperator(name_, ERC712_VERSION);\n }\n\n /**\n * @notice called when token is deposited on root chain\n * @dev Should be callable only by ChildChainManager\n * Should handle deposit by minting the required amount for user\n * Make sure minting is done only by this function\n * @param user user address for whom deposit is being done\n * @param depositData abi encoded amount\n */\n function deposit(address user, bytes calldata depositData)\n external\n override\n only(DEPOSITOR_ROLE)\n {\n uint256 amount = abi.decode(depositData, (uint256));\n _mint(user, amount);\n }\n\n /**\n * @notice called when user wants to withdraw tokens back to root chain\n * @dev Should burn user's tokens. This transaction will be verified when exiting on root chain\n * @param amount amount of tokens to withdraw\n */\n function withdraw(uint256 amount) external {\n _burn(_msgSender(), amount);\n }\n}\n\n// File: contracts/child/ChildToken/DappTokens/UChildDAI.sol\n\npragma solidity ^0.8.20;\n\n\ncontract NofTestDAIV3 is UChildERC20 {\n // bytes32 public constant PERMIT_TYPEHASH = \n // keccak256(\"Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\");\n bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;\n\n // --- Alias ---\n function push(address usr, uint wad) external {\n transferFrom(msg.sender, usr, wad);\n }\n function pull(address usr, uint wad) external {\n transferFrom(usr, msg.sender, wad);\n }\n function move(address src, address dst, uint wad) external {\n transferFrom(src, dst, wad);\n }\n\n // --- Approve by signature ---\n function permit(\n address holder,\n address spender,\n uint256 nonce,\n uint256 expiry,\n bool allowed,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n getDomainSeperator(),\n keccak256(\n abi.encode(\n PERMIT_TYPEHASH,\n holder,\n spender,\n nonce,\n expiry,\n allowed\n )\n )\n ));\n\n require(holder == ecrecover(digest, v, r, s), \"UChildDAI: INVALID-PERMIT\");\n require(expiry == 0 || block.timestamp <= expiry, \"UChildDAI: PERMIT-EXPIRED\");\n require(nonce == nonces[holder]++, \"UChildDAI: INVALID-NONCE\");\n uint wad = allowed ? type(uint).max : 0;\n _approve(holder, spender, wad);\n }\n}"},"hardhat/console.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nlibrary console {\n address constant CONSOLE_ADDRESS =\n 0x000000000000000000636F6e736F6c652e6c6f67;\n\n function _sendLogPayloadImplementation(bytes memory payload) internal view {\n address consoleAddress = CONSOLE_ADDRESS;\n /// @solidity memory-safe-assembly\n assembly {\n pop(\n staticcall(\n gas(),\n consoleAddress,\n add(payload, 32),\n mload(payload),\n 0,\n 0\n )\n )\n }\n }\n\n function _castToPure(\n function(bytes memory) internal view fnIn\n ) internal pure returns (function(bytes memory) pure fnOut) {\n assembly {\n fnOut := fnIn\n }\n }\n\n function _sendLogPayload(bytes memory payload) internal pure {\n _castToPure(_sendLogPayloadImplementation)(payload);\n }\n\n function log() internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log()\"));\n }\n function logInt(int256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(int256)\", p0));\n }\n\n function logUint(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function logString(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function logBool(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function logAddress(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function logBytes(bytes memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n }\n\n function logBytes1(bytes1 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n }\n\n function logBytes2(bytes2 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n }\n\n function logBytes3(bytes3 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n }\n\n function logBytes4(bytes4 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n }\n\n function logBytes5(bytes5 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n }\n\n function logBytes6(bytes6 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n }\n\n function logBytes7(bytes7 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n }\n\n function logBytes8(bytes8 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n }\n\n function logBytes9(bytes9 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n }\n\n function logBytes10(bytes10 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n }\n\n function logBytes11(bytes11 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n }\n\n function logBytes12(bytes12 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n }\n\n function logBytes13(bytes13 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n }\n\n function logBytes14(bytes14 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n }\n\n function logBytes15(bytes15 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n }\n\n function logBytes16(bytes16 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n }\n\n function logBytes17(bytes17 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n }\n\n function logBytes18(bytes18 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n }\n\n function logBytes19(bytes19 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n }\n\n function logBytes20(bytes20 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n }\n\n function logBytes21(bytes21 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n }\n\n function logBytes22(bytes22 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n }\n\n function logBytes23(bytes23 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n }\n\n function logBytes24(bytes24 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n }\n\n function logBytes25(bytes25 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n }\n\n function logBytes26(bytes26 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n }\n\n function logBytes27(bytes27 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n }\n\n function logBytes28(bytes28 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n }\n\n function logBytes29(bytes29 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n }\n\n function logBytes30(bytes30 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n }\n\n function logBytes31(bytes31 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n }\n\n function logBytes32(bytes32 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n }\n\n function log(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function log(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function log(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function log(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function log(uint256 p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256)\", p0, p1));\n }\n\n function log(uint256 p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string)\", p0, p1));\n }\n\n function log(uint256 p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool)\", p0, p1));\n }\n\n function log(uint256 p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address)\", p0, p1));\n }\n\n function log(string memory p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256)\", p0, p1));\n }\n\n function log(string memory p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n }\n\n function log(string memory p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n }\n\n function log(string memory p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n }\n\n function log(bool p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256)\", p0, p1));\n }\n\n function log(bool p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n }\n\n function log(bool p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n }\n\n function log(bool p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n }\n\n function log(address p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256)\", p0, p1));\n }\n\n function log(address p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n }\n\n function log(address p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n }\n\n function log(address p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n }\n\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[1751],"Ownable":[147]},"id":148,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:0"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":148,"sourceUnit":1752,"src":"128:45:0","symbolAliases":[{"foreign":{"id":2,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"136:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5,"name":"Context","nameLocations":["692:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":1751,"src":"692:7:0"},"id":6,"nodeType":"InheritanceSpecifier","src":"692:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"175:487:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":147,"linearizedBaseContracts":[147,1751],"name":"Ownable","nameLocation":"681:7:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8,"mutability":"mutable","name":"_owner","nameLocation":"722:6:0","nodeType":"VariableDeclaration","scope":147,"src":"706:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"735:85:0","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":13,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:0","nodeType":"ErrorDefinition","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"mutability":"mutable","name":"account","nameLocation":"866:7:0","nodeType":"VariableDeclaration","scope":13,"src":"858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:0"},"src":"825:50:0"},{"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"881:82:0","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":18,"name":"OwnableInvalidOwner","nameLocation":"974:19:0","nodeType":"ErrorDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"mutability":"mutable","name":"owner","nameLocation":"1002:5:0","nodeType":"VariableDeclaration","scope":18,"src":"994:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:0"},"src":"968:41:0"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":24,"name":"OwnershipTransferred","nameLocation":"1021:20:0","nodeType":"EventDefinition","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:0","nodeType":"VariableDeclaration","scope":24,"src":"1042:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:0","nodeType":"VariableDeclaration","scope":24,"src":"1073:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:0"},"src":"1015:84:0"},{"body":{"id":49,"nodeType":"Block","src":"1259:153:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1273:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:0","typeDescriptions":{}}},"id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44,"nodeType":"IfStatement","src":"1269:95:0","trueBody":{"id":43,"nodeType":"Block","src":"1301:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":38,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:0","typeDescriptions":{}}},"id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1322:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42,"nodeType":"RevertStatement","src":"1315:38:0"}]}},{"expression":{"arguments":[{"id":46,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1392:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1373:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48,"nodeType":"ExpressionStatement","src":"1373:32:0"}]},"documentation":{"id":25,"nodeType":"StructuredDocumentation","src":"1105:115:0","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":50,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:0","nodeType":"VariableDeclaration","scope":50,"src":"1237:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[],"src":"1259:0:0"},"scope":147,"src":"1225:187:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":57,"nodeType":"Block","src":"1521:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":53,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"1531:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"1531:13:0"},{"id":56,"nodeType":"PlaceholderStatement","src":"1554:1:0"}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1418:77:0","text":" @dev Throws if called by any account other than the owner."},"id":58,"name":"onlyOwner","nameLocation":"1509:9:0","nodeType":"ModifierDefinition","parameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"1518:2:0"},"src":"1500:62:0","virtual":false,"visibility":"internal"},{"body":{"id":66,"nodeType":"Block","src":"1693:30:0","statements":[{"expression":{"id":64,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1710:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":63,"id":65,"nodeType":"Return","src":"1703:13:0"}]},"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1568:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":67,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:0","nodeType":"FunctionDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"1652:2:0"},"returnParameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67,"src":"1684:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:0"},"scope":147,"src":"1638:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":83,"nodeType":"Block","src":"1841:117:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":71,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1855:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":73,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"1866:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82,"nodeType":"IfStatement","src":"1851:101:0","trueBody":{"id":81,"nodeType":"Block","src":"1880:72:0","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"1928:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1901:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"RevertStatement","src":"1894:47:0"}]}}]},"documentation":{"id":68,"nodeType":"StructuredDocumentation","src":"1729:62:0","text":" @dev Throws if the sender is not the owner."},"id":84,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:0","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[],"src":"1816:2:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"1841:0:0"},"scope":147,"src":"1796:162:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":97,"nodeType":"Block","src":"2347:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":92,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:0","typeDescriptions":{}}},"id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2357:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96,"nodeType":"ExpressionStatement","src":"2357:30:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1964:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":98,"implemented":true,"kind":"function","modifiers":[{"id":88,"kind":"modifierInvocation","modifierName":{"id":87,"name":"onlyOwner","nameLocations":["2337:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2337:9:0"},"nodeType":"ModifierInvocation","src":"2337:9:0"}],"name":"renounceOwnership","nameLocation":"2302:17:0","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"2319:2:0"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"2347:0:0"},"scope":147,"src":"2293:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":125,"nodeType":"Block","src":"2613:145:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2627:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{}}},"id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":120,"nodeType":"IfStatement","src":"2623:91:0","trueBody":{"id":119,"nodeType":"Block","src":"2651:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:0","typeDescriptions":{}}},"id":116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":112,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"2672:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118,"nodeType":"RevertStatement","src":"2665:38:0"}]}},{"expression":{"arguments":[{"id":122,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2742:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2723:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":124,"nodeType":"ExpressionStatement","src":"2723:28:0"}]},"documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"2400:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":126,"implemented":true,"kind":"function","modifiers":[{"id":104,"kind":"modifierInvocation","modifierName":{"id":103,"name":"onlyOwner","nameLocations":["2603:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2603:9:0"},"nodeType":"ModifierInvocation","src":"2603:9:0"}],"name":"transferOwnership","nameLocation":"2552:17:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:0","nodeType":"VariableDeclaration","scope":126,"src":"2570:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[],"src":"2613:0:0"},"scope":147,"src":"2543:215:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":145,"nodeType":"Block","src":"2975:124:0","statements":[{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:0","nodeType":"VariableDeclaration","scope":145,"src":"2985:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":135,"initialValue":{"id":134,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:0"},{"expression":{"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":136,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3020:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":137,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3029:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ExpressionStatement","src":"3020:17:0"},{"eventCall":{"arguments":[{"id":141,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":142,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3083:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":140,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3052:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":144,"nodeType":"EmitStatement","src":"3047:45:0"}]},"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"2764:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":146,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:0","nodeType":"FunctionDefinition","parameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:0","nodeType":"VariableDeclaration","scope":146,"src":"2940:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":128,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:0"},"returnParameters":{"id":131,"nodeType":"ParameterList","parameters":[],"src":"2975:0:0"},"scope":147,"src":"2912:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":148,"src":"663:2438:0","usedErrors":[13,18],"usedEvents":[24]}],"src":"102:3000:0"},"id":0},"@openzeppelin/contracts/interfaces/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","exportedSymbols":{"IERC165":[2464]},"id":152,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":149,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:1"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../utils/introspection/IERC165.sol","id":151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":152,"sourceUnit":2465,"src":"132:59:1","symbolAliases":[{"foreign":{"id":150,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"140:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"106:86:1"},"id":1},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4906.sol","exportedSymbols":{"IERC165":[2464],"IERC4906":[175],"IERC721":[1520]},"id":176,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":153,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:2"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","file":"./IERC165.sol","id":155,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":176,"sourceUnit":152,"src":"133:38:2","symbolAliases":[{"foreign":{"id":154,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"141:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","file":"./IERC721.sol","id":157,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":176,"sourceUnit":180,"src":"172:38:2","symbolAliases":[{"foreign":{"id":156,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"180:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":159,"name":"IERC165","nameLocations":["279:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"279:7:2"},"id":160,"nodeType":"InheritanceSpecifier","src":"279:7:2"},{"baseName":{"id":161,"name":"IERC721","nameLocations":["288:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1520,"src":"288:7:2"},"id":162,"nodeType":"InheritanceSpecifier","src":"288:7:2"}],"canonicalName":"IERC4906","contractDependencies":[],"contractKind":"interface","documentation":{"id":158,"nodeType":"StructuredDocumentation","src":"212:45:2","text":"@title EIP-721 Metadata Update Extension"},"fullyImplemented":false,"id":175,"linearizedBaseContracts":[175,1520,2464],"name":"IERC4906","nameLocation":"267:8:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":163,"nodeType":"StructuredDocumentation","src":"302:201:2","text":"@dev This event emits when the metadata of a token is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFT."},"eventSelector":"f8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7","id":167,"name":"MetadataUpdate","nameLocation":"514:14:2","nodeType":"EventDefinition","parameters":{"id":166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":165,"indexed":false,"mutability":"mutable","name":"_tokenId","nameLocation":"537:8:2","nodeType":"VariableDeclaration","scope":167,"src":"529:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":164,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"528:18:2"},"src":"508:39:2"},{"anonymous":false,"documentation":{"id":168,"nodeType":"StructuredDocumentation","src":"553:212:2","text":"@dev This event emits when the metadata of a range of tokens is changed.\n So that the third-party platforms such as NFT market could\n timely update the images and related attributes of the NFTs."},"eventSelector":"6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c","id":174,"name":"BatchMetadataUpdate","nameLocation":"776:19:2","nodeType":"EventDefinition","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":170,"indexed":false,"mutability":"mutable","name":"_fromTokenId","nameLocation":"804:12:2","nodeType":"VariableDeclaration","scope":174,"src":"796:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":169,"name":"uint256","nodeType":"ElementaryTypeName","src":"796:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":172,"indexed":false,"mutability":"mutable","name":"_toTokenId","nameLocation":"826:10:2","nodeType":"VariableDeclaration","scope":174,"src":"818:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":171,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"795:42:2"},"src":"770:68:2"}],"scope":176,"src":"257:583:2","usedErrors":[],"usedEvents":[167,174,1419,1428,1437]}],"src":"107:734:2"},"id":2},"@openzeppelin/contracts/interfaces/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC721.sol","exportedSymbols":{"IERC721":[1520]},"id":180,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":177,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:3"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../token/ERC721/IERC721.sol","id":179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":180,"sourceUnit":1521,"src":"132:52:3","symbolAliases":[{"foreign":{"id":178,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"140:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"106:79:3"},"id":3},"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[316],"IERC20Errors":[221],"IERC721Errors":[269]},"id":317,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":181,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"138:139:4","text":" @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens."},"fullyImplemented":true,"id":221,"linearizedBaseContracts":[221],"name":"IERC20Errors","nameLocation":"288:12:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":183,"nodeType":"StructuredDocumentation","src":"307:309:4","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":191,"name":"ERC20InsufficientBalance","nameLocation":"627:24:4","nodeType":"ErrorDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"sender","nameLocation":"660:6:4","nodeType":"VariableDeclaration","scope":191,"src":"652:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"balance","nameLocation":"676:7:4","nodeType":"VariableDeclaration","scope":191,"src":"668:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":186,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"needed","nameLocation":"693:6:4","nodeType":"VariableDeclaration","scope":191,"src":"685:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"651:49:4"},"src":"621:80:4"},{"documentation":{"id":192,"nodeType":"StructuredDocumentation","src":"707:152:4","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":196,"name":"ERC20InvalidSender","nameLocation":"870:18:4","nodeType":"ErrorDefinition","parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":194,"mutability":"mutable","name":"sender","nameLocation":"897:6:4","nodeType":"VariableDeclaration","scope":196,"src":"889:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"888:16:4"},"src":"864:41:4"},{"documentation":{"id":197,"nodeType":"StructuredDocumentation","src":"911:159:4","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":201,"name":"ERC20InvalidReceiver","nameLocation":"1081:20:4","nodeType":"ErrorDefinition","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"mutability":"mutable","name":"receiver","nameLocation":"1110:8:4","nodeType":"VariableDeclaration","scope":201,"src":"1102:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"1102:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1101:18:4"},"src":"1075:45:4"},{"documentation":{"id":202,"nodeType":"StructuredDocumentation","src":"1126:345:4","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":210,"name":"ERC20InsufficientAllowance","nameLocation":"1482:26:4","nodeType":"ErrorDefinition","parameters":{"id":209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"mutability":"mutable","name":"spender","nameLocation":"1517:7:4","nodeType":"VariableDeclaration","scope":210,"src":"1509:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":203,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":206,"mutability":"mutable","name":"allowance","nameLocation":"1534:9:4","nodeType":"VariableDeclaration","scope":210,"src":"1526:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":208,"mutability":"mutable","name":"needed","nameLocation":"1553:6:4","nodeType":"VariableDeclaration","scope":210,"src":"1545:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1508:52:4"},"src":"1476:85:4"},{"documentation":{"id":211,"nodeType":"StructuredDocumentation","src":"1567:174:4","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":215,"name":"ERC20InvalidApprover","nameLocation":"1752:20:4","nodeType":"ErrorDefinition","parameters":{"id":214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"approver","nameLocation":"1781:8:4","nodeType":"VariableDeclaration","scope":215,"src":"1773:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":212,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1772:18:4"},"src":"1746:45:4"},{"documentation":{"id":216,"nodeType":"StructuredDocumentation","src":"1797:195:4","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":220,"name":"ERC20InvalidSpender","nameLocation":"2003:19:4","nodeType":"ErrorDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":218,"mutability":"mutable","name":"spender","nameLocation":"2031:7:4","nodeType":"VariableDeclaration","scope":220,"src":"2023:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":217,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2022:17:4"},"src":"1997:43:4"}],"scope":317,"src":"278:1764:4","usedErrors":[191,196,201,210,215,220],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":222,"nodeType":"StructuredDocumentation","src":"2044:141:4","text":" @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens."},"fullyImplemented":true,"id":269,"linearizedBaseContracts":[269],"name":"IERC721Errors","nameLocation":"2196:13:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":223,"nodeType":"StructuredDocumentation","src":"2216:219:4","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":227,"name":"ERC721InvalidOwner","nameLocation":"2446:18:4","nodeType":"ErrorDefinition","parameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":225,"mutability":"mutable","name":"owner","nameLocation":"2473:5:4","nodeType":"VariableDeclaration","scope":227,"src":"2465:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":224,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:15:4"},"src":"2440:40:4"},{"documentation":{"id":228,"nodeType":"StructuredDocumentation","src":"2486:132:4","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":232,"name":"ERC721NonexistentToken","nameLocation":"2629:22:4","nodeType":"ErrorDefinition","parameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":230,"mutability":"mutable","name":"tokenId","nameLocation":"2660:7:4","nodeType":"VariableDeclaration","scope":232,"src":"2652:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":229,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2651:17:4"},"src":"2623:46:4"},{"documentation":{"id":233,"nodeType":"StructuredDocumentation","src":"2675:289:4","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":241,"name":"ERC721IncorrectOwner","nameLocation":"2975:20:4","nodeType":"ErrorDefinition","parameters":{"id":240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":235,"mutability":"mutable","name":"sender","nameLocation":"3004:6:4","nodeType":"VariableDeclaration","scope":241,"src":"2996:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":234,"name":"address","nodeType":"ElementaryTypeName","src":"2996:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":237,"mutability":"mutable","name":"tokenId","nameLocation":"3020:7:4","nodeType":"VariableDeclaration","scope":241,"src":"3012:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":239,"mutability":"mutable","name":"owner","nameLocation":"3037:5:4","nodeType":"VariableDeclaration","scope":241,"src":"3029:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":238,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2995:48:4"},"src":"2969:75:4"},{"documentation":{"id":242,"nodeType":"StructuredDocumentation","src":"3050:152:4","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":246,"name":"ERC721InvalidSender","nameLocation":"3213:19:4","nodeType":"ErrorDefinition","parameters":{"id":245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":244,"mutability":"mutable","name":"sender","nameLocation":"3241:6:4","nodeType":"VariableDeclaration","scope":246,"src":"3233:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":243,"name":"address","nodeType":"ElementaryTypeName","src":"3233:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3232:16:4"},"src":"3207:42:4"},{"documentation":{"id":247,"nodeType":"StructuredDocumentation","src":"3255:159:4","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":251,"name":"ERC721InvalidReceiver","nameLocation":"3425:21:4","nodeType":"ErrorDefinition","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":249,"mutability":"mutable","name":"receiver","nameLocation":"3455:8:4","nodeType":"VariableDeclaration","scope":251,"src":"3447:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"3447:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3446:18:4"},"src":"3419:46:4"},{"documentation":{"id":252,"nodeType":"StructuredDocumentation","src":"3471:247:4","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":258,"name":"ERC721InsufficientApproval","nameLocation":"3729:26:4","nodeType":"ErrorDefinition","parameters":{"id":257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"operator","nameLocation":"3764:8:4","nodeType":"VariableDeclaration","scope":258,"src":"3756:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":253,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":256,"mutability":"mutable","name":"tokenId","nameLocation":"3782:7:4","nodeType":"VariableDeclaration","scope":258,"src":"3774:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":255,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3755:35:4"},"src":"3723:68:4"},{"documentation":{"id":259,"nodeType":"StructuredDocumentation","src":"3797:174:4","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":263,"name":"ERC721InvalidApprover","nameLocation":"3982:21:4","nodeType":"ErrorDefinition","parameters":{"id":262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":261,"mutability":"mutable","name":"approver","nameLocation":"4012:8:4","nodeType":"VariableDeclaration","scope":263,"src":"4004:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":260,"name":"address","nodeType":"ElementaryTypeName","src":"4004:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4003:18:4"},"src":"3976:46:4"},{"documentation":{"id":264,"nodeType":"StructuredDocumentation","src":"4028:197:4","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":268,"name":"ERC721InvalidOperator","nameLocation":"4236:21:4","nodeType":"ErrorDefinition","parameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"operator","nameLocation":"4266:8:4","nodeType":"VariableDeclaration","scope":268,"src":"4258:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":265,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4257:18:4"},"src":"4230:46:4"}],"scope":317,"src":"2186:2092:4","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":270,"nodeType":"StructuredDocumentation","src":"4280:143:4","text":" @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens."},"fullyImplemented":true,"id":316,"linearizedBaseContracts":[316],"name":"IERC1155Errors","nameLocation":"4434:14:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":271,"nodeType":"StructuredDocumentation","src":"4455:361:4","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":281,"name":"ERC1155InsufficientBalance","nameLocation":"4827:26:4","nodeType":"ErrorDefinition","parameters":{"id":280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"sender","nameLocation":"4862:6:4","nodeType":"VariableDeclaration","scope":281,"src":"4854:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":272,"name":"address","nodeType":"ElementaryTypeName","src":"4854:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":275,"mutability":"mutable","name":"balance","nameLocation":"4878:7:4","nodeType":"VariableDeclaration","scope":281,"src":"4870:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":274,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":277,"mutability":"mutable","name":"needed","nameLocation":"4895:6:4","nodeType":"VariableDeclaration","scope":281,"src":"4887:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":276,"name":"uint256","nodeType":"ElementaryTypeName","src":"4887:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":279,"mutability":"mutable","name":"tokenId","nameLocation":"4911:7:4","nodeType":"VariableDeclaration","scope":281,"src":"4903:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":278,"name":"uint256","nodeType":"ElementaryTypeName","src":"4903:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4853:66:4"},"src":"4821:99:4"},{"documentation":{"id":282,"nodeType":"StructuredDocumentation","src":"4926:152:4","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":286,"name":"ERC1155InvalidSender","nameLocation":"5089:20:4","nodeType":"ErrorDefinition","parameters":{"id":285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":284,"mutability":"mutable","name":"sender","nameLocation":"5118:6:4","nodeType":"VariableDeclaration","scope":286,"src":"5110:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":283,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:16:4"},"src":"5083:43:4"},{"documentation":{"id":287,"nodeType":"StructuredDocumentation","src":"5132:159:4","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":291,"name":"ERC1155InvalidReceiver","nameLocation":"5302:22:4","nodeType":"ErrorDefinition","parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"receiver","nameLocation":"5333:8:4","nodeType":"VariableDeclaration","scope":291,"src":"5325:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":288,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5324:18:4"},"src":"5296:47:4"},{"documentation":{"id":292,"nodeType":"StructuredDocumentation","src":"5349:256:4","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":298,"name":"ERC1155MissingApprovalForAll","nameLocation":"5616:28:4","nodeType":"ErrorDefinition","parameters":{"id":297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":294,"mutability":"mutable","name":"operator","nameLocation":"5653:8:4","nodeType":"VariableDeclaration","scope":298,"src":"5645:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":296,"mutability":"mutable","name":"owner","nameLocation":"5671:5:4","nodeType":"VariableDeclaration","scope":298,"src":"5663:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":295,"name":"address","nodeType":"ElementaryTypeName","src":"5663:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5644:33:4"},"src":"5610:68:4"},{"documentation":{"id":299,"nodeType":"StructuredDocumentation","src":"5684:174:4","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":303,"name":"ERC1155InvalidApprover","nameLocation":"5869:22:4","nodeType":"ErrorDefinition","parameters":{"id":302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":301,"mutability":"mutable","name":"approver","nameLocation":"5900:8:4","nodeType":"VariableDeclaration","scope":303,"src":"5892:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":300,"name":"address","nodeType":"ElementaryTypeName","src":"5892:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5891:18:4"},"src":"5863:47:4"},{"documentation":{"id":304,"nodeType":"StructuredDocumentation","src":"5916:197:4","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":308,"name":"ERC1155InvalidOperator","nameLocation":"6124:22:4","nodeType":"ErrorDefinition","parameters":{"id":307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":306,"mutability":"mutable","name":"operator","nameLocation":"6155:8:4","nodeType":"VariableDeclaration","scope":308,"src":"6147:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":305,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6146:18:4"},"src":"6118:47:4"},{"documentation":{"id":309,"nodeType":"StructuredDocumentation","src":"6171:280:4","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":315,"name":"ERC1155InvalidArrayLength","nameLocation":"6462:25:4","nodeType":"ErrorDefinition","parameters":{"id":314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":311,"mutability":"mutable","name":"idsLength","nameLocation":"6496:9:4","nodeType":"VariableDeclaration","scope":315,"src":"6488:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":310,"name":"uint256","nodeType":"ElementaryTypeName","src":"6488:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":313,"mutability":"mutable","name":"valuesLength","nameLocation":"6515:12:4","nodeType":"VariableDeclaration","scope":315,"src":"6507:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":312,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6487:41:4"},"src":"6456:73:4"}],"scope":317,"src":"4424:2107:4","usedErrors":[281,286,291,298,303,308,315],"usedEvents":[]}],"src":"112:6420:4"},"id":4},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[394]},"id":395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":318,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":319,"nodeType":"StructuredDocumentation","src":"132:70:5","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":394,"linearizedBaseContracts":[394],"name":"IERC20","nameLocation":"213:6:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":320,"nodeType":"StructuredDocumentation","src":"226:158:5","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":328,"name":"Transfer","nameLocation":"395:8:5","nodeType":"EventDefinition","parameters":{"id":327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"420:4:5","nodeType":"VariableDeclaration","scope":328,"src":"404:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":324,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"442:2:5","nodeType":"VariableDeclaration","scope":328,"src":"426:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":323,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":326,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"454:5:5","nodeType":"VariableDeclaration","scope":328,"src":"446:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":325,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:57:5"},"src":"389:72:5"},{"anonymous":false,"documentation":{"id":329,"nodeType":"StructuredDocumentation","src":"467:148:5","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":337,"name":"Approval","nameLocation":"626:8:5","nodeType":"EventDefinition","parameters":{"id":336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":331,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"651:5:5","nodeType":"VariableDeclaration","scope":337,"src":"635:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":330,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":333,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"674:7:5","nodeType":"VariableDeclaration","scope":337,"src":"658:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":335,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"691:5:5","nodeType":"VariableDeclaration","scope":337,"src":"683:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":334,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"634:63:5"},"src":"620:78:5"},{"documentation":{"id":338,"nodeType":"StructuredDocumentation","src":"704:65:5","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":343,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:5","nodeType":"FunctionDefinition","parameters":{"id":339,"nodeType":"ParameterList","parameters":[],"src":"794:2:5"},"returnParameters":{"id":342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":343,"src":"820:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":340,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:5"},"scope":394,"src":"774:55:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":344,"nodeType":"StructuredDocumentation","src":"835:71:5","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":351,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"920:9:5","nodeType":"FunctionDefinition","parameters":{"id":347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":346,"mutability":"mutable","name":"account","nameLocation":"938:7:5","nodeType":"VariableDeclaration","scope":351,"src":"930:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":345,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"929:17:5"},"returnParameters":{"id":350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":351,"src":"970:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":348,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"969:9:5"},"scope":394,"src":"911:68:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"985:213:5","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":361,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1212:8:5","nodeType":"FunctionDefinition","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"to","nameLocation":"1229:2:5","nodeType":"VariableDeclaration","scope":361,"src":"1221:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"value","nameLocation":"1241:5:5","nodeType":"VariableDeclaration","scope":361,"src":"1233:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:27:5"},"returnParameters":{"id":360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":361,"src":"1266:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":358,"name":"bool","nodeType":"ElementaryTypeName","src":"1266:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1265:6:5"},"scope":394,"src":"1203:69:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":362,"nodeType":"StructuredDocumentation","src":"1278:264:5","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":371,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1556:9:5","nodeType":"FunctionDefinition","parameters":{"id":367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"owner","nameLocation":"1574:5:5","nodeType":"VariableDeclaration","scope":371,"src":"1566:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":363,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"spender","nameLocation":"1589:7:5","nodeType":"VariableDeclaration","scope":371,"src":"1581:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"1581:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1565:32:5"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":371,"src":"1621:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1620:9:5"},"scope":394,"src":"1547:83:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":372,"nodeType":"StructuredDocumentation","src":"1636:667:5","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":381,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2317:7:5","nodeType":"FunctionDefinition","parameters":{"id":377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":374,"mutability":"mutable","name":"spender","nameLocation":"2333:7:5","nodeType":"VariableDeclaration","scope":381,"src":"2325:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":376,"mutability":"mutable","name":"value","nameLocation":"2350:5:5","nodeType":"VariableDeclaration","scope":381,"src":"2342:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":375,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2324:32:5"},"returnParameters":{"id":380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":381,"src":"2375:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":378,"name":"bool","nodeType":"ElementaryTypeName","src":"2375:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2374:6:5"},"scope":394,"src":"2308:73:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":382,"nodeType":"StructuredDocumentation","src":"2387:297:5","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":393,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2698:12:5","nodeType":"FunctionDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"from","nameLocation":"2719:4:5","nodeType":"VariableDeclaration","scope":393,"src":"2711:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":386,"mutability":"mutable","name":"to","nameLocation":"2733:2:5","nodeType":"VariableDeclaration","scope":393,"src":"2725:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":385,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":388,"mutability":"mutable","name":"value","nameLocation":"2745:5:5","nodeType":"VariableDeclaration","scope":393,"src":"2737:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2710:41:5"},"returnParameters":{"id":392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":393,"src":"2770:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":390,"name":"bool","nodeType":"ElementaryTypeName","src":"2770:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2769:6:5"},"scope":394,"src":"2689:87:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":395,"src":"203:2575:5","usedErrors":[],"usedEvents":[328,337]}],"src":"106:2673:5"},"id":5},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Context":[1751],"ERC165":[2452],"ERC721":[1403],"IERC165":[2464],"IERC721":[1520],"IERC721Errors":[269],"IERC721Metadata":[1721],"IERC721Receiver":[1538],"Strings":[2006]},"id":1404,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":396,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:6"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1521,"src":"133:38:6","symbolAliases":[{"foreign":{"id":397,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"141:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1539,"src":"172:54:6","symbolAliases":[{"foreign":{"id":399,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"180:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":402,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1722,"src":"227:65:6","symbolAliases":[{"foreign":{"id":401,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"235:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":404,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":1752,"src":"293:48:6","symbolAliases":[{"foreign":{"id":403,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"301:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":2007,"src":"342:48:6","symbolAliases":[{"foreign":{"id":405,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"350:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":409,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":2453,"src":"391:69:6","symbolAliases":[{"foreign":{"id":407,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"399:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":408,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2452,"src":"408:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":411,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1404,"sourceUnit":317,"src":"461:66:6","symbolAliases":[{"foreign":{"id":410,"name":"IERC721Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":269,"src":"469:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":413,"name":"Context","nameLocations":["804:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":1751,"src":"804:7:6"},"id":414,"nodeType":"InheritanceSpecifier","src":"804:7:6"},{"baseName":{"id":415,"name":"ERC165","nameLocations":["813:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":2452,"src":"813:6:6"},"id":416,"nodeType":"InheritanceSpecifier","src":"813:6:6"},{"baseName":{"id":417,"name":"IERC721","nameLocations":["821:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":1520,"src":"821:7:6"},"id":418,"nodeType":"InheritanceSpecifier","src":"821:7:6"},{"baseName":{"id":419,"name":"IERC721Metadata","nameLocations":["830:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":1721,"src":"830:15:6"},"id":420,"nodeType":"InheritanceSpecifier","src":"830:15:6"},{"baseName":{"id":421,"name":"IERC721Errors","nameLocations":["847:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":269,"src":"847:13:6"},"id":422,"nodeType":"InheritanceSpecifier","src":"847:13:6"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":412,"nodeType":"StructuredDocumentation","src":"529:246:6","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":1403,"linearizedBaseContracts":[1403,269,1721,1520,2452,2464,1751],"name":"ERC721","nameLocation":"794:6:6","nodeType":"ContractDefinition","nodes":[{"global":false,"id":425,"libraryName":{"id":423,"name":"Strings","nameLocations":["873:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":2006,"src":"873:7:6"},"nodeType":"UsingForDirective","src":"867:26:6","typeName":{"id":424,"name":"uint256","nodeType":"ElementaryTypeName","src":"885:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":427,"mutability":"mutable","name":"_name","nameLocation":"932:5:6","nodeType":"VariableDeclaration","scope":1403,"src":"917:20:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":426,"name":"string","nodeType":"ElementaryTypeName","src":"917:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":429,"mutability":"mutable","name":"_symbol","nameLocation":"979:7:6","nodeType":"VariableDeclaration","scope":1403,"src":"964:22:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":428,"name":"string","nodeType":"ElementaryTypeName","src":"964:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":433,"mutability":"mutable","name":"_owners","nameLocation":"1037:7:6","nodeType":"VariableDeclaration","scope":1403,"src":"993:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":432,"keyName":"tokenId","keyNameLocation":"1009:7:6","keyType":{"id":430,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"993:35:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":431,"name":"address","nodeType":"ElementaryTypeName","src":"1020:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":437,"mutability":"mutable","name":"_balances","nameLocation":"1093:9:6","nodeType":"VariableDeclaration","scope":1403,"src":"1051:51:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":436,"keyName":"owner","keyNameLocation":"1067:5:6","keyType":{"id":434,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1051:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":441,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1153:15:6","nodeType":"VariableDeclaration","scope":1403,"src":"1109:59:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":440,"keyName":"tokenId","keyNameLocation":"1125:7:6","keyType":{"id":438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1109:35:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":439,"name":"address","nodeType":"ElementaryTypeName","src":"1136:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":447,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1243:18:6","nodeType":"VariableDeclaration","scope":1403,"src":"1175:86:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":446,"keyName":"owner","keyNameLocation":"1191:5:6","keyType":{"id":442,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1175:59:6","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":445,"keyName":"operator","keyNameLocation":"1216:8:6","keyType":{"id":443,"name":"address","nodeType":"ElementaryTypeName","src":"1208:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1200:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":444,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":463,"nodeType":"Block","src":"1437:57:6","statements":[{"expression":{"id":457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":455,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"1447:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":456,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":450,"src":"1455:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1447:13:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":458,"nodeType":"ExpressionStatement","src":"1447:13:6"},{"expression":{"id":461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":459,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"1470:7:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":460,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"1480:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1470:17:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":462,"nodeType":"ExpressionStatement","src":"1470:17:6"}]},"documentation":{"id":448,"nodeType":"StructuredDocumentation","src":"1268:108:6","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":464,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"mutability":"mutable","name":"name_","nameLocation":"1407:5:6","nodeType":"VariableDeclaration","scope":464,"src":"1393:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":449,"name":"string","nodeType":"ElementaryTypeName","src":"1393:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":452,"mutability":"mutable","name":"symbol_","nameLocation":"1428:7:6","nodeType":"VariableDeclaration","scope":464,"src":"1414:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":451,"name":"string","nodeType":"ElementaryTypeName","src":"1414:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1392:44:6"},"returnParameters":{"id":454,"nodeType":"ParameterList","parameters":[],"src":"1437:0:6"},"scope":1403,"src":"1381:113:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2451,2463],"body":{"id":494,"nodeType":"Block","src":"1669:192:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":475,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"1698:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":477,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"1718:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$1520_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$1520_$","typeString":"type(contract IERC721)"}],"id":476,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1713:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$1520","typeString":"type(contract IERC721)"}},"id":479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1727:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"1713:25:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1698:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":481,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"1754:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":483,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"1774:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$1721_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$1721_$","typeString":"type(contract IERC721Metadata)"}],"id":482,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1769:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$1721","typeString":"type(contract IERC721Metadata)"}},"id":485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1791:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"1769:33:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1754:48:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1698:104:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":490,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":467,"src":"1842:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":488,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1818:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$1403_$","typeString":"type(contract super ERC721)"}},"id":489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1824:17:6","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2451,"src":"1818:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1818:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1698:156:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":474,"id":493,"nodeType":"Return","src":"1679:175:6"}]},"documentation":{"id":465,"nodeType":"StructuredDocumentation","src":"1500:56:6","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":495,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1570:17:6","nodeType":"FunctionDefinition","overrides":{"id":471,"nodeType":"OverrideSpecifier","overrides":[{"id":469,"name":"ERC165","nameLocations":["1637:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":2452,"src":"1637:6:6"},{"id":470,"name":"IERC165","nameLocations":["1645:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"1645:7:6"}],"src":"1628:25:6"},"parameters":{"id":468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":467,"mutability":"mutable","name":"interfaceId","nameLocation":"1595:11:6","nodeType":"VariableDeclaration","scope":495,"src":"1588:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":466,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1588:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1587:20:6"},"returnParameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":495,"src":"1663:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":472,"name":"bool","nodeType":"ElementaryTypeName","src":"1663:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1662:6:6"},"scope":1403,"src":"1561:300:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1445],"body":{"id":522,"nodeType":"Block","src":"1992:136:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":503,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"2006:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2023:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2015:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":504,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:6","typeDescriptions":{}}},"id":507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":517,"nodeType":"IfStatement","src":"2002:87:6","trueBody":{"id":516,"nodeType":"Block","src":"2027:62:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2075:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":510,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:6","typeDescriptions":{}}},"id":513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":509,"name":"ERC721InvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":227,"src":"2048:18:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":515,"nodeType":"RevertStatement","src":"2041:37:6"}]}},{"expression":{"baseExpression":{"id":518,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"2105:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":520,"indexExpression":{"id":519,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"2115:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2105:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":502,"id":521,"nodeType":"Return","src":"2098:23:6"}]},"documentation":{"id":496,"nodeType":"StructuredDocumentation","src":"1867:48:6","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":523,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1929:9:6","nodeType":"FunctionDefinition","parameters":{"id":499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":498,"mutability":"mutable","name":"owner","nameLocation":"1947:5:6","nodeType":"VariableDeclaration","scope":523,"src":"1939:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":497,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:6"},"returnParameters":{"id":502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":523,"src":"1983:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":500,"name":"uint256","nodeType":"ElementaryTypeName","src":"1983:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1982:9:6"},"scope":1403,"src":"1920:208:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1453],"body":{"id":535,"nodeType":"Block","src":"2257:46:6","statements":[{"expression":{"arguments":[{"id":532,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":526,"src":"2288:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":531,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2274:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2274:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":530,"id":534,"nodeType":"Return","src":"2267:29:6"}]},"documentation":{"id":524,"nodeType":"StructuredDocumentation","src":"2134:46:6","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":536,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2194:7:6","nodeType":"FunctionDefinition","parameters":{"id":527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":526,"mutability":"mutable","name":"tokenId","nameLocation":"2210:7:6","nodeType":"VariableDeclaration","scope":536,"src":"2202:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":525,"name":"uint256","nodeType":"ElementaryTypeName","src":"2202:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2201:17:6"},"returnParameters":{"id":530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":536,"src":"2248:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":528,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2247:9:6"},"scope":1403,"src":"2185:118:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1706],"body":{"id":544,"nodeType":"Block","src":"2425:29:6","statements":[{"expression":{"id":542,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"2442:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":541,"id":543,"nodeType":"Return","src":"2435:12:6"}]},"documentation":{"id":537,"nodeType":"StructuredDocumentation","src":"2309:51:6","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":545,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2374:4:6","nodeType":"FunctionDefinition","parameters":{"id":538,"nodeType":"ParameterList","parameters":[],"src":"2378:2:6"},"returnParameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":545,"src":"2410:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":539,"name":"string","nodeType":"ElementaryTypeName","src":"2410:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2409:15:6"},"scope":1403,"src":"2365:89:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1712],"body":{"id":553,"nodeType":"Block","src":"2580:31:6","statements":[{"expression":{"id":551,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"2597:7:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":550,"id":552,"nodeType":"Return","src":"2590:14:6"}]},"documentation":{"id":546,"nodeType":"StructuredDocumentation","src":"2460:53:6","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":554,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2527:6:6","nodeType":"FunctionDefinition","parameters":{"id":547,"nodeType":"ParameterList","parameters":[],"src":"2533:2:6"},"returnParameters":{"id":550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":554,"src":"2565:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":548,"name":"string","nodeType":"ElementaryTypeName","src":"2565:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2564:15:6"},"scope":1403,"src":"2518:93:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1720],"body":{"id":589,"nodeType":"Block","src":"2756:176:6","statements":[{"expression":{"arguments":[{"id":563,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2780:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":562,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2766:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2766:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":565,"nodeType":"ExpressionStatement","src":"2766:22:6"},{"assignments":[567],"declarations":[{"constant":false,"id":567,"mutability":"mutable","name":"baseURI","nameLocation":"2813:7:6","nodeType":"VariableDeclaration","scope":589,"src":"2799:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":566,"name":"string","nodeType":"ElementaryTypeName","src":"2799:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":570,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":568,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"2823:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2823:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2799:34:6"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":573,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2856:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2850:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":571,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:6","typeDescriptions":{}}},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2865:6:6","memberName":"length","nodeType":"MemberAccess","src":"2850:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2874:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2850:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2923:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2850:75:6","trueExpression":{"arguments":[{"id":581,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2892:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":582,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2901:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2909:8:6","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"2901:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2901:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2878:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":578,"name":"string","nodeType":"ElementaryTypeName","src":"2878:6:6","typeDescriptions":{}}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2885:6:6","memberName":"concat","nodeType":"MemberAccess","src":"2878:13:6","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2878:42:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":561,"id":588,"nodeType":"Return","src":"2843:82:6"}]},"documentation":{"id":555,"nodeType":"StructuredDocumentation","src":"2617:55:6","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":590,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2686:8:6","nodeType":"FunctionDefinition","parameters":{"id":558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":557,"mutability":"mutable","name":"tokenId","nameLocation":"2703:7:6","nodeType":"VariableDeclaration","scope":590,"src":"2695:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":556,"name":"uint256","nodeType":"ElementaryTypeName","src":"2695:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2694:17:6"},"returnParameters":{"id":561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":590,"src":"2741:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":559,"name":"string","nodeType":"ElementaryTypeName","src":"2741:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2740:15:6"},"scope":1403,"src":"2677:255:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":598,"nodeType":"Block","src":"3240:26:6","statements":[{"expression":{"hexValue":"","id":596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3257:2:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":595,"id":597,"nodeType":"Return","src":"3250:9:6"}]},"documentation":{"id":591,"nodeType":"StructuredDocumentation","src":"2938:231:6","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":599,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3183:8:6","nodeType":"FunctionDefinition","parameters":{"id":592,"nodeType":"ParameterList","parameters":[],"src":"3191:2:6"},"returnParameters":{"id":595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":599,"src":"3225:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":593,"name":"string","nodeType":"ElementaryTypeName","src":"3225:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3224:15:6"},"scope":1403,"src":"3174:92:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1493],"body":{"id":614,"nodeType":"Block","src":"3384:52:6","statements":[{"expression":{"arguments":[{"id":608,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":602,"src":"3403:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":609,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":604,"src":"3407:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":610,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"3416:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":607,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1206,1272],"referencedDeclaration":1206,"src":"3394:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3394:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":613,"nodeType":"ExpressionStatement","src":"3394:35:6"}]},"documentation":{"id":600,"nodeType":"StructuredDocumentation","src":"3272:46:6","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":615,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3332:7:6","nodeType":"FunctionDefinition","parameters":{"id":605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":602,"mutability":"mutable","name":"to","nameLocation":"3348:2:6","nodeType":"VariableDeclaration","scope":615,"src":"3340:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":601,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":604,"mutability":"mutable","name":"tokenId","nameLocation":"3360:7:6","nodeType":"VariableDeclaration","scope":615,"src":"3352:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":603,"name":"uint256","nodeType":"ElementaryTypeName","src":"3352:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3339:29:6"},"returnParameters":{"id":606,"nodeType":"ParameterList","parameters":[],"src":"3384:0:6"},"scope":1403,"src":"3323:113:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1509],"body":{"id":631,"nodeType":"Block","src":"3573:78:6","statements":[{"expression":{"arguments":[{"id":624,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":618,"src":"3597:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":623,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3583:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":626,"nodeType":"ExpressionStatement","src":"3583:22:6"},{"expression":{"arguments":[{"id":628,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":618,"src":"3636:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":627,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"3623:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":622,"id":630,"nodeType":"Return","src":"3616:28:6"}]},"documentation":{"id":616,"nodeType":"StructuredDocumentation","src":"3442:50:6","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":632,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3506:11:6","nodeType":"FunctionDefinition","parameters":{"id":619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":618,"mutability":"mutable","name":"tokenId","nameLocation":"3526:7:6","nodeType":"VariableDeclaration","scope":632,"src":"3518:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3517:17:6"},"returnParameters":{"id":622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":632,"src":"3564:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":620,"name":"address","nodeType":"ElementaryTypeName","src":"3564:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3563:9:6"},"scope":1403,"src":"3497:154:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1501],"body":{"id":647,"nodeType":"Block","src":"3793:69:6","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":641,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"3822:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3822:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":643,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"3836:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":644,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"3846:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":640,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3803:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:52:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":646,"nodeType":"ExpressionStatement","src":"3803:52:6"}]},"documentation":{"id":633,"nodeType":"StructuredDocumentation","src":"3657:56:6","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":648,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3727:17:6","nodeType":"FunctionDefinition","parameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":635,"mutability":"mutable","name":"operator","nameLocation":"3753:8:6","nodeType":"VariableDeclaration","scope":648,"src":"3745:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":634,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":637,"mutability":"mutable","name":"approved","nameLocation":"3768:8:6","nodeType":"VariableDeclaration","scope":648,"src":"3763:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":636,"name":"bool","nodeType":"ElementaryTypeName","src":"3763:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3744:33:6"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[],"src":"3793:0:6"},"scope":1403,"src":"3718:144:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1519],"body":{"id":664,"nodeType":"Block","src":"4022:59:6","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":658,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"4039:18:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":660,"indexExpression":{"id":659,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"4058:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4039:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":662,"indexExpression":{"id":661,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"4065:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4039:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":657,"id":663,"nodeType":"Return","src":"4032:42:6"}]},"documentation":{"id":649,"nodeType":"StructuredDocumentation","src":"3868:55:6","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":665,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3937:16:6","nodeType":"FunctionDefinition","parameters":{"id":654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"owner","nameLocation":"3962:5:6","nodeType":"VariableDeclaration","scope":665,"src":"3954:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":650,"name":"address","nodeType":"ElementaryTypeName","src":"3954:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":653,"mutability":"mutable","name":"operator","nameLocation":"3977:8:6","nodeType":"VariableDeclaration","scope":665,"src":"3969:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":652,"name":"address","nodeType":"ElementaryTypeName","src":"3969:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3953:33:6"},"returnParameters":{"id":657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":665,"src":"4016:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":655,"name":"bool","nodeType":"ElementaryTypeName","src":"4016:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4015:6:6"},"scope":1403,"src":"3928:153:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1485],"body":{"id":710,"nodeType":"Block","src":"4223:498:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":675,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"4237:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4251:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4243:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":676,"name":"address","nodeType":"ElementaryTypeName","src":"4243:7:6","typeDescriptions":{}}},"id":679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4243:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4237:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":689,"nodeType":"IfStatement","src":"4233:87:6","trueBody":{"id":688,"nodeType":"Block","src":"4255:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4306:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4298:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":682,"name":"address","nodeType":"ElementaryTypeName","src":"4298:7:6","typeDescriptions":{}}},"id":685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4298:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":681,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"4276:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":687,"nodeType":"RevertStatement","src":"4269:40:6"}]}},{"assignments":[691],"declarations":[{"constant":false,"id":691,"mutability":"mutable","name":"previousOwner","nameLocation":"4546:13:6","nodeType":"VariableDeclaration","scope":710,"src":"4538:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":690,"name":"address","nodeType":"ElementaryTypeName","src":"4538:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":698,"initialValue":{"arguments":[{"id":693,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"4570:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":694,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"4574:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":695,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"4583:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":692,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"4562:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4562:34:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4538:58:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":699,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"4610:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":700,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"4627:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4610:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":709,"nodeType":"IfStatement","src":"4606:109:6","trueBody":{"id":708,"nodeType":"Block","src":"4633:82:6","statements":[{"errorCall":{"arguments":[{"id":703,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"4675:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":704,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"4681:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":705,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"4690:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":702,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":241,"src":"4654:20:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) pure"}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4654:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":707,"nodeType":"RevertStatement","src":"4647:57:6"}]}}]},"documentation":{"id":666,"nodeType":"StructuredDocumentation","src":"4087:51:6","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":711,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4152:12:6","nodeType":"FunctionDefinition","parameters":{"id":673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":668,"mutability":"mutable","name":"from","nameLocation":"4173:4:6","nodeType":"VariableDeclaration","scope":711,"src":"4165:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":667,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":670,"mutability":"mutable","name":"to","nameLocation":"4187:2:6","nodeType":"VariableDeclaration","scope":711,"src":"4179:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":669,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":672,"mutability":"mutable","name":"tokenId","nameLocation":"4199:7:6","nodeType":"VariableDeclaration","scope":711,"src":"4191:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":671,"name":"uint256","nodeType":"ElementaryTypeName","src":"4191:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4164:43:6"},"returnParameters":{"id":674,"nodeType":"ParameterList","parameters":[],"src":"4223:0:6"},"scope":1403,"src":"4143:578:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1475],"body":{"id":728,"nodeType":"Block","src":"4863:56:6","statements":[{"expression":{"arguments":[{"id":722,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":714,"src":"4890:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":723,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"4896:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":724,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"4900:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4909:2:6","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":721,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[729,755],"referencedDeclaration":755,"src":"4873:16:6","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":726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":727,"nodeType":"ExpressionStatement","src":"4873:39:6"}]},"documentation":{"id":712,"nodeType":"StructuredDocumentation","src":"4727:55:6","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":729,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4796:16:6","nodeType":"FunctionDefinition","parameters":{"id":719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":714,"mutability":"mutable","name":"from","nameLocation":"4821:4:6","nodeType":"VariableDeclaration","scope":729,"src":"4813:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":713,"name":"address","nodeType":"ElementaryTypeName","src":"4813:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"to","nameLocation":"4835:2:6","nodeType":"VariableDeclaration","scope":729,"src":"4827:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":715,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":718,"mutability":"mutable","name":"tokenId","nameLocation":"4847:7:6","nodeType":"VariableDeclaration","scope":729,"src":"4839:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":717,"name":"uint256","nodeType":"ElementaryTypeName","src":"4839:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4812:43:6"},"returnParameters":{"id":720,"nodeType":"ParameterList","parameters":[],"src":"4863:0:6"},"scope":1403,"src":"4787:132:6","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1465],"body":{"id":754,"nodeType":"Block","src":"5088:105:6","statements":[{"expression":{"arguments":[{"id":742,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"5111:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":743,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"5117:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":744,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"5121:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":741,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"5098:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5098:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":746,"nodeType":"ExpressionStatement","src":"5098:31:6"},{"expression":{"arguments":[{"id":748,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"5162:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":749,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"5168:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":750,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"5172:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":751,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"5181:4:6","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":747,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"5139:22:6","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":752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5139:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":753,"nodeType":"ExpressionStatement","src":"5139:47:6"}]},"documentation":{"id":730,"nodeType":"StructuredDocumentation","src":"4925:55:6","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":755,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4994:16:6","nodeType":"FunctionDefinition","parameters":{"id":739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"from","nameLocation":"5019:4:6","nodeType":"VariableDeclaration","scope":755,"src":"5011:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":731,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":734,"mutability":"mutable","name":"to","nameLocation":"5033:2:6","nodeType":"VariableDeclaration","scope":755,"src":"5025:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":733,"name":"address","nodeType":"ElementaryTypeName","src":"5025:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":736,"mutability":"mutable","name":"tokenId","nameLocation":"5045:7:6","nodeType":"VariableDeclaration","scope":755,"src":"5037:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":735,"name":"uint256","nodeType":"ElementaryTypeName","src":"5037:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":738,"mutability":"mutable","name":"data","nameLocation":"5067:4:6","nodeType":"VariableDeclaration","scope":755,"src":"5054:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":737,"name":"bytes","nodeType":"ElementaryTypeName","src":"5054:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5010:62:6"},"returnParameters":{"id":740,"nodeType":"ParameterList","parameters":[],"src":"5088:0:6"},"scope":1403,"src":"4985:208:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":767,"nodeType":"Block","src":"5782:40:6","statements":[{"expression":{"baseExpression":{"id":763,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"5799:7:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":765,"indexExpression":{"id":764,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"5807:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5799:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":762,"id":766,"nodeType":"Return","src":"5792:23:6"}]},"documentation":{"id":756,"nodeType":"StructuredDocumentation","src":"5199:503:6","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`."},"id":768,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"5716:8:6","nodeType":"FunctionDefinition","parameters":{"id":759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":758,"mutability":"mutable","name":"tokenId","nameLocation":"5733:7:6","nodeType":"VariableDeclaration","scope":768,"src":"5725:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":757,"name":"uint256","nodeType":"ElementaryTypeName","src":"5725:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5724:17:6"},"returnParameters":{"id":762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":768,"src":"5773:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":760,"name":"address","nodeType":"ElementaryTypeName","src":"5773:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5772:9:6"},"scope":1403,"src":"5707:115:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":780,"nodeType":"Block","src":"6017:48:6","statements":[{"expression":{"baseExpression":{"id":776,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"6034:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":778,"indexExpression":{"id":777,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":771,"src":"6050:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6034:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":775,"id":779,"nodeType":"Return","src":"6027:31:6"}]},"documentation":{"id":769,"nodeType":"StructuredDocumentation","src":"5828:105:6","text":" @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted."},"id":781,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"5947:12:6","nodeType":"FunctionDefinition","parameters":{"id":772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":771,"mutability":"mutable","name":"tokenId","nameLocation":"5968:7:6","nodeType":"VariableDeclaration","scope":781,"src":"5960:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":770,"name":"uint256","nodeType":"ElementaryTypeName","src":"5960:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5959:17:6"},"returnParameters":{"id":775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":781,"src":"6008:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":773,"name":"address","nodeType":"ElementaryTypeName","src":"6008:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6007:9:6"},"scope":1403,"src":"5938:127:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":816,"nodeType":"Block","src":"6485:163:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":793,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6514:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6533:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6525:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":794,"name":"address","nodeType":"ElementaryTypeName","src":"6525:7:6","typeDescriptions":{}}},"id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6525:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6514:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":799,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":784,"src":"6552:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":800,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6561:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6552:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":803,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":784,"src":"6589:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":804,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6596:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":802,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"6572:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6552:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":808,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":788,"src":"6621:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":807,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"6608:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:21:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":810,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"6633:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6608:32:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6552:88:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":813,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6551:90:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6514:127:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":792,"id":815,"nodeType":"Return","src":"6495:146:6"}]},"documentation":{"id":782,"nodeType":"StructuredDocumentation","src":"6071:300:6","text":" @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":817,"implemented":true,"kind":"function","modifiers":[],"name":"_isAuthorized","nameLocation":"6385:13:6","nodeType":"FunctionDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":784,"mutability":"mutable","name":"owner","nameLocation":"6407:5:6","nodeType":"VariableDeclaration","scope":817,"src":"6399:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":783,"name":"address","nodeType":"ElementaryTypeName","src":"6399:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":786,"mutability":"mutable","name":"spender","nameLocation":"6422:7:6","nodeType":"VariableDeclaration","scope":817,"src":"6414:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":785,"name":"address","nodeType":"ElementaryTypeName","src":"6414:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":788,"mutability":"mutable","name":"tokenId","nameLocation":"6439:7:6","nodeType":"VariableDeclaration","scope":817,"src":"6431:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":787,"name":"uint256","nodeType":"ElementaryTypeName","src":"6431:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6398:49:6"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":817,"src":"6479:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":790,"name":"bool","nodeType":"ElementaryTypeName","src":"6479:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6478:6:6"},"scope":1403,"src":"6376:272:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":853,"nodeType":"Block","src":"7179:271:6","statements":[{"condition":{"id":832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7193:39:6","subExpression":{"arguments":[{"id":828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"7208:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":829,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":822,"src":"7215:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":830,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"7224:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":827,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"7194:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) view returns (bool)"}},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7194:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":852,"nodeType":"IfStatement","src":"7189:255:6","trueBody":{"id":851,"nodeType":"Block","src":"7234:210:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":833,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"7252:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7269:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7261:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":834,"name":"address","nodeType":"ElementaryTypeName","src":"7261:7:6","typeDescriptions":{}}},"id":837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7252:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":849,"nodeType":"Block","src":"7350:84:6","statements":[{"errorCall":{"arguments":[{"id":845,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":822,"src":"7402:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":846,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"7411:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":844,"name":"ERC721InsufficientApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"7375:26:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7375:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":848,"nodeType":"RevertStatement","src":"7368:51:6"}]},"id":850,"nodeType":"IfStatement","src":"7248:186:6","trueBody":{"id":843,"nodeType":"Block","src":"7273:71:6","statements":[{"errorCall":{"arguments":[{"id":840,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"7321:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":839,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"7298:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7298:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":842,"nodeType":"RevertStatement","src":"7291:38:6"}]}}]}}]},"documentation":{"id":818,"nodeType":"StructuredDocumentation","src":"6654:423:6","text":" @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if `spender` does not have approval from the provided `owner` for the given token or for all its assets\n the `spender` for the specific `tokenId`.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption."},"id":854,"implemented":true,"kind":"function","modifiers":[],"name":"_checkAuthorized","nameLocation":"7091:16:6","nodeType":"FunctionDefinition","parameters":{"id":825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"owner","nameLocation":"7116:5:6","nodeType":"VariableDeclaration","scope":854,"src":"7108:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":819,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":822,"mutability":"mutable","name":"spender","nameLocation":"7131:7:6","nodeType":"VariableDeclaration","scope":854,"src":"7123:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":821,"name":"address","nodeType":"ElementaryTypeName","src":"7123:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":824,"mutability":"mutable","name":"tokenId","nameLocation":"7148:7:6","nodeType":"VariableDeclaration","scope":854,"src":"7140:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":823,"name":"uint256","nodeType":"ElementaryTypeName","src":"7140:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7107:49:6"},"returnParameters":{"id":826,"nodeType":"ParameterList","parameters":[],"src":"7179:0:6"},"scope":1403,"src":"7082:368:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":869,"nodeType":"Block","src":"8167:78:6","statements":[{"id":868,"nodeType":"UncheckedBlock","src":"8177:62:6","statements":[{"expression":{"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":862,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"8201:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":864,"indexExpression":{"id":863,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":857,"src":"8211:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8201:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"8223:5:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"8201:27:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":867,"nodeType":"ExpressionStatement","src":"8201:27:6"}]}]},"documentation":{"id":855,"nodeType":"StructuredDocumentation","src":"7456:631:6","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another."},"id":870,"implemented":true,"kind":"function","modifiers":[],"name":"_increaseBalance","nameLocation":"8101:16:6","nodeType":"FunctionDefinition","parameters":{"id":860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"account","nameLocation":"8126:7:6","nodeType":"VariableDeclaration","scope":870,"src":"8118:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":856,"name":"address","nodeType":"ElementaryTypeName","src":"8118:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":859,"mutability":"mutable","name":"value","nameLocation":"8143:5:6","nodeType":"VariableDeclaration","scope":870,"src":"8135:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":858,"name":"uint128","nodeType":"ElementaryTypeName","src":"8135:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8117:32:6"},"returnParameters":{"id":861,"nodeType":"ParameterList","parameters":[],"src":"8167:0:6"},"scope":1403,"src":"8092:153:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":959,"nodeType":"Block","src":"8933:700:6","statements":[{"assignments":[883],"declarations":[{"constant":false,"id":883,"mutability":"mutable","name":"from","nameLocation":"8951:4:6","nodeType":"VariableDeclaration","scope":959,"src":"8943:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":882,"name":"address","nodeType":"ElementaryTypeName","src":"8943:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":887,"initialValue":{"arguments":[{"id":885,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8967:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":884,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"8958:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8958:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8943:32:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":888,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"9035:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9043:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":889,"name":"address","nodeType":"ElementaryTypeName","src":"9043:7:6","typeDescriptions":{}}},"id":892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9035:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":901,"nodeType":"IfStatement","src":"9031:86:6","trueBody":{"id":900,"nodeType":"Block","src":"9055:62:6","statements":[{"expression":{"arguments":[{"id":895,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9086:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":896,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"9092:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":897,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9098:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":894,"name":"_checkAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"9069:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) view"}},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9069:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":899,"nodeType":"ExpressionStatement","src":"9069:37:6"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":902,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9161:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9177:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9169:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":903,"name":"address","nodeType":"ElementaryTypeName","src":"9169:7:6","typeDescriptions":{}}},"id":906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9169:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9161:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":929,"nodeType":"IfStatement","src":"9157:256:6","trueBody":{"id":928,"nodeType":"Block","src":"9181:232:6","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9294:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9286:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":909,"name":"address","nodeType":"ElementaryTypeName","src":"9286:7:6","typeDescriptions":{}}},"id":912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9286:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":913,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9298:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9315:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9307:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":914,"name":"address","nodeType":"ElementaryTypeName","src":"9307:7:6","typeDescriptions":{}}},"id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9319:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":908,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1206,1272],"referencedDeclaration":1272,"src":"9277:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9277:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":920,"nodeType":"ExpressionStatement","src":"9277:48:6"},{"id":927,"nodeType":"UncheckedBlock","src":"9340:63:6","statements":[{"expression":{"id":925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":921,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"9368:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":923,"indexExpression":{"id":922,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9378:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9368:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9387:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9368:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":926,"nodeType":"ExpressionStatement","src":"9368:20:6"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":930,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9427:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9441:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9433:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":931,"name":"address","nodeType":"ElementaryTypeName","src":"9433:7:6","typeDescriptions":{}}},"id":934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9433:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9427:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":944,"nodeType":"IfStatement","src":"9423:107:6","trueBody":{"id":943,"nodeType":"Block","src":"9445:85:6","statements":[{"id":942,"nodeType":"UncheckedBlock","src":"9459:61:6","statements":[{"expression":{"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":936,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"9487:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":938,"indexExpression":{"id":937,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9497:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9487:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9504:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9487:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":941,"nodeType":"ExpressionStatement","src":"9487:18:6"}]}]}},{"expression":{"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":945,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"9540:7:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":947,"indexExpression":{"id":946,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9548:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9540:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":948,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9559:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9540:21:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":950,"nodeType":"ExpressionStatement","src":"9540:21:6"},{"eventCall":{"arguments":[{"id":952,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9586:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":953,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"9592:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":954,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9596:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":951,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"9577:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9577:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":956,"nodeType":"EmitStatement","src":"9572:32:6"},{"expression":{"id":957,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":883,"src":"9622:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":881,"id":958,"nodeType":"Return","src":"9615:11:6"}]},"documentation":{"id":871,"nodeType":"StructuredDocumentation","src":"8251:582:6","text":" @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}."},"id":960,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8847:7:6","nodeType":"FunctionDefinition","parameters":{"id":878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":873,"mutability":"mutable","name":"to","nameLocation":"8863:2:6","nodeType":"VariableDeclaration","scope":960,"src":"8855:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":872,"name":"address","nodeType":"ElementaryTypeName","src":"8855:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"tokenId","nameLocation":"8875:7:6","nodeType":"VariableDeclaration","scope":960,"src":"8867:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":874,"name":"uint256","nodeType":"ElementaryTypeName","src":"8867:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"auth","nameLocation":"8892:4:6","nodeType":"VariableDeclaration","scope":960,"src":"8884:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":876,"name":"address","nodeType":"ElementaryTypeName","src":"8884:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8854:43:6"},"returnParameters":{"id":881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":960,"src":"8924:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":879,"name":"address","nodeType":"ElementaryTypeName","src":"8924:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8923:9:6"},"scope":1403,"src":"8838:795:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1009,"nodeType":"Block","src":"10008:274:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":968,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":963,"src":"10022:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10036:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10028:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":969,"name":"address","nodeType":"ElementaryTypeName","src":"10028:7:6","typeDescriptions":{}}},"id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10028:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10022:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":982,"nodeType":"IfStatement","src":"10018:87:6","trueBody":{"id":981,"nodeType":"Block","src":"10040:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10091:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10083:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":975,"name":"address","nodeType":"ElementaryTypeName","src":"10083:7:6","typeDescriptions":{}}},"id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10083:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":974,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"10061:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":980,"nodeType":"RevertStatement","src":"10054:40:6"}]}},{"assignments":[984],"declarations":[{"constant":false,"id":984,"mutability":"mutable","name":"previousOwner","nameLocation":"10122:13:6","nodeType":"VariableDeclaration","scope":1009,"src":"10114:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":983,"name":"address","nodeType":"ElementaryTypeName","src":"10114:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":993,"initialValue":{"arguments":[{"id":986,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":963,"src":"10146:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":987,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":965,"src":"10150:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":988,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:6","typeDescriptions":{}}},"id":991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":985,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"10138:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10138:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10114:56:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":994,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":984,"src":"10184:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10209:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10201:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"10201:7:6","typeDescriptions":{}}},"id":998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10201:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10184:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1008,"nodeType":"IfStatement","src":"10180:96:6","trueBody":{"id":1007,"nodeType":"Block","src":"10213:63:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10262:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10254:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1001,"name":"address","nodeType":"ElementaryTypeName","src":"10254:7:6","typeDescriptions":{}}},"id":1004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1000,"name":"ERC721InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"10234:19:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10234:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1006,"nodeType":"RevertStatement","src":"10227:38:6"}]}}]},"documentation":{"id":961,"nodeType":"StructuredDocumentation","src":"9639:311:6","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":1010,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9964:5:6","nodeType":"FunctionDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":963,"mutability":"mutable","name":"to","nameLocation":"9978:2:6","nodeType":"VariableDeclaration","scope":1010,"src":"9970:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":962,"name":"address","nodeType":"ElementaryTypeName","src":"9970:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":965,"mutability":"mutable","name":"tokenId","nameLocation":"9990:7:6","nodeType":"VariableDeclaration","scope":1010,"src":"9982:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":964,"name":"uint256","nodeType":"ElementaryTypeName","src":"9982:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9969:29:6"},"returnParameters":{"id":967,"nodeType":"ParameterList","parameters":[],"src":"10008:0:6"},"scope":1403,"src":"9955:327:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1024,"nodeType":"Block","src":"10690:43:6","statements":[{"expression":{"arguments":[{"id":1019,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"10710:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1020,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10714:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10723:2:6","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":1018,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1025,1051],"referencedDeclaration":1051,"src":"10700:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":1022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1023,"nodeType":"ExpressionStatement","src":"10700:26:6"}]},"documentation":{"id":1011,"nodeType":"StructuredDocumentation","src":"10288:340:6","text":" @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1025,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10642:9:6","nodeType":"FunctionDefinition","parameters":{"id":1016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"to","nameLocation":"10660:2:6","nodeType":"VariableDeclaration","scope":1025,"src":"10652:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1012,"name":"address","nodeType":"ElementaryTypeName","src":"10652:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1015,"mutability":"mutable","name":"tokenId","nameLocation":"10672:7:6","nodeType":"VariableDeclaration","scope":1025,"src":"10664:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1014,"name":"uint256","nodeType":"ElementaryTypeName","src":"10664:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10651:29:6"},"returnParameters":{"id":1017,"nodeType":"ParameterList","parameters":[],"src":"10690:0:6"},"scope":1403,"src":"10633:100:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1050,"nodeType":"Block","src":"11038:98:6","statements":[{"expression":{"arguments":[{"id":1036,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"11054:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1037,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"11058:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1035,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"11048:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11048:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"11048:18:6"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11107:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11099:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1041,"name":"address","nodeType":"ElementaryTypeName","src":"11099:7:6","typeDescriptions":{}}},"id":1044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11099:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1045,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"11111:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1046,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1030,"src":"11115:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1047,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"11124:4:6","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":1040,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"11076:22:6","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":1048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11076:53:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1049,"nodeType":"ExpressionStatement","src":"11076:53:6"}]},"documentation":{"id":1026,"nodeType":"StructuredDocumentation","src":"10739:210:6","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":1051,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"10963:9:6","nodeType":"FunctionDefinition","parameters":{"id":1033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1028,"mutability":"mutable","name":"to","nameLocation":"10981:2:6","nodeType":"VariableDeclaration","scope":1051,"src":"10973:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1027,"name":"address","nodeType":"ElementaryTypeName","src":"10973:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1030,"mutability":"mutable","name":"tokenId","nameLocation":"10993:7:6","nodeType":"VariableDeclaration","scope":1051,"src":"10985:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1029,"name":"uint256","nodeType":"ElementaryTypeName","src":"10985:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1032,"mutability":"mutable","name":"data","nameLocation":"11015:4:6","nodeType":"VariableDeclaration","scope":1051,"src":"11002:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1031,"name":"bytes","nodeType":"ElementaryTypeName","src":"11002:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10972:48:6"},"returnParameters":{"id":1034,"nodeType":"ParameterList","parameters":[],"src":"11038:0:6"},"scope":1403,"src":"10954:182:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1083,"nodeType":"Block","src":"11511:186:6","statements":[{"assignments":[1058],"declarations":[{"constant":false,"id":1058,"mutability":"mutable","name":"previousOwner","nameLocation":"11529:13:6","nodeType":"VariableDeclaration","scope":1083,"src":"11521:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1057,"name":"address","nodeType":"ElementaryTypeName","src":"11521:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1070,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":1062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11561:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11553:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"11553:7:6","typeDescriptions":{}}},"id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11553:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1064,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"11565:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":1067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11582:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11574:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1065,"name":"address","nodeType":"ElementaryTypeName","src":"11574:7:6","typeDescriptions":{}}},"id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1059,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"11545:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11545:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11521:64:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1071,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1058,"src":"11599:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11624:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11616:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1072,"name":"address","nodeType":"ElementaryTypeName","src":"11616:7:6","typeDescriptions":{}}},"id":1075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11616:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11599:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1082,"nodeType":"IfStatement","src":"11595:96:6","trueBody":{"id":1081,"nodeType":"Block","src":"11628:63:6","statements":[{"errorCall":{"arguments":[{"id":1078,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1054,"src":"11672:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1077,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"11649:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11649:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1080,"nodeType":"RevertStatement","src":"11642:38:6"}]}}]},"documentation":{"id":1052,"nodeType":"StructuredDocumentation","src":"11142:315:6","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":1084,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"11471:5:6","nodeType":"FunctionDefinition","parameters":{"id":1055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1054,"mutability":"mutable","name":"tokenId","nameLocation":"11485:7:6","nodeType":"VariableDeclaration","scope":1084,"src":"11477:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1053,"name":"uint256","nodeType":"ElementaryTypeName","src":"11477:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11476:17:6"},"returnParameters":{"id":1056,"nodeType":"ParameterList","parameters":[],"src":"11511:0:6"},"scope":1403,"src":"11462:235:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1143,"nodeType":"Block","src":"12092:389:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1094,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"12106:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12120:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12112:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"12112:7:6","typeDescriptions":{}}},"id":1098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12112:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12106:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1108,"nodeType":"IfStatement","src":"12102:87:6","trueBody":{"id":1107,"nodeType":"Block","src":"12124:65:6","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12175:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12167:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1101,"name":"address","nodeType":"ElementaryTypeName","src":"12167:7:6","typeDescriptions":{}}},"id":1104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12167:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1100,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"12145:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12145:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1106,"nodeType":"RevertStatement","src":"12138:40:6"}]}},{"assignments":[1110],"declarations":[{"constant":false,"id":1110,"mutability":"mutable","name":"previousOwner","nameLocation":"12206:13:6","nodeType":"VariableDeclaration","scope":1143,"src":"12198:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"12198:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1119,"initialValue":{"arguments":[{"id":1112,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"12230:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1113,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"12234:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":1116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12251:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12243:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1114,"name":"address","nodeType":"ElementaryTypeName","src":"12243:7:6","typeDescriptions":{}}},"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1111,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"12222:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12222:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12198:56:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1120,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"12268:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12293:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12285:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1121,"name":"address","nodeType":"ElementaryTypeName","src":"12285:7:6","typeDescriptions":{}}},"id":1124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12285:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12268:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1131,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"12370:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1132,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"12387:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12370:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1141,"nodeType":"IfStatement","src":"12366:109:6","trueBody":{"id":1140,"nodeType":"Block","src":"12393:82:6","statements":[{"errorCall":{"arguments":[{"id":1135,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"12435:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1136,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"12441:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1137,"name":"previousOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"12450:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1134,"name":"ERC721IncorrectOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":241,"src":"12414:20:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) pure"}},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12414:50:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1139,"nodeType":"RevertStatement","src":"12407:57:6"}]}},"id":1142,"nodeType":"IfStatement","src":"12264:211:6","trueBody":{"id":1130,"nodeType":"Block","src":"12297:63:6","statements":[{"errorCall":{"arguments":[{"id":1127,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"12341:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1126,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"12318:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12318:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1129,"nodeType":"RevertStatement","src":"12311:38:6"}]}}]},"documentation":{"id":1085,"nodeType":"StructuredDocumentation","src":"11703:313:6","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":1144,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"12030:9:6","nodeType":"FunctionDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1087,"mutability":"mutable","name":"from","nameLocation":"12048:4:6","nodeType":"VariableDeclaration","scope":1144,"src":"12040:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1086,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"to","nameLocation":"12062:2:6","nodeType":"VariableDeclaration","scope":1144,"src":"12054:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1088,"name":"address","nodeType":"ElementaryTypeName","src":"12054:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1091,"mutability":"mutable","name":"tokenId","nameLocation":"12074:7:6","nodeType":"VariableDeclaration","scope":1144,"src":"12066:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1090,"name":"uint256","nodeType":"ElementaryTypeName","src":"12066:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12039:43:6"},"returnParameters":{"id":1093,"nodeType":"ParameterList","parameters":[],"src":"12092:0:6"},"scope":1403,"src":"12021:460:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1161,"nodeType":"Block","src":"13489:53:6","statements":[{"expression":{"arguments":[{"id":1155,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1147,"src":"13513:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1156,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"13519:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1157,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1151,"src":"13523:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13532:2:6","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":1154,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[1162,1188],"referencedDeclaration":1188,"src":"13499:13:6","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":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13499:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1160,"nodeType":"ExpressionStatement","src":"13499:36:6"}]},"documentation":{"id":1145,"nodeType":"StructuredDocumentation","src":"12487:922:6","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1162,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13423:13:6","nodeType":"FunctionDefinition","parameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1147,"mutability":"mutable","name":"from","nameLocation":"13445:4:6","nodeType":"VariableDeclaration","scope":1162,"src":"13437:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1146,"name":"address","nodeType":"ElementaryTypeName","src":"13437:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1149,"mutability":"mutable","name":"to","nameLocation":"13459:2:6","nodeType":"VariableDeclaration","scope":1162,"src":"13451:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1148,"name":"address","nodeType":"ElementaryTypeName","src":"13451:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1151,"mutability":"mutable","name":"tokenId","nameLocation":"13471:7:6","nodeType":"VariableDeclaration","scope":1162,"src":"13463:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1150,"name":"uint256","nodeType":"ElementaryTypeName","src":"13463:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13436:43:6"},"returnParameters":{"id":1153,"nodeType":"ParameterList","parameters":[],"src":"13489:0:6"},"scope":1403,"src":"13414:128:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1187,"nodeType":"Block","src":"13881:102:6","statements":[{"expression":{"arguments":[{"id":1175,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"13901:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1176,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1167,"src":"13907:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1177,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1169,"src":"13911:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1174,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"13891:9:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13891:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1179,"nodeType":"ExpressionStatement","src":"13891:28:6"},{"expression":{"arguments":[{"id":1181,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"13952:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1182,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1167,"src":"13958:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1183,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1169,"src":"13962:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1184,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1171,"src":"13971:4:6","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":1180,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"13929:22:6","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":1185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13929:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1186,"nodeType":"ExpressionStatement","src":"13929:47:6"}]},"documentation":{"id":1163,"nodeType":"StructuredDocumentation","src":"13548:226:6","text":" @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":1188,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"13788:13:6","nodeType":"FunctionDefinition","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1165,"mutability":"mutable","name":"from","nameLocation":"13810:4:6","nodeType":"VariableDeclaration","scope":1188,"src":"13802:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1164,"name":"address","nodeType":"ElementaryTypeName","src":"13802:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1167,"mutability":"mutable","name":"to","nameLocation":"13824:2:6","nodeType":"VariableDeclaration","scope":1188,"src":"13816:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1166,"name":"address","nodeType":"ElementaryTypeName","src":"13816:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1169,"mutability":"mutable","name":"tokenId","nameLocation":"13836:7:6","nodeType":"VariableDeclaration","scope":1188,"src":"13828:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1168,"name":"uint256","nodeType":"ElementaryTypeName","src":"13828:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1171,"mutability":"mutable","name":"data","nameLocation":"13858:4:6","nodeType":"VariableDeclaration","scope":1188,"src":"13845:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1170,"name":"bytes","nodeType":"ElementaryTypeName","src":"13845:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13801:62:6"},"returnParameters":{"id":1173,"nodeType":"ParameterList","parameters":[],"src":"13881:0:6"},"scope":1403,"src":"13779:204:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1205,"nodeType":"Block","src":"14496:50:6","statements":[{"expression":{"arguments":[{"id":1199,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1191,"src":"14515:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1200,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1193,"src":"14519:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1201,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1195,"src":"14528:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":1202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14534:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1198,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[1206,1272],"referencedDeclaration":1272,"src":"14506:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,uint256,address,bool)"}},"id":1203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14506:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1204,"nodeType":"ExpressionStatement","src":"14506:33:6"}]},"documentation":{"id":1189,"nodeType":"StructuredDocumentation","src":"13989:432:6","text":" @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":1206,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14435:8:6","nodeType":"FunctionDefinition","parameters":{"id":1196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1191,"mutability":"mutable","name":"to","nameLocation":"14452:2:6","nodeType":"VariableDeclaration","scope":1206,"src":"14444:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1190,"name":"address","nodeType":"ElementaryTypeName","src":"14444:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1193,"mutability":"mutable","name":"tokenId","nameLocation":"14464:7:6","nodeType":"VariableDeclaration","scope":1206,"src":"14456:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1192,"name":"uint256","nodeType":"ElementaryTypeName","src":"14456:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1195,"mutability":"mutable","name":"auth","nameLocation":"14481:4:6","nodeType":"VariableDeclaration","scope":1206,"src":"14473:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1194,"name":"address","nodeType":"ElementaryTypeName","src":"14473:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14443:43:6"},"returnParameters":{"id":1197,"nodeType":"ParameterList","parameters":[],"src":"14496:0:6"},"scope":1403,"src":"14426:120:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1271,"nodeType":"Block","src":"14822:568:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1218,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1215,"src":"14888:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1219,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"14901:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14917:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14909:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1220,"name":"address","nodeType":"ElementaryTypeName","src":"14909:7:6","typeDescriptions":{}}},"id":1223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14901:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14888:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1264,"nodeType":"IfStatement","src":"14884:460:6","trueBody":{"id":1263,"nodeType":"Block","src":"14921:423:6","statements":[{"assignments":[1227],"declarations":[{"constant":false,"id":1227,"mutability":"mutable","name":"owner","nameLocation":"14943:5:6","nodeType":"VariableDeclaration","scope":1263,"src":"14935:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1226,"name":"address","nodeType":"ElementaryTypeName","src":"14935:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1231,"initialValue":{"arguments":[{"id":1229,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"14965:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1228,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14951:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14951:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14935:38:6"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1232,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15101:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15117:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15109:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1233,"name":"address","nodeType":"ElementaryTypeName","src":"15109:7:6","typeDescriptions":{}}},"id":1236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15109:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15101:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"15123:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1239,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15132:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15123:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15101:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15140:30:6","subExpression":{"arguments":[{"id":1243,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"15158:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1244,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15165:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1242,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"15141:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15141:29:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15101:69:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1253,"nodeType":"IfStatement","src":"15097:142:6","trueBody":{"id":1252,"nodeType":"Block","src":"15172:67:6","statements":[{"errorCall":{"arguments":[{"id":1249,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"15219:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1248,"name":"ERC721InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"15197:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15197:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1251,"nodeType":"RevertStatement","src":"15190:34:6"}]}},{"condition":{"id":1254,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1215,"src":"15257:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1262,"nodeType":"IfStatement","src":"15253:81:6","trueBody":{"id":1261,"nodeType":"Block","src":"15268:66:6","statements":[{"eventCall":{"arguments":[{"id":1256,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1227,"src":"15300:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1257,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"15307:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1258,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"15311:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1255,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"15291:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15291:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1260,"nodeType":"EmitStatement","src":"15286:33:6"}]}}]}},{"expression":{"id":1269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1265,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"15354:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1267,"indexExpression":{"id":1266,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"15370:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15354:24:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1268,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"15381:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15354:29:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1270,"nodeType":"ExpressionStatement","src":"15354:29:6"}]},"documentation":{"id":1207,"nodeType":"StructuredDocumentation","src":"14552:171:6","text":" @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers."},"id":1272,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"14737:8:6","nodeType":"FunctionDefinition","parameters":{"id":1216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1209,"mutability":"mutable","name":"to","nameLocation":"14754:2:6","nodeType":"VariableDeclaration","scope":1272,"src":"14746:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1208,"name":"address","nodeType":"ElementaryTypeName","src":"14746:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1211,"mutability":"mutable","name":"tokenId","nameLocation":"14766:7:6","nodeType":"VariableDeclaration","scope":1272,"src":"14758:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1210,"name":"uint256","nodeType":"ElementaryTypeName","src":"14758:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1213,"mutability":"mutable","name":"auth","nameLocation":"14783:4:6","nodeType":"VariableDeclaration","scope":1272,"src":"14775:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"14775:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1215,"mutability":"mutable","name":"emitEvent","nameLocation":"14794:9:6","nodeType":"VariableDeclaration","scope":1272,"src":"14789:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1214,"name":"bool","nodeType":"ElementaryTypeName","src":"14789:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14745:59:6"},"returnParameters":{"id":1217,"nodeType":"ParameterList","parameters":[],"src":"14822:0:6"},"scope":1403,"src":"14728:662:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1308,"nodeType":"Block","src":"15692:219:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1282,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15706:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15726:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15718:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1283,"name":"address","nodeType":"ElementaryTypeName","src":"15718:7:6","typeDescriptions":{}}},"id":1286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15718:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15706:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1293,"nodeType":"IfStatement","src":"15702:91:6","trueBody":{"id":1292,"nodeType":"Block","src":"15730:63:6","statements":[{"errorCall":{"arguments":[{"id":1289,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15773:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1288,"name":"ERC721InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"15751:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15751:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1291,"nodeType":"RevertStatement","src":"15744:38:6"}]}},{"expression":{"id":1300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1294,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"15802:18:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1297,"indexExpression":{"id":1295,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"15821:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15802:25:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1298,"indexExpression":{"id":1296,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15828:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15802:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1299,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"15840:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15802:46:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1301,"nodeType":"ExpressionStatement","src":"15802:46:6"},{"eventCall":{"arguments":[{"id":1303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1275,"src":"15878:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1304,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"15885:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1305,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"15895:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1302,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1437,"src":"15863:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15863:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1307,"nodeType":"EmitStatement","src":"15858:46:6"}]},"documentation":{"id":1273,"nodeType":"StructuredDocumentation","src":"15396:198:6","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event."},"id":1309,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"15608:18:6","nodeType":"FunctionDefinition","parameters":{"id":1280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1275,"mutability":"mutable","name":"owner","nameLocation":"15635:5:6","nodeType":"VariableDeclaration","scope":1309,"src":"15627:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1274,"name":"address","nodeType":"ElementaryTypeName","src":"15627:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1277,"mutability":"mutable","name":"operator","nameLocation":"15650:8:6","nodeType":"VariableDeclaration","scope":1309,"src":"15642:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1276,"name":"address","nodeType":"ElementaryTypeName","src":"15642:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1279,"mutability":"mutable","name":"approved","nameLocation":"15665:8:6","nodeType":"VariableDeclaration","scope":1309,"src":"15660:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1278,"name":"bool","nodeType":"ElementaryTypeName","src":"15660:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15626:48:6"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[],"src":"15692:0:6"},"scope":1403,"src":"15599:312:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1337,"nodeType":"Block","src":"16218:169:6","statements":[{"assignments":[1318],"declarations":[{"constant":false,"id":1318,"mutability":"mutable","name":"owner","nameLocation":"16236:5:6","nodeType":"VariableDeclaration","scope":1337,"src":"16228:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1317,"name":"address","nodeType":"ElementaryTypeName","src":"16228:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1322,"initialValue":{"arguments":[{"id":1320,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"16253:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1319,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"16244:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16244:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16228:33:6"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1323,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"16275:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16292:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16284:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1324,"name":"address","nodeType":"ElementaryTypeName","src":"16284:7:6","typeDescriptions":{}}},"id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16275:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1334,"nodeType":"IfStatement","src":"16271:88:6","trueBody":{"id":1333,"nodeType":"Block","src":"16296:63:6","statements":[{"errorCall":{"arguments":[{"id":1330,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"16340:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1329,"name":"ERC721NonexistentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"16317:22:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16317:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1332,"nodeType":"RevertStatement","src":"16310:38:6"}]}},{"expression":{"id":1335,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"16375:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1316,"id":1336,"nodeType":"Return","src":"16368:12:6"}]},"documentation":{"id":1310,"nodeType":"StructuredDocumentation","src":"15917:224:6","text":" @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}."},"id":1338,"implemented":true,"kind":"function","modifiers":[],"name":"_requireOwned","nameLocation":"16155:13:6","nodeType":"FunctionDefinition","parameters":{"id":1313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1312,"mutability":"mutable","name":"tokenId","nameLocation":"16177:7:6","nodeType":"VariableDeclaration","scope":1338,"src":"16169:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1311,"name":"uint256","nodeType":"ElementaryTypeName","src":"16169:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16168:17:6"},"returnParameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1338,"src":"16209:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1314,"name":"address","nodeType":"ElementaryTypeName","src":"16209:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16208:9:6"},"scope":1403,"src":"16146:241:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1401,"nodeType":"Block","src":"17028:680:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1350,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17042:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17045:4:6","memberName":"code","nodeType":"MemberAccess","src":"17042:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17050:6:6","memberName":"length","nodeType":"MemberAccess","src":"17042:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17059:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17042:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1400,"nodeType":"IfStatement","src":"17038:664:6","trueBody":{"id":1399,"nodeType":"Block","src":"17062:640:6","statements":[{"clauses":[{"block":{"id":1379,"nodeType":"Block","src":"17176:162:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1368,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1366,"src":"17198:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1369,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"17208:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$1538_$","typeString":"type(contract IERC721Receiver)"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17224:16:6","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1537,"src":"17208:32:6","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17241:8:6","memberName":"selector","nodeType":"MemberAccess","src":"17208:41:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"17198:51:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1378,"nodeType":"IfStatement","src":"17194:130:6","trueBody":{"id":1377,"nodeType":"Block","src":"17251:73:6","statements":[{"errorCall":{"arguments":[{"id":1374,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17302:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1373,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"17280:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17280:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1376,"nodeType":"RevertStatement","src":"17273:32:6"}]}}]},"errorName":"","id":1380,"nodeType":"TryCatchClause","parameters":{"id":1367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1366,"mutability":"mutable","name":"retval","nameLocation":"17168:6:6","nodeType":"VariableDeclaration","scope":1380,"src":"17161:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1365,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17161:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"17160:15:6"},"src":"17152:186:6"},{"block":{"id":1396,"nodeType":"Block","src":"17367:325:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1384,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1382,"src":"17389:6:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17396:6:6","memberName":"length","nodeType":"MemberAccess","src":"17389:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17406:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17389:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1394,"nodeType":"Block","src":"17488:190:6","statements":[{"AST":{"nodeType":"YulBlock","src":"17574:86:6","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17611:2:6","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"17615:6:6"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17607:3:6"},"nodeType":"YulFunctionCall","src":"17607:15:6"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"17630:6:6"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17624:5:6"},"nodeType":"YulFunctionCall","src":"17624:13:6"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17600:6:6"},"nodeType":"YulFunctionCall","src":"17600:38:6"},"nodeType":"YulExpressionStatement","src":"17600:38:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1382,"isOffset":false,"isSlot":false,"src":"17615:6:6","valueSize":1},{"declaration":1382,"isOffset":false,"isSlot":false,"src":"17630:6:6","valueSize":1}],"id":1393,"nodeType":"InlineAssembly","src":"17565:95:6"}]},"id":1395,"nodeType":"IfStatement","src":"17385:293:6","trueBody":{"id":1392,"nodeType":"Block","src":"17409:73:6","statements":[{"errorCall":{"arguments":[{"id":1389,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17460:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1388,"name":"ERC721InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"17438:21:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17438:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1391,"nodeType":"RevertStatement","src":"17431:32:6"}]}}]},"errorName":"","id":1397,"nodeType":"TryCatchClause","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"mutability":"mutable","name":"reason","nameLocation":"17359:6:6","nodeType":"VariableDeclaration","scope":1397,"src":"17346:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1381,"name":"bytes","nodeType":"ElementaryTypeName","src":"17346:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17345:21:6"},"src":"17339:353:6"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1359,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"17117:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17117:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1361,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1341,"src":"17131:4:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1362,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"17137:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1363,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1347,"src":"17146:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1356,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"17096:2:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1355,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"17080:15:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$1538_$","typeString":"type(contract IERC721Receiver)"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17080:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$1538","typeString":"contract IERC721Receiver"}},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17100:16:6","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1537,"src":"17080:36:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17080:71:6","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1398,"nodeType":"TryStatement","src":"17076:616:6"}]}}]},"documentation":{"id":1339,"nodeType":"StructuredDocumentation","src":"16393:528:6","text":" @dev Private function to invoke {IERC721Receiver-onERC721Received} on a target address. This will revert if the\n recipient doesn't accept the token transfer. The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call"},"id":1402,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"16935:22:6","nodeType":"FunctionDefinition","parameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1341,"mutability":"mutable","name":"from","nameLocation":"16966:4:6","nodeType":"VariableDeclaration","scope":1402,"src":"16958:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1340,"name":"address","nodeType":"ElementaryTypeName","src":"16958:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"to","nameLocation":"16980:2:6","nodeType":"VariableDeclaration","scope":1402,"src":"16972:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1342,"name":"address","nodeType":"ElementaryTypeName","src":"16972:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"tokenId","nameLocation":"16992:7:6","nodeType":"VariableDeclaration","scope":1402,"src":"16984:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1344,"name":"uint256","nodeType":"ElementaryTypeName","src":"16984:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1347,"mutability":"mutable","name":"data","nameLocation":"17014:4:6","nodeType":"VariableDeclaration","scope":1402,"src":"17001:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1346,"name":"bytes","nodeType":"ElementaryTypeName","src":"17001:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16957:62:6"},"returnParameters":{"id":1349,"nodeType":"ParameterList","parameters":[],"src":"17028:0:6"},"scope":1403,"src":"16926:782:6","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":1404,"src":"776:16934:6","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[1419,1428,1437]}],"src":"107:17604:6"},"id":6},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[2464],"IERC721":[1520]},"id":1521,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1405,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:7"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1521,"sourceUnit":2465,"src":"134:62:7","symbolAliases":[{"foreign":{"id":1406,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"142:7:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1409,"name":"IERC165","nameLocations":["287:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"287:7:7"},"id":1410,"nodeType":"InheritanceSpecifier","src":"287:7:7"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":1408,"nodeType":"StructuredDocumentation","src":"198:67:7","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":1520,"linearizedBaseContracts":[1520,2464],"name":"IERC721","nameLocation":"276:7:7","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"301:88:7","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1419,"name":"Transfer","nameLocation":"400:8:7","nodeType":"EventDefinition","parameters":{"id":1418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1413,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"425:4:7","nodeType":"VariableDeclaration","scope":1419,"src":"409:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1412,"name":"address","nodeType":"ElementaryTypeName","src":"409:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1415,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"447:2:7","nodeType":"VariableDeclaration","scope":1419,"src":"431:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1414,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1417,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"467:7:7","nodeType":"VariableDeclaration","scope":1419,"src":"451:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"451:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"408:67:7"},"src":"394:82:7"},{"anonymous":false,"documentation":{"id":1420,"nodeType":"StructuredDocumentation","src":"482:94:7","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":1428,"name":"Approval","nameLocation":"587:8:7","nodeType":"EventDefinition","parameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1422,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"612:5:7","nodeType":"VariableDeclaration","scope":1428,"src":"596:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1421,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1424,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"635:8:7","nodeType":"VariableDeclaration","scope":1428,"src":"619:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1423,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1426,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"661:7:7","nodeType":"VariableDeclaration","scope":1428,"src":"645:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1425,"name":"uint256","nodeType":"ElementaryTypeName","src":"645:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:74:7"},"src":"581:89:7"},{"anonymous":false,"documentation":{"id":1429,"nodeType":"StructuredDocumentation","src":"676:117:7","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1437,"name":"ApprovalForAll","nameLocation":"804:14:7","nodeType":"EventDefinition","parameters":{"id":1436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1431,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"835:5:7","nodeType":"VariableDeclaration","scope":1437,"src":"819:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1433,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"858:8:7","nodeType":"VariableDeclaration","scope":1437,"src":"842:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1432,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1435,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"873:8:7","nodeType":"VariableDeclaration","scope":1437,"src":"868:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1434,"name":"bool","nodeType":"ElementaryTypeName","src":"868:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"818:64:7"},"src":"798:85:7"},{"documentation":{"id":1438,"nodeType":"StructuredDocumentation","src":"889:76:7","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":1445,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"979:9:7","nodeType":"FunctionDefinition","parameters":{"id":1441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1440,"mutability":"mutable","name":"owner","nameLocation":"997:5:7","nodeType":"VariableDeclaration","scope":1445,"src":"989:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1439,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"988:15:7"},"returnParameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1443,"mutability":"mutable","name":"balance","nameLocation":"1035:7:7","nodeType":"VariableDeclaration","scope":1445,"src":"1027:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1442,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1026:17:7"},"scope":1520,"src":"970:74:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1446,"nodeType":"StructuredDocumentation","src":"1050:131:7","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":1453,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1195:7:7","nodeType":"FunctionDefinition","parameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1448,"mutability":"mutable","name":"tokenId","nameLocation":"1211:7:7","nodeType":"VariableDeclaration","scope":1453,"src":"1203:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1203:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1202:17:7"},"returnParameters":{"id":1452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1451,"mutability":"mutable","name":"owner","nameLocation":"1251:5:7","nodeType":"VariableDeclaration","scope":1453,"src":"1243:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1450,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1242:15:7"},"scope":1520,"src":"1186:72:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1454,"nodeType":"StructuredDocumentation","src":"1264:565:7","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":1465,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1843:16:7","nodeType":"FunctionDefinition","parameters":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1456,"mutability":"mutable","name":"from","nameLocation":"1868:4:7","nodeType":"VariableDeclaration","scope":1465,"src":"1860:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1455,"name":"address","nodeType":"ElementaryTypeName","src":"1860:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1458,"mutability":"mutable","name":"to","nameLocation":"1882:2:7","nodeType":"VariableDeclaration","scope":1465,"src":"1874:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1457,"name":"address","nodeType":"ElementaryTypeName","src":"1874:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1460,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:7","nodeType":"VariableDeclaration","scope":1465,"src":"1886:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"data","nameLocation":"1918:4:7","nodeType":"VariableDeclaration","scope":1465,"src":"1903:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1461,"name":"bytes","nodeType":"ElementaryTypeName","src":"1903:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1859:64:7"},"returnParameters":{"id":1464,"nodeType":"ParameterList","parameters":[],"src":"1932:0:7"},"scope":1520,"src":"1834:99:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1466,"nodeType":"StructuredDocumentation","src":"1939:705:7","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":1475,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2658:16:7","nodeType":"FunctionDefinition","parameters":{"id":1473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1468,"mutability":"mutable","name":"from","nameLocation":"2683:4:7","nodeType":"VariableDeclaration","scope":1475,"src":"2675:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1467,"name":"address","nodeType":"ElementaryTypeName","src":"2675:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1470,"mutability":"mutable","name":"to","nameLocation":"2697:2:7","nodeType":"VariableDeclaration","scope":1475,"src":"2689:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1469,"name":"address","nodeType":"ElementaryTypeName","src":"2689:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1472,"mutability":"mutable","name":"tokenId","nameLocation":"2709:7:7","nodeType":"VariableDeclaration","scope":1475,"src":"2701:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1471,"name":"uint256","nodeType":"ElementaryTypeName","src":"2701:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2674:43:7"},"returnParameters":{"id":1474,"nodeType":"ParameterList","parameters":[],"src":"2726:0:7"},"scope":1520,"src":"2649:78:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1476,"nodeType":"StructuredDocumentation","src":"2733:732:7","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":1485,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3479:12:7","nodeType":"FunctionDefinition","parameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1478,"mutability":"mutable","name":"from","nameLocation":"3500:4:7","nodeType":"VariableDeclaration","scope":1485,"src":"3492:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1477,"name":"address","nodeType":"ElementaryTypeName","src":"3492:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1480,"mutability":"mutable","name":"to","nameLocation":"3514:2:7","nodeType":"VariableDeclaration","scope":1485,"src":"3506:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1479,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1482,"mutability":"mutable","name":"tokenId","nameLocation":"3526:7:7","nodeType":"VariableDeclaration","scope":1485,"src":"3518:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1481,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3491:43:7"},"returnParameters":{"id":1484,"nodeType":"ParameterList","parameters":[],"src":"3543:0:7"},"scope":1520,"src":"3470:74:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1486,"nodeType":"StructuredDocumentation","src":"3550:452:7","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":1493,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4016:7:7","nodeType":"FunctionDefinition","parameters":{"id":1491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1488,"mutability":"mutable","name":"to","nameLocation":"4032:2:7","nodeType":"VariableDeclaration","scope":1493,"src":"4024:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1487,"name":"address","nodeType":"ElementaryTypeName","src":"4024:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1490,"mutability":"mutable","name":"tokenId","nameLocation":"4044:7:7","nodeType":"VariableDeclaration","scope":1493,"src":"4036:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1489,"name":"uint256","nodeType":"ElementaryTypeName","src":"4036:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4023:29:7"},"returnParameters":{"id":1492,"nodeType":"ParameterList","parameters":[],"src":"4061:0:7"},"scope":1520,"src":"4007:55:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1494,"nodeType":"StructuredDocumentation","src":"4068:315:7","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":1501,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4397:17:7","nodeType":"FunctionDefinition","parameters":{"id":1499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1496,"mutability":"mutable","name":"operator","nameLocation":"4423:8:7","nodeType":"VariableDeclaration","scope":1501,"src":"4415:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1495,"name":"address","nodeType":"ElementaryTypeName","src":"4415:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1498,"mutability":"mutable","name":"approved","nameLocation":"4438:8:7","nodeType":"VariableDeclaration","scope":1501,"src":"4433:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1497,"name":"bool","nodeType":"ElementaryTypeName","src":"4433:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4414:33:7"},"returnParameters":{"id":1500,"nodeType":"ParameterList","parameters":[],"src":"4456:0:7"},"scope":1520,"src":"4388:69:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1502,"nodeType":"StructuredDocumentation","src":"4463:139:7","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":1509,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4616:11:7","nodeType":"FunctionDefinition","parameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"tokenId","nameLocation":"4636:7:7","nodeType":"VariableDeclaration","scope":1509,"src":"4628:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1503,"name":"uint256","nodeType":"ElementaryTypeName","src":"4628:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4627:17:7"},"returnParameters":{"id":1508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1507,"mutability":"mutable","name":"operator","nameLocation":"4676:8:7","nodeType":"VariableDeclaration","scope":1509,"src":"4668:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4667:18:7"},"scope":1520,"src":"4607:79:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1510,"nodeType":"StructuredDocumentation","src":"4692:138:7","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":1519,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4844:16:7","nodeType":"FunctionDefinition","parameters":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"owner","nameLocation":"4869:5:7","nodeType":"VariableDeclaration","scope":1519,"src":"4861:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1511,"name":"address","nodeType":"ElementaryTypeName","src":"4861:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"operator","nameLocation":"4884:8:7","nodeType":"VariableDeclaration","scope":1519,"src":"4876:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1513,"name":"address","nodeType":"ElementaryTypeName","src":"4876:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4860:33:7"},"returnParameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1519,"src":"4917:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1516,"name":"bool","nodeType":"ElementaryTypeName","src":"4917:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4916:6:7"},"scope":1520,"src":"4835:88:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1521,"src":"266:4659:7","usedErrors":[],"usedEvents":[1419,1428,1437]}],"src":"108:4818:7"},"id":7},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[1538]},"id":1539,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1522,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"116:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":1523,"nodeType":"StructuredDocumentation","src":"142:152:8","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":1538,"linearizedBaseContracts":[1538],"name":"IERC721Receiver","nameLocation":"305:15:8","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1524,"nodeType":"StructuredDocumentation","src":"327:500:8","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":1537,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"841:16:8","nodeType":"FunctionDefinition","parameters":{"id":1533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1526,"mutability":"mutable","name":"operator","nameLocation":"875:8:8","nodeType":"VariableDeclaration","scope":1537,"src":"867:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1525,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1528,"mutability":"mutable","name":"from","nameLocation":"901:4:8","nodeType":"VariableDeclaration","scope":1537,"src":"893:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1527,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1530,"mutability":"mutable","name":"tokenId","nameLocation":"923:7:8","nodeType":"VariableDeclaration","scope":1537,"src":"915:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1529,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1532,"mutability":"mutable","name":"data","nameLocation":"955:4:8","nodeType":"VariableDeclaration","scope":1537,"src":"940:19:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1531,"name":"bytes","nodeType":"ElementaryTypeName","src":"940:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"857:108:8"},"returnParameters":{"id":1536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1537,"src":"984:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1534,"name":"bytes4","nodeType":"ElementaryTypeName","src":"984:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"983:8:8"},"scope":1538,"src":"832:160:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1539,"src":"295:699:8","usedErrors":[],"usedEvents":[]}],"src":"116:879:8"},"id":8},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol","exportedSymbols":{"Context":[1751],"ERC721":[1403],"ERC721Burnable":[1567]},"id":1568,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1540,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"126:24:9"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":1542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1568,"sourceUnit":1404,"src":"152:37:9","symbolAliases":[{"foreign":{"id":1541,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"160:6:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../../utils/Context.sol","id":1544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1568,"sourceUnit":1752,"src":"190:51:9","symbolAliases":[{"foreign":{"id":1543,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"198:7:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1546,"name":"Context","nameLocations":["372:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":1751,"src":"372:7:9"},"id":1547,"nodeType":"InheritanceSpecifier","src":"372:7:9"},{"baseName":{"id":1548,"name":"ERC721","nameLocations":["381:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"381:6:9"},"id":1549,"nodeType":"InheritanceSpecifier","src":"381:6:9"}],"canonicalName":"ERC721Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1545,"nodeType":"StructuredDocumentation","src":"243:92:9","text":" @title ERC721 Burnable Token\n @dev ERC721 Token that can be burned (destroyed)."},"fullyImplemented":true,"id":1567,"linearizedBaseContracts":[1567,1403,269,1721,1520,2452,2464,1751],"name":"ERC721Burnable","nameLocation":"354:14:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":1565,"nodeType":"Block","src":"607:268:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"842:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"834:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1556,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:9","typeDescriptions":{}}},"id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"834:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1560,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1552,"src":"846:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1561,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"855:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1555,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"826:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (address,uint256,address) returns (address)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1564,"nodeType":"ExpressionStatement","src":"826:42:9"}]},"documentation":{"id":1550,"nodeType":"StructuredDocumentation","src":"394:162:9","text":" @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator."},"functionSelector":"42966c68","id":1566,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"570:4:9","nodeType":"FunctionDefinition","parameters":{"id":1553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1552,"mutability":"mutable","name":"tokenId","nameLocation":"583:7:9","nodeType":"VariableDeclaration","scope":1566,"src":"575:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1551,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"574:17:9"},"returnParameters":{"id":1554,"nodeType":"ParameterList","parameters":[],"src":"607:0:9"},"scope":1567,"src":"561:314:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":1568,"src":"336:541:9","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[1419,1428,1437]}],"src":"126:752:9"},"id":9},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","exportedSymbols":{"ERC721":[1403],"ERC721URIStorage":[1693],"IERC165":[2464],"IERC4906":[175],"Strings":[2006]},"id":1694,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1569,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"128:24:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":1571,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":1404,"src":"154:37:10","symbolAliases":[{"foreign":{"id":1570,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"162:6:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../../utils/Strings.sol","id":1573,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":2007,"src":"192:51:10","symbolAliases":[{"foreign":{"id":1572,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"200:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC4906.sol","file":"../../../interfaces/IERC4906.sol","id":1575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":176,"src":"244:58:10","symbolAliases":[{"foreign":{"id":1574,"name":"IERC4906","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175,"src":"252:8:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC165.sol","file":"../../../interfaces/IERC165.sol","id":1577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1694,"sourceUnit":152,"src":"303:56:10","symbolAliases":[{"foreign":{"id":1576,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"311:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1579,"name":"IERC4906","nameLocations":["469:8:10"],"nodeType":"IdentifierPath","referencedDeclaration":175,"src":"469:8:10"},"id":1580,"nodeType":"InheritanceSpecifier","src":"469:8:10"},{"baseName":{"id":1581,"name":"ERC721","nameLocations":["479:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"479:6:10"},"id":1582,"nodeType":"InheritanceSpecifier","src":"479:6:10"}],"canonicalName":"ERC721URIStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":1578,"nodeType":"StructuredDocumentation","src":"361:69:10","text":" @dev ERC721 token with storage based token URI management."},"fullyImplemented":true,"id":1693,"linearizedBaseContracts":[1693,1403,269,1721,175,1520,2452,2464,1751],"name":"ERC721URIStorage","nameLocation":"449:16:10","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1585,"libraryName":{"id":1583,"name":"Strings","nameLocations":["498:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":2006,"src":"498:7:10"},"nodeType":"UsingForDirective","src":"492:26:10","typeName":{"id":1584,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":1591,"mutability":"constant","name":"ERC4906_INTERFACE_ID","nameLocation":"730:20:10","nodeType":"VariableDeclaration","scope":1693,"src":"706:65:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1586,"name":"bytes4","nodeType":"ElementaryTypeName","src":"706:6:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"hexValue":"30783439303634393036","id":1589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"760:10:10","typeDescriptions":{"typeIdentifier":"t_rational_1225148678_by_1","typeString":"int_const 1225148678"},"value":"0x49064906"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1225148678_by_1","typeString":"int_const 1225148678"}],"id":1588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"753:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":1587,"name":"bytes4","nodeType":"ElementaryTypeName","src":"753:6:10","typeDescriptions":{}}},"id":1590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:18:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"constant":false,"id":1595,"mutability":"mutable","name":"_tokenURIs","nameLocation":"860:10:10","nodeType":"VariableDeclaration","scope":1693,"src":"817:53:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":1594,"keyName":"tokenId","keyNameLocation":"833:7:10","keyType":{"id":1592,"name":"uint256","nodeType":"ElementaryTypeName","src":"825:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"817:34:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1593,"name":"string","nodeType":"ElementaryTypeName","src":"844:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[495,2463],"body":{"id":1615,"nodeType":"Block","src":"1045:99:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1606,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"1062:11:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1607,"name":"ERC4906_INTERFACE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"1077:20:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1062:35:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1611,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"1125:11:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1609,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1101:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$1693_$","typeString":"type(contract super ERC721URIStorage)"}},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1107:17:10","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":495,"src":"1101:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1062:75:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1605,"id":1614,"nodeType":"Return","src":"1055:82:10"}]},"documentation":{"id":1596,"nodeType":"StructuredDocumentation","src":"877:55:10","text":" @dev See {IERC165-supportsInterface}"},"functionSelector":"01ffc9a7","id":1616,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"946:17:10","nodeType":"FunctionDefinition","overrides":{"id":1602,"nodeType":"OverrideSpecifier","overrides":[{"id":1600,"name":"ERC721","nameLocations":["1013:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"1013:6:10"},{"id":1601,"name":"IERC165","nameLocations":["1021:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"1021:7:10"}],"src":"1004:25:10"},"parameters":{"id":1599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1598,"mutability":"mutable","name":"interfaceId","nameLocation":"971:11:10","nodeType":"VariableDeclaration","scope":1616,"src":"964:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1597,"name":"bytes4","nodeType":"ElementaryTypeName","src":"964:6:10","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"963:20:10"},"returnParameters":{"id":1605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1616,"src":"1039:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1603,"name":"bool","nodeType":"ElementaryTypeName","src":"1039:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1038:6:10"},"scope":1693,"src":"937:207:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[590],"body":{"id":1672,"nodeType":"Block","src":"1298:505:10","statements":[{"expression":{"arguments":[{"id":1626,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"1322:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1625,"name":"_requireOwned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"1308:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1308:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1628,"nodeType":"ExpressionStatement","src":"1308:22:10"},{"assignments":[1630],"declarations":[{"constant":false,"id":1630,"mutability":"mutable","name":"_tokenURI","nameLocation":"1355:9:10","nodeType":"VariableDeclaration","scope":1672,"src":"1341:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1629,"name":"string","nodeType":"ElementaryTypeName","src":"1341:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1634,"initialValue":{"baseExpression":{"id":1631,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"1367:10:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1633,"indexExpression":{"id":1632,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"1378:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1367:19:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1341:45:10"},{"assignments":[1636],"declarations":[{"constant":false,"id":1636,"mutability":"mutable","name":"base","nameLocation":"1410:4:10","nodeType":"VariableDeclaration","scope":1672,"src":"1396:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1635,"name":"string","nodeType":"ElementaryTypeName","src":"1396:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1637,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"1417:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1417:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1396:31:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1642,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1636,"src":"1506:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1500:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1640,"name":"bytes","nodeType":"ElementaryTypeName","src":"1500:5:10","typeDescriptions":{}}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:11:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1512:6:10","memberName":"length","nodeType":"MemberAccess","src":"1500:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1500:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1650,"nodeType":"IfStatement","src":"1496:70:10","trueBody":{"id":1649,"nodeType":"Block","src":"1525:41:10","statements":[{"expression":{"id":1647,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"1546:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1624,"id":1648,"nodeType":"Return","src":"1539:16:10"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1653,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"1671:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1665:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1651,"name":"bytes","nodeType":"ElementaryTypeName","src":"1665:5:10","typeDescriptions":{}}},"id":1654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1682:6:10","memberName":"length","nodeType":"MemberAccess","src":"1665:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1691:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1665:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1666,"nodeType":"IfStatement","src":"1661:95:10","trueBody":{"id":1665,"nodeType":"Block","src":"1694:62:10","statements":[{"expression":{"arguments":[{"id":1661,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1636,"src":"1729:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1662,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"1735:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1715:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1658,"name":"string","nodeType":"ElementaryTypeName","src":"1715:6:10","typeDescriptions":{}}},"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1722:6:10","memberName":"concat","nodeType":"MemberAccess","src":"1715:13:10","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1624,"id":1664,"nodeType":"Return","src":"1708:37:10"}]}},{"expression":{"arguments":[{"id":1669,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"1788:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1667,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1773:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$1693_$","typeString":"type(contract super ERC721URIStorage)"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1779:8:10","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":590,"src":"1773:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1773:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1624,"id":1671,"nodeType":"Return","src":"1766:30:10"}]},"documentation":{"id":1617,"nodeType":"StructuredDocumentation","src":"1150:55:10","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":1673,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1219:8:10","nodeType":"FunctionDefinition","overrides":{"id":1621,"nodeType":"OverrideSpecifier","overrides":[],"src":"1265:8:10"},"parameters":{"id":1620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1619,"mutability":"mutable","name":"tokenId","nameLocation":"1236:7:10","nodeType":"VariableDeclaration","scope":1673,"src":"1228:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1228:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1227:17:10"},"returnParameters":{"id":1624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1673,"src":"1283:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1622,"name":"string","nodeType":"ElementaryTypeName","src":"1283:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1282:15:10"},"scope":1693,"src":"1210:593:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1691,"nodeType":"Block","src":"2003:86:10","statements":[{"expression":{"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1681,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"2013:10:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1683,"indexExpression":{"id":1682,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"2024:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2013:19:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1684,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"2035:9:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2013:31:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1686,"nodeType":"ExpressionStatement","src":"2013:31:10"},{"eventCall":{"arguments":[{"id":1688,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"2074:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1687,"name":"MetadataUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":167,"src":"2059:14:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2059:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1690,"nodeType":"EmitStatement","src":"2054:28:10"}]},"documentation":{"id":1674,"nodeType":"StructuredDocumentation","src":"1809:108:10","text":" @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Emits {MetadataUpdate}."},"id":1692,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenURI","nameLocation":"1931:12:10","nodeType":"FunctionDefinition","parameters":{"id":1679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1676,"mutability":"mutable","name":"tokenId","nameLocation":"1952:7:10","nodeType":"VariableDeclaration","scope":1692,"src":"1944:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1675,"name":"uint256","nodeType":"ElementaryTypeName","src":"1944:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1678,"mutability":"mutable","name":"_tokenURI","nameLocation":"1975:9:10","nodeType":"VariableDeclaration","scope":1692,"src":"1961:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1677,"name":"string","nodeType":"ElementaryTypeName","src":"1961:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1943:42:10"},"returnParameters":{"id":1680,"nodeType":"ParameterList","parameters":[],"src":"2003:0:10"},"scope":1693,"src":"1922:167:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1694,"src":"431:1660:10","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[167,174,1419,1428,1437]}],"src":"128:1964:10"},"id":10},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC721":[1520],"IERC721Metadata":[1721]},"id":1722,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1695,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"127:24:11"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":1697,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1722,"sourceUnit":1521,"src":"153:39:11","symbolAliases":[{"foreign":{"id":1696,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"161:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1699,"name":"IERC721","nameLocations":["357:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":1520,"src":"357:7:11"},"id":1700,"nodeType":"InheritanceSpecifier","src":"357:7:11"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1698,"nodeType":"StructuredDocumentation","src":"194:133:11","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":1721,"linearizedBaseContracts":[1721,1520,2464],"name":"IERC721Metadata","nameLocation":"338:15:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1701,"nodeType":"StructuredDocumentation","src":"371:58:11","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":1706,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"443:4:11","nodeType":"FunctionDefinition","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[],"src":"447:2:11"},"returnParameters":{"id":1705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1706,"src":"473:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1703,"name":"string","nodeType":"ElementaryTypeName","src":"473:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"472:15:11"},"scope":1721,"src":"434:54:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1707,"nodeType":"StructuredDocumentation","src":"494:60:11","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":1712,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"568:6:11","nodeType":"FunctionDefinition","parameters":{"id":1708,"nodeType":"ParameterList","parameters":[],"src":"574:2:11"},"returnParameters":{"id":1711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"600:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1709,"name":"string","nodeType":"ElementaryTypeName","src":"600:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"599:15:11"},"scope":1721,"src":"559:56:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"621:90:11","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":1720,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"725:8:11","nodeType":"FunctionDefinition","parameters":{"id":1716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"tokenId","nameLocation":"742:7:11","nodeType":"VariableDeclaration","scope":1720,"src":"734:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1714,"name":"uint256","nodeType":"ElementaryTypeName","src":"734:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"733:17:11"},"returnParameters":{"id":1719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1720,"src":"774:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1717,"name":"string","nodeType":"ElementaryTypeName","src":"774:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"773:15:11"},"scope":1721,"src":"716:73:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1722,"src":"328:463:11","usedErrors":[],"usedEvents":[1419,1428,1437]}],"src":"127:665:11"},"id":11},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[1751]},"id":1752,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1723,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:12"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1724,"nodeType":"StructuredDocumentation","src":"127:496:12","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":1751,"linearizedBaseContracts":[1751],"name":"Context","nameLocation":"642:7:12","nodeType":"ContractDefinition","nodes":[{"body":{"id":1732,"nodeType":"Block","src":"718:34:12","statements":[{"expression":{"expression":{"id":1729,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:12","memberName":"sender","nodeType":"MemberAccess","src":"735:10:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1728,"id":1731,"nodeType":"Return","src":"728:17:12"}]},"id":1733,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:12","nodeType":"FunctionDefinition","parameters":{"id":1725,"nodeType":"ParameterList","parameters":[],"src":"675:2:12"},"returnParameters":{"id":1728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1733,"src":"709:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1726,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:12"},"scope":1751,"src":"656:96:12","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1741,"nodeType":"Block","src":"825:32:12","statements":[{"expression":{"expression":{"id":1738,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:12","memberName":"data","nodeType":"MemberAccess","src":"842:8:12","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1737,"id":1740,"nodeType":"Return","src":"835:15:12"}]},"id":1742,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:12","nodeType":"FunctionDefinition","parameters":{"id":1734,"nodeType":"ParameterList","parameters":[],"src":"775:2:12"},"returnParameters":{"id":1737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1742,"src":"809:14:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1735,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:12"},"scope":1751,"src":"758:99:12","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1749,"nodeType":"Block","src":"935:25:12","statements":[{"expression":{"hexValue":"30","id":1747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1746,"id":1748,"nodeType":"Return","src":"945:8:12"}]},"id":1750,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:12","nodeType":"FunctionDefinition","parameters":{"id":1743,"nodeType":"ParameterList","parameters":[],"src":"892:2:12"},"returnParameters":{"id":1746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1750,"src":"926:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1744,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:12"},"scope":1751,"src":"863:97:12","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1752,"src":"624:338:12","usedErrors":[],"usedEvents":[]}],"src":"101:862:12"},"id":12},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[3518],"SignedMath":[3623],"Strings":[2006]},"id":2007,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1753,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:13"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2007,"sourceUnit":3519,"src":"127:37:13","symbolAliases":[{"foreign":{"id":1754,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"135:4:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":1757,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2007,"sourceUnit":3624,"src":"165:49:13","symbolAliases":[{"foreign":{"id":1756,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3623,"src":"173:10:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":1758,"nodeType":"StructuredDocumentation","src":"216:34:13","text":" @dev String operations."},"fullyImplemented":true,"id":2006,"linearizedBaseContracts":[2006],"name":"Strings","nameLocation":"259:7:13","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1761,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"298:10:13","nodeType":"VariableDeclaration","scope":2006,"src":"273:56:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1759,"name":"bytes16","nodeType":"ElementaryTypeName","src":"273:7:13","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":1760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":1764,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"358:14:13","nodeType":"VariableDeclaration","scope":2006,"src":"335:42:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1762,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375:2:13","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"documentation":{"id":1765,"nodeType":"StructuredDocumentation","src":"384:81:13","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":1771,"name":"StringsInsufficientHexLength","nameLocation":"476:28:13","nodeType":"ErrorDefinition","parameters":{"id":1770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"value","nameLocation":"513:5:13","nodeType":"VariableDeclaration","scope":1771,"src":"505:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1766,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1769,"mutability":"mutable","name":"length","nameLocation":"528:6:13","nodeType":"VariableDeclaration","scope":1771,"src":"520:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1768,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:31:13"},"src":"470:66:13"},{"body":{"id":1818,"nodeType":"Block","src":"708:627:13","statements":[{"id":1817,"nodeType":"UncheckedBlock","src":"718:611:13","statements":[{"assignments":[1780],"declarations":[{"constant":false,"id":1780,"mutability":"mutable","name":"length","nameLocation":"750:6:13","nodeType":"VariableDeclaration","scope":1817,"src":"742:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1779,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1787,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"770:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1781,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"759:4:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3518_$","typeString":"type(library Math)"}},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:5:13","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3338,"src":"759:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"759:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"742:38:13"},{"assignments":[1789],"declarations":[{"constant":false,"id":1789,"mutability":"mutable","name":"buffer","nameLocation":"808:6:13","nodeType":"VariableDeclaration","scope":1817,"src":"794:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1788,"name":"string","nodeType":"ElementaryTypeName","src":"794:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1794,"initialValue":{"arguments":[{"id":1792,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1780,"src":"828:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:10:13","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":1790,"name":"string","nodeType":"ElementaryTypeName","src":"821:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":1793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"794:41:13"},{"assignments":[1796],"declarations":[{"constant":false,"id":1796,"mutability":"mutable","name":"ptr","nameLocation":"857:3:13","nodeType":"VariableDeclaration","scope":1817,"src":"849:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1795,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1797,"nodeType":"VariableDeclarationStatement","src":"849:11:13"},{"AST":{"nodeType":"YulBlock","src":"930:67:13","statements":[{"nodeType":"YulAssignment","src":"948:35:13","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"959:6:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"971:2:13","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"975:6:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:13"},"nodeType":"YulFunctionCall","src":"967:15:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"955:3:13"},"nodeType":"YulFunctionCall","src":"955:28:13"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"948:3:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1789,"isOffset":false,"isSlot":false,"src":"959:6:13","valueSize":1},{"declaration":1780,"isOffset":false,"isSlot":false,"src":"975:6:13","valueSize":1},{"declaration":1796,"isOffset":false,"isSlot":false,"src":"948:3:13","valueSize":1}],"id":1798,"nodeType":"InlineAssembly","src":"921:76:13"},{"body":{"id":1813,"nodeType":"Block","src":"1023:269:13","statements":[{"expression":{"id":1801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1041:5:13","subExpression":{"id":1800,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"1041:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1802,"nodeType":"ExpressionStatement","src":"1041:5:13"},{"AST":{"nodeType":"YulBlock","src":"1124:86:13","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1154:3:13"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1168:5:13"},{"kind":"number","nodeType":"YulLiteral","src":"1175:2:13","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1164:3:13"},"nodeType":"YulFunctionCall","src":"1164:14:13"},{"name":"HEX_DIGITS","nodeType":"YulIdentifier","src":"1180:10:13"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1159:4:13"},"nodeType":"YulFunctionCall","src":"1159:32:13"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1146:7:13"},"nodeType":"YulFunctionCall","src":"1146:46:13"},"nodeType":"YulExpressionStatement","src":"1146:46:13"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1761,"isOffset":false,"isSlot":false,"src":"1180:10:13","valueSize":1},{"declaration":1796,"isOffset":false,"isSlot":false,"src":"1154:3:13","valueSize":1},{"declaration":1774,"isOffset":false,"isSlot":false,"src":"1168:5:13","valueSize":1}],"id":1803,"nodeType":"InlineAssembly","src":"1115:95:13"},{"expression":{"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"1227:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1227:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1807,"nodeType":"ExpressionStatement","src":"1227:11:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1774,"src":"1260:5:13","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":"1269:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1260:10:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1812,"nodeType":"IfStatement","src":"1256:21:13","trueBody":{"id":1811,"nodeType":"Break","src":"1272:5:13"}}]},"condition":{"hexValue":"74727565","id":1799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1017:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1814,"nodeType":"WhileStatement","src":"1010:282:13"},{"expression":{"id":1815,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1789,"src":"1312:6:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1778,"id":1816,"nodeType":"Return","src":"1305:13:13"}]}]},"documentation":{"id":1772,"nodeType":"StructuredDocumentation","src":"542:90:13","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":1819,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"646:8:13","nodeType":"FunctionDefinition","parameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1774,"mutability":"mutable","name":"value","nameLocation":"663:5:13","nodeType":"VariableDeclaration","scope":1819,"src":"655:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1773,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:15:13"},"returnParameters":{"id":1778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1819,"src":"693:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1776,"name":"string","nodeType":"ElementaryTypeName","src":"693:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"692:15:13"},"scope":2006,"src":"637:698:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1844,"nodeType":"Block","src":"1511:92:13","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1542:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1550:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1542:9:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1560:2:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1542:20:13","trueExpression":{"hexValue":"2d","id":1833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1554:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":1839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1588:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1837,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3623,"src":"1573:10:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3623_$","typeString":"type(library SignedMath)"}},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:3:13","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3622,"src":"1573:14:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:21:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1836,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"1564:8:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1827,"name":"string","nodeType":"ElementaryTypeName","src":"1528:6:13","typeDescriptions":{}}},"id":1829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:6:13","memberName":"concat","nodeType":"MemberAccess","src":"1528:13:13","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1826,"id":1843,"nodeType":"Return","src":"1521:75:13"}]},"documentation":{"id":1820,"nodeType":"StructuredDocumentation","src":"1341:89:13","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":1845,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1444:14:13","nodeType":"FunctionDefinition","parameters":{"id":1823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1822,"mutability":"mutable","name":"value","nameLocation":"1466:5:13","nodeType":"VariableDeclaration","scope":1845,"src":"1459:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1821,"name":"int256","nodeType":"ElementaryTypeName","src":"1459:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1458:14:13"},"returnParameters":{"id":1826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1845,"src":"1496:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1824,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1495:15:13"},"scope":2006,"src":"1435:168:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1864,"nodeType":"Block","src":"1782:100:13","statements":[{"id":1863,"nodeType":"UncheckedBlock","src":"1792:84:13","statements":[{"expression":{"arguments":[{"id":1854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"1835:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"1854:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1855,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"1842:4:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$3518_$","typeString":"type(library Math)"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1847:6:13","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3460,"src":"1842:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1842:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1853,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1865,1948,1968],"referencedDeclaration":1948,"src":"1823:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1823:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1852,"id":1862,"nodeType":"Return","src":"1816:49:13"}]}]},"documentation":{"id":1846,"nodeType":"StructuredDocumentation","src":"1609:94:13","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":1865,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1717:11:13","nodeType":"FunctionDefinition","parameters":{"id":1849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"value","nameLocation":"1737:5:13","nodeType":"VariableDeclaration","scope":1865,"src":"1729:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1847,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1728:15:13"},"returnParameters":{"id":1852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1865,"src":"1767:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1850,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1766:15:13"},"scope":2006,"src":"1708:174:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1947,"nodeType":"Block","src":"2095:435:13","statements":[{"assignments":[1876],"declarations":[{"constant":false,"id":1876,"mutability":"mutable","name":"localValue","nameLocation":"2113:10:13","nodeType":"VariableDeclaration","scope":1947,"src":"2105:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1875,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1878,"initialValue":{"id":1877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"2126:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2105:26:13"},{"assignments":[1880],"declarations":[{"constant":false,"id":1880,"mutability":"mutable","name":"buffer","nameLocation":"2154:6:13","nodeType":"VariableDeclaration","scope":1947,"src":"2141:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1879,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1889,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2173:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1884,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"2177:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2173:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2186:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2173:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2163:9:13","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1881,"name":"bytes","nodeType":"ElementaryTypeName","src":"2167:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:25:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2141:47:13"},{"expression":{"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1890,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2198:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1892,"indexExpression":{"hexValue":"30","id":1891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2205:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2198:9:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2210:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2198:15:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1895,"nodeType":"ExpressionStatement","src":"2198:15:13"},{"expression":{"id":1900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1896,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2223:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1898,"indexExpression":{"hexValue":"31","id":1897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2230:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2223:9:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":1899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2235:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2223:15:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1901,"nodeType":"ExpressionStatement","src":"2223:15:13"},{"body":{"id":1930,"nodeType":"Block","src":"2293:95:13","statements":[{"expression":{"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1916,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2307:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1918,"indexExpression":{"id":1917,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2314:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2307:9:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1919,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"2319:10:13","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1923,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1920,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1876,"src":"2330:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2343:3:13","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2330:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2319:28:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2307:40:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1925,"nodeType":"ExpressionStatement","src":"2307:40:13"},{"expression":{"id":1928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1926,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1876,"src":"2361:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2376:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2361:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1929,"nodeType":"ExpressionStatement","src":"2361:16:13"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2281:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2281:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1931,"initializationExpression":{"assignments":[1903],"declarations":[{"constant":false,"id":1903,"mutability":"mutable","name":"i","nameLocation":"2261:1:13","nodeType":"VariableDeclaration","scope":1931,"src":"2253:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1902,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1909,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1905,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"2269:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2265:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2278:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2265:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2253:26:13"},"loopExpression":{"expression":{"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2288:3:13","subExpression":{"id":1913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"2290:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1915,"nodeType":"ExpressionStatement","src":"2288:3:13"},"nodeType":"ForStatement","src":"2248:140:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1932,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1876,"src":"2401:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2401:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1941,"nodeType":"IfStatement","src":"2397:96:13","trueBody":{"id":1940,"nodeType":"Block","src":"2418:75:13","statements":[{"errorCall":{"arguments":[{"id":1936,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"2468:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1937,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"2475:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1935,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"2439:28:13","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2439:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1939,"nodeType":"RevertStatement","src":"2432:50:13"}]}},{"expression":{"arguments":[{"id":1944,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1880,"src":"2516:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1942,"name":"string","nodeType":"ElementaryTypeName","src":"2509:6:13","typeDescriptions":{}}},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1874,"id":1946,"nodeType":"Return","src":"2502:21:13"}]},"documentation":{"id":1866,"nodeType":"StructuredDocumentation","src":"1888:112:13","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":1948,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2014:11:13","nodeType":"FunctionDefinition","parameters":{"id":1871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1868,"mutability":"mutable","name":"value","nameLocation":"2034:5:13","nodeType":"VariableDeclaration","scope":1948,"src":"2026:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"length","nameLocation":"2049:6:13","nodeType":"VariableDeclaration","scope":1948,"src":"2041:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2041:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2025:31:13"},"returnParameters":{"id":1874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1873,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1948,"src":"2080:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1872,"name":"string","nodeType":"ElementaryTypeName","src":"2080:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2079:15:13"},"scope":2006,"src":"2005:525:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1967,"nodeType":"Block","src":"2762:75:13","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1961,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"2807:4:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2799:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1959,"name":"uint160","nodeType":"ElementaryTypeName","src":"2799:7:13","typeDescriptions":{}}},"id":1962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1957,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:13","typeDescriptions":{}}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1964,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"2815:14:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1956,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1865,1948,1968],"referencedDeclaration":1948,"src":"2779:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1955,"id":1966,"nodeType":"Return","src":"2772:58:13"}]},"documentation":{"id":1949,"nodeType":"StructuredDocumentation","src":"2536:148:13","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":1968,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2698:11:13","nodeType":"FunctionDefinition","parameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1951,"mutability":"mutable","name":"addr","nameLocation":"2718:4:13","nodeType":"VariableDeclaration","scope":1968,"src":"2710:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1950,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2709:14:13"},"returnParameters":{"id":1955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1968,"src":"2747:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1953,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2746:15:13"},"scope":2006,"src":"2689:148:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2004,"nodeType":"Block","src":"2992:104:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1980,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"3015:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1978,"name":"bytes","nodeType":"ElementaryTypeName","src":"3009:5:13","typeDescriptions":{}}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3018:6:13","memberName":"length","nodeType":"MemberAccess","src":"3009:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1985,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"3034:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3028:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1983,"name":"bytes","nodeType":"ElementaryTypeName","src":"3028:5:13","typeDescriptions":{}}},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3028:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:13","memberName":"length","nodeType":"MemberAccess","src":"3028:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3009:34:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1992,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1971,"src":"3063:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3057:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1990,"name":"bytes","nodeType":"ElementaryTypeName","src":"3057:5:13","typeDescriptions":{}}},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1989,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3047:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":1998,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"3086:1:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1996,"name":"bytes","nodeType":"ElementaryTypeName","src":"3080:5:13","typeDescriptions":{}}},"id":1999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:8:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1995,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3070:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3047:42:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3009:80:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1977,"id":2003,"nodeType":"Return","src":"3002:87:13"}]},"documentation":{"id":1969,"nodeType":"StructuredDocumentation","src":"2843:66:13","text":" @dev Returns true if the two strings are equal."},"id":2005,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2923:5:13","nodeType":"FunctionDefinition","parameters":{"id":1974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1971,"mutability":"mutable","name":"a","nameLocation":"2943:1:13","nodeType":"VariableDeclaration","scope":2005,"src":"2929:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1970,"name":"string","nodeType":"ElementaryTypeName","src":"2929:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1973,"mutability":"mutable","name":"b","nameLocation":"2960:1:13","nodeType":"VariableDeclaration","scope":2005,"src":"2946:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1972,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2928:34:13"},"returnParameters":{"id":1977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2005,"src":"2986:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1975,"name":"bool","nodeType":"ElementaryTypeName","src":"2986:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2985:6:13"},"scope":2006,"src":"2914:182:13","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2007,"src":"251:2847:13","usedErrors":[1771],"usedEvents":[]}],"src":"101:2998:13"},"id":13},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[2354]},"id":2355,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2008,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:14"},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":2009,"nodeType":"StructuredDocumentation","src":"138:205:14","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":2354,"linearizedBaseContracts":[2354],"name":"ECDSA","nameLocation":"352:5:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":2014,"members":[{"id":2010,"name":"NoError","nameLocation":"392:7:14","nodeType":"EnumValue","src":"392:7:14"},{"id":2011,"name":"InvalidSignature","nameLocation":"409:16:14","nodeType":"EnumValue","src":"409:16:14"},{"id":2012,"name":"InvalidSignatureLength","nameLocation":"435:22:14","nodeType":"EnumValue","src":"435:22:14"},{"id":2013,"name":"InvalidSignatureS","nameLocation":"467:17:14","nodeType":"EnumValue","src":"467:17:14"}],"name":"RecoverError","nameLocation":"369:12:14","nodeType":"EnumDefinition","src":"364:126:14"},{"documentation":{"id":2015,"nodeType":"StructuredDocumentation","src":"496:63:14","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","id":2017,"name":"ECDSAInvalidSignature","nameLocation":"570:21:14","nodeType":"ErrorDefinition","parameters":{"id":2016,"nodeType":"ParameterList","parameters":[],"src":"591:2:14"},"src":"564:30:14"},{"documentation":{"id":2018,"nodeType":"StructuredDocumentation","src":"600:60:14","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","id":2022,"name":"ECDSAInvalidSignatureLength","nameLocation":"671:27:14","nodeType":"ErrorDefinition","parameters":{"id":2021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2020,"mutability":"mutable","name":"length","nameLocation":"707:6:14","nodeType":"VariableDeclaration","scope":2022,"src":"699:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:16:14"},"src":"665:50:14"},{"documentation":{"id":2023,"nodeType":"StructuredDocumentation","src":"721:85:14","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","id":2027,"name":"ECDSAInvalidSignatureS","nameLocation":"817:22:14","nodeType":"ErrorDefinition","parameters":{"id":2026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2025,"mutability":"mutable","name":"s","nameLocation":"848:1:14","nodeType":"VariableDeclaration","scope":2027,"src":"840:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"840:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"839:11:14"},"src":"811:40:14"},{"body":{"id":2079,"nodeType":"Block","src":"2242:653:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2042,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2256:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:6:14","memberName":"length","nodeType":"MemberAccess","src":"2256:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":2044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2276:2:14","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2256:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2077,"nodeType":"Block","src":"2781:108:14","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2811:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2803:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2064,"name":"address","nodeType":"ElementaryTypeName","src":"2803:7:14","typeDescriptions":{}}},"id":2067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2068,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"2815:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2828:22:14","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":2012,"src":"2815:35:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":2072,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2860:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2870:6:14","memberName":"length","nodeType":"MemberAccess","src":"2860:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2852:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2852:7:14","typeDescriptions":{}}},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2802:76:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2041,"id":2076,"nodeType":"Return","src":"2795:83:14"}]},"id":2078,"nodeType":"IfStatement","src":"2252:637:14","trueBody":{"id":2063,"nodeType":"Block","src":"2280:495:14","statements":[{"assignments":[2047],"declarations":[{"constant":false,"id":2047,"mutability":"mutable","name":"r","nameLocation":"2302:1:14","nodeType":"VariableDeclaration","scope":2063,"src":"2294:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2294:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2048,"nodeType":"VariableDeclarationStatement","src":"2294:9:14"},{"assignments":[2050],"declarations":[{"constant":false,"id":2050,"mutability":"mutable","name":"s","nameLocation":"2325:1:14","nodeType":"VariableDeclaration","scope":2063,"src":"2317:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2317:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2051,"nodeType":"VariableDeclarationStatement","src":"2317:9:14"},{"assignments":[2053],"declarations":[{"constant":false,"id":2053,"mutability":"mutable","name":"v","nameLocation":"2346:1:14","nodeType":"VariableDeclaration","scope":2063,"src":"2340:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2052,"name":"uint8","nodeType":"ElementaryTypeName","src":"2340:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2054,"nodeType":"VariableDeclarationStatement","src":"2340:7:14"},{"AST":{"nodeType":"YulBlock","src":"2548:171:14","statements":[{"nodeType":"YulAssignment","src":"2566:32:14","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2581:9:14"},{"kind":"number","nodeType":"YulLiteral","src":"2592:4:14","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:14"},"nodeType":"YulFunctionCall","src":"2577:20:14"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2571:5:14"},"nodeType":"YulFunctionCall","src":"2571:27:14"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2566:1:14"}]},{"nodeType":"YulAssignment","src":"2615:32:14","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2630:9:14"},{"kind":"number","nodeType":"YulLiteral","src":"2641:4:14","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2626:3:14"},"nodeType":"YulFunctionCall","src":"2626:20:14"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2620:5:14"},"nodeType":"YulFunctionCall","src":"2620:27:14"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2615:1:14"}]},{"nodeType":"YulAssignment","src":"2664:41:14","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2674:1:14","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2687:9:14"},{"kind":"number","nodeType":"YulLiteral","src":"2698:4:14","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2683:3:14"},"nodeType":"YulFunctionCall","src":"2683:20:14"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2677:5:14"},"nodeType":"YulFunctionCall","src":"2677:27:14"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2669:4:14"},"nodeType":"YulFunctionCall","src":"2669:36:14"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2664:1:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2047,"isOffset":false,"isSlot":false,"src":"2566:1:14","valueSize":1},{"declaration":2050,"isOffset":false,"isSlot":false,"src":"2615:1:14","valueSize":1},{"declaration":2032,"isOffset":false,"isSlot":false,"src":"2581:9:14","valueSize":1},{"declaration":2032,"isOffset":false,"isSlot":false,"src":"2630:9:14","valueSize":1},{"declaration":2032,"isOffset":false,"isSlot":false,"src":"2687:9:14","valueSize":1},{"declaration":2053,"isOffset":false,"isSlot":false,"src":"2664:1:14","valueSize":1}],"id":2055,"nodeType":"InlineAssembly","src":"2539:180:14"},{"expression":{"arguments":[{"id":2057,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"2750:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"2756:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2059,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"2759:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2060,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2050,"src":"2762:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2056,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2268,"src":"2739:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2041,"id":2062,"nodeType":"Return","src":"2732:32:14"}]}}]},"documentation":{"id":2028,"nodeType":"StructuredDocumentation","src":"857:1267:14","text":" @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]"},"id":2080,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2138:10:14","nodeType":"FunctionDefinition","parameters":{"id":2033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2030,"mutability":"mutable","name":"hash","nameLocation":"2157:4:14","nodeType":"VariableDeclaration","scope":2080,"src":"2149:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2149:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2032,"mutability":"mutable","name":"signature","nameLocation":"2176:9:14","nodeType":"VariableDeclaration","scope":2080,"src":"2163:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2031,"name":"bytes","nodeType":"ElementaryTypeName","src":"2163:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2148:38:14"},"returnParameters":{"id":2041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2080,"src":"2210:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2034,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2080,"src":"2219:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2037,"nodeType":"UserDefinedTypeName","pathNode":{"id":2036,"name":"RecoverError","nameLocations":["2219:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"2219:12:14"},"referencedDeclaration":2014,"src":"2219:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2080,"src":"2233:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2233:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2209:32:14"},"scope":2354,"src":"2129:766:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2109,"nodeType":"Block","src":"3789:168:14","statements":[{"assignments":[2091,2094,2096],"declarations":[{"constant":false,"id":2091,"mutability":"mutable","name":"recovered","nameLocation":"3808:9:14","nodeType":"VariableDeclaration","scope":2109,"src":"3800:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2090,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2094,"mutability":"mutable","name":"error","nameLocation":"3832:5:14","nodeType":"VariableDeclaration","scope":2109,"src":"3819:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2093,"nodeType":"UserDefinedTypeName","pathNode":{"id":2092,"name":"RecoverError","nameLocations":["3819:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"3819:12:14"},"referencedDeclaration":2014,"src":"3819:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2096,"mutability":"mutable","name":"errorArg","nameLocation":"3847:8:14","nodeType":"VariableDeclaration","scope":2109,"src":"3839:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3839:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2101,"initialValue":{"arguments":[{"id":2098,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2083,"src":"3870:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2099,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2085,"src":"3876:9:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2097,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2080,"src":"3859:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"3799:87:14"},{"expression":{"arguments":[{"id":2103,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"3908:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2104,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2096,"src":"3915:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2102,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3896:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$2014_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3896:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2106,"nodeType":"ExpressionStatement","src":"3896:28:14"},{"expression":{"id":2107,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2091,"src":"3941:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2089,"id":2108,"nodeType":"Return","src":"3934:16:14"}]},"documentation":{"id":2081,"nodeType":"StructuredDocumentation","src":"2901:796:14","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it."},"id":2110,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3711:7:14","nodeType":"FunctionDefinition","parameters":{"id":2086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2083,"mutability":"mutable","name":"hash","nameLocation":"3727:4:14","nodeType":"VariableDeclaration","scope":2110,"src":"3719:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3719:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2085,"mutability":"mutable","name":"signature","nameLocation":"3746:9:14","nodeType":"VariableDeclaration","scope":2110,"src":"3733:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2084,"name":"bytes","nodeType":"ElementaryTypeName","src":"3733:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3718:38:14"},"returnParameters":{"id":2089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2110,"src":"3780:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2087,"name":"address","nodeType":"ElementaryTypeName","src":"3780:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3779:9:14"},"scope":2354,"src":"3702:255:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2159,"nodeType":"Block","src":"4285:342:14","statements":[{"id":2158,"nodeType":"UncheckedBlock","src":"4295:326:14","statements":[{"assignments":[2128],"declarations":[{"constant":false,"id":2128,"mutability":"mutable","name":"s","nameLocation":"4327:1:14","nodeType":"VariableDeclaration","scope":2158,"src":"4319:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4319:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2135,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2129,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"4331:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":2132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4344:66:14","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":2131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4336:7:14","typeDescriptions":{}}},"id":2133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4331:80:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4319:92:14"},{"assignments":[2137],"declarations":[{"constant":false,"id":2137,"mutability":"mutable","name":"v","nameLocation":"4528:1:14","nodeType":"VariableDeclaration","scope":2158,"src":"4522:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2136,"name":"uint8","nodeType":"ElementaryTypeName","src":"4522:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2150,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2142,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"4547:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2140,"name":"uint256","nodeType":"ElementaryTypeName","src":"4539:7:14","typeDescriptions":{}}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":2144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4554:3:14","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4539:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2146,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4538:20:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":2147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4561:2:14","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4538:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4532:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2138,"name":"uint8","nodeType":"ElementaryTypeName","src":"4532:5:14","typeDescriptions":{}}},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:32:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4522:42:14"},{"expression":{"arguments":[{"id":2152,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"4596:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2153,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2137,"src":"4602:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2154,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2115,"src":"4605:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2155,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2128,"src":"4608:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2151,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2268,"src":"4585:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2126,"id":2157,"nodeType":"Return","src":"4578:32:14"}]}]},"documentation":{"id":2111,"nodeType":"StructuredDocumentation","src":"3963:205:14","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]"},"id":2160,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4182:10:14","nodeType":"FunctionDefinition","parameters":{"id":2118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"hash","nameLocation":"4201:4:14","nodeType":"VariableDeclaration","scope":2160,"src":"4193:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2115,"mutability":"mutable","name":"r","nameLocation":"4215:1:14","nodeType":"VariableDeclaration","scope":2160,"src":"4207:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4207:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2117,"mutability":"mutable","name":"vs","nameLocation":"4226:2:14","nodeType":"VariableDeclaration","scope":2160,"src":"4218:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4218:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4192:37:14"},"returnParameters":{"id":2126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2160,"src":"4253:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2119,"name":"address","nodeType":"ElementaryTypeName","src":"4253:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2160,"src":"4262:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2122,"nodeType":"UserDefinedTypeName","pathNode":{"id":2121,"name":"RecoverError","nameLocations":["4262:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"4262:12:14"},"referencedDeclaration":2014,"src":"4262:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2160,"src":"4276:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4276:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4252:32:14"},"scope":2354,"src":"4173:454:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2192,"nodeType":"Block","src":"4840:164:14","statements":[{"assignments":[2173,2176,2178],"declarations":[{"constant":false,"id":2173,"mutability":"mutable","name":"recovered","nameLocation":"4859:9:14","nodeType":"VariableDeclaration","scope":2192,"src":"4851:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2172,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2176,"mutability":"mutable","name":"error","nameLocation":"4883:5:14","nodeType":"VariableDeclaration","scope":2192,"src":"4870:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2175,"nodeType":"UserDefinedTypeName","pathNode":{"id":2174,"name":"RecoverError","nameLocations":["4870:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"4870:12:14"},"referencedDeclaration":2014,"src":"4870:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2178,"mutability":"mutable","name":"errorArg","nameLocation":"4898:8:14","nodeType":"VariableDeclaration","scope":2192,"src":"4890:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4890:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2184,"initialValue":{"arguments":[{"id":2180,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2163,"src":"4921:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2181,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"4927:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2182,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2167,"src":"4930:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2179,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2160,"src":"4910:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4850:83:14"},{"expression":{"arguments":[{"id":2186,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"4955:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2187,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2178,"src":"4962:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2185,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"4943:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$2014_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2189,"nodeType":"ExpressionStatement","src":"4943:28:14"},{"expression":{"id":2190,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2173,"src":"4988:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2171,"id":2191,"nodeType":"Return","src":"4981:16:14"}]},"documentation":{"id":2161,"nodeType":"StructuredDocumentation","src":"4633:116:14","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately."},"id":2193,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4763:7:14","nodeType":"FunctionDefinition","parameters":{"id":2168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2163,"mutability":"mutable","name":"hash","nameLocation":"4779:4:14","nodeType":"VariableDeclaration","scope":2193,"src":"4771:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4771:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2165,"mutability":"mutable","name":"r","nameLocation":"4793:1:14","nodeType":"VariableDeclaration","scope":2193,"src":"4785:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4785:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2167,"mutability":"mutable","name":"vs","nameLocation":"4804:2:14","nodeType":"VariableDeclaration","scope":2193,"src":"4796:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4796:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4770:37:14"},"returnParameters":{"id":2171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2193,"src":"4831:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2169,"name":"address","nodeType":"ElementaryTypeName","src":"4831:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4830:9:14"},"scope":2354,"src":"4754:250:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2267,"nodeType":"Block","src":"5298:1372:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"6194:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6186:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2212,"name":"uint256","nodeType":"ElementaryTypeName","src":"6186:7:14","typeDescriptions":{}}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":2216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6199:66:14","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6186:79:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2228,"nodeType":"IfStatement","src":"6182:164:14","trueBody":{"id":2227,"nodeType":"Block","src":"6267:79:14","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6297:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6289:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2218,"name":"address","nodeType":"ElementaryTypeName","src":"6289:7:14","typeDescriptions":{}}},"id":2221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6289:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2222,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6301:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6314:17:14","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":2013,"src":"6301:30:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2224,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"6333:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2225,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6288:47:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2211,"id":2226,"nodeType":"Return","src":"6281:54:14"}]}},{"assignments":[2230],"declarations":[{"constant":false,"id":2230,"mutability":"mutable","name":"signer","nameLocation":"6448:6:14","nodeType":"VariableDeclaration","scope":2267,"src":"6440:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2229,"name":"address","nodeType":"ElementaryTypeName","src":"6440:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2237,"initialValue":{"arguments":[{"id":2232,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2196,"src":"6467:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2233,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"6473:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2234,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"6476:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2235,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"6479:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2231,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6457:9:14","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:24:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6440:41:14"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2238,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"6495:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6513:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6505:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2239,"name":"address","nodeType":"ElementaryTypeName","src":"6505:7:14","typeDescriptions":{}}},"id":2242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6505:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6495:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2257,"nodeType":"IfStatement","src":"6491:113:14","trueBody":{"id":2256,"nodeType":"Block","src":"6517:87:14","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":2246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6547:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6539:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2244,"name":"address","nodeType":"ElementaryTypeName","src":"6539:7:14","typeDescriptions":{}}},"id":2247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6539:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2248,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6551:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6564:16:14","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":2011,"src":"6551:29:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":2252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6582:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6582:7:14","typeDescriptions":{}}},"id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:55:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2211,"id":2255,"nodeType":"Return","src":"6531:62:14"}]}},{"expression":{"components":[{"id":2258,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2230,"src":"6622:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2259,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"6630:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6643:7:14","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":2010,"src":"6630:20:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":2263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6660:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6652:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6652:7:14","typeDescriptions":{}}},"id":2264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6652:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2265,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6621:42:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":2211,"id":2266,"nodeType":"Return","src":"6614:49:14"}]},"documentation":{"id":2194,"nodeType":"StructuredDocumentation","src":"5010:125:14","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":2268,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5149:10:14","nodeType":"FunctionDefinition","parameters":{"id":2203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2196,"mutability":"mutable","name":"hash","nameLocation":"5177:4:14","nodeType":"VariableDeclaration","scope":2268,"src":"5169:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5169:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2198,"mutability":"mutable","name":"v","nameLocation":"5197:1:14","nodeType":"VariableDeclaration","scope":2268,"src":"5191:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2197,"name":"uint8","nodeType":"ElementaryTypeName","src":"5191:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2200,"mutability":"mutable","name":"r","nameLocation":"5216:1:14","nodeType":"VariableDeclaration","scope":2268,"src":"5208:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5208:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2202,"mutability":"mutable","name":"s","nameLocation":"5235:1:14","nodeType":"VariableDeclaration","scope":2268,"src":"5227:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5227:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5159:83:14"},"returnParameters":{"id":2211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2268,"src":"5266:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2204,"name":"address","nodeType":"ElementaryTypeName","src":"5266:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2268,"src":"5275:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2207,"nodeType":"UserDefinedTypeName","pathNode":{"id":2206,"name":"RecoverError","nameLocations":["5275:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"5275:12:14"},"referencedDeclaration":2014,"src":"5275:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2268,"src":"5289:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5289:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5265:32:14"},"scope":2354,"src":"5140:1530:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2303,"nodeType":"Block","src":"6897:166:14","statements":[{"assignments":[2283,2286,2288],"declarations":[{"constant":false,"id":2283,"mutability":"mutable","name":"recovered","nameLocation":"6916:9:14","nodeType":"VariableDeclaration","scope":2303,"src":"6908:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2282,"name":"address","nodeType":"ElementaryTypeName","src":"6908:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2286,"mutability":"mutable","name":"error","nameLocation":"6940:5:14","nodeType":"VariableDeclaration","scope":2303,"src":"6927:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2285,"nodeType":"UserDefinedTypeName","pathNode":{"id":2284,"name":"RecoverError","nameLocations":["6927:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"6927:12:14"},"referencedDeclaration":2014,"src":"6927:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2288,"mutability":"mutable","name":"errorArg","nameLocation":"6955:8:14","nodeType":"VariableDeclaration","scope":2303,"src":"6947:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6947:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2295,"initialValue":{"arguments":[{"id":2290,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2271,"src":"6978:4:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2291,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2273,"src":"6984:1:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2292,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"6987:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2293,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"6990:1:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2289,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[2080,2160,2268],"referencedDeclaration":2268,"src":"6967:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6967:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$2014_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"6907:85:14"},{"expression":{"arguments":[{"id":2297,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2286,"src":"7014:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},{"id":2298,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"7021:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2296,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"7002:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$2014_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2300,"nodeType":"ExpressionStatement","src":"7002:28:14"},{"expression":{"id":2301,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2283,"src":"7047:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2281,"id":2302,"nodeType":"Return","src":"7040:16:14"}]},"documentation":{"id":2269,"nodeType":"StructuredDocumentation","src":"6676:122:14","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":2304,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6812:7:14","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2271,"mutability":"mutable","name":"hash","nameLocation":"6828:4:14","nodeType":"VariableDeclaration","scope":2304,"src":"6820:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6820:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2273,"mutability":"mutable","name":"v","nameLocation":"6840:1:14","nodeType":"VariableDeclaration","scope":2304,"src":"6834:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2272,"name":"uint8","nodeType":"ElementaryTypeName","src":"6834:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2275,"mutability":"mutable","name":"r","nameLocation":"6851:1:14","nodeType":"VariableDeclaration","scope":2304,"src":"6843:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6843:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2277,"mutability":"mutable","name":"s","nameLocation":"6862:1:14","nodeType":"VariableDeclaration","scope":2304,"src":"6854:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6854:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6819:45:14"},"returnParameters":{"id":2281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2304,"src":"6888:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2279,"name":"address","nodeType":"ElementaryTypeName","src":"6888:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6887:9:14"},"scope":2354,"src":"6803:260:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2352,"nodeType":"Block","src":"7268:460:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2313,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7282:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2314,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7291:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7304:7:14","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":2010,"src":"7291:20:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7282:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2319,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7378:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2320,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7387:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7400:16:14","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":2011,"src":"7387:29:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7378:38:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2327,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7483:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2328,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7492:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7505:22:14","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":2012,"src":"7492:35:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7483:44:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2339,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"7617:5:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2340,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"7626:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$2014_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":2341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7639:17:14","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":2013,"src":"7626:30:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"src":"7617:39:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2348,"nodeType":"IfStatement","src":"7613:109:14","trueBody":{"id":2347,"nodeType":"Block","src":"7658:64:14","statements":[{"errorCall":{"arguments":[{"id":2344,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"7702:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2343,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"7679:22:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:32:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2346,"nodeType":"RevertStatement","src":"7672:39:14"}]}},"id":2349,"nodeType":"IfStatement","src":"7479:243:14","trueBody":{"id":2338,"nodeType":"Block","src":"7529:78:14","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":2334,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"7586:8:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7578:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2332,"name":"uint256","nodeType":"ElementaryTypeName","src":"7578:7:14","typeDescriptions":{}}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7578:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2331,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2022,"src":"7550:27:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:46:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2337,"nodeType":"RevertStatement","src":"7543:53:14"}]}},"id":2350,"nodeType":"IfStatement","src":"7374:348:14","trueBody":{"id":2326,"nodeType":"Block","src":"7418:55:14","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2323,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"7439:21:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7439:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2325,"nodeType":"RevertStatement","src":"7432:30:14"}]}},"id":2351,"nodeType":"IfStatement","src":"7278:444:14","trueBody":{"id":2318,"nodeType":"Block","src":"7313:55:14","statements":[{"functionReturnParameters":2312,"id":2317,"nodeType":"Return","src":"7327:7:14"}]}}]},"documentation":{"id":2305,"nodeType":"StructuredDocumentation","src":"7069:122:14","text":" @dev Optionally reverts with the corresponding custom error according to the `error` argument provided."},"id":2353,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"7205:11:14","nodeType":"FunctionDefinition","parameters":{"id":2311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2308,"mutability":"mutable","name":"error","nameLocation":"7230:5:14","nodeType":"VariableDeclaration","scope":2353,"src":"7217:18:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":2307,"nodeType":"UserDefinedTypeName","pathNode":{"id":2306,"name":"RecoverError","nameLocations":["7217:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":2014,"src":"7217:12:14"},"referencedDeclaration":2014,"src":"7217:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$2014","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":2310,"mutability":"mutable","name":"errorArg","nameLocation":"7245:8:14","nodeType":"VariableDeclaration","scope":2353,"src":"7237:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7216:38:14"},"returnParameters":{"id":2312,"nodeType":"ParameterList","parameters":[],"src":"7268:0:14"},"scope":2354,"src":"7196:532:14","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2355,"src":"344:7386:14","usedErrors":[2017,2022,2027],"usedEvents":[]}],"src":"112:7619:14"},"id":14},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","exportedSymbols":{"MessageHashUtils":[2428],"Strings":[2006]},"id":2429,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2356,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"123:24:15"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":2358,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2429,"sourceUnit":2007,"src":"149:39:15","symbolAliases":[{"foreign":{"id":2357,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"157:7:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MessageHashUtils","contractDependencies":[],"contractKind":"library","documentation":{"id":2359,"nodeType":"StructuredDocumentation","src":"190:330:15","text":" @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications."},"fullyImplemented":true,"id":2428,"linearizedBaseContracts":[2428],"name":"MessageHashUtils","nameLocation":"529:16:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":2368,"nodeType":"Block","src":"1314:368:15","statements":[{"AST":{"nodeType":"YulBlock","src":"1376:300:15","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1397:4:15","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"1403:34:15","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1390:6:15"},"nodeType":"YulFunctionCall","src":"1390:48:15"},"nodeType":"YulExpressionStatement","src":"1390:48:15"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1499:4:15","type":"","value":"0x1c"},{"name":"messageHash","nodeType":"YulIdentifier","src":"1505:11:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1492:6:15"},"nodeType":"YulFunctionCall","src":"1492:25:15"},"nodeType":"YulExpressionStatement","src":"1492:25:15"},{"nodeType":"YulAssignment","src":"1571:31:15","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1591:4:15","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"1597:4:15","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1581:9:15"},"nodeType":"YulFunctionCall","src":"1581:21:15"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"1571:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2365,"isOffset":false,"isSlot":false,"src":"1571:6:15","valueSize":1},{"declaration":2362,"isOffset":false,"isSlot":false,"src":"1505:11:15","valueSize":1}],"id":2367,"nodeType":"InlineAssembly","src":"1367:309:15"}]},"documentation":{"id":2360,"nodeType":"StructuredDocumentation","src":"552:665:15","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}."},"id":2369,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"1231:22:15","nodeType":"FunctionDefinition","parameters":{"id":2363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2362,"mutability":"mutable","name":"messageHash","nameLocation":"1262:11:15","nodeType":"VariableDeclaration","scope":2369,"src":"1254:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1254:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1253:21:15"},"returnParameters":{"id":2366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2365,"mutability":"mutable","name":"digest","nameLocation":"1306:6:15","nodeType":"VariableDeclaration","scope":2369,"src":"1298:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1298:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1297:16:15"},"scope":2428,"src":"1222:460:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2394,"nodeType":"Block","src":"2234:143:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":2381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2286:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"arguments":[{"expression":{"id":2386,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"2343:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2351:6:15","memberName":"length","nodeType":"MemberAccess","src":"2343:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2384,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"2326:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$2006_$","typeString":"type(library Strings)"}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2334:8:15","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1819,"src":"2326:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2320:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2382,"name":"bytes","nodeType":"ElementaryTypeName","src":"2320:5:15","typeDescriptions":{}}},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2320:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2390,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"2361:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2273:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2378,"name":"bytes","nodeType":"ElementaryTypeName","src":"2273:5:15","typeDescriptions":{}}},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2279:6:15","memberName":"concat","nodeType":"MemberAccess","src":"2273:12:15","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2377,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2263:9:15","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:107:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2376,"id":2393,"nodeType":"Return","src":"2244:126:15"}]},"documentation":{"id":2370,"nodeType":"StructuredDocumentation","src":"1688:455:15","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}."},"id":2395,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"2157:22:15","nodeType":"FunctionDefinition","parameters":{"id":2373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2372,"mutability":"mutable","name":"message","nameLocation":"2193:7:15","nodeType":"VariableDeclaration","scope":2395,"src":"2180:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2371,"name":"bytes","nodeType":"ElementaryTypeName","src":"2180:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2179:22:15"},"returnParameters":{"id":2376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2395,"src":"2225:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2225:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2224:9:15"},"scope":2428,"src":"2148:229:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2414,"nodeType":"Block","src":"2831:80:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":2408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2875:10:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":2409,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"2887:9:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2410,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2400,"src":"2898:4:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2858:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2862:12:15","memberName":"encodePacked","nodeType":"MemberAccess","src":"2858:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2405,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2848:9:15","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2404,"id":2413,"nodeType":"Return","src":"2841:63:15"}]},"documentation":{"id":2396,"nodeType":"StructuredDocumentation","src":"2383:332:15","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}."},"id":2415,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"2729:31:15","nodeType":"FunctionDefinition","parameters":{"id":2401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2398,"mutability":"mutable","name":"validator","nameLocation":"2769:9:15","nodeType":"VariableDeclaration","scope":2415,"src":"2761:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2397,"name":"address","nodeType":"ElementaryTypeName","src":"2761:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2400,"mutability":"mutable","name":"data","nameLocation":"2793:4:15","nodeType":"VariableDeclaration","scope":2415,"src":"2780:17:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2399,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2760:38:15"},"returnParameters":{"id":2404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2415,"src":"2822:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2822:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2821:9:15"},"scope":2428,"src":"2720:191:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2426,"nodeType":"Block","src":"3462:292:15","statements":[{"AST":{"nodeType":"YulBlock","src":"3524:224:15","statements":[{"nodeType":"YulVariableDeclaration","src":"3538:22:15","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3555:4:15","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3549:5:15"},"nodeType":"YulFunctionCall","src":"3549:11:15"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"3542:3:15","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3580:3:15"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"3585:10:15","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:15"},"nodeType":"YulFunctionCall","src":"3573:23:15"},"nodeType":"YulExpressionStatement","src":"3573:23:15"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3620:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"3625:4:15","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:15"},"nodeType":"YulFunctionCall","src":"3616:14:15"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"3632:15:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3609:6:15"},"nodeType":"YulFunctionCall","src":"3609:39:15"},"nodeType":"YulExpressionStatement","src":"3609:39:15"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3672:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:15","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3668:3:15"},"nodeType":"YulFunctionCall","src":"3668:14:15"},{"name":"structHash","nodeType":"YulIdentifier","src":"3684:10:15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3661:6:15"},"nodeType":"YulFunctionCall","src":"3661:34:15"},"nodeType":"YulExpressionStatement","src":"3661:34:15"},{"nodeType":"YulAssignment","src":"3708:30:15","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3728:3:15"},{"kind":"number","nodeType":"YulLiteral","src":"3733:4:15","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"3718:9:15"},"nodeType":"YulFunctionCall","src":"3718:20:15"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"3708:6:15"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2423,"isOffset":false,"isSlot":false,"src":"3708:6:15","valueSize":1},{"declaration":2418,"isOffset":false,"isSlot":false,"src":"3632:15:15","valueSize":1},{"declaration":2420,"isOffset":false,"isSlot":false,"src":"3684:10:15","valueSize":1}],"id":2425,"nodeType":"InlineAssembly","src":"3515:233:15"}]},"documentation":{"id":2416,"nodeType":"StructuredDocumentation","src":"2917:431:15","text":" @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}."},"id":2427,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"3362:15:15","nodeType":"FunctionDefinition","parameters":{"id":2421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2418,"mutability":"mutable","name":"domainSeparator","nameLocation":"3386:15:15","nodeType":"VariableDeclaration","scope":2427,"src":"3378:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3378:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2420,"mutability":"mutable","name":"structHash","nameLocation":"3411:10:15","nodeType":"VariableDeclaration","scope":2427,"src":"3403:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3403:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3377:45:15"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2423,"mutability":"mutable","name":"digest","nameLocation":"3454:6:15","nodeType":"VariableDeclaration","scope":2427,"src":"3446:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3446:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3445:16:15"},"scope":2428,"src":"3353:401:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2429,"src":"521:3235:15","usedErrors":[],"usedEvents":[]}],"src":"123:3634:15"},"id":15},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[2452],"IERC165":[2464]},"id":2453,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2430,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:16"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":2432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2453,"sourceUnit":2465,"src":"140:38:16","symbolAliases":[{"foreign":{"id":2431,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"148:7:16","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2434,"name":"IERC165","nameLocations":["687:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"687:7:16"},"id":2435,"nodeType":"InheritanceSpecifier","src":"687:7:16"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":2433,"nodeType":"StructuredDocumentation","src":"180:478:16","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":2452,"linearizedBaseContracts":[2452,2464],"name":"ERC165","nameLocation":"677:6:16","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[2463],"body":{"id":2450,"nodeType":"Block","src":"844:64:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2443,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"861:11:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2445,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"881:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$2464_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$2464_$","typeString":"type(contract IERC165)"}],"id":2444,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"876:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"876:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$2464","typeString":"type(contract IERC165)"}},"id":2447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"890:11:16","memberName":"interfaceId","nodeType":"MemberAccess","src":"876:25:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"861:40:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2442,"id":2449,"nodeType":"Return","src":"854:47:16"}]},"documentation":{"id":2436,"nodeType":"StructuredDocumentation","src":"701:56:16","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2451,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"771:17:16","nodeType":"FunctionDefinition","parameters":{"id":2439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"interfaceId","nameLocation":"796:11:16","nodeType":"VariableDeclaration","scope":2451,"src":"789:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"789:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"788:20:16"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2451,"src":"838:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2440,"name":"bool","nodeType":"ElementaryTypeName","src":"838:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"837:6:16"},"scope":2452,"src":"762:146:16","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2453,"src":"659:251:16","usedErrors":[],"usedEvents":[]}],"src":"114:797:16"},"id":16},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[2464]},"id":2465,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2454,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:17"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":2455,"nodeType":"StructuredDocumentation","src":"141:279:17","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":2464,"linearizedBaseContracts":[2464],"name":"IERC165","nameLocation":"431:7:17","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2456,"nodeType":"StructuredDocumentation","src":"445:340:17","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":2463,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"799:17:17","nodeType":"FunctionDefinition","parameters":{"id":2459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2458,"mutability":"mutable","name":"interfaceId","nameLocation":"824:11:17","nodeType":"VariableDeclaration","scope":2463,"src":"817:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2457,"name":"bytes4","nodeType":"ElementaryTypeName","src":"817:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"816:20:17"},"returnParameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2463,"src":"860:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2460,"name":"bool","nodeType":"ElementaryTypeName","src":"860:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"859:6:17"},"scope":2464,"src":"790:76:17","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2465,"src":"421:447:17","usedErrors":[],"usedEvents":[]}],"src":"115:754:17"},"id":17},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[3518]},"id":3519,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2466,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:18"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2467,"nodeType":"StructuredDocumentation","src":"129:73:18","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3518,"linearizedBaseContracts":[3518],"name":"Math","nameLocation":"211:4:18","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2468,"nodeType":"StructuredDocumentation","src":"222:50:18","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","id":2470,"name":"MathOverflowedMulDiv","nameLocation":"283:20:18","nodeType":"ErrorDefinition","parameters":{"id":2469,"nodeType":"ParameterList","parameters":[],"src":"303:2:18"},"src":"277:29:18"},{"canonicalName":"Math.Rounding","id":2475,"members":[{"id":2471,"name":"Floor","nameLocation":"336:5:18","nodeType":"EnumValue","src":"336:5:18"},{"id":2472,"name":"Ceil","nameLocation":"379:4:18","nodeType":"EnumValue","src":"379:4:18"},{"id":2473,"name":"Trunc","nameLocation":"421:5:18","nodeType":"EnumValue","src":"421:5:18"},{"id":2474,"name":"Expand","nameLocation":"451:6:18","nodeType":"EnumValue","src":"451:6:18"}],"name":"Rounding","nameLocation":"317:8:18","nodeType":"EnumDefinition","src":"312:169:18"},{"body":{"id":2506,"nodeType":"Block","src":"661:140:18","statements":[{"id":2505,"nodeType":"UncheckedBlock","src":"671:124:18","statements":[{"assignments":[2488],"declarations":[{"constant":false,"id":2488,"mutability":"mutable","name":"c","nameLocation":"703:1:18","nodeType":"VariableDeclaration","scope":2505,"src":"695:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2487,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2492,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2489,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2478,"src":"707:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2490,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"711:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"707:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"695:17:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2493,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"730:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2494,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2478,"src":"734:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"730:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2500,"nodeType":"IfStatement","src":"726:28:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"745:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"752:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2498,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"744:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2486,"id":2499,"nodeType":"Return","src":"737:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"776:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2502,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"782:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"775:9:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2486,"id":2504,"nodeType":"Return","src":"768:16:18"}]}]},"documentation":{"id":2476,"nodeType":"StructuredDocumentation","src":"487:93:18","text":" @dev Returns the addition of two unsigned integers, with an overflow flag."},"id":2507,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"594:6:18","nodeType":"FunctionDefinition","parameters":{"id":2481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2478,"mutability":"mutable","name":"a","nameLocation":"609:1:18","nodeType":"VariableDeclaration","scope":2507,"src":"601:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2477,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2480,"mutability":"mutable","name":"b","nameLocation":"620:1:18","nodeType":"VariableDeclaration","scope":2507,"src":"612:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2479,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:18"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2507,"src":"646:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2482,"name":"bool","nodeType":"ElementaryTypeName","src":"646:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2507,"src":"652:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:15:18"},"scope":3518,"src":"585:216:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2534,"nodeType":"Block","src":"984:113:18","statements":[{"id":2533,"nodeType":"UncheckedBlock","src":"994:97:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2519,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"1022:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2520,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"1026:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1022:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2526,"nodeType":"IfStatement","src":"1018:28:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1037:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2524,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1036:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2518,"id":2525,"nodeType":"Return","src":"1029:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1068:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2528,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"1074:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2529,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"1078:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1074:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2531,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1067:13:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2518,"id":2532,"nodeType":"Return","src":"1060:20:18"}]}]},"documentation":{"id":2508,"nodeType":"StructuredDocumentation","src":"807:96:18","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag."},"id":2535,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"917:6:18","nodeType":"FunctionDefinition","parameters":{"id":2513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2510,"mutability":"mutable","name":"a","nameLocation":"932:1:18","nodeType":"VariableDeclaration","scope":2535,"src":"924:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2509,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2512,"mutability":"mutable","name":"b","nameLocation":"943:1:18","nodeType":"VariableDeclaration","scope":2535,"src":"935:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2511,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"923:22:18"},"returnParameters":{"id":2518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2535,"src":"969:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2514,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2535,"src":"975:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2516,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:15:18"},"scope":3518,"src":"908:189:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2576,"nodeType":"Block","src":"1283:417:18","statements":[{"id":2575,"nodeType":"UncheckedBlock","src":"1293:401:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2547,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1551:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1556:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1551:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2554,"nodeType":"IfStatement","src":"1547:28:18","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1567:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1573:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2552,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1566:9:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2546,"id":2553,"nodeType":"Return","src":"1559:16:18"}},{"assignments":[2556],"declarations":[{"constant":false,"id":2556,"mutability":"mutable","name":"c","nameLocation":"1597:1:18","nodeType":"VariableDeclaration","scope":2575,"src":"1589:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2555,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2560,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2557,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1601:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2558,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"1605:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1601:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1589:17:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2561,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"1624:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2562,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1628:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2564,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2540,"src":"1633:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2570,"nodeType":"IfStatement","src":"1620:33:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1644:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1651:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2568,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2546,"id":2569,"nodeType":"Return","src":"1636:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1675:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2572,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"1681:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1674:9:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2546,"id":2574,"nodeType":"Return","src":"1667:16:18"}]}]},"documentation":{"id":2536,"nodeType":"StructuredDocumentation","src":"1103:99:18","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag."},"id":2577,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1216:6:18","nodeType":"FunctionDefinition","parameters":{"id":2541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2538,"mutability":"mutable","name":"a","nameLocation":"1231:1:18","nodeType":"VariableDeclaration","scope":2577,"src":"1223:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2537,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2540,"mutability":"mutable","name":"b","nameLocation":"1242:1:18","nodeType":"VariableDeclaration","scope":2577,"src":"1234:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:22:18"},"returnParameters":{"id":2546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2577,"src":"1268:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2542,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2577,"src":"1274:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2544,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1267:15:18"},"scope":3518,"src":"1207:493:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2604,"nodeType":"Block","src":"1887:114:18","statements":[{"id":2603,"nodeType":"UncheckedBlock","src":"1897:98:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2589,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"1925:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1930:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1925:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2596,"nodeType":"IfStatement","src":"1921:29:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1941:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2594,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1940:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2588,"id":2595,"nodeType":"Return","src":"1933:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1972:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2598,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"1978:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2599,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"1982:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1978:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:13:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2588,"id":2602,"nodeType":"Return","src":"1964:20:18"}]}]},"documentation":{"id":2578,"nodeType":"StructuredDocumentation","src":"1706:100:18","text":" @dev Returns the division of two unsigned integers, with a division by zero flag."},"id":2605,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1820:6:18","nodeType":"FunctionDefinition","parameters":{"id":2583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2580,"mutability":"mutable","name":"a","nameLocation":"1835:1:18","nodeType":"VariableDeclaration","scope":2605,"src":"1827:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2579,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2582,"mutability":"mutable","name":"b","nameLocation":"1846:1:18","nodeType":"VariableDeclaration","scope":2605,"src":"1838:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2581,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:22:18"},"returnParameters":{"id":2588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2605,"src":"1872:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2584,"name":"bool","nodeType":"ElementaryTypeName","src":"1872:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2605,"src":"1878:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2586,"name":"uint256","nodeType":"ElementaryTypeName","src":"1878:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:15:18"},"scope":3518,"src":"1811:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2632,"nodeType":"Block","src":"2198:114:18","statements":[{"id":2631,"nodeType":"UncheckedBlock","src":"2208:98:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2617,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"2236:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2624,"nodeType":"IfStatement","src":"2232:29:18","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2252:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2259:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2251:10:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2616,"id":2623,"nodeType":"Return","src":"2244:17:18"}},{"expression":{"components":[{"hexValue":"74727565","id":2625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2283:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2626,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"2289:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2627,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"2293:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2289:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2629,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2282:13:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2616,"id":2630,"nodeType":"Return","src":"2275:20:18"}]}]},"documentation":{"id":2606,"nodeType":"StructuredDocumentation","src":"2007:110:18","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."},"id":2633,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2131:6:18","nodeType":"FunctionDefinition","parameters":{"id":2611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2608,"mutability":"mutable","name":"a","nameLocation":"2146:1:18","nodeType":"VariableDeclaration","scope":2633,"src":"2138:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2610,"mutability":"mutable","name":"b","nameLocation":"2157:1:18","nodeType":"VariableDeclaration","scope":2633,"src":"2149:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2609,"name":"uint256","nodeType":"ElementaryTypeName","src":"2149:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2137:22:18"},"returnParameters":{"id":2616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2633,"src":"2183:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2612,"name":"bool","nodeType":"ElementaryTypeName","src":"2183:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2615,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2633,"src":"2189:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2614,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2182:15:18"},"scope":3518,"src":"2122:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2650,"nodeType":"Block","src":"2449:37:18","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2643,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"2466:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2644,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2470:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2466:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2647,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2478:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2466:13:18","trueExpression":{"id":2646,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"2474:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2642,"id":2649,"nodeType":"Return","src":"2459:20:18"}]},"documentation":{"id":2634,"nodeType":"StructuredDocumentation","src":"2318:59:18","text":" @dev Returns the largest of two numbers."},"id":2651,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2391:3:18","nodeType":"FunctionDefinition","parameters":{"id":2639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2636,"mutability":"mutable","name":"a","nameLocation":"2403:1:18","nodeType":"VariableDeclaration","scope":2651,"src":"2395:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2635,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2638,"mutability":"mutable","name":"b","nameLocation":"2414:1:18","nodeType":"VariableDeclaration","scope":2651,"src":"2406:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2637,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2394:22:18"},"returnParameters":{"id":2642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2651,"src":"2440:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2640,"name":"uint256","nodeType":"ElementaryTypeName","src":"2440:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2439:9:18"},"scope":3518,"src":"2382:104:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2668,"nodeType":"Block","src":"2624:37:18","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2661,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"2641:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2662,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2656,"src":"2645:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2641:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2665,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2656,"src":"2653:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2641:13:18","trueExpression":{"id":2664,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"2649:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2660,"id":2667,"nodeType":"Return","src":"2634:20:18"}]},"documentation":{"id":2652,"nodeType":"StructuredDocumentation","src":"2492:60:18","text":" @dev Returns the smallest of two numbers."},"id":2669,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2566:3:18","nodeType":"FunctionDefinition","parameters":{"id":2657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2654,"mutability":"mutable","name":"a","nameLocation":"2578:1:18","nodeType":"VariableDeclaration","scope":2669,"src":"2570:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2570:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2656,"mutability":"mutable","name":"b","nameLocation":"2589:1:18","nodeType":"VariableDeclaration","scope":2669,"src":"2581:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2655,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2569:22:18"},"returnParameters":{"id":2660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2669,"src":"2615:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2658,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:9:18"},"scope":3518,"src":"2557:104:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2691,"nodeType":"Block","src":"2845:82:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2679,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"2900:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2680,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2904:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2900:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2682,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2899:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2683,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"2910:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2684,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2914:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2910:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2686,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2909:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2919:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2909:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2678,"id":2690,"nodeType":"Return","src":"2892:28:18"}]},"documentation":{"id":2670,"nodeType":"StructuredDocumentation","src":"2667:102:18","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2692,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2783:7:18","nodeType":"FunctionDefinition","parameters":{"id":2675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2672,"mutability":"mutable","name":"a","nameLocation":"2799:1:18","nodeType":"VariableDeclaration","scope":2692,"src":"2791:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2671,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2674,"mutability":"mutable","name":"b","nameLocation":"2810:1:18","nodeType":"VariableDeclaration","scope":2692,"src":"2802:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2673,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2790:22:18"},"returnParameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2692,"src":"2836:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:9:18"},"scope":3518,"src":"2774:153:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2725,"nodeType":"Block","src":"3219:260:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2702,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2697,"src":"3233:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3233:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2710,"nodeType":"IfStatement","src":"3229:127:18","trueBody":{"id":2709,"nodeType":"Block","src":"3241:115:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2705,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"3340:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2706,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2697,"src":"3344:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2701,"id":2708,"nodeType":"Return","src":"3333:12:18"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2711,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"3444:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3449:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3444:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2715,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"3458:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3458:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3457:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2719,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2697,"src":"3467:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3457:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3471:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3457:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3444:28:18","trueExpression":{"hexValue":"30","id":2714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3453:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2701,"id":2724,"nodeType":"Return","src":"3437:35:18"}]},"documentation":{"id":2693,"nodeType":"StructuredDocumentation","src":"2933:210:18","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":2726,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3157:7:18","nodeType":"FunctionDefinition","parameters":{"id":2698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2695,"mutability":"mutable","name":"a","nameLocation":"3173:1:18","nodeType":"VariableDeclaration","scope":2726,"src":"3165:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2694,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2697,"mutability":"mutable","name":"b","nameLocation":"3184:1:18","nodeType":"VariableDeclaration","scope":2726,"src":"3176:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2696,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3164:22:18"},"returnParameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2726,"src":"3210:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2699,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3209:9:18"},"scope":3518,"src":"3148:331:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2851,"nodeType":"Block","src":"3901:4018:18","statements":[{"id":2850,"nodeType":"UncheckedBlock","src":"3911:4002:18","statements":[{"assignments":[2739],"declarations":[{"constant":false,"id":2739,"mutability":"mutable","name":"prod0","nameLocation":"4240:5:18","nodeType":"VariableDeclaration","scope":2850,"src":"4232:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2738,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2743,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2740,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"4248:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2741,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2731,"src":"4252:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4248:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4232:21:18"},{"assignments":[2745],"declarations":[{"constant":false,"id":2745,"mutability":"mutable","name":"prod1","nameLocation":"4320:5:18","nodeType":"VariableDeclaration","scope":2850,"src":"4312:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2744,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2746,"nodeType":"VariableDeclarationStatement","src":"4312:13:18"},{"AST":{"nodeType":"YulBlock","src":"4392:122:18","statements":[{"nodeType":"YulVariableDeclaration","src":"4410:30:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4427:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"4430:1:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4437:1:18","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4433:3:18"},"nodeType":"YulFunctionCall","src":"4433:6:18"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4420:6:18"},"nodeType":"YulFunctionCall","src":"4420:20:18"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4414:2:18","type":""}]},{"nodeType":"YulAssignment","src":"4457:43:18","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4474:2:18"},{"name":"prod0","nodeType":"YulIdentifier","src":"4478:5:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4470:3:18"},"nodeType":"YulFunctionCall","src":"4470:14:18"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4489:2:18"},{"name":"prod0","nodeType":"YulIdentifier","src":"4493:5:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4486:2:18"},"nodeType":"YulFunctionCall","src":"4486:13:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4466:3:18"},"nodeType":"YulFunctionCall","src":"4466:34:18"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4457:5:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2739,"isOffset":false,"isSlot":false,"src":"4478:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"4493:5:18","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"4457:5:18","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"4427:1:18","valueSize":1},{"declaration":2731,"isOffset":false,"isSlot":false,"src":"4430:1:18","valueSize":1}],"id":2747,"nodeType":"InlineAssembly","src":"4383:131:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2748,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"4595:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4604:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4595:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2756,"nodeType":"IfStatement","src":"4591:368:18","trueBody":{"id":2755,"nodeType":"Block","src":"4607:352:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2751,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2739,"src":"4925:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2752,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"4933:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2737,"id":2754,"nodeType":"Return","src":"4918:26:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2757,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"5065:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2758,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"5080:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:20:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2764,"nodeType":"IfStatement","src":"5061:88:18","trueBody":{"id":2763,"nodeType":"Block","src":"5087:62:18","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2760,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2470,"src":"5112:20:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5112:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2762,"nodeType":"RevertStatement","src":"5105:29:18"}]}},{"assignments":[2766],"declarations":[{"constant":false,"id":2766,"mutability":"mutable","name":"remainder","nameLocation":"5412:9:18","nodeType":"VariableDeclaration","scope":2850,"src":"5404:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2765,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2767,"nodeType":"VariableDeclarationStatement","src":"5404:17:18"},{"AST":{"nodeType":"YulBlock","src":"5444:291:18","statements":[{"nodeType":"YulAssignment","src":"5513:38:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5533:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"5536:1:18"},{"name":"denominator","nodeType":"YulIdentifier","src":"5539:11:18"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5526:6:18"},"nodeType":"YulFunctionCall","src":"5526:25:18"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5513:9:18"}]},{"nodeType":"YulAssignment","src":"5633:41:18","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5646:5:18"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5656:9:18"},{"name":"prod0","nodeType":"YulIdentifier","src":"5667:5:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5653:2:18"},"nodeType":"YulFunctionCall","src":"5653:20:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5642:3:18"},"nodeType":"YulFunctionCall","src":"5642:32:18"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5633:5:18"}]},{"nodeType":"YulAssignment","src":"5691:30:18","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5704:5:18"},{"name":"remainder","nodeType":"YulIdentifier","src":"5711:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5700:3:18"},"nodeType":"YulFunctionCall","src":"5700:21:18"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5691:5:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"5539:11:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"5667:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"5691:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"5704:5:18","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"5633:5:18","valueSize":1},{"declaration":2745,"isOffset":false,"isSlot":false,"src":"5646:5:18","valueSize":1},{"declaration":2766,"isOffset":false,"isSlot":false,"src":"5513:9:18","valueSize":1},{"declaration":2766,"isOffset":false,"isSlot":false,"src":"5656:9:18","valueSize":1},{"declaration":2766,"isOffset":false,"isSlot":false,"src":"5711:9:18","valueSize":1},{"declaration":2729,"isOffset":false,"isSlot":false,"src":"5533:1:18","valueSize":1},{"declaration":2731,"isOffset":false,"isSlot":false,"src":"5536:1:18","valueSize":1}],"id":2768,"nodeType":"InlineAssembly","src":"5435:300:18"},{"assignments":[2770],"declarations":[{"constant":false,"id":2770,"mutability":"mutable","name":"twos","nameLocation":"5947:4:18","nodeType":"VariableDeclaration","scope":2850,"src":"5939:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2769,"name":"uint256","nodeType":"ElementaryTypeName","src":"5939:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2777,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2771,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"5954:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":2772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5969:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2773,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"5973:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5969:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5968:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5954:31:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5939:46:18"},{"AST":{"nodeType":"YulBlock","src":"6008:362:18","statements":[{"nodeType":"YulAssignment","src":"6073:37:18","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6092:11:18"},{"name":"twos","nodeType":"YulIdentifier","src":"6105:4:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6088:3:18"},"nodeType":"YulFunctionCall","src":"6088:22:18"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6073:11:18"}]},{"nodeType":"YulAssignment","src":"6177:25:18","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6190:5:18"},{"name":"twos","nodeType":"YulIdentifier","src":"6197:4:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6186:3:18"},"nodeType":"YulFunctionCall","src":"6186:16:18"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6177:5:18"}]},{"nodeType":"YulAssignment","src":"6317:39:18","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6337:1:18","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6340:4:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6333:3:18"},"nodeType":"YulFunctionCall","src":"6333:12:18"},{"name":"twos","nodeType":"YulIdentifier","src":"6347:4:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6329:3:18"},"nodeType":"YulFunctionCall","src":"6329:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"6354:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6325:3:18"},"nodeType":"YulFunctionCall","src":"6325:31:18"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6317:4:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"6073:11:18","valueSize":1},{"declaration":2733,"isOffset":false,"isSlot":false,"src":"6092:11:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"6177:5:18","valueSize":1},{"declaration":2739,"isOffset":false,"isSlot":false,"src":"6190:5:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6105:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6197:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6317:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6340:4:18","valueSize":1},{"declaration":2770,"isOffset":false,"isSlot":false,"src":"6347:4:18","valueSize":1}],"id":2778,"nodeType":"InlineAssembly","src":"5999:371:18"},{"expression":{"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2779,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2739,"src":"6436:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2780,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"6445:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2781,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2770,"src":"6453:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6436:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2784,"nodeType":"ExpressionStatement","src":"6436:21:18"},{"assignments":[2786],"declarations":[{"constant":false,"id":2786,"mutability":"mutable","name":"inverse","nameLocation":"6783:7:18","nodeType":"VariableDeclaration","scope":2850,"src":"6775:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2785,"name":"uint256","nodeType":"ElementaryTypeName","src":"6775:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2793,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:18","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2788,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"6798:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6794:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2790,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6793:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6793:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6775:39:18"},{"expression":{"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2794,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7031:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7042:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2796,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7046:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2797,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7060:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7046:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7042:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7031:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2801,"nodeType":"ExpressionStatement","src":"7031:36:18"},{"expression":{"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2802,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7100:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2804,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7115:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2805,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7129:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7115:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7100:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2809,"nodeType":"ExpressionStatement","src":"7100:36:18"},{"expression":{"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2810,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7170:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7181:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2812,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7185:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2813,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7199:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7185:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7170:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2817,"nodeType":"ExpressionStatement","src":"7170:36:18"},{"expression":{"id":2824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2818,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7240:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2820,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7255:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2821,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7269:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7251:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7240:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2825,"nodeType":"ExpressionStatement","src":"7240:36:18"},{"expression":{"id":2832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2826,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7310:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7321:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2828,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7325:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2829,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7339:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7325:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7321:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2833,"nodeType":"ExpressionStatement","src":"7310:36:18"},{"expression":{"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2834,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7381:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7392:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2836,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"7396:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2837,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7410:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7396:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7392:25:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7381:36:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2841,"nodeType":"ExpressionStatement","src":"7381:36:18"},{"expression":{"id":2846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2842,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2736,"src":"7851:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2843,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2739,"src":"7860:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2844,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2786,"src":"7868:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7860:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7851:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2847,"nodeType":"ExpressionStatement","src":"7851:24:18"},{"expression":{"id":2848,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2736,"src":"7896:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2737,"id":2849,"nodeType":"Return","src":"7889:13:18"}]}]},"documentation":{"id":2727,"nodeType":"StructuredDocumentation","src":"3485:313:18","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev 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":2852,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3812:6:18","nodeType":"FunctionDefinition","parameters":{"id":2734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2729,"mutability":"mutable","name":"x","nameLocation":"3827:1:18","nodeType":"VariableDeclaration","scope":2852,"src":"3819:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2731,"mutability":"mutable","name":"y","nameLocation":"3838:1:18","nodeType":"VariableDeclaration","scope":2852,"src":"3830:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2730,"name":"uint256","nodeType":"ElementaryTypeName","src":"3830:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2733,"mutability":"mutable","name":"denominator","nameLocation":"3849:11:18","nodeType":"VariableDeclaration","scope":2852,"src":"3841:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2732,"name":"uint256","nodeType":"ElementaryTypeName","src":"3841:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:43:18"},"returnParameters":{"id":2737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2736,"mutability":"mutable","name":"result","nameLocation":"3893:6:18","nodeType":"VariableDeclaration","scope":2852,"src":"3885:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2735,"name":"uint256","nodeType":"ElementaryTypeName","src":"3885:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3884:16:18"},"scope":3518,"src":"3803:4116:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2894,"nodeType":"Block","src":"8161:192:18","statements":[{"assignments":[2868],"declarations":[{"constant":false,"id":2868,"mutability":"mutable","name":"result","nameLocation":"8179:6:18","nodeType":"VariableDeclaration","scope":2894,"src":"8171:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2867,"name":"uint256","nodeType":"ElementaryTypeName","src":"8171:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2874,"initialValue":{"arguments":[{"id":2870,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"8195:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2871,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"8198:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2872,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2859,"src":"8201:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2869,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2852,2895],"referencedDeclaration":2852,"src":"8188:6:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8171:42:18"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2876,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"8244:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":2875,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"8227:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8227:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2879,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2855,"src":"8264:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2880,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"8267:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2881,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2859,"src":"8270:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2878,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8257:6:18","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8285:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:29:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8227:59:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2891,"nodeType":"IfStatement","src":"8223:101:18","trueBody":{"id":2890,"nodeType":"Block","src":"8288:36:18","statements":[{"expression":{"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"8302:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8312:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8302:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2889,"nodeType":"ExpressionStatement","src":"8302:11:18"}]}},{"expression":{"id":2892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"8340:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2866,"id":2893,"nodeType":"Return","src":"8333:13:18"}]},"documentation":{"id":2853,"nodeType":"StructuredDocumentation","src":"7925:121:18","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2895,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8060:6:18","nodeType":"FunctionDefinition","parameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2855,"mutability":"mutable","name":"x","nameLocation":"8075:1:18","nodeType":"VariableDeclaration","scope":2895,"src":"8067:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2854,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2857,"mutability":"mutable","name":"y","nameLocation":"8086:1:18","nodeType":"VariableDeclaration","scope":2895,"src":"8078:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2856,"name":"uint256","nodeType":"ElementaryTypeName","src":"8078:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2859,"mutability":"mutable","name":"denominator","nameLocation":"8097:11:18","nodeType":"VariableDeclaration","scope":2895,"src":"8089:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2858,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2862,"mutability":"mutable","name":"rounding","nameLocation":"8119:8:18","nodeType":"VariableDeclaration","scope":2895,"src":"8110:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":2861,"nodeType":"UserDefinedTypeName","pathNode":{"id":2860,"name":"Rounding","nameLocations":["8110:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"8110:8:18"},"referencedDeclaration":2475,"src":"8110:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8066:62:18"},"returnParameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2895,"src":"8152:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2864,"name":"uint256","nodeType":"ElementaryTypeName","src":"8152:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8151:9:18"},"scope":3518,"src":"8051:302:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3006,"nodeType":"Block","src":"8644:1585:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2903,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"8658:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8658:6:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2909,"nodeType":"IfStatement","src":"8654:45:18","trueBody":{"id":2908,"nodeType":"Block","src":"8666:33:18","statements":[{"expression":{"hexValue":"30","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2902,"id":2907,"nodeType":"Return","src":"8680:8:18"}]}},{"assignments":[2911],"declarations":[{"constant":false,"id":2911,"mutability":"mutable","name":"result","nameLocation":"9386:6:18","nodeType":"VariableDeclaration","scope":3006,"src":"9378:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2910,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2920,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:18","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":2917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2914,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9406:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2913,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3174,3209],"referencedDeclaration":3174,"src":"9401:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9401:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9401:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9400:14:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9395:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9378:36:18"},{"id":3005,"nodeType":"UncheckedBlock","src":"9815:408:18","statements":[{"expression":{"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2921,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9839:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2922,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9849:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2923,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9858:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9862:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9849:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9848:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9873:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9848:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9839:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2931,"nodeType":"ExpressionStatement","src":"9839:35:18"},{"expression":{"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2932,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9888:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2933,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9898:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2934,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9907:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2935,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9911:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9907:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9898:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9897:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9922:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9897:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2942,"nodeType":"ExpressionStatement","src":"9888:35:18"},{"expression":{"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2943,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9937:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2944,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9947:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2945,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"9956:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2946,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9960:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9956:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2949,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9946:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9971:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9946:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9937:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2953,"nodeType":"ExpressionStatement","src":"9937:35:18"},{"expression":{"id":2963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2954,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9986:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2955,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"9996:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2956,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10005:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2957,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10009:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9996:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9995:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9995:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9986:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2964,"nodeType":"ExpressionStatement","src":"9986:35:18"},{"expression":{"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2965,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10035:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10045:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2967,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10054:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2968,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10058:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10054:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10045:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2971,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10044:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10069:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10044:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10035:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2975,"nodeType":"ExpressionStatement","src":"10035:35:18"},{"expression":{"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2976,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10084:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2977,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10094:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"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":2898,"src":"10103:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2979,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10107:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10103:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10094:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2982,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10093:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10093:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2986,"nodeType":"ExpressionStatement","src":"10084:35:18"},{"expression":{"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2987,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10133:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2988,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10143:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2989,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10152:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2990,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10156:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10152:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2993,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10142:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10142:26:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:35:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2997,"nodeType":"ExpressionStatement","src":"10133:35:18"},{"expression":{"arguments":[{"id":2999,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10193:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3000,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"10201:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3001,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10205:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10201:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2998,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"10189:3:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2902,"id":3004,"nodeType":"Return","src":"10182:30:18"}]}]},"documentation":{"id":2896,"nodeType":"StructuredDocumentation","src":"8359:223:18","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 Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":3007,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8596:4:18","nodeType":"FunctionDefinition","parameters":{"id":2899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2898,"mutability":"mutable","name":"a","nameLocation":"8609:1:18","nodeType":"VariableDeclaration","scope":3007,"src":"8601:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2897,"name":"uint256","nodeType":"ElementaryTypeName","src":"8601:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8600:11:18"},"returnParameters":{"id":2902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3007,"src":"8635:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2900,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8634:9:18"},"scope":3518,"src":"8587:1642:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3041,"nodeType":"Block","src":"10405:164:18","statements":[{"id":3040,"nodeType":"UncheckedBlock","src":"10415:148:18","statements":[{"assignments":[3019],"declarations":[{"constant":false,"id":3019,"mutability":"mutable","name":"result","nameLocation":"10447:6:18","nodeType":"VariableDeclaration","scope":3040,"src":"10439:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3018,"name":"uint256","nodeType":"ElementaryTypeName","src":"10439:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3023,"initialValue":{"arguments":[{"id":3021,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"10461:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3020,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3007,3042],"referencedDeclaration":3007,"src":"10456:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10456:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10439:24:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3024,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"10484:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3026,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3013,"src":"10511:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3025,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"10494:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3028,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"10524:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3029,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"10533:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3031,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"10542:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:19:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10494:49:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10550:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10494:57:18","trueExpression":{"hexValue":"31","id":3034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10546:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3037,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10493:59:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10484:68:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3017,"id":3039,"nodeType":"Return","src":"10477:75:18"}]}]},"documentation":{"id":3008,"nodeType":"StructuredDocumentation","src":"10235:89:18","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":3042,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10338:4:18","nodeType":"FunctionDefinition","parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3010,"mutability":"mutable","name":"a","nameLocation":"10351:1:18","nodeType":"VariableDeclaration","scope":3042,"src":"10343:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3009,"name":"uint256","nodeType":"ElementaryTypeName","src":"10343:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3013,"mutability":"mutable","name":"rounding","nameLocation":"10363:8:18","nodeType":"VariableDeclaration","scope":3042,"src":"10354:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3012,"nodeType":"UserDefinedTypeName","pathNode":{"id":3011,"name":"Rounding","nameLocations":["10354:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"10354:8:18"},"referencedDeclaration":2475,"src":"10354:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10342:30:18"},"returnParameters":{"id":3017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3042,"src":"10396:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3015,"name":"uint256","nodeType":"ElementaryTypeName","src":"10396:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10395:9:18"},"scope":3518,"src":"10329:240:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3173,"nodeType":"Block","src":"10760:922:18","statements":[{"assignments":[3051],"declarations":[{"constant":false,"id":3051,"mutability":"mutable","name":"result","nameLocation":"10778:6:18","nodeType":"VariableDeclaration","scope":3173,"src":"10770:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3050,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3053,"initialValue":{"hexValue":"30","id":3052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10787:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10770:18:18"},{"id":3170,"nodeType":"UncheckedBlock","src":"10798:855:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10826:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10835:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10826:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10841:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10826:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3068,"nodeType":"IfStatement","src":"10822:99:18","trueBody":{"id":3067,"nodeType":"Block","src":"10844:77:18","statements":[{"expression":{"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10862:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10872:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10862:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3062,"nodeType":"ExpressionStatement","src":"10862:13:18"},{"expression":{"id":3065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3063,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"10893:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":3064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10903:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10893:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3066,"nodeType":"ExpressionStatement","src":"10893:13:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10938:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10947:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10938:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10952:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10938:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3083,"nodeType":"IfStatement","src":"10934:96:18","trueBody":{"id":3082,"nodeType":"Block","src":"10955:75:18","statements":[{"expression":{"id":3076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"10973:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10983:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10973:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3077,"nodeType":"ExpressionStatement","src":"10973:12:18"},{"expression":{"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3078,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11003:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11013:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11003:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3081,"nodeType":"ExpressionStatement","src":"11003:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3084,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11047:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11056:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11047:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11061:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11047:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3098,"nodeType":"IfStatement","src":"11043:96:18","trueBody":{"id":3097,"nodeType":"Block","src":"11064:75:18","statements":[{"expression":{"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11082:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11092:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11082:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3092,"nodeType":"ExpressionStatement","src":"11082:12:18"},{"expression":{"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3093,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11112:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11122:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11112:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3096,"nodeType":"ExpressionStatement","src":"11112:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3099,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11156:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11156:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11170:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11156:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3113,"nodeType":"IfStatement","src":"11152:96:18","trueBody":{"id":3112,"nodeType":"Block","src":"11173:75:18","statements":[{"expression":{"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11191:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11201:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11191:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3107,"nodeType":"ExpressionStatement","src":"11191:12:18"},{"expression":{"id":3110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3108,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11221:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11231:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11221:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3111,"nodeType":"ExpressionStatement","src":"11221:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11265:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11274:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11265:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11265:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3128,"nodeType":"IfStatement","src":"11261:93:18","trueBody":{"id":3127,"nodeType":"Block","src":"11281:73:18","statements":[{"expression":{"id":3121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11299:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11299:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3122,"nodeType":"ExpressionStatement","src":"11299:11:18"},{"expression":{"id":3125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3123,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11328:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11338:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11328:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3126,"nodeType":"ExpressionStatement","src":"11328:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11371:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11380:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11371:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11384:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11371:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3143,"nodeType":"IfStatement","src":"11367:93:18","trueBody":{"id":3142,"nodeType":"Block","src":"11387:73:18","statements":[{"expression":{"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11405:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11415:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11405:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3137,"nodeType":"ExpressionStatement","src":"11405:11:18"},{"expression":{"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3138,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11434:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11444:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11434:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3141,"nodeType":"ExpressionStatement","src":"11434:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11477:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11486:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11477:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11490:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11477:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3158,"nodeType":"IfStatement","src":"11473:93:18","trueBody":{"id":3157,"nodeType":"Block","src":"11493:73:18","statements":[{"expression":{"id":3151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11511:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11521:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11511:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3152,"nodeType":"ExpressionStatement","src":"11511:11:18"},{"expression":{"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3153,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11540:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11550:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11540:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3156,"nodeType":"ExpressionStatement","src":"11540:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3159,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"11583:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11592:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11583:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11596:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11583:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3169,"nodeType":"IfStatement","src":"11579:64:18","trueBody":{"id":3168,"nodeType":"Block","src":"11599:44:18","statements":[{"expression":{"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3164,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11617:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11617:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3167,"nodeType":"ExpressionStatement","src":"11617:11:18"}]}}]},{"expression":{"id":3171,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"11669:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3049,"id":3172,"nodeType":"Return","src":"11662:13:18"}]},"documentation":{"id":3043,"nodeType":"StructuredDocumentation","src":"10575:119:18","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":3174,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10708:4:18","nodeType":"FunctionDefinition","parameters":{"id":3046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3045,"mutability":"mutable","name":"value","nameLocation":"10721:5:18","nodeType":"VariableDeclaration","scope":3174,"src":"10713:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3044,"name":"uint256","nodeType":"ElementaryTypeName","src":"10713:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10712:15:18"},"returnParameters":{"id":3049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3174,"src":"10751:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3047,"name":"uint256","nodeType":"ElementaryTypeName","src":"10751:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10750:9:18"},"scope":3518,"src":"10699:983:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3208,"nodeType":"Block","src":"11915:168:18","statements":[{"id":3207,"nodeType":"UncheckedBlock","src":"11925:152:18","statements":[{"assignments":[3186],"declarations":[{"constant":false,"id":3186,"mutability":"mutable","name":"result","nameLocation":"11957:6:18","nodeType":"VariableDeclaration","scope":3207,"src":"11949:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3185,"name":"uint256","nodeType":"ElementaryTypeName","src":"11949:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3190,"initialValue":{"arguments":[{"id":3188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"11971:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3187,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3174,3209],"referencedDeclaration":3174,"src":"11966:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:11:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11949:28:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3191,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"11998:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3193,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3180,"src":"12025:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3192,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"12008:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12008:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3196,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12043:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3198,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"12052:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:19:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12008:49:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12064:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12008:57:18","trueExpression":{"hexValue":"31","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12060:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3204,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12007:59:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11998:68:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3184,"id":3206,"nodeType":"Return","src":"11991:75:18"}]}]},"documentation":{"id":3175,"nodeType":"StructuredDocumentation","src":"11688:142:18","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3209,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"11844:4:18","nodeType":"FunctionDefinition","parameters":{"id":3181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3177,"mutability":"mutable","name":"value","nameLocation":"11857:5:18","nodeType":"VariableDeclaration","scope":3209,"src":"11849:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3176,"name":"uint256","nodeType":"ElementaryTypeName","src":"11849:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3180,"mutability":"mutable","name":"rounding","nameLocation":"11873:8:18","nodeType":"VariableDeclaration","scope":3209,"src":"11864:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3179,"nodeType":"UserDefinedTypeName","pathNode":{"id":3178,"name":"Rounding","nameLocations":["11864:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"11864:8:18"},"referencedDeclaration":2475,"src":"11864:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11848:34:18"},"returnParameters":{"id":3184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3209,"src":"11906:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3182,"name":"uint256","nodeType":"ElementaryTypeName","src":"11906:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11905:9:18"},"scope":3518,"src":"11835:248:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3337,"nodeType":"Block","src":"12276:854:18","statements":[{"assignments":[3218],"declarations":[{"constant":false,"id":3218,"mutability":"mutable","name":"result","nameLocation":"12294:6:18","nodeType":"VariableDeclaration","scope":3337,"src":"12286:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3217,"name":"uint256","nodeType":"ElementaryTypeName","src":"12286:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3220,"initialValue":{"hexValue":"30","id":3219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12303:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12286:18:18"},{"id":3334,"nodeType":"UncheckedBlock","src":"12314:787:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12342:5:18","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":3224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12351:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12357:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12351:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12342:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3237,"nodeType":"IfStatement","src":"12338:103:18","trueBody":{"id":3236,"nodeType":"Block","src":"12361:80:18","statements":[{"expression":{"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12379:5:18","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":3229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12388:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12394:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12388:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12379:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3231,"nodeType":"ExpressionStatement","src":"12379:17:18"},{"expression":{"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3232,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12414:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12424:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12414:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3235,"nodeType":"ExpressionStatement","src":"12414:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3238,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12458:5:18","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":3241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12467:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12473:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12467:8:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12458:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3254,"nodeType":"IfStatement","src":"12454:103:18","trueBody":{"id":3253,"nodeType":"Block","src":"12477:80:18","statements":[{"expression":{"id":3247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3243,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12495:5:18","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":3246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12504:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12510:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12504:8:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12495:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3248,"nodeType":"ExpressionStatement","src":"12495:17:18"},{"expression":{"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3249,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12530:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12540:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12530:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3252,"nodeType":"ExpressionStatement","src":"12530:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12574:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12589:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12583:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12574:17:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3271,"nodeType":"IfStatement","src":"12570:103:18","trueBody":{"id":3270,"nodeType":"Block","src":"12593:80:18","statements":[{"expression":{"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3260,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12611:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12620:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12626:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12620:8:18","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12611:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3265,"nodeType":"ExpressionStatement","src":"12611:17:18"},{"expression":{"id":3268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3266,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12646:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12656:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12646:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3269,"nodeType":"ExpressionStatement","src":"12646:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3272,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12690:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12699:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12705:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12699:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12690:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3288,"nodeType":"IfStatement","src":"12686:100:18","trueBody":{"id":3287,"nodeType":"Block","src":"12708:78:18","statements":[{"expression":{"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12726:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12735:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12741:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12735:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12726:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3282,"nodeType":"ExpressionStatement","src":"12726:16:18"},{"expression":{"id":3285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12760:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12770:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12760:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3286,"nodeType":"ExpressionStatement","src":"12760:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12803:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12812:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12818:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12812:7:18","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12803:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3305,"nodeType":"IfStatement","src":"12799:100:18","trueBody":{"id":3304,"nodeType":"Block","src":"12821:78:18","statements":[{"expression":{"id":3298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3294,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12839:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12854:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12848:7:18","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12839:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3299,"nodeType":"ExpressionStatement","src":"12839:16:18"},{"expression":{"id":3302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3300,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12873:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12883:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12873:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3303,"nodeType":"ExpressionStatement","src":"12873:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12916:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12931:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12925:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12916:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3322,"nodeType":"IfStatement","src":"12912:100:18","trueBody":{"id":3321,"nodeType":"Block","src":"12934:78:18","statements":[{"expression":{"id":3315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"12952:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12967:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12961:7:18","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12952:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3316,"nodeType":"ExpressionStatement","src":"12952:16:18"},{"expression":{"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3317,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"12986:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12996:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12986:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3320,"nodeType":"ExpressionStatement","src":"12986:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3323,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"13029:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13038:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13038:7:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13029:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3333,"nodeType":"IfStatement","src":"13025:66:18","trueBody":{"id":3332,"nodeType":"Block","src":"13047:44:18","statements":[{"expression":{"id":3330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3328,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"13065:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13075:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13065:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3331,"nodeType":"ExpressionStatement","src":"13065:11:18"}]}}]},{"expression":{"id":3335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"13117:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3216,"id":3336,"nodeType":"Return","src":"13110:13:18"}]},"documentation":{"id":3210,"nodeType":"StructuredDocumentation","src":"12089:120:18","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":3338,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12223:5:18","nodeType":"FunctionDefinition","parameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"value","nameLocation":"12237:5:18","nodeType":"VariableDeclaration","scope":3338,"src":"12229:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3211,"name":"uint256","nodeType":"ElementaryTypeName","src":"12229:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12228:15:18"},"returnParameters":{"id":3216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3338,"src":"12267:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3214,"name":"uint256","nodeType":"ElementaryTypeName","src":"12267:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12266:9:18"},"scope":3518,"src":"12214:916:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3372,"nodeType":"Block","src":"13365:170:18","statements":[{"id":3371,"nodeType":"UncheckedBlock","src":"13375:154:18","statements":[{"assignments":[3350],"declarations":[{"constant":false,"id":3350,"mutability":"mutable","name":"result","nameLocation":"13407:6:18","nodeType":"VariableDeclaration","scope":3371,"src":"13399:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3349,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3354,"initialValue":{"arguments":[{"id":3352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"13422:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3351,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3338,3373],"referencedDeclaration":3338,"src":"13416:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13416:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13399:29:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3355,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"13449:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3357,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"13476:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3356,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"13459:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13459:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13489:2:18","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3360,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3350,"src":"13495:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"13504:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:20:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13459:50:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13459:58:18","trueExpression":{"hexValue":"31","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13512:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13458:60:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13449:69:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3348,"id":3370,"nodeType":"Return","src":"13442:76:18"}]}]},"documentation":{"id":3339,"nodeType":"StructuredDocumentation","src":"13136:143:18","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3373,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13293:5:18","nodeType":"FunctionDefinition","parameters":{"id":3345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3341,"mutability":"mutable","name":"value","nameLocation":"13307:5:18","nodeType":"VariableDeclaration","scope":3373,"src":"13299:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3340,"name":"uint256","nodeType":"ElementaryTypeName","src":"13299:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3344,"mutability":"mutable","name":"rounding","nameLocation":"13323:8:18","nodeType":"VariableDeclaration","scope":3373,"src":"13314:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3343,"nodeType":"UserDefinedTypeName","pathNode":{"id":3342,"name":"Rounding","nameLocations":["13314:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"13314:8:18"},"referencedDeclaration":2475,"src":"13314:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13298:34:18"},"returnParameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3373,"src":"13356:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"13356:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13355:9:18"},"scope":3518,"src":"13284:251:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3459,"nodeType":"Block","src":"13855:600:18","statements":[{"assignments":[3382],"declarations":[{"constant":false,"id":3382,"mutability":"mutable","name":"result","nameLocation":"13873:6:18","nodeType":"VariableDeclaration","scope":3459,"src":"13865:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3381,"name":"uint256","nodeType":"ElementaryTypeName","src":"13865:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3384,"initialValue":{"hexValue":"30","id":3383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13882:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13865:18:18"},{"id":3456,"nodeType":"UncheckedBlock","src":"13893:533:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3385,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"13921:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13930:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13921:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13936:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13921:16:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3399,"nodeType":"IfStatement","src":"13917:98:18","trueBody":{"id":3398,"nodeType":"Block","src":"13939:76:18","statements":[{"expression":{"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"13957:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13967:3:18","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13957:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3393,"nodeType":"ExpressionStatement","src":"13957:13:18"},{"expression":{"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3394,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"13988:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13988:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3397,"nodeType":"ExpressionStatement","src":"13988:12:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3400,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14032:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14041:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14032:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14046:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14032:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3414,"nodeType":"IfStatement","src":"14028:95:18","trueBody":{"id":3413,"nodeType":"Block","src":"14049:74:18","statements":[{"expression":{"id":3407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14067:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14077:2:18","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14067:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3408,"nodeType":"ExpressionStatement","src":"14067:12:18"},{"expression":{"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14097:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14097:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3412,"nodeType":"ExpressionStatement","src":"14097:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3415,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14140:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14149:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14140:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14154:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14140:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3429,"nodeType":"IfStatement","src":"14136:95:18","trueBody":{"id":3428,"nodeType":"Block","src":"14157:74:18","statements":[{"expression":{"id":3422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14175:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14185:2:18","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14175:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3423,"nodeType":"ExpressionStatement","src":"14175:12:18"},{"expression":{"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3424,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14205:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14215:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14205:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3427,"nodeType":"ExpressionStatement","src":"14205:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3430,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14248:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14248:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14248:15:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3444,"nodeType":"IfStatement","src":"14244:95:18","trueBody":{"id":3443,"nodeType":"Block","src":"14265:74:18","statements":[{"expression":{"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14283:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14293:2:18","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14283:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3438,"nodeType":"ExpressionStatement","src":"14283:12:18"},{"expression":{"id":3441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3439,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14313:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14323:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14313:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3442,"nodeType":"ExpressionStatement","src":"14313:11:18"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"14356:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14365:1:18","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14356:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14369:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14356:14:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3455,"nodeType":"IfStatement","src":"14352:64:18","trueBody":{"id":3454,"nodeType":"Block","src":"14372:44:18","statements":[{"expression":{"id":3452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3450,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14390:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14400:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14390:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3453,"nodeType":"ExpressionStatement","src":"14390:11:18"}]}}]},{"expression":{"id":3457,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3382,"src":"14442:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3380,"id":3458,"nodeType":"Return","src":"14435:13:18"}]},"documentation":{"id":3374,"nodeType":"StructuredDocumentation","src":"13541:246:18","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":3460,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"13801:6:18","nodeType":"FunctionDefinition","parameters":{"id":3377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3376,"mutability":"mutable","name":"value","nameLocation":"13816:5:18","nodeType":"VariableDeclaration","scope":3460,"src":"13808:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3375,"name":"uint256","nodeType":"ElementaryTypeName","src":"13808:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13807:15:18"},"returnParameters":{"id":3380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3460,"src":"13846:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3378,"name":"uint256","nodeType":"ElementaryTypeName","src":"13846:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13845:9:18"},"scope":3518,"src":"13792:663:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3497,"nodeType":"Block","src":"14692:177:18","statements":[{"id":3496,"nodeType":"UncheckedBlock","src":"14702:161:18","statements":[{"assignments":[3472],"declarations":[{"constant":false,"id":3472,"mutability":"mutable","name":"result","nameLocation":"14734:6:18","nodeType":"VariableDeclaration","scope":3496,"src":"14726:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3471,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3476,"initialValue":{"arguments":[{"id":3474,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3463,"src":"14750:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3473,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3460,3498],"referencedDeclaration":3460,"src":"14743:6:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14743:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:30:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3477,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"14777:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3479,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3466,"src":"14804:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3478,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3517,"src":"14787:16:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2475_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14787:26:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14817:1:18","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":3484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3482,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"14823:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":3483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14833:1:18","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14823:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3485,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14822:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3463,"src":"14838:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:26:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14787:56:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14850:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14787:64:18","trueExpression":{"hexValue":"31","id":3490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14846:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14786:66:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14777:75:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3470,"id":3495,"nodeType":"Return","src":"14770:82:18"}]}]},"documentation":{"id":3461,"nodeType":"StructuredDocumentation","src":"14461:144:18","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3498,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14619:6:18","nodeType":"FunctionDefinition","parameters":{"id":3467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3463,"mutability":"mutable","name":"value","nameLocation":"14634:5:18","nodeType":"VariableDeclaration","scope":3498,"src":"14626:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3462,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3466,"mutability":"mutable","name":"rounding","nameLocation":"14650:8:18","nodeType":"VariableDeclaration","scope":3498,"src":"14641:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3465,"nodeType":"UserDefinedTypeName","pathNode":{"id":3464,"name":"Rounding","nameLocations":["14641:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"14641:8:18"},"referencedDeclaration":2475,"src":"14641:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14625:34:18"},"returnParameters":{"id":3470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3498,"src":"14683:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3468,"name":"uint256","nodeType":"ElementaryTypeName","src":"14683:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14682:9:18"},"scope":3518,"src":"14610:259:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3516,"nodeType":"Block","src":"15067:48:18","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3509,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3502,"src":"15090:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}],"id":3508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15084:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3507,"name":"uint8","nodeType":"ElementaryTypeName","src":"15084:5:18","typeDescriptions":{}}},"id":3510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15084:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":3511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15102:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15084:19:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":3513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15107:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15084:24:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3506,"id":3515,"nodeType":"Return","src":"15077:31:18"}]},"documentation":{"id":3499,"nodeType":"StructuredDocumentation","src":"14875:113:18","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":3517,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"15002:16:18","nodeType":"FunctionDefinition","parameters":{"id":3503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3502,"mutability":"mutable","name":"rounding","nameLocation":"15028:8:18","nodeType":"VariableDeclaration","scope":3517,"src":"15019:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"},"typeName":{"id":3501,"nodeType":"UserDefinedTypeName","pathNode":{"id":3500,"name":"Rounding","nameLocations":["15019:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2475,"src":"15019:8:18"},"referencedDeclaration":2475,"src":"15019:8:18","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2475","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"15018:19:18"},"returnParameters":{"id":3506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3517,"src":"15061:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3504,"name":"bool","nodeType":"ElementaryTypeName","src":"15061:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15060:6:18"},"scope":3518,"src":"14993:122:18","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3519,"src":"203:14914:18","usedErrors":[2470],"usedEvents":[]}],"src":"103:15015:18"},"id":18},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[3623]},"id":3624,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3520,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:19"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":3521,"nodeType":"StructuredDocumentation","src":"135:80:19","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3623,"linearizedBaseContracts":[3623],"name":"SignedMath","nameLocation":"224:10:19","nodeType":"ContractDefinition","nodes":[{"body":{"id":3538,"nodeType":"Block","src":"376:37:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3531,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"393:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3532,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"397:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3535,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"405:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:19","trueExpression":{"id":3534,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"401:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3530,"id":3537,"nodeType":"Return","src":"386:20:19"}]},"documentation":{"id":3522,"nodeType":"StructuredDocumentation","src":"241:66:19","text":" @dev Returns the largest of two signed numbers."},"id":3539,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:19","nodeType":"FunctionDefinition","parameters":{"id":3527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3524,"mutability":"mutable","name":"a","nameLocation":"332:1:19","nodeType":"VariableDeclaration","scope":3539,"src":"325:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3523,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3526,"mutability":"mutable","name":"b","nameLocation":"342:1:19","nodeType":"VariableDeclaration","scope":3539,"src":"335:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3525,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:19"},"returnParameters":{"id":3530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3539,"src":"368:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3528,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:19"},"scope":3623,"src":"312:101:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3556,"nodeType":"Block","src":"555:37:19","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3549,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"572:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3550,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"576:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3553,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"584:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:19","trueExpression":{"id":3552,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3542,"src":"580:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3548,"id":3555,"nodeType":"Return","src":"565:20:19"}]},"documentation":{"id":3540,"nodeType":"StructuredDocumentation","src":"419:67:19","text":" @dev Returns the smallest of two signed numbers."},"id":3557,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:19","nodeType":"FunctionDefinition","parameters":{"id":3545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3542,"mutability":"mutable","name":"a","nameLocation":"511:1:19","nodeType":"VariableDeclaration","scope":3557,"src":"504:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3541,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"b","nameLocation":"521:1:19","nodeType":"VariableDeclaration","scope":3557,"src":"514:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3543,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:19"},"returnParameters":{"id":3548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3557,"src":"547:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3546,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:19"},"scope":3623,"src":"491:101:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3600,"nodeType":"Block","src":"797:162:19","statements":[{"assignments":[3568],"declarations":[{"constant":false,"id":3568,"mutability":"mutable","name":"x","nameLocation":"866:1:19","nodeType":"VariableDeclaration","scope":3600,"src":"859:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3567,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3581,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3569,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"871:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3570,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"875:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3573,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"882:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3574,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"886:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3576,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:19"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3582,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"911:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3587,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3568,"src":"931:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3585,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:19","typeDescriptions":{}}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:19","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3583,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:19","typeDescriptions":{}}},"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3592,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3560,"src":"945:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3593,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"949:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":3566,"id":3599,"nodeType":"Return","src":"904:48:19"}]},"documentation":{"id":3558,"nodeType":"StructuredDocumentation","src":"598:126:19","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":3601,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:19","nodeType":"FunctionDefinition","parameters":{"id":3563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3560,"mutability":"mutable","name":"a","nameLocation":"753:1:19","nodeType":"VariableDeclaration","scope":3601,"src":"746:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3559,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":3562,"mutability":"mutable","name":"b","nameLocation":"763:1:19","nodeType":"VariableDeclaration","scope":3601,"src":"756:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3561,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:19"},"returnParameters":{"id":3566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3601,"src":"789:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3564,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:19"},"scope":3623,"src":"729:230:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3621,"nodeType":"Block","src":"1103:158:19","statements":[{"id":3620,"nodeType":"UncheckedBlock","src":"1113:142:19","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3611,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"1228:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:19","subExpression":{"id":3615,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"1242:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:19","trueExpression":{"id":3614,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"1237:1:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:19","typeDescriptions":{}}},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3608,"id":3619,"nodeType":"Return","src":"1213:31:19"}]}]},"documentation":{"id":3602,"nodeType":"StructuredDocumentation","src":"965:78:19","text":" @dev Returns the absolute unsigned value of a signed value."},"id":3622,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:19","nodeType":"FunctionDefinition","parameters":{"id":3605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3604,"mutability":"mutable","name":"n","nameLocation":"1068:1:19","nodeType":"VariableDeclaration","scope":3622,"src":"1061:8:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3603,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:19"},"returnParameters":{"id":3608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3622,"src":"1094:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3606,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:19"},"scope":3623,"src":"1048:213:19","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3624,"src":"216:1047:19","usedErrors":[],"usedEvents":[]}],"src":"109:1155:19"},"id":19},"contracts/gamma/GammaCards.v5.sol":{"ast":{"absolutePath":"contracts/gamma/GammaCards.v5.sol","exportedSymbols":{"CannotRemoveUserOffers":[3671],"CardLimitExceeded":[3661],"IERC20":[394],"IgammaOffersContract":[3734],"IgammaPacksContract":[3694],"IgammaTicketsContract":[3740],"IncorrectPrizeAmount":[3655],"InsufficientCards":[3667],"InsufficientFunds":[3665],"InvalidAddress":[3647],"InvalidCardNumber":[3649],"InvalidSignature":[3653],"InvalidTransfer":[3651],"LibControlMgmt":[8832],"LibPackVerifier":[8881],"LibStringUtils":[8962],"MustCompleteAlbum":[3669],"NofGammaCardsNFTV1":[5877],"NofGammaCardsV5":[5808],"NotYourPack":[3659],"OnlyGammaPacksContract":[3641],"OnlyOffersContract":[3643],"OnlyOwners":[3645],"Ownable":[147],"UserDoesNotHaveCardOrAlbum":[3663],"WrongPacksQuantity":[3657],"console":[19517]},"id":5809,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3625,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:20"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":3627,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":148,"src":"58:67:20","symbolAliases":[{"foreign":{"id":3626,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"66:7:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":3629,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":395,"src":"126:70:20","symbolAliases":[{"foreign":{"id":3628,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"134:6:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibStringUtils.sol","file":"./libs/LibStringUtils.sol","id":3631,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":8963,"src":"197:57:20","symbolAliases":[{"foreign":{"id":3630,"name":"LibStringUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8962,"src":"205:14:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibPackVerifier.sol","file":"./libs/LibPackVerifier.sol","id":3633,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":8882,"src":"255:59:20","symbolAliases":[{"foreign":{"id":3632,"name":"LibPackVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"263:15:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","file":"./libs/LibControlMgmt.sol","id":3635,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":8833,"src":"315:57:20","symbolAliases":[{"foreign":{"id":3634,"name":"LibControlMgmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8832,"src":"323:14:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":3637,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":19518,"src":"373:44:20","symbolAliases":[{"foreign":{"id":3636,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"381:7:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/GammaCardsNFT.v1.sol","file":"./GammaCardsNFT.v1.sol","id":3639,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5809,"sourceUnit":5878,"src":"418:58:20","symbolAliases":[{"foreign":{"id":3638,"name":"NofGammaCardsNFTV1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"426:18:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"errorSelector":"7473cc70","id":3641,"name":"OnlyGammaPacksContract","nameLocation":"484:22:20","nodeType":"ErrorDefinition","parameters":{"id":3640,"nodeType":"ParameterList","parameters":[],"src":"506:2:20"},"src":"478:31:20"},{"errorSelector":"8eea8241","id":3643,"name":"OnlyOffersContract","nameLocation":"516:18:20","nodeType":"ErrorDefinition","parameters":{"id":3642,"nodeType":"ParameterList","parameters":[],"src":"534:2:20"},"src":"510:27:20"},{"errorSelector":"4289c493","id":3645,"name":"OnlyOwners","nameLocation":"544:10:20","nodeType":"ErrorDefinition","parameters":{"id":3644,"nodeType":"ParameterList","parameters":[],"src":"554:2:20"},"src":"538:19:20"},{"errorSelector":"e6c4247b","id":3647,"name":"InvalidAddress","nameLocation":"564:14:20","nodeType":"ErrorDefinition","parameters":{"id":3646,"nodeType":"ParameterList","parameters":[],"src":"578:2:20"},"src":"558:23:20"},{"errorSelector":"1a3d9e2e","id":3649,"name":"InvalidCardNumber","nameLocation":"588:17:20","nodeType":"ErrorDefinition","parameters":{"id":3648,"nodeType":"ParameterList","parameters":[],"src":"605:2:20"},"src":"582:26:20"},{"errorSelector":"2f352531","id":3651,"name":"InvalidTransfer","nameLocation":"615:15:20","nodeType":"ErrorDefinition","parameters":{"id":3650,"nodeType":"ParameterList","parameters":[],"src":"630:2:20"},"src":"609:24:20"},{"errorSelector":"8baa579f","id":3653,"name":"InvalidSignature","nameLocation":"640:16:20","nodeType":"ErrorDefinition","parameters":{"id":3652,"nodeType":"ParameterList","parameters":[],"src":"656:2:20"},"src":"634:25:20"},{"errorSelector":"4b1c6ca1","id":3655,"name":"IncorrectPrizeAmount","nameLocation":"666:20:20","nodeType":"ErrorDefinition","parameters":{"id":3654,"nodeType":"ParameterList","parameters":[],"src":"686:2:20"},"src":"660:29:20"},{"errorSelector":"b154b3b0","id":3657,"name":"WrongPacksQuantity","nameLocation":"696:18:20","nodeType":"ErrorDefinition","parameters":{"id":3656,"nodeType":"ParameterList","parameters":[],"src":"714:2:20"},"src":"690:27:20"},{"errorSelector":"7f6ecdf5","id":3659,"name":"NotYourPack","nameLocation":"724:11:20","nodeType":"ErrorDefinition","parameters":{"id":3658,"nodeType":"ParameterList","parameters":[],"src":"735:2:20"},"src":"718:20:20"},{"errorSelector":"9dcca733","id":3661,"name":"CardLimitExceeded","nameLocation":"745:17:20","nodeType":"ErrorDefinition","parameters":{"id":3660,"nodeType":"ParameterList","parameters":[],"src":"762:2:20"},"src":"739:26:20"},{"errorSelector":"843c0744","id":3663,"name":"UserDoesNotHaveCardOrAlbum","nameLocation":"772:26:20","nodeType":"ErrorDefinition","parameters":{"id":3662,"nodeType":"ParameterList","parameters":[],"src":"798:2:20"},"src":"766:35:20"},{"errorSelector":"356680b7","id":3665,"name":"InsufficientFunds","nameLocation":"808:17:20","nodeType":"ErrorDefinition","parameters":{"id":3664,"nodeType":"ParameterList","parameters":[],"src":"825:2:20"},"src":"802:26:20"},{"errorSelector":"907d371a","id":3667,"name":"InsufficientCards","nameLocation":"835:17:20","nodeType":"ErrorDefinition","parameters":{"id":3666,"nodeType":"ParameterList","parameters":[],"src":"852:2:20"},"src":"829:26:20"},{"errorSelector":"07bd0520","id":3669,"name":"MustCompleteAlbum","nameLocation":"862:17:20","nodeType":"ErrorDefinition","parameters":{"id":3668,"nodeType":"ParameterList","parameters":[],"src":"879:2:20"},"src":"856:26:20"},{"errorSelector":"e07c7c8d","id":3671,"name":"CannotRemoveUserOffers","nameLocation":"889:22:20","nodeType":"ErrorDefinition","parameters":{"id":3670,"nodeType":"ParameterList","parameters":[],"src":"911:2:20"},"src":"883:31:20"},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaPacksContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3694,"linearizedBaseContracts":[3694],"name":"IgammaPacksContract","nameLocation":"926:19:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d3e6a7ad","id":3678,"implemented":false,"kind":"function","modifiers":[],"name":"getPackOwner","nameLocation":"959:12:20","nodeType":"FunctionDefinition","parameters":{"id":3674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3673,"mutability":"mutable","name":"tokenId","nameLocation":"980:7:20","nodeType":"VariableDeclaration","scope":3678,"src":"972:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3672,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:17:20"},"returnParameters":{"id":3677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3678,"src":"1012:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3675,"name":"address","nodeType":"ElementaryTypeName","src":"1012:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1011:9:20"},"scope":3694,"src":"950:71:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"80f2540b","id":3685,"implemented":false,"kind":"function","modifiers":[],"name":"openPack","nameLocation":"1034:8:20","nodeType":"FunctionDefinition","parameters":{"id":3683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3680,"mutability":"mutable","name":"tokenId","nameLocation":"1051:7:20","nodeType":"VariableDeclaration","scope":3685,"src":"1043:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3679,"name":"uint256","nodeType":"ElementaryTypeName","src":"1043:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3682,"mutability":"mutable","name":"owner","nameLocation":"1068:5:20","nodeType":"VariableDeclaration","scope":3685,"src":"1060:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3681,"name":"address","nodeType":"ElementaryTypeName","src":"1060:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1042:32:20"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[],"src":"1083:0:20"},"scope":3694,"src":"1025:59:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"97f8b3d3","id":3693,"implemented":false,"kind":"function","modifiers":[],"name":"openPacks","nameLocation":"1097:9:20","nodeType":"FunctionDefinition","parameters":{"id":3691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3688,"mutability":"mutable","name":"tokenIds","nameLocation":"1124:8:20","nodeType":"VariableDeclaration","scope":3693,"src":"1107:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3686,"name":"uint256","nodeType":"ElementaryTypeName","src":"1107:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3687,"nodeType":"ArrayTypeName","src":"1107:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3690,"mutability":"mutable","name":"owner","nameLocation":"1142:5:20","nodeType":"VariableDeclaration","scope":3693,"src":"1134:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"1134:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1106:42:20"},"returnParameters":{"id":3692,"nodeType":"ParameterList","parameters":[],"src":"1157:0:20"},"scope":3694,"src":"1088:70:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5809,"src":"916:244:20","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaOffersContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3734,"linearizedBaseContracts":[3734],"name":"IgammaOffersContract","nameLocation":"1172:20:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"2edb5fcf","id":3703,"implemented":false,"kind":"function","modifiers":[],"name":"hasOffer","nameLocation":"1206:8:20","nodeType":"FunctionDefinition","parameters":{"id":3699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3696,"mutability":"mutable","name":"user","nameLocation":"1223:4:20","nodeType":"VariableDeclaration","scope":3703,"src":"1215:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3695,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3698,"mutability":"mutable","name":"cardNumber","nameLocation":"1235:10:20","nodeType":"VariableDeclaration","scope":3703,"src":"1229:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3697,"name":"uint8","nodeType":"ElementaryTypeName","src":"1229:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1214:32:20"},"returnParameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3703,"src":"1270:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3700,"name":"bool","nodeType":"ElementaryTypeName","src":"1270:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1269:6:20"},"scope":3734,"src":"1197:79:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fc9e80fc","id":3710,"implemented":false,"kind":"function","modifiers":[],"name":"removeOffersByUser","nameLocation":"1289:18:20","nodeType":"FunctionDefinition","parameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3705,"mutability":"mutable","name":"user","nameLocation":"1316:4:20","nodeType":"VariableDeclaration","scope":3710,"src":"1308:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3704,"name":"address","nodeType":"ElementaryTypeName","src":"1308:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1307:14:20"},"returnParameters":{"id":3709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3710,"src":"1340:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3707,"name":"bool","nodeType":"ElementaryTypeName","src":"1340:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1339:6:20"},"scope":3734,"src":"1280:66:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0cdb3117","id":3717,"implemented":false,"kind":"function","modifiers":[],"name":"getOffersByUserCounter","nameLocation":"1359:22:20","nodeType":"FunctionDefinition","parameters":{"id":3713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3712,"mutability":"mutable","name":"user","nameLocation":"1390:4:20","nodeType":"VariableDeclaration","scope":3717,"src":"1382:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3711,"name":"address","nodeType":"ElementaryTypeName","src":"1382:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1381:14:20"},"returnParameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3717,"src":"1419:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1419:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1418:9:20"},"scope":3734,"src":"1350:78:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9f915069","id":3733,"implemented":false,"kind":"function","modifiers":[],"name":"getOfferByUserAndCardNumber","nameLocation":"1441:27:20","nodeType":"FunctionDefinition","parameters":{"id":3722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3719,"mutability":"mutable","name":"user","nameLocation":"1482:4:20","nodeType":"VariableDeclaration","scope":3733,"src":"1474:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3718,"name":"address","nodeType":"ElementaryTypeName","src":"1474:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3721,"mutability":"mutable","name":"cardNumber","nameLocation":"1498:10:20","nodeType":"VariableDeclaration","scope":3733,"src":"1492:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3720,"name":"uint8","nodeType":"ElementaryTypeName","src":"1492:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1468:44:20"},"returnParameters":{"id":3732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1536:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1536:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3726,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1545:5:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3725,"name":"uint8","nodeType":"ElementaryTypeName","src":"1545:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1552:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3727,"name":"uint8","nodeType":"ElementaryTypeName","src":"1552:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3728,"nodeType":"ArrayTypeName","src":"1552:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":3731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"1568:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3730,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:41:20"},"scope":3734,"src":"1432:145:20","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5809,"src":"1162:417:20","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaTicketsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":3740,"linearizedBaseContracts":[3740],"name":"IgammaTicketsContract","nameLocation":"1591:21:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"fa8213d3","id":3739,"implemented":false,"kind":"function","modifiers":[],"name":"generateTicket","nameLocation":"1626:14:20","nodeType":"FunctionDefinition","parameters":{"id":3737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3736,"mutability":"mutable","name":"user","nameLocation":"1649:4:20","nodeType":"VariableDeclaration","scope":3739,"src":"1641:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3735,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1640:14:20"},"returnParameters":{"id":3738,"nodeType":"ParameterList","parameters":[],"src":"1663:0:20"},"scope":3740,"src":"1617:47:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5809,"src":"1581:85:20","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":3741,"name":"NofGammaCardsNFTV1","nameLocations":["1696:18:20"],"nodeType":"IdentifierPath","referencedDeclaration":5877,"src":"1696:18:20"},"id":3742,"nodeType":"InheritanceSpecifier","src":"1696:18:20"},{"baseName":{"id":3743,"name":"Ownable","nameLocations":["1716:7:20"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"1716:7:20"},"id":3744,"nodeType":"InheritanceSpecifier","src":"1716:7:20"}],"canonicalName":"NofGammaCardsV5","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5808,"linearizedBaseContracts":[5808,147,5877,1567,1693,1403,269,1721,175,1520,2452,2464,1751],"name":"NofGammaCardsV5","nameLocation":"1677:15:20","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3747,"libraryName":{"id":3745,"name":"LibStringUtils","nameLocations":["1734:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":8962,"src":"1734:14:20"},"nodeType":"UsingForDirective","src":"1728:31:20","typeName":{"id":3746,"name":"uint8","nodeType":"ElementaryTypeName","src":"1753:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"global":false,"id":3751,"libraryName":{"id":3748,"name":"LibControlMgmt","nameLocations":["1768:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":8832,"src":"1768:14:20"},"nodeType":"UsingForDirective","src":"1762:45:20","typeName":{"id":3750,"nodeType":"UserDefinedTypeName","pathNode":{"id":3749,"name":"LibControlMgmt.Data","nameLocations":["1787:14:20","1802:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1787:19:20"},"referencedDeclaration":8641,"src":"1787:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}}},{"constant":false,"functionSelector":"2f9e026a","id":3754,"mutability":"mutable","name":"gammaPacksContract","nameLocation":"1838:18:20","nodeType":"VariableDeclaration","scope":5808,"src":"1811:45:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"},"typeName":{"id":3753,"nodeType":"UserDefinedTypeName","pathNode":{"id":3752,"name":"IgammaPacksContract","nameLocations":["1811:19:20"],"nodeType":"IdentifierPath","referencedDeclaration":3694,"src":"1811:19:20"},"referencedDeclaration":3694,"src":"1811:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"visibility":"public"},{"constant":false,"functionSelector":"d322b563","id":3757,"mutability":"mutable","name":"gammaOffersContract","nameLocation":"1888:19:20","nodeType":"VariableDeclaration","scope":5808,"src":"1860:47:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"},"typeName":{"id":3756,"nodeType":"UserDefinedTypeName","pathNode":{"id":3755,"name":"IgammaOffersContract","nameLocations":["1860:20:20"],"nodeType":"IdentifierPath","referencedDeclaration":3734,"src":"1860:20:20"},"referencedDeclaration":3734,"src":"1860:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"visibility":"public"},{"constant":false,"functionSelector":"14cca36a","id":3760,"mutability":"mutable","name":"gammaTicketsContract","nameLocation":"1940:20:20","nodeType":"VariableDeclaration","scope":5808,"src":"1911:49:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"},"typeName":{"id":3759,"nodeType":"UserDefinedTypeName","pathNode":{"id":3758,"name":"IgammaTicketsContract","nameLocations":["1911:21:20"],"nodeType":"IdentifierPath","referencedDeclaration":3740,"src":"1911:21:20"},"referencedDeclaration":3740,"src":"1911:21:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"visibility":"public"},{"constant":false,"id":3763,"mutability":"mutable","name":"ownersData","nameLocation":"1993:10:20","nodeType":"VariableDeclaration","scope":5808,"src":"1965:38:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":3762,"nodeType":"UserDefinedTypeName","pathNode":{"id":3761,"name":"LibControlMgmt.Data","nameLocations":["1965:14:20","1980:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1965:19:20"},"referencedDeclaration":8641,"src":"1965:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"id":3766,"mutability":"mutable","name":"signersData","nameLocation":"2035:11:20","nodeType":"VariableDeclaration","scope":5808,"src":"2007:39:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":3765,"nodeType":"UserDefinedTypeName","pathNode":{"id":3764,"name":"LibControlMgmt.Data","nameLocations":["2007:14:20","2022:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"2007:19:20"},"referencedDeclaration":8641,"src":"2007:19:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"functionSelector":"ab535160","id":3769,"mutability":"mutable","name":"s_maxPacksToOpenAtOnce","nameLocation":"2064:22:20","nodeType":"VariableDeclaration","scope":5808,"src":"2051:40:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3767,"name":"uint8","nodeType":"ElementaryTypeName","src":"2051:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3130","id":3768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2089:2:20","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"constant":false,"functionSelector":"6d0af178","id":3772,"mutability":"mutable","name":"s_lotteryPrizePercentage","nameLocation":"2108:24:20","nodeType":"VariableDeclaration","scope":5808,"src":"2095:42:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3770,"name":"uint8","nodeType":"ElementaryTypeName","src":"2095:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3530","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2135:2:20","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"public"},{"constant":false,"functionSelector":"e606df87","id":3774,"mutability":"mutable","name":"DAI_TOKEN","nameLocation":"2156:9:20","nodeType":"VariableDeclaration","scope":5808,"src":"2141:24:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3773,"name":"address","nodeType":"ElementaryTypeName","src":"2141:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"82d8a118","id":3776,"mutability":"mutable","name":"s_tokenIdCounter","nameLocation":"2184:16:20","nodeType":"VariableDeclaration","scope":5808,"src":"2169:31:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2169:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"656bd0ad","id":3779,"mutability":"mutable","name":"s_packPrice","nameLocation":"2219:11:20","nodeType":"VariableDeclaration","scope":5808,"src":"2204:34:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3777,"name":"uint256","nodeType":"ElementaryTypeName","src":"2204:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132653137","id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2233:5:20","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"12e17"},"visibility":"public"},{"constant":false,"functionSelector":"d7093f40","id":3782,"mutability":"mutable","name":"s_prizesBalance","nameLocation":"2268:15:20","nodeType":"VariableDeclaration","scope":5808,"src":"2253:34:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3780,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":3781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2286:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":false,"functionSelector":"21a7c6b0","id":3785,"mutability":"mutable","name":"s_mainAlbumPrize","nameLocation":"2306:16:20","nodeType":"VariableDeclaration","scope":5808,"src":"2291:39:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2291:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135653138","id":3784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2325:5:20","typeDescriptions":{"typeIdentifier":"t_rational_15000000000000000000_by_1","typeString":"int_const 15000000000000000000"},"value":"15e18"},"visibility":"public"},{"constant":false,"functionSelector":"b3526185","id":3788,"mutability":"mutable","name":"s_secondaryAlbumPrize","nameLocation":"2390:21:20","nodeType":"VariableDeclaration","scope":5808,"src":"2375:43:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3786,"name":"uint256","nodeType":"ElementaryTypeName","src":"2375:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2414:4:20","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"public"},{"constant":false,"functionSelector":"79e8dadc","id":3790,"mutability":"mutable","name":"s_mainUri","nameLocation":"2477:9:20","nodeType":"VariableDeclaration","scope":5808,"src":"2463:23:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3789,"name":"string","nodeType":"ElementaryTypeName","src":"2463:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"4039327e","id":3792,"mutability":"mutable","name":"s_secondaryUri","nameLocation":"2504:14:20","nodeType":"VariableDeclaration","scope":5808,"src":"2490:28:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3791,"name":"string","nodeType":"ElementaryTypeName","src":"2490:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"e8a7e31d","id":3794,"mutability":"mutable","name":"s_baseUri","nameLocation":"2536:9:20","nodeType":"VariableDeclaration","scope":5808,"src":"2522:23:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3793,"name":"string","nodeType":"ElementaryTypeName","src":"2522:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"e4ae0b9b","id":3796,"mutability":"mutable","name":"s_requireOpenPackSignerValidation","nameLocation":"2561:33:20","nodeType":"VariableDeclaration","scope":5808,"src":"2549:45:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3795,"name":"bool","nodeType":"ElementaryTypeName","src":"2549:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"functionSelector":"147baac7","id":3799,"mutability":"mutable","name":"s_requireOfferValidationInMint","nameLocation":"2610:30:20","nodeType":"VariableDeclaration","scope":5808,"src":"2598:49:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3797,"name":"bool","nodeType":"ElementaryTypeName","src":"2598:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":3798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2643:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"constant":false,"functionSelector":"9a5613ad","id":3802,"mutability":"mutable","name":"s_requireOfferValidationInTransfer","nameLocation":"2663:34:20","nodeType":"VariableDeclaration","scope":5808,"src":"2651:53:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3800,"name":"bool","nodeType":"ElementaryTypeName","src":"2651:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":3801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2700:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"canonicalName":"NofGammaCardsV5.Card","id":3813,"members":[{"constant":false,"id":3804,"mutability":"mutable","name":"tokenId","nameLocation":"2735:7:20","nodeType":"VariableDeclaration","scope":3813,"src":"2727:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3803,"name":"uint256","nodeType":"ElementaryTypeName","src":"2727:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3806,"mutability":"mutable","name":"number","nameLocation":"2756:6:20","nodeType":"VariableDeclaration","scope":3813,"src":"2748:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2748:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3808,"mutability":"mutable","name":"pasted","nameLocation":"2773:6:20","nodeType":"VariableDeclaration","scope":3813,"src":"2768:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3807,"name":"bool","nodeType":"ElementaryTypeName","src":"2768:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3810,"mutability":"mutable","name":"class","nameLocation":"2791:5:20","nodeType":"VariableDeclaration","scope":3813,"src":"2785:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3809,"name":"uint8","nodeType":"ElementaryTypeName","src":"2785:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3812,"mutability":"mutable","name":"completion","nameLocation":"2868:10:20","nodeType":"VariableDeclaration","scope":3813,"src":"2860:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2860:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Card","nameLocation":"2716:4:20","nodeType":"StructDefinition","scope":5808,"src":"2709:219:20","visibility":"public"},{"constant":false,"functionSelector":"4c03cd0b","id":3818,"mutability":"mutable","name":"s_cards","nameLocation":"2972:7:20","nodeType":"VariableDeclaration","scope":5808,"src":"2932:47:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card)"},"typeName":{"id":3817,"keyName":"tokenId","keyNameLocation":"2948:7:20","keyType":{"id":3814,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2932:32:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3816,"nodeType":"UserDefinedTypeName","pathNode":{"id":3815,"name":"Card","nameLocations":["2959:4:20"],"nodeType":"IdentifierPath","referencedDeclaration":3813,"src":"2959:4:20"},"referencedDeclaration":3813,"src":"2959:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage_ptr","typeString":"struct NofGammaCardsV5.Card"}}},"visibility":"public"},{"constant":false,"functionSelector":"88e0ef80","id":3822,"mutability":"mutable","name":"s_cardsInventory","nameLocation":"3036:16:20","nodeType":"VariableDeclaration","scope":5808,"src":"2983:69:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":3821,"keyName":"cardNumber","keyNameLocation":"2999:10:20","keyType":{"id":3819,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2983:45:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"amount","valueNameLocation":"3021:6:20","valueType":{"id":3820,"name":"uint256","nodeType":"ElementaryTypeName","src":"3013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"07b2e246","id":3826,"mutability":"mutable","name":"s_burnedCards","nameLocation":"3127:13:20","nodeType":"VariableDeclaration","scope":5808,"src":"3080:60:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":3825,"keyName":"user","keyNameLocation":"3096:4:20","keyType":{"id":3823,"name":"address","nodeType":"ElementaryTypeName","src":"3088:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3080:39:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"amount","valueNameLocation":"3112:6:20","valueType":{"id":3824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3104:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"9ff26efd","id":3832,"mutability":"mutable","name":"s_cardsByUser","nameLocation":"3218:13:20","nodeType":"VariableDeclaration","scope":5808,"src":"3144:87:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"},"typeName":{"id":3831,"keyName":"user","keyNameLocation":"3160:4:20","keyType":{"id":3827,"name":"address","nodeType":"ElementaryTypeName","src":"3152:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3144:66:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3830,"keyName":"cardNumber","keyNameLocation":"3182:10:20","keyType":{"id":3828,"name":"uint8","nodeType":"ElementaryTypeName","src":"3176:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"3168:41:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"},"valueName":"amount","valueNameLocation":"3202:6:20","valueType":{"id":3829,"name":"uint8","nodeType":"ElementaryTypeName","src":"3196:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}}},"visibility":"public"},{"anonymous":false,"eventSelector":"538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead0","id":3836,"name":"NewGammaOffersContract","nameLocation":"3242:22:20","nodeType":"EventDefinition","parameters":{"id":3835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3834,"indexed":true,"mutability":"mutable","name":"newGammaOffersContract","nameLocation":"3281:22:20","nodeType":"VariableDeclaration","scope":3836,"src":"3265:38:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3833,"name":"address","nodeType":"ElementaryTypeName","src":"3265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3264:40:20"},"src":"3236:69:20"},{"anonymous":false,"eventSelector":"5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f","id":3840,"name":"NewGammaPacksContract","nameLocation":"3314:21:20","nodeType":"EventDefinition","parameters":{"id":3839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3838,"indexed":true,"mutability":"mutable","name":"newGammaPacksContract","nameLocation":"3352:21:20","nodeType":"VariableDeclaration","scope":3840,"src":"3336:37:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3837,"name":"address","nodeType":"ElementaryTypeName","src":"3336:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3335:39:20"},"src":"3308:67:20"},{"anonymous":false,"eventSelector":"563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa202","id":3844,"name":"NewGammaTicketsContract","nameLocation":"3384:23:20","nodeType":"EventDefinition","parameters":{"id":3843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3842,"indexed":true,"mutability":"mutable","name":"newGammaTicketContract","nameLocation":"3424:22:20","nodeType":"VariableDeclaration","scope":3844,"src":"3408:38:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3841,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3407:40:20"},"src":"3378:70:20"},{"anonymous":false,"eventSelector":"babe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e3","id":3853,"name":"PackOpened","nameLocation":"3457:10:20","nodeType":"EventDefinition","parameters":{"id":3852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3846,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"3484:6:20","nodeType":"VariableDeclaration","scope":3853,"src":"3468:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3845,"name":"address","nodeType":"ElementaryTypeName","src":"3468:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3849,"indexed":true,"mutability":"mutable","name":"packData","nameLocation":"3508:8:20","nodeType":"VariableDeclaration","scope":3853,"src":"3492:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3847,"name":"uint8","nodeType":"ElementaryTypeName","src":"3492:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3848,"nodeType":"ArrayTypeName","src":"3492:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":3851,"indexed":true,"mutability":"mutable","name":"packNumber","nameLocation":"3534:10:20","nodeType":"VariableDeclaration","scope":3853,"src":"3518:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3850,"name":"uint256","nodeType":"ElementaryTypeName","src":"3518:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3467:78:20"},"src":"3451:95:20"},{"anonymous":false,"eventSelector":"6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa","id":3859,"name":"AlbumCompleted","nameLocation":"3555:14:20","nodeType":"EventDefinition","parameters":{"id":3858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3855,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"3586:6:20","nodeType":"VariableDeclaration","scope":3859,"src":"3570:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3854,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3857,"indexed":true,"mutability":"mutable","name":"albumClass","nameLocation":"3608:10:20","nodeType":"VariableDeclaration","scope":3859,"src":"3594:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3856,"name":"uint8","nodeType":"ElementaryTypeName","src":"3594:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3569:50:20"},"src":"3549:71:20"},{"anonymous":false,"eventSelector":"7ab6504e276a4cc030e62b9e8909a879d55dba80fca5fa9d909fbe6bf19798ba","id":3867,"name":"CardPasted","nameLocation":"3629:10:20","nodeType":"EventDefinition","parameters":{"id":3866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3861,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"3656:6:20","nodeType":"VariableDeclaration","scope":3867,"src":"3640:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3860,"name":"address","nodeType":"ElementaryTypeName","src":"3640:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3863,"indexed":true,"mutability":"mutable","name":"cardTokenId","nameLocation":"3680:11:20","nodeType":"VariableDeclaration","scope":3867,"src":"3664:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3862,"name":"uint256","nodeType":"ElementaryTypeName","src":"3664:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3865,"indexed":true,"mutability":"mutable","name":"albumTokenId","nameLocation":"3709:12:20","nodeType":"VariableDeclaration","scope":3867,"src":"3693:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3864,"name":"uint256","nodeType":"ElementaryTypeName","src":"3693:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3639:83:20"},"src":"3623:100:20"},{"anonymous":false,"eventSelector":"23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f20","id":3873,"name":"EmergencyWithdrawal","nameLocation":"3732:19:20","nodeType":"EventDefinition","parameters":{"id":3872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"3768:8:20","nodeType":"VariableDeclaration","scope":3873,"src":"3752:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3868,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3871,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"3794:6:20","nodeType":"VariableDeclaration","scope":3873,"src":"3778:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3870,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3751:50:20"},"src":"3726:76:20"},{"anonymous":false,"eventSelector":"ffafe5c39be83f4bcf20d7e1a150f6e21c1858ea0948315ba84b6b1c386d45bb","id":3877,"name":"NewSigner","nameLocation":"3811:9:20","nodeType":"EventDefinition","parameters":{"id":3876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3875,"indexed":true,"mutability":"mutable","name":"newSigner","nameLocation":"3837:9:20","nodeType":"VariableDeclaration","scope":3877,"src":"3821:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3874,"name":"address","nodeType":"ElementaryTypeName","src":"3821:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3820:27:20"},"src":"3805:43:20"},{"anonymous":false,"eventSelector":"abfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec6","id":3883,"name":"NewUris","nameLocation":"3857:7:20","nodeType":"EventDefinition","parameters":{"id":3882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3879,"indexed":true,"mutability":"mutable","name":"newMainUri","nameLocation":"3880:10:20","nodeType":"VariableDeclaration","scope":3883,"src":"3865:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3878,"name":"string","nodeType":"ElementaryTypeName","src":"3865:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3881,"indexed":true,"mutability":"mutable","name":"newSecondaryUri","nameLocation":"3907:15:20","nodeType":"VariableDeclaration","scope":3883,"src":"3892:30:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3880,"name":"string","nodeType":"ElementaryTypeName","src":"3892:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3864:59:20"},"src":"3851:73:20"},{"anonymous":false,"eventSelector":"52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524","id":3893,"name":"OfferCardsExchanged","nameLocation":"3933:19:20","nodeType":"EventDefinition","parameters":{"id":3892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3885,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3969:4:20","nodeType":"VariableDeclaration","scope":3893,"src":"3953:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3884,"name":"address","nodeType":"ElementaryTypeName","src":"3953:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3887,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3991:2:20","nodeType":"VariableDeclaration","scope":3893,"src":"3975:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3886,"name":"address","nodeType":"ElementaryTypeName","src":"3975:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3889,"indexed":false,"mutability":"mutable","name":"cardNumberFrom","nameLocation":"4001:14:20","nodeType":"VariableDeclaration","scope":3893,"src":"3995:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3888,"name":"uint8","nodeType":"ElementaryTypeName","src":"3995:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3891,"indexed":false,"mutability":"mutable","name":"cardNumberTo","nameLocation":"4023:12:20","nodeType":"VariableDeclaration","scope":3893,"src":"4017:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3890,"name":"uint8","nodeType":"ElementaryTypeName","src":"4017:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3952:84:20"},"src":"3927:110:20"},{"anonymous":false,"eventSelector":"1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da","id":3901,"name":"CardTransfered","nameLocation":"4046:14:20","nodeType":"EventDefinition","parameters":{"id":3900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3895,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"4077:4:20","nodeType":"VariableDeclaration","scope":3901,"src":"4061:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3894,"name":"address","nodeType":"ElementaryTypeName","src":"4061:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3897,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4099:2:20","nodeType":"VariableDeclaration","scope":3901,"src":"4083:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3896,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3899,"indexed":false,"mutability":"mutable","name":"cardNumber","nameLocation":"4109:10:20","nodeType":"VariableDeclaration","scope":3901,"src":"4103:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3898,"name":"uint8","nodeType":"ElementaryTypeName","src":"4103:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4060:60:20"},"src":"4040:81:20"},{"anonymous":false,"eventSelector":"368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b","id":3910,"name":"CardsTransfered","nameLocation":"4130:15:20","nodeType":"EventDefinition","parameters":{"id":3909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3903,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"4162:4:20","nodeType":"VariableDeclaration","scope":3910,"src":"4146:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3902,"name":"address","nodeType":"ElementaryTypeName","src":"4146:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3905,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"4184:2:20","nodeType":"VariableDeclaration","scope":3910,"src":"4168:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3904,"name":"address","nodeType":"ElementaryTypeName","src":"4168:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3908,"indexed":true,"mutability":"mutable","name":"cardNumber","nameLocation":"4204:10:20","nodeType":"VariableDeclaration","scope":3910,"src":"4188:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3906,"name":"uint8","nodeType":"ElementaryTypeName","src":"4188:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3907,"nodeType":"ArrayTypeName","src":"4188:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"4145:70:20"},"src":"4124:92:20"},{"anonymous":false,"eventSelector":"dbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b1","id":3917,"name":"CardsBurned","nameLocation":"4225:11:20","nodeType":"EventDefinition","parameters":{"id":3916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3912,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"4253:4:20","nodeType":"VariableDeclaration","scope":3917,"src":"4237:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3911,"name":"address","nodeType":"ElementaryTypeName","src":"4237:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3915,"indexed":true,"mutability":"mutable","name":"cardsNumber","nameLocation":"4275:11:20","nodeType":"VariableDeclaration","scope":3917,"src":"4259:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":3913,"name":"uint8","nodeType":"ElementaryTypeName","src":"4259:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3914,"nodeType":"ArrayTypeName","src":"4259:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"4236:51:20"},"src":"4219:69:20"},{"body":{"id":3931,"nodeType":"Block","src":"4326:95:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4335:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4339:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4335:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3923,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"4357:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}],"id":3922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4349:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3921,"name":"address","nodeType":"ElementaryTypeName","src":"4349:7:20","typeDescriptions":{}}},"id":3924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4349:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4335:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3929,"nodeType":"IfStatement","src":"4332:77:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3926,"name":"OnlyGammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3641,"src":"4385:22:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3928,"nodeType":"RevertStatement","src":"4378:31:20"}},{"id":3930,"nodeType":"PlaceholderStatement","src":"4415:1:20"}]},"id":3932,"name":"onlyGammaPacksContract","nameLocation":"4301:22:20","nodeType":"ModifierDefinition","parameters":{"id":3918,"nodeType":"ParameterList","parameters":[],"src":"4323:2:20"},"src":"4292:129:20","virtual":false,"visibility":"internal"},{"body":{"id":3946,"nodeType":"Block","src":"4460:92:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3934,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4469:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4473:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4469:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3938,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"4491:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}],"id":3937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4483:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3936,"name":"address","nodeType":"ElementaryTypeName","src":"4483:7:20","typeDescriptions":{}}},"id":3939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4483:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4469:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3944,"nodeType":"IfStatement","src":"4466:74:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3941,"name":"OnlyOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"4520:18:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3943,"nodeType":"RevertStatement","src":"4513:27:20"}},{"id":3945,"nodeType":"PlaceholderStatement","src":"4546:1:20"}]},"id":3947,"name":"onlyGammaOffersContract","nameLocation":"4434:23:20","nodeType":"ModifierDefinition","parameters":{"id":3933,"nodeType":"ParameterList","parameters":[],"src":"4457:2:20"},"src":"4425:127:20","virtual":false,"visibility":"internal"},{"body":{"id":3960,"nodeType":"Block","src":"4578:72:20","statements":[{"condition":{"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4587:30:20","subExpression":{"baseExpression":{"expression":{"id":3949,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"4588:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":3950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4599:6:20","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"4588:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3953,"indexExpression":{"expression":{"id":3951,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4606:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4610:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4606:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4588:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3958,"nodeType":"IfStatement","src":"4584:54:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3955,"name":"OnlyOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3645,"src":"4626:10:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4626:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3957,"nodeType":"RevertStatement","src":"4619:19:20"}},{"id":3959,"nodeType":"PlaceholderStatement","src":"4644:1:20"}]},"id":3961,"name":"onlyOwners","nameLocation":"4565:10:20","nodeType":"ModifierDefinition","parameters":{"id":3948,"nodeType":"ParameterList","parameters":[],"src":"4575:2:20"},"src":"4556:94:20","virtual":false,"visibility":"internal"},{"body":{"id":3976,"nodeType":"Block","src":"4698:68:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3965,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3963,"src":"4707:8:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4727:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4719:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3966,"name":"address","nodeType":"ElementaryTypeName","src":"4719:7:20","typeDescriptions":{}}},"id":3969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4719:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4707:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3974,"nodeType":"IfStatement","src":"4704:50:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3971,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3647,"src":"4738:14:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":3972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4738:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3973,"nodeType":"RevertStatement","src":"4731:23:20"}},{"id":3975,"nodeType":"PlaceholderStatement","src":"4760:1:20"}]},"id":3977,"name":"checkAddressZero","nameLocation":"4663:16:20","nodeType":"ModifierDefinition","parameters":{"id":3964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3963,"mutability":"mutable","name":"_address","nameLocation":"4688:8:20","nodeType":"VariableDeclaration","scope":3977,"src":"4680:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3962,"name":"address","nodeType":"ElementaryTypeName","src":"4680:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4679:18:20"},"src":"4654:112:20","virtual":false,"visibility":"internal"},{"body":{"id":4106,"nodeType":"Block","src":"4988:657:20","statements":[{"expression":{"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3996,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"4994:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5005:6:20","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"4994:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4001,"indexExpression":{"expression":{"id":3998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5012:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5016:6:20","memberName":"sender","nodeType":"MemberAccess","src":"5012:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4994:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5026:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4994:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4004,"nodeType":"ExpressionStatement","src":"4994:36:20"},{"expression":{"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4005,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"5037:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4006,"name":"_daiTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3979,"src":"5049:16:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5037:28:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4008,"nodeType":"ExpressionStatement","src":"5037:28:20"},{"expression":{"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4009,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"5071:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4011,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3981,"src":"5112:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4010,"name":"IgammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"5092:19:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaPacksContract_$3694_$","typeString":"type(contract IgammaPacksContract)"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"src":"5071:61:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4014,"nodeType":"ExpressionStatement","src":"5071:61:20"},{"expression":{"id":4019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4015,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"5138:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4017,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3985,"src":"5183:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4016,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"5161:21:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$3740_$","typeString":"type(contract IgammaTicketsContract)"}},"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5161:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"src":"5138:67:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"id":4020,"nodeType":"ExpressionStatement","src":"5138:67:20"},{"expression":{"id":4025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4021,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"5211:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4023,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"5254:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4022,"name":"IgammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"5233:20:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaOffersContract_$3734_$","typeString":"type(contract IgammaOffersContract)"}},"id":4024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"src":"5211:64:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":4026,"nodeType":"ExpressionStatement","src":"5211:64:20"},{"expression":{"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4027,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"5282:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4028,"name":"_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"5294:8:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5282:20:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4030,"nodeType":"ExpressionStatement","src":"5282:20:20"},{"expression":{"id":4054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4031,"name":"s_mainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"5308:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4038,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"5350:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":4037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5344:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4036,"name":"bytes","nodeType":"ElementaryTypeName","src":"5344:5:20","typeDescriptions":{}}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5344:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"hexValue":"2f","id":4042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5368:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"id":4041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4040,"name":"bytes","nodeType":"ElementaryTypeName","src":"5362:5:20","typeDescriptions":{}}},"id":4043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"313230","id":4046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5380:5:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_583f4f71b32721321fd0f20e674c3938142ce9f243e802c16cfc4def7d2dc523","typeString":"literal_string \"120\""},"value":"120"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_583f4f71b32721321fd0f20e674c3938142ce9f243e802c16cfc4def7d2dc523","typeString":"literal_string \"120\""}],"id":4045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5374:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4044,"name":"bytes","nodeType":"ElementaryTypeName","src":"5374:5:20","typeDescriptions":{}}},"id":4047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"462e6a736f6e","id":4050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:8:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""},"value":"F.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""}],"id":4049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5388:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4048,"name":"bytes","nodeType":"ElementaryTypeName","src":"5388:5:20","typeDescriptions":{}}},"id":4051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5388:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"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":4034,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5327:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5331:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"5327:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5327:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5320:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4032,"name":"string","nodeType":"ElementaryTypeName","src":"5320:6:20","typeDescriptions":{}}},"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:85:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5308:97:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4055,"nodeType":"ExpressionStatement","src":"5308:97:20"},{"expression":{"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4056,"name":"s_secondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"5411:14:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4063,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"5465:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":4062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5459:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4061,"name":"bytes","nodeType":"ElementaryTypeName","src":"5459:5:20","typeDescriptions":{}}},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5459:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"hexValue":"2f","id":4067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5483:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"id":4066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5477:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4065,"name":"bytes","nodeType":"ElementaryTypeName","src":"5477:5:20","typeDescriptions":{}}},"id":4068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5477:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"313231","id":4071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5495:5:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9aa4ff60d3edb7fbc3b53bd780c9274ed80a5ba1a237d38b011edab2b031b4a","typeString":"literal_string \"121\""},"value":"121"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b9aa4ff60d3edb7fbc3b53bd780c9274ed80a5ba1a237d38b011edab2b031b4a","typeString":"literal_string \"121\""}],"id":4070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5489:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4069,"name":"bytes","nodeType":"ElementaryTypeName","src":"5489:5:20","typeDescriptions":{}}},"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5489:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"462e6a736f6e","id":4075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5509:8:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""},"value":"F.json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e89312d9b1c1ffddb8d91a9503c4e5a2b95fb259f0184ae47a00b0e567380bb","typeString":"literal_string \"F.json\""}],"id":4074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5503:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4073,"name":"bytes","nodeType":"ElementaryTypeName","src":"5503:5:20","typeDescriptions":{}}},"id":4076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5503:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"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":4059,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5442:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5446:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"5442:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5442:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5428:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4057,"name":"string","nodeType":"ElementaryTypeName","src":"5428:6:20","typeDescriptions":{}}},"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5428:97:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5411:114:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4080,"nodeType":"ExpressionStatement","src":"5411:114:20"},{"expression":{"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4081,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"5531:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5543:7:20","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"5531:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4085,"indexExpression":{"id":4083,"name":"_signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"5551:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5531:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5562:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5531:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4088,"nodeType":"ExpressionStatement","src":"5531:35:20"},{"body":{"id":4104,"nodeType":"Block","src":"5603:38:20","statements":[{"expression":{"id":4102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4098,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"5611:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4100,"indexExpression":{"id":4099,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4090,"src":"5628:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5611:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":4101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5633:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5611:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4103,"nodeType":"ExpressionStatement","src":"5611:23:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4090,"src":"5589:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313232","id":4093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5593:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"},"src":"5589:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4105,"initializationExpression":{"assignments":[4090],"declarations":[{"constant":false,"id":4090,"mutability":"mutable","name":"i","nameLocation":"5586:1:20","nodeType":"VariableDeclaration","scope":4105,"src":"5578:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4089,"name":"uint256","nodeType":"ElementaryTypeName","src":"5578:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4091,"nodeType":"VariableDeclarationStatement","src":"5578:9:20"},"loopExpression":{"expression":{"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5598:3:20","subExpression":{"id":4095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4090,"src":"5598:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4097,"nodeType":"ExpressionStatement","src":"5598:3:20"},"nodeType":"ForStatement","src":"5573:68:20"}]},"id":4107,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":3992,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4976:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4980:6:20","memberName":"sender","nodeType":"MemberAccess","src":"4976:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3994,"kind":"baseConstructorSpecifier","modifierName":{"id":3991,"name":"Ownable","nameLocations":["4968:7:20"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"4968:7:20"},"nodeType":"ModifierInvocation","src":"4968:19:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3979,"mutability":"mutable","name":"_daiTokenAddress","nameLocation":"4796:16:20","nodeType":"VariableDeclaration","scope":4107,"src":"4788:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3978,"name":"address","nodeType":"ElementaryTypeName","src":"4788:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3981,"mutability":"mutable","name":"_gammaPacksContract","nameLocation":"4826:19:20","nodeType":"VariableDeclaration","scope":4107,"src":"4818:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3980,"name":"address","nodeType":"ElementaryTypeName","src":"4818:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3983,"mutability":"mutable","name":"_gammaOffersContract","nameLocation":"4859:20:20","nodeType":"VariableDeclaration","scope":4107,"src":"4851:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3982,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3985,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"4893:21:20","nodeType":"VariableDeclaration","scope":4107,"src":"4885:29:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3984,"name":"address","nodeType":"ElementaryTypeName","src":"4885:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3987,"mutability":"mutable","name":"_baseUri","nameLocation":"4934:8:20","nodeType":"VariableDeclaration","scope":4107,"src":"4920:22:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3986,"name":"string","nodeType":"ElementaryTypeName","src":"4920:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3989,"mutability":"mutable","name":"_signer","nameLocation":"4956:7:20","nodeType":"VariableDeclaration","scope":4107,"src":"4948:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3988,"name":"address","nodeType":"ElementaryTypeName","src":"4948:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4782:185:20"},"returnParameters":{"id":3995,"nodeType":"ParameterList","parameters":[],"src":"4988:0:20"},"scope":5808,"src":"4770:875:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4120,"nodeType":"Block","src":"5706:41:20","statements":[{"expression":{"arguments":[{"id":4117,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4109,"src":"5732:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4114,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"5712:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5723:8:20","memberName":"addOwner","nodeType":"MemberAccess","referencedDeclaration":8697,"src":"5712:19:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5712:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4119,"nodeType":"ExpressionStatement","src":"5712:30:20"}]},"functionSelector":"7065cb48","id":4121,"implemented":true,"kind":"function","modifiers":[{"id":4112,"kind":"modifierInvocation","modifierName":{"id":4111,"name":"onlyOwners","nameLocations":["5695:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"5695:10:20"},"nodeType":"ModifierInvocation","src":"5695:10:20"}],"name":"addOwner","nameLocation":"5658:8:20","nodeType":"FunctionDefinition","parameters":{"id":4110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4109,"mutability":"mutable","name":"_newOwner","nameLocation":"5675:9:20","nodeType":"VariableDeclaration","scope":4121,"src":"5667:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4108,"name":"address","nodeType":"ElementaryTypeName","src":"5667:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5666:19:20"},"returnParameters":{"id":4113,"nodeType":"ParameterList","parameters":[],"src":"5706:0:20"},"scope":5808,"src":"5649:98:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4134,"nodeType":"Block","src":"5816:49:20","statements":[{"expression":{"arguments":[{"id":4131,"name":"_ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4123,"src":"5845:14:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4128,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"5822:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5833:11:20","memberName":"removeOwner","nodeType":"MemberAccess","referencedDeclaration":8744,"src":"5822:22:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4133,"nodeType":"ExpressionStatement","src":"5822:38:20"}]},"functionSelector":"173825d9","id":4135,"implemented":true,"kind":"function","modifiers":[{"id":4126,"kind":"modifierInvocation","modifierName":{"id":4125,"name":"onlyOwners","nameLocations":["5805:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"5805:10:20"},"nodeType":"ModifierInvocation","src":"5805:10:20"}],"name":"removeOwner","nameLocation":"5760:11:20","nodeType":"FunctionDefinition","parameters":{"id":4124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4123,"mutability":"mutable","name":"_ownerToRemove","nameLocation":"5780:14:20","nodeType":"VariableDeclaration","scope":4135,"src":"5772:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4122,"name":"address","nodeType":"ElementaryTypeName","src":"5772:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5771:24:20"},"returnParameters":{"id":4127,"nodeType":"ParameterList","parameters":[],"src":"5816:0:20"},"scope":5808,"src":"5751:114:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4148,"nodeType":"Block","src":"5928:44:20","statements":[{"expression":{"arguments":[{"id":4145,"name":"_newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4137,"src":"5956:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4142,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"5934:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5946:9:20","memberName":"addSigner","nodeType":"MemberAccess","referencedDeclaration":8784,"src":"5934:21:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5934:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4147,"nodeType":"ExpressionStatement","src":"5934:33:20"}]},"functionSelector":"eb12d61e","id":4149,"implemented":true,"kind":"function","modifiers":[{"id":4140,"kind":"modifierInvocation","modifierName":{"id":4139,"name":"onlyOwners","nameLocations":["5917:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"5917:10:20"},"nodeType":"ModifierInvocation","src":"5917:10:20"}],"name":"addSigner","nameLocation":"5878:9:20","nodeType":"FunctionDefinition","parameters":{"id":4138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4137,"mutability":"mutable","name":"_newSigner","nameLocation":"5896:10:20","nodeType":"VariableDeclaration","scope":4149,"src":"5888:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4136,"name":"address","nodeType":"ElementaryTypeName","src":"5888:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5887:20:20"},"returnParameters":{"id":4141,"nodeType":"ParameterList","parameters":[],"src":"5928:0:20"},"scope":5808,"src":"5869:103:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4162,"nodeType":"Block","src":"6043:52:20","statements":[{"expression":{"arguments":[{"id":4159,"name":"_signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4151,"src":"6074:15:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4156,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"6049:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6061:12:20","memberName":"removeSigner","nodeType":"MemberAccess","referencedDeclaration":8831,"src":"6049:24:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6049:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4161,"nodeType":"ExpressionStatement","src":"6049:41:20"}]},"functionSelector":"0e316ab7","id":4163,"implemented":true,"kind":"function","modifiers":[{"id":4154,"kind":"modifierInvocation","modifierName":{"id":4153,"name":"onlyOwners","nameLocations":["6032:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6032:10:20"},"nodeType":"ModifierInvocation","src":"6032:10:20"}],"name":"removeSigner","nameLocation":"5985:12:20","nodeType":"FunctionDefinition","parameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4151,"mutability":"mutable","name":"_signerToRemove","nameLocation":"6006:15:20","nodeType":"VariableDeclaration","scope":4163,"src":"5998:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4150,"name":"address","nodeType":"ElementaryTypeName","src":"5998:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5997:25:20"},"returnParameters":{"id":4155,"nodeType":"ParameterList","parameters":[],"src":"6043:0:20"},"scope":5808,"src":"5976:119:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4183,"nodeType":"Block","src":"6220:130:20","statements":[{"expression":{"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4173,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"6226:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4175,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6269:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4174,"name":"IgammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3734,"src":"6248:20:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaOffersContract_$3734_$","typeString":"type(contract IgammaOffersContract)"}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"src":"6226:64:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":4178,"nodeType":"ExpressionStatement","src":"6226:64:20"},{"eventCall":{"arguments":[{"id":4180,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6324:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4179,"name":"NewGammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3836,"src":"6301:22:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6301:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4182,"nodeType":"EmitStatement","src":"6296:49:20"}]},"functionSelector":"128916dc","id":4184,"implemented":true,"kind":"function","modifiers":[{"id":4168,"kind":"modifierInvocation","modifierName":{"id":4167,"name":"onlyOwners","nameLocations":["6170:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6170:10:20"},"nodeType":"ModifierInvocation","src":"6170:10:20"},{"arguments":[{"id":4170,"name":"_gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"6198:20:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4171,"kind":"modifierInvocation","modifierName":{"id":4169,"name":"checkAddressZero","nameLocations":["6181:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"6181:16:20"},"nodeType":"ModifierInvocation","src":"6181:38:20"}],"name":"setGammaOffersContract","nameLocation":"6108:22:20","nodeType":"FunctionDefinition","parameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4165,"mutability":"mutable","name":"_gammaOffersContract","nameLocation":"6139:20:20","nodeType":"VariableDeclaration","scope":4184,"src":"6131:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4164,"name":"address","nodeType":"ElementaryTypeName","src":"6131:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6130:30:20"},"returnParameters":{"id":4172,"nodeType":"ParameterList","parameters":[],"src":"6220:0:20"},"scope":5808,"src":"6099:251:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4204,"nodeType":"Block","src":"6471:125:20","statements":[{"expression":{"id":4198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4194,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"6477:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4196,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4186,"src":"6518:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4195,"name":"IgammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"6498:19:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaPacksContract_$3694_$","typeString":"type(contract IgammaPacksContract)"}},"id":4197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"src":"6477:61:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4199,"nodeType":"ExpressionStatement","src":"6477:61:20"},{"eventCall":{"arguments":[{"id":4201,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4186,"src":"6571:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4200,"name":"NewGammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3840,"src":"6549:21:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6549:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4203,"nodeType":"EmitStatement","src":"6544:47:20"}]},"functionSelector":"cafaa473","id":4205,"implemented":true,"kind":"function","modifiers":[{"id":4189,"kind":"modifierInvocation","modifierName":{"id":4188,"name":"onlyOwners","nameLocations":["6423:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6423:10:20"},"nodeType":"ModifierInvocation","src":"6423:10:20"},{"arguments":[{"id":4191,"name":"_gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4186,"src":"6451:19:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4192,"kind":"modifierInvocation","modifierName":{"id":4190,"name":"checkAddressZero","nameLocations":["6434:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"6434:16:20"},"nodeType":"ModifierInvocation","src":"6434:37:20"}],"name":"setGammaPacksContract","nameLocation":"6363:21:20","nodeType":"FunctionDefinition","parameters":{"id":4187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4186,"mutability":"mutable","name":"_gammaPacksContract","nameLocation":"6393:19:20","nodeType":"VariableDeclaration","scope":4205,"src":"6385:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4185,"name":"address","nodeType":"ElementaryTypeName","src":"6385:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6384:29:20"},"returnParameters":{"id":4193,"nodeType":"ParameterList","parameters":[],"src":"6471:0:20"},"scope":5808,"src":"6354:242:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4225,"nodeType":"Block","src":"6723:135:20","statements":[{"expression":{"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4215,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"6729:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4217,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"6774:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4216,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"6752:21:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$3740_$","typeString":"type(contract IgammaTicketsContract)"}},"id":4218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6752:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"src":"6729:67:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"id":4220,"nodeType":"ExpressionStatement","src":"6729:67:20"},{"eventCall":{"arguments":[{"id":4222,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"6831:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4221,"name":"NewGammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"6807:23:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4224,"nodeType":"EmitStatement","src":"6802:51:20"}]},"functionSelector":"ddb975e8","id":4226,"implemented":true,"kind":"function","modifiers":[{"id":4210,"kind":"modifierInvocation","modifierName":{"id":4209,"name":"onlyOwners","nameLocations":["6673:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"6673:10:20"},"nodeType":"ModifierInvocation","src":"6673:10:20"},{"arguments":[{"id":4212,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"6701:21:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4213,"kind":"modifierInvocation","modifierName":{"id":4211,"name":"checkAddressZero","nameLocations":["6684:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"6684:16:20"},"nodeType":"ModifierInvocation","src":"6684:39:20"}],"name":"setGammaTicketsContract","nameLocation":"6609:23:20","nodeType":"FunctionDefinition","parameters":{"id":4208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4207,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"6641:21:20","nodeType":"VariableDeclaration","scope":4226,"src":"6633:29:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4206,"name":"address","nodeType":"ElementaryTypeName","src":"6633:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6632:31:20"},"returnParameters":{"id":4214,"nodeType":"ParameterList","parameters":[],"src":"6723:0:20"},"scope":5808,"src":"6600:258:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4237,"nodeType":"Block","src":"6936:36:20","statements":[{"expression":{"id":4235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4233,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"6942:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4234,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4228,"src":"6961:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6942:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4236,"nodeType":"ExpressionStatement","src":"6942:25:20"}]},"functionSelector":"5e31ce48","id":4238,"implemented":true,"kind":"function","modifiers":[{"id":4231,"kind":"modifierInvocation","modifierName":{"id":4230,"name":"onlyGammaPacksContract","nameLocations":["6913:22:20"],"nodeType":"IdentifierPath","referencedDeclaration":3932,"src":"6913:22:20"},"nodeType":"ModifierInvocation","src":"6913:22:20"}],"name":"setPrizesBalance","nameLocation":"6871:16:20","nodeType":"FunctionDefinition","parameters":{"id":4229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4228,"mutability":"mutable","name":"amount","nameLocation":"6896:6:20","nodeType":"VariableDeclaration","scope":4238,"src":"6888:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4227,"name":"uint256","nodeType":"ElementaryTypeName","src":"6888:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6887:16:20"},"returnParameters":{"id":4232,"nodeType":"ParameterList","parameters":[],"src":"6936:0:20"},"scope":5808,"src":"6862:110:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4256,"nodeType":"Block","src":"7039:87:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4245,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"7048:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7058:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7048:11:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4251,"nodeType":"IfStatement","src":"7045:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4248,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"7068:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7068:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4250,"nodeType":"RevertStatement","src":"7061:29:20"}},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4252,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"7096:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4253,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"7115:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7096:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4255,"nodeType":"ExpressionStatement","src":"7096:25:20"}]},"functionSelector":"7232d7d4","id":4257,"implemented":true,"kind":"function","modifiers":[{"id":4243,"kind":"modifierInvocation","modifierName":{"id":4242,"name":"onlyOwners","nameLocations":["7028:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7028:10:20"},"nodeType":"ModifierInvocation","src":"7028:10:20"}],"name":"setMainAlbumPrize","nameLocation":"6985:17:20","nodeType":"FunctionDefinition","parameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"amount","nameLocation":"7011:6:20","nodeType":"VariableDeclaration","scope":4257,"src":"7003:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"7003:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7002:16:20"},"returnParameters":{"id":4244,"nodeType":"ParameterList","parameters":[],"src":"7039:0:20"},"scope":5808,"src":"6976:150:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4275,"nodeType":"Block","src":"7198:92:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4264,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"7207:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7217:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7207:11:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4270,"nodeType":"IfStatement","src":"7204:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4267,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"7227:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7227:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4269,"nodeType":"RevertStatement","src":"7220:29:20"}},{"expression":{"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4271,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"7255:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4272,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"7279:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4274,"nodeType":"ExpressionStatement","src":"7255:30:20"}]},"functionSelector":"ba6c0fbc","id":4276,"implemented":true,"kind":"function","modifiers":[{"id":4262,"kind":"modifierInvocation","modifierName":{"id":4261,"name":"onlyOwners","nameLocations":["7187:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7187:10:20"},"nodeType":"ModifierInvocation","src":"7187:10:20"}],"name":"setSecondaryAlbumPrize","nameLocation":"7139:22:20","nodeType":"FunctionDefinition","parameters":{"id":4260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4259,"mutability":"mutable","name":"amount","nameLocation":"7170:6:20","nodeType":"VariableDeclaration","scope":4276,"src":"7162:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4258,"name":"uint256","nodeType":"ElementaryTypeName","src":"7162:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7161:16:20"},"returnParameters":{"id":4263,"nodeType":"ParameterList","parameters":[],"src":"7198:0:20"},"scope":5808,"src":"7130:160:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4294,"nodeType":"Block","src":"7363:96:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4283,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"7372:6:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":4284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7381:3:20","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7372:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4289,"nodeType":"IfStatement","src":"7369:46:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4286,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"7393:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7393:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4288,"nodeType":"RevertStatement","src":"7386:29:20"}},{"expression":{"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4290,"name":"s_lotteryPrizePercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"7421:24:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4291,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"7448:6:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7421:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4293,"nodeType":"ExpressionStatement","src":"7421:33:20"}]},"functionSelector":"7ce65f7b","id":4295,"implemented":true,"kind":"function","modifiers":[{"id":4281,"kind":"modifierInvocation","modifierName":{"id":4280,"name":"onlyOwners","nameLocations":["7352:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7352:10:20"},"nodeType":"ModifierInvocation","src":"7352:10:20"}],"name":"setLotteryPrizePercentage","nameLocation":"7303:25:20","nodeType":"FunctionDefinition","parameters":{"id":4279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4278,"mutability":"mutable","name":"amount","nameLocation":"7335:6:20","nodeType":"VariableDeclaration","scope":4295,"src":"7329:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4277,"name":"uint8","nodeType":"ElementaryTypeName","src":"7329:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"7328:14:20"},"returnParameters":{"id":4282,"nodeType":"ParameterList","parameters":[],"src":"7363:0:20"},"scope":5808,"src":"7294:165:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4317,"nodeType":"Block","src":"7557:118:20","statements":[{"expression":{"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4304,"name":"s_mainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"7563:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4305,"name":"newMainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"7575:10:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7563:22:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4307,"nodeType":"ExpressionStatement","src":"7563:22:20"},{"expression":{"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4308,"name":"s_secondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"7591:14:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4309,"name":"newSecondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"7608:15:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7591:32:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":4311,"nodeType":"ExpressionStatement","src":"7591:32:20"},{"eventCall":{"arguments":[{"id":4313,"name":"newMainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4297,"src":"7642:10:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4314,"name":"newSecondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4299,"src":"7654:15:20","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":4312,"name":"NewUris","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"7634:7:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7634:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4316,"nodeType":"EmitStatement","src":"7629:41:20"}]},"functionSelector":"9c7f707f","id":4318,"implemented":true,"kind":"function","modifiers":[{"id":4302,"kind":"modifierInvocation","modifierName":{"id":4301,"name":"onlyOwners","nameLocations":["7546:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7546:10:20"},"nodeType":"ModifierInvocation","src":"7546:10:20"}],"name":"setUris","nameLocation":"7472:7:20","nodeType":"FunctionDefinition","parameters":{"id":4300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4297,"mutability":"mutable","name":"newMainUri","nameLocation":"7494:10:20","nodeType":"VariableDeclaration","scope":4318,"src":"7480:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4296,"name":"string","nodeType":"ElementaryTypeName","src":"7480:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4299,"mutability":"mutable","name":"newSecondaryUri","nameLocation":"7520:15:20","nodeType":"VariableDeclaration","scope":4318,"src":"7506:29:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4298,"name":"string","nodeType":"ElementaryTypeName","src":"7506:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7479:57:20"},"returnParameters":{"id":4303,"nodeType":"ParameterList","parameters":[],"src":"7557:0:20"},"scope":5808,"src":"7463:212:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4329,"nodeType":"Block","src":"7761:55:20","statements":[{"expression":{"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4325,"name":"s_requireOpenPackSignerValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"7767:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4326,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4320,"src":"7803:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7767:44:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4328,"nodeType":"ExpressionStatement","src":"7767:44:20"}]},"functionSelector":"dbfc05cf","id":4330,"implemented":true,"kind":"function","modifiers":[{"id":4323,"kind":"modifierInvocation","modifierName":{"id":4322,"name":"onlyOwners","nameLocations":["7750:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7750:10:20"},"nodeType":"ModifierInvocation","src":"7750:10:20"}],"name":"changeRequireOpenPackSignerValidation","nameLocation":"7688:37:20","nodeType":"FunctionDefinition","parameters":{"id":4321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4320,"mutability":"mutable","name":"required","nameLocation":"7731:8:20","nodeType":"VariableDeclaration","scope":4330,"src":"7726:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4319,"name":"bool","nodeType":"ElementaryTypeName","src":"7726:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7725:15:20"},"returnParameters":{"id":4324,"nodeType":"ParameterList","parameters":[],"src":"7761:0:20"},"scope":5808,"src":"7679:137:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4341,"nodeType":"Block","src":"7899:52:20","statements":[{"expression":{"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4337,"name":"s_requireOfferValidationInMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7905:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4338,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4332,"src":"7938:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7905:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4340,"nodeType":"ExpressionStatement","src":"7905:41:20"}]},"functionSelector":"f98fd283","id":4342,"implemented":true,"kind":"function","modifiers":[{"id":4335,"kind":"modifierInvocation","modifierName":{"id":4334,"name":"onlyOwners","nameLocations":["7888:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"7888:10:20"},"nodeType":"ModifierInvocation","src":"7888:10:20"}],"name":"changeRequireOfferValidationInMint","nameLocation":"7829:34:20","nodeType":"FunctionDefinition","parameters":{"id":4333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4332,"mutability":"mutable","name":"required","nameLocation":"7869:8:20","nodeType":"VariableDeclaration","scope":4342,"src":"7864:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4331,"name":"bool","nodeType":"ElementaryTypeName","src":"7864:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7863:15:20"},"returnParameters":{"id":4336,"nodeType":"ParameterList","parameters":[],"src":"7899:0:20"},"scope":5808,"src":"7820:131:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4353,"nodeType":"Block","src":"8038:56:20","statements":[{"expression":{"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4349,"name":"s_requireOfferValidationInTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"8044:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4350,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4344,"src":"8081:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8044:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4352,"nodeType":"ExpressionStatement","src":"8044:45:20"}]},"functionSelector":"68cc5bc1","id":4354,"implemented":true,"kind":"function","modifiers":[{"id":4347,"kind":"modifierInvocation","modifierName":{"id":4346,"name":"onlyOwners","nameLocations":["8027:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"8027:10:20"},"nodeType":"ModifierInvocation","src":"8027:10:20"}],"name":"changeRequireOfferValidationInTransfer","nameLocation":"7964:38:20","nodeType":"FunctionDefinition","parameters":{"id":4345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4344,"mutability":"mutable","name":"required","nameLocation":"8008:8:20","nodeType":"VariableDeclaration","scope":4354,"src":"8003:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4343,"name":"bool","nodeType":"ElementaryTypeName","src":"8003:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8002:15:20"},"returnParameters":{"id":4348,"nodeType":"ParameterList","parameters":[],"src":"8038:0:20"},"scope":5808,"src":"7955:139:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4365,"nodeType":"Block","src":"8177:37:20","statements":[{"expression":{"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4361,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"8183:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4362,"name":"newPackPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4356,"src":"8197:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8183:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4364,"nodeType":"ExpressionStatement","src":"8183:26:20"}]},"functionSelector":"e1883c6e","id":4366,"implemented":true,"kind":"function","modifiers":[{"id":4359,"kind":"modifierInvocation","modifierName":{"id":4358,"name":"onlyGammaPacksContract","nameLocations":["8154:22:20"],"nodeType":"IdentifierPath","referencedDeclaration":3932,"src":"8154:22:20"},"nodeType":"ModifierInvocation","src":"8154:22:20"}],"name":"changePackPrice","nameLocation":"8107:15:20","nodeType":"FunctionDefinition","parameters":{"id":4357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4356,"mutability":"mutable","name":"newPackPrice","nameLocation":"8131:12:20","nodeType":"VariableDeclaration","scope":4366,"src":"8123:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4355,"name":"uint256","nodeType":"ElementaryTypeName","src":"8123:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8122:22:20"},"returnParameters":{"id":4360,"nodeType":"ParameterList","parameters":[],"src":"8177:0:20"},"scope":5808,"src":"8098:116:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4377,"nodeType":"Block","src":"8303:57:20","statements":[{"expression":{"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4373,"name":"s_maxPacksToOpenAtOnce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"8309:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4374,"name":"_maxPacksToOpenAtOnce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"8334:21:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8309:46:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4376,"nodeType":"ExpressionStatement","src":"8309:46:20"}]},"functionSelector":"241a08fe","id":4378,"implemented":true,"kind":"function","modifiers":[{"id":4371,"kind":"modifierInvocation","modifierName":{"id":4370,"name":"onlyOwners","nameLocations":["8292:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"8292:10:20"},"nodeType":"ModifierInvocation","src":"8292:10:20"}],"name":"changeMaxPacksToOpenAtOnce","nameLocation":"8227:26:20","nodeType":"FunctionDefinition","parameters":{"id":4369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4368,"mutability":"mutable","name":"_maxPacksToOpenAtOnce","nameLocation":"8260:21:20","nodeType":"VariableDeclaration","scope":4378,"src":"8254:27:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4367,"name":"uint8","nodeType":"ElementaryTypeName","src":"8254:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8253:29:20"},"returnParameters":{"id":4372,"nodeType":"ParameterList","parameters":[],"src":"8303:0:20"},"scope":5808,"src":"8218:142:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4394,"nodeType":"Block","src":"8456:44:20","statements":[{"expression":{"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"8462:33:20","subExpression":{"baseExpression":{"baseExpression":{"id":4387,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8462:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4390,"indexExpression":{"id":4388,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"8476:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8462:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4391,"indexExpression":{"id":4389,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4382,"src":"8482:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8462:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4393,"nodeType":"ExpressionStatement","src":"8462:33:20"}]},"functionSelector":"7155a3ac","id":4395,"implemented":true,"kind":"function","modifiers":[{"id":4385,"kind":"modifierInvocation","modifierName":{"id":4384,"name":"onlyGammaOffersContract","nameLocations":["8432:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"8432:23:20"},"nodeType":"ModifierInvocation","src":"8432:23:20"}],"name":"removeCardByOffer","nameLocation":"8373:17:20","nodeType":"FunctionDefinition","parameters":{"id":4383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"user","nameLocation":"8399:4:20","nodeType":"VariableDeclaration","scope":4395,"src":"8391:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4379,"name":"address","nodeType":"ElementaryTypeName","src":"8391:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4382,"mutability":"mutable","name":"cardNumber","nameLocation":"8411:10:20","nodeType":"VariableDeclaration","scope":4395,"src":"8405:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4381,"name":"uint8","nodeType":"ElementaryTypeName","src":"8405:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8390:32:20"},"returnParameters":{"id":4386,"nodeType":"ParameterList","parameters":[],"src":"8456:0:20"},"scope":5808,"src":"8364:136:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4411,"nodeType":"Block","src":"8597:44:20","statements":[{"expression":{"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8603:33:20","subExpression":{"baseExpression":{"baseExpression":{"id":4404,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8603:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4407,"indexExpression":{"id":4405,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4397,"src":"8617:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8603:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4408,"indexExpression":{"id":4406,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4399,"src":"8623:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8603:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4410,"nodeType":"ExpressionStatement","src":"8603:33:20"}]},"functionSelector":"155e2f92","id":4412,"implemented":true,"kind":"function","modifiers":[{"id":4402,"kind":"modifierInvocation","modifierName":{"id":4401,"name":"onlyGammaOffersContract","nameLocations":["8573:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"8573:23:20"},"nodeType":"ModifierInvocation","src":"8573:23:20"}],"name":"restoreCardByOffer","nameLocation":"8513:18:20","nodeType":"FunctionDefinition","parameters":{"id":4400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4397,"mutability":"mutable","name":"user","nameLocation":"8540:4:20","nodeType":"VariableDeclaration","scope":4412,"src":"8532:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4396,"name":"address","nodeType":"ElementaryTypeName","src":"8532:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4399,"mutability":"mutable","name":"cardNumber","nameLocation":"8552:10:20","nodeType":"VariableDeclaration","scope":4412,"src":"8546:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4398,"name":"uint8","nodeType":"ElementaryTypeName","src":"8546:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8531:32:20"},"returnParameters":{"id":4403,"nodeType":"ParameterList","parameters":[],"src":"8597:0:20"},"scope":5808,"src":"8504:137:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4431,"nodeType":"Block","src":"8770:53:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4423,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8783:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4425,"indexExpression":{"id":4424,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4414,"src":"8797:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8783:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4427,"indexExpression":{"id":4426,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"8803:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8783:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8817:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8783:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4422,"id":4430,"nodeType":"Return","src":"8776:42:20"}]},"functionSelector":"8bf670c8","id":4432,"implemented":true,"kind":"function","modifiers":[{"id":4419,"kind":"modifierInvocation","modifierName":{"id":4418,"name":"onlyGammaOffersContract","nameLocations":["8727:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"8727:23:20"},"nodeType":"ModifierInvocation","src":"8727:23:20"}],"name":"hasCardByOffer","nameLocation":"8654:14:20","nodeType":"FunctionDefinition","parameters":{"id":4417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4414,"mutability":"mutable","name":"user","nameLocation":"8682:4:20","nodeType":"VariableDeclaration","scope":4432,"src":"8674:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4413,"name":"address","nodeType":"ElementaryTypeName","src":"8674:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4416,"mutability":"mutable","name":"cardNumber","nameLocation":"8698:10:20","nodeType":"VariableDeclaration","scope":4432,"src":"8692:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4415,"name":"uint8","nodeType":"ElementaryTypeName","src":"8692:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8668:44:20"},"returnParameters":{"id":4422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4421,"mutability":"mutable","name":"has","nameLocation":"8765:3:20","nodeType":"VariableDeclaration","scope":4432,"src":"8760:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4420,"name":"bool","nodeType":"ElementaryTypeName","src":"8760:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8759:10:20"},"scope":5808,"src":"8645:178:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4452,"nodeType":"Block","src":"8927:50:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4444,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"8940:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4446,"indexExpression":{"id":4445,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"8954:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8940:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4448,"indexExpression":{"id":4447,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"8960:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8940:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8971:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8940:32:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4443,"id":4451,"nodeType":"Return","src":"8933:39:20"}]},"functionSelector":"886eb60f","id":4453,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4439,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"8902:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4440,"kind":"modifierInvocation","modifierName":{"id":4438,"name":"checkAddressZero","nameLocations":["8885:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"8885:16:20"},"nodeType":"ModifierInvocation","src":"8885:22:20"}],"name":"hasCard","nameLocation":"8836:7:20","nodeType":"FunctionDefinition","parameters":{"id":4437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4434,"mutability":"mutable","name":"user","nameLocation":"8852:4:20","nodeType":"VariableDeclaration","scope":4453,"src":"8844:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4433,"name":"address","nodeType":"ElementaryTypeName","src":"8844:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4436,"mutability":"mutable","name":"cardNum","nameLocation":"8864:7:20","nodeType":"VariableDeclaration","scope":4453,"src":"8858:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4435,"name":"uint8","nodeType":"ElementaryTypeName","src":"8858:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8843:29:20"},"returnParameters":{"id":4443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4442,"mutability":"mutable","name":"has","nameLocation":"8922:3:20","nodeType":"VariableDeclaration","scope":4453,"src":"8917:8:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4441,"name":"bool","nodeType":"ElementaryTypeName","src":"8917:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8916:10:20"},"scope":5808,"src":"8827:150:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4465,"nodeType":"Block","src":"9041:41:20","statements":[{"expression":{"baseExpression":{"expression":{"id":4460,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"9054:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9065:6:20","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"9054:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4463,"indexExpression":{"id":4462,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"9072:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9054:23:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4459,"id":4464,"nodeType":"Return","src":"9047:30:20"}]},"functionSelector":"2f54bf6e","id":4466,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nameLocation":"8990:7:20","nodeType":"FunctionDefinition","parameters":{"id":4456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4455,"mutability":"mutable","name":"user","nameLocation":"9006:4:20","nodeType":"VariableDeclaration","scope":4466,"src":"8998:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4454,"name":"address","nodeType":"ElementaryTypeName","src":"8998:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8997:14:20"},"returnParameters":{"id":4459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4466,"src":"9035:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4457,"name":"bool","nodeType":"ElementaryTypeName","src":"9035:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9034:6:20"},"scope":5808,"src":"8981:101:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4478,"nodeType":"Block","src":"9147:43:20","statements":[{"expression":{"baseExpression":{"expression":{"id":4473,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"9160:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9172:7:20","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"9160:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4476,"indexExpression":{"id":4475,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4468,"src":"9180:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9160:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4472,"id":4477,"nodeType":"Return","src":"9153:32:20"}]},"functionSelector":"7df73e27","id":4479,"implemented":true,"kind":"function","modifiers":[],"name":"isSigner","nameLocation":"9095:8:20","nodeType":"FunctionDefinition","parameters":{"id":4469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4468,"mutability":"mutable","name":"user","nameLocation":"9112:4:20","nodeType":"VariableDeclaration","scope":4479,"src":"9104:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4467,"name":"address","nodeType":"ElementaryTypeName","src":"9104:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9103:14:20"},"returnParameters":{"id":4472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4479,"src":"9141:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4470,"name":"bool","nodeType":"ElementaryTypeName","src":"9141:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9140:6:20"},"scope":5808,"src":"9086:104:20","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":4491,"nodeType":"Block","src":"9251:68:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4484,"name":"s_lotteryPrizePercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3772,"src":"9265:24:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4485,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"9292:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9265:42:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9264:44:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":4488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:3:20","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"9264:50:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4483,"id":4490,"nodeType":"Return","src":"9257:57:20"}]},"functionSelector":"d780c477","id":4492,"implemented":true,"kind":"function","modifiers":[],"name":"getLotteryPrize","nameLocation":"9203:15:20","nodeType":"FunctionDefinition","parameters":{"id":4480,"nodeType":"ParameterList","parameters":[],"src":"9218:2:20"},"returnParameters":{"id":4483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4492,"src":"9242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4481,"name":"uint256","nodeType":"ElementaryTypeName","src":"9242:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9241:9:20"},"scope":5808,"src":"9194:125:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4510,"nodeType":"Block","src":"9434:46:20","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":4504,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"9447:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4506,"indexExpression":{"id":4505,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4494,"src":"9461:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4508,"indexExpression":{"id":4507,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4496,"src":"9467:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":4503,"id":4509,"nodeType":"Return","src":"9440:35:20"}]},"functionSelector":"1585cc4e","id":4511,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4499,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4494,"src":"9412:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4500,"kind":"modifierInvocation","modifierName":{"id":4498,"name":"checkAddressZero","nameLocations":["9395:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"9395:16:20"},"nodeType":"ModifierInvocation","src":"9395:22:20"}],"name":"getCardQuantityByUser","nameLocation":"9332:21:20","nodeType":"FunctionDefinition","parameters":{"id":4497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4494,"mutability":"mutable","name":"user","nameLocation":"9362:4:20","nodeType":"VariableDeclaration","scope":4511,"src":"9354:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4493,"name":"address","nodeType":"ElementaryTypeName","src":"9354:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4496,"mutability":"mutable","name":"cardNum","nameLocation":"9374:7:20","nodeType":"VariableDeclaration","scope":4511,"src":"9368:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4495,"name":"uint8","nodeType":"ElementaryTypeName","src":"9368:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9353:29:20"},"returnParameters":{"id":4503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4511,"src":"9427:5:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4501,"name":"uint8","nodeType":"ElementaryTypeName","src":"9427:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9426:7:20"},"scope":5808,"src":"9323:157:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4525,"nodeType":"Block","src":"9584:37:20","statements":[{"expression":{"baseExpression":{"id":4521,"name":"s_burnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"9597:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4523,"indexExpression":{"id":4522,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4513,"src":"9611:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9597:19:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4520,"id":4524,"nodeType":"Return","src":"9590:26:20"}]},"functionSelector":"7cf86b72","id":4526,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4516,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4513,"src":"9560:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4517,"kind":"modifierInvocation","modifierName":{"id":4515,"name":"checkAddressZero","nameLocations":["9543:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"9543:16:20"},"nodeType":"ModifierInvocation","src":"9543:22:20"}],"name":"getBurnedCardQttyByUser","nameLocation":"9493:23:20","nodeType":"FunctionDefinition","parameters":{"id":4514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4513,"mutability":"mutable","name":"user","nameLocation":"9525:4:20","nodeType":"VariableDeclaration","scope":4526,"src":"9517:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4512,"name":"address","nodeType":"ElementaryTypeName","src":"9517:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9516:14:20"},"returnParameters":{"id":4520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4526,"src":"9575:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4518,"name":"uint256","nodeType":"ElementaryTypeName","src":"9575:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9574:9:20"},"scope":5808,"src":"9484:137:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4699,"nodeType":"Block","src":"9739:822:20","statements":[{"assignments":[4544],"declarations":[{"constant":false,"id":4544,"mutability":"mutable","name":"cardNumbers","nameLocation":"9760:11:20","nodeType":"VariableDeclaration","scope":4699,"src":"9745:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4542,"name":"uint8","nodeType":"ElementaryTypeName","src":"9745:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4543,"nodeType":"ArrayTypeName","src":"9745:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4550,"initialValue":{"arguments":[{"hexValue":"313232","id":4548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9786:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"}],"id":4547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9774:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4545,"name":"uint8","nodeType":"ElementaryTypeName","src":"9778:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4546,"nodeType":"ArrayTypeName","src":"9778:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9745:45:20"},{"assignments":[4555],"declarations":[{"constant":false,"id":4555,"mutability":"mutable","name":"quantities","nameLocation":"9811:10:20","nodeType":"VariableDeclaration","scope":4699,"src":"9796:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4553,"name":"uint8","nodeType":"ElementaryTypeName","src":"9796:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4554,"nodeType":"ArrayTypeName","src":"9796:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4561,"initialValue":{"arguments":[{"hexValue":"313232","id":4559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9836:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"}],"id":4558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9824:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4556,"name":"uint8","nodeType":"ElementaryTypeName","src":"9828:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4557,"nodeType":"ArrayTypeName","src":"9828:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9824:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9796:44:20"},{"assignments":[4566],"declarations":[{"constant":false,"id":4566,"mutability":"mutable","name":"offers","nameLocation":"9860:6:20","nodeType":"VariableDeclaration","scope":4699,"src":"9846:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":4564,"name":"bool","nodeType":"ElementaryTypeName","src":"9846:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4565,"nodeType":"ArrayTypeName","src":"9846:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":4572,"initialValue":{"arguments":[{"hexValue":"313232","id":4570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9880:3:20","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"}],"id":4569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9869:10:20","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":4567,"name":"bool","nodeType":"ElementaryTypeName","src":"9873:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4568,"nodeType":"ArrayTypeName","src":"9873:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":4571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9869:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9846:38:20"},{"assignments":[4574],"declarations":[{"constant":false,"id":4574,"mutability":"mutable","name":"index","nameLocation":"9896:5:20","nodeType":"VariableDeclaration","scope":4699,"src":"9890:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4573,"name":"uint8","nodeType":"ElementaryTypeName","src":"9890:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":4576,"initialValue":{"hexValue":"30","id":4575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9904:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9890:15:20"},{"body":{"id":4624,"nodeType":"Block","src":"9941:219:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4586,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"9953:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4588,"indexExpression":{"id":4587,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"9967:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9953:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4590,"indexExpression":{"id":4589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"9973:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9953:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9953:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4623,"nodeType":"IfStatement","src":"9949:205:20","trueBody":{"id":4622,"nodeType":"Block","src":"9981:173:20","statements":[{"expression":{"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4593,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4544,"src":"9991:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4595,"indexExpression":{"id":4594,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10003:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9991:18:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4596,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10012:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9991:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4598,"nodeType":"ExpressionStatement","src":"9991:22:20"},{"expression":{"id":4607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4599,"name":"quantities","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"10023:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4601,"indexExpression":{"id":4600,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10034:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10023:17:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":4602,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"10043:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4604,"indexExpression":{"id":4603,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"10057:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10043:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4606,"indexExpression":{"id":4605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10063:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10043:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10023:42:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4608,"nodeType":"ExpressionStatement","src":"10023:42:20"},{"expression":{"id":4617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4609,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4566,"src":"10075:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":4611,"indexExpression":{"id":4610,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10082:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10075:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4614,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4528,"src":"10120:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10126:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":4612,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"10091:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10111:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"10091:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":4616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10091:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10075:53:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4618,"nodeType":"ExpressionStatement","src":"10075:53:20"},{"expression":{"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10138:7:20","subExpression":{"id":4619,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10138:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4621,"nodeType":"ExpressionStatement","src":"10138:7:20"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4580,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"9926:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313231","id":4581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9931:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"9926:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4625,"initializationExpression":{"assignments":[4578],"declarations":[{"constant":false,"id":4578,"mutability":"mutable","name":"i","nameLocation":"9923:1:20","nodeType":"VariableDeclaration","scope":4625,"src":"9917:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4577,"name":"uint8","nodeType":"ElementaryTypeName","src":"9917:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":4579,"nodeType":"VariableDeclarationStatement","src":"9917:7:20"},"loopExpression":{"expression":{"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9936:3:20","subExpression":{"id":4583,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"9936:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4585,"nodeType":"ExpressionStatement","src":"9936:3:20"},"nodeType":"ForStatement","src":"9912:248:20"},{"assignments":[4630],"declarations":[{"constant":false,"id":4630,"mutability":"mutable","name":"userCardNumbers","nameLocation":"10181:15:20","nodeType":"VariableDeclaration","scope":4699,"src":"10166:30:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4628,"name":"uint8","nodeType":"ElementaryTypeName","src":"10166:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4629,"nodeType":"ArrayTypeName","src":"10166:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4636,"initialValue":{"arguments":[{"id":4634,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10211:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10199:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4631,"name":"uint8","nodeType":"ElementaryTypeName","src":"10203:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4632,"nodeType":"ArrayTypeName","src":"10203:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10199:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10166:51:20"},{"assignments":[4641],"declarations":[{"constant":false,"id":4641,"mutability":"mutable","name":"userCardsQtty","nameLocation":"10238:13:20","nodeType":"VariableDeclaration","scope":4699,"src":"10223:28:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4639,"name":"uint8","nodeType":"ElementaryTypeName","src":"10223:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4640,"nodeType":"ArrayTypeName","src":"10223:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":4647,"initialValue":{"arguments":[{"id":4645,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10266:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10254:11:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":4642,"name":"uint8","nodeType":"ElementaryTypeName","src":"10258:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4643,"nodeType":"ArrayTypeName","src":"10258:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":4646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10254:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10223:49:20"},{"assignments":[4652],"declarations":[{"constant":false,"id":4652,"mutability":"mutable","name":"userCardsOffers","nameLocation":"10292:15:20","nodeType":"VariableDeclaration","scope":4699,"src":"10278:29:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":4650,"name":"bool","nodeType":"ElementaryTypeName","src":"10278:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4651,"nodeType":"ArrayTypeName","src":"10278:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":4658,"initialValue":{"arguments":[{"id":4656,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10321:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10310:10:20","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":4653,"name":"bool","nodeType":"ElementaryTypeName","src":"10314:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4654,"nodeType":"ArrayTypeName","src":"10314:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10310:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10278:49:20"},{"body":{"id":4692,"nodeType":"Block","src":"10366:128:20","statements":[{"expression":{"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4668,"name":"userCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4630,"src":"10374:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4670,"indexExpression":{"id":4669,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10390:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10374:18:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4671,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4544,"src":"10395:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4673,"indexExpression":{"id":4672,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10407:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10395:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10374:35:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4675,"nodeType":"ExpressionStatement","src":"10374:35:20"},{"expression":{"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4676,"name":"userCardsQtty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4641,"src":"10417:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4678,"indexExpression":{"id":4677,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10431:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10417:16:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4679,"name":"quantities","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4555,"src":"10436:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4681,"indexExpression":{"id":4680,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10447:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10436:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10417:32:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4683,"nodeType":"ExpressionStatement","src":"10417:32:20"},{"expression":{"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4684,"name":"userCardsOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"10457:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":4686,"indexExpression":{"id":4685,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10473:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10457:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4687,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4566,"src":"10478:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":4689,"indexExpression":{"id":4688,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10485:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10478:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10457:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4691,"nodeType":"ExpressionStatement","src":"10457:30:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4662,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10350:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4663,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4574,"src":"10354:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10350:9:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4693,"initializationExpression":{"assignments":[4660],"declarations":[{"constant":false,"id":4660,"mutability":"mutable","name":"j","nameLocation":"10347:1:20","nodeType":"VariableDeclaration","scope":4693,"src":"10339:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4659,"name":"uint256","nodeType":"ElementaryTypeName","src":"10339:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4661,"nodeType":"VariableDeclarationStatement","src":"10339:9:20"},"loopExpression":{"expression":{"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10361:3:20","subExpression":{"id":4665,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"10361:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4667,"nodeType":"ExpressionStatement","src":"10361:3:20"},"nodeType":"ForStatement","src":"10334:160:20"},{"expression":{"components":[{"id":4694,"name":"userCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4630,"src":"10508:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4695,"name":"userCardsQtty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4641,"src":"10525:13:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4696,"name":"userCardsOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"10540:15:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"id":4697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10507:49:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(uint8[] memory,uint8[] memory,bool[] memory)"}},"functionReturnParameters":4539,"id":4698,"nodeType":"Return","src":"10500:56:20"}]},"functionSelector":"0435dcaf","id":4700,"implemented":true,"kind":"function","modifiers":[],"name":"getCardsByUser","nameLocation":"9634:14:20","nodeType":"FunctionDefinition","parameters":{"id":4529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4528,"mutability":"mutable","name":"user","nameLocation":"9662:4:20","nodeType":"VariableDeclaration","scope":4700,"src":"9654:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4527,"name":"address","nodeType":"ElementaryTypeName","src":"9654:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9648:22:20"},"returnParameters":{"id":4539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4700,"src":"9692:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4530,"name":"uint8","nodeType":"ElementaryTypeName","src":"9692:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4531,"nodeType":"ArrayTypeName","src":"9692:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4700,"src":"9708:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4533,"name":"uint8","nodeType":"ElementaryTypeName","src":"9708:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4534,"nodeType":"ArrayTypeName","src":"9708:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4700,"src":"9724:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":4536,"name":"bool","nodeType":"ElementaryTypeName","src":"9724:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4537,"nodeType":"ArrayTypeName","src":"9724:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"9691:47:20"},"scope":5808,"src":"9625:936:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4721,"nodeType":"Block","src":"10715:95:20","statements":[{"expression":{"arguments":[{"expression":{"id":4714,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10761:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10765:6:20","memberName":"sender","nodeType":"MemberAccess","src":"10761:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4716,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4702,"src":"10773:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4717,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4705,"src":"10785:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4718,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4707,"src":"10795:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4712,"name":"LibPackVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"10728:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPackVerifier_$8881_$","typeString":"type(library LibPackVerifier)"}},"id":4713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10744:16:20","memberName":"verifyPackSigner","nodeType":"MemberAccess","referencedDeclaration":8880,"src":"10728:32:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (address,uint256,uint8[] memory,bytes memory) pure returns (address)"}},"id":4719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10728:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4711,"id":4720,"nodeType":"Return","src":"10721:84:20"}]},"functionSelector":"1306952c","id":4722,"implemented":true,"kind":"function","modifiers":[],"name":"verifyPackSigner","nameLocation":"10574:16:20","nodeType":"FunctionDefinition","parameters":{"id":4708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4702,"mutability":"mutable","name":"packNumber","nameLocation":"10604:10:20","nodeType":"VariableDeclaration","scope":4722,"src":"10596:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4701,"name":"uint256","nodeType":"ElementaryTypeName","src":"10596:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4705,"mutability":"mutable","name":"packData","nameLocation":"10635:8:20","nodeType":"VariableDeclaration","scope":4722,"src":"10620:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4703,"name":"uint8","nodeType":"ElementaryTypeName","src":"10620:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4704,"nodeType":"ArrayTypeName","src":"10620:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4707,"mutability":"mutable","name":"signature","nameLocation":"10664:9:20","nodeType":"VariableDeclaration","scope":4722,"src":"10649:24:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4706,"name":"bytes","nodeType":"ElementaryTypeName","src":"10649:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10590:87:20"},"returnParameters":{"id":4711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4710,"mutability":"mutable","name":"signer","nameLocation":"10707:6:20","nodeType":"VariableDeclaration","scope":4722,"src":"10699:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4709,"name":"address","nodeType":"ElementaryTypeName","src":"10699:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10698:16:20"},"scope":5808,"src":"10565:245:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4740,"nodeType":"Block","src":"10928:65:20","statements":[{"expression":{"arguments":[{"expression":{"id":4733,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10944:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10948:6:20","memberName":"sender","nodeType":"MemberAccess","src":"10944:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4735,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"10956:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4736,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"10968:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4737,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4729,"src":"10978:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4732,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4925,"src":"10934:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,uint8[] memory,bytes calldata)"}},"id":4738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10934:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4739,"nodeType":"ExpressionStatement","src":"10934:54:20"}]},"functionSelector":"267b841d","id":4741,"implemented":true,"kind":"function","modifiers":[],"name":"openPack","nameLocation":"10823:8:20","nodeType":"FunctionDefinition","parameters":{"id":4730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4724,"mutability":"mutable","name":"packNumber","nameLocation":"10845:10:20","nodeType":"VariableDeclaration","scope":4741,"src":"10837:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4723,"name":"uint256","nodeType":"ElementaryTypeName","src":"10837:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4727,"mutability":"mutable","name":"packData","nameLocation":"10876:8:20","nodeType":"VariableDeclaration","scope":4741,"src":"10861:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4725,"name":"uint8","nodeType":"ElementaryTypeName","src":"10861:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4726,"nodeType":"ArrayTypeName","src":"10861:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4729,"mutability":"mutable","name":"signature","nameLocation":"10905:9:20","nodeType":"VariableDeclaration","scope":4741,"src":"10890:24:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4728,"name":"bytes","nodeType":"ElementaryTypeName","src":"10890:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10831:87:20"},"returnParameters":{"id":4731,"nodeType":"ParameterList","parameters":[],"src":"10928:0:20"},"scope":5808,"src":"10814:179:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4792,"nodeType":"Block","src":"11153:230:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4756,"name":"packsQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"11162:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11179:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11162:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4759,"name":"packsQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"11184:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4760,"name":"s_maxPacksToOpenAtOnce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"11200:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11184:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11162:60:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4766,"nodeType":"IfStatement","src":"11159:92:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4763,"name":"WrongPacksQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3657,"src":"11231:18:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11231:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4765,"nodeType":"RevertStatement","src":"11224:27:20"}},{"body":{"id":4790,"nodeType":"Block","src":"11298:81:20","statements":[{"expression":{"arguments":[{"expression":{"id":4777,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11316:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11320:6:20","memberName":"sender","nodeType":"MemberAccess","src":"11316:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":4779,"name":"packsNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4746,"src":"11328:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":4781,"indexExpression":{"id":4780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11340:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11328:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":4782,"name":"packsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4750,"src":"11344:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"uint8[] memory[] memory"}},"id":4784,"indexExpression":{"id":4783,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11354:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11344:12:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"baseExpression":{"id":4785,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"11358:10:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":4787,"indexExpression":{"id":4786,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11369:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11358:13:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":4776,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4925,"src":"11306:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,uint8[] memory,bytes calldata)"}},"id":4788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11306:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4789,"nodeType":"ExpressionStatement","src":"11306:66:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11274:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4771,"name":"packsQuantity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"11278:13:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11274:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4791,"initializationExpression":{"assignments":[4768],"declarations":[{"constant":false,"id":4768,"mutability":"mutable","name":"i","nameLocation":"11271:1:20","nodeType":"VariableDeclaration","scope":4791,"src":"11263:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4767,"name":"uint256","nodeType":"ElementaryTypeName","src":"11263:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4769,"nodeType":"VariableDeclarationStatement","src":"11263:9:20"},"loopExpression":{"expression":{"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11293:3:20","subExpression":{"id":4773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4768,"src":"11293:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4775,"nodeType":"ExpressionStatement","src":"11293:3:20"},"nodeType":"ForStatement","src":"11258:121:20"}]},"functionSelector":"203335f6","id":4793,"implemented":true,"kind":"function","modifiers":[],"name":"openPacks","nameLocation":"11006:9:20","nodeType":"FunctionDefinition","parameters":{"id":4754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4743,"mutability":"mutable","name":"packsQuantity","nameLocation":"11027:13:20","nodeType":"VariableDeclaration","scope":4793,"src":"11021:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4742,"name":"uint8","nodeType":"ElementaryTypeName","src":"11021:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4746,"mutability":"mutable","name":"packsNumber","nameLocation":"11063:11:20","nodeType":"VariableDeclaration","scope":4793,"src":"11046:28:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4744,"name":"uint256","nodeType":"ElementaryTypeName","src":"11046:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ArrayTypeName","src":"11046:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4750,"mutability":"mutable","name":"packsData","nameLocation":"11097:9:20","nodeType":"VariableDeclaration","scope":4793,"src":"11080:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"uint8[][]"},"typeName":{"baseType":{"baseType":{"id":4747,"name":"uint8","nodeType":"ElementaryTypeName","src":"11080:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4748,"nodeType":"ArrayTypeName","src":"11080:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"id":4749,"nodeType":"ArrayTypeName","src":"11080:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint8_$dyn_storage_$dyn_storage_ptr","typeString":"uint8[][]"}},"visibility":"internal"},{"constant":false,"id":4753,"mutability":"mutable","name":"signatures","nameLocation":"11129:10:20","nodeType":"VariableDeclaration","scope":4793,"src":"11112:27:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4751,"name":"bytes","nodeType":"ElementaryTypeName","src":"11112:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4752,"nodeType":"ArrayTypeName","src":"11112:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11015:128:20"},"returnParameters":{"id":4755,"nodeType":"ParameterList","parameters":[],"src":"11153:0:20"},"scope":5808,"src":"10997:386:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":4924,"nodeType":"Block","src":"11519:1197:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4807,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"11560:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4805,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"11528:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11547:12:20","memberName":"getPackOwner","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"11528:31:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":4808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11528:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4809,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"11575:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11528:51:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4814,"nodeType":"IfStatement","src":"11525:76:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4811,"name":"NotYourPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"11588:11:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11588:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4813,"nodeType":"RevertStatement","src":"11581:20:20"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4815,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"11642:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11651:6:20","memberName":"length","nodeType":"MemberAccess","src":"11642:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3135","id":4817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:2:20","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"11642:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4822,"nodeType":"IfStatement","src":"11639:52:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4819,"name":"CardLimitExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3661,"src":"11672:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11672:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4821,"nodeType":"RevertStatement","src":"11665:26:20"}},{"condition":{"id":4823,"name":"s_requireOpenPackSignerValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3796,"src":"11702:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4845,"nodeType":"IfStatement","src":"11698:342:20","trueBody":{"id":4844,"nodeType":"Block","src":"11737:303:20","statements":[{"assignments":[4825],"declarations":[{"constant":false,"id":4825,"mutability":"mutable","name":"signer","nameLocation":"11834:6:20","nodeType":"VariableDeclaration","scope":4844,"src":"11826:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4824,"name":"address","nodeType":"ElementaryTypeName","src":"11826:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4834,"initialValue":{"arguments":[{"expression":{"id":4828,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11885:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11889:6:20","memberName":"sender","nodeType":"MemberAccess","src":"11885:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4830,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"11905:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4831,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"11925:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4832,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4802,"src":"11943:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4826,"name":"LibPackVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"11843:15:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPackVerifier_$8881_$","typeString":"type(library LibPackVerifier)"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11859:16:20","memberName":"verifyPackSigner","nodeType":"MemberAccess","referencedDeclaration":8880,"src":"11843:32:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$_t_uint256_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (address,uint256,uint8[] memory,bytes memory) pure returns (address)"}},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:117:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11826:134:20"},{"condition":{"id":4839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11978:28:20","subExpression":{"baseExpression":{"expression":{"id":4835,"name":"signersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"11979:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":4836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11991:7:20","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"11979:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":4838,"indexExpression":{"id":4837,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"11999:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11979:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4843,"nodeType":"IfStatement","src":"11975:58:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4840,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3653,"src":"12015:16:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12015:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4842,"nodeType":"RevertStatement","src":"12008:25:20"}}]}},{"expression":{"arguments":[{"id":4849,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"12074:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4850,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"12086:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4846,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"12046:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12065:8:20","memberName":"openPack","nodeType":"MemberAccess","referencedDeclaration":3685,"src":"12046:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":4851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12046:45:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4852,"nodeType":"ExpressionStatement","src":"12046:45:20"},{"expression":{"id":4859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4853,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"12129:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4854,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"12148:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4855,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"12162:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"36","id":4856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12176:1:20","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"12162:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12148:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12129:48:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4860,"nodeType":"ExpressionStatement","src":"12129:48:20"},{"body":{"id":4916,"nodeType":"Block","src":"12250:412:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4868,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12261:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4870,"indexExpression":{"id":4869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12270:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12261:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"313230","id":4871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12276:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"12261:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4894,"nodeType":"Block","src":"12364:86:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4883,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"12377:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4887,"indexExpression":{"baseExpression":{"id":4884,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12394:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4886,"indexExpression":{"id":4885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12403:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12394:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12377:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35303030","id":4888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12409:4:20","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5000"},"src":"12377:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4893,"nodeType":"IfStatement","src":"12374:67:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4890,"name":"InvalidCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"12422:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12422:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4892,"nodeType":"RevertStatement","src":"12415:26:20"}}]},"id":4895,"nodeType":"IfStatement","src":"12258:192:20","trueBody":{"id":4882,"nodeType":"Block","src":"12280:78:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4873,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"12293:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4875,"indexExpression":{"hexValue":"313230","id":4874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12310:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12293:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"33303030","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12317:4:20","typeDescriptions":{"typeIdentifier":"t_rational_3000_by_1","typeString":"int_const 3000"},"value":"3000"},"src":"12293:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4881,"nodeType":"IfStatement","src":"12290:59:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4878,"name":"InvalidCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"12330:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12330:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4880,"nodeType":"RevertStatement","src":"12323:26:20"}}]}},{"expression":{"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12457:31:20","subExpression":{"baseExpression":{"id":4896,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"12457:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4900,"indexExpression":{"baseExpression":{"id":4897,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12474:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4899,"indexExpression":{"id":4898,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12483:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12474:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12457:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4902,"nodeType":"ExpressionStatement","src":"12457:31:20"},{"expression":{"id":4910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12539:34:20","subExpression":{"baseExpression":{"baseExpression":{"id":4903,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"12539:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4908,"indexExpression":{"id":4904,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"12553:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12539:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4909,"indexExpression":{"baseExpression":{"id":4905,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12559:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4907,"indexExpression":{"id":4906,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12568:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12559:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12539:32:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4911,"nodeType":"ExpressionStatement","src":"12539:34:20"},{"id":4915,"nodeType":"UncheckedBlock","src":"12624:32:20","statements":[{"expression":{"id":4913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12644:3:20","subExpression":{"id":4912,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12644:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4914,"nodeType":"ExpressionStatement","src":"12644:3:20"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4862,"src":"12228:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4865,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12232:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12241:6:20","memberName":"length","nodeType":"MemberAccess","src":"12232:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12228:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4917,"initializationExpression":{"assignments":[4862],"declarations":[{"constant":false,"id":4862,"mutability":"mutable","name":"i","nameLocation":"12225:1:20","nodeType":"VariableDeclaration","scope":4917,"src":"12217:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4861,"name":"uint256","nodeType":"ElementaryTypeName","src":"12217:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4863,"nodeType":"VariableDeclarationStatement","src":"12217:9:20"},"nodeType":"ForStatement","src":"12212:450:20"},{"eventCall":{"arguments":[{"id":4919,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"12684:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4920,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"12690:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":4921,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"12700:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4918,"name":"PackOpened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"12673:10:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint8[] memory,uint256)"}},"id":4922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12673:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4923,"nodeType":"EmitStatement","src":"12668:43:20"}]},"id":4925,"implemented":true,"kind":"function","modifiers":[],"name":"_openPack","nameLocation":"11396:9:20","nodeType":"FunctionDefinition","parameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4795,"mutability":"mutable","name":"user","nameLocation":"11419:4:20","nodeType":"VariableDeclaration","scope":4925,"src":"11411:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4794,"name":"address","nodeType":"ElementaryTypeName","src":"11411:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4797,"mutability":"mutable","name":"packNumber","nameLocation":"11437:10:20","nodeType":"VariableDeclaration","scope":4925,"src":"11429:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4796,"name":"uint256","nodeType":"ElementaryTypeName","src":"11429:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4800,"mutability":"mutable","name":"packData","nameLocation":"11468:8:20","nodeType":"VariableDeclaration","scope":4925,"src":"11453:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":4798,"name":"uint8","nodeType":"ElementaryTypeName","src":"11453:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4799,"nodeType":"ArrayTypeName","src":"11453:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":4802,"mutability":"mutable","name":"signature","nameLocation":"11497:9:20","nodeType":"VariableDeclaration","scope":4925,"src":"11482:24:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4801,"name":"bytes","nodeType":"ElementaryTypeName","src":"11482:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11405:105:20"},"returnParameters":{"id":4804,"nodeType":"ParameterList","parameters":[],"src":"11519:0:20"},"scope":5808,"src":"11387:1329:20","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4998,"nodeType":"Block","src":"12913:367:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4944,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"12922:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4946,"indexExpression":{"id":4945,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"12936:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12922:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4948,"indexExpression":{"id":4947,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"12942:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12922:35:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12922:40:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":4951,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"12966:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4953,"indexExpression":{"id":4952,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"12980:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12966:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4955,"indexExpression":{"id":4954,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"12984:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12966:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13001:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12966:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12922:80:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4962,"nodeType":"IfStatement","src":"12919:120:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4959,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13011:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13011:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4961,"nodeType":"RevertStatement","src":"13004:35:20"}},{"expression":{"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13046:37:20","subExpression":{"baseExpression":{"baseExpression":{"id":4963,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13046:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4966,"indexExpression":{"id":4964,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"13060:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13046:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4967,"indexExpression":{"id":4965,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"13066:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13046:35:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4969,"nodeType":"ExpressionStatement","src":"13046:37:20"},{"expression":{"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13089:35:20","subExpression":{"baseExpression":{"baseExpression":{"id":4970,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13089:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4973,"indexExpression":{"id":4971,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"13103:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13089:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4974,"indexExpression":{"id":4972,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"13107:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13089:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4976,"nodeType":"ExpressionStatement","src":"13089:35:20"},{"expression":{"id":4982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13130:33:20","subExpression":{"baseExpression":{"baseExpression":{"id":4977,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13130:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4980,"indexExpression":{"id":4978,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"13144:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13130:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4981,"indexExpression":{"id":4979,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"13148:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13130:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4983,"nodeType":"ExpressionStatement","src":"13130:33:20"},{"expression":{"id":4989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13169:35:20","subExpression":{"baseExpression":{"baseExpression":{"id":4984,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13169:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":4987,"indexExpression":{"id":4985,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"13183:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13169:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":4988,"indexExpression":{"id":4986,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"13189:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13169:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4990,"nodeType":"ExpressionStatement","src":"13169:35:20"},{"eventCall":{"arguments":[{"id":4992,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"13236:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4993,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"13242:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4994,"name":"cardNumberFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4929,"src":"13246:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":4995,"name":"cardNumberTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"13262:12:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4991,"name":"OfferCardsExchanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"13216:19:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint8_$_t_uint8_$returns$__$","typeString":"function (address,address,uint8,uint8)"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13216:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4997,"nodeType":"EmitStatement","src":"13211:64:20"}]},"functionSelector":"ad1684fa","id":4999,"implemented":true,"kind":"function","modifiers":[{"id":4936,"kind":"modifierInvocation","modifierName":{"id":4935,"name":"onlyGammaOffersContract","nameLocations":["12845:23:20"],"nodeType":"IdentifierPath","referencedDeclaration":3947,"src":"12845:23:20"},"nodeType":"ModifierInvocation","src":"12845:23:20"},{"arguments":[{"id":4938,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4927,"src":"12886:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4939,"kind":"modifierInvocation","modifierName":{"id":4937,"name":"checkAddressZero","nameLocations":["12869:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"12869:16:20"},"nodeType":"ModifierInvocation","src":"12869:22:20"},{"arguments":[{"id":4941,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"12909:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4942,"kind":"modifierInvocation","modifierName":{"id":4940,"name":"checkAddressZero","nameLocations":["12892:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"12892:16:20"},"nodeType":"ModifierInvocation","src":"12892:20:20"}],"name":"exchangeCardsOffer","nameLocation":"12729:18:20","nodeType":"FunctionDefinition","parameters":{"id":4934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4927,"mutability":"mutable","name":"from","nameLocation":"12761:4:20","nodeType":"VariableDeclaration","scope":4999,"src":"12753:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4926,"name":"address","nodeType":"ElementaryTypeName","src":"12753:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4929,"mutability":"mutable","name":"cardNumberFrom","nameLocation":"12777:14:20","nodeType":"VariableDeclaration","scope":4999,"src":"12771:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4928,"name":"uint8","nodeType":"ElementaryTypeName","src":"12771:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4931,"mutability":"mutable","name":"to","nameLocation":"12805:2:20","nodeType":"VariableDeclaration","scope":4999,"src":"12797:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4930,"name":"address","nodeType":"ElementaryTypeName","src":"12797:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4933,"mutability":"mutable","name":"cardNumberTo","nameLocation":"12819:12:20","nodeType":"VariableDeclaration","scope":4999,"src":"12813:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4932,"name":"uint8","nodeType":"ElementaryTypeName","src":"12813:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"12747:88:20"},"returnParameters":{"id":4943,"nodeType":"ParameterList","parameters":[],"src":"12913:0:20"},"scope":5808,"src":"12720:560:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5082,"nodeType":"Block","src":"13366:815:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5009,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13375:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5012,"indexExpression":{"expression":{"id":5010,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13389:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13393:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13389:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13375:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5014,"indexExpression":{"id":5013,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"13401:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13375:37:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13375:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5020,"nodeType":"IfStatement","src":"13372:82:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5017,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13426:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13426:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5019,"nodeType":"RevertStatement","src":"13419:35:20"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5021,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"13463:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5022,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13469:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13473:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13469:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13463:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5028,"nodeType":"IfStatement","src":"13460:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5025,"name":"InvalidTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"13488:15:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13488:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5027,"nodeType":"RevertStatement","src":"13481:24:20"}},{"condition":{"id":5029,"name":"s_requireOfferValidationInTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"13516:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5059,"nodeType":"IfStatement","src":"13512:529:20","trueBody":{"id":5058,"nodeType":"Block","src":"13552:489:20","statements":[{"assignments":[5031],"declarations":[{"constant":false,"id":5031,"mutability":"mutable","name":"hasOffer","nameLocation":"13565:8:20","nodeType":"VariableDeclaration","scope":5058,"src":"13560:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5030,"name":"bool","nodeType":"ElementaryTypeName","src":"13560:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5038,"initialValue":{"arguments":[{"expression":{"id":5034,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13605:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13609:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13605:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5036,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"13617:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5032,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"13576:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13596:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"13576:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13576:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13560:68:20"},{"assignments":[5040],"declarations":[{"constant":false,"id":5040,"mutability":"mutable","name":"hasMoreThanOne","nameLocation":"13641:14:20","nodeType":"VariableDeclaration","scope":5058,"src":"13636:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5039,"name":"bool","nodeType":"ElementaryTypeName","src":"13636:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5049,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5041,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"13658:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5044,"indexExpression":{"expression":{"id":5042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13672:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13676:6:20","memberName":"sender","nodeType":"MemberAccess","src":"13672:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13658:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5046,"indexExpression":{"id":5045,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"13684:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13658:37:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13698:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13658:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13636:63:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13979:9:20","subExpression":{"id":5051,"name":"hasOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5031,"src":"13980:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5053,"name":"hasMoreThanOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5040,"src":"13992:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13979:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320636172642068617320616e206f666665722e","id":5055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14008:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""},"value":"This card has an offer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""}],"id":5050,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13971:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13971:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5057,"nodeType":"ExpressionStatement","src":"13971:63:20"}]}},{"expression":{"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"14047:39:20","subExpression":{"baseExpression":{"baseExpression":{"id":5060,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14047:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5064,"indexExpression":{"expression":{"id":5061,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14065:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14061:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14047:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5065,"indexExpression":{"id":5063,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"14073:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14047:37:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5067,"nodeType":"ExpressionStatement","src":"14047:39:20"},{"expression":{"id":5073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14092:31:20","subExpression":{"baseExpression":{"baseExpression":{"id":5068,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14092:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5071,"indexExpression":{"id":5069,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"14106:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14092:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5072,"indexExpression":{"id":5070,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"14110:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14092:29:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5074,"nodeType":"ExpressionStatement","src":"14092:31:20"},{"eventCall":{"arguments":[{"expression":{"id":5076,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14149:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14153:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14149:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5078,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"14161:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5079,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"14165:10:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":5075,"name":"CardTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3901,"src":"14134:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,address,uint8)"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14134:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5081,"nodeType":"EmitStatement","src":"14129:47:20"}]},"functionSelector":"2ca699e7","id":5083,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5006,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"13362:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5007,"kind":"modifierInvocation","modifierName":{"id":5005,"name":"checkAddressZero","nameLocations":["13345:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"13345:16:20"},"nodeType":"ModifierInvocation","src":"13345:20:20"}],"name":"transferCard","nameLocation":"13293:12:20","nodeType":"FunctionDefinition","parameters":{"id":5004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5001,"mutability":"mutable","name":"to","nameLocation":"13314:2:20","nodeType":"VariableDeclaration","scope":5083,"src":"13306:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5000,"name":"address","nodeType":"ElementaryTypeName","src":"13306:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5003,"mutability":"mutable","name":"cardNumber","nameLocation":"13324:10:20","nodeType":"VariableDeclaration","scope":5083,"src":"13318:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5002,"name":"uint8","nodeType":"ElementaryTypeName","src":"13318:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13305:30:20"},"returnParameters":{"id":5008,"nodeType":"ParameterList","parameters":[],"src":"13366:0:20"},"scope":5808,"src":"13284:897:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5189,"nodeType":"Block","src":"14278:928:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5094,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"14287:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":5095,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14293:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14297:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14293:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14287:16:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5101,"nodeType":"IfStatement","src":"14284:45:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5098,"name":"InvalidTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"14312:15:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14312:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5100,"nodeType":"RevertStatement","src":"14305:24:20"}},{"body":{"id":5180,"nodeType":"Block","src":"14381:766:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5112,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14392:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5115,"indexExpression":{"expression":{"id":5113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14406:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14410:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14406:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14392:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5119,"indexExpression":{"baseExpression":{"id":5116,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14418:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5118,"indexExpression":{"id":5117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14430:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14418:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14392:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14437:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14392:46:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5125,"nodeType":"IfStatement","src":"14389:86:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5122,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"14447:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14447:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5124,"nodeType":"RevertStatement","src":"14440:35:20"}},{"expression":{"id":5134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"14483:43:20","subExpression":{"baseExpression":{"baseExpression":{"id":5126,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14483:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5132,"indexExpression":{"expression":{"id":5127,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14497:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14501:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14497:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14483:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5133,"indexExpression":{"baseExpression":{"id":5129,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14509:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5131,"indexExpression":{"id":5130,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14521:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14509:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14483:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5135,"nodeType":"ExpressionStatement","src":"14483:43:20"},{"expression":{"id":5143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14534:35:20","subExpression":{"baseExpression":{"baseExpression":{"id":5136,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14534:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5141,"indexExpression":{"id":5137,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"14548:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14534:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5142,"indexExpression":{"baseExpression":{"id":5138,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14552:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5140,"indexExpression":{"id":5139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14564:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14552:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14534:33:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5144,"nodeType":"ExpressionStatement","src":"14534:35:20"},{"condition":{"id":5145,"name":"s_requireOfferValidationInTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3802,"src":"14582:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5179,"nodeType":"IfStatement","src":"14578:563:20","trueBody":{"id":5178,"nodeType":"Block","src":"14618:523:20","statements":[{"assignments":[5147],"declarations":[{"constant":false,"id":5147,"mutability":"mutable","name":"hasOffer","nameLocation":"14633:8:20","nodeType":"VariableDeclaration","scope":5178,"src":"14628:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5146,"name":"bool","nodeType":"ElementaryTypeName","src":"14628:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5156,"initialValue":{"arguments":[{"expression":{"id":5150,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14673:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14677:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14673:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5152,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14685:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5154,"indexExpression":{"id":5153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14697:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14685:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5148,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"14644:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14664:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"14644:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14644:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14628:72:20"},{"assignments":[5158],"declarations":[{"constant":false,"id":5158,"mutability":"mutable","name":"hasMoreThanOne","nameLocation":"14715:14:20","nodeType":"VariableDeclaration","scope":5178,"src":"14710:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5157,"name":"bool","nodeType":"ElementaryTypeName","src":"14710:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5169,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5159,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"14732:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5162,"indexExpression":{"expression":{"id":5160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14746:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14750:6:20","memberName":"sender","nodeType":"MemberAccess","src":"14746:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14732:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5166,"indexExpression":{"baseExpression":{"id":5163,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14758:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5165,"indexExpression":{"id":5164,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14770:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14758:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14732:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14776:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14732:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14710:67:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15077:9:20","subExpression":{"id":5171,"name":"hasOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"15078:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5173,"name":"hasMoreThanOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"15090:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15077:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320636172642068617320616e206f666665722e","id":5175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15106:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""},"value":"This card has an offer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""}],"id":5170,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15069:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15069:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5177,"nodeType":"ExpressionStatement","src":"15069:63:20"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14352:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5106,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"14356:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14368:6:20","memberName":"length","nodeType":"MemberAccess","src":"14356:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14352:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5181,"initializationExpression":{"assignments":[5103],"declarations":[{"constant":false,"id":5103,"mutability":"mutable","name":"i","nameLocation":"14349:1:20","nodeType":"VariableDeclaration","scope":5181,"src":"14341:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5102,"name":"uint256","nodeType":"ElementaryTypeName","src":"14341:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5104,"nodeType":"VariableDeclarationStatement","src":"14341:9:20"},"loopExpression":{"expression":{"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14376:3:20","subExpression":{"id":5109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5103,"src":"14376:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5111,"nodeType":"ExpressionStatement","src":"14376:3:20"},"nodeType":"ForStatement","src":"14336:811:20"},{"eventCall":{"arguments":[{"expression":{"id":5183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15173:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15177:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15173:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5185,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"15185:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5186,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"15189:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}],"id":5182,"name":"CardsTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"15157:15:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint8[] memory)"}},"id":5187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15157:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5188,"nodeType":"EmitStatement","src":"15152:49:20"}]},"functionSelector":"a1af8ad4","id":5190,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5091,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"14274:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":5092,"kind":"modifierInvocation","modifierName":{"id":5090,"name":"checkAddressZero","nameLocations":["14257:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":3977,"src":"14257:16:20"},"nodeType":"ModifierInvocation","src":"14257:20:20"}],"name":"transferCards","nameLocation":"14194:13:20","nodeType":"FunctionDefinition","parameters":{"id":5089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5085,"mutability":"mutable","name":"to","nameLocation":"14216:2:20","nodeType":"VariableDeclaration","scope":5190,"src":"14208:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5084,"name":"address","nodeType":"ElementaryTypeName","src":"14208:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5088,"mutability":"mutable","name":"cardNumbers","nameLocation":"14237:11:20","nodeType":"VariableDeclaration","scope":5190,"src":"14220:28:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5086,"name":"uint8","nodeType":"ElementaryTypeName","src":"14220:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5087,"nodeType":"ArrayTypeName","src":"14220:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"14207:42:20"},"returnParameters":{"id":5093,"nodeType":"ParameterList","parameters":[],"src":"14278:0:20"},"scope":5808,"src":"14185:1021:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5319,"nodeType":"Block","src":"15371:1120:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5195,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"15436:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5198,"indexExpression":{"expression":{"id":5196,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15450:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15454:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15450:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15436:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5200,"indexExpression":{"hexValue":"313230","id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15462:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15436:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15436:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5206,"nodeType":"IfStatement","src":"15433:75:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5203,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15480:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15480:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5205,"nodeType":"RevertStatement","src":"15473:35:20"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5207,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"15517:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5208,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"15535:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15517:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5213,"nodeType":"IfStatement","src":"15514:68:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5210,"name":"IncorrectPrizeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"15560:20:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15560:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5212,"nodeType":"RevertStatement","src":"15553:29:20"}},{"assignments":[5215],"declarations":[{"constant":false,"id":5215,"mutability":"mutable","name":"contractBalance","nameLocation":"15597:15:20","nodeType":"VariableDeclaration","scope":5319,"src":"15589:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5214,"name":"uint256","nodeType":"ElementaryTypeName","src":"15589:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5225,"initialValue":{"arguments":[{"arguments":[{"id":5222,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15651:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}],"id":5221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15643:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5220,"name":"address","nodeType":"ElementaryTypeName","src":"15643:7:20","typeDescriptions":{}}},"id":5223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15643:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":5217,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"15622:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5216,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"15615:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15615:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15633:9:20","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"15615:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15615:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15589:68:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5226,"name":"contractBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"15666:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5227,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"15684:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15666:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5232,"nodeType":"IfStatement","src":"15663:65:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5229,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"15709:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15709:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5231,"nodeType":"RevertStatement","src":"15702:26:20"}},{"assignments":[5234],"declarations":[{"constant":false,"id":5234,"mutability":"mutable","name":"unfinished","nameLocation":"15800:10:20","nodeType":"VariableDeclaration","scope":5319,"src":"15795:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5233,"name":"bool","nodeType":"ElementaryTypeName","src":"15795:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5235,"nodeType":"VariableDeclarationStatement","src":"15795:15:20"},{"body":{"id":5269,"nodeType":"Block","src":"15846:181:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5242,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"15858:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5245,"indexExpression":{"expression":{"id":5243,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15872:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15876:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15872:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15858:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5247,"indexExpression":{"id":5246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"15884:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15858:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15890:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15858:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5256,"nodeType":"IfStatement","src":"15854:90:20","trueBody":{"id":5255,"nodeType":"Block","src":"15893:51:20","statements":[{"expression":{"id":5252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5250,"name":"unfinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"15903:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15916:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15903:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5253,"nodeType":"ExpressionStatement","src":"15903:17:20"},{"id":5254,"nodeType":"Break","src":"15930:5:20"}]}},{"expression":{"id":5263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"15951:30:20","subExpression":{"baseExpression":{"baseExpression":{"id":5257,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"15951:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5261,"indexExpression":{"expression":{"id":5258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15965:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:6:20","memberName":"sender","nodeType":"MemberAccess","src":"15965:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15951:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5262,"indexExpression":{"id":5260,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"15977:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15951:28:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5264,"nodeType":"ExpressionStatement","src":"15951:30:20"},{"id":5268,"nodeType":"UncheckedBlock","src":"15989:32:20","statements":[{"expression":{"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16009:3:20","subExpression":{"id":5265,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"16009:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5267,"nodeType":"ExpressionStatement","src":"16009:3:20"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5239,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5237,"src":"15835:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313230","id":5240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15840:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"15835:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5270,"initializationExpression":{"assignments":[5237],"declarations":[{"constant":false,"id":5237,"mutability":"mutable","name":"i","nameLocation":"15832:1:20","nodeType":"VariableDeclaration","scope":5270,"src":"15826:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5236,"name":"uint8","nodeType":"ElementaryTypeName","src":"15826:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5238,"nodeType":"VariableDeclarationStatement","src":"15826:7:20"},"nodeType":"ForStatement","src":"15821:206:20"},{"condition":{"id":5271,"name":"unfinished","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"16035:10:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5275,"nodeType":"IfStatement","src":"16032:41:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5272,"name":"MustCompleteAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3669,"src":"16054:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5274,"nodeType":"RevertStatement","src":"16047:26:20"}},{"expression":{"arguments":[{"expression":{"id":5277,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16122:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16126:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16122:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5279,"name":"s_mainUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3790,"src":"16134:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"313230","id":5280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16145:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"hexValue":"32","id":5281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16150:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":5276,"name":"safeMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"16113:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,string memory,uint256,uint8)"}},"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16113:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5283,"nodeType":"ExpressionStatement","src":"16113:39:20"},{"expression":{"arguments":[{"expression":{"id":5288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16216:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16220:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16216:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5290,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"16228:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5285,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"16196:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5284,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"16189:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16189:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16207:8:20","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":361,"src":"16189:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16189:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5292,"nodeType":"ExpressionStatement","src":"16189:56:20"},{"expression":{"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5293,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"16251:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5294,"name":"s_mainAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"16270:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16251:35:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5296,"nodeType":"ExpressionStatement","src":"16251:35:20"},{"assignments":[5298],"declarations":[{"constant":false,"id":5298,"mutability":"mutable","name":"userOffersRemoved","nameLocation":"16298:17:20","nodeType":"VariableDeclaration","scope":5319,"src":"16293:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5297,"name":"bool","nodeType":"ElementaryTypeName","src":"16293:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5304,"initialValue":{"arguments":[{"expression":{"id":5301,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16357:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16361:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16357:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5299,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"16318:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16338:18:20","memberName":"removeOffersByUser","nodeType":"MemberAccess","referencedDeclaration":3710,"src":"16318:38:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":5303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16318:50:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16293:75:20"},{"condition":{"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16377:18:20","subExpression":{"id":5305,"name":"userOffersRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"16378:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5310,"nodeType":"IfStatement","src":"16374:54:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5307,"name":"CannotRemoveUserOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3671,"src":"16404:22:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16404:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5309,"nodeType":"RevertStatement","src":"16397:31:20"}},{"eventCall":{"arguments":[{"expression":{"id":5312,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16455:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16459:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16455:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":5314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16467:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":5311,"name":"AlbumCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3859,"src":"16440:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":5315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16440:29:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5316,"nodeType":"EmitStatement","src":"16435:34:20"},{"expression":{"hexValue":"74727565","id":5317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16482:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5194,"id":5318,"nodeType":"Return","src":"16475:11:20"}]},"functionSelector":"9038f414","id":5320,"implemented":true,"kind":"function","modifiers":[],"name":"finishAlbum","nameLocation":"15335:11:20","nodeType":"FunctionDefinition","parameters":{"id":5191,"nodeType":"ParameterList","parameters":[],"src":"15346:2:20"},"returnParameters":{"id":5194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5320,"src":"15365:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5192,"name":"bool","nodeType":"ElementaryTypeName","src":"15365:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15364:6:20"},"scope":5808,"src":"15326:1165:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5520,"nodeType":"Block","src":"16669:1508:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5326,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"16678:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5329,"indexExpression":{"expression":{"id":5327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16692:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16696:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16692:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16678:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5331,"indexExpression":{"hexValue":"313231","id":5330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16704:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16678:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16712:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16678:35:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5337,"nodeType":"IfStatement","src":"16675:75:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5334,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"16722:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5336,"nodeType":"RevertStatement","src":"16715:35:20"}},{"assignments":[5339],"declarations":[{"constant":false,"id":5339,"mutability":"mutable","name":"totalUserBurnedCards","nameLocation":"16764:20:20","nodeType":"VariableDeclaration","scope":5520,"src":"16756:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5338,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5347,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5340,"name":"s_burnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"16787:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5343,"indexExpression":{"expression":{"id":5341,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16801:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16805:6:20","memberName":"sender","nodeType":"MemberAccess","src":"16801:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16787:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":5344,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"16815:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:6:20","memberName":"length","nodeType":"MemberAccess","src":"16815:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16787:46:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16756:77:20"},{"assignments":[5349],"declarations":[{"constant":false,"id":5349,"mutability":"mutable","name":"mustPayPrize","nameLocation":"16844:12:20","nodeType":"VariableDeclaration","scope":5520,"src":"16839:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5348,"name":"bool","nodeType":"ElementaryTypeName","src":"16839:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5350,"nodeType":"VariableDeclarationStatement","src":"16839:17:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5351,"name":"totalUserBurnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5339,"src":"16867:20:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3630","id":5352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16891:2:20","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"16867:26:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5382,"nodeType":"IfStatement","src":"16863:263:20","trueBody":{"id":5381,"nodeType":"Block","src":"16895:231:20","statements":[{"assignments":[5355],"declarations":[{"constant":false,"id":5355,"mutability":"mutable","name":"contractBalance","nameLocation":"16911:15:20","nodeType":"VariableDeclaration","scope":5381,"src":"16903:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5354,"name":"uint256","nodeType":"ElementaryTypeName","src":"16903:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5365,"initialValue":{"arguments":[{"arguments":[{"id":5362,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16965:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}],"id":5361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16957:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5360,"name":"address","nodeType":"ElementaryTypeName","src":"16957:7:20","typeDescriptions":{}}},"id":5363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16957:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":5357,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"16936:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5356,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"16929:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16929:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16947:9:20","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"16929:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16929:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16903:68:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5366,"name":"contractBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5355,"src":"16982:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5367,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"17000:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16982:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5369,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"17025:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5370,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"17043:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17025:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16982:82:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5376,"nodeType":"IfStatement","src":"16979:113:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5373,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"17073:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17073:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5375,"nodeType":"RevertStatement","src":"17066:26:20"}},{"expression":{"id":5379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5377,"name":"mustPayPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17100:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17115:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17100:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5380,"nodeType":"ExpressionStatement","src":"17100:19:20"}]}},{"assignments":[5384],"declarations":[{"constant":false,"id":5384,"mutability":"mutable","name":"userHasOffers","nameLocation":"17137:13:20","nodeType":"VariableDeclaration","scope":5520,"src":"17132:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5383,"name":"bool","nodeType":"ElementaryTypeName","src":"17132:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5393,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":5387,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17197:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17201:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17197:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5385,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"17154:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17174:22:20","memberName":"getOffersByUserCounter","nodeType":"MemberAccess","referencedDeclaration":3717,"src":"17154:42:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17154:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17211:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17154:58:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":5392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17153:60:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17132:81:20"},{"assignments":[5395],"declarations":[{"constant":false,"id":5395,"mutability":"mutable","name":"cardNumbersLength","nameLocation":"17227:17:20","nodeType":"VariableDeclaration","scope":5520,"src":"17219:25:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5394,"name":"uint256","nodeType":"ElementaryTypeName","src":"17219:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5398,"initialValue":{"expression":{"id":5396,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17247:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17259:6:20","memberName":"length","nodeType":"MemberAccess","src":"17247:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17219:46:20"},{"body":{"id":5460,"nodeType":"Block","src":"17311:396:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5405,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17322:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5408,"indexExpression":{"expression":{"id":5406,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17336:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17340:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17336:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17322:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5412,"indexExpression":{"baseExpression":{"id":5409,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17348:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5411,"indexExpression":{"id":5410,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17360:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17348:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17322:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17367:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17322:46:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5418,"nodeType":"IfStatement","src":"17319:86:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5415,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"17377:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17377:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5417,"nodeType":"RevertStatement","src":"17370:35:20"}},{"condition":{"id":5419,"name":"userHasOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"17417:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5445,"nodeType":"IfStatement","src":"17413:198:20","trueBody":{"id":5444,"nodeType":"Block","src":"17432:179:20","statements":[{"condition":{"arguments":[{"expression":{"id":5422,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17475:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17479:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17475:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":5424,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17487:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5426,"indexExpression":{"id":5425,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17499:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17487:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5420,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"17446:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17466:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"17446:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5443,"nodeType":"IfStatement","src":"17442:161:20","trueBody":{"id":5442,"nodeType":"Block","src":"17504:99:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5428,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17519:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5431,"indexExpression":{"expression":{"id":5429,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17533:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17537:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17533:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17519:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5435,"indexExpression":{"baseExpression":{"id":5432,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17545:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5434,"indexExpression":{"id":5433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17557:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17545:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17519:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32","id":5436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17519:45:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5441,"nodeType":"IfStatement","src":"17516:76:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5438,"name":"InsufficientCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3667,"src":"17573:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17573:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5440,"nodeType":"RevertStatement","src":"17566:26:20"}}]}}]}},{"expression":{"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"17618:43:20","subExpression":{"baseExpression":{"baseExpression":{"id":5446,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17618:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5452,"indexExpression":{"expression":{"id":5447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17632:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17636:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17632:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17618:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5453,"indexExpression":{"baseExpression":{"id":5449,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17644:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}},"id":5451,"indexExpression":{"id":5450,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17656:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17644:14:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17618:41:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5455,"nodeType":"ExpressionStatement","src":"17618:43:20"},{"id":5459,"nodeType":"UncheckedBlock","src":"17669:32:20","statements":[{"expression":{"id":5457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17689:3:20","subExpression":{"id":5456,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17689:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5458,"nodeType":"ExpressionStatement","src":"17689:3:20"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5400,"src":"17287:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5403,"name":"cardNumbersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"17291:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17287:21:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5461,"initializationExpression":{"assignments":[5400],"declarations":[{"constant":false,"id":5400,"mutability":"mutable","name":"i","nameLocation":"17284:1:20","nodeType":"VariableDeclaration","scope":5461,"src":"17276:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5399,"name":"uint256","nodeType":"ElementaryTypeName","src":"17276:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5401,"nodeType":"VariableDeclarationStatement","src":"17276:9:20"},"nodeType":"ForStatement","src":"17271:436:20"},{"expression":{"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5462,"name":"s_burnedCards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3826,"src":"17713:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5465,"indexExpression":{"expression":{"id":5463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17727:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17731:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17727:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17713:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5466,"name":"cardNumbersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"17742:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17713:46:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5468,"nodeType":"ExpressionStatement","src":"17713:46:20"},{"eventCall":{"arguments":[{"expression":{"id":5470,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17782:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17786:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17782:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5472,"name":"cardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"17794:11:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[] calldata"}],"id":5469,"name":"CardsBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3917,"src":"17770:11:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint8[] memory)"}},"id":5473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17770:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5474,"nodeType":"EmitStatement","src":"17765:41:20"},{"condition":{"id":5475,"name":"mustPayPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17817:12:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5519,"nodeType":"IfStatement","src":"17813:360:20","trueBody":{"id":5518,"nodeType":"Block","src":"17831:342:20","statements":[{"expression":{"id":5482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"17839:32:20","subExpression":{"baseExpression":{"baseExpression":{"id":5476,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"17839:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5480,"indexExpression":{"expression":{"id":5477,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17853:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17857:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17853:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17839:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5481,"indexExpression":{"hexValue":"313231","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17865:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17839:30:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5483,"nodeType":"ExpressionStatement","src":"17839:32:20"},{"expression":{"arguments":[{"expression":{"id":5485,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17888:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17892:6:20","memberName":"sender","nodeType":"MemberAccess","src":"17888:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5487,"name":"s_secondaryUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3792,"src":"17900:14:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"313231","id":5488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17916:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},{"hexValue":"32","id":5489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17921:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":5484,"name":"safeMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"17879:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,string memory,uint256,uint8)"}},"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17879:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5491,"nodeType":"ExpressionStatement","src":"17879:44:20"},{"expression":{"id":5494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5492,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"17959:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5493,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"17978:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17959:40:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5495,"nodeType":"ExpressionStatement","src":"17959:40:20"},{"expression":{"arguments":[{"expression":{"id":5500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18034:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18038:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18034:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5502,"name":"s_secondaryAlbumPrize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"18046:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5497,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"18014:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5496,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"18007:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18007:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18025:8:20","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":361,"src":"18007:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18007:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5504,"nodeType":"ExpressionStatement","src":"18007:61:20"},{"expression":{"arguments":[{"expression":{"id":5508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18113:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18117:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18113:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5505,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3760,"src":"18077:20:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$3740","typeString":"contract IgammaTicketsContract"}},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18098:14:20","memberName":"generateTicket","nodeType":"MemberAccess","referencedDeclaration":3739,"src":"18077:35:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18077:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5511,"nodeType":"ExpressionStatement","src":"18077:47:20"},{"eventCall":{"arguments":[{"expression":{"id":5513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18152:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18156:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18152:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"32","id":5515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18164:1:20","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":5512,"name":"AlbumCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3859,"src":"18137:14:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":5516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18137:29:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5517,"nodeType":"EmitStatement","src":"18132:34:20"}]}}]},"functionSelector":"20965a5f","id":5521,"implemented":true,"kind":"function","modifiers":[],"name":"burnCards","nameLocation":"16622:9:20","nodeType":"FunctionDefinition","parameters":{"id":5324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"cardNumbers","nameLocation":"16649:11:20","nodeType":"VariableDeclaration","scope":5521,"src":"16632:28:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_calldata_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5321,"name":"uint8","nodeType":"ElementaryTypeName","src":"16632:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5322,"nodeType":"ArrayTypeName","src":"16632:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"16631:30:20"},"returnParameters":{"id":5325,"nodeType":"ParameterList","parameters":[],"src":"16669:0:20"},"scope":5808,"src":"16613:1564:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5612,"nodeType":"Block","src":"18221:838:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5526,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"18230:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5529,"indexExpression":{"expression":{"id":5527,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18244:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18248:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18244:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18230:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5531,"indexExpression":{"id":5530,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18256:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18230:34:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18268:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18230:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5537,"nodeType":"IfStatement","src":"18227:79:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5534,"name":"UserDoesNotHaveCardOrAlbum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"18278:26:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18278:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5536,"nodeType":"RevertStatement","src":"18271:35:20"}},{"condition":{"id":5538,"name":"s_requireOfferValidationInMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"18317:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5568,"nodeType":"IfStatement","src":"18313:519:20","trueBody":{"id":5567,"nodeType":"Block","src":"18349:483:20","statements":[{"assignments":[5540],"declarations":[{"constant":false,"id":5540,"mutability":"mutable","name":"hasOffer","nameLocation":"18362:8:20","nodeType":"VariableDeclaration","scope":5567,"src":"18357:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5539,"name":"bool","nodeType":"ElementaryTypeName","src":"18357:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5547,"initialValue":{"arguments":[{"expression":{"id":5543,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18402:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18406:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18402:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5545,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18414:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5541,"name":"gammaOffersContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3757,"src":"18373:19:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaOffersContract_$3734","typeString":"contract IgammaOffersContract"}},"id":5542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18393:8:20","memberName":"hasOffer","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"18373:28:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) view external returns (bool)"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18373:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18357:65:20"},{"assignments":[5549],"declarations":[{"constant":false,"id":5549,"mutability":"mutable","name":"hasMoreThanOne","nameLocation":"18435:14:20","nodeType":"VariableDeclaration","scope":5567,"src":"18430:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5548,"name":"bool","nodeType":"ElementaryTypeName","src":"18430:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5558,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5550,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"18452:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5553,"indexExpression":{"expression":{"id":5551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18466:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18466:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18452:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5555,"indexExpression":{"id":5554,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18478:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18452:34:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":5556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18489:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18452:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18430:60:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18770:9:20","subExpression":{"id":5560,"name":"hasOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"18771:8:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":5562,"name":"hasMoreThanOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5549,"src":"18783:14:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18770:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320636172642068617320616e206f666665722e","id":5564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18799:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""},"value":"This card has an offer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232","typeString":"literal_string \"This card has an offer.\""}],"id":5559,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18762:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18762:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5566,"nodeType":"ExpressionStatement","src":"18762:63:20"}]}},{"expression":{"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"18838:36:20","subExpression":{"baseExpression":{"baseExpression":{"id":5569,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"18838:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5573,"indexExpression":{"expression":{"id":5570,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18852:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18856:6:20","memberName":"sender","nodeType":"MemberAccess","src":"18852:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18838:25:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5574,"indexExpression":{"id":5572,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18864:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18838:34:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5576,"nodeType":"ExpressionStatement","src":"18838:36:20"},{"assignments":[5578],"declarations":[{"constant":false,"id":5578,"mutability":"mutable","name":"uri","nameLocation":"18895:3:20","nodeType":"VariableDeclaration","scope":5612,"src":"18881:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5577,"name":"string","nodeType":"ElementaryTypeName","src":"18881:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":5603,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":5585,"name":"s_baseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"18938:9:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":5584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18932:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5583,"name":"bytes","nodeType":"ElementaryTypeName","src":"18932:5:20","typeDescriptions":{}}},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18932:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},{"arguments":[{"hexValue":"2f","id":5589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18956:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"id":5588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18950:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5587,"name":"bytes","nodeType":"ElementaryTypeName","src":"18950:5:20","typeDescriptions":{}}},"id":5590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18950:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5593,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"18968:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18976:8:20","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8961,"src":"18968:16:20","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":5595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18968:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18962:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5591,"name":"bytes","nodeType":"ElementaryTypeName","src":"18962:5:20","typeDescriptions":{}}},"id":5596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18962:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"2e6a736f6e","id":5599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18995:7:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"id":5598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18989:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5597,"name":"bytes","nodeType":"ElementaryTypeName","src":"18989:5:20","typeDescriptions":{}}},"id":5600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18989:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"},{"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":5581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18915:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18919:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"18915:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18915:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18901:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5579,"name":"string","nodeType":"ElementaryTypeName","src":"18901:6:20","typeDescriptions":{}}},"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18901:109:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"18881:129:20"},{"expression":{"arguments":[{"expression":{"id":5605,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19026:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19030:6:20","memberName":"sender","nodeType":"MemberAccess","src":"19026:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5607,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5578,"src":"19038:3:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5608,"name":"cardNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"19043:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"31","id":5609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19052:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":5604,"name":"safeMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"19017:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,string memory,uint256,uint8)"}},"id":5610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19017:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5611,"nodeType":"ExpressionStatement","src":"19017:37:20"}]},"functionSelector":"bf400a6a","id":5613,"implemented":true,"kind":"function","modifiers":[],"name":"mintCard","nameLocation":"18190:8:20","nodeType":"FunctionDefinition","parameters":{"id":5524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5523,"mutability":"mutable","name":"cardNum","nameLocation":"18205:7:20","nodeType":"VariableDeclaration","scope":5613,"src":"18199:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5522,"name":"uint8","nodeType":"ElementaryTypeName","src":"18199:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18198:15:20"},"returnParameters":{"id":5525,"nodeType":"ParameterList","parameters":[],"src":"18221:0:20"},"scope":5808,"src":"18181:878:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5663,"nodeType":"Block","src":"19154:250:20","statements":[{"assignments":[5625],"declarations":[{"constant":false,"id":5625,"mutability":"mutable","name":"tokenId","nameLocation":"19168:7:20","nodeType":"VariableDeclaration","scope":5663,"src":"19160:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5624,"name":"uint256","nodeType":"ElementaryTypeName","src":"19160:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5627,"initialValue":{"id":5626,"name":"s_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"19178:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19160:34:20"},{"expression":{"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5628,"name":"s_cards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"19200:7:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card storage ref)"}},"id":5630,"indexExpression":{"id":5629,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19208:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19200:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage","typeString":"struct NofGammaCardsV5.Card storage ref"}},"id":5631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19217:7:20","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":3804,"src":"19200:24:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5632,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19227:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19200:34:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5634,"nodeType":"ExpressionStatement","src":"19200:34:20"},{"expression":{"id":5640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5635,"name":"s_cards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"19240:7:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card storage ref)"}},"id":5637,"indexExpression":{"id":5636,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19248:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19240:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage","typeString":"struct NofGammaCardsV5.Card storage ref"}},"id":5638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19257:6:20","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":3806,"src":"19240:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5639,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19266:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19240:33:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5641,"nodeType":"ExpressionStatement","src":"19240:33:20"},{"expression":{"id":5647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5642,"name":"s_cards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"19279:7:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Card_$3813_storage_$","typeString":"mapping(uint256 => struct NofGammaCardsV5.Card storage ref)"}},"id":5644,"indexExpression":{"id":5643,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19287:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19279:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_Card_$3813_storage","typeString":"struct NofGammaCardsV5.Card storage ref"}},"id":5645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19296:5:20","memberName":"class","nodeType":"MemberAccess","referencedDeclaration":3810,"src":"19279:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5646,"name":"_class","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5621,"src":"19304:6:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"19279:31:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5648,"nodeType":"ExpressionStatement","src":"19279:31:20"},{"expression":{"arguments":[{"id":5650,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5615,"src":"19326:3:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5651,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19331:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5649,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1025,1051],"referencedDeclaration":1025,"src":"19316:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19316:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5653,"nodeType":"ExpressionStatement","src":"19316:23:20"},{"expression":{"arguments":[{"id":5655,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"19358:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5656,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5617,"src":"19367:4:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5654,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"19345:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":5657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19345:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5658,"nodeType":"ExpressionStatement","src":"19345:27:20"},{"expression":{"id":5661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5659,"name":"s_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"19378:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19398:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19378:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5662,"nodeType":"ExpressionStatement","src":"19378:21:20"}]},"id":5664,"implemented":true,"kind":"function","modifiers":[],"name":"safeMint","nameLocation":"19072:8:20","nodeType":"FunctionDefinition","parameters":{"id":5622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5615,"mutability":"mutable","name":"_to","nameLocation":"19089:3:20","nodeType":"VariableDeclaration","scope":5664,"src":"19081:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5614,"name":"address","nodeType":"ElementaryTypeName","src":"19081:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5617,"mutability":"mutable","name":"_uri","nameLocation":"19108:4:20","nodeType":"VariableDeclaration","scope":5664,"src":"19094:18:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5616,"name":"string","nodeType":"ElementaryTypeName","src":"19094:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5619,"mutability":"mutable","name":"_number","nameLocation":"19122:7:20","nodeType":"VariableDeclaration","scope":5664,"src":"19114:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5618,"name":"uint256","nodeType":"ElementaryTypeName","src":"19114:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5621,"mutability":"mutable","name":"_class","nameLocation":"19137:6:20","nodeType":"VariableDeclaration","scope":5664,"src":"19131:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5620,"name":"uint8","nodeType":"ElementaryTypeName","src":"19131:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"19080:64:20"},"returnParameters":{"id":5623,"nodeType":"ParameterList","parameters":[],"src":"19154:0:20"},"scope":5808,"src":"19063:341:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5702,"nodeType":"Block","src":"19510:208:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":5674,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19537:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaCardsV5_$5808","typeString":"contract NofGammaCardsV5"}],"id":5673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19529:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5672,"name":"address","nodeType":"ElementaryTypeName","src":"19529:7:20","typeDescriptions":{}}},"id":5675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19529:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5671,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":523,"src":"19519:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":5676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19519:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5677,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19546:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19519:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5682,"nodeType":"IfStatement","src":"19516:64:20","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5679,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"19561:17:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5681,"nodeType":"RevertStatement","src":"19554:26:20"}},{"expression":{"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5683,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"19586:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19605:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19586:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5686,"nodeType":"ExpressionStatement","src":"19586:25:20"},{"expression":{"arguments":[{"expression":{"id":5691,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19644:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19648:6:20","memberName":"sender","nodeType":"MemberAccess","src":"19644:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5693,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19656:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5688,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"19624:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5687,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"19617:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19617:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":5690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19635:8:20","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":361,"src":"19617:26:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":5694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19617:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5695,"nodeType":"ExpressionStatement","src":"19617:46:20"},{"eventCall":{"arguments":[{"expression":{"id":5697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19694:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19698:6:20","memberName":"sender","nodeType":"MemberAccess","src":"19694:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5699,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"19706:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5696,"name":"EmergencyWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3873,"src":"19674:19:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19674:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5701,"nodeType":"EmitStatement","src":"19669:44:20"}]},"functionSelector":"5312ea8e","id":5703,"implemented":true,"kind":"function","modifiers":[{"id":5669,"kind":"modifierInvocation","modifierName":{"id":5668,"name":"onlyOwners","nameLocations":["19499:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"19499:10:20"},"nodeType":"ModifierInvocation","src":"19499:10:20"}],"name":"emergencyWithdraw","nameLocation":"19458:17:20","nodeType":"FunctionDefinition","parameters":{"id":5667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5666,"mutability":"mutable","name":"amount","nameLocation":"19484:6:20","nodeType":"VariableDeclaration","scope":5703,"src":"19476:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5665,"name":"uint256","nodeType":"ElementaryTypeName","src":"19476:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19475:16:20"},"returnParameters":{"id":5670,"nodeType":"ParameterList","parameters":[],"src":"19510:0:20"},"scope":5808,"src":"19449:269:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5728,"nodeType":"Block","src":"19833:129:20","statements":[{"body":{"id":5726,"nodeType":"Block","src":"19866:92:20","statements":[{"expression":{"id":5724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19925:24:20","subExpression":{"baseExpression":{"baseExpression":{"id":5719,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"19925:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5722,"indexExpression":{"id":5720,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"19939:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19925:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5723,"indexExpression":{"id":5721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"19945:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19925:22:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5725,"nodeType":"ExpressionStatement","src":"19925:24:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"19854:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313231","id":5714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19857:3:20","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"19854:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5727,"initializationExpression":{"assignments":[5711],"declarations":[{"constant":false,"id":5711,"mutability":"mutable","name":"i","nameLocation":"19851:1:20","nodeType":"VariableDeclaration","scope":5727,"src":"19845:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5710,"name":"uint8","nodeType":"ElementaryTypeName","src":"19845:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5712,"nodeType":"VariableDeclarationStatement","src":"19845:7:20"},"loopExpression":{"expression":{"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19862:3:20","subExpression":{"id":5716,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"19862:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5718,"nodeType":"ExpressionStatement","src":"19862:3:20"},"nodeType":"ForStatement","src":"19841:117:20"}]},"functionSelector":"a419811d","id":5729,"implemented":true,"kind":"function","modifiers":[{"id":5708,"kind":"modifierInvocation","modifierName":{"id":5707,"name":"onlyOwners","nameLocations":["19822:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"19822:10:20"},"nodeType":"ModifierInvocation","src":"19822:10:20"}],"name":"testAddCards","nameLocation":"19788:12:20","nodeType":"FunctionDefinition","parameters":{"id":5706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5705,"mutability":"mutable","name":"user","nameLocation":"19809:4:20","nodeType":"VariableDeclaration","scope":5729,"src":"19801:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5704,"name":"address","nodeType":"ElementaryTypeName","src":"19801:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19800:14:20"},"returnParameters":{"id":5709,"nodeType":"ParameterList","parameters":[],"src":"19833:0:20"},"scope":5808,"src":"19779:183:20","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":5806,"nodeType":"Block","src":"20067:472:20","statements":[{"expression":{"arguments":[{"id":5744,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5733,"src":"20105:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5745,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"20117:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5741,"name":"gammaPacksContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"20077:18:20","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaPacksContract_$3694","typeString":"contract IgammaPacksContract"}},"id":5743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20096:8:20","memberName":"openPack","nodeType":"MemberAccess","referencedDeclaration":3685,"src":"20077:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20077:45:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5747,"nodeType":"ExpressionStatement","src":"20077:45:20"},{"expression":{"id":5754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5748,"name":"s_prizesBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"20132:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5749,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"20151:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5750,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3779,"src":"20165:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"36","id":5751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20179:1:20","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"20165:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20151:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20132:48:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5755,"nodeType":"ExpressionStatement","src":"20132:48:20"},{"body":{"id":5804,"nodeType":"Block","src":"20229:304:20","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5767,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20251:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5769,"indexExpression":{"id":5768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20260:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20251:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"313230","id":5770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20266:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"20251:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5777,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"20303:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5781,"indexExpression":{"baseExpression":{"id":5778,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20320:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5780,"indexExpression":{"id":5779,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20329:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20320:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20303:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"35303031","id":5782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20335:4:20","typeDescriptions":{"typeIdentifier":"t_rational_5001_by_1","typeString":"int_const 5001"},"value":"5001"},"src":"20303:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"20251:88:20","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5772,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"20272:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5774,"indexExpression":{"hexValue":"313230","id":5773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20289:3:20","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20272:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33303031","id":5775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20296:4:20","typeDescriptions":{"typeIdentifier":"t_rational_3001_by_1","typeString":"int_const 3001"},"value":"3001"},"src":"20272:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642063617264496e76656e746f727920706f736974696f6e","id":5785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20358:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8","typeString":"literal_string \"invalid cardInventory position\""},"value":"invalid cardInventory position"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8","typeString":"literal_string \"invalid cardInventory position\""}],"id":5766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20243:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20243:148:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5787,"nodeType":"ExpressionStatement","src":"20243:148:20"},{"expression":{"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20405:31:20","subExpression":{"baseExpression":{"id":5788,"name":"s_cardsInventory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3822,"src":"20405:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5792,"indexExpression":{"baseExpression":{"id":5789,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20422:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5791,"indexExpression":{"id":5790,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20431:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20422:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20405:29:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5794,"nodeType":"ExpressionStatement","src":"20405:31:20"},{"expression":{"id":5802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20469:34:20","subExpression":{"baseExpression":{"baseExpression":{"id":5795,"name":"s_cardsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"20469:13:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint8_$_t_uint8_$_$","typeString":"mapping(address => mapping(uint8 => uint8))"}},"id":5800,"indexExpression":{"id":5796,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5731,"src":"20483:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20469:19:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint8_$","typeString":"mapping(uint8 => uint8)"}},"id":5801,"indexExpression":{"baseExpression":{"id":5797,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20489:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5799,"indexExpression":{"id":5798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20498:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20489:11:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20469:32:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5803,"nodeType":"ExpressionStatement","src":"20469:34:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20206:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5760,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5736,"src":"20208:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":5761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20217:6:20","memberName":"length","nodeType":"MemberAccess","src":"20208:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20206:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5805,"initializationExpression":{"assignments":[5757],"declarations":[{"constant":false,"id":5757,"mutability":"mutable","name":"i","nameLocation":"20203:1:20","nodeType":"VariableDeclaration","scope":5805,"src":"20195:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5756,"name":"uint256","nodeType":"ElementaryTypeName","src":"20195:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5758,"nodeType":"VariableDeclarationStatement","src":"20195:9:20"},"loopExpression":{"expression":{"id":5764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20225:3:20","subExpression":{"id":5763,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"20225:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5765,"nodeType":"ExpressionStatement","src":"20225:3:20"},"nodeType":"ForStatement","src":"20191:342:20"}]},"functionSelector":"30f5cc58","id":5807,"implemented":true,"kind":"function","modifiers":[{"id":5739,"kind":"modifierInvocation","modifierName":{"id":5738,"name":"onlyOwners","nameLocations":["20056:10:20"],"nodeType":"IdentifierPath","referencedDeclaration":3961,"src":"20056:10:20"},"nodeType":"ModifierInvocation","src":"20056:10:20"}],"name":"testOpenPack","nameLocation":"19975:12:20","nodeType":"FunctionDefinition","parameters":{"id":5737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5731,"mutability":"mutable","name":"user","nameLocation":"19996:4:20","nodeType":"VariableDeclaration","scope":5807,"src":"19988:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5730,"name":"address","nodeType":"ElementaryTypeName","src":"19988:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5733,"mutability":"mutable","name":"packNumber","nameLocation":"20010:10:20","nodeType":"VariableDeclaration","scope":5807,"src":"20002:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5732,"name":"uint256","nodeType":"ElementaryTypeName","src":"20002:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5736,"mutability":"mutable","name":"packData","nameLocation":"20037:8:20","nodeType":"VariableDeclaration","scope":5807,"src":"20022:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5734,"name":"uint8","nodeType":"ElementaryTypeName","src":"20022:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5735,"nodeType":"ArrayTypeName","src":"20022:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"19987:59:20"},"returnParameters":{"id":5740,"nodeType":"ParameterList","parameters":[],"src":"20067:0:20"},"scope":5808,"src":"19966:573:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5809,"src":"1668:18927:20","usedErrors":[13,18,227,232,241,246,251,258,263,268,3641,3643,3645,3647,3649,3651,3653,3655,3657,3659,3661,3663,3665,3667,3669,3671],"usedEvents":[24,167,174,1419,1428,1437,3836,3840,3844,3853,3859,3867,3873,3877,3883,3893,3901,3910,3917]}],"src":"32:20564:20"},"id":20},"contracts/gamma/GammaCardsNFT.v1.sol":{"ast":{"absolutePath":"contracts/gamma/GammaCardsNFT.v1.sol","exportedSymbols":{"ERC721":[1403],"ERC721Burnable":[1567],"ERC721URIStorage":[1693],"NofGammaCardsNFTV1":[5877]},"id":5878,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5810,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:21"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":5812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5878,"sourceUnit":1404,"src":"58:71:21","symbolAliases":[{"foreign":{"id":5811,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"66:6:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","id":5814,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5878,"sourceUnit":1694,"src":"130:102:21","symbolAliases":[{"foreign":{"id":5813,"name":"ERC721URIStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"138:16:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol","id":5816,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5878,"sourceUnit":1568,"src":"233:98:21","symbolAliases":[{"foreign":{"id":5815,"name":"ERC721Burnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1567,"src":"241:14:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":5817,"name":"ERC721","nameLocations":["364:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"364:6:21"},"id":5818,"nodeType":"InheritanceSpecifier","src":"364:6:21"},{"baseName":{"id":5819,"name":"ERC721URIStorage","nameLocations":["372:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":1693,"src":"372:16:21"},"id":5820,"nodeType":"InheritanceSpecifier","src":"372:16:21"},{"baseName":{"id":5821,"name":"ERC721Burnable","nameLocations":["390:14:21"],"nodeType":"IdentifierPath","referencedDeclaration":1567,"src":"390:14:21"},"id":5822,"nodeType":"InheritanceSpecifier","src":"390:14:21"}],"canonicalName":"NofGammaCardsNFTV1","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5877,"linearizedBaseContracts":[5877,1567,1693,1403,269,1721,175,1520,2452,2464,1751],"name":"NofGammaCardsNFTV1","nameLocation":"342:18:21","nodeType":"ContractDefinition","nodes":[{"body":{"id":5829,"nodeType":"Block","src":"457:2:21","statements":[]},"id":5830,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"47616d6d614361726473","id":5825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"433:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_08e769a9d293abdacc40b084f84d4380cbaaf73461944eb3f34daf9fed6c07e7","typeString":"literal_string \"GammaCards\""},"value":"GammaCards"},{"hexValue":"4e4f465f4743","id":5826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"447:8:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7f918eba56aee1e5ed39fb369bdef1bfd5ed12a0360c4730fa49007d201a169","typeString":"literal_string \"NOF_GC\""},"value":"NOF_GC"}],"id":5827,"kind":"baseConstructorSpecifier","modifierName":{"id":5824,"name":"ERC721","nameLocations":["426:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"426:6:21"},"nodeType":"ModifierInvocation","src":"426:30:21"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5823,"nodeType":"ParameterList","parameters":[],"src":"423:2:21"},"returnParameters":{"id":5828,"nodeType":"ParameterList","parameters":[],"src":"457:0:21"},"scope":5877,"src":"412:47:21","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[1084],"body":{"id":5843,"nodeType":"Block","src":"523:37:21","statements":[{"expression":{"arguments":[{"id":5840,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5832,"src":"545:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5837,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"533:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NofGammaCardsNFTV1_$5877_$","typeString":"type(contract super NofGammaCardsNFTV1)"}},"id":5839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"539:5:21","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"533:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":5841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"533:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5842,"nodeType":"ExpressionStatement","src":"533:20:21"}]},"id":5844,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"474:5:21","nodeType":"FunctionDefinition","overrides":{"id":5835,"nodeType":"OverrideSpecifier","overrides":[{"id":5834,"name":"ERC721","nameLocations":["515:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"515:6:21"}],"src":"506:16:21"},"parameters":{"id":5833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5832,"mutability":"mutable","name":"tokenId","nameLocation":"488:7:21","nodeType":"VariableDeclaration","scope":5844,"src":"480:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5831,"name":"uint256","nodeType":"ElementaryTypeName","src":"480:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"479:17:21"},"returnParameters":{"id":5836,"nodeType":"ParameterList","parameters":[],"src":"523:0:21"},"scope":5877,"src":"465:95:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[590,1673],"body":{"id":5859,"nodeType":"Block","src":"684:47:21","statements":[{"expression":{"arguments":[{"id":5856,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5846,"src":"716:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5854,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"701:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NofGammaCardsNFTV1_$5877_$","typeString":"type(contract super NofGammaCardsNFTV1)"}},"id":5855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"707:8:21","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":1673,"src":"701:14:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:23:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5853,"id":5858,"nodeType":"Return","src":"694:30:21"}]},"functionSelector":"c87b56dd","id":5860,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"575:8:21","nodeType":"FunctionDefinition","overrides":{"id":5850,"nodeType":"OverrideSpecifier","overrides":[{"id":5848,"name":"ERC721","nameLocations":["622:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"622:6:21"},{"id":5849,"name":"ERC721URIStorage","nameLocations":["630:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":1693,"src":"630:16:21"}],"src":"613:34:21"},"parameters":{"id":5847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5846,"mutability":"mutable","name":"tokenId","nameLocation":"592:7:21","nodeType":"VariableDeclaration","scope":5860,"src":"584:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5845,"name":"uint256","nodeType":"ElementaryTypeName","src":"584:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"583:17:21"},"returnParameters":{"id":5853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5860,"src":"665:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5851,"name":"string","nodeType":"ElementaryTypeName","src":"665:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"664:15:21"},"scope":5877,"src":"566:165:21","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[495,1616],"body":{"id":5875,"nodeType":"Block","src":"858:60:21","statements":[{"expression":{"arguments":[{"id":5872,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5862,"src":"899:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5870,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"875:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NofGammaCardsNFTV1_$5877_$","typeString":"type(contract super NofGammaCardsNFTV1)"}},"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"881:17:21","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"875:23:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"875:36:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5869,"id":5874,"nodeType":"Return","src":"868:43:21"}]},"functionSelector":"01ffc9a7","id":5876,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"746:17:21","nodeType":"FunctionDefinition","overrides":{"id":5866,"nodeType":"OverrideSpecifier","overrides":[{"id":5864,"name":"ERC721","nameLocations":["805:6:21"],"nodeType":"IdentifierPath","referencedDeclaration":1403,"src":"805:6:21"},{"id":5865,"name":"ERC721URIStorage","nameLocations":["813:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":1693,"src":"813:16:21"}],"src":"796:34:21"},"parameters":{"id":5863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5862,"mutability":"mutable","name":"interfaceId","nameLocation":"771:11:21","nodeType":"VariableDeclaration","scope":5876,"src":"764:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5861,"name":"bytes4","nodeType":"ElementaryTypeName","src":"764:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"763:20:21"},"returnParameters":{"id":5869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5876,"src":"848:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5867,"name":"bool","nodeType":"ElementaryTypeName","src":"848:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"847:6:21"},"scope":5877,"src":"737:181:21","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":5878,"src":"333:588:21","usedErrors":[227,232,241,246,251,258,263,268],"usedEvents":[167,174,1419,1428,1437]}],"src":"32:890:21"},"id":21},"contracts/gamma/GammaOffers.v4.sol":{"ast":{"absolutePath":"contracts/gamma/GammaOffers.v4.sol","exportedSymbols":{"ExchangeError":[5917],"GammaCardsContractNotSet":[5893],"IGammaCardsContract":[5952],"InvalidAddress":[5891],"InvalidCard":[5909],"InvalidCardNumber":[5899],"InvalidOfferId":[5903],"LibControlMgmt":[8832],"NofGammaOffersV4":[7472],"OfferAlreadyExists":[5901],"OfferDoesNotExists":[5905],"OfferNotDeleted":[5911],"OffersMaximumAllowed":[5895],"OnlyCardsContract":[5887],"OnlyOwners":[5889],"Ownable":[147],"RemoveOfferFromCardNumberMapping_DoNotMatch":[5915],"RemoveOfferFromUserMapping_DoNotMatch":[5913],"UserAlreadyHasCard":[5907],"UserDoesNotHaveCard":[5897],"console":[19517]},"id":7473,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5879,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:22"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":5881,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7473,"sourceUnit":148,"src":"58:67:22","symbolAliases":[{"foreign":{"id":5880,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"66:7:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","file":"./libs/LibControlMgmt.sol","id":5883,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7473,"sourceUnit":8833,"src":"126:57:22","symbolAliases":[{"foreign":{"id":5882,"name":"LibControlMgmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8832,"src":"134:14:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":5885,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7473,"sourceUnit":19518,"src":"184:44:22","symbolAliases":[{"foreign":{"id":5884,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"192:7:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"errorSelector":"a71ed6c7","id":5887,"name":"OnlyCardsContract","nameLocation":"236:17:22","nodeType":"ErrorDefinition","parameters":{"id":5886,"nodeType":"ParameterList","parameters":[],"src":"253:2:22"},"src":"230:26:22"},{"errorSelector":"4289c493","id":5889,"name":"OnlyOwners","nameLocation":"263:10:22","nodeType":"ErrorDefinition","parameters":{"id":5888,"nodeType":"ParameterList","parameters":[],"src":"273:2:22"},"src":"257:19:22"},{"errorSelector":"e6c4247b","id":5891,"name":"InvalidAddress","nameLocation":"283:14:22","nodeType":"ErrorDefinition","parameters":{"id":5890,"nodeType":"ParameterList","parameters":[],"src":"297:2:22"},"src":"277:23:22"},{"errorSelector":"cfdf3505","id":5893,"name":"GammaCardsContractNotSet","nameLocation":"307:24:22","nodeType":"ErrorDefinition","parameters":{"id":5892,"nodeType":"ParameterList","parameters":[],"src":"331:2:22"},"src":"301:33:22"},{"errorSelector":"182a7d77","id":5895,"name":"OffersMaximumAllowed","nameLocation":"341:20:22","nodeType":"ErrorDefinition","parameters":{"id":5894,"nodeType":"ParameterList","parameters":[],"src":"361:2:22"},"src":"335:29:22"},{"errorSelector":"285a8f42","id":5897,"name":"UserDoesNotHaveCard","nameLocation":"371:19:22","nodeType":"ErrorDefinition","parameters":{"id":5896,"nodeType":"ParameterList","parameters":[],"src":"390:2:22"},"src":"365:28:22"},{"errorSelector":"1a3d9e2e","id":5899,"name":"InvalidCardNumber","nameLocation":"400:17:22","nodeType":"ErrorDefinition","parameters":{"id":5898,"nodeType":"ParameterList","parameters":[],"src":"417:2:22"},"src":"394:26:22"},{"errorSelector":"eeee5c8b","id":5901,"name":"OfferAlreadyExists","nameLocation":"427:18:22","nodeType":"ErrorDefinition","parameters":{"id":5900,"nodeType":"ParameterList","parameters":[],"src":"445:2:22"},"src":"421:27:22"},{"errorSelector":"a2539562","id":5903,"name":"InvalidOfferId","nameLocation":"455:14:22","nodeType":"ErrorDefinition","parameters":{"id":5902,"nodeType":"ParameterList","parameters":[],"src":"469:2:22"},"src":"449:23:22"},{"errorSelector":"3bda4526","id":5905,"name":"OfferDoesNotExists","nameLocation":"479:18:22","nodeType":"ErrorDefinition","parameters":{"id":5904,"nodeType":"ParameterList","parameters":[],"src":"497:2:22"},"src":"473:27:22"},{"errorSelector":"22ef652a","id":5907,"name":"UserAlreadyHasCard","nameLocation":"507:18:22","nodeType":"ErrorDefinition","parameters":{"id":5906,"nodeType":"ParameterList","parameters":[],"src":"525:2:22"},"src":"501:27:22"},{"errorSelector":"1ddf446e","id":5909,"name":"InvalidCard","nameLocation":"535:11:22","nodeType":"ErrorDefinition","parameters":{"id":5908,"nodeType":"ParameterList","parameters":[],"src":"546:2:22"},"src":"529:20:22"},{"errorSelector":"1b440351","id":5911,"name":"OfferNotDeleted","nameLocation":"556:15:22","nodeType":"ErrorDefinition","parameters":{"id":5910,"nodeType":"ParameterList","parameters":[],"src":"571:2:22"},"src":"550:24:22"},{"errorSelector":"b7f2d833","id":5913,"name":"RemoveOfferFromUserMapping_DoNotMatch","nameLocation":"581:37:22","nodeType":"ErrorDefinition","parameters":{"id":5912,"nodeType":"ParameterList","parameters":[],"src":"618:2:22"},"src":"575:46:22"},{"errorSelector":"af5d70c6","id":5915,"name":"RemoveOfferFromCardNumberMapping_DoNotMatch","nameLocation":"628:43:22","nodeType":"ErrorDefinition","parameters":{"id":5914,"nodeType":"ParameterList","parameters":[],"src":"671:2:22"},"src":"622:52:22"},{"errorSelector":"fc9716b9","id":5917,"name":"ExchangeError","nameLocation":"681:13:22","nodeType":"ErrorDefinition","parameters":{"id":5916,"nodeType":"ParameterList","parameters":[],"src":"694:2:22"},"src":"675:22:22"},{"abstract":false,"baseContracts":[],"canonicalName":"IGammaCardsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5952,"linearizedBaseContracts":[5952],"name":"IGammaCardsContract","nameLocation":"709:19:22","nodeType":"ContractDefinition","nodes":[{"functionSelector":"8bf670c8","id":5926,"implemented":false,"kind":"function","modifiers":[],"name":"hasCardByOffer","nameLocation":"742:14:22","nodeType":"FunctionDefinition","parameters":{"id":5922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5919,"mutability":"mutable","name":"user","nameLocation":"765:4:22","nodeType":"VariableDeclaration","scope":5926,"src":"757:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5918,"name":"address","nodeType":"ElementaryTypeName","src":"757:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5921,"mutability":"mutable","name":"cardNumber","nameLocation":"777:10:22","nodeType":"VariableDeclaration","scope":5926,"src":"771:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5920,"name":"uint8","nodeType":"ElementaryTypeName","src":"771:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"756:32:22"},"returnParameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5924,"mutability":"mutable","name":"has","nameLocation":"812:3:22","nodeType":"VariableDeclaration","scope":5926,"src":"807:8:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5923,"name":"bool","nodeType":"ElementaryTypeName","src":"807:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"806:10:22"},"scope":5952,"src":"733:84:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7155a3ac","id":5933,"implemented":false,"kind":"function","modifiers":[],"name":"removeCardByOffer","nameLocation":"830:17:22","nodeType":"FunctionDefinition","parameters":{"id":5931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5928,"mutability":"mutable","name":"user","nameLocation":"856:4:22","nodeType":"VariableDeclaration","scope":5933,"src":"848:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5927,"name":"address","nodeType":"ElementaryTypeName","src":"848:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5930,"mutability":"mutable","name":"cardNumber","nameLocation":"868:10:22","nodeType":"VariableDeclaration","scope":5933,"src":"862:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5929,"name":"uint8","nodeType":"ElementaryTypeName","src":"862:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"847:32:22"},"returnParameters":{"id":5932,"nodeType":"ParameterList","parameters":[],"src":"888:0:22"},"scope":5952,"src":"821:68:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"155e2f92","id":5940,"implemented":false,"kind":"function","modifiers":[],"name":"restoreCardByOffer","nameLocation":"902:18:22","nodeType":"FunctionDefinition","parameters":{"id":5938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5935,"mutability":"mutable","name":"user","nameLocation":"929:4:22","nodeType":"VariableDeclaration","scope":5940,"src":"921:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"cardNumber","nameLocation":"941:10:22","nodeType":"VariableDeclaration","scope":5940,"src":"935:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5936,"name":"uint8","nodeType":"ElementaryTypeName","src":"935:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"920:32:22"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[],"src":"961:0:22"},"scope":5952,"src":"893:69:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ad1684fa","id":5951,"implemented":false,"kind":"function","modifiers":[],"name":"exchangeCardsOffer","nameLocation":"975:18:22","nodeType":"FunctionDefinition","parameters":{"id":5949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5942,"mutability":"mutable","name":"from","nameLocation":"1007:4:22","nodeType":"VariableDeclaration","scope":5951,"src":"999:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5941,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5944,"mutability":"mutable","name":"cardNumberFrom","nameLocation":"1023:14:22","nodeType":"VariableDeclaration","scope":5951,"src":"1017:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5943,"name":"uint8","nodeType":"ElementaryTypeName","src":"1017:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5946,"mutability":"mutable","name":"to","nameLocation":"1051:2:22","nodeType":"VariableDeclaration","scope":5951,"src":"1043:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5945,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5948,"mutability":"mutable","name":"cardNumberTo","nameLocation":"1065:12:22","nodeType":"VariableDeclaration","scope":5951,"src":"1059:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5947,"name":"uint8","nodeType":"ElementaryTypeName","src":"1059:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"993:88:22"},"returnParameters":{"id":5950,"nodeType":"ParameterList","parameters":[],"src":"1090:0:22"},"scope":5952,"src":"966:125:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7473,"src":"699:394:22","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":5953,"name":"Ownable","nameLocations":["1124:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"1124:7:22"},"id":5954,"nodeType":"InheritanceSpecifier","src":"1124:7:22"}],"canonicalName":"NofGammaOffersV4","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":7472,"linearizedBaseContracts":[7472,147,1751],"name":"NofGammaOffersV4","nameLocation":"1104:16:22","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5958,"libraryName":{"id":5955,"name":"LibControlMgmt","nameLocations":["1142:14:22"],"nodeType":"IdentifierPath","referencedDeclaration":8832,"src":"1142:14:22"},"nodeType":"UsingForDirective","src":"1136:45:22","typeName":{"id":5957,"nodeType":"UserDefinedTypeName","pathNode":{"id":5956,"name":"LibControlMgmt.Data","nameLocations":["1161:14:22","1176:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1161:19:22"},"referencedDeclaration":8641,"src":"1161:19:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}}},{"constant":false,"functionSelector":"d250f03a","id":5961,"mutability":"mutable","name":"gammaCardsContract","nameLocation":"1212:18:22","nodeType":"VariableDeclaration","scope":7472,"src":"1185:45:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"},"typeName":{"id":5960,"nodeType":"UserDefinedTypeName","pathNode":{"id":5959,"name":"IGammaCardsContract","nameLocations":["1185:19:22"],"nodeType":"IdentifierPath","referencedDeclaration":5952,"src":"1185:19:22"},"referencedDeclaration":5952,"src":"1185:19:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"visibility":"public"},{"constant":false,"id":5964,"mutability":"mutable","name":"ownersData","nameLocation":"1262:10:22","nodeType":"VariableDeclaration","scope":7472,"src":"1234:38:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":5963,"nodeType":"UserDefinedTypeName","pathNode":{"id":5962,"name":"LibControlMgmt.Data","nameLocations":["1234:14:22","1249:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1234:19:22"},"referencedDeclaration":8641,"src":"1234:19:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"id":5970,"mutability":"mutable","name":"maxOffersAllowed","nameLocation":"1285:16:22","nodeType":"VariableDeclaration","scope":7472,"src":"1277:40:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5965,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"35303030","id":5968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1312:4:22","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"}],"id":5967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1304:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1304:7:22","typeDescriptions":{}}},"id":5969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5976,"mutability":"mutable","name":"maxOffersByUserAllowed","nameLocation":"1329:22:22","nodeType":"VariableDeclaration","scope":7472,"src":"1321:43:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"35","id":5974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:22","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":5973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1354:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:22","typeDescriptions":{}}},"id":5975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1354:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5982,"mutability":"mutable","name":"maxCardNumbersAllowed","nameLocation":"1376:21:22","nodeType":"VariableDeclaration","scope":7472,"src":"1368:44:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"313230","id":5980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1408:3:22","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"}],"id":5979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1400:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1400:7:22","typeDescriptions":{}}},"id":5981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1400:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5985,"mutability":"mutable","name":"removeCardInInventoryWhenOffer","nameLocation":"1421:30:22","nodeType":"VariableDeclaration","scope":7472,"src":"1416:43:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5983,"name":"bool","nodeType":"ElementaryTypeName","src":"1416:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":5984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1454:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"canonicalName":"NofGammaOffersV4.Offer","id":5997,"members":[{"constant":false,"id":5987,"mutability":"mutable","name":"offerId","nameLocation":"1490:7:22","nodeType":"VariableDeclaration","scope":5997,"src":"1483:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5986,"name":"string","nodeType":"ElementaryTypeName","src":"1483:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5989,"mutability":"mutable","name":"cardNumber","nameLocation":"1509:10:22","nodeType":"VariableDeclaration","scope":5997,"src":"1503:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5988,"name":"uint8","nodeType":"ElementaryTypeName","src":"1503:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5992,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"1533:17:22","nodeType":"VariableDeclaration","scope":5997,"src":"1525:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":5990,"name":"uint8","nodeType":"ElementaryTypeName","src":"1525:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5991,"nodeType":"ArrayTypeName","src":"1525:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":5994,"mutability":"mutable","name":"owner","nameLocation":"1564:5:22","nodeType":"VariableDeclaration","scope":5997,"src":"1556:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5993,"name":"address","nodeType":"ElementaryTypeName","src":"1556:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5996,"mutability":"mutable","name":"timestamp","nameLocation":"1583:9:22","nodeType":"VariableDeclaration","scope":5997,"src":"1575:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5995,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Offer","nameLocation":"1471:5:22","nodeType":"StructDefinition","scope":7472,"src":"1464:133:22","visibility":"public"},{"constant":false,"functionSelector":"8a72ea6a","id":6001,"mutability":"mutable","name":"offers","nameLocation":"1616:6:22","nodeType":"VariableDeclaration","scope":7472,"src":"1601:21:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":5999,"nodeType":"UserDefinedTypeName","pathNode":{"id":5998,"name":"Offer","nameLocations":["1601:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"1601:5:22"},"referencedDeclaration":5997,"src":"1601:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6000,"nodeType":"ArrayTypeName","src":"1601:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"public"},{"constant":false,"id":6007,"mutability":"mutable","name":"offersByUser","nameLocation":"1659:12:22","nodeType":"VariableDeclaration","scope":7472,"src":"1626:45:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer[])"},"typeName":{"id":6006,"keyName":"user","keyNameLocation":"1642:4:22","keyType":{"id":6002,"name":"address","nodeType":"ElementaryTypeName","src":"1634:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1626:32:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":6004,"nodeType":"UserDefinedTypeName","pathNode":{"id":6003,"name":"Offer","nameLocations":["1650:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"1650:5:22"},"referencedDeclaration":5997,"src":"1650:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6005,"nodeType":"ArrayTypeName","src":"1650:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}}},"visibility":"internal"},{"constant":false,"id":6013,"mutability":"mutable","name":"offersByCardNumber","nameLocation":"1712:18:22","nodeType":"VariableDeclaration","scope":7472,"src":"1675:55:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer[])"},"typeName":{"id":6012,"keyName":"cardNumber","keyNameLocation":"1689:10:22","keyType":{"id":6008,"name":"uint8","nodeType":"ElementaryTypeName","src":"1683:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"1675:36:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":6010,"nodeType":"UserDefinedTypeName","pathNode":{"id":6009,"name":"Offer","nameLocations":["1703:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"1703:5:22"},"referencedDeclaration":5997,"src":"1703:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6011,"nodeType":"ArrayTypeName","src":"1703:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}}},"visibility":"internal"},{"constant":false,"functionSelector":"7594a6ed","id":6017,"mutability":"mutable","name":"offersByUserCounter","nameLocation":"1769:19:22","nodeType":"VariableDeclaration","scope":7472,"src":"1734:54:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":6016,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6014,"name":"address","nodeType":"ElementaryTypeName","src":"1742:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1734:27:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"d827a8f4","id":6021,"mutability":"mutable","name":"offersByCardNumberCounter","nameLocation":"1825:25:22","nodeType":"VariableDeclaration","scope":7472,"src":"1792:58:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"},"typeName":{"id":6020,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6018,"name":"uint8","nodeType":"ElementaryTypeName","src":"1800:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Mapping","src":"1792:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1809:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"5a919aeb","id":6023,"mutability":"mutable","name":"offersTotalCounter","nameLocation":"1869:18:22","nodeType":"VariableDeclaration","scope":7472,"src":"1854:33:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"eventSelector":"45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa","id":6027,"name":"NewGammaCardsContract","nameLocation":"1898:21:22","nodeType":"EventDefinition","parameters":{"id":6026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6025,"indexed":false,"mutability":"mutable","name":"newGammaCardsContract","nameLocation":"1928:21:22","nodeType":"VariableDeclaration","scope":6027,"src":"1920:29:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6024,"name":"address","nodeType":"ElementaryTypeName","src":"1920:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1919:31:22"},"src":"1892:59:22"},{"anonymous":false,"eventSelector":"ed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5","id":6036,"name":"OfferCreated","nameLocation":"1960:12:22","nodeType":"EventDefinition","parameters":{"id":6035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6029,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"1981:4:22","nodeType":"VariableDeclaration","scope":6036,"src":"1973:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6028,"name":"address","nodeType":"ElementaryTypeName","src":"1973:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6031,"indexed":false,"mutability":"mutable","name":"cardNumber","nameLocation":"1993:10:22","nodeType":"VariableDeclaration","scope":6036,"src":"1987:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6030,"name":"uint8","nodeType":"ElementaryTypeName","src":"1987:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6034,"indexed":false,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"2013:17:22","nodeType":"VariableDeclaration","scope":6036,"src":"2005:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6032,"name":"uint8","nodeType":"ElementaryTypeName","src":"2005:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6033,"nodeType":"ArrayTypeName","src":"2005:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"1972:59:22"},"src":"1954:78:22"},{"anonymous":false,"eventSelector":"7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f5","id":6042,"name":"OfferRemoved","nameLocation":"2041:12:22","nodeType":"EventDefinition","parameters":{"id":6041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6038,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"2062:4:22","nodeType":"VariableDeclaration","scope":6042,"src":"2054:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6037,"name":"address","nodeType":"ElementaryTypeName","src":"2054:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6040,"indexed":false,"mutability":"mutable","name":"cardNumber","nameLocation":"2074:10:22","nodeType":"VariableDeclaration","scope":6042,"src":"2068:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6039,"name":"uint8","nodeType":"ElementaryTypeName","src":"2068:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2053:32:22"},"src":"2035:51:22"},{"anonymous":false,"eventSelector":"65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8","id":6046,"name":"UserOffersRemoved","nameLocation":"2095:17:22","nodeType":"EventDefinition","parameters":{"id":6045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6044,"indexed":false,"mutability":"mutable","name":"user","nameLocation":"2121:4:22","nodeType":"VariableDeclaration","scope":6046,"src":"2113:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6043,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2112:14:22"},"src":"2089:38:22"},{"anonymous":false,"eventSelector":"47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb0","id":6048,"name":"AllOffersRemoved","nameLocation":"2136:16:22","nodeType":"EventDefinition","parameters":{"id":6047,"nodeType":"ParameterList","parameters":[],"src":"2152:2:22"},"src":"2130:25:22"},{"body":{"id":6062,"nodeType":"Block","src":"2188:91:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6050,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2198:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2202:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2198:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":6054,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"2220:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}],"id":6053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2212:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6052,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:22","typeDescriptions":{}}},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2198:41:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"IfStatement","src":"2194:73:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6057,"name":"OnlyCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5887,"src":"2248:17:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2248:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6059,"nodeType":"RevertStatement","src":"2241:26:22"}},{"id":6061,"nodeType":"PlaceholderStatement","src":"2273:1:22"}]},"id":6063,"name":"onlyCardsContract","nameLocation":"2168:17:22","nodeType":"ModifierDefinition","parameters":{"id":6049,"nodeType":"ParameterList","parameters":[],"src":"2185:2:22"},"src":"2159:120:22","virtual":false,"visibility":"internal"},{"body":{"id":6076,"nodeType":"Block","src":"2305:73:22","statements":[{"condition":{"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2315:30:22","subExpression":{"baseExpression":{"expression":{"id":6065,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2316:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2327:6:22","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2316:17:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6069,"indexExpression":{"expression":{"id":6067,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2334:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2338:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2334:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2316:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6074,"nodeType":"IfStatement","src":"2311:55:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6071,"name":"OnlyOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5889,"src":"2354:10:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6073,"nodeType":"RevertStatement","src":"2347:19:22"}},{"id":6075,"nodeType":"PlaceholderStatement","src":"2372:1:22"}]},"id":6077,"name":"onlyOwners","nameLocation":"2292:10:22","nodeType":"ModifierDefinition","parameters":{"id":6064,"nodeType":"ParameterList","parameters":[],"src":"2302:2:22"},"src":"2283:95:22","virtual":false,"visibility":"internal"},{"body":{"id":6111,"nodeType":"Block","src":"2439:172:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6086,"name":"_cardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"2449:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2467:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6087,"name":"address","nodeType":"ElementaryTypeName","src":"2467:7:22","typeDescriptions":{}}},"id":6090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2449:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6095,"nodeType":"IfStatement","src":"2445:57:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6092,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"2486:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6094,"nodeType":"RevertStatement","src":"2479:23:22"}},{"expression":{"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6096,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"2508:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6098,"name":"_cardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6079,"src":"2549:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6097,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"2529:19:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$5952_$","typeString":"type(contract IGammaCardsContract)"}},"id":6099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2529:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"src":"2508:56:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6101,"nodeType":"ExpressionStatement","src":"2508:56:22"},{"expression":{"id":6109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":6102,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2570:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2581:6:22","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2570:17:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6107,"indexExpression":{"expression":{"id":6104,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2588:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2592:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2588:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2570:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2602:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2570:36:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6110,"nodeType":"ExpressionStatement","src":"2570:36:22"}]},"id":6112,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":6082,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2427:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2431:6:22","memberName":"sender","nodeType":"MemberAccess","src":"2427:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":6084,"kind":"baseConstructorSpecifier","modifierName":{"id":6081,"name":"Ownable","nameLocations":["2419:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"2419:7:22"},"nodeType":"ModifierInvocation","src":"2419:19:22"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6079,"mutability":"mutable","name":"_cardsContract","nameLocation":"2403:14:22","nodeType":"VariableDeclaration","scope":6112,"src":"2395:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6078,"name":"address","nodeType":"ElementaryTypeName","src":"2395:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2394:24:22"},"returnParameters":{"id":6085,"nodeType":"ParameterList","parameters":[],"src":"2439:0:22"},"scope":7472,"src":"2382:229:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6125,"nodeType":"Block","src":"2672:41:22","statements":[{"expression":{"arguments":[{"id":6122,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"2698:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6119,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2678:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2689:8:22","memberName":"addOwner","nodeType":"MemberAccess","referencedDeclaration":8697,"src":"2678:19:22","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2678:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6124,"nodeType":"ExpressionStatement","src":"2678:30:22"}]},"functionSelector":"7065cb48","id":6126,"implemented":true,"kind":"function","modifiers":[{"id":6117,"kind":"modifierInvocation","modifierName":{"id":6116,"name":"onlyOwners","nameLocations":["2661:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"2661:10:22"},"nodeType":"ModifierInvocation","src":"2661:10:22"}],"name":"addOwner","nameLocation":"2624:8:22","nodeType":"FunctionDefinition","parameters":{"id":6115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6114,"mutability":"mutable","name":"_newOwner","nameLocation":"2641:9:22","nodeType":"VariableDeclaration","scope":6126,"src":"2633:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6113,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2632:19:22"},"returnParameters":{"id":6118,"nodeType":"ParameterList","parameters":[],"src":"2672:0:22"},"scope":7472,"src":"2615:98:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6139,"nodeType":"Block","src":"2782:49:22","statements":[{"expression":{"arguments":[{"id":6136,"name":"_ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"2811:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6133,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"2788:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2799:11:22","memberName":"removeOwner","nodeType":"MemberAccess","referencedDeclaration":8744,"src":"2788:22:22","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:38:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6138,"nodeType":"ExpressionStatement","src":"2788:38:22"}]},"functionSelector":"173825d9","id":6140,"implemented":true,"kind":"function","modifiers":[{"id":6131,"kind":"modifierInvocation","modifierName":{"id":6130,"name":"onlyOwners","nameLocations":["2771:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"2771:10:22"},"nodeType":"ModifierInvocation","src":"2771:10:22"}],"name":"removeOwner","nameLocation":"2726:11:22","nodeType":"FunctionDefinition","parameters":{"id":6129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6128,"mutability":"mutable","name":"_ownerToRemove","nameLocation":"2746:14:22","nodeType":"VariableDeclaration","scope":6140,"src":"2738:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6127,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2737:24:22"},"returnParameters":{"id":6132,"nodeType":"ParameterList","parameters":[],"src":"2782:0:22"},"scope":7472,"src":"2717:114:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6167,"nodeType":"Block","src":"2913:193:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6147,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6142,"src":"2923:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2946:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6148,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:22","typeDescriptions":{}}},"id":6151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2946:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2923:33:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6156,"nodeType":"IfStatement","src":"2919:62:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6153,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"2965:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2965:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6155,"nodeType":"RevertStatement","src":"2958:23:22"}},{"expression":{"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6157,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"2987:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6159,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6142,"src":"3028:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6158,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"3008:19:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$5952_$","typeString":"type(contract IGammaCardsContract)"}},"id":6160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3008:40:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"src":"2987:61:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6162,"nodeType":"ExpressionStatement","src":"2987:61:22"},{"eventCall":{"arguments":[{"id":6164,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6142,"src":"3081:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6163,"name":"NewGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"3059:21:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3059:42:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6166,"nodeType":"EmitStatement","src":"3054:47:22"}]},"functionSelector":"4c7a7ad3","id":6168,"implemented":true,"kind":"function","modifiers":[{"id":6145,"kind":"modifierInvocation","modifierName":{"id":6144,"name":"onlyOwners","nameLocations":["2902:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"2902:10:22"},"nodeType":"ModifierInvocation","src":"2902:10:22"}],"name":"setGammaCardsContract","nameLocation":"2844:21:22","nodeType":"FunctionDefinition","parameters":{"id":6143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6142,"mutability":"mutable","name":"_gammaCardsContract","nameLocation":"2874:19:22","nodeType":"VariableDeclaration","scope":6168,"src":"2866:27:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6141,"name":"address","nodeType":"ElementaryTypeName","src":"2866:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2865:29:22"},"returnParameters":{"id":6146,"nodeType":"ParameterList","parameters":[],"src":"2913:0:22"},"scope":7472,"src":"2835:271:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6179,"nodeType":"Block","src":"3186:47:22","statements":[{"expression":{"id":6177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6175,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"3192:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6176,"name":"_maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"3211:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3192:36:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6178,"nodeType":"ExpressionStatement","src":"3192:36:22"}]},"functionSelector":"e5e5f732","id":6180,"implemented":true,"kind":"function","modifiers":[{"id":6173,"kind":"modifierInvocation","modifierName":{"id":6172,"name":"onlyOwners","nameLocations":["3175:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3175:10:22"},"nodeType":"ModifierInvocation","src":"3175:10:22"}],"name":"setMaxOffersAllowed","nameLocation":"3119:19:22","nodeType":"FunctionDefinition","parameters":{"id":6171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6170,"mutability":"mutable","name":"_maxOffersAllowed","nameLocation":"3147:17:22","nodeType":"VariableDeclaration","scope":6180,"src":"3139:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6169,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3138:27:22"},"returnParameters":{"id":6174,"nodeType":"ParameterList","parameters":[],"src":"3186:0:22"},"scope":7472,"src":"3110:123:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6191,"nodeType":"Block","src":"3325:59:22","statements":[{"expression":{"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6187,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"3331:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6188,"name":"_maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"3356:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3331:48:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6190,"nodeType":"ExpressionStatement","src":"3331:48:22"}]},"functionSelector":"3808dfe7","id":6192,"implemented":true,"kind":"function","modifiers":[{"id":6185,"kind":"modifierInvocation","modifierName":{"id":6184,"name":"onlyOwners","nameLocations":["3314:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3314:10:22"},"nodeType":"ModifierInvocation","src":"3314:10:22"}],"name":"setMaxOffersByUserAllowed","nameLocation":"3246:25:22","nodeType":"FunctionDefinition","parameters":{"id":6183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"_maxOffersByUserAllowed","nameLocation":"3280:23:22","nodeType":"VariableDeclaration","scope":6192,"src":"3272:31:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6181,"name":"uint256","nodeType":"ElementaryTypeName","src":"3272:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3271:33:22"},"returnParameters":{"id":6186,"nodeType":"ParameterList","parameters":[],"src":"3325:0:22"},"scope":7472,"src":"3237:147:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6203,"nodeType":"Block","src":"3474:57:22","statements":[{"expression":{"id":6201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6199,"name":"maxCardNumbersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"3480:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6200,"name":"_maxCardNumbersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6194,"src":"3504:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3480:46:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6202,"nodeType":"ExpressionStatement","src":"3480:46:22"}]},"functionSelector":"e02f9723","id":6204,"implemented":true,"kind":"function","modifiers":[{"id":6197,"kind":"modifierInvocation","modifierName":{"id":6196,"name":"onlyOwners","nameLocations":["3463:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3463:10:22"},"nodeType":"ModifierInvocation","src":"3463:10:22"}],"name":"setMaxCardNumbersAllowed","nameLocation":"3397:24:22","nodeType":"FunctionDefinition","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6194,"mutability":"mutable","name":"_maxCardNumbersAllowed","nameLocation":"3430:22:22","nodeType":"VariableDeclaration","scope":6204,"src":"3422:30:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6193,"name":"uint256","nodeType":"ElementaryTypeName","src":"3422:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3421:32:22"},"returnParameters":{"id":6198,"nodeType":"ParameterList","parameters":[],"src":"3474:0:22"},"scope":7472,"src":"3388:143:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6215,"nodeType":"Block","src":"3614:50:22","statements":[{"expression":{"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6211,"name":"removeCardInInventoryWhenOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"3620:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6212,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6206,"src":"3653:6:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3620:39:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6214,"nodeType":"ExpressionStatement","src":"3620:39:22"}]},"functionSelector":"58e57ebb","id":6216,"implemented":true,"kind":"function","modifiers":[{"id":6209,"kind":"modifierInvocation","modifierName":{"id":6208,"name":"onlyOwners","nameLocations":["3603:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"3603:10:22"},"nodeType":"ModifierInvocation","src":"3603:10:22"}],"name":"changeRemoveCardinInventoryWhenOffer","nameLocation":"3544:36:22","nodeType":"FunctionDefinition","parameters":{"id":6207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6206,"mutability":"mutable","name":"_value","nameLocation":"3586:6:22","nodeType":"VariableDeclaration","scope":6216,"src":"3581:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6205,"name":"bool","nodeType":"ElementaryTypeName","src":"3581:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3580:13:22"},"returnParameters":{"id":6210,"nodeType":"ParameterList","parameters":[],"src":"3614:0:22"},"scope":7472,"src":"3535:129:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6234,"nodeType":"Block","src":"3787:83:22","statements":[{"expression":{"arguments":[{"id":6227,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"3814:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":6228,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3823:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3827:6:22","memberName":"sender","nodeType":"MemberAccess","src":"3823:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6230,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6220,"src":"3835:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6231,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6223,"src":"3847:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}],"id":6226,"name":"_createOfferWithUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"3793:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint8_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address,uint8,uint8[] memory)"}},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:72:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6233,"nodeType":"ExpressionStatement","src":"3793:72:22"}]},"functionSelector":"3e293e16","id":6235,"implemented":true,"kind":"function","modifiers":[],"name":"createOffer","nameLocation":"3677:11:22","nodeType":"FunctionDefinition","parameters":{"id":6224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6218,"mutability":"mutable","name":"offerId","nameLocation":"3708:7:22","nodeType":"VariableDeclaration","scope":6235,"src":"3694:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6217,"name":"string","nodeType":"ElementaryTypeName","src":"3694:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6220,"mutability":"mutable","name":"cardNumber","nameLocation":"3727:10:22","nodeType":"VariableDeclaration","scope":6235,"src":"3721:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6219,"name":"uint8","nodeType":"ElementaryTypeName","src":"3721:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6223,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"3758:17:22","nodeType":"VariableDeclaration","scope":6235,"src":"3743:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6221,"name":"uint8","nodeType":"ElementaryTypeName","src":"3743:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6222,"nodeType":"ArrayTypeName","src":"3743:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"3688:91:22"},"returnParameters":{"id":6225,"nodeType":"ParameterList","parameters":[],"src":"3787:0:22"},"scope":7472,"src":"3668:202:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6256,"nodeType":"Block","src":"4031:77:22","statements":[{"expression":{"arguments":[{"id":6250,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6237,"src":"4058:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6251,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6239,"src":"4067:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6252,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"4073:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6253,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"4085:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}],"id":6249,"name":"_createOfferWithUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"4037:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint8_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address,uint8,uint8[] memory)"}},"id":6254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4037:66:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6255,"nodeType":"ExpressionStatement","src":"4037:66:22"}]},"functionSelector":"17a1fed9","id":6257,"implemented":true,"kind":"function","modifiers":[{"id":6247,"kind":"modifierInvocation","modifierName":{"id":6246,"name":"onlyOwners","nameLocations":["4020:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"4020:10:22"},"nodeType":"ModifierInvocation","src":"4020:10:22"}],"name":"createOfferWithoUser","nameLocation":"3883:20:22","nodeType":"FunctionDefinition","parameters":{"id":6245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6237,"mutability":"mutable","name":"offerId","nameLocation":"3923:7:22","nodeType":"VariableDeclaration","scope":6257,"src":"3909:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6236,"name":"string","nodeType":"ElementaryTypeName","src":"3909:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6239,"mutability":"mutable","name":"user","nameLocation":"3944:4:22","nodeType":"VariableDeclaration","scope":6257,"src":"3936:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6238,"name":"address","nodeType":"ElementaryTypeName","src":"3936:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6241,"mutability":"mutable","name":"cardNumber","nameLocation":"3960:10:22","nodeType":"VariableDeclaration","scope":6257,"src":"3954:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6240,"name":"uint8","nodeType":"ElementaryTypeName","src":"3954:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6244,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"3991:17:22","nodeType":"VariableDeclaration","scope":6257,"src":"3976:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6242,"name":"uint8","nodeType":"ElementaryTypeName","src":"3976:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6243,"nodeType":"ArrayTypeName","src":"3976:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"3903:109:22"},"returnParameters":{"id":6248,"nodeType":"ParameterList","parameters":[],"src":"4031:0:22"},"scope":7472,"src":"3874:234:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6422,"nodeType":"Block","src":"4259:1182:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6271,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"4277:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}],"id":6270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4269:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6269,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:22","typeDescriptions":{}}},"id":6272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4269:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4300:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6273,"name":"address","nodeType":"ElementaryTypeName","src":"4300:7:22","typeDescriptions":{}}},"id":6276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4300:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4269:41:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6281,"nodeType":"IfStatement","src":"4265:80:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6278,"name":"GammaCardsContractNotSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5893,"src":"4319:24:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4319:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6280,"nodeType":"RevertStatement","src":"4312:33:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6282,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"4355:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6284,"indexExpression":{"id":6283,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4375:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4355:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6285,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"4384:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4355:51:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6290,"nodeType":"IfStatement","src":"4351:86:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6287,"name":"OffersMaximumAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4415:20:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4415:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6289,"nodeType":"RevertStatement","src":"4408:29:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6291,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"4447:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":6292,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"4469:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4447:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6297,"nodeType":"IfStatement","src":"4443:73:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6294,"name":"OffersMaximumAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"4494:20:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6296,"nodeType":"RevertStatement","src":"4487:29:22"}},{"assignments":[6299],"declarations":[{"constant":false,"id":6299,"mutability":"mutable","name":"userHasCard","nameLocation":"4528:11:22","nodeType":"VariableDeclaration","scope":6422,"src":"4523:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6298,"name":"bool","nodeType":"ElementaryTypeName","src":"4523:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6305,"initialValue":{"arguments":[{"id":6302,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4576:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6303,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"4582:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6300,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"4542:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4561:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"4542:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4542:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4523:70:22"},{"condition":{"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4603:12:22","subExpression":{"id":6306,"name":"userHasCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6299,"src":"4604:11:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6311,"nodeType":"IfStatement","src":"4599:46:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6308,"name":"UserDoesNotHaveCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"4624:19:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4624:21:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6310,"nodeType":"RevertStatement","src":"4617:28:22"}},{"body":{"id":6332,"nodeType":"Block","src":"4705:81:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6323,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"4717:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6325,"indexExpression":{"id":6324,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"4735:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4717:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6326,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"4741:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4717:34:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6331,"nodeType":"IfStatement","src":"4713:66:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6328,"name":"InvalidCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5899,"src":"4760:17:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4760:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6330,"nodeType":"RevertStatement","src":"4753:26:22"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6316,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"4670:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6317,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"4674:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4692:6:22","memberName":"length","nodeType":"MemberAccess","src":"4674:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4670:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6333,"initializationExpression":{"assignments":[6313],"declarations":[{"constant":false,"id":6313,"mutability":"mutable","name":"i","nameLocation":"4663:1:22","nodeType":"VariableDeclaration","scope":6333,"src":"4657:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6312,"name":"uint8","nodeType":"ElementaryTypeName","src":"4657:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6315,"initialValue":{"hexValue":"30","id":6314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4667:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4657:11:22"},"loopExpression":{"expression":{"id":6321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4700:3:22","subExpression":{"id":6320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"4700:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6322,"nodeType":"ExpressionStatement","src":"4700:3:22"},"nodeType":"ForStatement","src":"4652:134:22"},{"assignments":[6336],"declarations":[{"constant":false,"id":6336,"mutability":"mutable","name":"existingOffer","nameLocation":"4805:13:22","nodeType":"VariableDeclaration","scope":6422,"src":"4792:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6335,"nodeType":"UserDefinedTypeName","pathNode":{"id":6334,"name":"Offer","nameLocations":["4792:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"4792:5:22"},"referencedDeclaration":5997,"src":"4792:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6341,"initialValue":{"arguments":[{"id":6338,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4849:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6339,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"4855:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6337,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"4821:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4821:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"4792:74:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6342,"name":"existingOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"4876:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4890:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"4876:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4907:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4899:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6344,"name":"address","nodeType":"ElementaryTypeName","src":"4899:7:22","typeDescriptions":{}}},"id":6347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4899:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4876:33:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6352,"nodeType":"IfStatement","src":"4872:66:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6349,"name":"OfferAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5901,"src":"4918:18:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4918:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6351,"nodeType":"RevertStatement","src":"4911:27:22"}},{"expression":{"id":6357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6353,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"4945:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6355,"indexExpression":{"id":6354,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"4965:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4945:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4974:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4945:30:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6358,"nodeType":"ExpressionStatement","src":"4945:30:22"},{"expression":{"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6359,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"4981:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":6361,"indexExpression":{"id":6360,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5007:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4981:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5022:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4981:42:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6364,"nodeType":"ExpressionStatement","src":"4981:42:22"},{"expression":{"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6365,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"5029:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5051:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5029:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6368,"nodeType":"ExpressionStatement","src":"5029:23:22"},{"expression":{"arguments":[{"arguments":[{"id":6373,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6259,"src":"5077:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6374,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5086:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6375,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"5098:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"id":6376,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5117:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6377,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5123:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5129:9:22","memberName":"timestamp","nodeType":"MemberAccess","src":"5123:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6372,"name":"Offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"5071:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Offer_$5997_storage_ptr_$","typeString":"type(struct NofGammaOffersV4.Offer storage pointer)"}},"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5071:68:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}],"expression":{"id":6369,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5059:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5066:4:22","memberName":"push","nodeType":"MemberAccess","src":"5059:11:22","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$_t_struct$_Offer_$5997_storage_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer,struct NofGammaOffersV4.Offer storage ref)"}},"id":6380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5059:81:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6381,"nodeType":"ExpressionStatement","src":"5059:81:22"},{"expression":{"arguments":[{"baseExpression":{"id":6386,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5170:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6391,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6387,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5177:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5184:6:22","memberName":"length","nodeType":"MemberAccess","src":"5177:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5193:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5177:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5170:25:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}],"expression":{"baseExpression":{"id":6382,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"5146:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6384,"indexExpression":{"id":6383,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5159:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5146:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5165:4:22","memberName":"push","nodeType":"MemberAccess","src":"5146:23:22","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$_t_struct$_Offer_$5997_storage_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer,struct NofGammaOffersV4.Offer storage ref)"}},"id":6392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5146:50:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6393,"nodeType":"ExpressionStatement","src":"5146:50:22"},{"expression":{"arguments":[{"baseExpression":{"id":6398,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5238:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6403,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6399,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"5245:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5252:6:22","memberName":"length","nodeType":"MemberAccess","src":"5245:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5261:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5245:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5238:25:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}],"expression":{"baseExpression":{"id":6394,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"5202:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6396,"indexExpression":{"id":6395,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5221:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5202:30:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5233:4:22","memberName":"push","nodeType":"MemberAccess","src":"5202:35:22","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$_t_struct$_Offer_$5997_storage_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer,struct NofGammaOffersV4.Offer storage ref)"}},"id":6404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5202:62:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6405,"nodeType":"ExpressionStatement","src":"5202:62:22"},{"condition":{"id":6406,"name":"removeCardInInventoryWhenOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"5275:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6415,"nodeType":"IfStatement","src":"5271:105:22","trueBody":{"id":6414,"nodeType":"Block","src":"5307:69:22","statements":[{"expression":{"arguments":[{"id":6410,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5352:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6411,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5358:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6407,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"5315:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5334:17:22","memberName":"removeCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5933,"src":"5315:36:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8) external"}},"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5315:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6413,"nodeType":"ExpressionStatement","src":"5315:54:22"}]}},{"eventCall":{"arguments":[{"id":6417,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"5400:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6418,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6263,"src":"5406:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6419,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"5418:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}],"id":6416,"name":"OfferCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"5387:12:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$_t_array$_t_uint8_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint8,uint8[] memory)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5387:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6421,"nodeType":"EmitStatement","src":"5382:54:22"}]},"id":6423,"implemented":true,"kind":"function","modifiers":[],"name":"_createOfferWithUser","nameLocation":"4121:20:22","nodeType":"FunctionDefinition","parameters":{"id":6267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6259,"mutability":"mutable","name":"offerId","nameLocation":"4161:7:22","nodeType":"VariableDeclaration","scope":6423,"src":"4147:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6258,"name":"string","nodeType":"ElementaryTypeName","src":"4147:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6261,"mutability":"mutable","name":"user","nameLocation":"4182:4:22","nodeType":"VariableDeclaration","scope":6423,"src":"4174:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6260,"name":"address","nodeType":"ElementaryTypeName","src":"4174:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6263,"mutability":"mutable","name":"cardNumber","nameLocation":"4198:10:22","nodeType":"VariableDeclaration","scope":6423,"src":"4192:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6262,"name":"uint8","nodeType":"ElementaryTypeName","src":"4192:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6266,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"4229:17:22","nodeType":"VariableDeclaration","scope":6423,"src":"4214:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6264,"name":"uint8","nodeType":"ElementaryTypeName","src":"4214:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6265,"nodeType":"ArrayTypeName","src":"4214:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"4141:109:22"},"returnParameters":{"id":6268,"nodeType":"ParameterList","parameters":[],"src":"4259:0:22"},"scope":7472,"src":"4112:1329:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6435,"nodeType":"Block","src":"5505:41:22","statements":[{"expression":{"baseExpression":{"expression":{"id":6430,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"5518:10:22","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":6431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5529:6:22","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"5518:17:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6433,"indexExpression":{"id":6432,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6425,"src":"5536:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5518:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6429,"id":6434,"nodeType":"Return","src":"5511:30:22"}]},"functionSelector":"2f54bf6e","id":6436,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nameLocation":"5454:7:22","nodeType":"FunctionDefinition","parameters":{"id":6426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6425,"mutability":"mutable","name":"user","nameLocation":"5470:4:22","nodeType":"VariableDeclaration","scope":6436,"src":"5462:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6424,"name":"address","nodeType":"ElementaryTypeName","src":"5462:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:14:22"},"returnParameters":{"id":6429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6436,"src":"5499:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6427,"name":"bool","nodeType":"ElementaryTypeName","src":"5499:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5498:6:22"},"scope":7472,"src":"5445:101:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6457,"nodeType":"Block","src":"5628:96:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6443,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6438,"src":"5638:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5654:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5646:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6444,"name":"address","nodeType":"ElementaryTypeName","src":"5646:7:22","typeDescriptions":{}}},"id":6447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5646:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5638:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6452,"nodeType":"IfStatement","src":"5634:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6449,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"5665:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5665:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6451,"nodeType":"RevertStatement","src":"5658:23:22"}},{"expression":{"baseExpression":{"id":6453,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"5694:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6455,"indexExpression":{"id":6454,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6438,"src":"5714:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5694:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6442,"id":6456,"nodeType":"Return","src":"5687:32:22"}]},"functionSelector":"0cdb3117","id":6458,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByUserCounter","nameLocation":"5559:22:22","nodeType":"FunctionDefinition","parameters":{"id":6439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6438,"mutability":"mutable","name":"user","nameLocation":"5590:4:22","nodeType":"VariableDeclaration","scope":6458,"src":"5582:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6437,"name":"address","nodeType":"ElementaryTypeName","src":"5582:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5581:14:22"},"returnParameters":{"id":6442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6458,"src":"5619:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6440,"name":"uint256","nodeType":"ElementaryTypeName","src":"5619:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5618:9:22"},"scope":7472,"src":"5550:174:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6469,"nodeType":"Block","src":"5816:55:22","statements":[{"expression":{"baseExpression":{"id":6465,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"5829:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":6467,"indexExpression":{"id":6466,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6460,"src":"5855:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5829:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6464,"id":6468,"nodeType":"Return","src":"5822:44:22"}]},"functionSelector":"ce7483d5","id":6470,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByCardNumberCounter","nameLocation":"5737:28:22","nodeType":"FunctionDefinition","parameters":{"id":6461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6460,"mutability":"mutable","name":"cardNumber","nameLocation":"5772:10:22","nodeType":"VariableDeclaration","scope":6470,"src":"5766:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6459,"name":"uint8","nodeType":"ElementaryTypeName","src":"5766:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5765:18:22"},"returnParameters":{"id":6464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6470,"src":"5807:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6462,"name":"uint256","nodeType":"ElementaryTypeName","src":"5807:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5806:9:22"},"scope":7472,"src":"5728:143:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6477,"nodeType":"Block","src":"5935:36:22","statements":[{"expression":{"id":6475,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"5948:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6474,"id":6476,"nodeType":"Return","src":"5941:25:22"}]},"functionSelector":"cf86f8e5","id":6478,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersCounter","nameLocation":"5884:16:22","nodeType":"FunctionDefinition","parameters":{"id":6471,"nodeType":"ParameterList","parameters":[],"src":"5900:2:22"},"returnParameters":{"id":6474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6478,"src":"5926:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5926:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5925:9:22"},"scope":7472,"src":"5875:96:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6485,"nodeType":"Block","src":"6038:34:22","statements":[{"expression":{"id":6483,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"6051:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6482,"id":6484,"nodeType":"Return","src":"6044:23:22"}]},"functionSelector":"90222aa1","id":6486,"implemented":true,"kind":"function","modifiers":[],"name":"getMaxOffersAllowed","nameLocation":"5984:19:22","nodeType":"FunctionDefinition","parameters":{"id":6479,"nodeType":"ParameterList","parameters":[],"src":"6003:2:22"},"returnParameters":{"id":6482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6486,"src":"6029:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6480,"name":"uint256","nodeType":"ElementaryTypeName","src":"6029:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6028:9:22"},"scope":7472,"src":"5975:97:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6493,"nodeType":"Block","src":"6145:40:22","statements":[{"expression":{"id":6491,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"6158:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6490,"id":6492,"nodeType":"Return","src":"6151:29:22"}]},"functionSelector":"ba79b77b","id":6494,"implemented":true,"kind":"function","modifiers":[],"name":"getMaxOffersByUserAllowed","nameLocation":"6085:25:22","nodeType":"FunctionDefinition","parameters":{"id":6487,"nodeType":"ParameterList","parameters":[],"src":"6110:2:22"},"returnParameters":{"id":6490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6494,"src":"6136:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6488,"name":"uint256","nodeType":"ElementaryTypeName","src":"6136:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6135:9:22"},"scope":7472,"src":"6076:109:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6503,"nodeType":"Block","src":"6249:24:22","statements":[{"expression":{"id":6501,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6262:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"functionReturnParameters":6500,"id":6502,"nodeType":"Return","src":"6255:13:22"}]},"functionSelector":"3ee992ee","id":6504,"implemented":true,"kind":"function","modifiers":[],"name":"getOffers","nameLocation":"6198:9:22","nodeType":"FunctionDefinition","parameters":{"id":6495,"nodeType":"ParameterList","parameters":[],"src":"6207:2:22"},"returnParameters":{"id":6500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6504,"src":"6233:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6497,"nodeType":"UserDefinedTypeName","pathNode":{"id":6496,"name":"Offer","nameLocations":["6233:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6233:5:22"},"referencedDeclaration":5997,"src":"6233:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6498,"nodeType":"ArrayTypeName","src":"6233:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"src":"6232:16:22"},"scope":7472,"src":"6189:84:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6524,"nodeType":"Block","src":"6352:88:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6512,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"6362:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":6513,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6371:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6378:6:22","memberName":"length","nodeType":"MemberAccess","src":"6371:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6362:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6519,"nodeType":"IfStatement","src":"6358:51:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6516,"name":"InvalidOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5903,"src":"6393:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6518,"nodeType":"RevertStatement","src":"6386:23:22"}},{"expression":{"baseExpression":{"id":6520,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6422:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6522,"indexExpression":{"id":6521,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"6429:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6422:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"functionReturnParameters":6511,"id":6523,"nodeType":"Return","src":"6415:20:22"}]},"functionSelector":"e359a0a1","id":6525,"implemented":true,"kind":"function","modifiers":[],"name":"getOfferByIndex","nameLocation":"6286:15:22","nodeType":"FunctionDefinition","parameters":{"id":6507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6506,"mutability":"mutable","name":"index","nameLocation":"6310:5:22","nodeType":"VariableDeclaration","scope":6525,"src":"6302:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6505,"name":"uint256","nodeType":"ElementaryTypeName","src":"6302:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6301:15:22"},"returnParameters":{"id":6511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6525,"src":"6338:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6509,"nodeType":"UserDefinedTypeName","pathNode":{"id":6508,"name":"Offer","nameLocations":["6338:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6338:5:22"},"referencedDeclaration":5997,"src":"6338:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"6337:14:22"},"scope":7472,"src":"6277:163:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6572,"nodeType":"Block","src":"6531:223:22","statements":[{"body":{"id":6567,"nodeType":"Block","src":"6581:143:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":6547,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6620:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6549,"indexExpression":{"id":6548,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6627:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6620:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6630:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"6620:17:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":6545,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6603:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6607:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"6603:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6603:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6544,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6593:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":6556,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"6670:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6653:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6657:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"6653:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6653:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6553,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6643:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6643:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6593:86:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6566,"nodeType":"IfStatement","src":"6589:129:22","trueBody":{"id":6565,"nodeType":"Block","src":"6681:37:22","statements":[{"expression":{"components":[{"baseExpression":{"id":6560,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6699:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6562,"indexExpression":{"id":6561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6706:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6699:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}}],"id":6563,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6698:11:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"functionReturnParameters":6532,"id":6564,"nodeType":"Return","src":"6691:18:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6537,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6557:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6538,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"6561:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6568:6:22","memberName":"length","nodeType":"MemberAccess","src":"6561:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6557:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6568,"initializationExpression":{"assignments":[6534],"declarations":[{"constant":false,"id":6534,"mutability":"mutable","name":"i","nameLocation":"6550:1:22","nodeType":"VariableDeclaration","scope":6568,"src":"6542:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6533,"name":"uint256","nodeType":"ElementaryTypeName","src":"6542:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6536,"initialValue":{"hexValue":"30","id":6535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6554:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6542:13:22"},"loopExpression":{"expression":{"id":6542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6576:3:22","subExpression":{"id":6541,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"6576:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6543,"nodeType":"ExpressionStatement","src":"6576:3:22"},"nodeType":"ForStatement","src":"6537:187:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6569,"name":"_emptyOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"6736:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function () pure returns (struct NofGammaOffersV4.Offer memory)"}},"id":6570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6736:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"functionReturnParameters":6532,"id":6571,"nodeType":"Return","src":"6729:20:22"}]},"functionSelector":"e2b36596","id":6573,"implemented":true,"kind":"function","modifiers":[],"name":"getOfferByOfferId","nameLocation":"6453:17:22","nodeType":"FunctionDefinition","parameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6527,"mutability":"mutable","name":"offerId","nameLocation":"6485:7:22","nodeType":"VariableDeclaration","scope":6573,"src":"6471:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6526,"name":"string","nodeType":"ElementaryTypeName","src":"6471:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6470:23:22"},"returnParameters":{"id":6532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6573,"src":"6517:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6530,"nodeType":"UserDefinedTypeName","pathNode":{"id":6529,"name":"Offer","nameLocations":["6517:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6517:5:22"},"referencedDeclaration":5997,"src":"6517:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"6516:14:22"},"scope":7472,"src":"6444:310:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6596,"nodeType":"Block","src":"6836:89:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6582,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"6846:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6862:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6854:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6583,"name":"address","nodeType":"ElementaryTypeName","src":"6854:7:22","typeDescriptions":{}}},"id":6586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6854:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6846:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6591,"nodeType":"IfStatement","src":"6842:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6588,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"6873:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6873:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6590,"nodeType":"RevertStatement","src":"6866:23:22"}},{"expression":{"baseExpression":{"id":6592,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"6902:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6594,"indexExpression":{"id":6593,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"6915:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6902:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"functionReturnParameters":6581,"id":6595,"nodeType":"Return","src":"6895:25:22"}]},"functionSelector":"9618b333","id":6597,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByUser","nameLocation":"6767:15:22","nodeType":"FunctionDefinition","parameters":{"id":6576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6575,"mutability":"mutable","name":"user","nameLocation":"6791:4:22","nodeType":"VariableDeclaration","scope":6597,"src":"6783:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6574,"name":"address","nodeType":"ElementaryTypeName","src":"6783:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6782:14:22"},"returnParameters":{"id":6581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6597,"src":"6820:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6578,"nodeType":"UserDefinedTypeName","pathNode":{"id":6577,"name":"Offer","nameLocations":["6820:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"6820:5:22"},"referencedDeclaration":5997,"src":"6820:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6579,"nodeType":"ArrayTypeName","src":"6820:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"src":"6819:16:22"},"scope":7472,"src":"6758:167:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6610,"nodeType":"Block","src":"7017:48:22","statements":[{"expression":{"baseExpression":{"id":6606,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"7030:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6608,"indexExpression":{"id":6607,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6599,"src":"7049:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7030:30:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"functionReturnParameters":6605,"id":6609,"nodeType":"Return","src":"7023:37:22"}]},"functionSelector":"8400a189","id":6611,"implemented":true,"kind":"function","modifiers":[],"name":"getOffersByCardNumber","nameLocation":"6938:21:22","nodeType":"FunctionDefinition","parameters":{"id":6600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6599,"mutability":"mutable","name":"cardNumber","nameLocation":"6966:10:22","nodeType":"VariableDeclaration","scope":6611,"src":"6960:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6598,"name":"uint8","nodeType":"ElementaryTypeName","src":"6960:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6959:18:22"},"returnParameters":{"id":6605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6611,"src":"7001:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6602,"nodeType":"UserDefinedTypeName","pathNode":{"id":6601,"name":"Offer","nameLocations":["7001:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"7001:5:22"},"referencedDeclaration":5997,"src":"7001:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6603,"nodeType":"ArrayTypeName","src":"7001:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"src":"7000:16:22"},"scope":7472,"src":"6929:136:22","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":6673,"nodeType":"Block","src":"7185:361:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6621,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"7195:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7211:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7203:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6622,"name":"address","nodeType":"ElementaryTypeName","src":"7203:7:22","typeDescriptions":{}}},"id":6625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7195:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6630,"nodeType":"IfStatement","src":"7191:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6627,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"7222:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7222:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6629,"nodeType":"RevertStatement","src":"7215:23:22"}},{"assignments":[6635],"declarations":[{"constant":false,"id":6635,"mutability":"mutable","name":"userOffers","nameLocation":"7261:10:22","nodeType":"VariableDeclaration","scope":6673,"src":"7245:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":6633,"nodeType":"UserDefinedTypeName","pathNode":{"id":6632,"name":"Offer","nameLocations":["7245:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"7245:5:22"},"referencedDeclaration":5997,"src":"7245:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":6634,"nodeType":"ArrayTypeName","src":"7245:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":6639,"initialValue":{"baseExpression":{"id":6636,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"7274:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6638,"indexExpression":{"id":6637,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"7287:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7274:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7245:47:22"},{"assignments":[6641],"declarations":[{"constant":false,"id":6641,"mutability":"mutable","name":"currentUserOffersCounter","nameLocation":"7306:24:22","nodeType":"VariableDeclaration","scope":6673,"src":"7298:32:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6640,"name":"uint256","nodeType":"ElementaryTypeName","src":"7298:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6645,"initialValue":{"baseExpression":{"id":6642,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7333:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6644,"indexExpression":{"id":6643,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"7353:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7333:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7298:60:22"},{"body":{"id":6668,"nodeType":"Block","src":"7419:97:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":6656,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"7431:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":6658,"indexExpression":{"id":6657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7442:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7431:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7445:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"7431:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6660,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6615,"src":"7459:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7431:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6667,"nodeType":"IfStatement","src":"7427:83:22","trueBody":{"id":6666,"nodeType":"Block","src":"7471:39:22","statements":[{"expression":{"baseExpression":{"id":6662,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"7488:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":6664,"indexExpression":{"id":6663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7499:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7488:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"functionReturnParameters":6620,"id":6665,"nodeType":"Return","src":"7481:20:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6650,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7384:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6651,"name":"currentUserOffersCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6641,"src":"7388:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7384:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6669,"initializationExpression":{"assignments":[6647],"declarations":[{"constant":false,"id":6647,"mutability":"mutable","name":"i","nameLocation":"7377:1:22","nodeType":"VariableDeclaration","scope":6669,"src":"7369:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6646,"name":"uint256","nodeType":"ElementaryTypeName","src":"7369:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6649,"initialValue":{"hexValue":"30","id":6648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7381:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7369:13:22"},"loopExpression":{"expression":{"id":6654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7414:3:22","subExpression":{"id":6653,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"7414:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6655,"nodeType":"ExpressionStatement","src":"7414:3:22"},"nodeType":"ForStatement","src":"7364:152:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6670,"name":"_emptyOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"7528:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function () pure returns (struct NofGammaOffersV4.Offer memory)"}},"id":6671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7528:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"functionReturnParameters":6620,"id":6672,"nodeType":"Return","src":"7521:20:22"}]},"functionSelector":"9f915069","id":6674,"implemented":true,"kind":"function","modifiers":[],"name":"getOfferByUserAndCardNumber","nameLocation":"7078:27:22","nodeType":"FunctionDefinition","parameters":{"id":6616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6613,"mutability":"mutable","name":"user","nameLocation":"7119:4:22","nodeType":"VariableDeclaration","scope":6674,"src":"7111:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6612,"name":"address","nodeType":"ElementaryTypeName","src":"7111:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6615,"mutability":"mutable","name":"cardNumber","nameLocation":"7135:10:22","nodeType":"VariableDeclaration","scope":6674,"src":"7129:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6614,"name":"uint8","nodeType":"ElementaryTypeName","src":"7129:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"7105:44:22"},"returnParameters":{"id":6620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6674,"src":"7171:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6618,"nodeType":"UserDefinedTypeName","pathNode":{"id":6617,"name":"Offer","nameLocations":["7171:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"7171:5:22"},"referencedDeclaration":5997,"src":"7171:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"7170:14:22"},"scope":7472,"src":"7069:477:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6687,"nodeType":"Block","src":"7620:68:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6681,"name":"maxOffersByUserAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"7633:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"baseExpression":{"id":6682,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7658:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6684,"indexExpression":{"id":6683,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6676,"src":"7678:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7658:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7633:50:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6680,"id":6686,"nodeType":"Return","src":"7626:57:22"}]},"functionSelector":"29d3f60b","id":6688,"implemented":true,"kind":"function","modifiers":[],"name":"canUserPublishOffer","nameLocation":"7559:19:22","nodeType":"FunctionDefinition","parameters":{"id":6677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6676,"mutability":"mutable","name":"user","nameLocation":"7587:4:22","nodeType":"VariableDeclaration","scope":6688,"src":"7579:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6675,"name":"address","nodeType":"ElementaryTypeName","src":"7579:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7578:14:22"},"returnParameters":{"id":6680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6688,"src":"7614:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6678,"name":"bool","nodeType":"ElementaryTypeName","src":"7614:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7613:6:22"},"scope":7472,"src":"7550:138:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6697,"nodeType":"Block","src":"7753:55:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6693,"name":"maxOffersAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5970,"src":"7766:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6694,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"7785:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7766:37:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6692,"id":6696,"nodeType":"Return","src":"7759:44:22"}]},"functionSelector":"619980dc","id":6698,"implemented":true,"kind":"function","modifiers":[],"name":"canAnyUserPublishOffer","nameLocation":"7701:22:22","nodeType":"FunctionDefinition","parameters":{"id":6689,"nodeType":"ParameterList","parameters":[],"src":"7723:2:22"},"returnParameters":{"id":6692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6691,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6698,"src":"7747:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6690,"name":"bool","nodeType":"ElementaryTypeName","src":"7747:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7746:6:22"},"scope":7472,"src":"7692:116:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6745,"nodeType":"Block","src":"7889:233:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6707,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6700,"src":"7899:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7915:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7907:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6708,"name":"address","nodeType":"ElementaryTypeName","src":"7907:7:22","typeDescriptions":{}}},"id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7907:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7899:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6716,"nodeType":"IfStatement","src":"7895:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6713,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"7926:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7926:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6715,"nodeType":"RevertStatement","src":"7919:23:22"}},{"body":{"id":6741,"nodeType":"Block","src":"8004:96:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":6729,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"8016:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6731,"indexExpression":{"id":6730,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6700,"src":"8029:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8016:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6733,"indexExpression":{"id":6732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"8035:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8016:21:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8038:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"8016:32:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6735,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6702,"src":"8052:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8016:46:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6740,"nodeType":"IfStatement","src":"8012:82:22","trueBody":{"id":6739,"nodeType":"Block","src":"8064:30:22","statements":[{"expression":{"hexValue":"74727565","id":6737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8081:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6706,"id":6738,"nodeType":"Return","src":"8074:11:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7968:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":6722,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"7972:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6724,"indexExpression":{"id":6723,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6700,"src":"7992:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7972:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7968:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6742,"initializationExpression":{"assignments":[6718],"declarations":[{"constant":false,"id":6718,"mutability":"mutable","name":"i","nameLocation":"7961:1:22","nodeType":"VariableDeclaration","scope":6742,"src":"7953:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6717,"name":"uint256","nodeType":"ElementaryTypeName","src":"7953:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6720,"initialValue":{"hexValue":"30","id":6719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7965:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7953:13:22"},"loopExpression":{"expression":{"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7999:3:22","subExpression":{"id":6726,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6718,"src":"7999:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6728,"nodeType":"ExpressionStatement","src":"7999:3:22"},"nodeType":"ForStatement","src":"7948:152:22"},{"expression":{"hexValue":"66616c7365","id":6743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8112:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6706,"id":6744,"nodeType":"Return","src":"8105:12:22"}]},"functionSelector":"2edb5fcf","id":6746,"implemented":true,"kind":"function","modifiers":[],"name":"hasOffer","nameLocation":"7821:8:22","nodeType":"FunctionDefinition","parameters":{"id":6703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6700,"mutability":"mutable","name":"user","nameLocation":"7838:4:22","nodeType":"VariableDeclaration","scope":6746,"src":"7830:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6699,"name":"address","nodeType":"ElementaryTypeName","src":"7830:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6702,"mutability":"mutable","name":"cardNumber","nameLocation":"7850:10:22","nodeType":"VariableDeclaration","scope":6746,"src":"7844:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6701,"name":"uint8","nodeType":"ElementaryTypeName","src":"7844:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"7829:32:22"},"returnParameters":{"id":6706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6746,"src":"7883:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6704,"name":"bool","nodeType":"ElementaryTypeName","src":"7883:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7882:6:22"},"scope":7472,"src":"7812:310:22","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":6874,"nodeType":"Block","src":"8267:1236:22","statements":[{"assignments":[6759],"declarations":[{"constant":false,"id":6759,"mutability":"mutable","name":"offer","nameLocation":"8286:5:22","nodeType":"VariableDeclaration","scope":6874,"src":"8273:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6758,"nodeType":"UserDefinedTypeName","pathNode":{"id":6757,"name":"Offer","nameLocations":["8273:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"8273:5:22"},"referencedDeclaration":5997,"src":"8273:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6764,"initialValue":{"arguments":[{"id":6761,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"8322:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6762,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"8335:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6760,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"8294:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8294:57:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"8273:78:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6765,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"8361:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8367:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"8361:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6767,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"8376:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8361:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6772,"nodeType":"IfStatement","src":"8357:59:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6769,"name":"OfferDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"8396:18:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8396:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6771,"nodeType":"RevertStatement","src":"8389:27:22"}},{"assignments":[6777],"declarations":[{"constant":false,"id":6777,"mutability":"mutable","name":"wantedCardNumbers","nameLocation":"8438:17:22","nodeType":"VariableDeclaration","scope":6874,"src":"8423:32:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6775,"name":"uint8","nodeType":"ElementaryTypeName","src":"8423:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6776,"nodeType":"ArrayTypeName","src":"8423:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"id":6780,"initialValue":{"expression":{"id":6778,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"8458:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8464:17:22","memberName":"wantedCardNumbers","nodeType":"MemberAccess","referencedDeclaration":5992,"src":"8458:23:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8423:58:22"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6781,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"8491:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8509:6:22","memberName":"length","nodeType":"MemberAccess","src":"8491:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8519:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8491:29:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6830,"nodeType":"Block","src":"8698:337:22","statements":[{"assignments":[6796],"declarations":[{"constant":false,"id":6796,"mutability":"mutable","name":"foundCardWanted","nameLocation":"8769:15:22","nodeType":"VariableDeclaration","scope":6830,"src":"8764:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6795,"name":"bool","nodeType":"ElementaryTypeName","src":"8764:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6798,"initialValue":{"hexValue":"66616c7365","id":6797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8787:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"8764:28:22"},{"body":{"id":6822,"nodeType":"Block","src":"8853:126:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6810,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"8867:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6812,"indexExpression":{"id":6811,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8885:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8867:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6813,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"8891:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8867:40:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6821,"nodeType":"IfStatement","src":"8863:108:22","trueBody":{"id":6820,"nodeType":"Block","src":"8909:62:22","statements":[{"expression":{"id":6817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6815,"name":"foundCardWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6796,"src":"8921:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8939:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8921:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6818,"nodeType":"ExpressionStatement","src":"8921:22:22"},{"id":6819,"nodeType":"Break","src":"8955:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6803,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8818:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6804,"name":"wantedCardNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"8822:17:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},"id":6805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8840:6:22","memberName":"length","nodeType":"MemberAccess","src":"8822:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8818:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6823,"initializationExpression":{"assignments":[6800],"declarations":[{"constant":false,"id":6800,"mutability":"mutable","name":"j","nameLocation":"8811:1:22","nodeType":"VariableDeclaration","scope":6823,"src":"8805:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6799,"name":"uint8","nodeType":"ElementaryTypeName","src":"8805:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":6802,"initialValue":{"hexValue":"30","id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8815:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8805:11:22"},"loopExpression":{"expression":{"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8848:3:22","subExpression":{"id":6807,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"8848:1:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6809,"nodeType":"ExpressionStatement","src":"8848:3:22"},"nodeType":"ForStatement","src":"8800:179:22"},{"condition":{"id":6825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8990:16:22","subExpression":{"id":6824,"name":"foundCardWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6796,"src":"8991:15:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6829,"nodeType":"IfStatement","src":"8986:42:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6826,"name":"InvalidCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5909,"src":"9015:11:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9015:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6828,"nodeType":"RevertStatement","src":"9008:20:22"}}]},"id":6831,"nodeType":"IfStatement","src":"8487:548:22","trueBody":{"id":6794,"nodeType":"Block","src":"8522:170:22","statements":[{"condition":{"arguments":[{"id":6787,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"8618:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6788,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"8631:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6785,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"8584:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8603:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"8584:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8584:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6793,"nodeType":"IfStatement","src":"8580:105:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6790,"name":"UserAlreadyHasCard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5907,"src":"8665:18:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8665:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6792,"nodeType":"RevertStatement","src":"8658:27:22"}}]}},{"assignments":[6833],"declarations":[{"constant":false,"id":6833,"mutability":"mutable","name":"offerDeleted","nameLocation":"9046:12:22","nodeType":"VariableDeclaration","scope":6874,"src":"9041:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6832,"name":"bool","nodeType":"ElementaryTypeName","src":"9041:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6841,"initialValue":{"arguments":[{"id":6835,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"9100:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6836,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"9119:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":6837,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6759,"src":"9142:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9148:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"9142:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":6839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9163:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6834,"name":"_removeOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"9061:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (address,uint8,string memory,bool) returns (bool)"}},"id":6840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9061:112:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9041:132:22"},{"condition":{"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9183:13:22","subExpression":{"id":6842,"name":"offerDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6833,"src":"9184:12:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6847,"nodeType":"IfStatement","src":"9179:43:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6844,"name":"OfferNotDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5911,"src":"9205:15:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:17:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6846,"nodeType":"RevertStatement","src":"9198:24:22"}},{"expression":{"arguments":[{"id":6851,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6748,"src":"9267:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6852,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"9273:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6853,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"9291:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6854,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"9304:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6848,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"9229:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9248:18:22","memberName":"exchangeCardsOffer","nodeType":"MemberAccess","referencedDeclaration":5951,"src":"9229:37:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8,address,uint8) external"}},"id":6855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9229:91:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6856,"nodeType":"ExpressionStatement","src":"9229:91:22"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9337:57:22","subExpression":{"arguments":[{"id":6859,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6748,"src":"9372:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6860,"name":"offerCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6754,"src":"9378:15:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6857,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"9338:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9357:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"9338:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9338:56:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9404:65:22","subExpression":{"arguments":[{"id":6865,"name":"offerWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6752,"src":"9439:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6866,"name":"cardNumberWanted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"9452:16:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6863,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"9405:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":6864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9424:14:22","memberName":"hasCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5926,"src":"9405:33:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,uint8) external returns (bool)"}},"id":6867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9405:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9337:132:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6873,"nodeType":"IfStatement","src":"9326:172:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6870,"name":"ExchangeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"9483:13:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9483:15:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6872,"nodeType":"RevertStatement","src":"9476:22:22"}}]},"functionSelector":"c08029e7","id":6875,"implemented":true,"kind":"function","modifiers":[],"name":"confirmOfferExchange","nameLocation":"8135:20:22","nodeType":"FunctionDefinition","parameters":{"id":6755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6748,"mutability":"mutable","name":"from","nameLocation":"8169:4:22","nodeType":"VariableDeclaration","scope":6875,"src":"8161:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6747,"name":"address","nodeType":"ElementaryTypeName","src":"8161:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6750,"mutability":"mutable","name":"cardNumberWanted","nameLocation":"8185:16:22","nodeType":"VariableDeclaration","scope":6875,"src":"8179:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6749,"name":"uint8","nodeType":"ElementaryTypeName","src":"8179:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6752,"mutability":"mutable","name":"offerWallet","nameLocation":"8215:11:22","nodeType":"VariableDeclaration","scope":6875,"src":"8207:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6751,"name":"address","nodeType":"ElementaryTypeName","src":"8207:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6754,"mutability":"mutable","name":"offerCardNumber","nameLocation":"8238:15:22","nodeType":"VariableDeclaration","scope":6875,"src":"8232:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6753,"name":"uint8","nodeType":"ElementaryTypeName","src":"8232:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8155:102:22"},"returnParameters":{"id":6756,"nodeType":"ParameterList","parameters":[],"src":"8267:0:22"},"scope":7472,"src":"8126:1377:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6937,"nodeType":"Block","src":"9554:345:22","statements":[{"body":{"id":6925,"nodeType":"Block","src":"9604:214:22","statements":[{"expression":{"id":6897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9612:36:22","subExpression":{"baseExpression":{"id":6891,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"9619:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6896,"indexExpression":{"expression":{"baseExpression":{"id":6892,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9632:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6894,"indexExpression":{"id":6893,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9639:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9632:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9642:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"9632:15:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9619:29:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6898,"nodeType":"ExpressionStatement","src":"9612:36:22"},{"expression":{"id":6906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6899,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"9656:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":6904,"indexExpression":{"expression":{"baseExpression":{"id":6900,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9676:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6902,"indexExpression":{"id":6901,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9683:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9676:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9686:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"9676:15:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9656:36:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":6905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9695:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9656:40:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6907,"nodeType":"ExpressionStatement","src":"9656:40:22"},{"expression":{"id":6914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9705:47:22","subExpression":{"baseExpression":{"id":6908,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"9712:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":6913,"indexExpression":{"expression":{"baseExpression":{"id":6909,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9731:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6911,"indexExpression":{"id":6910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9738:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9731:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9741:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"9731:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9712:40:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6915,"nodeType":"ExpressionStatement","src":"9705:47:22"},{"expression":{"id":6923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6916,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"9760:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":6921,"indexExpression":{"expression":{"baseExpression":{"id":6917,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9786:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6919,"indexExpression":{"id":6918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9793:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9786:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":6920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9796:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"9786:20:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9760:47:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":6922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9810:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9760:51:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6924,"nodeType":"ExpressionStatement","src":"9760:51:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9580:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6885,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9584:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":6886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9591:6:22","memberName":"length","nodeType":"MemberAccess","src":"9584:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6926,"initializationExpression":{"assignments":[6881],"declarations":[{"constant":false,"id":6881,"mutability":"mutable","name":"i","nameLocation":"9573:1:22","nodeType":"VariableDeclaration","scope":6926,"src":"9565:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6880,"name":"uint256","nodeType":"ElementaryTypeName","src":"9565:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6883,"initialValue":{"hexValue":"30","id":6882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9577:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9565:13:22"},"loopExpression":{"expression":{"id":6889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9599:3:22","subExpression":{"id":6888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"9599:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6890,"nodeType":"ExpressionStatement","src":"9599:3:22"},"nodeType":"ForStatement","src":"9560:258:22"},{"expression":{"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6927,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"9823:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9844:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9823:22:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6930,"nodeType":"ExpressionStatement","src":"9823:22:22"},{"expression":{"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9851:13:22","subExpression":{"id":6931,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"9858:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6933,"nodeType":"ExpressionStatement","src":"9851:13:22"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6934,"name":"AllOffersRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"9876:16:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9876:18:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6936,"nodeType":"EmitStatement","src":"9871:23:22"}]},"functionSelector":"322fba27","id":6938,"implemented":true,"kind":"function","modifiers":[{"id":6878,"kind":"modifierInvocation","modifierName":{"id":6877,"name":"onlyOwners","nameLocations":["9543:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"9543:10:22"},"nodeType":"ModifierInvocation","src":"9543:10:22"}],"name":"deleteAllOffers","nameLocation":"9516:15:22","nodeType":"FunctionDefinition","parameters":{"id":6876,"nodeType":"ParameterList","parameters":[],"src":"9531:2:22"},"returnParameters":{"id":6879,"nodeType":"ParameterList","parameters":[],"src":"9554:0:22"},"scope":7472,"src":"9507:392:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":6976,"nodeType":"Block","src":"9978:262:22","statements":[{"assignments":[6947],"declarations":[{"constant":false,"id":6947,"mutability":"mutable","name":"offer","nameLocation":"9997:5:22","nodeType":"VariableDeclaration","scope":6976,"src":"9984:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6946,"nodeType":"UserDefinedTypeName","pathNode":{"id":6945,"name":"Offer","nameLocations":["9984:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"9984:5:22"},"referencedDeclaration":5997,"src":"9984:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6953,"initialValue":{"arguments":[{"expression":{"id":6949,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10033:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10037:6:22","memberName":"sender","nodeType":"MemberAccess","src":"10033:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6951,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"10045:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6948,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"10005:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10005:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"9984:72:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6954,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"10066:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10072:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"10066:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6956,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10081:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10085:6:22","memberName":"sender","nodeType":"MemberAccess","src":"10081:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10066:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6962,"nodeType":"IfStatement","src":"10062:58:22","trueBody":{"id":6961,"nodeType":"Block","src":"10093:27:22","statements":[{"expression":{"hexValue":"66616c7365","id":6959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10108:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6944,"id":6960,"nodeType":"Return","src":"10101:12:22"}]}},{"assignments":[6964],"declarations":[{"constant":false,"id":6964,"mutability":"mutable","name":"result","nameLocation":"10130:6:22","nodeType":"VariableDeclaration","scope":6976,"src":"10125:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6963,"name":"bool","nodeType":"ElementaryTypeName","src":"10125:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6973,"initialValue":{"arguments":[{"expression":{"id":6966,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10171:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10175:6:22","memberName":"sender","nodeType":"MemberAccess","src":"10171:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6968,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6940,"src":"10183:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":6969,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6947,"src":"10195:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10201:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"10195:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":6971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10210:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6965,"name":"_removeOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"10139:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (address,uint8,string memory,bool) returns (bool)"}},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10139:77:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10125:91:22"},{"expression":{"id":6974,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"10229:6:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6944,"id":6975,"nodeType":"Return","src":"10222:13:22"}]},"functionSelector":"3a027073","id":6977,"implemented":true,"kind":"function","modifiers":[],"name":"removeOfferByCardNumber","nameLocation":"9912:23:22","nodeType":"FunctionDefinition","parameters":{"id":6941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6940,"mutability":"mutable","name":"cardNumber","nameLocation":"9942:10:22","nodeType":"VariableDeclaration","scope":6977,"src":"9936:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6939,"name":"uint8","nodeType":"ElementaryTypeName","src":"9936:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9935:18:22"},"returnParameters":{"id":6944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6977,"src":"9972:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6942,"name":"bool","nodeType":"ElementaryTypeName","src":"9972:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9971:6:22"},"scope":7472,"src":"9903:337:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7016,"nodeType":"Block","src":"10361:244:22","statements":[{"assignments":[6990],"declarations":[{"constant":false,"id":6990,"mutability":"mutable","name":"offer","nameLocation":"10380:5:22","nodeType":"VariableDeclaration","scope":7016,"src":"10367:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":6989,"nodeType":"UserDefinedTypeName","pathNode":{"id":6988,"name":"Offer","nameLocations":["10367:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"10367:5:22"},"referencedDeclaration":5997,"src":"10367:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"id":6995,"initialValue":{"arguments":[{"id":6992,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"10416:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6993,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10422:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":6991,"name":"getOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6674,"src":"10388:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint8_$returns$_t_struct$_Offer_$5997_memory_ptr_$","typeString":"function (address,uint8) view returns (struct NofGammaOffersV4.Offer memory)"}},"id":6994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10388:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"nodeType":"VariableDeclarationStatement","src":"10367:66:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6996,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"10443:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":6997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10449:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"10443:11:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6998,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"10458:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10443:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7003,"nodeType":"IfStatement","src":"10439:52:22","trueBody":{"id":7002,"nodeType":"Block","src":"10464:27:22","statements":[{"expression":{"hexValue":"66616c7365","id":7000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10479:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6987,"id":7001,"nodeType":"Return","src":"10472:12:22"}]}},{"assignments":[7005],"declarations":[{"constant":false,"id":7005,"mutability":"mutable","name":"result","nameLocation":"10501:6:22","nodeType":"VariableDeclaration","scope":7016,"src":"10496:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7004,"name":"bool","nodeType":"ElementaryTypeName","src":"10496:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7013,"initialValue":{"arguments":[{"id":7007,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"10542:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7008,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10548:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":7009,"name":"offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6990,"src":"10560:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"id":7010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10566:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"10560:13:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":7011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10575:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7006,"name":"_removeOfferByUserAndCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"10510:31:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bool_$returns$_t_bool_$","typeString":"function (address,uint8,string memory,bool) returns (bool)"}},"id":7012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10510:71:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10496:85:22"},{"expression":{"id":7014,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7005,"src":"10594:6:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6987,"id":7015,"nodeType":"Return","src":"10587:13:22"}]},"functionSelector":"5bbfbfd6","id":7017,"implemented":true,"kind":"function","modifiers":[{"id":6984,"kind":"modifierInvocation","modifierName":{"id":6983,"name":"onlyOwners","nameLocations":["10335:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":6077,"src":"10335:10:22"},"nodeType":"ModifierInvocation","src":"10335:10:22"}],"name":"removeOfferByUserAndCardNumber","nameLocation":"10253:30:22","nodeType":"FunctionDefinition","parameters":{"id":6982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6979,"mutability":"mutable","name":"user","nameLocation":"10297:4:22","nodeType":"VariableDeclaration","scope":7017,"src":"10289:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6978,"name":"address","nodeType":"ElementaryTypeName","src":"10289:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6981,"mutability":"mutable","name":"cardNumber","nameLocation":"10313:10:22","nodeType":"VariableDeclaration","scope":7017,"src":"10307:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6980,"name":"uint8","nodeType":"ElementaryTypeName","src":"10307:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"10283:44:22"},"returnParameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7017,"src":"10355:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6985,"name":"bool","nodeType":"ElementaryTypeName","src":"10355:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10354:6:22"},"scope":7472,"src":"10244:361:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7114,"nodeType":"Block","src":"10693:656:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7026,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"10703:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10719:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10711:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7027,"name":"address","nodeType":"ElementaryTypeName","src":"10711:7:22","typeDescriptions":{}}},"id":7030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10711:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10703:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7035,"nodeType":"IfStatement","src":"10699:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7032,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"10730:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10730:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7034,"nodeType":"RevertStatement","src":"10723:23:22"}},{"assignments":[7040],"declarations":[{"constant":false,"id":7040,"mutability":"mutable","name":"userOffers","nameLocation":"10769:10:22","nodeType":"VariableDeclaration","scope":7114,"src":"10753:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":7038,"nodeType":"UserDefinedTypeName","pathNode":{"id":7037,"name":"Offer","nameLocations":["10753:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"10753:5:22"},"referencedDeclaration":5997,"src":"10753:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":7039,"nodeType":"ArrayTypeName","src":"10753:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":7044,"initialValue":{"baseExpression":{"id":7041,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"10782:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7043,"indexExpression":{"id":7042,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"10795:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10782:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10753:47:22"},{"assignments":[7046],"declarations":[{"constant":false,"id":7046,"mutability":"mutable","name":"currentUserOffersCounter","nameLocation":"10814:24:22","nodeType":"VariableDeclaration","scope":7114,"src":"10806:32:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"10806:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7050,"initialValue":{"baseExpression":{"id":7047,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"10841:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7049,"indexExpression":{"id":7048,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"10861:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10841:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10806:60:22"},{"body":{"id":7095,"nodeType":"Block","src":"10928:298:22","statements":[{"assignments":[7062],"declarations":[{"constant":false,"id":7062,"mutability":"mutable","name":"offerId","nameLocation":"10950:7:22","nodeType":"VariableDeclaration","scope":7095,"src":"10936:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7061,"name":"string","nodeType":"ElementaryTypeName","src":"10936:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":7067,"initialValue":{"expression":{"baseExpression":{"id":7063,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"10960:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7065,"indexExpression":{"id":7064,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"10971:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10960:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10974:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"10960:21:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10936:45:22"},{"assignments":[7069],"declarations":[{"constant":false,"id":7069,"mutability":"mutable","name":"cardNumber","nameLocation":"10995:10:22","nodeType":"VariableDeclaration","scope":7095,"src":"10989:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7068,"name":"uint8","nodeType":"ElementaryTypeName","src":"10989:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":7074,"initialValue":{"expression":{"baseExpression":{"id":7070,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7040,"src":"11008:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7072,"indexExpression":{"id":7071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"11019:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11008:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11022:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"11008:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"10989:43:22"},{"expression":{"arguments":[{"id":7076,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11074:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7077,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"11080:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7078,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"11092:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7075,"name":"_removeOfferFromCardNumberMapping","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7358,"src":"11040:33:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint8,string memory)"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11040:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7080,"nodeType":"ExpressionStatement","src":"11040:60:22"},{"expression":{"arguments":[{"id":7082,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"11130:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7081,"name":"_removeOfferByOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"11108:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) returns (bool)"}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11108:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7084,"nodeType":"ExpressionStatement","src":"11108:30:22"},{"expression":{"id":7089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7085,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"11146:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":7087,"indexExpression":{"id":7086,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"11172:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11146:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11187:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11146:42:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7090,"nodeType":"ExpressionStatement","src":"11146:42:22"},{"expression":{"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7091,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"11196:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11218:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11196:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7094,"nodeType":"ExpressionStatement","src":"11196:23:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"10893:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7056,"name":"currentUserOffersCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"10897:24:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10893:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7096,"initializationExpression":{"assignments":[7052],"declarations":[{"constant":false,"id":7052,"mutability":"mutable","name":"i","nameLocation":"10886:1:22","nodeType":"VariableDeclaration","scope":7096,"src":"10878:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7051,"name":"uint256","nodeType":"ElementaryTypeName","src":"10878:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7054,"initialValue":{"hexValue":"30","id":7053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10890:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10878:13:22"},"loopExpression":{"expression":{"id":7059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10923:3:22","subExpression":{"id":7058,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"10923:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7060,"nodeType":"ExpressionStatement","src":"10923:3:22"},"nodeType":"ForStatement","src":"10873:353:22"},{"expression":{"id":7100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11232:25:22","subExpression":{"baseExpression":{"id":7097,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"11239:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7099,"indexExpression":{"id":7098,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11252:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11239:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7101,"nodeType":"ExpressionStatement","src":"11232:25:22"},{"expression":{"id":7106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7102,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"11263:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7104,"indexExpression":{"id":7103,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11283:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11263:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":7105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11291:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11263:29:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7107,"nodeType":"ExpressionStatement","src":"11263:29:22"},{"eventCall":{"arguments":[{"id":7109,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"11322:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7108,"name":"UserOffersRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"11304:17:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11304:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7111,"nodeType":"EmitStatement","src":"11299:28:22"},{"expression":{"hexValue":"74727565","id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11340:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7025,"id":7113,"nodeType":"Return","src":"11333:11:22"}]},"functionSelector":"fc9e80fc","id":7115,"implemented":true,"kind":"function","modifiers":[{"id":7022,"kind":"modifierInvocation","modifierName":{"id":7021,"name":"onlyCardsContract","nameLocations":["10660:17:22"],"nodeType":"IdentifierPath","referencedDeclaration":6063,"src":"10660:17:22"},"nodeType":"ModifierInvocation","src":"10660:17:22"}],"name":"removeOffersByUser","nameLocation":"10618:18:22","nodeType":"FunctionDefinition","parameters":{"id":7020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"user","nameLocation":"10645:4:22","nodeType":"VariableDeclaration","scope":7115,"src":"10637:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7018,"name":"address","nodeType":"ElementaryTypeName","src":"10637:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10636:14:22"},"returnParameters":{"id":7025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7115,"src":"10687:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7023,"name":"bool","nodeType":"ElementaryTypeName","src":"10687:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10686:6:22"},"scope":7472,"src":"10609:740:22","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7190,"nodeType":"Block","src":"11523:534:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7128,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11533:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11549:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11541:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7129,"name":"address","nodeType":"ElementaryTypeName","src":"11541:7:22","typeDescriptions":{}}},"id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11541:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11533:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7137,"nodeType":"IfStatement","src":"11529:47:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7134,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"11560:14:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11560:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7136,"nodeType":"RevertStatement","src":"11553:23:22"}},{"expression":{"arguments":[{"id":7139,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11611:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7140,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11617:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7141,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"11629:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7138,"name":"_removeOfferFromUserMapping","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7275,"src":"11583:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint8,string memory)"}},"id":7142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11583:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7143,"nodeType":"ExpressionStatement","src":"11583:54:22"},{"expression":{"arguments":[{"id":7145,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11677:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7146,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11683:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":7147,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"11695:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7144,"name":"_removeOfferFromCardNumberMapping","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7358,"src":"11643:33:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint8,string memory)"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11643:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7149,"nodeType":"ExpressionStatement","src":"11643:60:22"},{"expression":{"arguments":[{"id":7151,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7121,"src":"11731:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7150,"name":"_removeOfferByOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7425,"src":"11709:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) returns (bool)"}},"id":7152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11709:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7153,"nodeType":"ExpressionStatement","src":"11709:30:22"},{"expression":{"id":7158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7154,"name":"offersByUserCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"11745:19:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7156,"indexExpression":{"id":7155,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11765:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11745:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11774:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11745:30:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7159,"nodeType":"ExpressionStatement","src":"11745:30:22"},{"expression":{"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7160,"name":"offersByCardNumberCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6021,"src":"11781:25:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_uint256_$","typeString":"mapping(uint8 => uint256)"}},"id":7162,"indexExpression":{"id":7161,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11807:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11781:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11822:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11781:42:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7165,"nodeType":"ExpressionStatement","src":"11781:42:22"},{"expression":{"id":7168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7166,"name":"offersTotalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6023,"src":"11829:18:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":7167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11851:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11829:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7169,"nodeType":"ExpressionStatement","src":"11829:23:22"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7170,"name":"removeCardInInventoryWhenOffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"11863:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":7172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11897:25:22","subExpression":{"id":7171,"name":"fromConfirmOfferExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7123,"src":"11898:24:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11863:59:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7182,"nodeType":"IfStatement","src":"11859:135:22","trueBody":{"id":7181,"nodeType":"Block","src":"11924:70:22","statements":[{"expression":{"arguments":[{"id":7177,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"11970:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7178,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"11976:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":7174,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"11932:18:22","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$5952","typeString":"contract IGammaCardsContract"}},"id":7176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11951:18:22","memberName":"restoreCardByOffer","nodeType":"MemberAccess","referencedDeclaration":5940,"src":"11932:37:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8) external"}},"id":7179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11932:55:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7180,"nodeType":"ExpressionStatement","src":"11932:55:22"}]}},{"eventCall":{"arguments":[{"id":7184,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"12018:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7185,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"12024:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":7183,"name":"OfferRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"12005:12:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint8_$returns$__$","typeString":"function (address,uint8)"}},"id":7186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12005:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7187,"nodeType":"EmitStatement","src":"12000:35:22"},{"expression":{"hexValue":"74727565","id":7188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12048:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7127,"id":7189,"nodeType":"Return","src":"12041:11:22"}]},"id":7191,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferByUserAndCardNumber","nameLocation":"11362:31:22","nodeType":"FunctionDefinition","parameters":{"id":7124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7117,"mutability":"mutable","name":"user","nameLocation":"11407:4:22","nodeType":"VariableDeclaration","scope":7191,"src":"11399:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7116,"name":"address","nodeType":"ElementaryTypeName","src":"11399:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7119,"mutability":"mutable","name":"cardNumber","nameLocation":"11423:10:22","nodeType":"VariableDeclaration","scope":7191,"src":"11417:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7118,"name":"uint8","nodeType":"ElementaryTypeName","src":"11417:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7121,"mutability":"mutable","name":"offerId","nameLocation":"11453:7:22","nodeType":"VariableDeclaration","scope":7191,"src":"11439:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7120,"name":"string","nodeType":"ElementaryTypeName","src":"11439:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7123,"mutability":"mutable","name":"fromConfirmOfferExchange","nameLocation":"11471:24:22","nodeType":"VariableDeclaration","scope":7191,"src":"11466:29:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7122,"name":"bool","nodeType":"ElementaryTypeName","src":"11466:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11393:106:22"},"returnParameters":{"id":7127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7191,"src":"11517:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7125,"name":"bool","nodeType":"ElementaryTypeName","src":"11517:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11516:6:22"},"scope":7472,"src":"11353:704:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7274,"nodeType":"Block","src":"12177:480:22","statements":[{"assignments":[7204],"declarations":[{"constant":false,"id":7204,"mutability":"mutable","name":"userOffers","nameLocation":"12199:10:22","nodeType":"VariableDeclaration","scope":7274,"src":"12183:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":7202,"nodeType":"UserDefinedTypeName","pathNode":{"id":7201,"name":"Offer","nameLocations":["12183:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"12183:5:22"},"referencedDeclaration":5997,"src":"12183:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":7203,"nodeType":"ArrayTypeName","src":"12183:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":7208,"initialValue":{"baseExpression":{"id":7205,"name":"offersByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"12212:12:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(address => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7207,"indexExpression":{"id":7206,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"12225:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12212:18:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12183:47:22"},{"body":{"id":7272,"nodeType":"Block","src":"12284:369:22","statements":[{"condition":{"arguments":[{"expression":{"baseExpression":{"id":7221,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12309:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7223,"indexExpression":{"id":7222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12320:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12309:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12323:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"12309:21:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":7225,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7197,"src":"12332:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7220,"name":"_sameOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"12296:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure returns (bool)"}},"id":7226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12296:44:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7271,"nodeType":"IfStatement","src":"12292:355:22","trueBody":{"id":7270,"nodeType":"Block","src":"12342:305:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7227,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12356:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7229,"indexExpression":{"id":7228,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12367:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12356:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12370:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"12356:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7231,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7193,"src":"12379:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12356:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7233,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12387:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7235,"indexExpression":{"id":7234,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12398:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12387:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12401:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"12387:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7237,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"12415:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12387:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12356:69:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7243,"nodeType":"IfStatement","src":"12352:131:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7240,"name":"RemoveOfferFromUserMapping_DoNotMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5913,"src":"12444:37:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12444:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7242,"nodeType":"RevertStatement","src":"12437:46:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12497:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7245,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12502:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12513:6:22","memberName":"length","nodeType":"MemberAccess","src":"12502:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12522:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12502:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12501:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12497:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7263,"nodeType":"IfStatement","src":"12493:105:22","trueBody":{"id":7262,"nodeType":"Block","src":"12526:72:22","statements":[{"expression":{"id":7260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7251,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12538:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7253,"indexExpression":{"id":7252,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12549:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12538:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7254,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12554:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7259,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7255,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12565:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12576:6:22","memberName":"length","nodeType":"MemberAccess","src":"12565:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12585:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12565:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12554:33:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"src":"12538:49:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7261,"nodeType":"ExpressionStatement","src":"12538:49:22"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7264,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12607:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12618:3:22","memberName":"pop","nodeType":"MemberAccess","src":"12607:14:22","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12607:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7268,"nodeType":"ExpressionStatement","src":"12607:16:22"},{"id":7269,"nodeType":"Break","src":"12633:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7213,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12256:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7214,"name":"userOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"12260:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12271:6:22","memberName":"length","nodeType":"MemberAccess","src":"12260:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12256:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7273,"initializationExpression":{"assignments":[7210],"declarations":[{"constant":false,"id":7210,"mutability":"mutable","name":"i","nameLocation":"12249:1:22","nodeType":"VariableDeclaration","scope":7273,"src":"12241:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7209,"name":"uint256","nodeType":"ElementaryTypeName","src":"12241:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7212,"initialValue":{"hexValue":"30","id":7211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12253:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12241:13:22"},"loopExpression":{"expression":{"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12279:3:22","subExpression":{"id":7217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7210,"src":"12279:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7219,"nodeType":"ExpressionStatement","src":"12279:3:22"},"nodeType":"ForStatement","src":"12236:417:22"}]},"id":7275,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferFromUserMapping","nameLocation":"12070:27:22","nodeType":"FunctionDefinition","parameters":{"id":7198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7193,"mutability":"mutable","name":"user","nameLocation":"12111:4:22","nodeType":"VariableDeclaration","scope":7275,"src":"12103:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7192,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7195,"mutability":"mutable","name":"cardNumber","nameLocation":"12127:10:22","nodeType":"VariableDeclaration","scope":7275,"src":"12121:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7194,"name":"uint8","nodeType":"ElementaryTypeName","src":"12121:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7197,"mutability":"mutable","name":"offerId","nameLocation":"12157:7:22","nodeType":"VariableDeclaration","scope":7275,"src":"12143:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7196,"name":"string","nodeType":"ElementaryTypeName","src":"12143:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12097:71:22"},"returnParameters":{"id":7199,"nodeType":"ParameterList","parameters":[],"src":"12177:0:22"},"scope":7472,"src":"12061:596:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7357,"nodeType":"Block","src":"12783:498:22","statements":[{"assignments":[7288],"declarations":[{"constant":false,"id":7288,"mutability":"mutable","name":"cardOffers","nameLocation":"12805:10:22","nodeType":"VariableDeclaration","scope":7357,"src":"12789:26:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"},"typeName":{"baseType":{"id":7286,"nodeType":"UserDefinedTypeName","pathNode":{"id":7285,"name":"Offer","nameLocations":["12789:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"12789:5:22"},"referencedDeclaration":5997,"src":"12789:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"id":7287,"nodeType":"ArrayTypeName","src":"12789:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer[]"}},"visibility":"internal"}],"id":7292,"initialValue":{"baseExpression":{"id":7289,"name":"offersByCardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"12818:18:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint8_$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_$","typeString":"mapping(uint8 => struct NofGammaOffersV4.Offer storage ref[] storage ref)"}},"id":7291,"indexExpression":{"id":7290,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"12837:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12818:30:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12789:59:22"},{"body":{"id":7355,"nodeType":"Block","src":"12903:374:22","statements":[{"condition":{"arguments":[{"expression":{"baseExpression":{"id":7305,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12928:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7307,"indexExpression":{"id":7306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12939:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12928:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12942:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"12928:21:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":7309,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"12951:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7304,"name":"_sameOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"12915:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure returns (bool)"}},"id":7310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12915:44:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7354,"nodeType":"IfStatement","src":"12911:360:22","trueBody":{"id":7353,"nodeType":"Block","src":"12961:310:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7311,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12975:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7313,"indexExpression":{"id":7312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12986:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12975:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12989:5:22","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5994,"src":"12975:19:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7315,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7277,"src":"12998:4:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12975:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":7317,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13006:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7319,"indexExpression":{"id":7318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"13017:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13006:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13020:10:22","memberName":"cardNumber","nodeType":"MemberAccess","referencedDeclaration":5989,"src":"13006:24:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7321,"name":"cardNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"13034:10:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13006:38:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12975:69:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7327,"nodeType":"IfStatement","src":"12971:137:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7324,"name":"RemoveOfferFromCardNumberMapping_DoNotMatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5915,"src":"13063:43:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13063:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7326,"nodeType":"RevertStatement","src":"13056:52:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"13123:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7329,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13127:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13138:6:22","memberName":"length","nodeType":"MemberAccess","src":"13127:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13147:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13127:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13123:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7346,"nodeType":"IfStatement","src":"13119:103:22","trueBody":{"id":7345,"nodeType":"Block","src":"13150:72:22","statements":[{"expression":{"id":7343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7334,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13162:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7336,"indexExpression":{"id":7335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"13173:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13162:13:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7337,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13178:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7342,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7338,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13189:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13200:6:22","memberName":"length","nodeType":"MemberAccess","src":"13189:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13209:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13189:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13178:33:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"src":"13162:49:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7344,"nodeType":"ExpressionStatement","src":"13162:49:22"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7347,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"13231:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13242:3:22","memberName":"pop","nodeType":"MemberAccess","src":"13231:14:22","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer)"}},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13231:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7351,"nodeType":"ExpressionStatement","src":"13231:16:22"},{"id":7352,"nodeType":"Break","src":"13257:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12875:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7298,"name":"cardOffers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12879:10:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage pointer"}},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12890:6:22","memberName":"length","nodeType":"MemberAccess","src":"12879:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12875:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7356,"initializationExpression":{"assignments":[7294],"declarations":[{"constant":false,"id":7294,"mutability":"mutable","name":"i","nameLocation":"12868:1:22","nodeType":"VariableDeclaration","scope":7356,"src":"12860:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7293,"name":"uint256","nodeType":"ElementaryTypeName","src":"12860:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7296,"initialValue":{"hexValue":"30","id":7295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12872:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12860:13:22"},"loopExpression":{"expression":{"id":7302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12898:3:22","subExpression":{"id":7301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7294,"src":"12898:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7303,"nodeType":"ExpressionStatement","src":"12898:3:22"},"nodeType":"ForStatement","src":"12855:422:22"}]},"id":7358,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferFromCardNumberMapping","nameLocation":"12670:33:22","nodeType":"FunctionDefinition","parameters":{"id":7282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7277,"mutability":"mutable","name":"user","nameLocation":"12717:4:22","nodeType":"VariableDeclaration","scope":7358,"src":"12709:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7276,"name":"address","nodeType":"ElementaryTypeName","src":"12709:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7279,"mutability":"mutable","name":"cardNumber","nameLocation":"12733:10:22","nodeType":"VariableDeclaration","scope":7358,"src":"12727:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7278,"name":"uint8","nodeType":"ElementaryTypeName","src":"12727:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7281,"mutability":"mutable","name":"offerId","nameLocation":"12763:7:22","nodeType":"VariableDeclaration","scope":7358,"src":"12749:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7280,"name":"string","nodeType":"ElementaryTypeName","src":"12749:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12703:71:22"},"returnParameters":{"id":7283,"nodeType":"ParameterList","parameters":[],"src":"12783:0:22"},"scope":7472,"src":"12661:620:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7424,"nodeType":"Block","src":"13362:324:22","statements":[{"assignments":[7366],"declarations":[{"constant":false,"id":7366,"mutability":"mutable","name":"deleted","nameLocation":"13373:7:22","nodeType":"VariableDeclaration","scope":7424,"src":"13368:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7365,"name":"bool","nodeType":"ElementaryTypeName","src":"13368:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7368,"initialValue":{"hexValue":"66616c7365","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13383:5:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"13368:20:22"},{"body":{"id":7420,"nodeType":"Block","src":"13438:224:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7380,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13450:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7381,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13454:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13461:6:22","memberName":"length","nodeType":"MemberAccess","src":"13454:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13450:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"expression":{"baseExpression":{"id":7385,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13484:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7387,"indexExpression":{"id":7386,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13491:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13484:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13494:7:22","memberName":"offerId","nodeType":"MemberAccess","referencedDeclaration":5987,"src":"13484:17:22","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":7389,"name":"offerId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7360,"src":"13503:7:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7384,"name":"_sameOfferId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7471,"src":"13471:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure returns (bool)"}},"id":7390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13471:40:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13450:61:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7419,"nodeType":"IfStatement","src":"13446:210:22","trueBody":{"id":7418,"nodeType":"Block","src":"13513:143:22","statements":[{"expression":{"id":7395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13523:16:22","subExpression":{"baseExpression":{"id":7392,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13530:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7394,"indexExpression":{"id":7393,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13537:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13530:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7396,"nodeType":"ExpressionStatement","src":"13523:16:22"},{"expression":{"id":7406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7397,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13549:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7399,"indexExpression":{"id":7398,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13556:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13549:9:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":7400,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13561:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7405,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7401,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13568:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13575:6:22","memberName":"length","nodeType":"MemberAccess","src":"13568:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13584:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13568:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13561:25:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"src":"13549:37:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage","typeString":"struct NofGammaOffersV4.Offer storage ref"}},"id":7407,"nodeType":"ExpressionStatement","src":"13549:37:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7408,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13596:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13603:3:22","memberName":"pop","nodeType":"MemberAccess","src":"13596:10:22","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Offer_$5997_storage_$dyn_storage_ptr_$","typeString":"function (struct NofGammaOffersV4.Offer storage ref[] storage pointer)"}},"id":7411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13596:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7412,"nodeType":"ExpressionStatement","src":"13596:12:22"},{"expression":{"id":7415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7413,"name":"deleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7366,"src":"13618:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13628:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13618:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7416,"nodeType":"ExpressionStatement","src":"13618:14:22"},{"id":7417,"nodeType":"Break","src":"13642:5:22"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7373,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13414:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7374,"name":"offers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"13418:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Offer_$5997_storage_$dyn_storage","typeString":"struct NofGammaOffersV4.Offer storage ref[] storage ref"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13425:6:22","memberName":"length","nodeType":"MemberAccess","src":"13418:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13414:17:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7421,"initializationExpression":{"assignments":[7370],"declarations":[{"constant":false,"id":7370,"mutability":"mutable","name":"j","nameLocation":"13407:1:22","nodeType":"VariableDeclaration","scope":7421,"src":"13399:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7369,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7372,"initialValue":{"hexValue":"30","id":7371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13411:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13399:13:22"},"loopExpression":{"expression":{"id":7378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13433:3:22","subExpression":{"id":7377,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"13433:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7379,"nodeType":"ExpressionStatement","src":"13433:3:22"},"nodeType":"ForStatement","src":"13394:268:22"},{"expression":{"id":7422,"name":"deleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7366,"src":"13674:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7364,"id":7423,"nodeType":"Return","src":"13667:14:22"}]},"id":7425,"implemented":true,"kind":"function","modifiers":[],"name":"_removeOfferByOfferId","nameLocation":"13294:21:22","nodeType":"FunctionDefinition","parameters":{"id":7361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7360,"mutability":"mutable","name":"offerId","nameLocation":"13330:7:22","nodeType":"VariableDeclaration","scope":7425,"src":"13316:21:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7359,"name":"string","nodeType":"ElementaryTypeName","src":"13316:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13315:23:22"},"returnParameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7425,"src":"13356:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7362,"name":"bool","nodeType":"ElementaryTypeName","src":"13356:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13355:6:22"},"scope":7472,"src":"13285:401:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7446,"nodeType":"Block","src":"13750:61:22","statements":[{"expression":{"arguments":[{"hexValue":"","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13769:2:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":7433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13773:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":7437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13788:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13776:11:22","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint8_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint8[] memory)"},"typeName":{"baseType":{"id":7434,"name":"uint8","nodeType":"ElementaryTypeName","src":"13780:5:22","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7435,"nodeType":"ArrayTypeName","src":"13780:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}}},"id":7438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13776:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"arguments":[{"hexValue":"30","id":7441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13800:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13792:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7439,"name":"address","nodeType":"ElementaryTypeName","src":"13792:7:22","typeDescriptions":{}}},"id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13792:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":7443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13804:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7431,"name":"Offer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"13763:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Offer_$5997_storage_ptr_$","typeString":"type(struct NofGammaOffersV4.Offer storage pointer)"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13763:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer memory"}},"functionReturnParameters":7430,"id":7445,"nodeType":"Return","src":"13756:50:22"}]},"id":7447,"implemented":true,"kind":"function","modifiers":[],"name":"_emptyOffer","nameLocation":"13699:11:22","nodeType":"FunctionDefinition","parameters":{"id":7426,"nodeType":"ParameterList","parameters":[],"src":"13710:2:22"},"returnParameters":{"id":7430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7447,"src":"13736:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_memory_ptr","typeString":"struct NofGammaOffersV4.Offer"},"typeName":{"id":7428,"nodeType":"UserDefinedTypeName","pathNode":{"id":7427,"name":"Offer","nameLocations":["13736:5:22"],"nodeType":"IdentifierPath","referencedDeclaration":5997,"src":"13736:5:22"},"referencedDeclaration":5997,"src":"13736:5:22","typeDescriptions":{"typeIdentifier":"t_struct$_Offer_$5997_storage_ptr","typeString":"struct NofGammaOffersV4.Offer"}},"visibility":"internal"}],"src":"13735:14:22"},"scope":7472,"src":"13690:121:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7470,"nodeType":"Block","src":"13926:96:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":7459,"name":"offerId1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7449,"src":"13966:8:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13949:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13953:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"13949:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13949:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7456,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13939:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13939:37:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":7465,"name":"offerId2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7451,"src":"14007:8:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13990:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13994:12:22","memberName":"encodePacked","nodeType":"MemberAccess","src":"13990:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13990:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7462,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13980:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13980:37:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13939:78:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7455,"id":7469,"nodeType":"Return","src":"13932:85:22"}]},"id":7471,"implemented":true,"kind":"function","modifiers":[],"name":"_sameOfferId","nameLocation":"13824:12:22","nodeType":"FunctionDefinition","parameters":{"id":7452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7449,"mutability":"mutable","name":"offerId1","nameLocation":"13856:8:22","nodeType":"VariableDeclaration","scope":7471,"src":"13842:22:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7448,"name":"string","nodeType":"ElementaryTypeName","src":"13842:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7451,"mutability":"mutable","name":"offerId2","nameLocation":"13884:8:22","nodeType":"VariableDeclaration","scope":7471,"src":"13870:22:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7450,"name":"string","nodeType":"ElementaryTypeName","src":"13870:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13836:60:22"},"returnParameters":{"id":7455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7471,"src":"13920:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7453,"name":"bool","nodeType":"ElementaryTypeName","src":"13920:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13919:6:22"},"scope":7472,"src":"13815:207:22","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7473,"src":"1095:12929:22","usedErrors":[13,18,5887,5889,5891,5893,5895,5897,5899,5901,5903,5905,5907,5909,5911,5913,5915,5917],"usedEvents":[24,6027,6036,6042,6046,6048]}],"src":"32:13993:22"},"id":22},"contracts/gamma/GammaPacks.v3.sol":{"ast":{"absolutePath":"contracts/gamma/GammaPacks.v3.sol","exportedSymbols":{"ContractAddressNotSet":[7504],"IERC20":[394],"IGammaCardsContract":[7515],"IgammaTicketsContract":[7530],"InsufficientAllowance":[7498],"InsufficientBalance":[7500],"InsufficientPacksAvailable":[7492],"InvalidAddress":[7488],"InvalidNumberOfPacks":[7490],"LibControlMgmt":[8832],"NofGammaPacksV3":[8630],"NotGammaCardsContract":[7484],"NotYourPack":[7502],"Ownable":[147],"OwnlyOwners":[7486],"TransferPrizeError":[7496],"console":[19517]},"id":8631,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7474,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:23"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":7476,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":395,"src":"58:70:23","symbolAliases":[{"foreign":{"id":7475,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"66:6:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":7478,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":148,"src":"129:67:23","symbolAliases":[{"foreign":{"id":7477,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"137:7:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","file":"./libs/LibControlMgmt.sol","id":7480,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":8833,"src":"197:57:23","symbolAliases":[{"foreign":{"id":7479,"name":"LibControlMgmt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8832,"src":"205:14:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":7482,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8631,"sourceUnit":19518,"src":"255:44:23","symbolAliases":[{"foreign":{"id":7481,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19517,"src":"263:7:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"errorSelector":"f8d39bd0","id":7484,"name":"NotGammaCardsContract","nameLocation":"307:21:23","nodeType":"ErrorDefinition","parameters":{"id":7483,"nodeType":"ParameterList","parameters":[],"src":"328:2:23"},"src":"301:30:23"},{"errorSelector":"c19d0f48","id":7486,"name":"OwnlyOwners","nameLocation":"338:11:23","nodeType":"ErrorDefinition","parameters":{"id":7485,"nodeType":"ParameterList","parameters":[],"src":"349:2:23"},"src":"332:20:23"},{"errorSelector":"e6c4247b","id":7488,"name":"InvalidAddress","nameLocation":"359:14:23","nodeType":"ErrorDefinition","parameters":{"id":7487,"nodeType":"ParameterList","parameters":[],"src":"373:2:23"},"src":"353:23:23"},{"errorSelector":"2ec760a5","id":7490,"name":"InvalidNumberOfPacks","nameLocation":"383:20:23","nodeType":"ErrorDefinition","parameters":{"id":7489,"nodeType":"ParameterList","parameters":[],"src":"403:2:23"},"src":"377:29:23"},{"errorSelector":"7c5a3c39","id":7492,"name":"InsufficientPacksAvailable","nameLocation":"413:26:23","nodeType":"ErrorDefinition","parameters":{"id":7491,"nodeType":"ParameterList","parameters":[],"src":"439:2:23"},"src":"407:35:23"},{"errorSelector":"2f5f923c","id":7496,"name":"TransferPrizeError","nameLocation":"449:18:23","nodeType":"ErrorDefinition","parameters":{"id":7495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7494,"mutability":"mutable","name":"_to","nameLocation":"476:3:23","nodeType":"VariableDeclaration","scope":7496,"src":"468:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7493,"name":"address","nodeType":"ElementaryTypeName","src":"468:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"467:13:23"},"src":"443:38:23"},{"errorSelector":"13be252b","id":7498,"name":"InsufficientAllowance","nameLocation":"488:21:23","nodeType":"ErrorDefinition","parameters":{"id":7497,"nodeType":"ParameterList","parameters":[],"src":"509:2:23"},"src":"482:30:23"},{"errorSelector":"f4d678b8","id":7500,"name":"InsufficientBalance","nameLocation":"519:19:23","nodeType":"ErrorDefinition","parameters":{"id":7499,"nodeType":"ParameterList","parameters":[],"src":"538:2:23"},"src":"513:28:23"},{"errorSelector":"7f6ecdf5","id":7502,"name":"NotYourPack","nameLocation":"548:11:23","nodeType":"ErrorDefinition","parameters":{"id":7501,"nodeType":"ParameterList","parameters":[],"src":"559:2:23"},"src":"542:20:23"},{"errorSelector":"9802ff18","id":7504,"name":"ContractAddressNotSet","nameLocation":"569:21:23","nodeType":"ErrorDefinition","parameters":{"id":7503,"nodeType":"ParameterList","parameters":[],"src":"590:2:23"},"src":"563:30:23"},{"abstract":false,"baseContracts":[],"canonicalName":"IGammaCardsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7515,"linearizedBaseContracts":[7515],"name":"IGammaCardsContract","nameLocation":"605:19:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"5e31ce48","id":7509,"implemented":false,"kind":"function","modifiers":[],"name":"setPrizesBalance","nameLocation":"638:16:23","nodeType":"FunctionDefinition","parameters":{"id":7507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7506,"mutability":"mutable","name":"amount","nameLocation":"663:6:23","nodeType":"VariableDeclaration","scope":7509,"src":"655:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7505,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:16:23"},"returnParameters":{"id":7508,"nodeType":"ParameterList","parameters":[],"src":"679:0:23"},"scope":7515,"src":"629:51:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e1883c6e","id":7514,"implemented":false,"kind":"function","modifiers":[],"name":"changePackPrice","nameLocation":"693:15:23","nodeType":"FunctionDefinition","parameters":{"id":7512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7511,"mutability":"mutable","name":"amount","nameLocation":"717:6:23","nodeType":"VariableDeclaration","scope":7514,"src":"709:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7510,"name":"uint256","nodeType":"ElementaryTypeName","src":"709:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"708:16:23"},"returnParameters":{"id":7513,"nodeType":"ParameterList","parameters":[],"src":"733:0:23"},"scope":7515,"src":"684:50:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8631,"src":"595:141:23","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IgammaTicketsContract","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":7530,"linearizedBaseContracts":[7530],"name":"IgammaTicketsContract","nameLocation":"748:21:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"b2d55c1c","id":7526,"implemented":false,"kind":"function","modifiers":[],"name":"getLotteryWinner","nameLocation":"783:16:23","nodeType":"FunctionDefinition","parameters":{"id":7516,"nodeType":"ParameterList","parameters":[],"src":"799:2:23"},"returnParameters":{"id":7525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7518,"mutability":"mutable","name":"timestamp","nameLocation":"836:9:23","nodeType":"VariableDeclaration","scope":7526,"src":"828:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7517,"name":"uint256","nodeType":"ElementaryTypeName","src":"828:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7520,"mutability":"mutable","name":"ticketId","nameLocation":"855:8:23","nodeType":"VariableDeclaration","scope":7526,"src":"847:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"847:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7522,"mutability":"mutable","name":"ticketCounter","nameLocation":"873:13:23","nodeType":"VariableDeclaration","scope":7526,"src":"865:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7521,"name":"uint256","nodeType":"ElementaryTypeName","src":"865:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7524,"mutability":"mutable","name":"user","nameLocation":"896:4:23","nodeType":"VariableDeclaration","scope":7526,"src":"888:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7523,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"827:74:23"},"scope":7530,"src":"774:128:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"306e4118","id":7529,"implemented":false,"kind":"function","modifiers":[],"name":"deleteAllTickets","nameLocation":"915:16:23","nodeType":"FunctionDefinition","parameters":{"id":7527,"nodeType":"ParameterList","parameters":[],"src":"931:2:23"},"returnParameters":{"id":7528,"nodeType":"ParameterList","parameters":[],"src":"942:0:23"},"scope":7530,"src":"906:37:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8631,"src":"738:207:23","usedErrors":[],"usedEvents":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":7531,"name":"Ownable","nameLocations":["975:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"975:7:23"},"id":7532,"nodeType":"InheritanceSpecifier","src":"975:7:23"}],"canonicalName":"NofGammaPacksV3","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8630,"linearizedBaseContracts":[8630,147,1751],"name":"NofGammaPacksV3","nameLocation":"956:15:23","nodeType":"ContractDefinition","nodes":[{"global":false,"id":7536,"libraryName":{"id":7533,"name":"LibControlMgmt","nameLocations":["993:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":8832,"src":"993:14:23"},"nodeType":"UsingForDirective","src":"987:45:23","typeName":{"id":7535,"nodeType":"UserDefinedTypeName","pathNode":{"id":7534,"name":"LibControlMgmt.Data","nameLocations":["1012:14:23","1027:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1012:19:23"},"referencedDeclaration":8641,"src":"1012:19:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}}},{"constant":false,"functionSelector":"d250f03a","id":7539,"mutability":"mutable","name":"gammaCardsContract","nameLocation":"1063:18:23","nodeType":"VariableDeclaration","scope":8630,"src":"1036:45:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"},"typeName":{"id":7538,"nodeType":"UserDefinedTypeName","pathNode":{"id":7537,"name":"IGammaCardsContract","nameLocations":["1036:19:23"],"nodeType":"IdentifierPath","referencedDeclaration":7515,"src":"1036:19:23"},"referencedDeclaration":7515,"src":"1036:19:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"visibility":"public"},{"constant":false,"functionSelector":"14cca36a","id":7542,"mutability":"mutable","name":"gammaTicketsContract","nameLocation":"1114:20:23","nodeType":"VariableDeclaration","scope":8630,"src":"1085:49:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"},"typeName":{"id":7541,"nodeType":"UserDefinedTypeName","pathNode":{"id":7540,"name":"IgammaTicketsContract","nameLocations":["1085:21:23"],"nodeType":"IdentifierPath","referencedDeclaration":7530,"src":"1085:21:23"},"referencedDeclaration":7530,"src":"1085:21:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"visibility":"public"},{"constant":false,"id":7545,"mutability":"mutable","name":"ownersData","nameLocation":"1167:10:23","nodeType":"VariableDeclaration","scope":8630,"src":"1139:38:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":7544,"nodeType":"UserDefinedTypeName","pathNode":{"id":7543,"name":"LibControlMgmt.Data","nameLocations":["1139:14:23","1154:4:23"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1139:19:23"},"referencedDeclaration":8641,"src":"1139:19:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"private"},{"constant":false,"functionSelector":"e606df87","id":7547,"mutability":"mutable","name":"DAI_TOKEN","nameLocation":"1197:9:23","nodeType":"VariableDeclaration","scope":8630,"src":"1182:24:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7546,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"c34e8af4","id":7549,"mutability":"mutable","name":"s_balanceReceiver","nameLocation":"1225:17:23","nodeType":"VariableDeclaration","scope":8630,"src":"1210:32:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7548,"name":"address","nodeType":"ElementaryTypeName","src":"1210:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"functionSelector":"94a08c69","id":7552,"mutability":"constant","name":"TOTALSUPPLY","nameLocation":"1270:11:23","nodeType":"VariableDeclaration","scope":8630,"src":"1246:43:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"1246:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3530303030","id":7551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:5:23","typeDescriptions":{"typeIdentifier":"t_rational_50000_by_1","typeString":"int_const 50000"},"value":"50000"},"visibility":"public"},{"constant":false,"functionSelector":"656bd0ad","id":7555,"mutability":"mutable","name":"s_packPrice","nameLocation":"1308:11:23","nodeType":"VariableDeclaration","scope":8630,"src":"1293:34:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7553,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132653137","id":7554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1322:5:23","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"12e17"},"visibility":"public"},{"constant":false,"id":7558,"mutability":"mutable","name":"s_packsCounter","nameLocation":"1358:14:23","nodeType":"VariableDeclaration","scope":8630,"src":"1342:34:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1342:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":7557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1375:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":false,"id":7561,"mutability":"mutable","name":"s_transferDai","nameLocation":"1385:13:23","nodeType":"VariableDeclaration","scope":8630,"src":"1380:25:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7559,"name":"bool","nodeType":"ElementaryTypeName","src":"1380:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":7560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1401:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"internal"},{"constant":false,"functionSelector":"3cd626fd","id":7565,"mutability":"mutable","name":"s_packs","nameLocation":"1459:7:23","nodeType":"VariableDeclaration","scope":8630,"src":"1410:56:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":7564,"keyName":"tokenId","keyNameLocation":"1426:7:23","keyType":{"id":7562,"name":"uint256","nodeType":"ElementaryTypeName","src":"1418:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1410:41:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"owner","valueNameLocation":"1445:5:23","valueType":{"id":7563,"name":"address","nodeType":"ElementaryTypeName","src":"1437:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"constant":false,"functionSelector":"d9e8221e","id":7570,"mutability":"mutable","name":"s_packsByUser","nameLocation":"1522:13:23","nodeType":"VariableDeclaration","scope":8630,"src":"1470:65:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":7569,"keyName":"owner","keyNameLocation":"1486:5:23","keyType":{"id":7566,"name":"address","nodeType":"ElementaryTypeName","src":"1478:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1470:44:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"tokenIds","valueNameLocation":"1505:8:23","valueType":{"baseType":{"id":7567,"name":"uint256","nodeType":"ElementaryTypeName","src":"1495:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7568,"nodeType":"ArrayTypeName","src":"1495:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"anonymous":false,"eventSelector":"45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa","id":7574,"name":"NewGammaCardsContract","nameLocation":"1546:21:23","nodeType":"EventDefinition","parameters":{"id":7573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7572,"indexed":true,"mutability":"mutable","name":"newCardsContract","nameLocation":"1584:16:23","nodeType":"VariableDeclaration","scope":7574,"src":"1568:32:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7571,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:34:23"},"src":"1540:62:23"},{"anonymous":false,"eventSelector":"563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa202","id":7578,"name":"NewGammaTicketsContract","nameLocation":"1611:23:23","nodeType":"EventDefinition","parameters":{"id":7577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7576,"indexed":true,"mutability":"mutable","name":"newGammaTicketContract","nameLocation":"1651:22:23","nodeType":"VariableDeclaration","scope":7578,"src":"1635:38:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7575,"name":"address","nodeType":"ElementaryTypeName","src":"1635:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1634:40:23"},"src":"1605:70:23"},{"anonymous":false,"eventSelector":"7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a5","id":7582,"name":"NewBalanceReceiver","nameLocation":"1684:18:23","nodeType":"EventDefinition","parameters":{"id":7581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7580,"indexed":true,"mutability":"mutable","name":"balanceReceiver","nameLocation":"1719:15:23","nodeType":"VariableDeclaration","scope":7582,"src":"1703:31:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7579,"name":"address","nodeType":"ElementaryTypeName","src":"1703:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1702:33:23"},"src":"1678:58:23"},{"anonymous":false,"eventSelector":"c79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca7","id":7588,"name":"PackPurchased","nameLocation":"1745:13:23","nodeType":"EventDefinition","parameters":{"id":7587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7584,"indexed":true,"mutability":"mutable","name":"buyer","nameLocation":"1775:5:23","nodeType":"VariableDeclaration","scope":7588,"src":"1759:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7583,"name":"address","nodeType":"ElementaryTypeName","src":"1759:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7586,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"1798:7:23","nodeType":"VariableDeclaration","scope":7588,"src":"1782:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1782:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:48:23"},"src":"1739:68:23"},{"anonymous":false,"eventSelector":"8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c9","id":7595,"name":"PacksPurchased","nameLocation":"1816:14:23","nodeType":"EventDefinition","parameters":{"id":7594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7590,"indexed":true,"mutability":"mutable","name":"buyer","nameLocation":"1847:5:23","nodeType":"VariableDeclaration","scope":7595,"src":"1831:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7589,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7593,"indexed":true,"mutability":"mutable","name":"tokenIds","nameLocation":"1872:8:23","nodeType":"VariableDeclaration","scope":7595,"src":"1854:26:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7591,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7592,"nodeType":"ArrayTypeName","src":"1854:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1830:51:23"},"src":"1810:72:23"},{"anonymous":false,"eventSelector":"16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a2","id":7603,"name":"PackTransfered","nameLocation":"1891:14:23","nodeType":"EventDefinition","parameters":{"id":7602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7597,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1922:4:23","nodeType":"VariableDeclaration","scope":7603,"src":"1906:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7596,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7599,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1944:2:23","nodeType":"VariableDeclaration","scope":7603,"src":"1928:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7598,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7601,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"1964:7:23","nodeType":"VariableDeclaration","scope":7603,"src":"1948:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7600,"name":"uint256","nodeType":"ElementaryTypeName","src":"1948:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1905:67:23"},"src":"1885:88:23"},{"anonymous":false,"eventSelector":"1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f1","id":7612,"name":"PacksTransfered","nameLocation":"1982:15:23","nodeType":"EventDefinition","parameters":{"id":7611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7605,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2014:4:23","nodeType":"VariableDeclaration","scope":7612,"src":"1998:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7604,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7607,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"2036:2:23","nodeType":"VariableDeclaration","scope":7612,"src":"2020:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7606,"name":"address","nodeType":"ElementaryTypeName","src":"2020:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7610,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"2058:7:23","nodeType":"VariableDeclaration","scope":7612,"src":"2040:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7608,"name":"uint256","nodeType":"ElementaryTypeName","src":"2040:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7609,"nodeType":"ArrayTypeName","src":"2040:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1997:69:23"},"src":"1976:91:23"},{"anonymous":false,"eventSelector":"459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c","id":7618,"name":"PackOpened","nameLocation":"2076:10:23","nodeType":"EventDefinition","parameters":{"id":7617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7614,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"2103:4:23","nodeType":"VariableDeclaration","scope":7618,"src":"2087:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7613,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7616,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"2125:7:23","nodeType":"VariableDeclaration","scope":7618,"src":"2109:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7615,"name":"uint256","nodeType":"ElementaryTypeName","src":"2109:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2086:47:23"},"src":"2070:64:23"},{"anonymous":false,"eventSelector":"270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b7","id":7622,"name":"NewPrice","nameLocation":"2143:8:23","nodeType":"EventDefinition","parameters":{"id":7621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7620,"indexed":true,"mutability":"mutable","name":"newPrice","nameLocation":"2168:8:23","nodeType":"VariableDeclaration","scope":7622,"src":"2152:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7619,"name":"uint256","nodeType":"ElementaryTypeName","src":"2152:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2151:26:23"},"src":"2137:41:23"},{"body":{"id":7636,"nodeType":"Block","src":"2216:95:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7624,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2226:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2230:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2226:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":7628,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"2248:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}],"id":7627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2240:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7626,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:23","typeDescriptions":{}}},"id":7629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2240:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2226:41:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7634,"nodeType":"IfStatement","src":"2222:77:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7631,"name":"NotGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"2276:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7633,"nodeType":"RevertStatement","src":"2269:30:23"}},{"id":7635,"nodeType":"PlaceholderStatement","src":"2305:1:23"}]},"id":7637,"name":"onlyGammaCardsContract","nameLocation":"2191:22:23","nodeType":"ModifierDefinition","parameters":{"id":7623,"nodeType":"ParameterList","parameters":[],"src":"2213:2:23"},"src":"2182:129:23","virtual":false,"visibility":"internal"},{"body":{"id":7650,"nodeType":"Block","src":"2337:74:23","statements":[{"condition":{"id":7644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2347:30:23","subExpression":{"baseExpression":{"expression":{"id":7639,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"2348:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2359:6:23","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2348:17:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7643,"indexExpression":{"expression":{"id":7641,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2366:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2370:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2366:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7648,"nodeType":"IfStatement","src":"2343:56:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7645,"name":"OwnlyOwners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7486,"src":"2386:11:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7647,"nodeType":"RevertStatement","src":"2379:20:23"}},{"id":7649,"nodeType":"PlaceholderStatement","src":"2405:1:23"}]},"id":7651,"name":"onlyOwners","nameLocation":"2324:10:23","nodeType":"ModifierDefinition","parameters":{"id":7638,"nodeType":"ParameterList","parameters":[],"src":"2334:2:23"},"src":"2315:96:23","virtual":false,"visibility":"internal"},{"body":{"id":7719,"nodeType":"Block","src":"2579:430:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7666,"name":"_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"2596:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2624:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2616:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7667,"name":"address","nodeType":"ElementaryTypeName","src":"2616:7:23","typeDescriptions":{}}},"id":7670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2616:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2596:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7672,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"2636:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2667:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2659:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7673,"name":"address","nodeType":"ElementaryTypeName","src":"2659:7:23","typeDescriptions":{}}},"id":7676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2636:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2596:73:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7679,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"2679:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2704:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7680,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:23","typeDescriptions":{}}},"id":7683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2704:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2679:35:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2596:118:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7689,"nodeType":"IfStatement","src":"2585:159:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7686,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"2728:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7688,"nodeType":"RevertStatement","src":"2721:23:23"}},{"expression":{"id":7692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7690,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7547,"src":"2751:9:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7691,"name":"_daiTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7653,"src":"2763:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2751:28:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7693,"nodeType":"ExpressionStatement","src":"2751:28:23"},{"expression":{"id":7696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7694,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2785:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7695,"name":"_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"2805:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2785:36:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7697,"nodeType":"ExpressionStatement","src":"2785:36:23"},{"expression":{"id":7702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7698,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"2827:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7700,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"2868:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7699,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"2848:19:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$7515_$","typeString":"type(contract IGammaCardsContract)"}},"id":7701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"src":"2827:61:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":7703,"nodeType":"ExpressionStatement","src":"2827:61:23"},{"expression":{"id":7708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7704,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"2894:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7706,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"2939:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7705,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7530,"src":"2917:21:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$7530_$","typeString":"type(contract IgammaTicketsContract)"}},"id":7707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2917:44:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"src":"2894:67:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"id":7709,"nodeType":"ExpressionStatement","src":"2894:67:23"},{"expression":{"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":7710,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"2968:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2979:6:23","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"2968:17:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7715,"indexExpression":{"expression":{"id":7712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2986:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2990:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2986:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2968:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3000:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2968:36:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7718,"nodeType":"ExpressionStatement","src":"2968:36:23"}]},"id":7720,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":7662,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2567:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2571:6:23","memberName":"sender","nodeType":"MemberAccess","src":"2567:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7664,"kind":"baseConstructorSpecifier","modifierName":{"id":7661,"name":"Ownable","nameLocations":["2559:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"2559:7:23"},"nodeType":"ModifierInvocation","src":"2559:19:23"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7653,"mutability":"mutable","name":"_daiTokenAddress","nameLocation":"2440:16:23","nodeType":"VariableDeclaration","scope":7720,"src":"2432:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7652,"name":"address","nodeType":"ElementaryTypeName","src":"2432:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7655,"mutability":"mutable","name":"_balanceReceiver","nameLocation":"2470:16:23","nodeType":"VariableDeclaration","scope":7720,"src":"2462:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7654,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7657,"mutability":"mutable","name":"_gammaCardsContract","nameLocation":"2500:19:23","nodeType":"VariableDeclaration","scope":7720,"src":"2492:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7656,"name":"address","nodeType":"ElementaryTypeName","src":"2492:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7659,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"2533:21:23","nodeType":"VariableDeclaration","scope":7720,"src":"2525:29:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7658,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2426:132:23"},"returnParameters":{"id":7665,"nodeType":"ParameterList","parameters":[],"src":"2579:0:23"},"scope":8630,"src":"2415:594:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7733,"nodeType":"Block","src":"3070:41:23","statements":[{"expression":{"arguments":[{"id":7730,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7722,"src":"3096:9:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7727,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"3076:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3087:8:23","memberName":"addOwner","nodeType":"MemberAccess","referencedDeclaration":8697,"src":"3076:19:23","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":7731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3076:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7732,"nodeType":"ExpressionStatement","src":"3076:30:23"}]},"functionSelector":"7065cb48","id":7734,"implemented":true,"kind":"function","modifiers":[{"id":7725,"kind":"modifierInvocation","modifierName":{"id":7724,"name":"onlyOwners","nameLocations":["3059:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3059:10:23"},"nodeType":"ModifierInvocation","src":"3059:10:23"}],"name":"addOwner","nameLocation":"3022:8:23","nodeType":"FunctionDefinition","parameters":{"id":7723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7722,"mutability":"mutable","name":"_newOwner","nameLocation":"3039:9:23","nodeType":"VariableDeclaration","scope":7734,"src":"3031:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7721,"name":"address","nodeType":"ElementaryTypeName","src":"3031:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3030:19:23"},"returnParameters":{"id":7726,"nodeType":"ParameterList","parameters":[],"src":"3070:0:23"},"scope":8630,"src":"3013:98:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7747,"nodeType":"Block","src":"3180:49:23","statements":[{"expression":{"arguments":[{"id":7744,"name":"_ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"3209:14:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7741,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"3186:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3197:11:23","memberName":"removeOwner","nodeType":"MemberAccess","referencedDeclaration":8744,"src":"3186:22:23","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_Data_$8641_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_Data_$8641_storage_ptr_$","typeString":"function (struct LibControlMgmt.Data storage pointer,address)"}},"id":7745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7746,"nodeType":"ExpressionStatement","src":"3186:38:23"}]},"functionSelector":"173825d9","id":7748,"implemented":true,"kind":"function","modifiers":[{"id":7739,"kind":"modifierInvocation","modifierName":{"id":7738,"name":"onlyOwners","nameLocations":["3169:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3169:10:23"},"nodeType":"ModifierInvocation","src":"3169:10:23"}],"name":"removeOwner","nameLocation":"3124:11:23","nodeType":"FunctionDefinition","parameters":{"id":7737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7736,"mutability":"mutable","name":"_ownerToRemove","nameLocation":"3144:14:23","nodeType":"VariableDeclaration","scope":7748,"src":"3136:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7735,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3135:24:23"},"returnParameters":{"id":7740,"nodeType":"ParameterList","parameters":[],"src":"3180:0:23"},"scope":8630,"src":"3115:114:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7773,"nodeType":"Block","src":"3313:168:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7755,"name":"_newBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3323:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3354:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3346:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7756,"name":"address","nodeType":"ElementaryTypeName","src":"3346:7:23","typeDescriptions":{}}},"id":7759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3346:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3323:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7764,"nodeType":"IfStatement","src":"3319:62:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7761,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"3365:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"RevertStatement","src":"3358:23:23"}},{"expression":{"id":7767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7765,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"3387:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7766,"name":"_newBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3407:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3387:39:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7768,"nodeType":"ExpressionStatement","src":"3387:39:23"},{"eventCall":{"arguments":[{"id":7770,"name":"_newBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3456:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7769,"name":"NewBalanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7582,"src":"3437:18:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3437:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7772,"nodeType":"EmitStatement","src":"3432:44:23"}]},"functionSelector":"e0f78307","id":7774,"implemented":true,"kind":"function","modifiers":[{"id":7753,"kind":"modifierInvocation","modifierName":{"id":7752,"name":"onlyOwners","nameLocations":["3302:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3302:10:23"},"nodeType":"ModifierInvocation","src":"3302:10:23"}],"name":"changeBalanceReceiver","nameLocation":"3242:21:23","nodeType":"FunctionDefinition","parameters":{"id":7751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7750,"mutability":"mutable","name":"_newBalanceReceiver","nameLocation":"3272:19:23","nodeType":"VariableDeclaration","scope":7774,"src":"3264:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7749,"name":"address","nodeType":"ElementaryTypeName","src":"3264:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3263:29:23"},"returnParameters":{"id":7754,"nodeType":"ParameterList","parameters":[],"src":"3313:0:23"},"scope":8630,"src":"3233:248:23","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7795,"nodeType":"Block","src":"3543:115:23","statements":[{"expression":{"id":7783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7781,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"3549:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7782,"name":"_newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"3563:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3549:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7784,"nodeType":"ExpressionStatement","src":"3549:23:23"},{"expression":{"arguments":[{"id":7788,"name":"_newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"3613:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7785,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"3578:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:15:23","memberName":"changePackPrice","nodeType":"MemberAccess","referencedDeclaration":7514,"src":"3578:34:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":7789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3578:45:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7790,"nodeType":"ExpressionStatement","src":"3578:45:23"},{"eventCall":{"arguments":[{"id":7792,"name":"_newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7776,"src":"3643:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7791,"name":"NewPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7622,"src":"3634:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3634:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7794,"nodeType":"EmitStatement","src":"3629:24:23"}]},"functionSelector":"a2b40d19","id":7796,"implemented":true,"kind":"function","modifiers":[{"id":7779,"kind":"modifierInvocation","modifierName":{"id":7778,"name":"onlyOwners","nameLocations":["3532:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3532:10:23"},"nodeType":"ModifierInvocation","src":"3532:10:23"}],"name":"changePrice","nameLocation":"3494:11:23","nodeType":"FunctionDefinition","parameters":{"id":7777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7776,"mutability":"mutable","name":"_newPrice","nameLocation":"3514:9:23","nodeType":"VariableDeclaration","scope":7796,"src":"3506:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7775,"name":"uint256","nodeType":"ElementaryTypeName","src":"3506:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3505:19:23"},"returnParameters":{"id":7780,"nodeType":"ParameterList","parameters":[],"src":"3543:0:23"},"scope":8630,"src":"3485:173:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7807,"nodeType":"Block","src":"3730:39:23","statements":[{"expression":{"id":7805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7803,"name":"s_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"3736:13:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7804,"name":"_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3752:12:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3736:28:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7806,"nodeType":"ExpressionStatement","src":"3736:28:23"}]},"functionSelector":"99e5f896","id":7808,"implemented":true,"kind":"function","modifiers":[{"id":7801,"kind":"modifierInvocation","modifierName":{"id":7800,"name":"onlyOwners","nameLocations":["3719:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3719:10:23"},"nodeType":"ModifierInvocation","src":"3719:10:23"}],"name":"changeTransferDaiFlag","nameLocation":"3671:21:23","nodeType":"FunctionDefinition","parameters":{"id":7799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7798,"mutability":"mutable","name":"_transferDai","nameLocation":"3698:12:23","nodeType":"VariableDeclaration","scope":7808,"src":"3693:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7797,"name":"bool","nodeType":"ElementaryTypeName","src":"3693:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3692:19:23"},"returnParameters":{"id":7802,"nodeType":"ParameterList","parameters":[],"src":"3730:0:23"},"scope":8630,"src":"3662:107:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7835,"nodeType":"Block","src":"3851:193:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7815,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"3861:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3884:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7816,"name":"address","nodeType":"ElementaryTypeName","src":"3884:7:23","typeDescriptions":{}}},"id":7819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3884:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3861:33:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7824,"nodeType":"IfStatement","src":"3857:62:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7821,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"3903:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7823,"nodeType":"RevertStatement","src":"3896:23:23"}},{"expression":{"id":7829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7825,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"3925:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7827,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"3966:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7826,"name":"IGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7515,"src":"3946:19:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGammaCardsContract_$7515_$","typeString":"type(contract IGammaCardsContract)"}},"id":7828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3946:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"src":"3925:61:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":7830,"nodeType":"ExpressionStatement","src":"3925:61:23"},{"eventCall":{"arguments":[{"id":7832,"name":"_gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"4019:19:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7831,"name":"NewGammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"3997:21:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:42:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7834,"nodeType":"EmitStatement","src":"3992:47:23"}]},"functionSelector":"4c7a7ad3","id":7836,"implemented":true,"kind":"function","modifiers":[{"id":7813,"kind":"modifierInvocation","modifierName":{"id":7812,"name":"onlyOwners","nameLocations":["3840:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"3840:10:23"},"nodeType":"ModifierInvocation","src":"3840:10:23"}],"name":"setGammaCardsContract","nameLocation":"3782:21:23","nodeType":"FunctionDefinition","parameters":{"id":7811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7810,"mutability":"mutable","name":"_gammaCardsContract","nameLocation":"3812:19:23","nodeType":"VariableDeclaration","scope":7836,"src":"3804:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7809,"name":"address","nodeType":"ElementaryTypeName","src":"3804:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3803:29:23"},"returnParameters":{"id":7814,"nodeType":"ParameterList","parameters":[],"src":"3851:0:23"},"scope":8630,"src":"3773:271:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7863,"nodeType":"Block","src":"4130:205:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7843,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"4140:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4165:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7844,"name":"address","nodeType":"ElementaryTypeName","src":"4165:7:23","typeDescriptions":{}}},"id":7847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4140:35:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7852,"nodeType":"IfStatement","src":"4136:64:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7849,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"4184:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7851,"nodeType":"RevertStatement","src":"4177:23:23"}},{"expression":{"id":7857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7853,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"4206:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7855,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"4251:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7854,"name":"IgammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7530,"src":"4229:21:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IgammaTicketsContract_$7530_$","typeString":"type(contract IgammaTicketsContract)"}},"id":7856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:44:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"src":"4206:67:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"id":7858,"nodeType":"ExpressionStatement","src":"4206:67:23"},{"eventCall":{"arguments":[{"id":7860,"name":"_gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7838,"src":"4308:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7859,"name":"NewGammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"4284:23:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4284:46:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7862,"nodeType":"EmitStatement","src":"4279:51:23"}]},"functionSelector":"ddb975e8","id":7864,"implemented":true,"kind":"function","modifiers":[{"id":7841,"kind":"modifierInvocation","modifierName":{"id":7840,"name":"onlyOwners","nameLocations":["4119:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"4119:10:23"},"nodeType":"ModifierInvocation","src":"4119:10:23"}],"name":"setGammaTicketsContract","nameLocation":"4057:23:23","nodeType":"FunctionDefinition","parameters":{"id":7839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7838,"mutability":"mutable","name":"_gammaTicketsContract","nameLocation":"4089:21:23","nodeType":"VariableDeclaration","scope":7864,"src":"4081:29:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7837,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4080:31:23"},"returnParameters":{"id":7842,"nodeType":"ParameterList","parameters":[],"src":"4130:0:23"},"scope":8630,"src":"4048:287:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7876,"nodeType":"Block","src":"4399:41:23","statements":[{"expression":{"baseExpression":{"expression":{"id":7871,"name":"ownersData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7545,"src":"4412:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage","typeString":"struct LibControlMgmt.Data storage ref"}},"id":7872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4423:6:23","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"4412:17:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7874,"indexExpression":{"id":7873,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7866,"src":"4430:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4412:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7870,"id":7875,"nodeType":"Return","src":"4405:30:23"}]},"functionSelector":"2f54bf6e","id":7877,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nameLocation":"4348:7:23","nodeType":"FunctionDefinition","parameters":{"id":7867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7866,"mutability":"mutable","name":"user","nameLocation":"4364:4:23","nodeType":"VariableDeclaration","scope":7877,"src":"4356:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7865,"name":"address","nodeType":"ElementaryTypeName","src":"4356:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4355:14:23"},"returnParameters":{"id":7870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7877,"src":"4393:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7868,"name":"bool","nodeType":"ElementaryTypeName","src":"4393:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4392:6:23"},"scope":8630,"src":"4339:101:23","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7894,"nodeType":"Block","src":"4531:67:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7884,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4545:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7885,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4560:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"36","id":7886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4574:1:23","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"4560:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7888,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4559:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4545:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7890,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4544:33:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7891,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7879,"src":"4580:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4544:49:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7883,"id":7893,"nodeType":"Return","src":"4537:56:23"}]},"functionSelector":"3f6ecd48","id":7895,"implemented":true,"kind":"function","modifiers":[],"name":"getPrizeAmountToBuyPacks","nameLocation":"4453:24:23","nodeType":"FunctionDefinition","parameters":{"id":7880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7879,"mutability":"mutable","name":"numberOfPacks","nameLocation":"4486:13:23","nodeType":"VariableDeclaration","scope":7895,"src":"4478:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7878,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4477:23:23"},"returnParameters":{"id":7883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7895,"src":"4522:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7881,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4521:9:23"},"scope":8630,"src":"4444:154:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7915,"nodeType":"Block","src":"4699:130:23","statements":[{"assignments":[7903],"declarations":[{"constant":false,"id":7903,"mutability":"mutable","name":"prizesAmount","nameLocation":"4713:12:23","nodeType":"VariableDeclaration","scope":7915,"src":"4705:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7902,"name":"uint256","nodeType":"ElementaryTypeName","src":"4705:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7907,"initialValue":{"arguments":[{"id":7905,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"4753:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7904,"name":"getPrizeAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"4728:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4728:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4705:62:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7908,"name":"s_packPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"4781:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7909,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"4795:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4781:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4780:29:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7912,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7903,"src":"4812:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4780:44:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7901,"id":7914,"nodeType":"Return","src":"4773:51:23"}]},"functionSelector":"01321c4d","id":7916,"implemented":true,"kind":"function","modifiers":[],"name":"getPrizeNoFAccountAmountToBuyPacks","nameLocation":"4611:34:23","nodeType":"FunctionDefinition","parameters":{"id":7898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7897,"mutability":"mutable","name":"numberOfPacks","nameLocation":"4654:13:23","nodeType":"VariableDeclaration","scope":7916,"src":"4646:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4646:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4645:23:23"},"returnParameters":{"id":7901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7916,"src":"4690:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7899,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4689:9:23"},"scope":8630,"src":"4602:227:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7939,"nodeType":"Block","src":"4923:199:23","statements":[{"assignments":[7924],"declarations":[{"constant":false,"id":7924,"mutability":"mutable","name":"prizesAmount","nameLocation":"4937:12:23","nodeType":"VariableDeclaration","scope":7939,"src":"4929:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7923,"name":"uint256","nodeType":"ElementaryTypeName","src":"4929:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7928,"initialValue":{"arguments":[{"id":7926,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4977:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7925,"name":"getPrizeAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"4952:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4952:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4929:62:23"},{"assignments":[7930],"declarations":[{"constant":false,"id":7930,"mutability":"mutable","name":"NoFAccountAmount","nameLocation":"5005:16:23","nodeType":"VariableDeclaration","scope":7939,"src":"4997:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7929,"name":"uint256","nodeType":"ElementaryTypeName","src":"4997:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7934,"initialValue":{"arguments":[{"id":7932,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"5059:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7931,"name":"getPrizeNoFAccountAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7916,"src":"5024:34:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4997:76:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7935,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7924,"src":"5086:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7936,"name":"NoFAccountAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7930,"src":"5101:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5086:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7922,"id":7938,"nodeType":"Return","src":"5079:38:23"}]},"functionSelector":"b48ce653","id":7940,"implemented":true,"kind":"function","modifiers":[],"name":"getAmountRequiredToBuyPacks","nameLocation":"4842:27:23","nodeType":"FunctionDefinition","parameters":{"id":7919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7918,"mutability":"mutable","name":"numberOfPacks","nameLocation":"4878:13:23","nodeType":"VariableDeclaration","scope":7940,"src":"4870:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7917,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4869:23:23"},"returnParameters":{"id":7922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7921,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7940,"src":"4914:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7920,"name":"uint256","nodeType":"ElementaryTypeName","src":"4914:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4913:9:23"},"scope":8630,"src":"4833:289:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7952,"nodeType":"Block","src":"5204:38:23","statements":[{"expression":{"baseExpression":{"id":7948,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"5217:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":7950,"indexExpression":{"id":7949,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"5231:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5217:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"functionReturnParameters":7947,"id":7951,"nodeType":"Return","src":"5210:27:23"}]},"functionSelector":"8fd5baf7","id":7953,"implemented":true,"kind":"function","modifiers":[],"name":"getPacksByUser","nameLocation":"5135:14:23","nodeType":"FunctionDefinition","parameters":{"id":7943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7942,"mutability":"mutable","name":"owner","nameLocation":"5158:5:23","nodeType":"VariableDeclaration","scope":7953,"src":"5150:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7941,"name":"address","nodeType":"ElementaryTypeName","src":"5150:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5149:15:23"},"returnParameters":{"id":7947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7953,"src":"5186:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7944,"name":"uint256","nodeType":"ElementaryTypeName","src":"5186:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7945,"nodeType":"ArrayTypeName","src":"5186:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5185:18:23"},"scope":8630,"src":"5126:116:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7964,"nodeType":"Block","src":"5315:34:23","statements":[{"expression":{"baseExpression":{"id":7960,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"5328:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":7962,"indexExpression":{"id":7961,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7955,"src":"5336:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5328:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7959,"id":7963,"nodeType":"Return","src":"5321:23:23"}]},"functionSelector":"d3e6a7ad","id":7965,"implemented":true,"kind":"function","modifiers":[],"name":"getPackOwner","nameLocation":"5255:12:23","nodeType":"FunctionDefinition","parameters":{"id":7956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7955,"mutability":"mutable","name":"tokenId","nameLocation":"5276:7:23","nodeType":"VariableDeclaration","scope":7965,"src":"5268:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7954,"name":"uint256","nodeType":"ElementaryTypeName","src":"5268:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5267:17:23"},"returnParameters":{"id":7959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7965,"src":"5306:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7957,"name":"address","nodeType":"ElementaryTypeName","src":"5306:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5305:9:23"},"scope":8630,"src":"5246:103:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7986,"nodeType":"Block","src":"5440:123:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7972,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7967,"src":"5450:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5467:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5450:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7978,"nodeType":"IfStatement","src":"5446:53:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":7975,"name":"InvalidNumberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"5477:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":7976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5477:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7977,"nodeType":"RevertStatement","src":"5470:29:23"}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7979,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"5513:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7980,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7967,"src":"5530:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5513:30:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7982,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5512:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7983,"name":"TOTALSUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"5547:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5512:46:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7971,"id":7985,"nodeType":"Return","src":"5505:53:23"}]},"functionSelector":"d6a4c3e4","id":7987,"implemented":true,"kind":"function","modifiers":[],"name":"meetQuantityConditionsToBuy","nameLocation":"5362:27:23","nodeType":"FunctionDefinition","parameters":{"id":7968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7967,"mutability":"mutable","name":"numberOfPacks","nameLocation":"5398:13:23","nodeType":"VariableDeclaration","scope":7987,"src":"5390:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7966,"name":"uint256","nodeType":"ElementaryTypeName","src":"5390:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5389:23:23"},"returnParameters":{"id":7971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7987,"src":"5434:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7969,"name":"bool","nodeType":"ElementaryTypeName","src":"5434:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5433:6:23"},"scope":8630,"src":"5353:210:23","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7997,"nodeType":"Block","src":"5611:38:23","statements":[{"expression":{"arguments":[{"expression":{"id":7993,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5633:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5637:6:23","memberName":"sender","nodeType":"MemberAccess","src":"5633:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7992,"name":"_buyPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8067,"src":"5624:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5624:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7991,"id":7996,"nodeType":"Return","src":"5617:27:23"}]},"functionSelector":"c37b9bcd","id":7998,"implemented":true,"kind":"function","modifiers":[],"name":"buyPack","nameLocation":"5576:7:23","nodeType":"FunctionDefinition","parameters":{"id":7988,"nodeType":"ParameterList","parameters":[],"src":"5583:2:23"},"returnParameters":{"id":7991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7998,"src":"5602:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7989,"name":"uint256","nodeType":"ElementaryTypeName","src":"5602:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5601:9:23"},"scope":8630,"src":"5567:82:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8012,"nodeType":"Block","src":"5728:54:23","statements":[{"expression":{"arguments":[{"expression":{"id":8007,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5751:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5755:6:23","memberName":"sender","nodeType":"MemberAccess","src":"5751:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8009,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8000,"src":"5763:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8006,"name":"_buyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"5741:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256) returns (uint256[] memory)"}},"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5741:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8005,"id":8011,"nodeType":"Return","src":"5734:43:23"}]},"functionSelector":"6adbaf75","id":8013,"implemented":true,"kind":"function","modifiers":[],"name":"buyPacks","nameLocation":"5662:8:23","nodeType":"FunctionDefinition","parameters":{"id":8001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8000,"mutability":"mutable","name":"numberOfPacks","nameLocation":"5679:13:23","nodeType":"VariableDeclaration","scope":8013,"src":"5671:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7999,"name":"uint256","nodeType":"ElementaryTypeName","src":"5671:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5670:23:23"},"returnParameters":{"id":8005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8013,"src":"5710:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8002,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8003,"nodeType":"ArrayTypeName","src":"5710:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5709:18:23"},"scope":8630,"src":"5653:129:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8026,"nodeType":"Block","src":"5859:32:23","statements":[{"expression":{"arguments":[{"id":8023,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8015,"src":"5881:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8022,"name":"_buyPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8067,"src":"5872:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":8024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5872:14:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8021,"id":8025,"nodeType":"Return","src":"5865:21:23"}]},"functionSelector":"967ed63d","id":8027,"implemented":true,"kind":"function","modifiers":[{"id":8018,"kind":"modifierInvocation","modifierName":{"id":8017,"name":"onlyOwners","nameLocations":["5830:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"5830:10:23"},"nodeType":"ModifierInvocation","src":"5830:10:23"}],"name":"buyPackByUser","nameLocation":"5795:13:23","nodeType":"FunctionDefinition","parameters":{"id":8016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8015,"mutability":"mutable","name":"user","nameLocation":"5817:4:23","nodeType":"VariableDeclaration","scope":8027,"src":"5809:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8014,"name":"address","nodeType":"ElementaryTypeName","src":"5809:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5808:14:23"},"returnParameters":{"id":8021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8027,"src":"5850:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8019,"name":"uint256","nodeType":"ElementaryTypeName","src":"5850:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5849:9:23"},"scope":8630,"src":"5786:105:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8044,"nodeType":"Block","src":"6013:48:23","statements":[{"expression":{"arguments":[{"id":8040,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"6036:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8041,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"6042:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8039,"name":"_buyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"6026:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256) returns (uint256[] memory)"}},"id":8042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6026:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8038,"id":8043,"nodeType":"Return","src":"6019:37:23"}]},"functionSelector":"62e21878","id":8045,"implemented":true,"kind":"function","modifiers":[{"id":8034,"kind":"modifierInvocation","modifierName":{"id":8033,"name":"onlyOwners","nameLocations":["5975:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"5975:10:23"},"nodeType":"ModifierInvocation","src":"5975:10:23"}],"name":"buyPacksByUser","nameLocation":"5904:14:23","nodeType":"FunctionDefinition","parameters":{"id":8032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8029,"mutability":"mutable","name":"user","nameLocation":"5932:4:23","nodeType":"VariableDeclaration","scope":8045,"src":"5924:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8028,"name":"address","nodeType":"ElementaryTypeName","src":"5924:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8031,"mutability":"mutable","name":"numberOfPacks","nameLocation":"5950:13:23","nodeType":"VariableDeclaration","scope":8045,"src":"5942:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8030,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5918:49:23"},"returnParameters":{"id":8038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8045,"src":"5995:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8035,"name":"uint256","nodeType":"ElementaryTypeName","src":"5995:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8036,"nodeType":"ArrayTypeName","src":"5995:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5994:18:23"},"scope":8630,"src":"5895:166:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8066,"nodeType":"Block","src":"6123:81:23","statements":[{"assignments":[8056],"declarations":[{"constant":false,"id":8056,"mutability":"mutable","name":"tokenIds","nameLocation":"6146:8:23","nodeType":"VariableDeclaration","scope":8066,"src":"6129:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8054,"name":"uint256","nodeType":"ElementaryTypeName","src":"6129:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8055,"nodeType":"ArrayTypeName","src":"6129:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":8061,"initialValue":{"arguments":[{"id":8058,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8047,"src":"6167:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":8059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6173:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":8057,"name":"_buyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8203,"src":"6157:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,uint256) returns (uint256[] memory)"}},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6157:18:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6129:46:23"},{"expression":{"baseExpression":{"id":8062,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8056,"src":"6188:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8064,"indexExpression":{"hexValue":"30","id":8063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6197:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6188:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8051,"id":8065,"nodeType":"Return","src":"6181:18:23"}]},"id":8067,"implemented":true,"kind":"function","modifiers":[],"name":"_buyPack","nameLocation":"6074:8:23","nodeType":"FunctionDefinition","parameters":{"id":8048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8047,"mutability":"mutable","name":"user","nameLocation":"6091:4:23","nodeType":"VariableDeclaration","scope":8067,"src":"6083:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8046,"name":"address","nodeType":"ElementaryTypeName","src":"6083:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6082:14:23"},"returnParameters":{"id":8051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8067,"src":"6114:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8049,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6113:9:23"},"scope":8630,"src":"6065:139:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8202,"nodeType":"Block","src":"6299:1000:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8077,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6309:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6325:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6317:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8078,"name":"address","nodeType":"ElementaryTypeName","src":"6317:7:23","typeDescriptions":{}}},"id":8081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6309:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8086,"nodeType":"IfStatement","src":"6305:47:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8083,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"6336:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6336:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8085,"nodeType":"RevertStatement","src":"6329:23:23"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8087,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6362:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6379:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6362:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8090,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6384:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":8091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6400:3:23","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"6384:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6362:41:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8097,"nodeType":"IfStatement","src":"6358:76:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8094,"name":"InvalidNumberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7490,"src":"6412:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6412:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8096,"nodeType":"RevertStatement","src":"6405:29:23"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8098,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"6445:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8099,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6462:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:30:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8101,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6444:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8102,"name":"TOTALSUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"6480:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6444:47:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8107,"nodeType":"IfStatement","src":"6440:88:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8104,"name":"InsufficientPacksAvailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"6500:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6500:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8106,"nodeType":"RevertStatement","src":"6493:35:23"}},{"assignments":[8112],"declarations":[{"constant":false,"id":8112,"mutability":"mutable","name":"tokenIds","nameLocation":"6551:8:23","nodeType":"VariableDeclaration","scope":8202,"src":"6534:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8110,"name":"uint256","nodeType":"ElementaryTypeName","src":"6534:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8111,"nodeType":"ArrayTypeName","src":"6534:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":8118,"initialValue":{"arguments":[{"id":8116,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6576:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6562:13:23","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":8113,"name":"uint256","nodeType":"ElementaryTypeName","src":"6566:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8114,"nodeType":"ArrayTypeName","src":"6566:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6562:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6534:56:23"},{"assignments":[8120],"declarations":[{"constant":false,"id":8120,"mutability":"mutable","name":"m_packsCounter","nameLocation":"6604:14:23","nodeType":"VariableDeclaration","scope":8202,"src":"6596:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8119,"name":"uint256","nodeType":"ElementaryTypeName","src":"6596:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8122,"initialValue":{"id":8121,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"6621:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6596:39:23"},{"body":{"id":8162,"nodeType":"Block","src":"6678:271:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8129,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6690:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8130,"name":"TOTALSUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"6708:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6690:29:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8135,"nodeType":"IfStatement","src":"6686:70:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8132,"name":"InsufficientPacksAvailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7492,"src":"6728:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6728:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8134,"nodeType":"RevertStatement","src":"6721:35:23"}},{"expression":{"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8136,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"6764:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8138,"indexExpression":{"id":8137,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6772:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6764:23:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8139,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6790:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6764:30:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8141,"nodeType":"ExpressionStatement","src":"6764:30:23"},{"expression":{"arguments":[{"id":8146,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6827:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":8142,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"6802:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8144,"indexExpression":{"id":8143,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"6816:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6802:19:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6822:4:23","memberName":"push","nodeType":"MemberAccess","src":"6802:24:23","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6802:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8148,"nodeType":"ExpressionStatement","src":"6802:40:23"},{"expression":{"id":8153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8149,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"6850:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8151,"indexExpression":{"id":8150,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8124,"src":"6859:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6850:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8152,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6864:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:28:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8154,"nodeType":"ExpressionStatement","src":"6850:28:23"},{"expression":{"id":8156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6886:16:23","subExpression":{"id":8155,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6886:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8157,"nodeType":"ExpressionStatement","src":"6886:16:23"},{"id":8161,"nodeType":"UncheckedBlock","src":"6910:33:23","statements":[{"expression":{"id":8159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6931:3:23","subExpression":{"id":8158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8124,"src":"6931:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8160,"nodeType":"ExpressionStatement","src":"6931:3:23"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8124,"src":"6658:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8127,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"6662:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6658:17:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8163,"initializationExpression":{"assignments":[8124],"declarations":[{"constant":false,"id":8124,"mutability":"mutable","name":"i","nameLocation":"6655:1:23","nodeType":"VariableDeclaration","scope":8163,"src":"6647:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6647:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8125,"nodeType":"VariableDeclarationStatement","src":"6647:9:23"},"nodeType":"ForStatement","src":"6642:307:23"},{"expression":{"id":8166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8164,"name":"s_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"6959:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8165,"name":"m_packsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8120,"src":"6976:14:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6959:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8167,"nodeType":"ExpressionStatement","src":"6959:31:23"},{"assignments":[8169],"declarations":[{"constant":false,"id":8169,"mutability":"mutable","name":"transferPrizeResult","nameLocation":"7002:19:23","nodeType":"VariableDeclaration","scope":8202,"src":"6997:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8168,"name":"bool","nodeType":"ElementaryTypeName","src":"6997:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8174,"initialValue":{"arguments":[{"id":8171,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7047:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8172,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"7053:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8170,"name":"_transferPrizesAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8315,"src":"7024:22:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":8173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7024:43:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6997:70:23"},{"condition":{"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7077:20:23","subExpression":{"id":8175,"name":"transferPrizeResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"7078:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8181,"nodeType":"IfStatement","src":"7073:57:23","trueBody":{"errorCall":{"arguments":[{"id":8178,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7125:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8177,"name":"TransferPrizeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7496,"src":"7106:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7106:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8180,"nodeType":"RevertStatement","src":"7099:31:23"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8182,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8071,"src":"7141:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":8183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7158:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7141:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8198,"nodeType":"Block","src":"7219:50:23","statements":[{"eventCall":{"arguments":[{"id":8194,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7247:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8195,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7253:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":8193,"name":"PacksPurchased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7595,"src":"7232:14:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,uint256[] memory)"}},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7232:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8197,"nodeType":"EmitStatement","src":"7227:35:23"}]},"id":8199,"nodeType":"IfStatement","src":"7137:132:23","trueBody":{"id":8192,"nodeType":"Block","src":"7161:52:23","statements":[{"eventCall":{"arguments":[{"id":8186,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"7188:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":8187,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7194:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8189,"indexExpression":{"hexValue":"30","id":8188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7203:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7194:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8185,"name":"PackPurchased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7588,"src":"7174:13:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7174:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8191,"nodeType":"EmitStatement","src":"7169:37:23"}]}},{"expression":{"id":8200,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"7286:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8076,"id":8201,"nodeType":"Return","src":"7279:15:23"}]},"id":8203,"implemented":true,"kind":"function","modifiers":[],"name":"_buyPacks","nameLocation":"6217:9:23","nodeType":"FunctionDefinition","parameters":{"id":8072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8069,"mutability":"mutable","name":"user","nameLocation":"6235:4:23","nodeType":"VariableDeclaration","scope":8203,"src":"6227:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8068,"name":"address","nodeType":"ElementaryTypeName","src":"6227:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8071,"mutability":"mutable","name":"numberOfPacks","nameLocation":"6249:13:23","nodeType":"VariableDeclaration","scope":8203,"src":"6241:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6241:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6226:37:23"},"returnParameters":{"id":8076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8203,"src":"6281:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8073,"name":"uint256","nodeType":"ElementaryTypeName","src":"6281:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8074,"nodeType":"ArrayTypeName","src":"6281:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6280:18:23"},"scope":8630,"src":"6208:1091:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8314,"nodeType":"Block","src":"7395:993:23","statements":[{"assignments":[8213],"declarations":[{"constant":false,"id":8213,"mutability":"mutable","name":"prizesAmount","nameLocation":"7409:12:23","nodeType":"VariableDeclaration","scope":8314,"src":"7401:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8212,"name":"uint256","nodeType":"ElementaryTypeName","src":"7401:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8217,"initialValue":{"arguments":[{"id":8215,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"7449:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8214,"name":"getPrizeAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"7424:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":8216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7424:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7401:62:23"},{"assignments":[8219],"declarations":[{"constant":false,"id":8219,"mutability":"mutable","name":"prizeNoFAccount","nameLocation":"7477:15:23","nodeType":"VariableDeclaration","scope":8314,"src":"7469:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8218,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8223,"initialValue":{"arguments":[{"id":8221,"name":"numberOfPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"7530:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8220,"name":"getPrizeNoFAccountAmountToBuyPacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7916,"src":"7495:34:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7495:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7469:75:23"},{"expression":{"arguments":[{"id":8227,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"7586:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8224,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"7550:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}},"id":8226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7569:16:23","memberName":"setPrizesBalance","nodeType":"MemberAccess","referencedDeclaration":7509,"src":"7550:35:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":8228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8229,"nodeType":"ExpressionStatement","src":"7550:49:23"},{"condition":{"id":8230,"name":"s_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"7610:13:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8311,"nodeType":"IfStatement","src":"7606:761:23","trueBody":{"id":8310,"nodeType":"Block","src":"7625:742:23","statements":[{"assignments":[8233],"declarations":[{"constant":false,"id":8233,"mutability":"mutable","name":"erc20Token","nameLocation":"7640:10:23","nodeType":"VariableDeclaration","scope":8310,"src":"7633:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"},"typeName":{"id":8232,"nodeType":"UserDefinedTypeName","pathNode":{"id":8231,"name":"IERC20","nameLocations":["7633:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":394,"src":"7633:6:23"},"referencedDeclaration":394,"src":"7633:6:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"visibility":"internal"}],"id":8237,"initialValue":{"arguments":[{"id":8235,"name":"DAI_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7547,"src":"7660:9:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8234,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"7653:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$394_$","typeString":"type(contract IERC20)"}},"id":8236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7653:17:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"7633:37:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8240,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"7704:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8243,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7718:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_NofGammaPacksV3_$8630","typeString":"contract NofGammaPacksV3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NofGammaPacksV3_$8630","typeString":"contract NofGammaPacksV3"}],"id":8242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7710:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8241,"name":"address","nodeType":"ElementaryTypeName","src":"7710:7:23","typeDescriptions":{}}},"id":8244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7710:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8238,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7683:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7694:9:23","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":371,"src":"7683:20:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7683:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8246,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"7728:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8247,"name":"prizeNoFAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"7743:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7728:30:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7727:32:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7683:76:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8254,"nodeType":"IfStatement","src":"7679:112:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8251,"name":"InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7498,"src":"7768:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7768:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8253,"nodeType":"RevertStatement","src":"7761:30:23"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8257,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"7824:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8255,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7803:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7814:9:23","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"7803:20:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":8258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7803:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8259,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"7832:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7803:41:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8263,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"7869:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8261,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7848:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7859:9:23","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":351,"src":"7848:20:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":8264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7848:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8265,"name":"prizeNoFAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"7877:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:44:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7803:89:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8271,"nodeType":"IfStatement","src":"7799:131:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8268,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7500,"src":"7909:19:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7909:21:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8270,"nodeType":"RevertStatement","src":"7902:28:23"}},{"assignments":[8273],"declarations":[{"constant":false,"id":8273,"mutability":"mutable","name":"successTx1","nameLocation":"7992:10:23","nodeType":"VariableDeclaration","scope":8310,"src":"7987:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8272,"name":"bool","nodeType":"ElementaryTypeName","src":"7987:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8283,"initialValue":{"arguments":[{"id":8276,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"8029:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8279,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"8043:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}],"id":8278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8035:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8277,"name":"address","nodeType":"ElementaryTypeName","src":"8035:7:23","typeDescriptions":{}}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8035:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8281,"name":"prizesAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8213,"src":"8064:12:23","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":8274,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"8005:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8016:12:23","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":393,"src":"8005:23:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":8282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8005:72:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"7987:90:23"},{"condition":{"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8089:11:23","subExpression":{"id":8284,"name":"successTx1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"8090:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8293,"nodeType":"IfStatement","src":"8085:71:23","trueBody":{"errorCall":{"arguments":[{"arguments":[{"id":8289,"name":"gammaCardsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7539,"src":"8136:18:23","typeDescriptions":{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IGammaCardsContract_$7515","typeString":"contract IGammaCardsContract"}],"id":8288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8128:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8287,"name":"address","nodeType":"ElementaryTypeName","src":"8128:7:23","typeDescriptions":{}}},"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8128:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8286,"name":"TransferPrizeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7496,"src":"8109:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8109:47:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8292,"nodeType":"RevertStatement","src":"8102:54:23"}},{"assignments":[8295],"declarations":[{"constant":false,"id":8295,"mutability":"mutable","name":"successTx2","nameLocation":"8213:10:23","nodeType":"VariableDeclaration","scope":8310,"src":"8208:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8294,"name":"bool","nodeType":"ElementaryTypeName","src":"8208:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8302,"initialValue":{"arguments":[{"id":8298,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"8250:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8299,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"8256:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8300,"name":"prizeNoFAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"8275:15:23","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":8296,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"8226:10:23","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$394","typeString":"contract IERC20"}},"id":8297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8237:12:23","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":393,"src":"8226:23:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":8301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8226:65:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8208:83:23"},{"condition":{"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8303:11:23","subExpression":{"id":8303,"name":"successTx2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8295,"src":"8304:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8309,"nodeType":"IfStatement","src":"8299:61:23","trueBody":{"errorCall":{"arguments":[{"id":8306,"name":"s_balanceReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"8342:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8305,"name":"TransferPrizeError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7496,"src":"8323:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":8307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8323:37:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8308,"nodeType":"RevertStatement","src":"8316:44:23"}}]}},{"expression":{"hexValue":"74727565","id":8312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8379:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8211,"id":8313,"nodeType":"Return","src":"8372:11:23"}]},"id":8315,"implemented":true,"kind":"function","modifiers":[],"name":"_transferPrizesAmounts","nameLocation":"7312:22:23","nodeType":"FunctionDefinition","parameters":{"id":8208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8205,"mutability":"mutable","name":"user","nameLocation":"7343:4:23","nodeType":"VariableDeclaration","scope":8315,"src":"7335:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8204,"name":"address","nodeType":"ElementaryTypeName","src":"7335:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8207,"mutability":"mutable","name":"numberOfPacks","nameLocation":"7357:13:23","nodeType":"VariableDeclaration","scope":8315,"src":"7349:21:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8206,"name":"uint256","nodeType":"ElementaryTypeName","src":"7349:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7334:37:23"},"returnParameters":{"id":8211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8315,"src":"7389:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8209,"name":"bool","nodeType":"ElementaryTypeName","src":"7389:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7388:6:23"},"scope":8630,"src":"7303:1085:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8373,"nodeType":"Block","src":"8456:318:23","statements":[{"assignments":[8323],"declarations":[{"constant":false,"id":8323,"mutability":"mutable","name":"packsByUserLength","nameLocation":"8470:17:23","nodeType":"VariableDeclaration","scope":8373,"src":"8462:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8322,"name":"uint256","nodeType":"ElementaryTypeName","src":"8462:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8328,"initialValue":{"expression":{"baseExpression":{"id":8324,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8490:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8326,"indexExpression":{"id":8325,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8504:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8490:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8511:6:23","memberName":"length","nodeType":"MemberAccess","src":"8490:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8462:55:23"},{"body":{"id":8371,"nodeType":"Block","src":"8567:203:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":8338,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8579:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8340,"indexExpression":{"id":8339,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8593:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8579:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8342,"indexExpression":{"id":8341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8600:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8579:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8343,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8317,"src":"8606:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8579:34:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8370,"nodeType":"IfStatement","src":"8575:189:23","trueBody":{"id":8369,"nodeType":"Block","src":"8615:149:23","statements":[{"expression":{"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":8345,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8625:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8348,"indexExpression":{"id":8346,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8639:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8625:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8349,"indexExpression":{"id":8347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8646:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8625:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":8350,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8651:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8352,"indexExpression":{"id":8351,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8665:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8651:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8359,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":8353,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8672:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8355,"indexExpression":{"id":8354,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8686:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8672:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8693:6:23","memberName":"length","nodeType":"MemberAccess","src":"8672:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8702:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8672:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8651:53:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8625:79:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8361,"nodeType":"ExpressionStatement","src":"8625:79:23"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":8362,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"8714:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8364,"indexExpression":{"id":8363,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"8728:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8714:20:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8735:3:23","memberName":"pop","nodeType":"MemberAccess","src":"8714:24:23","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer)"}},"id":8366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8714:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8367,"nodeType":"ExpressionStatement","src":"8714:26:23"},{"id":8368,"nodeType":"Break","src":"8750:5:23"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8539:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8333,"name":"packsByUserLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8323,"src":"8543:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8539:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8372,"initializationExpression":{"assignments":[8330],"declarations":[{"constant":false,"id":8330,"mutability":"mutable","name":"i","nameLocation":"8536:1:23","nodeType":"VariableDeclaration","scope":8372,"src":"8528:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8329,"name":"uint256","nodeType":"ElementaryTypeName","src":"8528:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8331,"nodeType":"VariableDeclarationStatement","src":"8528:9:23"},"loopExpression":{"expression":{"id":8336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8562:3:23","subExpression":{"id":8335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"8562:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8337,"nodeType":"ExpressionStatement","src":"8562:3:23"},"nodeType":"ForStatement","src":"8523:247:23"}]},"id":8374,"implemented":true,"kind":"function","modifiers":[],"name":"deleteTokenId","nameLocation":"8401:13:23","nodeType":"FunctionDefinition","parameters":{"id":8320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8317,"mutability":"mutable","name":"tokenId","nameLocation":"8423:7:23","nodeType":"VariableDeclaration","scope":8374,"src":"8415:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8316,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8319,"mutability":"mutable","name":"owner","nameLocation":"8440:5:23","nodeType":"VariableDeclaration","scope":8374,"src":"8432:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8318,"name":"address","nodeType":"ElementaryTypeName","src":"8432:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8414:32:23"},"returnParameters":{"id":8321,"nodeType":"ParameterList","parameters":[],"src":"8456:0:23"},"scope":8630,"src":"8392:382:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8386,"nodeType":"Block","src":"8836:37:23","statements":[{"expression":{"arguments":[{"id":8382,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"8856:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8383,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"8860:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8381,"name":"_transferPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"8842:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8842:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8385,"nodeType":"ExpressionStatement","src":"8842:26:23"}]},"functionSelector":"d611713e","id":8387,"implemented":true,"kind":"function","modifiers":[],"name":"transferPack","nameLocation":"8787:12:23","nodeType":"FunctionDefinition","parameters":{"id":8379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8376,"mutability":"mutable","name":"to","nameLocation":"8808:2:23","nodeType":"VariableDeclaration","scope":8387,"src":"8800:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8375,"name":"address","nodeType":"ElementaryTypeName","src":"8800:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8378,"mutability":"mutable","name":"tokenId","nameLocation":"8820:7:23","nodeType":"VariableDeclaration","scope":8387,"src":"8812:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8377,"name":"uint256","nodeType":"ElementaryTypeName","src":"8812:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8799:29:23"},"returnParameters":{"id":8380,"nodeType":"ParameterList","parameters":[],"src":"8836:0:23"},"scope":8630,"src":"8778:95:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8426,"nodeType":"Block","src":"8946:186:23","statements":[{"body":{"id":8417,"nodeType":"Block","src":"8998:78:23","statements":[{"assignments":[8407],"declarations":[{"constant":false,"id":8407,"mutability":"mutable","name":"tokenId","nameLocation":"9014:7:23","nodeType":"VariableDeclaration","scope":8417,"src":"9006:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8406,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8411,"initialValue":{"baseExpression":{"id":8408,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"9024:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8410,"indexExpression":{"id":8409,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"9033:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9024:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:29:23"},{"expression":{"arguments":[{"id":8413,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"9057:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8414,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"9061:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8412,"name":"_transferPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8481,"src":"9043:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8416,"nodeType":"ExpressionStatement","src":"9043:26:23"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8399,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"8972:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8400,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"8976:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8985:6:23","memberName":"length","nodeType":"MemberAccess","src":"8976:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8972:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8418,"initializationExpression":{"assignments":[8396],"declarations":[{"constant":false,"id":8396,"mutability":"mutable","name":"i","nameLocation":"8965:1:23","nodeType":"VariableDeclaration","scope":8418,"src":"8957:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8395,"name":"uint256","nodeType":"ElementaryTypeName","src":"8957:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8398,"initialValue":{"hexValue":"30","id":8397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8957:13:23"},"loopExpression":{"expression":{"id":8404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8993:3:23","subExpression":{"id":8403,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8396,"src":"8993:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8405,"nodeType":"ExpressionStatement","src":"8993:3:23"},"nodeType":"ForStatement","src":"8952:124:23"},{"eventCall":{"arguments":[{"expression":{"id":8420,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9102:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9106:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9102:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8422,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8389,"src":"9114:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8423,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8392,"src":"9118:8:23","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"}],"id":8419,"name":"PacksTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"9086:15:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory)"}},"id":8424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9086:41:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8425,"nodeType":"EmitStatement","src":"9081:46:23"}]},"functionSelector":"ab4bdbc8","id":8427,"implemented":true,"kind":"function","modifiers":[],"name":"transferPacks","nameLocation":"8886:13:23","nodeType":"FunctionDefinition","parameters":{"id":8393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8389,"mutability":"mutable","name":"to","nameLocation":"8908:2:23","nodeType":"VariableDeclaration","scope":8427,"src":"8900:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8388,"name":"address","nodeType":"ElementaryTypeName","src":"8900:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8392,"mutability":"mutable","name":"tokenIds","nameLocation":"8929:8:23","nodeType":"VariableDeclaration","scope":8427,"src":"8912:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8390,"name":"uint256","nodeType":"ElementaryTypeName","src":"8912:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8391,"nodeType":"ArrayTypeName","src":"8912:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"8899:39:23"},"returnParameters":{"id":8394,"nodeType":"ParameterList","parameters":[],"src":"8946:0:23"},"scope":8630,"src":"8877:255:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8480,"nodeType":"Block","src":"9196:272:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8434,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9206:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9220:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9212:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8435,"name":"address","nodeType":"ElementaryTypeName","src":"9212:7:23","typeDescriptions":{}}},"id":8438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9212:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9206:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8443,"nodeType":"IfStatement","src":"9202:45:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8440,"name":"InvalidAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7488,"src":"9231:14:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9231:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8442,"nodeType":"RevertStatement","src":"9224:23:23"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8444,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"9257:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8446,"indexExpression":{"id":8445,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9265:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9257:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9277:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9281:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9277:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9257:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8453,"nodeType":"IfStatement","src":"9253:56:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8450,"name":"NotYourPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"9296:11:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9296:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8452,"nodeType":"RevertStatement","src":"9289:20:23"}},{"expression":{"id":8458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8454,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"9315:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8456,"indexExpression":{"id":8455,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9323:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9315:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8457,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9334:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9315:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8459,"nodeType":"ExpressionStatement","src":"9315:21:23"},{"expression":{"arguments":[{"id":8461,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9356:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8462,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9365:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9369:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9365:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8460,"name":"deleteTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"9342:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9342:34:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8465,"nodeType":"ExpressionStatement","src":"9342:34:23"},{"expression":{"arguments":[{"id":8470,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9405:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":8466,"name":"s_packsByUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7570,"src":"9382:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":8468,"indexExpression":{"id":8467,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9396:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9382:17:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":8469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9400:4:23","memberName":"push","nodeType":"MemberAccess","src":"9382:22:23","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9382:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8472,"nodeType":"ExpressionStatement","src":"9382:31:23"},{"eventCall":{"arguments":[{"expression":{"id":8474,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9439:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9443:6:23","memberName":"sender","nodeType":"MemberAccess","src":"9439:10:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8476,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8429,"src":"9451:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8477,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8431,"src":"9455:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8473,"name":"PackTransfered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7603,"src":"9424:14:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9424:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8479,"nodeType":"EmitStatement","src":"9419:44:23"}]},"id":8481,"implemented":true,"kind":"function","modifiers":[],"name":"_transferPack","nameLocation":"9145:13:23","nodeType":"FunctionDefinition","parameters":{"id":8432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8429,"mutability":"mutable","name":"to","nameLocation":"9167:2:23","nodeType":"VariableDeclaration","scope":8481,"src":"9159:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8428,"name":"address","nodeType":"ElementaryTypeName","src":"9159:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8431,"mutability":"mutable","name":"tokenId","nameLocation":"9179:7:23","nodeType":"VariableDeclaration","scope":8481,"src":"9171:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8430,"name":"uint256","nodeType":"ElementaryTypeName","src":"9171:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9158:29:23"},"returnParameters":{"id":8433,"nodeType":"ParameterList","parameters":[],"src":"9196:0:23"},"scope":8630,"src":"9136:332:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8495,"nodeType":"Block","src":"9552:36:23","statements":[{"expression":{"arguments":[{"id":8491,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8483,"src":"9568:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8492,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8485,"src":"9577:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8490,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"9558:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8494,"nodeType":"ExpressionStatement","src":"9558:25:23"}]},"functionSelector":"80f2540b","id":8496,"implemented":true,"kind":"function","modifiers":[{"id":8488,"kind":"modifierInvocation","modifierName":{"id":8487,"name":"onlyGammaCardsContract","nameLocations":["9529:22:23"],"nodeType":"IdentifierPath","referencedDeclaration":7637,"src":"9529:22:23"},"nodeType":"ModifierInvocation","src":"9529:22:23"}],"name":"openPack","nameLocation":"9481:8:23","nodeType":"FunctionDefinition","parameters":{"id":8486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8483,"mutability":"mutable","name":"tokenId","nameLocation":"9498:7:23","nodeType":"VariableDeclaration","scope":8496,"src":"9490:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8482,"name":"uint256","nodeType":"ElementaryTypeName","src":"9490:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8485,"mutability":"mutable","name":"owner","nameLocation":"9515:5:23","nodeType":"VariableDeclaration","scope":8496,"src":"9507:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8484,"name":"address","nodeType":"ElementaryTypeName","src":"9507:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9489:32:23"},"returnParameters":{"id":8489,"nodeType":"ParameterList","parameters":[],"src":"9552:0:23"},"scope":8630,"src":"9472:116:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8530,"nodeType":"Block","src":"9683:133:23","statements":[{"body":{"id":8528,"nodeType":"Block","src":"9735:77:23","statements":[{"assignments":[8518],"declarations":[{"constant":false,"id":8518,"mutability":"mutable","name":"tokenId","nameLocation":"9751:7:23","nodeType":"VariableDeclaration","scope":8528,"src":"9743:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8517,"name":"uint256","nodeType":"ElementaryTypeName","src":"9743:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8522,"initialValue":{"baseExpression":{"id":8519,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8499,"src":"9761:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8521,"indexExpression":{"id":8520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"9770:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9761:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9743:29:23"},{"expression":{"arguments":[{"id":8524,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8518,"src":"9790:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8525,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8501,"src":"9799:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8523,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"9780:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8527,"nodeType":"ExpressionStatement","src":"9780:25:23"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8510,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"9709:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8511,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8499,"src":"9713:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9722:6:23","memberName":"length","nodeType":"MemberAccess","src":"9713:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9709:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8529,"initializationExpression":{"assignments":[8507],"declarations":[{"constant":false,"id":8507,"mutability":"mutable","name":"i","nameLocation":"9702:1:23","nodeType":"VariableDeclaration","scope":8529,"src":"9694:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8506,"name":"uint256","nodeType":"ElementaryTypeName","src":"9694:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8509,"initialValue":{"hexValue":"30","id":8508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9706:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9694:13:23"},"loopExpression":{"expression":{"id":8515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9730:3:23","subExpression":{"id":8514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8507,"src":"9730:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8516,"nodeType":"ExpressionStatement","src":"9730:3:23"},"nodeType":"ForStatement","src":"9689:123:23"}]},"functionSelector":"97f8b3d3","id":8531,"implemented":true,"kind":"function","modifiers":[{"id":8504,"kind":"modifierInvocation","modifierName":{"id":8503,"name":"onlyGammaCardsContract","nameLocations":["9660:22:23"],"nodeType":"IdentifierPath","referencedDeclaration":7637,"src":"9660:22:23"},"nodeType":"ModifierInvocation","src":"9660:22:23"}],"name":"openPacks","nameLocation":"9601:9:23","nodeType":"FunctionDefinition","parameters":{"id":8502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8499,"mutability":"mutable","name":"tokenIds","nameLocation":"9628:8:23","nodeType":"VariableDeclaration","scope":8531,"src":"9611:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8497,"name":"uint256","nodeType":"ElementaryTypeName","src":"9611:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8498,"nodeType":"ArrayTypeName","src":"9611:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8501,"mutability":"mutable","name":"owner","nameLocation":"9646:5:23","nodeType":"VariableDeclaration","scope":8531,"src":"9638:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8500,"name":"address","nodeType":"ElementaryTypeName","src":"9638:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9610:42:23"},"returnParameters":{"id":8505,"nodeType":"ParameterList","parameters":[],"src":"9683:0:23"},"scope":8630,"src":"9592:224:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8553,"nodeType":"Block","src":"9879:106:23","statements":[{"expression":{"arguments":[{"id":8539,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"9899:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8540,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8535,"src":"9908:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8538,"name":"deleteTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8374,"src":"9885:13:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9885:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8542,"nodeType":"ExpressionStatement","src":"9885:29:23"},{"expression":{"id":8546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9920:23:23","subExpression":{"baseExpression":{"id":8543,"name":"s_packs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"9927:7:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":8545,"indexExpression":{"id":8544,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"9935:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9927:16:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8547,"nodeType":"ExpressionStatement","src":"9920:23:23"},{"eventCall":{"arguments":[{"id":8549,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8535,"src":"9965:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8550,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8533,"src":"9972:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8548,"name":"PackOpened","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7618,"src":"9954:10:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9954:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8552,"nodeType":"EmitStatement","src":"9949:31:23"}]},"id":8554,"implemented":true,"kind":"function","modifiers":[],"name":"_openPack","nameLocation":"9829:9:23","nodeType":"FunctionDefinition","parameters":{"id":8536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8533,"mutability":"mutable","name":"tokenId","nameLocation":"9847:7:23","nodeType":"VariableDeclaration","scope":8554,"src":"9839:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8532,"name":"uint256","nodeType":"ElementaryTypeName","src":"9839:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8535,"mutability":"mutable","name":"owner","nameLocation":"9864:5:23","nodeType":"VariableDeclaration","scope":8554,"src":"9856:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8534,"name":"address","nodeType":"ElementaryTypeName","src":"9856:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9838:32:23"},"returnParameters":{"id":8537,"nodeType":"ParameterList","parameters":[],"src":"9879:0:23"},"scope":8630,"src":"9820:165:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8578,"nodeType":"Block","src":"10017:472:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8559,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"10035:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}],"id":8558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10027:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8557,"name":"address","nodeType":"ElementaryTypeName","src":"10027:7:23","typeDescriptions":{}}},"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10027:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10068:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10060:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8561,"name":"address","nodeType":"ElementaryTypeName","src":"10060:7:23","typeDescriptions":{}}},"id":8564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10060:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10027:43:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8569,"nodeType":"IfStatement","src":"10023:79:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":8566,"name":"ContractAddressNotSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7504,"src":"10079:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"RevertStatement","src":"10072:30:23"}},{"condition":{"id":8570,"name":"s_transferDai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"10317:13:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8572,"nodeType":"IfStatement","src":"10313:74:23","trueBody":{"id":8571,"nodeType":"Block","src":"10332:55:23","statements":[]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8573,"name":"gammaTicketsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"10445:20:23","typeDescriptions":{"typeIdentifier":"t_contract$_IgammaTicketsContract_$7530","typeString":"contract IgammaTicketsContract"}},"id":8575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10466:16:23","memberName":"deleteAllTickets","nodeType":"MemberAccess","referencedDeclaration":7529,"src":"10445:37:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":8576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10445:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8577,"nodeType":"ExpressionStatement","src":"10445:39:23"}]},"id":8579,"implemented":true,"kind":"function","modifiers":[],"name":"_lottery","nameLocation":"9998:8:23","nodeType":"FunctionDefinition","parameters":{"id":8555,"nodeType":"ParameterList","parameters":[],"src":"10006:2:23"},"returnParameters":{"id":8556,"nodeType":"ParameterList","parameters":[],"src":"10017:0:23"},"scope":8630,"src":"9989:500:23","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8593,"nodeType":"Block","src":"10625:36:23","statements":[{"expression":{"arguments":[{"id":8589,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"10641:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8590,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"10650:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8588,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"10631:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10631:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8592,"nodeType":"ExpressionStatement","src":"10631:25:23"}]},"functionSelector":"39e8d3ec","id":8594,"implemented":true,"kind":"function","modifiers":[{"id":8586,"kind":"modifierInvocation","modifierName":{"id":8585,"name":"onlyOwners","nameLocations":["10614:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"10614:10:23"},"nodeType":"ModifierInvocation","src":"10614:10:23"}],"name":"testOpenPack","nameLocation":"10562:12:23","nodeType":"FunctionDefinition","parameters":{"id":8584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8581,"mutability":"mutable","name":"tokenId","nameLocation":"10583:7:23","nodeType":"VariableDeclaration","scope":8594,"src":"10575:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8580,"name":"uint256","nodeType":"ElementaryTypeName","src":"10575:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8583,"mutability":"mutable","name":"owner","nameLocation":"10600:5:23","nodeType":"VariableDeclaration","scope":8594,"src":"10592:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8582,"name":"address","nodeType":"ElementaryTypeName","src":"10592:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10574:32:23"},"returnParameters":{"id":8587,"nodeType":"ParameterList","parameters":[],"src":"10625:0:23"},"scope":8630,"src":"10553:108:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8628,"nodeType":"Block","src":"10748:133:23","statements":[{"body":{"id":8626,"nodeType":"Block","src":"10800:77:23","statements":[{"assignments":[8616],"declarations":[{"constant":false,"id":8616,"mutability":"mutable","name":"tokenId","nameLocation":"10816:7:23","nodeType":"VariableDeclaration","scope":8626,"src":"10808:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8615,"name":"uint256","nodeType":"ElementaryTypeName","src":"10808:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8620,"initialValue":{"baseExpression":{"id":8617,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"10826:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8619,"indexExpression":{"id":8618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"10835:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10826:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10808:29:23"},{"expression":{"arguments":[{"id":8622,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8616,"src":"10855:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8623,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8599,"src":"10864:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8621,"name":"_openPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"10845:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10845:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8625,"nodeType":"ExpressionStatement","src":"10845:25:23"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"10774:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8609,"name":"tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8597,"src":"10778:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":8610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10787:6:23","memberName":"length","nodeType":"MemberAccess","src":"10778:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10774:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8627,"initializationExpression":{"assignments":[8605],"declarations":[{"constant":false,"id":8605,"mutability":"mutable","name":"i","nameLocation":"10767:1:23","nodeType":"VariableDeclaration","scope":8627,"src":"10759:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8604,"name":"uint256","nodeType":"ElementaryTypeName","src":"10759:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8607,"initialValue":{"hexValue":"30","id":8606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10771:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10759:13:23"},"loopExpression":{"expression":{"id":8613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10795:3:23","subExpression":{"id":8612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"10795:1:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8614,"nodeType":"ExpressionStatement","src":"10795:3:23"},"nodeType":"ForStatement","src":"10754:123:23"}]},"functionSelector":"0c3e5c00","id":8629,"implemented":true,"kind":"function","modifiers":[{"id":8602,"kind":"modifierInvocation","modifierName":{"id":8601,"name":"onlyOwners","nameLocations":["10737:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":7651,"src":"10737:10:23"},"nodeType":"ModifierInvocation","src":"10737:10:23"}],"name":"testOpenPacks","nameLocation":"10674:13:23","nodeType":"FunctionDefinition","parameters":{"id":8600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8597,"mutability":"mutable","name":"tokenIds","nameLocation":"10705:8:23","nodeType":"VariableDeclaration","scope":8629,"src":"10688:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8595,"name":"uint256","nodeType":"ElementaryTypeName","src":"10688:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8596,"nodeType":"ArrayTypeName","src":"10688:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8599,"mutability":"mutable","name":"owner","nameLocation":"10723:5:23","nodeType":"VariableDeclaration","scope":8629,"src":"10715:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8598,"name":"address","nodeType":"ElementaryTypeName","src":"10715:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10687:42:23"},"returnParameters":{"id":8603,"nodeType":"ParameterList","parameters":[],"src":"10748:0:23"},"scope":8630,"src":"10665:216:23","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":8631,"src":"947:9996:23","usedErrors":[13,18,7484,7486,7488,7490,7492,7496,7498,7500,7502],"usedEvents":[24,7574,7578,7582,7588,7595,7603,7612,7618,7622]}],"src":"32:10912:23"},"id":23},"contracts/gamma/libs/LibControlMgmt.sol":{"ast":{"absolutePath":"contracts/gamma/libs/LibControlMgmt.sol","exportedSymbols":{"LibControlMgmt":[8832]},"id":8833,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8632,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:24"},{"abstract":false,"baseContracts":[],"canonicalName":"LibControlMgmt","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8832,"linearizedBaseContracts":[8832],"name":"LibControlMgmt","nameLocation":"66:14:24","nodeType":"ContractDefinition","nodes":[{"canonicalName":"LibControlMgmt.Data","id":8641,"members":[{"constant":false,"id":8636,"mutability":"mutable","name":"owners","nameLocation":"134:6:24","nodeType":"VariableDeclaration","scope":8641,"src":"109:31:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8635,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8633,"name":"address","nodeType":"ElementaryTypeName","src":"117:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"109:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8634,"name":"bool","nodeType":"ElementaryTypeName","src":"128:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":8640,"mutability":"mutable","name":"signers","nameLocation":"175:7:24","nodeType":"VariableDeclaration","scope":8641,"src":"150:32:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8639,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":8637,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"150:24:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8638,"name":"bool","nodeType":"ElementaryTypeName","src":"169:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"}],"name":"Data","nameLocation":"94:4:24","nodeType":"StructDefinition","scope":8832,"src":"87:102:24","visibility":"public"},{"anonymous":false,"eventSelector":"6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d","id":8645,"name":"NewOwnerAdded","nameLocation":"201:13:24","nodeType":"EventDefinition","parameters":{"id":8644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8643,"indexed":false,"mutability":"mutable","name":"newOwner","nameLocation":"223:8:24","nodeType":"VariableDeclaration","scope":8645,"src":"215:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8642,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"214:18:24"},"src":"195:38:24"},{"anonymous":false,"eventSelector":"58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da","id":8649,"name":"OwnerRemoved","nameLocation":"244:12:24","nodeType":"EventDefinition","parameters":{"id":8648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8647,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"265:5:24","nodeType":"VariableDeclaration","scope":8649,"src":"257:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8646,"name":"address","nodeType":"ElementaryTypeName","src":"257:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"256:15:24"},"src":"238:34:24"},{"anonymous":false,"eventSelector":"72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa3","id":8653,"name":"NewSignerAdded","nameLocation":"283:14:24","nodeType":"EventDefinition","parameters":{"id":8652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8651,"indexed":false,"mutability":"mutable","name":"newSigner","nameLocation":"306:9:24","nodeType":"VariableDeclaration","scope":8653,"src":"298:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8650,"name":"address","nodeType":"ElementaryTypeName","src":"298:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"297:19:24"},"src":"277:40:24"},{"anonymous":false,"eventSelector":"3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b","id":8657,"name":"SignerRemoved","nameLocation":"328:13:24","nodeType":"EventDefinition","parameters":{"id":8656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8655,"indexed":false,"mutability":"mutable","name":"signer","nameLocation":"350:6:24","nodeType":"VariableDeclaration","scope":8657,"src":"342:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8654,"name":"address","nodeType":"ElementaryTypeName","src":"342:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"341:16:24"},"src":"322:36:24"},{"body":{"id":8696,"nodeType":"Block","src":"428:217:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8666,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"446:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"466:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"458:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8667,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:24","typeDescriptions":{}}},"id":8670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"446:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"470:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8665,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"438:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"438:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8674,"nodeType":"ExpressionStatement","src":"438:51:24"},{"expression":{"arguments":[{"id":8680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"507:22:24","subExpression":{"baseExpression":{"expression":{"id":8676,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8660,"src":"508:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"513:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"508:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8679,"indexExpression":{"id":8678,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"520:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"508:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4164647265737320697320616c726561647920616e206f776e65722e","id":8681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"531:30:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f","typeString":"literal_string \"Address is already an owner.\""},"value":"Address is already an owner."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f","typeString":"literal_string \"Address is already an owner.\""}],"id":8675,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"499:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"499:63:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8683,"nodeType":"ExpressionStatement","src":"499:63:24"},{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8684,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8660,"src":"572:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"577:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"572:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8688,"indexExpression":{"id":8686,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"584:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"572:21:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"596:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"572:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8691,"nodeType":"ExpressionStatement","src":"572:28:24"},{"eventCall":{"arguments":[{"id":8693,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8662,"src":"629:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8692,"name":"NewOwnerAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"615:13:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"615:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8695,"nodeType":"EmitStatement","src":"610:28:24"}]},"functionSelector":"b4d78ae4","id":8697,"implemented":true,"kind":"function","modifiers":[],"name":"addOwner","nameLocation":"373:8:24","nodeType":"FunctionDefinition","parameters":{"id":8663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8660,"mutability":"mutable","name":"self","nameLocation":"395:4:24","nodeType":"VariableDeclaration","scope":8697,"src":"382:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8659,"nodeType":"UserDefinedTypeName","pathNode":{"id":8658,"name":"Data","nameLocations":["382:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"382:4:24"},"referencedDeclaration":8641,"src":"382:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8662,"mutability":"mutable","name":"newOwner","nameLocation":"409:8:24","nodeType":"VariableDeclaration","scope":8697,"src":"401:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8661,"name":"address","nodeType":"ElementaryTypeName","src":"401:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"381:37:24"},"returnParameters":{"id":8664,"nodeType":"ParameterList","parameters":[],"src":"428:0:24"},"scope":8832,"src":"364:281:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8743,"nodeType":"Block","src":"723:321:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8706,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"741:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"766:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"758:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8707,"name":"address","nodeType":"ElementaryTypeName","src":"758:7:24","typeDescriptions":{}}},"id":8710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"758:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"741:27:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"770:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8705,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"733:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:56:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8714,"nodeType":"ExpressionStatement","src":"733:56:24"},{"expression":{"arguments":[{"baseExpression":{"expression":{"id":8716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"807:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"812:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"807:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8719,"indexExpression":{"id":8718,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"819:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"807:26:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206973206e6f7420616e206f776e65722e","id":8720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"835:26:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502","typeString":"literal_string \"Address is not an owner.\""},"value":"Address is not an owner."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502","typeString":"literal_string \"Address is not an owner.\""}],"id":8715,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"799:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:63:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8722,"nodeType":"ExpressionStatement","src":"799:63:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8724,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"880:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"897:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"901:6:24","memberName":"sender","nodeType":"MemberAccess","src":"897:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"880:27:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e206f776e65722e","id":8728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"909:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75","typeString":"literal_string \"You cannot remove yourself as an owner.\""},"value":"You cannot remove yourself as an owner."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75","typeString":"literal_string \"You cannot remove yourself as an owner.\""}],"id":8723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"872:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:79:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8730,"nodeType":"ExpressionStatement","src":"872:79:24"},{"expression":{"id":8737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8731,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"961:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"966:6:24","memberName":"owners","nodeType":"MemberAccess","referencedDeclaration":8636,"src":"961:11:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8735,"indexExpression":{"id":8733,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"973:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"961:26:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"990:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"961:34:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8738,"nodeType":"ExpressionStatement","src":"961:34:24"},{"eventCall":{"arguments":[{"id":8740,"name":"ownerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"1023:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8739,"name":"OwnerRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8649,"src":"1010:12:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8742,"nodeType":"EmitStatement","src":"1005:32:24"}]},"functionSelector":"b764b1a4","id":8744,"implemented":true,"kind":"function","modifiers":[],"name":"removeOwner","nameLocation":"660:11:24","nodeType":"FunctionDefinition","parameters":{"id":8703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8700,"mutability":"mutable","name":"self","nameLocation":"685:4:24","nodeType":"VariableDeclaration","scope":8744,"src":"672:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8699,"nodeType":"UserDefinedTypeName","pathNode":{"id":8698,"name":"Data","nameLocations":["672:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"672:4:24"},"referencedDeclaration":8641,"src":"672:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8702,"mutability":"mutable","name":"ownerToRemove","nameLocation":"699:13:24","nodeType":"VariableDeclaration","scope":8744,"src":"691:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8701,"name":"address","nodeType":"ElementaryTypeName","src":"691:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"671:42:24"},"returnParameters":{"id":8704,"nodeType":"ParameterList","parameters":[],"src":"723:0:24"},"scope":8832,"src":"651:393:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8783,"nodeType":"Block","src":"1116:224:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8753,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1134:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1155:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8754,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:24","typeDescriptions":{}}},"id":8757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1134:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1159:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1126:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1126:52:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8761,"nodeType":"ExpressionStatement","src":"1126:52:24"},{"expression":{"arguments":[{"id":8767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1196:24:24","subExpression":{"baseExpression":{"expression":{"id":8763,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8747,"src":"1197:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1202:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1197:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8766,"indexExpression":{"id":8765,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1210:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1197:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4164647265737320697320616c72656164792061207369676e65722e","id":8768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1222:30:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9","typeString":"literal_string \"Address is already a signer.\""},"value":"Address is already a signer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9","typeString":"literal_string \"Address is already a signer.\""}],"id":8762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1188:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8770,"nodeType":"ExpressionStatement","src":"1188:65:24"},{"expression":{"id":8777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8771,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8747,"src":"1263:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1268:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1263:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8775,"indexExpression":{"id":8773,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1276:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1263:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1289:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1263:30:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8778,"nodeType":"ExpressionStatement","src":"1263:30:24"},{"eventCall":{"arguments":[{"id":8780,"name":"newSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8749,"src":"1323:9:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8779,"name":"NewSignerAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8653,"src":"1308:14:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1308:25:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8782,"nodeType":"EmitStatement","src":"1303:30:24"}]},"functionSelector":"773b6d12","id":8784,"implemented":true,"kind":"function","modifiers":[],"name":"addSigner","nameLocation":"1059:9:24","nodeType":"FunctionDefinition","parameters":{"id":8750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8747,"mutability":"mutable","name":"self","nameLocation":"1082:4:24","nodeType":"VariableDeclaration","scope":8784,"src":"1069:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8746,"nodeType":"UserDefinedTypeName","pathNode":{"id":8745,"name":"Data","nameLocations":["1069:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1069:4:24"},"referencedDeclaration":8641,"src":"1069:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8749,"mutability":"mutable","name":"newSigner","nameLocation":"1096:9:24","nodeType":"VariableDeclaration","scope":8784,"src":"1088:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8748,"name":"address","nodeType":"ElementaryTypeName","src":"1088:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1068:38:24"},"returnParameters":{"id":8751,"nodeType":"ParameterList","parameters":[],"src":"1116:0:24"},"scope":8832,"src":"1050:290:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8830,"nodeType":"Block","src":"1420:329:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8793,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1438:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1464:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1456:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8794,"name":"address","nodeType":"ElementaryTypeName","src":"1456:7:24","typeDescriptions":{}}},"id":8797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1456:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1438:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420616464726573732e","id":8799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1468:18:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""},"value":"Invalid address."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34","typeString":"literal_string \"Invalid address.\""}],"id":8792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1430:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8801,"nodeType":"ExpressionStatement","src":"1430:57:24"},{"expression":{"arguments":[{"baseExpression":{"expression":{"id":8803,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8787,"src":"1505:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1510:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1505:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8806,"indexExpression":{"id":8805,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1518:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1505:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646472657373206973206e6f742061207369676e65722e","id":8807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1535:26:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d","typeString":"literal_string \"Address is not a signer.\""},"value":"Address is not a signer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d","typeString":"literal_string \"Address is not a signer.\""}],"id":8802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1497:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1497:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8809,"nodeType":"ExpressionStatement","src":"1497:65:24"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8811,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1580:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1598:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1602:6:24","memberName":"sender","nodeType":"MemberAccess","src":"1598:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1580:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c662061732061207369676e65722e","id":8815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1610:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed","typeString":"literal_string \"You cannot remove yourself as a signer.\""},"value":"You cannot remove yourself as a signer."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed","typeString":"literal_string \"You cannot remove yourself as a signer.\""}],"id":8810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1572:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:80:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8817,"nodeType":"ExpressionStatement","src":"1572:80:24"},{"expression":{"id":8824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8818,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8787,"src":"1662:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data storage pointer"}},"id":8821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1667:7:24","memberName":"signers","nodeType":"MemberAccess","referencedDeclaration":8640,"src":"1662:12:24","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8822,"indexExpression":{"id":8820,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1675:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1662:28:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1693:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1662:36:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8825,"nodeType":"ExpressionStatement","src":"1662:36:24"},{"eventCall":{"arguments":[{"id":8827,"name":"signerToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8789,"src":"1727:14:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8826,"name":"SignerRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8657,"src":"1713:13:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:29:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8829,"nodeType":"EmitStatement","src":"1708:34:24"}]},"functionSelector":"982088f0","id":8831,"implemented":true,"kind":"function","modifiers":[],"name":"removeSigner","nameLocation":"1355:12:24","nodeType":"FunctionDefinition","parameters":{"id":8790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8787,"mutability":"mutable","name":"self","nameLocation":"1381:4:24","nodeType":"VariableDeclaration","scope":8831,"src":"1368:17:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"},"typeName":{"id":8786,"nodeType":"UserDefinedTypeName","pathNode":{"id":8785,"name":"Data","nameLocations":["1368:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":8641,"src":"1368:4:24"},"referencedDeclaration":8641,"src":"1368:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Data_$8641_storage_ptr","typeString":"struct LibControlMgmt.Data"}},"visibility":"internal"},{"constant":false,"id":8789,"mutability":"mutable","name":"signerToRemove","nameLocation":"1395:14:24","nodeType":"VariableDeclaration","scope":8831,"src":"1387:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8788,"name":"address","nodeType":"ElementaryTypeName","src":"1387:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1367:43:24"},"returnParameters":{"id":8791,"nodeType":"ParameterList","parameters":[],"src":"1420:0:24"},"scope":8832,"src":"1346:403:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8833,"src":"58:1693:24","usedErrors":[],"usedEvents":[8645,8649,8653,8657]}],"src":"32:1720:24"},"id":24},"contracts/gamma/libs/LibPackVerifier.sol":{"ast":{"absolutePath":"contracts/gamma/libs/LibPackVerifier.sol","exportedSymbols":{"ECDSA":[2354],"LibPackVerifier":[8881],"MessageHashUtils":[2428],"Strings":[2006]},"id":8882,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8834,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:25"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":8835,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8882,"sourceUnit":2355,"src":"58:62:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","id":8836,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8882,"sourceUnit":2429,"src":"121:73:25","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"LibPackVerifier","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8881,"linearizedBaseContracts":[8881],"name":"LibPackVerifier","nameLocation":"205:15:25","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8839,"libraryName":{"id":8837,"name":"ECDSA","nameLocations":["233:5:25"],"nodeType":"IdentifierPath","referencedDeclaration":2354,"src":"233:5:25"},"nodeType":"UsingForDirective","src":"227:24:25","typeName":{"id":8838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":8842,"libraryName":{"id":8840,"name":"MessageHashUtils","nameLocations":["262:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":2428,"src":"262:16:25"},"nodeType":"UsingForDirective","src":"256:35:25","typeName":{"id":8841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":8879,"nodeType":"Block","src":"478:288:25","statements":[{"assignments":[8857],"declarations":[{"constant":false,"id":8857,"mutability":"mutable","name":"messageHash","nameLocation":"496:11:25","nodeType":"VariableDeclaration","scope":8879,"src":"488:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"488:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8869,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":8861,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8844,"src":"550:6:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8862,"name":"packNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8846,"src":"558:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8863,"name":"packData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8849,"src":"570:8:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"}},{"hexValue":"307866316444373138393565343962313536333639333936396465353038393831393763444633343831","id":8864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"580:44:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be","typeString":"literal_string \"0xf1dD71895e49b1563693969de50898197cDF3481\""},"value":"0xf1dD71895e49b1563693969de50898197cDF3481"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[] memory"},{"typeIdentifier":"t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be","typeString":"literal_string \"0xf1dD71895e49b1563693969de50898197cDF3481\""}],"expression":{"id":8859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"533:3:25","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"537:12:25","memberName":"encodePacked","nodeType":"MemberAccess","src":"533:16:25","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"533:92:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8858,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"510:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"510:125:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"636:22:25","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":2369,"src":"510:148:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":8868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"510:150:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"488:172:25"},{"assignments":[8871],"declarations":[{"constant":false,"id":8871,"mutability":"mutable","name":"recoveredSigner","nameLocation":"679:15:25","nodeType":"VariableDeclaration","scope":8879,"src":"671:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8870,"name":"address","nodeType":"ElementaryTypeName","src":"671:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8876,"initialValue":{"arguments":[{"id":8874,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8851,"src":"717:9:25","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8872,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8857,"src":"697:11:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"709:7:25","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":2110,"src":"697:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":8875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:30:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"671:56:25"},{"expression":{"id":8877,"name":"recoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8871,"src":"744:15:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8855,"id":8878,"nodeType":"Return","src":"737:22:25"}]},"functionSelector":"38fb7d8b","id":8880,"implemented":true,"kind":"function","modifiers":[],"name":"verifyPackSigner","nameLocation":"306:16:25","nodeType":"FunctionDefinition","parameters":{"id":8852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8844,"mutability":"mutable","name":"sender","nameLocation":"340:6:25","nodeType":"VariableDeclaration","scope":8880,"src":"332:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8843,"name":"address","nodeType":"ElementaryTypeName","src":"332:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8846,"mutability":"mutable","name":"packNumber","nameLocation":"364:10:25","nodeType":"VariableDeclaration","scope":8880,"src":"356:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8845,"name":"uint256","nodeType":"ElementaryTypeName","src":"356:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8849,"mutability":"mutable","name":"packData","nameLocation":"399:8:25","nodeType":"VariableDeclaration","scope":8880,"src":"384:23:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":8847,"name":"uint8","nodeType":"ElementaryTypeName","src":"384:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8848,"nodeType":"ArrayTypeName","src":"384:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"},{"constant":false,"id":8851,"mutability":"mutable","name":"signature","nameLocation":"432:9:25","nodeType":"VariableDeclaration","scope":8880,"src":"417:24:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8850,"name":"bytes","nodeType":"ElementaryTypeName","src":"417:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"322:125:25"},"returnParameters":{"id":8855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8880,"src":"469:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8853,"name":"address","nodeType":"ElementaryTypeName","src":"469:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"468:9:25"},"scope":8881,"src":"297:469:25","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":8882,"src":"197:571:25","usedErrors":[2017,2022,2027],"usedEvents":[]}],"src":"32:737:25"},"id":25},"contracts/gamma/libs/LibStringUtils.sol":{"ast":{"absolutePath":"contracts/gamma/libs/LibStringUtils.sol","exportedSymbols":{"LibStringUtils":[8962]},"id":8963,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8883,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:26"},{"abstract":false,"baseContracts":[],"canonicalName":"LibStringUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":8962,"linearizedBaseContracts":[8962],"name":"LibStringUtils","nameLocation":"66:14:26","nodeType":"ContractDefinition","nodes":[{"body":{"id":8960,"nodeType":"Block","src":"323:379:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"334:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"334:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8896,"nodeType":"IfStatement","src":"330:43:26","trueBody":{"id":8895,"nodeType":"Block","src":"346:27:26","statements":[{"expression":{"hexValue":"30","id":8893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"363:3:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":8889,"id":8894,"nodeType":"Return","src":"356:10:26"}]}},{"assignments":[8898],"declarations":[{"constant":false,"id":8898,"mutability":"mutable","name":"temp","nameLocation":"386:4:26","nodeType":"VariableDeclaration","scope":8960,"src":"378:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8897,"name":"uint256","nodeType":"ElementaryTypeName","src":"378:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8900,"initialValue":{"id":8899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"393:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"378:20:26"},{"assignments":[8902],"declarations":[{"constant":false,"id":8902,"mutability":"mutable","name":"digits","nameLocation":"412:6:26","nodeType":"VariableDeclaration","scope":8960,"src":"404:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8901,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8903,"nodeType":"VariableDeclarationStatement","src":"404:14:26"},{"body":{"id":8914,"nodeType":"Block","src":"442:45:26","statements":[{"expression":{"id":8908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"452:8:26","subExpression":{"id":8907,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"452:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8909,"nodeType":"ExpressionStatement","src":"452:8:26"},{"expression":{"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8910,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8898,"src":"470:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"478:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"470:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8913,"nodeType":"ExpressionStatement","src":"470:10:26"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8904,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8898,"src":"431:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"439:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"431:9:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8915,"nodeType":"WhileStatement","src":"424:63:26"},{"assignments":[8917],"declarations":[{"constant":false,"id":8917,"mutability":"mutable","name":"buffer","nameLocation":"505:6:26","nodeType":"VariableDeclaration","scope":8960,"src":"492:19:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8916,"name":"bytes","nodeType":"ElementaryTypeName","src":"492:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8922,"initialValue":{"arguments":[{"id":8920,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"524:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"514:9:26","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8918,"name":"bytes","nodeType":"ElementaryTypeName","src":"518:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"492:39:26"},{"body":{"id":8953,"nodeType":"Block","src":"556:115:26","statements":[{"expression":{"id":8928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8926,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"566:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":8927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"576:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"566:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8929,"nodeType":"ExpressionStatement","src":"566:11:26"},{"expression":{"id":8947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8930,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"587:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8932,"indexExpression":{"id":8931,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"594:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"587:14:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":8937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"617:2:26","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"630:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":8941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"630:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"622:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8938,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:26","typeDescriptions":{}}},"id":8943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"622:19:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"617:24:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"611:5:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8935,"name":"uint8","nodeType":"ElementaryTypeName","src":"611:5:26","typeDescriptions":{}}},"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:31:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"604:6:26","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8933,"name":"bytes1","nodeType":"ElementaryTypeName","src":"604:6:26","typeDescriptions":{}}},"id":8946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"604:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"587:56:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":8948,"nodeType":"ExpressionStatement","src":"587:56:26"},{"expression":{"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8949,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"653:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":8950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"662:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"653:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8952,"nodeType":"ExpressionStatement","src":"653:11:26"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8885,"src":"544:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"553:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"544:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8954,"nodeType":"WhileStatement","src":"537:134:26"},{"expression":{"arguments":[{"id":8957,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"690:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"683:6:26","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":8955,"name":"string","nodeType":"ElementaryTypeName","src":"683:6:26","typeDescriptions":{}}},"id":8958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"683:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":8889,"id":8959,"nodeType":"Return","src":"676:21:26"}]},"functionSelector":"6900a3ae","id":8961,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"263:8:26","nodeType":"FunctionDefinition","parameters":{"id":8886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8885,"mutability":"mutable","name":"value","nameLocation":"280:5:26","nodeType":"VariableDeclaration","scope":8961,"src":"272:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8884,"name":"uint256","nodeType":"ElementaryTypeName","src":"272:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"271:15:26"},"returnParameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8961,"src":"308:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8887,"name":"string","nodeType":"ElementaryTypeName","src":"308:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"307:15:26"},"scope":8962,"src":"254:448:26","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":8963,"src":"58:647:26","usedErrors":[],"usedEvents":[]}],"src":"32:674:26"},"id":26},"contracts/testDai/TestDAI.v3.sol":{"ast":{"absolutePath":"contracts/testDai/TestDAI.v3.sol","exportedSymbols":{"AccessControl":[10703],"AccessControlMixin":[10741],"Address":[9466],"ChainConstants":[11095],"Context":[8991],"ContextMixin":[11135],"EIP712Base":[10884],"ERC20":[9998],"EnumerableSet":[10421],"IChildToken":[10750],"IERC20":[9068],"Initializable":[10769],"NativeMetaTransaction":[11078],"NofTestDAIV3":[11432],"SafeMath":[9263],"UChildERC20":[11286]},"id":11433,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8964,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:27"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":8991,"linearizedBaseContracts":[8991],"name":"Context","nameLocation":"576:7:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":8978,"nodeType":"Block","src":"660:52:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8973,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"693:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"697:6:27","memberName":"sender","nodeType":"MemberAccess","src":"693:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"685:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8971,"name":"address","nodeType":"ElementaryTypeName","src":"685:7:27","typeDescriptions":{}}},"id":8975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"677:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":8969,"name":"address","nodeType":"ElementaryTypeName","src":"677:8:27","stateMutability":"payable","typeDescriptions":{}}},"id":8976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"677:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":8968,"id":8977,"nodeType":"Return","src":"670:35:27"}]},"id":8979,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"599:10:27","nodeType":"FunctionDefinition","parameters":{"id":8965,"nodeType":"ParameterList","parameters":[],"src":"609:2:27"},"returnParameters":{"id":8968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8979,"src":"643:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":8966,"name":"address","nodeType":"ElementaryTypeName","src":"643:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"642:17:27"},"scope":8991,"src":"590:122:27","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8989,"nodeType":"Block","src":"783:194:27","statements":[{"expression":{"id":8984,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"940:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$8991","typeString":"contract Context"}},"id":8985,"nodeType":"ExpressionStatement","src":"940:4:27"},{"expression":{"expression":{"id":8986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"962:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"966:4:27","memberName":"data","nodeType":"MemberAccess","src":"962:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":8983,"id":8988,"nodeType":"Return","src":"955:15:27"}]},"id":8990,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"727:8:27","nodeType":"FunctionDefinition","parameters":{"id":8980,"nodeType":"ParameterList","parameters":[],"src":"735:2:27"},"returnParameters":{"id":8983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8990,"src":"769:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8981,"name":"bytes","nodeType":"ElementaryTypeName","src":"769:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"768:14:27"},"scope":8991,"src":"718:259:27","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":11433,"src":"558:421:27","usedErrors":[],"usedEvents":[]},{"id":8992,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"1040:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":8993,"nodeType":"StructuredDocumentation","src":"1066:70:27","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":9068,"linearizedBaseContracts":[9068],"name":"IERC20","nameLocation":"1147:6:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8994,"nodeType":"StructuredDocumentation","src":"1160:66:27","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8999,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1240:11:27","nodeType":"FunctionDefinition","parameters":{"id":8995,"nodeType":"ParameterList","parameters":[],"src":"1251:2:27"},"returnParameters":{"id":8998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8999,"src":"1277:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1276:9:27"},"scope":9068,"src":"1231:55:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9000,"nodeType":"StructuredDocumentation","src":"1292:72:27","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":9007,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1378:9:27","nodeType":"FunctionDefinition","parameters":{"id":9003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9002,"mutability":"mutable","name":"account","nameLocation":"1396:7:27","nodeType":"VariableDeclaration","scope":9007,"src":"1388:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9001,"name":"address","nodeType":"ElementaryTypeName","src":"1388:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1387:17:27"},"returnParameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9007,"src":"1428:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1428:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1427:9:27"},"scope":9068,"src":"1369:68:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9008,"nodeType":"StructuredDocumentation","src":"1443:209:27","text":" @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":9017,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1666:8:27","nodeType":"FunctionDefinition","parameters":{"id":9013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9010,"mutability":"mutable","name":"recipient","nameLocation":"1683:9:27","nodeType":"VariableDeclaration","scope":9017,"src":"1675:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9009,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9012,"mutability":"mutable","name":"amount","nameLocation":"1702:6:27","nodeType":"VariableDeclaration","scope":9017,"src":"1694:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1674:35:27"},"returnParameters":{"id":9016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9017,"src":"1728:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9014,"name":"bool","nodeType":"ElementaryTypeName","src":"1728:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1727:6:27"},"scope":9068,"src":"1657:77:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9018,"nodeType":"StructuredDocumentation","src":"1740:264:27","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":9027,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"2018:9:27","nodeType":"FunctionDefinition","parameters":{"id":9023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"owner","nameLocation":"2036:5:27","nodeType":"VariableDeclaration","scope":9027,"src":"2028:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"2028:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9022,"mutability":"mutable","name":"spender","nameLocation":"2051:7:27","nodeType":"VariableDeclaration","scope":9027,"src":"2043:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9021,"name":"address","nodeType":"ElementaryTypeName","src":"2043:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2027:32:27"},"returnParameters":{"id":9026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9027,"src":"2083:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2082:9:27"},"scope":9068,"src":"2009:83:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9028,"nodeType":"StructuredDocumentation","src":"2098:642:27","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":9037,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2754:7:27","nodeType":"FunctionDefinition","parameters":{"id":9033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9030,"mutability":"mutable","name":"spender","nameLocation":"2770:7:27","nodeType":"VariableDeclaration","scope":9037,"src":"2762:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9029,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9032,"mutability":"mutable","name":"amount","nameLocation":"2787:6:27","nodeType":"VariableDeclaration","scope":9037,"src":"2779:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9031,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2761:33:27"},"returnParameters":{"id":9036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9037,"src":"2813:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9034,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2812:6:27"},"scope":9068,"src":"2745:74:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9038,"nodeType":"StructuredDocumentation","src":"2825:296:27","text":" @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":9049,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3135:12:27","nodeType":"FunctionDefinition","parameters":{"id":9045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9040,"mutability":"mutable","name":"sender","nameLocation":"3156:6:27","nodeType":"VariableDeclaration","scope":9049,"src":"3148:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9039,"name":"address","nodeType":"ElementaryTypeName","src":"3148:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9042,"mutability":"mutable","name":"recipient","nameLocation":"3172:9:27","nodeType":"VariableDeclaration","scope":9049,"src":"3164:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9041,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9044,"mutability":"mutable","name":"amount","nameLocation":"3191:6:27","nodeType":"VariableDeclaration","scope":9049,"src":"3183:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9043,"name":"uint256","nodeType":"ElementaryTypeName","src":"3183:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3147:51:27"},"returnParameters":{"id":9048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9049,"src":"3217:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9046,"name":"bool","nodeType":"ElementaryTypeName","src":"3217:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3216:6:27"},"scope":9068,"src":"3126:97:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"documentation":{"id":9050,"nodeType":"StructuredDocumentation","src":"3229:158:27","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":9058,"name":"Transfer","nameLocation":"3398:8:27","nodeType":"EventDefinition","parameters":{"id":9057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9052,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3423:4:27","nodeType":"VariableDeclaration","scope":9058,"src":"3407:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9051,"name":"address","nodeType":"ElementaryTypeName","src":"3407:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9054,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3445:2:27","nodeType":"VariableDeclaration","scope":9058,"src":"3429:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9053,"name":"address","nodeType":"ElementaryTypeName","src":"3429:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9056,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"3457:5:27","nodeType":"VariableDeclaration","scope":9058,"src":"3449:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9055,"name":"uint256","nodeType":"ElementaryTypeName","src":"3449:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3406:57:27"},"src":"3392:72:27"},{"anonymous":false,"documentation":{"id":9059,"nodeType":"StructuredDocumentation","src":"3470:148:27","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":9067,"name":"Approval","nameLocation":"3629:8:27","nodeType":"EventDefinition","parameters":{"id":9066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9061,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3654:5:27","nodeType":"VariableDeclaration","scope":9067,"src":"3638:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9060,"name":"address","nodeType":"ElementaryTypeName","src":"3638:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9063,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"3677:7:27","nodeType":"VariableDeclaration","scope":9067,"src":"3661:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9062,"name":"address","nodeType":"ElementaryTypeName","src":"3661:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9065,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"3694:5:27","nodeType":"VariableDeclaration","scope":9067,"src":"3686:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9064,"name":"uint256","nodeType":"ElementaryTypeName","src":"3686:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3637:63:27"},"src":"3623:78:27"}],"scope":11433,"src":"1137:2566:27","usedErrors":[],"usedEvents":[9058,9067]},{"id":9069,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"3759:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeMath","contractDependencies":[],"contractKind":"library","documentation":{"id":9070,"nodeType":"StructuredDocumentation","src":"3785:563:27","text":" @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n 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":9263,"linearizedBaseContracts":[9263],"name":"SafeMath","nameLocation":"4357:8:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":9095,"nodeType":"Block","src":"4668:109:27","statements":[{"assignments":[9081],"declarations":[{"constant":false,"id":9081,"mutability":"mutable","name":"c","nameLocation":"4686:1:27","nodeType":"VariableDeclaration","scope":9095,"src":"4678:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9080,"name":"uint256","nodeType":"ElementaryTypeName","src":"4678:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9082,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"4690:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9083,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9075,"src":"4694:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4690:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4678:17:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9087,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"4713:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9088,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"4718:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4713:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","id":9090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4721:29:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""},"value":"SafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""}],"id":9086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4705:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:46:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9092,"nodeType":"ExpressionStatement","src":"4705:46:27"},{"expression":{"id":9093,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"4769:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9079,"id":9094,"nodeType":"Return","src":"4762:8:27"}]},"documentation":{"id":9071,"nodeType":"StructuredDocumentation","src":"4372:224:27","text":" @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."},"id":9096,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"4610:3:27","nodeType":"FunctionDefinition","parameters":{"id":9076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9073,"mutability":"mutable","name":"a","nameLocation":"4622:1:27","nodeType":"VariableDeclaration","scope":9096,"src":"4614:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9072,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9075,"mutability":"mutable","name":"b","nameLocation":"4633:1:27","nodeType":"VariableDeclaration","scope":9096,"src":"4625:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9074,"name":"uint256","nodeType":"ElementaryTypeName","src":"4625:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4613:22:27"},"returnParameters":{"id":9079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9096,"src":"4659:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9077,"name":"uint256","nodeType":"ElementaryTypeName","src":"4659:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4658:9:27"},"scope":9263,"src":"4601:176:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9112,"nodeType":"Block","src":"5115:67:27","statements":[{"expression":{"arguments":[{"id":9107,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9099,"src":"5136:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9108,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9101,"src":"5139:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":9109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5142:32:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""},"value":"SafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""}],"id":9106,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[9113,9141],"referencedDeclaration":9141,"src":"5132:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5132:43:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9105,"id":9111,"nodeType":"Return","src":"5125:50:27"}]},"documentation":{"id":9097,"nodeType":"StructuredDocumentation","src":"4783:260:27","text":" @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":9113,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"5057:3:27","nodeType":"FunctionDefinition","parameters":{"id":9102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9099,"mutability":"mutable","name":"a","nameLocation":"5069:1:27","nodeType":"VariableDeclaration","scope":9113,"src":"5061:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9098,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9101,"mutability":"mutable","name":"b","nameLocation":"5080:1:27","nodeType":"VariableDeclaration","scope":9113,"src":"5072:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9100,"name":"uint256","nodeType":"ElementaryTypeName","src":"5072:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:22:27"},"returnParameters":{"id":9105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9113,"src":"5106:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9103,"name":"uint256","nodeType":"ElementaryTypeName","src":"5106:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5105:9:27"},"scope":9263,"src":"5048:134:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9140,"nodeType":"Block","src":"5568:92:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9126,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"5586:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":9127,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"5591:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5586:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9129,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9120,"src":"5594:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9125,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5578:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9131,"nodeType":"ExpressionStatement","src":"5578:29:27"},{"assignments":[9133],"declarations":[{"constant":false,"id":9133,"mutability":"mutable","name":"c","nameLocation":"5625:1:27","nodeType":"VariableDeclaration","scope":9140,"src":"5617:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9132,"name":"uint256","nodeType":"ElementaryTypeName","src":"5617:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9137,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9134,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"5629:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9135,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"5633:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5629:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5617:17:27"},{"expression":{"id":9138,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9133,"src":"5652:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9124,"id":9139,"nodeType":"Return","src":"5645:8:27"}]},"documentation":{"id":9114,"nodeType":"StructuredDocumentation","src":"5188:280:27","text":" @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":9141,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nameLocation":"5482:3:27","nodeType":"FunctionDefinition","parameters":{"id":9121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9116,"mutability":"mutable","name":"a","nameLocation":"5494:1:27","nodeType":"VariableDeclaration","scope":9141,"src":"5486:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9115,"name":"uint256","nodeType":"ElementaryTypeName","src":"5486:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9118,"mutability":"mutable","name":"b","nameLocation":"5505:1:27","nodeType":"VariableDeclaration","scope":9141,"src":"5497:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9117,"name":"uint256","nodeType":"ElementaryTypeName","src":"5497:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9120,"mutability":"mutable","name":"errorMessage","nameLocation":"5522:12:27","nodeType":"VariableDeclaration","scope":9141,"src":"5508:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9119,"name":"string","nodeType":"ElementaryTypeName","src":"5508:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5485:50:27"},"returnParameters":{"id":9124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9141,"src":"5559:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"5559:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5558:9:27"},"scope":9263,"src":"5473:187:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9175,"nodeType":"Block","src":"5974:392:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9151,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"6206:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6211:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6206:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9157,"nodeType":"IfStatement","src":"6202:45:27","trueBody":{"id":9156,"nodeType":"Block","src":"6214:33:27","statements":[{"expression":{"hexValue":"30","id":9154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6235:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":9150,"id":9155,"nodeType":"Return","src":"6228:8:27"}]}},{"assignments":[9159],"declarations":[{"constant":false,"id":9159,"mutability":"mutable","name":"c","nameLocation":"6265:1:27","nodeType":"VariableDeclaration","scope":9175,"src":"6257:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9158,"name":"uint256","nodeType":"ElementaryTypeName","src":"6257:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9163,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9160,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"6269:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":9161,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9146,"src":"6273:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6269:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6257:17:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9165,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9159,"src":"6292:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9166,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"6296:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6292:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9168,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9146,"src":"6301:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6292:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6304:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""},"value":"SafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""}],"id":9164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6284:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6284:56:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9172,"nodeType":"ExpressionStatement","src":"6284:56:27"},{"expression":{"id":9173,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9159,"src":"6358:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9150,"id":9174,"nodeType":"Return","src":"6351:8:27"}]},"documentation":{"id":9142,"nodeType":"StructuredDocumentation","src":"5666:236:27","text":" @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."},"id":9176,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nameLocation":"5916:3:27","nodeType":"FunctionDefinition","parameters":{"id":9147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9144,"mutability":"mutable","name":"a","nameLocation":"5928:1:27","nodeType":"VariableDeclaration","scope":9176,"src":"5920:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9143,"name":"uint256","nodeType":"ElementaryTypeName","src":"5920:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9146,"mutability":"mutable","name":"b","nameLocation":"5939:1:27","nodeType":"VariableDeclaration","scope":9176,"src":"5931:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9145,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5919:22:27"},"returnParameters":{"id":9150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9176,"src":"5965:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9148,"name":"uint256","nodeType":"ElementaryTypeName","src":"5965:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5964:9:27"},"scope":9263,"src":"5907:459:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9192,"nodeType":"Block","src":"6895:63:27","statements":[{"expression":{"arguments":[{"id":9187,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9179,"src":"6916:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9188,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9181,"src":"6919:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"536166654d6174683a206469766973696f6e206279207a65726f","id":9189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6922:28:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""},"value":"SafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""}],"id":9186,"name":"div","nodeType":"Identifier","overloadedDeclarations":[9193,9221],"referencedDeclaration":9221,"src":"6912:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6912:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9185,"id":9191,"nodeType":"Return","src":"6905:46:27"}]},"documentation":{"id":9177,"nodeType":"StructuredDocumentation","src":"6372:451:27","text":" @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9193,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"6837:3:27","nodeType":"FunctionDefinition","parameters":{"id":9182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9179,"mutability":"mutable","name":"a","nameLocation":"6849:1:27","nodeType":"VariableDeclaration","scope":9193,"src":"6841:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9178,"name":"uint256","nodeType":"ElementaryTypeName","src":"6841:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9181,"mutability":"mutable","name":"b","nameLocation":"6860:1:27","nodeType":"VariableDeclaration","scope":9193,"src":"6852:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9180,"name":"uint256","nodeType":"ElementaryTypeName","src":"6852:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6840:22:27"},"returnParameters":{"id":9185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9193,"src":"6886:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9183,"name":"uint256","nodeType":"ElementaryTypeName","src":"6886:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6885:9:27"},"scope":9263,"src":"6828:130:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9220,"nodeType":"Block","src":"7535:177:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9206,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"7553:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7557:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7553:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9209,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"7560:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7545:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7545:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9211,"nodeType":"ExpressionStatement","src":"7545:28:27"},{"assignments":[9213],"declarations":[{"constant":false,"id":9213,"mutability":"mutable","name":"c","nameLocation":"7591:1:27","nodeType":"VariableDeclaration","scope":9220,"src":"7583:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9212,"name":"uint256","nodeType":"ElementaryTypeName","src":"7583:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9217,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9214,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9196,"src":"7595:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":9215,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9198,"src":"7599:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7595:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7583:17:27"},{"expression":{"id":9218,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"7704:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9204,"id":9219,"nodeType":"Return","src":"7697:8:27"}]},"documentation":{"id":9194,"nodeType":"StructuredDocumentation","src":"6964:471:27","text":" @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9221,"implemented":true,"kind":"function","modifiers":[],"name":"div","nameLocation":"7449:3:27","nodeType":"FunctionDefinition","parameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9196,"mutability":"mutable","name":"a","nameLocation":"7461:1:27","nodeType":"VariableDeclaration","scope":9221,"src":"7453:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9195,"name":"uint256","nodeType":"ElementaryTypeName","src":"7453:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9198,"mutability":"mutable","name":"b","nameLocation":"7472:1:27","nodeType":"VariableDeclaration","scope":9221,"src":"7464:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9197,"name":"uint256","nodeType":"ElementaryTypeName","src":"7464:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9200,"mutability":"mutable","name":"errorMessage","nameLocation":"7489:12:27","nodeType":"VariableDeclaration","scope":9221,"src":"7475:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9199,"name":"string","nodeType":"ElementaryTypeName","src":"7475:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7452:50:27"},"returnParameters":{"id":9204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9221,"src":"7526:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"7526:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7525:9:27"},"scope":9263,"src":"7440:272:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9237,"nodeType":"Block","src":"8230:61:27","statements":[{"expression":{"arguments":[{"id":9232,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9224,"src":"8251:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9233,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9226,"src":"8254:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"536166654d6174683a206d6f64756c6f206279207a65726f","id":9234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8257:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""},"value":"SafeMath: modulo by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""}],"id":9231,"name":"mod","nodeType":"Identifier","overloadedDeclarations":[9238,9262],"referencedDeclaration":9262,"src":"8247:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8247:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9230,"id":9236,"nodeType":"Return","src":"8240:44:27"}]},"documentation":{"id":9222,"nodeType":"StructuredDocumentation","src":"7718:440:27","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9238,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"8172:3:27","nodeType":"FunctionDefinition","parameters":{"id":9227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9224,"mutability":"mutable","name":"a","nameLocation":"8184:1:27","nodeType":"VariableDeclaration","scope":9238,"src":"8176:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9223,"name":"uint256","nodeType":"ElementaryTypeName","src":"8176:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9226,"mutability":"mutable","name":"b","nameLocation":"8195:1:27","nodeType":"VariableDeclaration","scope":9238,"src":"8187:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9225,"name":"uint256","nodeType":"ElementaryTypeName","src":"8187:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8175:22:27"},"returnParameters":{"id":9230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9238,"src":"8221:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9228,"name":"uint256","nodeType":"ElementaryTypeName","src":"8221:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8220:9:27"},"scope":9263,"src":"8163:128:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9261,"nodeType":"Block","src":"8857:68:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9251,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9243,"src":"8875:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8880:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8875:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9254,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9245,"src":"8883:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9250,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8867:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8867:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9256,"nodeType":"ExpressionStatement","src":"8867:29:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9257,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9241,"src":"8913:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":9258,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9243,"src":"8917:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8913:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9249,"id":9260,"nodeType":"Return","src":"8906:12:27"}]},"documentation":{"id":9239,"nodeType":"StructuredDocumentation","src":"8297:460:27","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":9262,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nameLocation":"8771:3:27","nodeType":"FunctionDefinition","parameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9241,"mutability":"mutable","name":"a","nameLocation":"8783:1:27","nodeType":"VariableDeclaration","scope":9262,"src":"8775:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9240,"name":"uint256","nodeType":"ElementaryTypeName","src":"8775:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9243,"mutability":"mutable","name":"b","nameLocation":"8794:1:27","nodeType":"VariableDeclaration","scope":9262,"src":"8786:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9242,"name":"uint256","nodeType":"ElementaryTypeName","src":"8786:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9245,"mutability":"mutable","name":"errorMessage","nameLocation":"8811:12:27","nodeType":"VariableDeclaration","scope":9262,"src":"8797:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9244,"name":"string","nodeType":"ElementaryTypeName","src":"8797:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8774:50:27"},"returnParameters":{"id":9249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9262,"src":"8848:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9247,"name":"uint256","nodeType":"ElementaryTypeName","src":"8848:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8847:9:27"},"scope":9263,"src":"8762:163:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":11433,"src":"4349:4578:27","usedErrors":[],"usedEvents":[]},{"id":9264,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"8983:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":9265,"nodeType":"StructuredDocumentation","src":"9009:67:27","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":9466,"linearizedBaseContracts":[9466],"name":"Address","nameLocation":"9085:7:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":9290,"nodeType":"Block","src":"9735:544:27","statements":[{"assignments":[9274],"declarations":[{"constant":false,"id":9274,"mutability":"mutable","name":"codehash","nameLocation":"9995:8:27","nodeType":"VariableDeclaration","scope":9290,"src":"9987:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9987:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9275,"nodeType":"VariableDeclarationStatement","src":"9987:16:27"},{"assignments":[9277],"declarations":[{"constant":false,"id":9277,"mutability":"mutable","name":"accountHash","nameLocation":"10021:11:27","nodeType":"VariableDeclaration","scope":9290,"src":"10013:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10013:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9279,"initialValue":{"hexValue":"307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730","id":9278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10035:66:27","typeDescriptions":{"typeIdentifier":"t_rational_89477152217924674838424037953991966239322087453347756267410168184682657981552_by_1","typeString":"int_const 8947...(69 digits omitted)...1552"},"value":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"},"nodeType":"VariableDeclarationStatement","src":"10013:88:27"},{"AST":{"nodeType":"YulBlock","src":"10176:36:27","statements":[{"nodeType":"YulAssignment","src":"10178:32:27","value":{"arguments":[{"name":"account","nodeType":"YulIdentifier","src":"10202:7:27"}],"functionName":{"name":"extcodehash","nodeType":"YulIdentifier","src":"10190:11:27"},"nodeType":"YulFunctionCall","src":"10190:20:27"},"variableNames":[{"name":"codehash","nodeType":"YulIdentifier","src":"10178:8:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":9268,"isOffset":false,"isSlot":false,"src":"10202:7:27","valueSize":1},{"declaration":9274,"isOffset":false,"isSlot":false,"src":"10178:8:27","valueSize":1}],"id":9280,"nodeType":"InlineAssembly","src":"10167:45:27"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9281,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"10229:8:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9282,"name":"accountHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9277,"src":"10241:11:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10229:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9284,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"10256:8:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307830","id":9285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10268:3:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"src":"10256:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10229:42:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10228:44:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9272,"id":9289,"nodeType":"Return","src":"10221:51:27"}]},"documentation":{"id":9266,"nodeType":"StructuredDocumentation","src":"9099:565:27","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ===="},"id":9291,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"9678:10:27","nodeType":"FunctionDefinition","parameters":{"id":9269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9268,"mutability":"mutable","name":"account","nameLocation":"9697:7:27","nodeType":"VariableDeclaration","scope":9291,"src":"9689:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9267,"name":"address","nodeType":"ElementaryTypeName","src":"9689:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9688:17:27"},"returnParameters":{"id":9272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9291,"src":"9729:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9270,"name":"bool","nodeType":"ElementaryTypeName","src":"9729:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9728:6:27"},"scope":9466,"src":"9669:610:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9324,"nodeType":"Block","src":"11106:320:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9302,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11132:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}],"id":9301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11124:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9300,"name":"address","nodeType":"ElementaryTypeName","src":"11124:7:27","typeDescriptions":{}}},"id":9303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11138:7:27","memberName":"balance","nodeType":"MemberAccess","src":"11124:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9305,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9296,"src":"11149:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11124:31:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":9307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11157:31:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":9299,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11116:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11116:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9309,"nodeType":"ExpressionStatement","src":"11116:73:27"},{"assignments":[9311,null],"declarations":[{"constant":false,"id":9311,"mutability":"mutable","name":"success","nameLocation":"11283:7:27","nodeType":"VariableDeclaration","scope":9324,"src":"11278:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9310,"name":"bool","nodeType":"ElementaryTypeName","src":"11278:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":9318,"initialValue":{"arguments":[{"hexValue":"","id":9316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11328:2:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":9312,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9294,"src":"11296:9:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11306:4:27","memberName":"call","nodeType":"MemberAccess","src":"11296:14:27","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":9315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9314,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9296,"src":"11319:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"11296:31:27","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":9317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11277:54:27"},{"expression":{"arguments":[{"id":9320,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9311,"src":"11349:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":9321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11358:60:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":9319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11341:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:78:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9323,"nodeType":"ExpressionStatement","src":"11341:78:27"}]},"documentation":{"id":9292,"nodeType":"StructuredDocumentation","src":"10285:745:27","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the"},"id":9325,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"11044:9:27","nodeType":"FunctionDefinition","parameters":{"id":9297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9294,"mutability":"mutable","name":"recipient","nameLocation":"11070:9:27","nodeType":"VariableDeclaration","scope":9325,"src":"11054:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9293,"name":"address","nodeType":"ElementaryTypeName","src":"11054:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":9296,"mutability":"mutable","name":"amount","nameLocation":"11089:6:27","nodeType":"VariableDeclaration","scope":9325,"src":"11081:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9295,"name":"uint256","nodeType":"ElementaryTypeName","src":"11081:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11053:43:27"},"returnParameters":{"id":9298,"nodeType":"ParameterList","parameters":[],"src":"11106:0:27"},"scope":9466,"src":"11035:391:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9341,"nodeType":"Block","src":"12099:82:27","statements":[{"expression":{"arguments":[{"id":9336,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9328,"src":"12127:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9337,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9330,"src":"12135:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":9338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12141:32:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":9335,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[9342,9362],"referencedDeclaration":9362,"src":"12114:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":9339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12114:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9334,"id":9340,"nodeType":"Return","src":"12107:67:27"}]},"documentation":{"id":9326,"nodeType":"StructuredDocumentation","src":"11432:573:27","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":9342,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"12019:12:27","nodeType":"FunctionDefinition","parameters":{"id":9331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9328,"mutability":"mutable","name":"target","nameLocation":"12040:6:27","nodeType":"VariableDeclaration","scope":9342,"src":"12032:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9327,"name":"address","nodeType":"ElementaryTypeName","src":"12032:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9330,"mutability":"mutable","name":"data","nameLocation":"12061:4:27","nodeType":"VariableDeclaration","scope":9342,"src":"12048:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9329,"name":"bytes","nodeType":"ElementaryTypeName","src":"12048:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12031:35:27"},"returnParameters":{"id":9334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9342,"src":"12085:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9332,"name":"bytes","nodeType":"ElementaryTypeName","src":"12085:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12084:14:27"},"scope":9466,"src":"12010:171:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9361,"nodeType":"Block","src":"12529:77:27","statements":[{"expression":{"arguments":[{"id":9355,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"12569:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9356,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9347,"src":"12577:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":9357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9358,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9349,"src":"12586:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9354,"name":"_functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9465,"src":"12546:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":9359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12546:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9353,"id":9360,"nodeType":"Return","src":"12539:60:27"}]},"documentation":{"id":9343,"nodeType":"StructuredDocumentation","src":"12187:211:27","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":9362,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"12412:12:27","nodeType":"FunctionDefinition","parameters":{"id":9350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9345,"mutability":"mutable","name":"target","nameLocation":"12433:6:27","nodeType":"VariableDeclaration","scope":9362,"src":"12425:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9344,"name":"address","nodeType":"ElementaryTypeName","src":"12425:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9347,"mutability":"mutable","name":"data","nameLocation":"12454:4:27","nodeType":"VariableDeclaration","scope":9362,"src":"12441:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9346,"name":"bytes","nodeType":"ElementaryTypeName","src":"12441:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9349,"mutability":"mutable","name":"errorMessage","nameLocation":"12474:12:27","nodeType":"VariableDeclaration","scope":9362,"src":"12460:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9348,"name":"string","nodeType":"ElementaryTypeName","src":"12460:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12424:63:27"},"returnParameters":{"id":9353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9362,"src":"12515:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9351,"name":"bytes","nodeType":"ElementaryTypeName","src":"12515:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12514:14:27"},"scope":9466,"src":"12403:203:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9381,"nodeType":"Block","src":"13081:111:27","statements":[{"expression":{"arguments":[{"id":9375,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9365,"src":"13120:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9376,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"13128:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"13134:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":9378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13141:43:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":9374,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[9382,9415],"referencedDeclaration":9415,"src":"13098:21:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":9379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13098:87:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9373,"id":9380,"nodeType":"Return","src":"13091:94:27"}]},"documentation":{"id":9363,"nodeType":"StructuredDocumentation","src":"12612:351:27","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":9382,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"12977:21:27","nodeType":"FunctionDefinition","parameters":{"id":9370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9365,"mutability":"mutable","name":"target","nameLocation":"13007:6:27","nodeType":"VariableDeclaration","scope":9382,"src":"12999:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9364,"name":"address","nodeType":"ElementaryTypeName","src":"12999:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9367,"mutability":"mutable","name":"data","nameLocation":"13028:4:27","nodeType":"VariableDeclaration","scope":9382,"src":"13015:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9366,"name":"bytes","nodeType":"ElementaryTypeName","src":"13015:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9369,"mutability":"mutable","name":"value","nameLocation":"13042:5:27","nodeType":"VariableDeclaration","scope":9382,"src":"13034:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9368,"name":"uint256","nodeType":"ElementaryTypeName","src":"13034:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12998:50:27"},"returnParameters":{"id":9373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9382,"src":"13067:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9371,"name":"bytes","nodeType":"ElementaryTypeName","src":"13067:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13066:14:27"},"scope":9466,"src":"12968:224:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9414,"nodeType":"Block","src":"13599:173:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9399,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13626:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$9466","typeString":"library Address"}],"id":9398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13618:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9397,"name":"address","nodeType":"ElementaryTypeName","src":"13618:7:27","typeDescriptions":{}}},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13618:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13632:7:27","memberName":"balance","nodeType":"MemberAccess","src":"13618:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"13643:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13618:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":9404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13650:40:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":9396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13610:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13610:81:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9406,"nodeType":"ExpressionStatement","src":"13610:81:27"},{"expression":{"arguments":[{"id":9408,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9385,"src":"13731:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9409,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"13739:4:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"13745:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9411,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"13752:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9407,"name":"_functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9465,"src":"13708:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":9412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13708:57:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9395,"id":9413,"nodeType":"Return","src":"13701:64:27"}]},"documentation":{"id":9383,"nodeType":"StructuredDocumentation","src":"13198:237:27","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":9415,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"13449:21:27","nodeType":"FunctionDefinition","parameters":{"id":9392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9385,"mutability":"mutable","name":"target","nameLocation":"13488:6:27","nodeType":"VariableDeclaration","scope":9415,"src":"13480:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9384,"name":"address","nodeType":"ElementaryTypeName","src":"13480:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9387,"mutability":"mutable","name":"data","nameLocation":"13509:4:27","nodeType":"VariableDeclaration","scope":9415,"src":"13496:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9386,"name":"bytes","nodeType":"ElementaryTypeName","src":"13496:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9389,"mutability":"mutable","name":"value","nameLocation":"13532:5:27","nodeType":"VariableDeclaration","scope":9415,"src":"13524:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9388,"name":"uint256","nodeType":"ElementaryTypeName","src":"13524:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9391,"mutability":"mutable","name":"errorMessage","nameLocation":"13553:12:27","nodeType":"VariableDeclaration","scope":9415,"src":"13539:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9390,"name":"string","nodeType":"ElementaryTypeName","src":"13539:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13470:96:27"},"returnParameters":{"id":9395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9415,"src":"13585:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9393,"name":"bytes","nodeType":"ElementaryTypeName","src":"13585:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13584:14:27"},"scope":9466,"src":"13440:332:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9464,"nodeType":"Block","src":"13940:823:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":9430,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"13978:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9429,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9291,"src":"13967:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":9432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13987:31:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":9428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13959:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13959:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9434,"nodeType":"ExpressionStatement","src":"13959:60:27"},{"assignments":[9436,9438],"declarations":[{"constant":false,"id":9436,"mutability":"mutable","name":"success","nameLocation":"14095:7:27","nodeType":"VariableDeclaration","scope":9464,"src":"14090:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9435,"name":"bool","nodeType":"ElementaryTypeName","src":"14090:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9438,"mutability":"mutable","name":"returndata","nameLocation":"14117:10:27","nodeType":"VariableDeclaration","scope":9464,"src":"14104:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9437,"name":"bytes","nodeType":"ElementaryTypeName","src":"14104:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9445,"initialValue":{"arguments":[{"id":9443,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9419,"src":"14162:4:27","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":9439,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"14131:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14138:4:27","memberName":"call","nodeType":"MemberAccess","src":"14131:11:27","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":9442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":9441,"name":"weiValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"14151:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"14131:30:27","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":9444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14131:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"14089:78:27"},{"condition":{"id":9446,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"14181:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9462,"nodeType":"Block","src":"14238:519:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9450,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"14322:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14333:6:27","memberName":"length","nodeType":"MemberAccess","src":"14322:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14322:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9460,"nodeType":"Block","src":"14694:53:27","statements":[{"expression":{"arguments":[{"id":9457,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9423,"src":"14719:12:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9456,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14712:6:27","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14712:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9459,"nodeType":"ExpressionStatement","src":"14712:20:27"}]},"id":9461,"nodeType":"IfStatement","src":"14318:429:27","trueBody":{"id":9455,"nodeType":"Block","src":"14345:343:27","statements":[{"AST":{"nodeType":"YulBlock","src":"14529:145:27","statements":[{"nodeType":"YulVariableDeclaration","src":"14551:40:27","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"14580:10:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14574:5:27"},"nodeType":"YulFunctionCall","src":"14574:17:27"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"14555:15:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14623:2:27","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"14627:10:27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14619:3:27"},"nodeType":"YulFunctionCall","src":"14619:19:27"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"14640:15:27"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14612:6:27"},"nodeType":"YulFunctionCall","src":"14612:44:27"},"nodeType":"YulExpressionStatement","src":"14612:44:27"}]},"evmVersion":"paris","externalReferences":[{"declaration":9438,"isOffset":false,"isSlot":false,"src":"14580:10:27","valueSize":1},{"declaration":9438,"isOffset":false,"isSlot":false,"src":"14627:10:27","valueSize":1}],"id":9454,"nodeType":"InlineAssembly","src":"14520:154:27"}]}}]},"id":9463,"nodeType":"IfStatement","src":"14177:580:27","trueBody":{"id":9449,"nodeType":"Block","src":"14190:42:27","statements":[{"expression":{"id":9447,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"14211:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":9427,"id":9448,"nodeType":"Return","src":"14204:17:27"}]}}]},"id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"_functionCallWithValue","nameLocation":"13787:22:27","nodeType":"FunctionDefinition","parameters":{"id":9424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9417,"mutability":"mutable","name":"target","nameLocation":"13827:6:27","nodeType":"VariableDeclaration","scope":9465,"src":"13819:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9416,"name":"address","nodeType":"ElementaryTypeName","src":"13819:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9419,"mutability":"mutable","name":"data","nameLocation":"13848:4:27","nodeType":"VariableDeclaration","scope":9465,"src":"13835:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9418,"name":"bytes","nodeType":"ElementaryTypeName","src":"13835:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9421,"mutability":"mutable","name":"weiValue","nameLocation":"13871:8:27","nodeType":"VariableDeclaration","scope":9465,"src":"13863:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9420,"name":"uint256","nodeType":"ElementaryTypeName","src":"13863:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9423,"mutability":"mutable","name":"errorMessage","nameLocation":"13895:12:27","nodeType":"VariableDeclaration","scope":9465,"src":"13881:26:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9422,"name":"string","nodeType":"ElementaryTypeName","src":"13881:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13809:99:27"},"returnParameters":{"id":9427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9465,"src":"13926:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9425,"name":"bytes","nodeType":"ElementaryTypeName","src":"13926:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13925:14:27"},"scope":9466,"src":"13778:985:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":11433,"src":"9077:5688:27","usedErrors":[],"usedEvents":[]},{"id":9467,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"14838:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":9469,"name":"Context","nameLocations":["16344:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":8991,"src":"16344:7:27"},"id":9470,"nodeType":"InheritanceSpecifier","src":"16344:7:27"},{"baseName":{"id":9471,"name":"IERC20","nameLocations":["16353:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":9068,"src":"16353:6:27"},"id":9472,"nodeType":"InheritanceSpecifier","src":"16353:6:27"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":9468,"nodeType":"StructuredDocumentation","src":"15062:1263:27","text":" @dev openzeppelin Implementation of the {IERC20} interface.\n Modified to add setters for name, symbol and decimals. This was needed\n because\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin guidelines: functions revert instead\n of returning `false` on failure. This behavior is nonetheless conventional\n and does not conflict with the expectations of ERC20 applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":9998,"linearizedBaseContracts":[9998,9068,8991],"name":"ERC20","nameLocation":"16335:5:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":9475,"libraryName":{"id":9473,"name":"SafeMath","nameLocations":["16372:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":9263,"src":"16372:8:27"},"nodeType":"UsingForDirective","src":"16366:27:27","typeName":{"id":9474,"name":"uint256","nodeType":"ElementaryTypeName","src":"16385:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":9478,"libraryName":{"id":9476,"name":"Address","nameLocations":["16404:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":9466,"src":"16404:7:27"},"nodeType":"UsingForDirective","src":"16398:26:27","typeName":{"id":9477,"name":"address","nodeType":"ElementaryTypeName","src":"16416:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":9482,"mutability":"mutable","name":"_balances","nameLocation":"16467:9:27","nodeType":"VariableDeclaration","scope":9998,"src":"16430:46:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9481,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9479,"name":"address","nodeType":"ElementaryTypeName","src":"16439:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"16430:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9480,"name":"uint256","nodeType":"ElementaryTypeName","src":"16450:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":9488,"mutability":"mutable","name":"_allowances","nameLocation":"16541:11:27","nodeType":"VariableDeclaration","scope":9998,"src":"16483:69:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":9487,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9483,"name":"address","nodeType":"ElementaryTypeName","src":"16492:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"16483:49:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9486,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":9484,"name":"address","nodeType":"ElementaryTypeName","src":"16512:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"16503:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9485,"name":"uint256","nodeType":"ElementaryTypeName","src":"16523:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":9490,"mutability":"mutable","name":"_totalSupply","nameLocation":"16575:12:27","nodeType":"VariableDeclaration","scope":9998,"src":"16559:28:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9489,"name":"uint256","nodeType":"ElementaryTypeName","src":"16559:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":9492,"mutability":"mutable","name":"_name","nameLocation":"16609:5:27","nodeType":"VariableDeclaration","scope":9998,"src":"16594:20:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9491,"name":"string","nodeType":"ElementaryTypeName","src":"16594:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9494,"mutability":"mutable","name":"_symbol","nameLocation":"16635:7:27","nodeType":"VariableDeclaration","scope":9998,"src":"16620:22:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9493,"name":"string","nodeType":"ElementaryTypeName","src":"16620:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9496,"mutability":"mutable","name":"_decimals","nameLocation":"16662:9:27","nodeType":"VariableDeclaration","scope":9998,"src":"16648:23:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9495,"name":"uint8","nodeType":"ElementaryTypeName","src":"16648:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"body":{"id":9516,"nodeType":"Block","src":"17053:83:27","statements":[{"expression":{"id":9506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9504,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"17063:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9505,"name":"__name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"17071:6:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17063:14:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9507,"nodeType":"ExpressionStatement","src":"17063:14:27"},{"expression":{"id":9510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9508,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"17087:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9509,"name":"__symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9501,"src":"17097:8:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17087:18:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9511,"nodeType":"ExpressionStatement","src":"17087:18:27"},{"expression":{"id":9514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9512,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"17115:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3138","id":9513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17127:2:27","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"17115:14:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9515,"nodeType":"ExpressionStatement","src":"17115:14:27"}]},"documentation":{"id":9497,"nodeType":"StructuredDocumentation","src":"16678:311:27","text":" @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction."},"id":9517,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9499,"mutability":"mutable","name":"__name","nameLocation":"17021:6:27","nodeType":"VariableDeclaration","scope":9517,"src":"17007:20:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9498,"name":"string","nodeType":"ElementaryTypeName","src":"17007:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9501,"mutability":"mutable","name":"__symbol","nameLocation":"17043:8:27","nodeType":"VariableDeclaration","scope":9517,"src":"17029:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9500,"name":"string","nodeType":"ElementaryTypeName","src":"17029:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17006:46:27"},"returnParameters":{"id":9503,"nodeType":"ParameterList","parameters":[],"src":"17053:0:27"},"scope":9998,"src":"16994:142:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9525,"nodeType":"Block","src":"17253:29:27","statements":[{"expression":{"id":9523,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"17270:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9522,"id":9524,"nodeType":"Return","src":"17263:12:27"}]},"documentation":{"id":9518,"nodeType":"StructuredDocumentation","src":"17142:54:27","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":9526,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"17210:4:27","nodeType":"FunctionDefinition","parameters":{"id":9519,"nodeType":"ParameterList","parameters":[],"src":"17214:2:27"},"returnParameters":{"id":9522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9526,"src":"17238:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9520,"name":"string","nodeType":"ElementaryTypeName","src":"17238:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17237:15:27"},"scope":9998,"src":"17201:81:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9535,"nodeType":"Block","src":"17337:30:27","statements":[{"expression":{"id":9533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9531,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"17345:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9532,"name":"newName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"17353:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17345:15:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9534,"nodeType":"ExpressionStatement","src":"17345:15:27"}]},"id":9536,"implemented":true,"kind":"function","modifiers":[],"name":"setName","nameLocation":"17297:7:27","nodeType":"FunctionDefinition","parameters":{"id":9529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9528,"mutability":"mutable","name":"newName","nameLocation":"17319:7:27","nodeType":"VariableDeclaration","scope":9536,"src":"17305:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9527,"name":"string","nodeType":"ElementaryTypeName","src":"17305:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17304:23:27"},"returnParameters":{"id":9530,"nodeType":"ParameterList","parameters":[],"src":"17337:0:27"},"scope":9998,"src":"17288:79:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9544,"nodeType":"Block","src":"17534:31:27","statements":[{"expression":{"id":9542,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"17551:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9541,"id":9543,"nodeType":"Return","src":"17544:14:27"}]},"documentation":{"id":9537,"nodeType":"StructuredDocumentation","src":"17373:102:27","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":9545,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"17489:6:27","nodeType":"FunctionDefinition","parameters":{"id":9538,"nodeType":"ParameterList","parameters":[],"src":"17495:2:27"},"returnParameters":{"id":9541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9545,"src":"17519:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9539,"name":"string","nodeType":"ElementaryTypeName","src":"17519:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17518:15:27"},"scope":9998,"src":"17480:85:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9554,"nodeType":"Block","src":"17624:34:27","statements":[{"expression":{"id":9552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9550,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"17632:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9551,"name":"newSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9547,"src":"17642:9:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17632:19:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9553,"nodeType":"ExpressionStatement","src":"17632:19:27"}]},"id":9555,"implemented":true,"kind":"function","modifiers":[],"name":"setSymbol","nameLocation":"17580:9:27","nodeType":"FunctionDefinition","parameters":{"id":9548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9547,"mutability":"mutable","name":"newSymbol","nameLocation":"17604:9:27","nodeType":"VariableDeclaration","scope":9555,"src":"17590:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9546,"name":"string","nodeType":"ElementaryTypeName","src":"17590:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17589:25:27"},"returnParameters":{"id":9549,"nodeType":"ParameterList","parameters":[],"src":"17624:0:27"},"scope":9998,"src":"17571:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9563,"nodeType":"Block","src":"18329:33:27","statements":[{"expression":{"id":9561,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"18346:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":9560,"id":9562,"nodeType":"Return","src":"18339:16:27"}]},"documentation":{"id":9556,"nodeType":"StructuredDocumentation","src":"17664:612:27","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":9564,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"18290:8:27","nodeType":"FunctionDefinition","parameters":{"id":9557,"nodeType":"ParameterList","parameters":[],"src":"18298:2:27"},"returnParameters":{"id":9560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9564,"src":"18322:5:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9558,"name":"uint8","nodeType":"ElementaryTypeName","src":"18322:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18321:7:27"},"scope":9998,"src":"18281:81:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":9573,"nodeType":"Block","src":"18417:38:27","statements":[{"expression":{"id":9571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9569,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"18425:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9570,"name":"newDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"18437:11:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"18425:23:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9572,"nodeType":"ExpressionStatement","src":"18425:23:27"}]},"id":9574,"implemented":true,"kind":"function","modifiers":[],"name":"setDecimals","nameLocation":"18377:11:27","nodeType":"FunctionDefinition","parameters":{"id":9567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9566,"mutability":"mutable","name":"newDecimals","nameLocation":"18395:11:27","nodeType":"VariableDeclaration","scope":9574,"src":"18389:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9565,"name":"uint8","nodeType":"ElementaryTypeName","src":"18389:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"18388:19:27"},"returnParameters":{"id":9568,"nodeType":"ParameterList","parameters":[],"src":"18417:0:27"},"scope":9998,"src":"18368:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[8999],"body":{"id":9583,"nodeType":"Block","src":"18577:36:27","statements":[{"expression":{"id":9581,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"18594:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9580,"id":9582,"nodeType":"Return","src":"18587:19:27"}]},"documentation":{"id":9575,"nodeType":"StructuredDocumentation","src":"18461:49:27","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":9584,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"18524:11:27","nodeType":"FunctionDefinition","overrides":{"id":9577,"nodeType":"OverrideSpecifier","overrides":[],"src":"18550:8:27"},"parameters":{"id":9576,"nodeType":"ParameterList","parameters":[],"src":"18535:2:27"},"returnParameters":{"id":9580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9584,"src":"18568:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9578,"name":"uint256","nodeType":"ElementaryTypeName","src":"18568:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18567:9:27"},"scope":9998,"src":"18515:98:27","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[9007],"body":{"id":9597,"nodeType":"Block","src":"18746:42:27","statements":[{"expression":{"baseExpression":{"id":9593,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"18763:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9595,"indexExpression":{"id":9594,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9587,"src":"18773:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18763:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9592,"id":9596,"nodeType":"Return","src":"18756:25:27"}]},"documentation":{"id":9585,"nodeType":"StructuredDocumentation","src":"18619:47:27","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":9598,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"18680:9:27","nodeType":"FunctionDefinition","overrides":{"id":9589,"nodeType":"OverrideSpecifier","overrides":[],"src":"18719:8:27"},"parameters":{"id":9588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9587,"mutability":"mutable","name":"account","nameLocation":"18698:7:27","nodeType":"VariableDeclaration","scope":9598,"src":"18690:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9586,"name":"address","nodeType":"ElementaryTypeName","src":"18690:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18689:17:27"},"returnParameters":{"id":9592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9598,"src":"18737:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9590,"name":"uint256","nodeType":"ElementaryTypeName","src":"18737:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18736:9:27"},"scope":9998,"src":"18671:117:27","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[9017],"body":{"id":9618,"nodeType":"Block","src":"19083:80:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9610,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"19103:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9612,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9601,"src":"19117:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9613,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9603,"src":"19128:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9609,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9819,"src":"19093:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19093:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9615,"nodeType":"ExpressionStatement","src":"19093:42:27"},{"expression":{"hexValue":"74727565","id":9616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19152:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9608,"id":9617,"nodeType":"Return","src":"19145:11:27"}]},"documentation":{"id":9599,"nodeType":"StructuredDocumentation","src":"18794:192:27","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":9619,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"19000:8:27","nodeType":"FunctionDefinition","overrides":{"id":9605,"nodeType":"OverrideSpecifier","overrides":[],"src":"19059:8:27"},"parameters":{"id":9604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9601,"mutability":"mutable","name":"recipient","nameLocation":"19017:9:27","nodeType":"VariableDeclaration","scope":9619,"src":"19009:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9600,"name":"address","nodeType":"ElementaryTypeName","src":"19009:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9603,"mutability":"mutable","name":"amount","nameLocation":"19036:6:27","nodeType":"VariableDeclaration","scope":9619,"src":"19028:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9602,"name":"uint256","nodeType":"ElementaryTypeName","src":"19028:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19008:35:27"},"returnParameters":{"id":9608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9619,"src":"19077:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9606,"name":"bool","nodeType":"ElementaryTypeName","src":"19077:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19076:6:27"},"scope":9998,"src":"18991:172:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9027],"body":{"id":9636,"nodeType":"Block","src":"19319:51:27","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":9630,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"19336:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9632,"indexExpression":{"id":9631,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"19348:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19336:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9634,"indexExpression":{"id":9633,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"19355:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19336:27:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9629,"id":9635,"nodeType":"Return","src":"19329:34:27"}]},"documentation":{"id":9620,"nodeType":"StructuredDocumentation","src":"19169:47:27","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":9637,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"19230:9:27","nodeType":"FunctionDefinition","overrides":{"id":9626,"nodeType":"OverrideSpecifier","overrides":[],"src":"19292:8:27"},"parameters":{"id":9625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9622,"mutability":"mutable","name":"owner","nameLocation":"19248:5:27","nodeType":"VariableDeclaration","scope":9637,"src":"19240:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9621,"name":"address","nodeType":"ElementaryTypeName","src":"19240:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9624,"mutability":"mutable","name":"spender","nameLocation":"19263:7:27","nodeType":"VariableDeclaration","scope":9637,"src":"19255:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9623,"name":"address","nodeType":"ElementaryTypeName","src":"19255:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19239:32:27"},"returnParameters":{"id":9629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9637,"src":"19310:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9627,"name":"uint256","nodeType":"ElementaryTypeName","src":"19310:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19309:9:27"},"scope":9998,"src":"19221:149:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9037],"body":{"id":9657,"nodeType":"Block","src":"19597:77:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9649,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"19616:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19616:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9651,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"19630:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9652,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9642,"src":"19639:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9648,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"19607:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19607:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9654,"nodeType":"ExpressionStatement","src":"19607:39:27"},{"expression":{"hexValue":"74727565","id":9655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19663:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9647,"id":9656,"nodeType":"Return","src":"19656:11:27"}]},"documentation":{"id":9638,"nodeType":"StructuredDocumentation","src":"19376:127:27","text":" @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":9658,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"19517:7:27","nodeType":"FunctionDefinition","overrides":{"id":9644,"nodeType":"OverrideSpecifier","overrides":[],"src":"19573:8:27"},"parameters":{"id":9643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9640,"mutability":"mutable","name":"spender","nameLocation":"19533:7:27","nodeType":"VariableDeclaration","scope":9658,"src":"19525:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9639,"name":"address","nodeType":"ElementaryTypeName","src":"19525:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9642,"mutability":"mutable","name":"amount","nameLocation":"19550:6:27","nodeType":"VariableDeclaration","scope":9658,"src":"19542:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9641,"name":"uint256","nodeType":"ElementaryTypeName","src":"19542:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19524:33:27"},"returnParameters":{"id":9647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9658,"src":"19591:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9645,"name":"bool","nodeType":"ElementaryTypeName","src":"19591:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19590:6:27"},"scope":9998,"src":"19508:166:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9049],"body":{"id":9695,"nodeType":"Block","src":"20246:218:27","statements":[{"expression":{"arguments":[{"id":9672,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"20266:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9673,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9663,"src":"20274:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"20285:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9671,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9819,"src":"20256:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20256:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9676,"nodeType":"ExpressionStatement","src":"20256:36:27"},{"expression":{"arguments":[{"id":9678,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"20311:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":9679,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"20319:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":9688,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"20371:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365","id":9689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20392:42:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""},"value":"ERC20: transfer amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""}],"expression":{"baseExpression":{"baseExpression":{"id":9681,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"20333:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9683,"indexExpression":{"id":9682,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9661,"src":"20345:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20333:19:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9686,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"20353:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20353:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20333:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20367:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"20333:37:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20333:102:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9677,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"20302:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:134:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9692,"nodeType":"ExpressionStatement","src":"20302:134:27"},{"expression":{"hexValue":"74727565","id":9693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20453:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9670,"id":9694,"nodeType":"Return","src":"20446:11:27"}]},"documentation":{"id":9659,"nodeType":"StructuredDocumentation","src":"19680:449:27","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20};\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":9696,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"20143:12:27","nodeType":"FunctionDefinition","overrides":{"id":9667,"nodeType":"OverrideSpecifier","overrides":[],"src":"20222:8:27"},"parameters":{"id":9666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9661,"mutability":"mutable","name":"sender","nameLocation":"20164:6:27","nodeType":"VariableDeclaration","scope":9696,"src":"20156:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9660,"name":"address","nodeType":"ElementaryTypeName","src":"20156:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9663,"mutability":"mutable","name":"recipient","nameLocation":"20180:9:27","nodeType":"VariableDeclaration","scope":9696,"src":"20172:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9662,"name":"address","nodeType":"ElementaryTypeName","src":"20172:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9665,"mutability":"mutable","name":"amount","nameLocation":"20199:6:27","nodeType":"VariableDeclaration","scope":9696,"src":"20191:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9664,"name":"uint256","nodeType":"ElementaryTypeName","src":"20191:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20155:51:27"},"returnParameters":{"id":9670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9696,"src":"20240:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9668,"name":"bool","nodeType":"ElementaryTypeName","src":"20240:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20239:6:27"},"scope":9998,"src":"20134:330:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9723,"nodeType":"Block","src":"20953:121:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9707,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"20972:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20972:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9709,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"20986:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":9717,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9701,"src":"21034:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"baseExpression":{"id":9710,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"20995:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9713,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9711,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"21007:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21007:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20995:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9715,"indexExpression":{"id":9714,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"21021:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20995:34:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21030:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"20995:38:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20995:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9706,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"20963:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:83:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9720,"nodeType":"ExpressionStatement","src":"20963:83:27"},{"expression":{"hexValue":"74727565","id":9721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21063:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9705,"id":9722,"nodeType":"Return","src":"21056:11:27"}]},"documentation":{"id":9697,"nodeType":"StructuredDocumentation","src":"20470:384:27","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":9724,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"20868:17:27","nodeType":"FunctionDefinition","parameters":{"id":9702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9699,"mutability":"mutable","name":"spender","nameLocation":"20894:7:27","nodeType":"VariableDeclaration","scope":9724,"src":"20886:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9698,"name":"address","nodeType":"ElementaryTypeName","src":"20886:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9701,"mutability":"mutable","name":"addedValue","nameLocation":"20911:10:27","nodeType":"VariableDeclaration","scope":9724,"src":"20903:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9700,"name":"uint256","nodeType":"ElementaryTypeName","src":"20903:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20885:37:27"},"returnParameters":{"id":9705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9724,"src":"20947:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9703,"name":"bool","nodeType":"ElementaryTypeName","src":"20947:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20946:6:27"},"scope":9998,"src":"20859:215:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9752,"nodeType":"Block","src":"21660:180:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9735,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"21679:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21679:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":9737,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9727,"src":"21693:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":9745,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9729,"src":"21741:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":9746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21771:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"expression":{"baseExpression":{"baseExpression":{"id":9738,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"21702:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9741,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9739,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"21714:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":9740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21714:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21702:25:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9743,"indexExpression":{"id":9742,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9727,"src":"21728:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21702:34:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21737:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"21702:38:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21702:109:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9734,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"21670:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:142:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9749,"nodeType":"ExpressionStatement","src":"21670:142:27"},{"expression":{"hexValue":"74727565","id":9750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21829:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9733,"id":9751,"nodeType":"Return","src":"21822:11:27"}]},"documentation":{"id":9725,"nodeType":"StructuredDocumentation","src":"21080:476:27","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":9753,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"21570:17:27","nodeType":"FunctionDefinition","parameters":{"id":9730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9727,"mutability":"mutable","name":"spender","nameLocation":"21596:7:27","nodeType":"VariableDeclaration","scope":9753,"src":"21588:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9726,"name":"address","nodeType":"ElementaryTypeName","src":"21588:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9729,"mutability":"mutable","name":"subtractedValue","nameLocation":"21613:15:27","nodeType":"VariableDeclaration","scope":9753,"src":"21605:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9728,"name":"uint256","nodeType":"ElementaryTypeName","src":"21605:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21587:42:27"},"returnParameters":{"id":9733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9753,"src":"21654:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9731,"name":"bool","nodeType":"ElementaryTypeName","src":"21654:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21653:6:27"},"scope":9998,"src":"21561:279:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9818,"nodeType":"Block","src":"22401:443:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9764,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22419:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22437:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22429:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9765,"name":"address","nodeType":"ElementaryTypeName","src":"22429:7:27","typeDescriptions":{}}},"id":9768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22429:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22419:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":9770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22441:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":9763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22411:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22411:70:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9772,"nodeType":"ExpressionStatement","src":"22411:70:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9774,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22499:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22520:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22512:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9775,"name":"address","nodeType":"ElementaryTypeName","src":"22512:7:27","typeDescriptions":{}}},"id":9778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22512:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22499:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":9780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22524:37:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":9773,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22491:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22491:71:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9782,"nodeType":"ExpressionStatement","src":"22491:71:27"},{"expression":{"arguments":[{"id":9784,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22594:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9785,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22602:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9786,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22613:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9783,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"22573:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9788,"nodeType":"ExpressionStatement","src":"22573:47:27"},{"expression":{"id":9799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9789,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22631:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9791,"indexExpression":{"id":9790,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22641:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22631:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9796,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22673:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":9797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22681:40:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"expression":{"baseExpression":{"id":9792,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22651:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9794,"indexExpression":{"id":9793,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22661:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22651:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22669:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"22651:21:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22651:71:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22631:91:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9800,"nodeType":"ExpressionStatement","src":"22631:91:27"},{"expression":{"id":9810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9801,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22732:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9803,"indexExpression":{"id":9802,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22742:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22732:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22780:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":9804,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"22755:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9806,"indexExpression":{"id":9805,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22765:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22755:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22776:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"22755:24:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22755:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22732:55:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9811,"nodeType":"ExpressionStatement","src":"22732:55:27"},{"eventCall":{"arguments":[{"id":9813,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"22811:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9814,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"22819:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9815,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"22830:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9812,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"22802:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22802:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9817,"nodeType":"EmitStatement","src":"22797:40:27"}]},"documentation":{"id":9754,"nodeType":"StructuredDocumentation","src":"21846:463:27","text":" @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."},"id":9819,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"22323:9:27","nodeType":"FunctionDefinition","parameters":{"id":9761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9756,"mutability":"mutable","name":"sender","nameLocation":"22341:6:27","nodeType":"VariableDeclaration","scope":9819,"src":"22333:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9755,"name":"address","nodeType":"ElementaryTypeName","src":"22333:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9758,"mutability":"mutable","name":"recipient","nameLocation":"22357:9:27","nodeType":"VariableDeclaration","scope":9819,"src":"22349:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9757,"name":"address","nodeType":"ElementaryTypeName","src":"22349:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9760,"mutability":"mutable","name":"amount","nameLocation":"22376:6:27","nodeType":"VariableDeclaration","scope":9819,"src":"22368:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9759,"name":"uint256","nodeType":"ElementaryTypeName","src":"22368:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22332:51:27"},"returnParameters":{"id":9762,"nodeType":"ParameterList","parameters":[],"src":"22401:0:27"},"scope":9998,"src":"22314:530:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9873,"nodeType":"Block","src":"23178:306:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9828,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23197:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23216:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23208:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9829,"name":"address","nodeType":"ElementaryTypeName","src":"23208:7:27","typeDescriptions":{}}},"id":9832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23208:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23197:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":9834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23220:33:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":9827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23189:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23189:65:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9836,"nodeType":"ExpressionStatement","src":"23189:65:27"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23294:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23286:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9838,"name":"address","nodeType":"ElementaryTypeName","src":"23286:7:27","typeDescriptions":{}}},"id":9841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23286:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9842,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23298:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9843,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23307:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9837,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"23265:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23265:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9845,"nodeType":"ExpressionStatement","src":"23265:49:27"},{"expression":{"id":9851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9846,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23325:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9849,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23357:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9847,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"23340:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23353:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"23340:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23340:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23325:39:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9852,"nodeType":"ExpressionStatement","src":"23325:39:27"},{"expression":{"id":9862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9853,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"23374:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9855,"indexExpression":{"id":9854,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23384:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23374:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23418:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":9856,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"23395:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9858,"indexExpression":{"id":9857,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23405:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23395:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23414:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"23395:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23395:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23374:51:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9863,"nodeType":"ExpressionStatement","src":"23374:51:27"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23457:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23449:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9865,"name":"address","nodeType":"ElementaryTypeName","src":"23449:7:27","typeDescriptions":{}}},"id":9868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23449:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9869,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9822,"src":"23461:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9870,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"23470:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9864,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"23440:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23440:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9872,"nodeType":"EmitStatement","src":"23435:42:27"}]},"documentation":{"id":9820,"nodeType":"StructuredDocumentation","src":"22850:260:27","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address. "},"functionSelector":"4e6ec247","id":9874,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"23124:5:27","nodeType":"FunctionDefinition","parameters":{"id":9825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9822,"mutability":"mutable","name":"account","nameLocation":"23138:7:27","nodeType":"VariableDeclaration","scope":9874,"src":"23130:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9821,"name":"address","nodeType":"ElementaryTypeName","src":"23130:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9824,"mutability":"mutable","name":"amount","nameLocation":"23155:6:27","nodeType":"VariableDeclaration","scope":9874,"src":"23147:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9823,"name":"uint256","nodeType":"ElementaryTypeName","src":"23147:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23129:33:27"},"returnParameters":{"id":9826,"nodeType":"ParameterList","parameters":[],"src":"23178:0:27"},"scope":9998,"src":"23115:369:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9929,"nodeType":"Block","src":"23868:345:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9883,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"23886:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23905:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23897:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9884,"name":"address","nodeType":"ElementaryTypeName","src":"23897:7:27","typeDescriptions":{}}},"id":9887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23897:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23886:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":9889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23909:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":9882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23878:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23878:67:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9891,"nodeType":"ExpressionStatement","src":"23878:67:27"},{"expression":{"arguments":[{"id":9893,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"23977:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23994:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23986:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9894,"name":"address","nodeType":"ElementaryTypeName","src":"23986:7:27","typeDescriptions":{}}},"id":9897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23986:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"23998:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9892,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9997,"src":"23956:20:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23956:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9900,"nodeType":"ExpressionStatement","src":"23956:49:27"},{"expression":{"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9901,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"24016:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9903,"indexExpression":{"id":9902,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"24026:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24016:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"24060:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":9909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24068:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"expression":{"baseExpression":{"id":9904,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"24037:9:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9906,"indexExpression":{"id":9905,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"24047:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24037:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24056:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9141,"src":"24037:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":9910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24037:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24016:89:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9912,"nodeType":"ExpressionStatement","src":"24016:89:27"},{"expression":{"id":9918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9913,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"24115:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"24147:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9914,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"24130:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24143:3:27","memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":9113,"src":"24130:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24130:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24115:39:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9919,"nodeType":"ExpressionStatement","src":"24115:39:27"},{"eventCall":{"arguments":[{"id":9921,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"24178:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24195:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24187:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9922,"name":"address","nodeType":"ElementaryTypeName","src":"24187:7:27","typeDescriptions":{}}},"id":9925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24187:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9926,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"24199:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9920,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"24169:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9928,"nodeType":"EmitStatement","src":"24164:42:27"}]},"documentation":{"id":9875,"nodeType":"StructuredDocumentation","src":"23490:308:27","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":9930,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"23812:5:27","nodeType":"FunctionDefinition","parameters":{"id":9880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9877,"mutability":"mutable","name":"account","nameLocation":"23826:7:27","nodeType":"VariableDeclaration","scope":9930,"src":"23818:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9876,"name":"address","nodeType":"ElementaryTypeName","src":"23818:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9879,"mutability":"mutable","name":"amount","nameLocation":"23843:6:27","nodeType":"VariableDeclaration","scope":9930,"src":"23835:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9878,"name":"uint256","nodeType":"ElementaryTypeName","src":"23835:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23817:33:27"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[],"src":"23868:0:27"},"scope":9998,"src":"23803:410:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9974,"nodeType":"Block","src":"24721:257:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9941,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"24739:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24756:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24748:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9942,"name":"address","nodeType":"ElementaryTypeName","src":"24748:7:27","typeDescriptions":{}}},"id":9945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24748:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24739:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":9947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24760:38:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":9940,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24731:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24731:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9949,"nodeType":"ExpressionStatement","src":"24731:68:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9951,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"24817:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24836:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24828:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9952,"name":"address","nodeType":"ElementaryTypeName","src":"24828:7:27","typeDescriptions":{}}},"id":9955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24828:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24817:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":9957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24840:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":9950,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24809:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24809:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9959,"nodeType":"ExpressionStatement","src":"24809:68:27"},{"expression":{"id":9966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9960,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"24888:11:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9963,"indexExpression":{"id":9961,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"24900:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24888:18:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9964,"indexExpression":{"id":9962,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"24907:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24888:27:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9965,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9937,"src":"24918:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24888:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9967,"nodeType":"ExpressionStatement","src":"24888:36:27"},{"eventCall":{"arguments":[{"id":9969,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"24948:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9970,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"24955:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9971,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9937,"src":"24964:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9968,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9067,"src":"24939:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24939:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9973,"nodeType":"EmitStatement","src":"24934:37:27"}]},"documentation":{"id":9931,"nodeType":"StructuredDocumentation","src":"24219:414:27","text":" @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n This is internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":9975,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"24647:8:27","nodeType":"FunctionDefinition","parameters":{"id":9938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9933,"mutability":"mutable","name":"owner","nameLocation":"24664:5:27","nodeType":"VariableDeclaration","scope":9975,"src":"24656:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9932,"name":"address","nodeType":"ElementaryTypeName","src":"24656:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9935,"mutability":"mutable","name":"spender","nameLocation":"24679:7:27","nodeType":"VariableDeclaration","scope":9975,"src":"24671:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9934,"name":"address","nodeType":"ElementaryTypeName","src":"24671:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9937,"mutability":"mutable","name":"amount","nameLocation":"24696:6:27","nodeType":"VariableDeclaration","scope":9975,"src":"24688:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9936,"name":"uint256","nodeType":"ElementaryTypeName","src":"24688:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24655:48:27"},"returnParameters":{"id":9939,"nodeType":"ParameterList","parameters":[],"src":"24721:0:27"},"scope":9998,"src":"24638:340:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9985,"nodeType":"Block","src":"25351:38:27","statements":[{"expression":{"id":9983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9981,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"25361:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9982,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9978,"src":"25373:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"25361:21:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9984,"nodeType":"ExpressionStatement","src":"25361:21:27"}]},"documentation":{"id":9976,"nodeType":"StructuredDocumentation","src":"24984:312:27","text":" @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."},"id":9986,"implemented":true,"kind":"function","modifiers":[],"name":"_setupDecimals","nameLocation":"25310:14:27","nodeType":"FunctionDefinition","parameters":{"id":9979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9978,"mutability":"mutable","name":"decimals_","nameLocation":"25331:9:27","nodeType":"VariableDeclaration","scope":9986,"src":"25325:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9977,"name":"uint8","nodeType":"ElementaryTypeName","src":"25325:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"25324:17:27"},"returnParameters":{"id":9980,"nodeType":"ParameterList","parameters":[],"src":"25351:0:27"},"scope":9998,"src":"25301:88:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9996,"nodeType":"Block","src":"26065:3:27","statements":[]},"documentation":{"id":9987,"nodeType":"StructuredDocumentation","src":"25395:576:27","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":9997,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"25985:20:27","nodeType":"FunctionDefinition","parameters":{"id":9994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9989,"mutability":"mutable","name":"from","nameLocation":"26014:4:27","nodeType":"VariableDeclaration","scope":9997,"src":"26006:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9988,"name":"address","nodeType":"ElementaryTypeName","src":"26006:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9991,"mutability":"mutable","name":"to","nameLocation":"26028:2:27","nodeType":"VariableDeclaration","scope":9997,"src":"26020:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9990,"name":"address","nodeType":"ElementaryTypeName","src":"26020:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9993,"mutability":"mutable","name":"amount","nameLocation":"26040:6:27","nodeType":"VariableDeclaration","scope":9997,"src":"26032:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9992,"name":"uint256","nodeType":"ElementaryTypeName","src":"26032:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26005:42:27"},"returnParameters":{"id":9995,"nodeType":"ParameterList","parameters":[],"src":"26065:0:27"},"scope":9998,"src":"25976:92:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":11433,"src":"16326:9744:27","usedErrors":[],"usedEvents":[9058,9067]},{"id":9999,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"26132:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":10000,"nodeType":"StructuredDocumentation","src":"26158:665:27","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`\n (`UintSet`) are supported."},"fullyImplemented":true,"id":10421,"linearizedBaseContracts":[10421],"name":"EnumerableSet","nameLocation":"26832:13:27","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":10008,"members":[{"constant":false,"id":10003,"mutability":"mutable","name":"_values","nameLocation":"27356:7:27","nodeType":"VariableDeclaration","scope":10008,"src":"27346:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":10001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27346:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10002,"nodeType":"ArrayTypeName","src":"27346:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":10007,"mutability":"mutable","name":"_indexes","nameLocation":"27526:8:27","nodeType":"VariableDeclaration","scope":10008,"src":"27497:37:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":10006,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27506:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"27497:28:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10005,"name":"uint256","nodeType":"ElementaryTypeName","src":"27517:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"27299:3:27","nodeType":"StructDefinition","scope":10421,"src":"27292:249:27","visibility":"public"},{"body":{"id":10049,"nodeType":"Block","src":"27780:335:27","statements":[{"condition":{"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27794:22:27","subExpression":{"arguments":[{"id":10020,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"27805:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":10021,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"27810:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10019,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"27795:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27795:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10047,"nodeType":"Block","src":"28072:37:27","statements":[{"expression":{"hexValue":"66616c7365","id":10045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28093:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10018,"id":10046,"nodeType":"Return","src":"28086:12:27"}]},"id":10048,"nodeType":"IfStatement","src":"27790:319:27","trueBody":{"id":10044,"nodeType":"Block","src":"27818:248:27","statements":[{"expression":{"arguments":[{"id":10029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"27849:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":10024,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"27832:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27836:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"27832:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27844:4:27","memberName":"push","nodeType":"MemberAccess","src":"27832:16:27","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":10030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27832:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10031,"nodeType":"ExpressionStatement","src":"27832:23:27"},{"expression":{"id":10040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10032,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"27990:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27994:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"27990:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10036,"indexExpression":{"id":10034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10014,"src":"28003:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27990:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":10037,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"28012:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28016:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"28012:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28024:6:27","memberName":"length","nodeType":"MemberAccess","src":"28012:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27990:40:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10041,"nodeType":"ExpressionStatement","src":"27990:40:27"},{"expression":{"hexValue":"74727565","id":10042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28051:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10018,"id":10043,"nodeType":"Return","src":"28044:11:27"}]}}]},"documentation":{"id":10009,"nodeType":"StructuredDocumentation","src":"27547:159:27","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10050,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"27720:4:27","nodeType":"FunctionDefinition","parameters":{"id":10015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10012,"mutability":"mutable","name":"set","nameLocation":"27737:3:27","nodeType":"VariableDeclaration","scope":10050,"src":"27725:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10011,"nodeType":"UserDefinedTypeName","pathNode":{"id":10010,"name":"Set","nameLocations":["27725:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"27725:3:27"},"referencedDeclaration":10008,"src":"27725:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10014,"mutability":"mutable","name":"value","nameLocation":"27750:5:27","nodeType":"VariableDeclaration","scope":10050,"src":"27742:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27742:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27724:32:27"},"returnParameters":{"id":10018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10050,"src":"27774:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10016,"name":"bool","nodeType":"ElementaryTypeName","src":"27774:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27773:6:27"},"scope":10421,"src":"27711:404:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10130,"nodeType":"Block","src":"28355:1440:27","statements":[{"assignments":[10062],"declarations":[{"constant":false,"id":10062,"mutability":"mutable","name":"valueIndex","nameLocation":"28473:10:27","nodeType":"VariableDeclaration","scope":10130,"src":"28465:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10061,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10067,"initialValue":{"baseExpression":{"expression":{"id":10063,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"28486:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28490:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"28486:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10066,"indexExpression":{"id":10065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10056,"src":"28499:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28486:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:40:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10068,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"28520:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28534:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28520:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10128,"nodeType":"Block","src":"29752:37:27","statements":[{"expression":{"hexValue":"66616c7365","id":10126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29773:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10060,"id":10127,"nodeType":"Return","src":"29766:12:27"}]},"id":10129,"nodeType":"IfStatement","src":"28516:1273:27","trueBody":{"id":10125,"nodeType":"Block","src":"28537:1209:27","statements":[{"assignments":[10072],"declarations":[{"constant":false,"id":10072,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"28885:13:27","nodeType":"VariableDeclaration","scope":10125,"src":"28877:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10071,"name":"uint256","nodeType":"ElementaryTypeName","src":"28877:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10076,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10073,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"28901:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28914:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28901:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28877:38:27"},{"assignments":[10078],"declarations":[{"constant":false,"id":10078,"mutability":"mutable","name":"lastIndex","nameLocation":"28937:9:27","nodeType":"VariableDeclaration","scope":10125,"src":"28929:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10077,"name":"uint256","nodeType":"ElementaryTypeName","src":"28929:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10084,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10079,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"28949:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28953:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"28949:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28961:6:27","memberName":"length","nodeType":"MemberAccess","src":"28949:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28970:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28949:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28929:42:27"},{"assignments":[10086],"declarations":[{"constant":false,"id":10086,"mutability":"mutable","name":"lastvalue","nameLocation":"29219:9:27","nodeType":"VariableDeclaration","scope":10125,"src":"29211:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29211:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10091,"initialValue":{"baseExpression":{"expression":{"id":10087,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29231:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29235:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"29231:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10090,"indexExpression":{"id":10089,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"29243:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29231:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"29211:42:27"},{"expression":{"id":10098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10092,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29345:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29349:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"29345:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10096,"indexExpression":{"id":10094,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10072,"src":"29357:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29345:26:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10097,"name":"lastvalue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"29374:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29345:38:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10099,"nodeType":"ExpressionStatement","src":"29345:38:27"},{"expression":{"id":10108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10100,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29449:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29453:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"29449:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10104,"indexExpression":{"id":10102,"name":"lastvalue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"29462:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29449:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10105,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10072,"src":"29475:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29491:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29475:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29449:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10109,"nodeType":"ExpressionStatement","src":"29449:43:27"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10110,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29598:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29602:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"29598:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29610:3:27","memberName":"pop","nodeType":"MemberAccess","src":"29598:15:27","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":10115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29598:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10116,"nodeType":"ExpressionStatement","src":"29598:17:27"},{"expression":{"id":10121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"29683:26:27","subExpression":{"baseExpression":{"expression":{"id":10117,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10054,"src":"29690:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29694:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"29690:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10120,"indexExpression":{"id":10119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10056,"src":"29703:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29690:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10122,"nodeType":"ExpressionStatement","src":"29683:26:27"},{"expression":{"hexValue":"74727565","id":10123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29731:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10060,"id":10124,"nodeType":"Return","src":"29724:11:27"}]}}]},"documentation":{"id":10051,"nodeType":"StructuredDocumentation","src":"28121:157:27","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10131,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"28292:7:27","nodeType":"FunctionDefinition","parameters":{"id":10057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10054,"mutability":"mutable","name":"set","nameLocation":"28312:3:27","nodeType":"VariableDeclaration","scope":10131,"src":"28300:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10053,"nodeType":"UserDefinedTypeName","pathNode":{"id":10052,"name":"Set","nameLocations":["28300:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"28300:3:27"},"referencedDeclaration":10008,"src":"28300:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10056,"mutability":"mutable","name":"value","nameLocation":"28325:5:27","nodeType":"VariableDeclaration","scope":10131,"src":"28317:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28317:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"28299:32:27"},"returnParameters":{"id":10060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10131,"src":"28349:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10058,"name":"bool","nodeType":"ElementaryTypeName","src":"28349:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28348:6:27"},"scope":10421,"src":"28283:1512:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10149,"nodeType":"Block","src":"29955:48:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":10142,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10135,"src":"29972:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29976:8:27","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10007,"src":"29972:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10145,"indexExpression":{"id":10144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10137,"src":"29985:5:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29972:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29995:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29972:24:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10141,"id":10148,"nodeType":"Return","src":"29965:31:27"}]},"documentation":{"id":10132,"nodeType":"StructuredDocumentation","src":"29801:70:27","text":" @dev Returns true if the value is in the set. O(1)."},"id":10150,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"29885:9:27","nodeType":"FunctionDefinition","parameters":{"id":10138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10135,"mutability":"mutable","name":"set","nameLocation":"29907:3:27","nodeType":"VariableDeclaration","scope":10150,"src":"29895:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10134,"nodeType":"UserDefinedTypeName","pathNode":{"id":10133,"name":"Set","nameLocations":["29895:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"29895:3:27"},"referencedDeclaration":10008,"src":"29895:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10137,"mutability":"mutable","name":"value","nameLocation":"29920:5:27","nodeType":"VariableDeclaration","scope":10150,"src":"29912:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29912:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"29894:32:27"},"returnParameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10150,"src":"29949:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10139,"name":"bool","nodeType":"ElementaryTypeName","src":"29949:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29948:6:27"},"scope":10421,"src":"29876:127:27","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10163,"nodeType":"Block","src":"30149:42:27","statements":[{"expression":{"expression":{"expression":{"id":10159,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"30166:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30170:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"30166:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30178:6:27","memberName":"length","nodeType":"MemberAccess","src":"30166:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10158,"id":10162,"nodeType":"Return","src":"30159:25:27"}]},"documentation":{"id":10151,"nodeType":"StructuredDocumentation","src":"30009:70:27","text":" @dev Returns the number of values on the set. O(1)."},"id":10164,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"30093:7:27","nodeType":"FunctionDefinition","parameters":{"id":10155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10154,"mutability":"mutable","name":"set","nameLocation":"30113:3:27","nodeType":"VariableDeclaration","scope":10164,"src":"30101:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10153,"nodeType":"UserDefinedTypeName","pathNode":{"id":10152,"name":"Set","nameLocations":["30101:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"30101:3:27"},"referencedDeclaration":10008,"src":"30101:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"30100:17:27"},"returnParameters":{"id":10158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10164,"src":"30140:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10156,"name":"uint256","nodeType":"ElementaryTypeName","src":"30140:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30139:9:27"},"scope":10421,"src":"30084:107:27","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10189,"nodeType":"Block","src":"30599:125:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10176,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10168,"src":"30617:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30621:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"30617:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30629:6:27","memberName":"length","nodeType":"MemberAccess","src":"30617:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10179,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"30638:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30617:26:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473","id":10181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30645:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb","typeString":"literal_string \"EnumerableSet: index out of bounds\""},"value":"EnumerableSet: index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb","typeString":"literal_string \"EnumerableSet: index out of bounds\""}],"id":10175,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30609:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30609:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10183,"nodeType":"ExpressionStatement","src":"30609:73:27"},{"expression":{"baseExpression":{"expression":{"id":10184,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10168,"src":"30699:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:7:27","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10003,"src":"30699:11:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10187,"indexExpression":{"id":10186,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"30711:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30699:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10174,"id":10188,"nodeType":"Return","src":"30692:25:27"}]},"documentation":{"id":10165,"nodeType":"StructuredDocumentation","src":"30196:322:27","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":10190,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"30532:3:27","nodeType":"FunctionDefinition","parameters":{"id":10171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10168,"mutability":"mutable","name":"set","nameLocation":"30548:3:27","nodeType":"VariableDeclaration","scope":10190,"src":"30536:15:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10167,"nodeType":"UserDefinedTypeName","pathNode":{"id":10166,"name":"Set","nameLocations":["30536:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"30536:3:27"},"referencedDeclaration":10008,"src":"30536:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10170,"mutability":"mutable","name":"index","nameLocation":"30561:5:27","nodeType":"VariableDeclaration","scope":10190,"src":"30553:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10169,"name":"uint256","nodeType":"ElementaryTypeName","src":"30553:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30535:32:27"},"returnParameters":{"id":10174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10190,"src":"30590:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30590:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30589:9:27"},"scope":10421,"src":"30523:201:27","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.AddressSet","id":10194,"members":[{"constant":false,"id":10193,"mutability":"mutable","name":"_inner","nameLocation":"30781:6:27","nodeType":"VariableDeclaration","scope":10194,"src":"30777:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10192,"nodeType":"UserDefinedTypeName","pathNode":{"id":10191,"name":"Set","nameLocations":["30777:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"30777:3:27"},"referencedDeclaration":10008,"src":"30777:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"30756:10:27","nodeType":"StructDefinition","scope":10421,"src":"30749:45:27","visibility":"public"},{"body":{"id":10220,"nodeType":"Block","src":"31040:74:27","statements":[{"expression":{"arguments":[{"expression":{"id":10206,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"31062:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31066:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31062:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":10214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"31098:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31090:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10212,"name":"uint160","nodeType":"ElementaryTypeName","src":"31090:7:27","typeDescriptions":{}}},"id":10215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31090:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31082:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10210,"name":"uint256","nodeType":"ElementaryTypeName","src":"31082:7:27","typeDescriptions":{}}},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31082:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31074:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31074:7:27","typeDescriptions":{}}},"id":10217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31074:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10205,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"31057:4:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31057:50:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10204,"id":10219,"nodeType":"Return","src":"31050:57:27"}]},"documentation":{"id":10195,"nodeType":"StructuredDocumentation","src":"30800:159:27","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10221,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"30973:3:27","nodeType":"FunctionDefinition","parameters":{"id":10201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"set","nameLocation":"30996:3:27","nodeType":"VariableDeclaration","scope":10221,"src":"30977:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10197,"nodeType":"UserDefinedTypeName","pathNode":{"id":10196,"name":"AddressSet","nameLocations":["30977:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"30977:10:27"},"referencedDeclaration":10194,"src":"30977:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10200,"mutability":"mutable","name":"value","nameLocation":"31009:5:27","nodeType":"VariableDeclaration","scope":10221,"src":"31001:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10199,"name":"address","nodeType":"ElementaryTypeName","src":"31001:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30976:39:27"},"returnParameters":{"id":10204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10221,"src":"31034:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10202,"name":"bool","nodeType":"ElementaryTypeName","src":"31034:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31033:6:27"},"scope":10421,"src":"30964:150:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10247,"nodeType":"Block","src":"31361:77:27","statements":[{"expression":{"arguments":[{"expression":{"id":10233,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10225,"src":"31386:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31390:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31386:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":10241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10227,"src":"31422:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31414:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10239,"name":"uint160","nodeType":"ElementaryTypeName","src":"31414:7:27","typeDescriptions":{}}},"id":10242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31414:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31406:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10237,"name":"uint256","nodeType":"ElementaryTypeName","src":"31406:7:27","typeDescriptions":{}}},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31406:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31398:7:27","typeDescriptions":{}}},"id":10244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10232,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"31378:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:53:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10231,"id":10246,"nodeType":"Return","src":"31371:60:27"}]},"documentation":{"id":10222,"nodeType":"StructuredDocumentation","src":"31120:157:27","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10248,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"31291:6:27","nodeType":"FunctionDefinition","parameters":{"id":10228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10225,"mutability":"mutable","name":"set","nameLocation":"31317:3:27","nodeType":"VariableDeclaration","scope":10248,"src":"31298:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10224,"nodeType":"UserDefinedTypeName","pathNode":{"id":10223,"name":"AddressSet","nameLocations":["31298:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"31298:10:27"},"referencedDeclaration":10194,"src":"31298:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10227,"mutability":"mutable","name":"value","nameLocation":"31330:5:27","nodeType":"VariableDeclaration","scope":10248,"src":"31322:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10226,"name":"address","nodeType":"ElementaryTypeName","src":"31322:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31297:39:27"},"returnParameters":{"id":10231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10248,"src":"31355:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10229,"name":"bool","nodeType":"ElementaryTypeName","src":"31355:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31354:6:27"},"scope":10421,"src":"31282:156:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10274,"nodeType":"Block","src":"31605:79:27","statements":[{"expression":{"arguments":[{"expression":{"id":10260,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10252,"src":"31632:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31636:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31632:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":10268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"31668:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31660:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10266,"name":"uint160","nodeType":"ElementaryTypeName","src":"31660:7:27","typeDescriptions":{}}},"id":10269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31660:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31652:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10264,"name":"uint256","nodeType":"ElementaryTypeName","src":"31652:7:27","typeDescriptions":{}}},"id":10270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31652:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31644:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31644:7:27","typeDescriptions":{}}},"id":10271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31644:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10259,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"31622:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31622:55:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10258,"id":10273,"nodeType":"Return","src":"31615:62:27"}]},"documentation":{"id":10249,"nodeType":"StructuredDocumentation","src":"31444:70:27","text":" @dev Returns true if the value is in the set. O(1)."},"id":10275,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"31528:8:27","nodeType":"FunctionDefinition","parameters":{"id":10255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10252,"mutability":"mutable","name":"set","nameLocation":"31556:3:27","nodeType":"VariableDeclaration","scope":10275,"src":"31537:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10251,"nodeType":"UserDefinedTypeName","pathNode":{"id":10250,"name":"AddressSet","nameLocations":["31537:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"31537:10:27"},"referencedDeclaration":10194,"src":"31537:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10254,"mutability":"mutable","name":"value","nameLocation":"31569:5:27","nodeType":"VariableDeclaration","scope":10275,"src":"31561:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10253,"name":"address","nodeType":"ElementaryTypeName","src":"31561:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31536:39:27"},"returnParameters":{"id":10258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10275,"src":"31599:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10256,"name":"bool","nodeType":"ElementaryTypeName","src":"31599:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31598:6:27"},"scope":10421,"src":"31519:165:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10289,"nodeType":"Block","src":"31837:43:27","statements":[{"expression":{"arguments":[{"expression":{"id":10285,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10279,"src":"31862:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31866:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"31862:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":10284,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"31854:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":10287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31854:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10283,"id":10288,"nodeType":"Return","src":"31847:26:27"}]},"documentation":{"id":10276,"nodeType":"StructuredDocumentation","src":"31690:70:27","text":" @dev Returns the number of values in the set. O(1)."},"id":10290,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"31774:6:27","nodeType":"FunctionDefinition","parameters":{"id":10280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10279,"mutability":"mutable","name":"set","nameLocation":"31800:3:27","nodeType":"VariableDeclaration","scope":10290,"src":"31781:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10278,"nodeType":"UserDefinedTypeName","pathNode":{"id":10277,"name":"AddressSet","nameLocations":["31781:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"31781:10:27"},"referencedDeclaration":10194,"src":"31781:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"31780:24:27"},"returnParameters":{"id":10283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10290,"src":"31828:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10281,"name":"uint256","nodeType":"ElementaryTypeName","src":"31828:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31827:9:27"},"scope":10421,"src":"31765:115:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10316,"nodeType":"Block","src":"32295:73:27","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":10308,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10294,"src":"32340:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":10309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32344:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10193,"src":"32340:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":10310,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10296,"src":"32352:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10307,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10190,"src":"32336:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":10311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32336:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32328:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10305,"name":"uint256","nodeType":"ElementaryTypeName","src":"32328:7:27","typeDescriptions":{}}},"id":10312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32328:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32320:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10303,"name":"uint160","nodeType":"ElementaryTypeName","src":"32320:7:27","typeDescriptions":{}}},"id":10313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32320:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32312:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10301,"name":"address","nodeType":"ElementaryTypeName","src":"32312:7:27","typeDescriptions":{}}},"id":10314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32312:49:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10300,"id":10315,"nodeType":"Return","src":"32305:56:27"}]},"documentation":{"id":10291,"nodeType":"StructuredDocumentation","src":"31885:322:27","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":10317,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"32221:2:27","nodeType":"FunctionDefinition","parameters":{"id":10297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10294,"mutability":"mutable","name":"set","nameLocation":"32243:3:27","nodeType":"VariableDeclaration","scope":10317,"src":"32224:22:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10293,"nodeType":"UserDefinedTypeName","pathNode":{"id":10292,"name":"AddressSet","nameLocations":["32224:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"32224:10:27"},"referencedDeclaration":10194,"src":"32224:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10296,"mutability":"mutable","name":"index","nameLocation":"32256:5:27","nodeType":"VariableDeclaration","scope":10317,"src":"32248:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10295,"name":"uint256","nodeType":"ElementaryTypeName","src":"32248:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32223:39:27"},"returnParameters":{"id":10300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10317,"src":"32286:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10298,"name":"address","nodeType":"ElementaryTypeName","src":"32286:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32285:9:27"},"scope":10421,"src":"32212:156:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":10321,"members":[{"constant":false,"id":10320,"mutability":"mutable","name":"_inner","nameLocation":"32420:6:27","nodeType":"VariableDeclaration","scope":10321,"src":"32416:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10319,"nodeType":"UserDefinedTypeName","pathNode":{"id":10318,"name":"Set","nameLocations":["32416:3:27"],"nodeType":"IdentifierPath","referencedDeclaration":10008,"src":"32416:3:27"},"referencedDeclaration":10008,"src":"32416:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"32398:7:27","nodeType":"StructDefinition","scope":10421,"src":"32391:42:27","visibility":"public"},{"body":{"id":10341,"nodeType":"Block","src":"32676:56:27","statements":[{"expression":{"arguments":[{"expression":{"id":10333,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10325,"src":"32698:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32702:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"32698:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":10337,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10327,"src":"32718:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32710:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32710:7:27","typeDescriptions":{}}},"id":10338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32710:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10332,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10050,"src":"32693:4:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32693:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10331,"id":10340,"nodeType":"Return","src":"32686:39:27"}]},"documentation":{"id":10322,"nodeType":"StructuredDocumentation","src":"32439:159:27","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10342,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"32612:3:27","nodeType":"FunctionDefinition","parameters":{"id":10328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10325,"mutability":"mutable","name":"set","nameLocation":"32632:3:27","nodeType":"VariableDeclaration","scope":10342,"src":"32616:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10324,"nodeType":"UserDefinedTypeName","pathNode":{"id":10323,"name":"UintSet","nameLocations":["32616:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"32616:7:27"},"referencedDeclaration":10321,"src":"32616:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10327,"mutability":"mutable","name":"value","nameLocation":"32645:5:27","nodeType":"VariableDeclaration","scope":10342,"src":"32637:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10326,"name":"uint256","nodeType":"ElementaryTypeName","src":"32637:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32615:36:27"},"returnParameters":{"id":10331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10342,"src":"32670:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10329,"name":"bool","nodeType":"ElementaryTypeName","src":"32670:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32669:6:27"},"scope":10421,"src":"32603:129:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10362,"nodeType":"Block","src":"32976:59:27","statements":[{"expression":{"arguments":[{"expression":{"id":10354,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10346,"src":"33001:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33005:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33001:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":10358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10348,"src":"33021:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33013:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33013:7:27","typeDescriptions":{}}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33013:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10353,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10131,"src":"32993:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":10360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32993:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10352,"id":10361,"nodeType":"Return","src":"32986:42:27"}]},"documentation":{"id":10343,"nodeType":"StructuredDocumentation","src":"32738:157:27","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10363,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"32909:6:27","nodeType":"FunctionDefinition","parameters":{"id":10349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10346,"mutability":"mutable","name":"set","nameLocation":"32932:3:27","nodeType":"VariableDeclaration","scope":10363,"src":"32916:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10345,"nodeType":"UserDefinedTypeName","pathNode":{"id":10344,"name":"UintSet","nameLocations":["32916:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"32916:7:27"},"referencedDeclaration":10321,"src":"32916:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10348,"mutability":"mutable","name":"value","nameLocation":"32945:5:27","nodeType":"VariableDeclaration","scope":10363,"src":"32937:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10347,"name":"uint256","nodeType":"ElementaryTypeName","src":"32937:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32915:36:27"},"returnParameters":{"id":10352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10363,"src":"32970:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10350,"name":"bool","nodeType":"ElementaryTypeName","src":"32970:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32969:6:27"},"scope":10421,"src":"32900:135:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10383,"nodeType":"Block","src":"33199:61:27","statements":[{"expression":{"arguments":[{"expression":{"id":10375,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10367,"src":"33226:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33230:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33226:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":10379,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10369,"src":"33246:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33238:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33238:7:27","typeDescriptions":{}}},"id":10380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33238:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10374,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10150,"src":"33216:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33216:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10373,"id":10382,"nodeType":"Return","src":"33209:44:27"}]},"documentation":{"id":10364,"nodeType":"StructuredDocumentation","src":"33041:70:27","text":" @dev Returns true if the value is in the set. O(1)."},"id":10384,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"33125:8:27","nodeType":"FunctionDefinition","parameters":{"id":10370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10367,"mutability":"mutable","name":"set","nameLocation":"33150:3:27","nodeType":"VariableDeclaration","scope":10384,"src":"33134:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10366,"nodeType":"UserDefinedTypeName","pathNode":{"id":10365,"name":"UintSet","nameLocations":["33134:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"33134:7:27"},"referencedDeclaration":10321,"src":"33134:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10369,"mutability":"mutable","name":"value","nameLocation":"33163:5:27","nodeType":"VariableDeclaration","scope":10384,"src":"33155:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10368,"name":"uint256","nodeType":"ElementaryTypeName","src":"33155:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33133:36:27"},"returnParameters":{"id":10373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10384,"src":"33193:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10371,"name":"bool","nodeType":"ElementaryTypeName","src":"33193:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33192:6:27"},"scope":10421,"src":"33116:144:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10398,"nodeType":"Block","src":"33410:43:27","statements":[{"expression":{"arguments":[{"expression":{"id":10394,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10388,"src":"33435:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33439:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33435:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":10393,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"33427:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":10396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33427:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10392,"id":10397,"nodeType":"Return","src":"33420:26:27"}]},"documentation":{"id":10385,"nodeType":"StructuredDocumentation","src":"33266:70:27","text":" @dev Returns the number of values on the set. O(1)."},"id":10399,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"33350:6:27","nodeType":"FunctionDefinition","parameters":{"id":10389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10388,"mutability":"mutable","name":"set","nameLocation":"33373:3:27","nodeType":"VariableDeclaration","scope":10399,"src":"33357:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10387,"nodeType":"UserDefinedTypeName","pathNode":{"id":10386,"name":"UintSet","nameLocations":["33357:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"33357:7:27"},"referencedDeclaration":10321,"src":"33357:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"33356:21:27"},"returnParameters":{"id":10392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10399,"src":"33401:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10390,"name":"uint256","nodeType":"ElementaryTypeName","src":"33401:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33400:9:27"},"scope":10421,"src":"33341:112:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10419,"nodeType":"Block","src":"33865:55:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":10413,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10403,"src":"33894:3:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":10414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33898:6:27","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"33894:10:27","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":10415,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10405,"src":"33906:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10008_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10412,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10190,"src":"33890:3:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10008_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":10416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33890:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33882:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10410,"name":"uint256","nodeType":"ElementaryTypeName","src":"33882:7:27","typeDescriptions":{}}},"id":10417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33882:31:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10409,"id":10418,"nodeType":"Return","src":"33875:38:27"}]},"documentation":{"id":10400,"nodeType":"StructuredDocumentation","src":"33458:322:27","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":10420,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"33794:2:27","nodeType":"FunctionDefinition","parameters":{"id":10406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10403,"mutability":"mutable","name":"set","nameLocation":"33813:3:27","nodeType":"VariableDeclaration","scope":10420,"src":"33797:19:27","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":10402,"nodeType":"UserDefinedTypeName","pathNode":{"id":10401,"name":"UintSet","nameLocations":["33797:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":10321,"src":"33797:7:27"},"referencedDeclaration":10321,"src":"33797:7:27","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$10321_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":10405,"mutability":"mutable","name":"index","nameLocation":"33826:5:27","nodeType":"VariableDeclaration","scope":10420,"src":"33818:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10404,"name":"uint256","nodeType":"ElementaryTypeName","src":"33818:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33796:36:27"},"returnParameters":{"id":10409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10420,"src":"33856:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10407,"name":"uint256","nodeType":"ElementaryTypeName","src":"33856:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33855:9:27"},"scope":10421,"src":"33785:135:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"26824:7098:27","usedErrors":[],"usedEvents":[]},{"id":10422,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33985:24:27"},{"abstract":true,"baseContracts":[{"baseName":{"id":10424,"name":"Context","nameLocations":["35326:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":8991,"src":"35326:7:27"},"id":10425,"nodeType":"InheritanceSpecifier","src":"35326:7:27"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":10423,"nodeType":"StructuredDocumentation","src":"34014:1276:27","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":10703,"linearizedBaseContracts":[10703,8991],"name":"AccessControl","nameLocation":"35309:13:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10429,"libraryName":{"id":10426,"name":"EnumerableSet","nameLocations":["35346:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":10421,"src":"35346:13:27"},"nodeType":"UsingForDirective","src":"35340:49:27","typeName":{"id":10428,"nodeType":"UserDefinedTypeName","pathNode":{"id":10427,"name":"EnumerableSet.AddressSet","nameLocations":["35364:13:27","35378:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"35364:24:27"},"referencedDeclaration":10194,"src":"35364:24:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"global":false,"id":10432,"libraryName":{"id":10430,"name":"Address","nameLocations":["35400:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":9466,"src":"35400:7:27"},"nodeType":"UsingForDirective","src":"35394:26:27","typeName":{"id":10431,"name":"address","nodeType":"ElementaryTypeName","src":"35412:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"AccessControl.RoleData","id":10438,"members":[{"constant":false,"id":10435,"mutability":"mutable","name":"members","nameLocation":"35477:7:27","nodeType":"VariableDeclaration","scope":10438,"src":"35452:32:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":10434,"nodeType":"UserDefinedTypeName","pathNode":{"id":10433,"name":"EnumerableSet.AddressSet","nameLocations":["35452:13:27","35466:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10194,"src":"35452:24:27"},"referencedDeclaration":10194,"src":"35452:24:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":10437,"mutability":"mutable","name":"adminRole","nameLocation":"35502:9:27","nodeType":"VariableDeclaration","scope":10438,"src":"35494:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35494:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"35433:8:27","nodeType":"StructDefinition","scope":10703,"src":"35426:92:27","visibility":"public"},{"constant":false,"id":10443,"mutability":"mutable","name":"_roles","nameLocation":"35562:6:27","nodeType":"VariableDeclaration","scope":10703,"src":"35524:44:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":10442,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35533:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"35524:29:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10441,"nodeType":"UserDefinedTypeName","pathNode":{"id":10440,"name":"RoleData","nameLocations":["35544:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":10438,"src":"35544:8:27"},"referencedDeclaration":10438,"src":"35544:8:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":10446,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"35599:18:27","nodeType":"VariableDeclaration","scope":10703,"src":"35575:49:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35575:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":10445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35620:4:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"anonymous":false,"documentation":{"id":10447,"nodeType":"StructuredDocumentation","src":"35631:292:27","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":10455,"name":"RoleAdminChanged","nameLocation":"35934:16:27","nodeType":"EventDefinition","parameters":{"id":10454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10449,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"35967:4:27","nodeType":"VariableDeclaration","scope":10455,"src":"35951:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35951:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10451,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"35989:17:27","nodeType":"VariableDeclaration","scope":10455,"src":"35973:33:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35973:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10453,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"36024:12:27","nodeType":"VariableDeclaration","scope":10455,"src":"36008:28:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36008:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35950:87:27"},"src":"35928:110:27"},{"anonymous":false,"documentation":{"id":10456,"nodeType":"StructuredDocumentation","src":"36044:198:27","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":10464,"name":"RoleGranted","nameLocation":"36253:11:27","nodeType":"EventDefinition","parameters":{"id":10463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10458,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"36281:4:27","nodeType":"VariableDeclaration","scope":10464,"src":"36265:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36265:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10460,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"36303:7:27","nodeType":"VariableDeclaration","scope":10464,"src":"36287:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10459,"name":"address","nodeType":"ElementaryTypeName","src":"36287:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10462,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"36328:6:27","nodeType":"VariableDeclaration","scope":10464,"src":"36312:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10461,"name":"address","nodeType":"ElementaryTypeName","src":"36312:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36264:71:27"},"src":"36247:89:27"},{"anonymous":false,"documentation":{"id":10465,"nodeType":"StructuredDocumentation","src":"36342:275:27","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":10473,"name":"RoleRevoked","nameLocation":"36628:11:27","nodeType":"EventDefinition","parameters":{"id":10472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10467,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"36656:4:27","nodeType":"VariableDeclaration","scope":10473,"src":"36640:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36640:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10469,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"36678:7:27","nodeType":"VariableDeclaration","scope":10473,"src":"36662:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10468,"name":"address","nodeType":"ElementaryTypeName","src":"36662:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10471,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"36703:6:27","nodeType":"VariableDeclaration","scope":10473,"src":"36687:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10470,"name":"address","nodeType":"ElementaryTypeName","src":"36687:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36639:71:27"},"src":"36622:89:27"},{"body":{"id":10491,"nodeType":"Block","src":"36873:62:27","statements":[{"expression":{"arguments":[{"id":10488,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10478,"src":"36920:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":10483,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"36890:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10485,"indexExpression":{"id":10484,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10476,"src":"36897:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36890:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36903:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"36890:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36911:8:27","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":10275,"src":"36890:29:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$10194_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":10489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36890:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10482,"id":10490,"nodeType":"Return","src":"36883:45:27"}]},"documentation":{"id":10474,"nodeType":"StructuredDocumentation","src":"36717:76:27","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":10492,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"36807:7:27","nodeType":"FunctionDefinition","parameters":{"id":10479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10476,"mutability":"mutable","name":"role","nameLocation":"36823:4:27","nodeType":"VariableDeclaration","scope":10492,"src":"36815:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36815:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10478,"mutability":"mutable","name":"account","nameLocation":"36837:7:27","nodeType":"VariableDeclaration","scope":10492,"src":"36829:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10477,"name":"address","nodeType":"ElementaryTypeName","src":"36829:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36814:31:27"},"returnParameters":{"id":10482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10492,"src":"36867:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10480,"name":"bool","nodeType":"ElementaryTypeName","src":"36867:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36866:6:27"},"scope":10703,"src":"36798:137:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10507,"nodeType":"Block","src":"37175:53:27","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":10500,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"37192:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10502,"indexExpression":{"id":10501,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"37199:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37192:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37205:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"37192:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37213:6:27","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":10290,"src":"37192:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$10194_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":10505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37192:29:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10499,"id":10506,"nodeType":"Return","src":"37185:36:27"}]},"documentation":{"id":10493,"nodeType":"StructuredDocumentation","src":"36941:157:27","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":10508,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"37112:18:27","nodeType":"FunctionDefinition","parameters":{"id":10496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10495,"mutability":"mutable","name":"role","nameLocation":"37139:4:27","nodeType":"VariableDeclaration","scope":10508,"src":"37131:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37131:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"37130:14:27"},"returnParameters":{"id":10499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10508,"src":"37166:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10497,"name":"uint256","nodeType":"ElementaryTypeName","src":"37166:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37165:9:27"},"scope":10703,"src":"37103:125:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10526,"nodeType":"Block","src":"37883:54:27","statements":[{"expression":{"arguments":[{"id":10523,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10513,"src":"37924:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":10518,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"37900:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10520,"indexExpression":{"id":10519,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10511,"src":"37907:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37900:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37913:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"37900:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37921:2:27","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":10317,"src":"37900:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$10194_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37900:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10517,"id":10525,"nodeType":"Return","src":"37893:37:27"}]},"documentation":{"id":10509,"nodeType":"StructuredDocumentation","src":"37234:562:27","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296\n for more information."},"functionSelector":"9010d07c","id":10527,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"37810:13:27","nodeType":"FunctionDefinition","parameters":{"id":10514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10511,"mutability":"mutable","name":"role","nameLocation":"37832:4:27","nodeType":"VariableDeclaration","scope":10527,"src":"37824:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37824:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10513,"mutability":"mutable","name":"index","nameLocation":"37846:5:27","nodeType":"VariableDeclaration","scope":10527,"src":"37838:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10512,"name":"uint256","nodeType":"ElementaryTypeName","src":"37838:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37823:29:27"},"returnParameters":{"id":10517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10527,"src":"37874:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10515,"name":"address","nodeType":"ElementaryTypeName","src":"37874:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37873:9:27"},"scope":10703,"src":"37801:136:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10540,"nodeType":"Block","src":"38184:46:27","statements":[{"expression":{"expression":{"baseExpression":{"id":10535,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"38201:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10537,"indexExpression":{"id":10536,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10530,"src":"38208:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38201:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38214:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"38201:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10534,"id":10539,"nodeType":"Return","src":"38194:29:27"}]},"documentation":{"id":10528,"nodeType":"StructuredDocumentation","src":"37943:170:27","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":10541,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"38127:12:27","nodeType":"FunctionDefinition","parameters":{"id":10531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10530,"mutability":"mutable","name":"role","nameLocation":"38148:4:27","nodeType":"VariableDeclaration","scope":10541,"src":"38140:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38140:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38139:14:27"},"returnParameters":{"id":10534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10541,"src":"38175:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38175:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38174:9:27"},"scope":10703,"src":"38118:112:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10566,"nodeType":"Block","src":"38545:158:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":10551,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"38571:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10553,"indexExpression":{"id":10552,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10544,"src":"38578:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38571:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38584:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"38571:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10555,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"38595:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38595:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10550,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"38563:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38563:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74","id":10558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38610:49:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811","typeString":"literal_string \"AccessControl: sender must be an admin to grant\""},"value":"AccessControl: sender must be an admin to grant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811","typeString":"literal_string \"AccessControl: sender must be an admin to grant\""}],"id":10549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"38555:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38555:105:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10560,"nodeType":"ExpressionStatement","src":"38555:105:27"},{"expression":{"arguments":[{"id":10562,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10544,"src":"38682:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10563,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10546,"src":"38688:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10561,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"38671:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38671:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10565,"nodeType":"ExpressionStatement","src":"38671:25:27"}]},"documentation":{"id":10542,"nodeType":"StructuredDocumentation","src":"38236:239:27","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":10567,"implemented":true,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"38489:9:27","nodeType":"FunctionDefinition","parameters":{"id":10547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10544,"mutability":"mutable","name":"role","nameLocation":"38507:4:27","nodeType":"VariableDeclaration","scope":10567,"src":"38499:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38499:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10546,"mutability":"mutable","name":"account","nameLocation":"38521:7:27","nodeType":"VariableDeclaration","scope":10567,"src":"38513:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10545,"name":"address","nodeType":"ElementaryTypeName","src":"38513:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38498:31:27"},"returnParameters":{"id":10548,"nodeType":"ParameterList","parameters":[],"src":"38545:0:27"},"scope":10703,"src":"38480:223:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10592,"nodeType":"Block","src":"39003:160:27","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"baseExpression":{"id":10577,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"39029:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10579,"indexExpression":{"id":10578,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10570,"src":"39036:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39029:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39042:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"39029:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10581,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"39053:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39053:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10576,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"39021:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39021:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65","id":10584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39068:50:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3","typeString":"literal_string \"AccessControl: sender must be an admin to revoke\""},"value":"AccessControl: sender must be an admin to revoke"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3","typeString":"literal_string \"AccessControl: sender must be an admin to revoke\""}],"id":10575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"39013:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39013:106:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10586,"nodeType":"ExpressionStatement","src":"39013:106:27"},{"expression":{"arguments":[{"id":10588,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10570,"src":"39142:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10589,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10572,"src":"39148:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10587,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10702,"src":"39130:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39130:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10591,"nodeType":"ExpressionStatement","src":"39130:26:27"}]},"documentation":{"id":10568,"nodeType":"StructuredDocumentation","src":"38709:223:27","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":10593,"implemented":true,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"38946:10:27","nodeType":"FunctionDefinition","parameters":{"id":10573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10570,"mutability":"mutable","name":"role","nameLocation":"38965:4:27","nodeType":"VariableDeclaration","scope":10593,"src":"38957:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38957:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10572,"mutability":"mutable","name":"account","nameLocation":"38979:7:27","nodeType":"VariableDeclaration","scope":10593,"src":"38971:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10571,"name":"address","nodeType":"ElementaryTypeName","src":"38971:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38956:31:27"},"returnParameters":{"id":10574,"nodeType":"ParameterList","parameters":[],"src":"39003:0:27"},"scope":10703,"src":"38937:226:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10614,"nodeType":"Block","src":"39722:137:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10602,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10598,"src":"39740:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10603,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"39751:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39751:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"39740:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":10606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39765:49:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":10601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"39732:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39732:83:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10608,"nodeType":"ExpressionStatement","src":"39732:83:27"},{"expression":{"arguments":[{"id":10610,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10596,"src":"39838:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10611,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10598,"src":"39844:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10609,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10702,"src":"39826:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39826:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10613,"nodeType":"ExpressionStatement","src":"39826:26:27"}]},"documentation":{"id":10594,"nodeType":"StructuredDocumentation","src":"39169:480:27","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":10615,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"39663:12:27","nodeType":"FunctionDefinition","parameters":{"id":10599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10596,"mutability":"mutable","name":"role","nameLocation":"39684:4:27","nodeType":"VariableDeclaration","scope":10615,"src":"39676:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39676:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10598,"mutability":"mutable","name":"account","nameLocation":"39698:7:27","nodeType":"VariableDeclaration","scope":10615,"src":"39690:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10597,"name":"address","nodeType":"ElementaryTypeName","src":"39690:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39675:31:27"},"returnParameters":{"id":10600,"nodeType":"ParameterList","parameters":[],"src":"39722:0:27"},"scope":10703,"src":"39654:205:27","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10628,"nodeType":"Block","src":"40492:42:27","statements":[{"expression":{"arguments":[{"id":10624,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10618,"src":"40513:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10625,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"40519:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10623,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"40502:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40502:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10627,"nodeType":"ExpressionStatement","src":"40502:25:27"}]},"documentation":{"id":10616,"nodeType":"StructuredDocumentation","src":"39865:554:27","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ===="},"id":10629,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"40433:10:27","nodeType":"FunctionDefinition","parameters":{"id":10621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10618,"mutability":"mutable","name":"role","nameLocation":"40452:4:27","nodeType":"VariableDeclaration","scope":10629,"src":"40444:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40444:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10620,"mutability":"mutable","name":"account","nameLocation":"40466:7:27","nodeType":"VariableDeclaration","scope":10629,"src":"40458:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10619,"name":"address","nodeType":"ElementaryTypeName","src":"40458:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40443:31:27"},"returnParameters":{"id":10622,"nodeType":"ParameterList","parameters":[],"src":"40492:0:27"},"scope":10703,"src":"40424:110:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10653,"nodeType":"Block","src":"40732:123:27","statements":[{"eventCall":{"arguments":[{"id":10638,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"40764:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"baseExpression":{"id":10639,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"40770:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10641,"indexExpression":{"id":10640,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"40777:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40770:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40783:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"40770:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10643,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"40794:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10637,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10455,"src":"40747:16:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":10644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40747:57:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10645,"nodeType":"EmitStatement","src":"40742:62:27"},{"expression":{"id":10651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":10646,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"40814:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10648,"indexExpression":{"id":10647,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"40821:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40814:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"40827:9:27","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":10437,"src":"40814:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10650,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"40839:9:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40814:34:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10652,"nodeType":"ExpressionStatement","src":"40814:34:27"}]},"documentation":{"id":10630,"nodeType":"StructuredDocumentation","src":"40540:114:27","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":10654,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"40668:13:27","nodeType":"FunctionDefinition","parameters":{"id":10635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10632,"mutability":"mutable","name":"role","nameLocation":"40690:4:27","nodeType":"VariableDeclaration","scope":10654,"src":"40682:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40682:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10634,"mutability":"mutable","name":"adminRole","nameLocation":"40704:9:27","nodeType":"VariableDeclaration","scope":10654,"src":"40696:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40696:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40681:33:27"},"returnParameters":{"id":10636,"nodeType":"ParameterList","parameters":[],"src":"40732:0:27"},"scope":10703,"src":"40659:196:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10677,"nodeType":"Block","src":"40920:125:27","statements":[{"condition":{"arguments":[{"id":10666,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10658,"src":"40959:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":10661,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"40934:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10663,"indexExpression":{"id":10662,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10656,"src":"40941:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40934:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40947:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"40934:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40955:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":10221,"src":"40934:24:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$10194_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":10667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40934:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10676,"nodeType":"IfStatement","src":"40930:109:27","trueBody":{"id":10675,"nodeType":"Block","src":"40969:70:27","statements":[{"eventCall":{"arguments":[{"id":10669,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10656,"src":"41000:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10670,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10658,"src":"41006:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10671,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"41015:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41015:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10668,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10464,"src":"40988:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":10673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40988:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10674,"nodeType":"EmitStatement","src":"40983:45:27"}]}}]},"id":10678,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"40870:10:27","nodeType":"FunctionDefinition","parameters":{"id":10659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10656,"mutability":"mutable","name":"role","nameLocation":"40889:4:27","nodeType":"VariableDeclaration","scope":10678,"src":"40881:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40881:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10658,"mutability":"mutable","name":"account","nameLocation":"40903:7:27","nodeType":"VariableDeclaration","scope":10678,"src":"40895:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10657,"name":"address","nodeType":"ElementaryTypeName","src":"40895:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40880:31:27"},"returnParameters":{"id":10660,"nodeType":"ParameterList","parameters":[],"src":"40920:0:27"},"scope":10703,"src":"40861:184:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10701,"nodeType":"Block","src":"41111:128:27","statements":[{"condition":{"arguments":[{"id":10690,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"41153:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":10685,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10443,"src":"41125:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$10438_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":10687,"indexExpression":{"id":10686,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"41132:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41125:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$10438_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":10688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41138:7:27","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":10435,"src":"41125:20:27","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$10194_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":10689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41146:6:27","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":10248,"src":"41125:27:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$10194_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$10194_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":10691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41125:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10700,"nodeType":"IfStatement","src":"41121:112:27","trueBody":{"id":10699,"nodeType":"Block","src":"41163:70:27","statements":[{"eventCall":{"arguments":[{"id":10693,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"41194:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10694,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"41200:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10695,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"41209:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41209:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10692,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"41182:11:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":10697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41182:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10698,"nodeType":"EmitStatement","src":"41177:45:27"}]}}]},"id":10702,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"41060:11:27","nodeType":"FunctionDefinition","parameters":{"id":10683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10680,"mutability":"mutable","name":"role","nameLocation":"41080:4:27","nodeType":"VariableDeclaration","scope":10702,"src":"41072:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41072:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10682,"mutability":"mutable","name":"account","nameLocation":"41094:7:27","nodeType":"VariableDeclaration","scope":10702,"src":"41086:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10681,"name":"address","nodeType":"ElementaryTypeName","src":"41086:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41071:31:27"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[],"src":"41111:0:27"},"scope":10703,"src":"41051:188:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":11433,"src":"35291:5950:27","usedErrors":[],"usedEvents":[10455,10464,10473]},{"id":10704,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"41293:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":10705,"name":"AccessControl","nameLocations":["41351:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":10703,"src":"41351:13:27"},"id":10706,"nodeType":"InheritanceSpecifier","src":"41351:13:27"}],"canonicalName":"AccessControlMixin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10741,"linearizedBaseContracts":[10741,10703,8991],"name":"AccessControlMixin","nameLocation":"41329:18:27","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10708,"mutability":"mutable","name":"_revertMsg","nameLocation":"41386:10:27","nodeType":"VariableDeclaration","scope":10741,"src":"41371:25:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":10707,"name":"string","nodeType":"ElementaryTypeName","src":"41371:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":10724,"nodeType":"Block","src":"41463:96:27","statements":[{"expression":{"id":10722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10713,"name":"_revertMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"41473:10:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":10718,"name":"contractId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"41510:10:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3a20494e53554646494349454e545f5045524d495353494f4e53","id":10719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41522:28:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7","typeString":"literal_string \": INSUFFICIENT_PERMISSIONS\""},"value":": INSUFFICIENT_PERMISSIONS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7","typeString":"literal_string \": INSUFFICIENT_PERMISSIONS\""}],"expression":{"id":10716,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41493:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41497:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"41493:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41493:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41486:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":10714,"name":"string","nodeType":"ElementaryTypeName","src":"41486:6:27","typeDescriptions":{}}},"id":10721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41486:66:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41473:79:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":10723,"nodeType":"ExpressionStatement","src":"41473:79:27"}]},"id":10725,"implemented":true,"kind":"function","modifiers":[],"name":"_setupContractId","nameLocation":"41411:16:27","nodeType":"FunctionDefinition","parameters":{"id":10711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10710,"mutability":"mutable","name":"contractId","nameLocation":"41442:10:27","nodeType":"VariableDeclaration","scope":10725,"src":"41428:24:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10709,"name":"string","nodeType":"ElementaryTypeName","src":"41428:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41427:26:27"},"returnParameters":{"id":10712,"nodeType":"ParameterList","parameters":[],"src":"41463:0:27"},"scope":10741,"src":"41402:157:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10739,"nodeType":"Block","src":"41593:110:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":10731,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10727,"src":"41632:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10732,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"41638:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":10733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41638:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":10730,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"41624:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":10734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41624:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10735,"name":"_revertMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"41665:10:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":10729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"41603:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41603:82:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10737,"nodeType":"ExpressionStatement","src":"41603:82:27"},{"id":10738,"nodeType":"PlaceholderStatement","src":"41695:1:27"}]},"id":10740,"name":"only","nameLocation":"41574:4:27","nodeType":"ModifierDefinition","parameters":{"id":10728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10727,"mutability":"mutable","name":"role","nameLocation":"41587:4:27","nodeType":"VariableDeclaration","scope":10740,"src":"41579:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41579:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41578:14:27"},"src":"41565:138:27","virtual":false,"visibility":"internal"}],"scope":11433,"src":"41320:385:27","usedErrors":[],"usedEvents":[10455,10464,10473]},{"id":10742,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"41760:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"IChildToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":10750,"linearizedBaseContracts":[10750],"name":"IChildToken","nameLocation":"41796:11:27","nodeType":"ContractDefinition","nodes":[{"functionSelector":"cf2c52cb","id":10749,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"41823:7:27","nodeType":"FunctionDefinition","parameters":{"id":10747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10744,"mutability":"mutable","name":"user","nameLocation":"41839:4:27","nodeType":"VariableDeclaration","scope":10749,"src":"41831:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10743,"name":"address","nodeType":"ElementaryTypeName","src":"41831:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10746,"mutability":"mutable","name":"depositData","nameLocation":"41860:11:27","nodeType":"VariableDeclaration","scope":10749,"src":"41845:26:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10745,"name":"bytes","nodeType":"ElementaryTypeName","src":"41845:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"41830:42:27"},"returnParameters":{"id":10748,"nodeType":"ParameterList","parameters":[],"src":"41881:0:27"},"scope":10750,"src":"41814:68:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11433,"src":"41786:98:27","usedErrors":[],"usedEvents":[]},{"id":10751,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"41931:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10769,"linearizedBaseContracts":[10769],"name":"Initializable","nameLocation":"41966:13:27","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10754,"mutability":"mutable","name":"inited","nameLocation":"41991:6:27","nodeType":"VariableDeclaration","scope":10769,"src":"41986:19:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10752,"name":"bool","nodeType":"ElementaryTypeName","src":"41986:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":10753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42000:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"body":{"id":10767,"nodeType":"Block","src":"42035:85:27","statements":[{"expression":{"arguments":[{"id":10758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42053:7:27","subExpression":{"id":10757,"name":"inited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"42054:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c726561647920696e69746564","id":10759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42062:16:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247","typeString":"literal_string \"already inited\""},"value":"already inited"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247","typeString":"literal_string \"already inited\""}],"id":10756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"42045:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42045:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10761,"nodeType":"ExpressionStatement","src":"42045:34:27"},{"id":10762,"nodeType":"PlaceholderStatement","src":"42089:1:27"},{"expression":{"id":10765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10763,"name":"inited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"42100:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":10764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42109:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"42100:13:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10766,"nodeType":"ExpressionStatement","src":"42100:13:27"}]},"id":10768,"name":"initializer","nameLocation":"42021:11:27","nodeType":"ModifierDefinition","parameters":{"id":10755,"nodeType":"ParameterList","parameters":[],"src":"42032:2:27"},"src":"42012:108:27","virtual":false,"visibility":"internal"}],"scope":11433,"src":"41957:165:27","usedErrors":[],"usedEvents":[]},{"id":10770,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"42166:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":10771,"name":"Initializable","nameLocations":["42216:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":10769,"src":"42216:13:27"},"id":10772,"nodeType":"InheritanceSpecifier","src":"42216:13:27"}],"canonicalName":"EIP712Base","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10884,"linearizedBaseContracts":[10884,10769],"name":"EIP712Base","nameLocation":"42202:10:27","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EIP712Base.EIP712Domain","id":10781,"members":[{"constant":false,"id":10774,"mutability":"mutable","name":"name","nameLocation":"42273:4:27","nodeType":"VariableDeclaration","scope":10781,"src":"42266:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":10773,"name":"string","nodeType":"ElementaryTypeName","src":"42266:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10776,"mutability":"mutable","name":"version","nameLocation":"42294:7:27","nodeType":"VariableDeclaration","scope":10781,"src":"42287:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":10775,"name":"string","nodeType":"ElementaryTypeName","src":"42287:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10778,"mutability":"mutable","name":"verifyingContract","nameLocation":"42319:17:27","nodeType":"VariableDeclaration","scope":10781,"src":"42311:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10777,"name":"address","nodeType":"ElementaryTypeName","src":"42311:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10780,"mutability":"mutable","name":"salt","nameLocation":"42354:4:27","nodeType":"VariableDeclaration","scope":10781,"src":"42346:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42346:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"EIP712Domain","nameLocation":"42243:12:27","nodeType":"StructDefinition","scope":10884,"src":"42236:129:27","visibility":"public"},{"constant":true,"id":10789,"mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"42397:22:27","nodeType":"VariableDeclaration","scope":10884,"src":"42371:186:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42371:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429","id":10786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42460:81:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7","typeString":"literal_string \"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\""},"value":"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7","typeString":"literal_string \"EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\""}],"id":10785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42441:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10784,"name":"bytes","nodeType":"ElementaryTypeName","src":"42441:5:27","typeDescriptions":{}}},"id":10787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42441:110:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10783,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42422:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42422:135:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10791,"mutability":"mutable","name":"domainSeperator","nameLocation":"42580:15:27","nodeType":"VariableDeclaration","scope":10884,"src":"42563:32:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42563:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":10805,"nodeType":"Block","src":"42925:51:27","statements":[{"expression":{"arguments":[{"id":10801,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10793,"src":"42955:4:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10802,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10795,"src":"42961:7:27","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":10800,"name":"_setDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10844,"src":"42935:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":10803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42935:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10804,"nodeType":"ExpressionStatement","src":"42935:34:27"}]},"id":10806,"implemented":true,"kind":"function","modifiers":[{"id":10798,"kind":"modifierInvocation","modifierName":{"id":10797,"name":"initializer","nameLocations":["42909:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":10768,"src":"42909:11:27"},"nodeType":"ModifierInvocation","src":"42909:11:27"}],"name":"_initializeEIP712","nameLocation":"42801:17:27","nodeType":"FunctionDefinition","parameters":{"id":10796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10793,"mutability":"mutable","name":"name","nameLocation":"42842:4:27","nodeType":"VariableDeclaration","scope":10806,"src":"42828:18:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10792,"name":"string","nodeType":"ElementaryTypeName","src":"42828:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10795,"mutability":"mutable","name":"version","nameLocation":"42870:7:27","nodeType":"VariableDeclaration","scope":10806,"src":"42856:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10794,"name":"string","nodeType":"ElementaryTypeName","src":"42856:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42818:65:27"},"returnParameters":{"id":10799,"nodeType":"ParameterList","parameters":[],"src":"42925:0:27"},"scope":10884,"src":"42792:184:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10843,"nodeType":"Block","src":"43063:285:27","statements":[{"expression":{"id":10841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10813,"name":"domainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"43073:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":10817,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10789,"src":"43142:22:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":10821,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10808,"src":"43198:4:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43192:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10819,"name":"bytes","nodeType":"ElementaryTypeName","src":"43192:5:27","typeDescriptions":{}}},"id":10822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43192:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10818,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43182:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43182:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":10827,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10810,"src":"43238:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43232:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10825,"name":"bytes","nodeType":"ElementaryTypeName","src":"43232:5:27","typeDescriptions":{}}},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43232:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10824,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43222:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43222:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":10832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"43273:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712Base_$10884","typeString":"contract EIP712Base"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712Base_$10884","typeString":"contract EIP712Base"}],"id":10831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43265:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10830,"name":"address","nodeType":"ElementaryTypeName","src":"43265:7:27","typeDescriptions":{}}},"id":10833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43265:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":10836,"name":"getChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10864,"src":"43304:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":10837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43304:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"43296:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43296:7:27","typeDescriptions":{}}},"id":10838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43296:21:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43114:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43118:6:27","memberName":"encode","nodeType":"MemberAccess","src":"43114:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43114:217:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10814,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43091:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43091:250:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"43073:268:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10842,"nodeType":"ExpressionStatement","src":"43073:268:27"}]},"id":10844,"implemented":true,"kind":"function","modifiers":[],"name":"_setDomainSeperator","nameLocation":"42991:19:27","nodeType":"FunctionDefinition","parameters":{"id":10811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10808,"mutability":"mutable","name":"name","nameLocation":"43025:4:27","nodeType":"VariableDeclaration","scope":10844,"src":"43011:18:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10807,"name":"string","nodeType":"ElementaryTypeName","src":"43011:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10810,"mutability":"mutable","name":"version","nameLocation":"43045:7:27","nodeType":"VariableDeclaration","scope":10844,"src":"43031:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10809,"name":"string","nodeType":"ElementaryTypeName","src":"43031:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43010:43:27"},"returnParameters":{"id":10812,"nodeType":"ParameterList","parameters":[],"src":"43063:0:27"},"scope":10884,"src":"42982:366:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10851,"nodeType":"Block","src":"43414:39:27","statements":[{"expression":{"id":10849,"name":"domainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"43431:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10848,"id":10850,"nodeType":"Return","src":"43424:22:27"}]},"functionSelector":"20379ee5","id":10852,"implemented":true,"kind":"function","modifiers":[],"name":"getDomainSeperator","nameLocation":"43363:18:27","nodeType":"FunctionDefinition","parameters":{"id":10845,"nodeType":"ParameterList","parameters":[],"src":"43381:2:27"},"returnParameters":{"id":10848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10852,"src":"43405:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43405:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43404:9:27"},"scope":10884,"src":"43354:99:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10863,"nodeType":"Block","src":"43511:103:27","statements":[{"assignments":[10858],"declarations":[{"constant":false,"id":10858,"mutability":"mutable","name":"id","nameLocation":"43529:2:27","nodeType":"VariableDeclaration","scope":10863,"src":"43521:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10857,"name":"uint256","nodeType":"ElementaryTypeName","src":"43521:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10859,"nodeType":"VariableDeclarationStatement","src":"43521:10:27"},{"AST":{"nodeType":"YulBlock","src":"43550:39:27","statements":[{"nodeType":"YulAssignment","src":"43564:15:27","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"43570:7:27"},"nodeType":"YulFunctionCall","src":"43570:9:27"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"43564:2:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10858,"isOffset":false,"isSlot":false,"src":"43564:2:27","valueSize":1}],"id":10860,"nodeType":"InlineAssembly","src":"43541:48:27"},{"expression":{"id":10861,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"43605:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10856,"id":10862,"nodeType":"Return","src":"43598:9:27"}]},"functionSelector":"3408e470","id":10864,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"43468:10:27","nodeType":"FunctionDefinition","parameters":{"id":10853,"nodeType":"ParameterList","parameters":[],"src":"43478:2:27"},"returnParameters":{"id":10856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10864,"src":"43502:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10854,"name":"uint256","nodeType":"ElementaryTypeName","src":"43502:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43501:9:27"},"scope":10884,"src":"43459:155:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":10882,"nodeType":"Block","src":"44083:140:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":10875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44156:10:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":10876,"name":"getDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"44168:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":10877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44168:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10878,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10867,"src":"44190:11:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44139:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44143:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"44139:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44139:63:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10872,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44112:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44112:104:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10871,"id":10881,"nodeType":"Return","src":"44093:123:27"}]},"documentation":{"id":10865,"nodeType":"StructuredDocumentation","src":"43620:349:27","text":" Accept message hash and returns hash message in EIP712 compatible form\n So that it can be used to recover signer from signature signed using EIP712 formatted data\n https://eips.ethereum.org/EIPS/eip-712\n \"\\\\x19\" makes the encoding deterministic\n \"\\\\x01\" is the version byte to make it compatible to EIP-191"},"id":10883,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedMessageHash","nameLocation":"43983:18:27","nodeType":"FunctionDefinition","parameters":{"id":10868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10867,"mutability":"mutable","name":"messageHash","nameLocation":"44010:11:27","nodeType":"VariableDeclaration","scope":10883,"src":"44002:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44002:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"44001:21:27"},"returnParameters":{"id":10871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10883,"src":"44070:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44070:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"44069:9:27"},"scope":10884,"src":"43974:249:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"42193:2032:27","usedErrors":[],"usedEvents":[]},{"id":10885,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"44280:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":10886,"name":"EIP712Base","nameLocations":["44342:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":10884,"src":"44342:10:27"},"id":10887,"nodeType":"InheritanceSpecifier","src":"44342:10:27"}],"canonicalName":"NativeMetaTransaction","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11078,"linearizedBaseContracts":[11078,10884,10769],"name":"NativeMetaTransaction","nameLocation":"44317:21:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10890,"libraryName":{"id":10888,"name":"SafeMath","nameLocations":["44365:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":9263,"src":"44365:8:27"},"nodeType":"UsingForDirective","src":"44359:27:27","typeName":{"id":10889,"name":"uint256","nodeType":"ElementaryTypeName","src":"44378:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":10898,"mutability":"constant","name":"META_TRANSACTION_TYPEHASH","nameLocation":"44416:25:27","nodeType":"VariableDeclaration","scope":11078,"src":"44391:176:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44391:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529","id":10895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44482:69:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_23d10def3caacba2e4042e0c75d44a42d2558aabcf5ce951d0642a8032e1e653","typeString":"literal_string \"MetaTransaction(uint256 nonce,address from,bytes functionSignature)\""},"value":"MetaTransaction(uint256 nonce,address from,bytes functionSignature)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23d10def3caacba2e4042e0c75d44a42d2558aabcf5ce951d0642a8032e1e653","typeString":"literal_string \"MetaTransaction(uint256 nonce,address from,bytes functionSignature)\""}],"id":10894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"44463:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":10893,"name":"bytes","nodeType":"ElementaryTypeName","src":"44463:5:27","typeDescriptions":{}}},"id":10896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44463:98:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10892,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44444:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44444:123:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"anonymous":false,"eventSelector":"5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b","id":10906,"name":"MetaTransactionExecuted","nameLocation":"44579:23:27","nodeType":"EventDefinition","parameters":{"id":10905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10900,"indexed":false,"mutability":"mutable","name":"userAddress","nameLocation":"44620:11:27","nodeType":"VariableDeclaration","scope":10906,"src":"44612:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10899,"name":"address","nodeType":"ElementaryTypeName","src":"44612:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10902,"indexed":false,"mutability":"mutable","name":"relayerAddress","nameLocation":"44657:14:27","nodeType":"VariableDeclaration","scope":10906,"src":"44641:30:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":10901,"name":"address","nodeType":"ElementaryTypeName","src":"44641:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":10904,"indexed":false,"mutability":"mutable","name":"functionSignature","nameLocation":"44687:17:27","nodeType":"VariableDeclaration","scope":10906,"src":"44681:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10903,"name":"bytes","nodeType":"ElementaryTypeName","src":"44681:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"44602:108:27"},"src":"44573:138:27"},{"constant":false,"id":10910,"mutability":"mutable","name":"nonces","nameLocation":"44744:6:27","nodeType":"VariableDeclaration","scope":11078,"src":"44716:34:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":10909,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":10907,"name":"address","nodeType":"ElementaryTypeName","src":"44724:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"44716:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10908,"name":"uint256","nodeType":"ElementaryTypeName","src":"44735:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"canonicalName":"NativeMetaTransaction.MetaTransaction","id":10917,"members":[{"constant":false,"id":10912,"mutability":"mutable","name":"nonce","nameLocation":"45032:5:27","nodeType":"VariableDeclaration","scope":10917,"src":"45024:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10911,"name":"uint256","nodeType":"ElementaryTypeName","src":"45024:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10914,"mutability":"mutable","name":"from","nameLocation":"45055:4:27","nodeType":"VariableDeclaration","scope":10917,"src":"45047:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10913,"name":"address","nodeType":"ElementaryTypeName","src":"45047:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10916,"mutability":"mutable","name":"functionSignature","nameLocation":"45075:17:27","nodeType":"VariableDeclaration","scope":10917,"src":"45069:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":10915,"name":"bytes","nodeType":"ElementaryTypeName","src":"45069:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"MetaTransaction","nameLocation":"44998:15:27","nodeType":"StructDefinition","scope":11078,"src":"44991:108:27","visibility":"public"},{"body":{"id":10998,"nodeType":"Block","src":"45314:908:27","statements":[{"assignments":[10934],"declarations":[{"constant":false,"id":10934,"mutability":"mutable","name":"metaTx","nameLocation":"45347:6:27","nodeType":"VariableDeclaration","scope":10998,"src":"45324:29:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"},"typeName":{"id":10933,"nodeType":"UserDefinedTypeName","pathNode":{"id":10932,"name":"MetaTransaction","nameLocations":["45324:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":10917,"src":"45324:15:27"},"referencedDeclaration":10917,"src":"45324:15:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_storage_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"}},"visibility":"internal"}],"id":10942,"initialValue":{"arguments":[{"baseExpression":{"id":10936,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"45393:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10938,"indexExpression":{"id":10937,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45400:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45393:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10939,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45432:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10940,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"45476:17:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10935,"name":"MetaTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10917,"src":"45356:15:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_MetaTransaction_$10917_storage_ptr_$","typeString":"type(struct NativeMetaTransaction.MetaTransaction storage pointer)"}},"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["45386:5:27","45426:4:27","45457:17:27"],"names":["nonce","from","functionSignature"],"nodeType":"FunctionCall","src":"45356:148:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"nodeType":"VariableDeclarationStatement","src":"45324:180:27"},{"expression":{"arguments":[{"arguments":[{"id":10945,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45543:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10946,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10934,"src":"45556:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},{"id":10947,"name":"sigR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10923,"src":"45564:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10948,"name":"sigS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10925,"src":"45570:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10949,"name":"sigV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10927,"src":"45576:4:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":10944,"name":"verify","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11077,"src":"45536:6:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_struct$_MetaTransaction_$10917_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (address,struct NativeMetaTransaction.MetaTransaction memory,bytes32,bytes32,uint8) view returns (bool)"}},"id":10950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45536:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d61746368","id":10951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45595:35:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda","typeString":"literal_string \"Signer and signature do not match\""},"value":"Signer and signature do not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda","typeString":"literal_string \"Signer and signature do not match\""}],"id":10943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"45515:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45515:125:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10953,"nodeType":"ExpressionStatement","src":"45515:125:27"},{"expression":{"id":10963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10954,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"45704:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10956,"indexExpression":{"id":10955,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45711:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"45704:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":10961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45750:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"baseExpression":{"id":10957,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"45726:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10959,"indexExpression":{"id":10958,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45733:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45726:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45746:3:27","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":9096,"src":"45726:23:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45726:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45704:48:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10964,"nodeType":"ExpressionStatement","src":"45704:48:27"},{"eventCall":{"arguments":[{"id":10966,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"45805:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":10969,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"45838:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45842:6:27","memberName":"sender","nodeType":"MemberAccess","src":"45838:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45830:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":10967,"name":"address","nodeType":"ElementaryTypeName","src":"45830:8:27","stateMutability":"payable","typeDescriptions":{}}},"id":10971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45830:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":10972,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"45863:17:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10965,"name":"MetaTransactionExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10906,"src":"45768:23:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_payable_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address payable,bytes memory)"}},"id":10973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45768:122:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10974,"nodeType":"EmitStatement","src":"45763:127:27"},{"assignments":[10976,10978],"declarations":[{"constant":false,"id":10976,"mutability":"mutable","name":"success","nameLocation":"46003:7:27","nodeType":"VariableDeclaration","scope":10998,"src":"45998:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10975,"name":"bool","nodeType":"ElementaryTypeName","src":"45998:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10978,"mutability":"mutable","name":"returnData","nameLocation":"46025:10:27","nodeType":"VariableDeclaration","scope":10998,"src":"46012:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10977,"name":"bytes","nodeType":"ElementaryTypeName","src":"46012:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10990,"initialValue":{"arguments":[{"arguments":[{"id":10986,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"46088:17:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10987,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10919,"src":"46107:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46071:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46075:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"46071:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46071:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":10981,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"46047:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_NativeMetaTransaction_$11078","typeString":"contract NativeMetaTransaction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NativeMetaTransaction_$11078","typeString":"contract NativeMetaTransaction"}],"id":10980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"46039:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10979,"name":"address","nodeType":"ElementaryTypeName","src":"46039:7:27","typeDescriptions":{}}},"id":10982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46039:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46053:4:27","memberName":"call","nodeType":"MemberAccess","src":"46039:18:27","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":10989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46039:90:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"45997:132:27"},{"expression":{"arguments":[{"id":10992,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10976,"src":"46147:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","id":10993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46156:30:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3","typeString":"literal_string \"Function call not successful\""},"value":"Function call not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3","typeString":"literal_string \"Function call not successful\""}],"id":10991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"46139:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46139:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10995,"nodeType":"ExpressionStatement","src":"46139:48:27"},{"expression":{"id":10996,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10978,"src":"46205:10:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10931,"id":10997,"nodeType":"Return","src":"46198:17:27"}]},"functionSelector":"0c53c51c","id":10999,"implemented":true,"kind":"function","modifiers":[],"name":"executeMetaTransaction","nameLocation":"45114:22:27","nodeType":"FunctionDefinition","parameters":{"id":10928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10919,"mutability":"mutable","name":"userAddress","nameLocation":"45154:11:27","nodeType":"VariableDeclaration","scope":10999,"src":"45146:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10918,"name":"address","nodeType":"ElementaryTypeName","src":"45146:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10921,"mutability":"mutable","name":"functionSignature","nameLocation":"45188:17:27","nodeType":"VariableDeclaration","scope":10999,"src":"45175:30:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10920,"name":"bytes","nodeType":"ElementaryTypeName","src":"45175:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10923,"mutability":"mutable","name":"sigR","nameLocation":"45223:4:27","nodeType":"VariableDeclaration","scope":10999,"src":"45215:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45215:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10925,"mutability":"mutable","name":"sigS","nameLocation":"45245:4:27","nodeType":"VariableDeclaration","scope":10999,"src":"45237:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45237:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10927,"mutability":"mutable","name":"sigV","nameLocation":"45265:4:27","nodeType":"VariableDeclaration","scope":10999,"src":"45259:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10926,"name":"uint8","nodeType":"ElementaryTypeName","src":"45259:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"45136:139:27"},"returnParameters":{"id":10931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10999,"src":"45300:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10929,"name":"bytes","nodeType":"ElementaryTypeName","src":"45300:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"45299:14:27"},"scope":11078,"src":"45105:1117:27","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":11022,"nodeType":"Block","src":"46348:276:27","statements":[{"expression":{"arguments":[{"arguments":[{"id":11010,"name":"META_TRANSACTION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10898,"src":"46436:25:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":11011,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"46483:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"id":11012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46490:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":10912,"src":"46483:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":11013,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"46517:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"id":11014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46524:4:27","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":10914,"src":"46517:11:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":11016,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"46560:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}},"id":11017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46567:17:27","memberName":"functionSignature","nodeType":"MemberAccess","referencedDeclaration":10916,"src":"46560:24:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11015,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"46550:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46550:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46404:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46408:6:27","memberName":"encode","nodeType":"MemberAccess","src":"46404:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46404:199:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11007,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"46377:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46377:240:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11006,"id":11021,"nodeType":"Return","src":"46358:259:27"}]},"id":11023,"implemented":true,"kind":"function","modifiers":[],"name":"hashMetaTransaction","nameLocation":"46237:19:27","nodeType":"FunctionDefinition","parameters":{"id":11003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11002,"mutability":"mutable","name":"metaTx","nameLocation":"46280:6:27","nodeType":"VariableDeclaration","scope":11023,"src":"46257:29:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"},"typeName":{"id":11001,"nodeType":"UserDefinedTypeName","pathNode":{"id":11000,"name":"MetaTransaction","nameLocations":["46257:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":10917,"src":"46257:15:27"},"referencedDeclaration":10917,"src":"46257:15:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_storage_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"}},"visibility":"internal"}],"src":"46256:31:27"},"returnParameters":{"id":11006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11023,"src":"46335:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46335:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46334:9:27"},"scope":11078,"src":"46228:396:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11036,"nodeType":"Block","src":"46698:37:27","statements":[{"expression":{"id":11034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11030,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11028,"src":"46708:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":11031,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"46716:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11033,"indexExpression":{"id":11032,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"46723:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46716:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46708:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11035,"nodeType":"ExpressionStatement","src":"46708:20:27"}]},"functionSelector":"2d0335ab","id":11037,"implemented":true,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"46639:8:27","nodeType":"FunctionDefinition","parameters":{"id":11026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11025,"mutability":"mutable","name":"user","nameLocation":"46656:4:27","nodeType":"VariableDeclaration","scope":11037,"src":"46648:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11024,"name":"address","nodeType":"ElementaryTypeName","src":"46648:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46647:14:27"},"returnParameters":{"id":11029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11028,"mutability":"mutable","name":"nonce","nameLocation":"46691:5:27","nodeType":"VariableDeclaration","scope":11037,"src":"46683:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11027,"name":"uint256","nodeType":"ElementaryTypeName","src":"46683:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46682:15:27"},"scope":11078,"src":"46630:105:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":11076,"nodeType":"Block","src":"46919:292:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11054,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"46937:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46955:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"46947:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11055,"name":"address","nodeType":"ElementaryTypeName","src":"46947:7:27","typeDescriptions":{}}},"id":11058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46947:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"46937:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5349474e4552","id":11060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46959:39:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273","typeString":"literal_string \"NativeMetaTransaction: INVALID_SIGNER\""},"value":"NativeMetaTransaction: INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273","typeString":"literal_string \"NativeMetaTransaction: INVALID_SIGNER\""}],"id":11053,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"46929:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46929:70:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11062,"nodeType":"ExpressionStatement","src":"46929:70:27"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11063,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"47028:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":11067,"name":"metaTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11042,"src":"47116:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction memory"}],"id":11066,"name":"hashMetaTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"47096:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_MetaTransaction_$10917_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct NativeMetaTransaction.MetaTransaction memory) pure returns (bytes32)"}},"id":11068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47096:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11065,"name":"toTypedMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"47077:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":11069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47077:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11070,"name":"sigV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11048,"src":"47142:4:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11071,"name":"sigR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11044,"src":"47164:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11072,"name":"sigS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"47186:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11064,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"47050:9:27","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":11073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47050:154:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47028:176:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11052,"id":11075,"nodeType":"Return","src":"47009:195:27"}]},"id":11077,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"46750:6:27","nodeType":"FunctionDefinition","parameters":{"id":11049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11039,"mutability":"mutable","name":"signer","nameLocation":"46774:6:27","nodeType":"VariableDeclaration","scope":11077,"src":"46766:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11038,"name":"address","nodeType":"ElementaryTypeName","src":"46766:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11042,"mutability":"mutable","name":"metaTx","nameLocation":"46813:6:27","nodeType":"VariableDeclaration","scope":11077,"src":"46790:29:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_memory_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"},"typeName":{"id":11041,"nodeType":"UserDefinedTypeName","pathNode":{"id":11040,"name":"MetaTransaction","nameLocations":["46790:15:27"],"nodeType":"IdentifierPath","referencedDeclaration":10917,"src":"46790:15:27"},"referencedDeclaration":10917,"src":"46790:15:27","typeDescriptions":{"typeIdentifier":"t_struct$_MetaTransaction_$10917_storage_ptr","typeString":"struct NativeMetaTransaction.MetaTransaction"}},"visibility":"internal"},{"constant":false,"id":11044,"mutability":"mutable","name":"sigR","nameLocation":"46837:4:27","nodeType":"VariableDeclaration","scope":11077,"src":"46829:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46829:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11046,"mutability":"mutable","name":"sigS","nameLocation":"46859:4:27","nodeType":"VariableDeclaration","scope":11077,"src":"46851:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46851:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11048,"mutability":"mutable","name":"sigV","nameLocation":"46879:4:27","nodeType":"VariableDeclaration","scope":11077,"src":"46873:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11047,"name":"uint8","nodeType":"ElementaryTypeName","src":"46873:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"46756:133:27"},"returnParameters":{"id":11052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11077,"src":"46913:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11050,"name":"bool","nodeType":"ElementaryTypeName","src":"46913:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46912:6:27"},"scope":11078,"src":"46741:470:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"44308:2905:27","usedErrors":[],"usedEvents":[10906]},{"id":11079,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"47254:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"ChainConstants","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11095,"linearizedBaseContracts":[11095],"name":"ChainConstants","nameLocation":"47289:14:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"0f7e5970","id":11082,"mutability":"constant","name":"ERC712_VERSION","nameLocation":"47333:14:27","nodeType":"VariableDeclaration","scope":11095,"src":"47310:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11080,"name":"string","nodeType":"ElementaryTypeName","src":"47310:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":11081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47350:3:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"public"},{"constant":true,"functionSelector":"8acfcaf7","id":11085,"mutability":"constant","name":"ROOT_CHAIN_ID","nameLocation":"47384:13:27","nodeType":"VariableDeclaration","scope":11095,"src":"47360:41:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11083,"name":"uint256","nodeType":"ElementaryTypeName","src":"47360:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":11084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47400:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":true,"functionSelector":"0dd7531a","id":11088,"mutability":"constant","name":"ROOT_CHAIN_ID_BYTES","nameLocation":"47429:19:27","nodeType":"VariableDeclaration","scope":11095,"src":"47407:51:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11086,"name":"bytes","nodeType":"ElementaryTypeName","src":"47407:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"hexValue":"01","id":11087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"47451:7:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2","typeString":"literal_string hex\"01\""},"value":"\u0001"},"visibility":"public"},{"constant":true,"functionSelector":"626381a0","id":11091,"mutability":"constant","name":"CHILD_CHAIN_ID","nameLocation":"47489:14:27","nodeType":"VariableDeclaration","scope":11095,"src":"47465:44:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11089,"name":"uint256","nodeType":"ElementaryTypeName","src":"47465:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313337","id":11090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47506:3:27","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"visibility":"public"},{"constant":true,"functionSelector":"0b54817c","id":11094,"mutability":"constant","name":"CHILD_CHAIN_ID_BYTES","nameLocation":"47537:20:27","nodeType":"VariableDeclaration","scope":11095,"src":"47515:52:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11092,"name":"bytes","nodeType":"ElementaryTypeName","src":"47515:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"hexValue":"89","id":11093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"47560:7:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_75dd4ce35898634c43d8e291c5edc041d288f0c0a531e92d5528804add589d1f","typeString":"literal_string hex\"89\""}},"visibility":"public"}],"scope":11433,"src":"47280:290:27","usedErrors":[],"usedEvents":[]},{"id":11096,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"47616:24:27"},{"abstract":true,"baseContracts":[],"canonicalName":"ContextMixin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11135,"linearizedBaseContracts":[11135],"name":"ContextMixin","nameLocation":"47660:12:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":11133,"nodeType":"Block","src":"47775:535:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11101,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47789:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47793:6:27","memberName":"sender","nodeType":"MemberAccess","src":"47789:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":11105,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"47811:4:27","typeDescriptions":{"typeIdentifier":"t_contract$_ContextMixin_$11135","typeString":"contract ContextMixin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContextMixin_$11135","typeString":"contract ContextMixin"}],"id":11104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"47803:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11103,"name":"address","nodeType":"ElementaryTypeName","src":"47803:7:27","typeDescriptions":{}}},"id":11106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47803:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47789:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11129,"nodeType":"Block","src":"48228:53:27","statements":[{"expression":{"id":11127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11121,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11099,"src":"48242:6:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":11124,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"48259:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48263:6:27","memberName":"sender","nodeType":"MemberAccess","src":"48259:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"48251:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":11122,"name":"address","nodeType":"ElementaryTypeName","src":"48251:8:27","stateMutability":"payable","typeDescriptions":{}}},"id":11126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48251:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"48242:28:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":11128,"nodeType":"ExpressionStatement","src":"48242:28:27"}]},"id":11130,"nodeType":"IfStatement","src":"47785:496:27","trueBody":{"id":11120,"nodeType":"Block","src":"47818:404:27","statements":[{"assignments":[11109],"declarations":[{"constant":false,"id":11109,"mutability":"mutable","name":"array","nameLocation":"47845:5:27","nodeType":"VariableDeclaration","scope":11120,"src":"47832:18:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11108,"name":"bytes","nodeType":"ElementaryTypeName","src":"47832:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":11112,"initialValue":{"expression":{"id":11110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47853:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47857:4:27","memberName":"data","nodeType":"MemberAccess","src":"47853:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"47832:29:27"},{"assignments":[11114],"declarations":[{"constant":false,"id":11114,"mutability":"mutable","name":"index","nameLocation":"47883:5:27","nodeType":"VariableDeclaration","scope":11120,"src":"47875:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11113,"name":"uint256","nodeType":"ElementaryTypeName","src":"47875:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11118,"initialValue":{"expression":{"expression":{"id":11115,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"47891:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47895:4:27","memberName":"data","nodeType":"MemberAccess","src":"47891:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47900:6:27","memberName":"length","nodeType":"MemberAccess","src":"47891:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"47875:31:27"},{"AST":{"nodeType":"YulBlock","src":"47929:283:27","statements":[{"nodeType":"YulAssignment","src":"48057:141:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"48102:5:27"},{"name":"index","nodeType":"YulIdentifier","src":"48109:5:27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48098:3:27"},"nodeType":"YulFunctionCall","src":"48098:17:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"48092:5:27"},"nodeType":"YulFunctionCall","src":"48092:24:27"},{"kind":"number","nodeType":"YulLiteral","src":"48138:42:27","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"48067:3:27"},"nodeType":"YulFunctionCall","src":"48067:131:27"},"variableNames":[{"name":"sender","nodeType":"YulIdentifier","src":"48057:6:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11109,"isOffset":false,"isSlot":false,"src":"48102:5:27","valueSize":1},{"declaration":11114,"isOffset":false,"isSlot":false,"src":"48109:5:27","valueSize":1},{"declaration":11099,"isOffset":false,"isSlot":false,"src":"48057:6:27","valueSize":1}],"id":11119,"nodeType":"InlineAssembly","src":"47920:292:27"}]}},{"expression":{"id":11131,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11099,"src":"48297:6:27","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11100,"id":11132,"nodeType":"Return","src":"48290:13:27"}]},"id":11134,"implemented":true,"kind":"function","modifiers":[],"name":"msgSender","nameLocation":"47688:9:27","nodeType":"FunctionDefinition","parameters":{"id":11097,"nodeType":"ParameterList","parameters":[],"src":"47697:2:27"},"returnParameters":{"id":11100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11099,"mutability":"mutable","name":"sender","nameLocation":"47763:6:27","nodeType":"VariableDeclaration","scope":11134,"src":"47747:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11098,"name":"address","nodeType":"ElementaryTypeName","src":"47747:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"47746:24:27"},"scope":11135,"src":"47679:631:27","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11433,"src":"47642:670:27","usedErrors":[],"usedEvents":[]},{"id":11136,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"48389:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":11137,"name":"ERC20","nameLocations":["48444:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":9998,"src":"48444:5:27"},"id":11138,"nodeType":"InheritanceSpecifier","src":"48444:5:27"},{"baseName":{"id":11139,"name":"IChildToken","nameLocations":["48455:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":10750,"src":"48455:11:27"},"id":11140,"nodeType":"InheritanceSpecifier","src":"48455:11:27"},{"baseName":{"id":11141,"name":"AccessControlMixin","nameLocations":["48472:18:27"],"nodeType":"IdentifierPath","referencedDeclaration":10741,"src":"48472:18:27"},"id":11142,"nodeType":"InheritanceSpecifier","src":"48472:18:27"},{"baseName":{"id":11143,"name":"NativeMetaTransaction","nameLocations":["48496:21:27"],"nodeType":"IdentifierPath","referencedDeclaration":11078,"src":"48496:21:27"},"id":11144,"nodeType":"InheritanceSpecifier","src":"48496:21:27"},{"baseName":{"id":11145,"name":"ChainConstants","nameLocations":["48523:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":11095,"src":"48523:14:27"},"id":11146,"nodeType":"InheritanceSpecifier","src":"48523:14:27"},{"baseName":{"id":11147,"name":"ContextMixin","nameLocations":["48543:12:27"],"nodeType":"IdentifierPath","referencedDeclaration":11135,"src":"48543:12:27"},"id":11148,"nodeType":"InheritanceSpecifier","src":"48543:12:27"}],"canonicalName":"UChildERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11286,"linearizedBaseContracts":[11286,11135,11095,11078,10884,10769,10741,10703,10750,9998,9068,8991],"name":"UChildERC20","nameLocation":"48425:11:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3b0b5a3","id":11153,"mutability":"constant","name":"DEPOSITOR_ROLE","nameLocation":"48586:14:27","nodeType":"VariableDeclaration","scope":11286,"src":"48562:68:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48562:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4445504f5349544f525f524f4c45","id":11151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48613:16:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9","typeString":"literal_string \"DEPOSITOR_ROLE\""},"value":"DEPOSITOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9","typeString":"literal_string \"DEPOSITOR_ROLE\""}],"id":11150,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"48603:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48603:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":11160,"nodeType":"Block","src":"48671:2:27","statements":[]},"id":11161,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"444149","id":11156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48657:5:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568","typeString":"literal_string \"DAI\""},"value":"DAI"},{"hexValue":"444149","id":11157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48664:5:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568","typeString":"literal_string \"DAI\""},"value":"DAI"}],"id":11158,"kind":"baseConstructorSpecifier","modifierName":{"id":11155,"name":"ERC20","nameLocations":["48651:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":9998,"src":"48651:5:27"},"nodeType":"ModifierInvocation","src":"48651:19:27"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11154,"nodeType":"ParameterList","parameters":[],"src":"48648:2:27"},"returnParameters":{"id":11159,"nodeType":"ParameterList","parameters":[],"src":"48671:0:27"},"scope":11286,"src":"48637:36:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11214,"nodeType":"Block","src":"49018:306:27","statements":[{"expression":{"arguments":[{"id":11176,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11164,"src":"49034:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11175,"name":"setName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"49026:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49026:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11178,"nodeType":"ExpressionStatement","src":"49026:14:27"},{"expression":{"arguments":[{"id":11180,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11166,"src":"49058:7:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11179,"name":"setSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9555,"src":"49048:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49048:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11182,"nodeType":"ExpressionStatement","src":"49048:18:27"},{"expression":{"arguments":[{"id":11184,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"49086:9:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":11183,"name":"setDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"49074:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49074:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11186,"nodeType":"ExpressionStatement","src":"49074:22:27"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"4368696c64","id":11192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49145:7:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93","typeString":"literal_string \"Child\""},"value":"Child"},{"id":11193,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11166,"src":"49154:7:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93","typeString":"literal_string \"Child\""},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":11190,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49128:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49132:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"49128:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49128:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49121:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":11188,"name":"string","nodeType":"ElementaryTypeName","src":"49121:6:27","typeDescriptions":{}}},"id":11195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49121:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11187,"name":"_setupContractId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10725,"src":"49104:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49104:60:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11197,"nodeType":"ExpressionStatement","src":"49104:60:27"},{"expression":{"arguments":[{"id":11199,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"49183:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":11200,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[11226],"referencedDeclaration":11226,"src":"49203:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49203:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11198,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"49172:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":11202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49172:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11203,"nodeType":"ExpressionStatement","src":"49172:44:27"},{"expression":{"arguments":[{"id":11205,"name":"DEPOSITOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"49235:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11206,"name":"childChainManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11170,"src":"49251:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11204,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"49224:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49224:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11208,"nodeType":"ExpressionStatement","src":"49224:45:27"},{"expression":{"arguments":[{"id":11210,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11164,"src":"49295:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":11211,"name":"ERC712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11082,"src":"49302:14:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11209,"name":"_initializeEIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10806,"src":"49277:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":11212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49277:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11213,"nodeType":"ExpressionStatement","src":"49277:40:27"}]},"documentation":{"id":11162,"nodeType":"StructuredDocumentation","src":"48679:143:27","text":" @notice Initialize the contract after it has been proxified\n @dev meant to be called once immediately after deployment"},"functionSelector":"de7ea79d","id":11215,"implemented":true,"kind":"function","modifiers":[{"id":11173,"kind":"modifierInvocation","modifierName":{"id":11172,"name":"initializer","nameLocations":["49002:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":10768,"src":"49002:11:27"},"nodeType":"ModifierInvocation","src":"49002:11:27"}],"name":"initialize","nameLocation":"48836:10:27","nodeType":"FunctionDefinition","parameters":{"id":11171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11164,"mutability":"mutable","name":"name_","nameLocation":"48872:5:27","nodeType":"VariableDeclaration","scope":11215,"src":"48856:21:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11163,"name":"string","nodeType":"ElementaryTypeName","src":"48856:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11166,"mutability":"mutable","name":"symbol_","nameLocation":"48903:7:27","nodeType":"VariableDeclaration","scope":11215,"src":"48887:23:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11165,"name":"string","nodeType":"ElementaryTypeName","src":"48887:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11168,"mutability":"mutable","name":"decimals_","nameLocation":"48926:9:27","nodeType":"VariableDeclaration","scope":11215,"src":"48920:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11167,"name":"uint8","nodeType":"ElementaryTypeName","src":"48920:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11170,"mutability":"mutable","name":"childChainManager","nameLocation":"48953:17:27","nodeType":"VariableDeclaration","scope":11215,"src":"48945:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"48945:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48846:130:27"},"returnParameters":{"id":11174,"nodeType":"ParameterList","parameters":[],"src":"49018:0:27"},"scope":11286,"src":"48827:497:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8979],"body":{"id":11225,"nodeType":"Block","src":"49558:48:27","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11221,"name":"ContextMixin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11135,"src":"49575:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContextMixin_$11135_$","typeString":"type(contract ContextMixin)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49588:9:27","memberName":"msgSender","nodeType":"MemberAccess","referencedDeclaration":11134,"src":"49575:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":11223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49575:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11220,"id":11224,"nodeType":"Return","src":"49568:31:27"}]},"id":11226,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"49453:10:27","nodeType":"FunctionDefinition","overrides":{"id":11217,"nodeType":"OverrideSpecifier","overrides":[],"src":"49491:8:27"},"parameters":{"id":11216,"nodeType":"ParameterList","parameters":[],"src":"49463:2:27"},"returnParameters":{"id":11220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11219,"mutability":"mutable","name":"sender","nameLocation":"49546:6:27","nodeType":"VariableDeclaration","scope":11226,"src":"49530:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":11218,"name":"address","nodeType":"ElementaryTypeName","src":"49530:15:27","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"49529:24:27"},"scope":11286,"src":"49444:162:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11243,"nodeType":"Block","src":"49689:83:27","statements":[{"expression":{"arguments":[{"id":11235,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"49707:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11234,"name":"setName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"49699:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49699:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11237,"nodeType":"ExpressionStatement","src":"49699:14:27"},{"expression":{"arguments":[{"id":11239,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"49743:5:27","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":11240,"name":"ERC712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11082,"src":"49750:14:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11238,"name":"_setDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10844,"src":"49723:19:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":11241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49723:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11242,"nodeType":"ExpressionStatement","src":"49723:42:27"}]},"functionSelector":"5353a2d8","id":11244,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11231,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"49669:18:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11232,"kind":"modifierInvocation","modifierName":{"id":11230,"name":"only","nameLocations":["49664:4:27"],"nodeType":"IdentifierPath","referencedDeclaration":10740,"src":"49664:4:27"},"nodeType":"ModifierInvocation","src":"49664:24:27"}],"name":"changeName","nameLocation":"49621:10:27","nodeType":"FunctionDefinition","parameters":{"id":11229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11228,"mutability":"mutable","name":"name_","nameLocation":"49648:5:27","nodeType":"VariableDeclaration","scope":11244,"src":"49632:21:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11227,"name":"string","nodeType":"ElementaryTypeName","src":"49632:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49631:23:27"},"returnParameters":{"id":11233,"nodeType":"ParameterList","parameters":[],"src":"49689:0:27"},"scope":11286,"src":"49612:160:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[10749],"body":{"id":11271,"nodeType":"Block","src":"50269:97:27","statements":[{"assignments":[11257],"declarations":[{"constant":false,"id":11257,"mutability":"mutable","name":"amount","nameLocation":"50287:6:27","nodeType":"VariableDeclaration","scope":11271,"src":"50279:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11256,"name":"uint256","nodeType":"ElementaryTypeName","src":"50279:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11265,"initialValue":{"arguments":[{"id":11260,"name":"depositData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11249,"src":"50307:11:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":11262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"50321:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11261,"name":"uint256","nodeType":"ElementaryTypeName","src":"50321:7:27","typeDescriptions":{}}}],"id":11263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"50320:9:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50296:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50300:6:27","memberName":"decode","nodeType":"MemberAccess","src":"50296:10:27","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50296:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"50279:51:27"},{"expression":{"arguments":[{"id":11267,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"50346:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11268,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11257,"src":"50352:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11266,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9874,"src":"50340:5:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50340:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11270,"nodeType":"ExpressionStatement","src":"50340:19:27"}]},"documentation":{"id":11245,"nodeType":"StructuredDocumentation","src":"49778:360:27","text":" @notice called when token is deposited on root chain\n @dev Should be callable only by ChildChainManager\n Should handle deposit by minting the required amount for user\n Make sure minting is done only by this function\n @param user user address for whom deposit is being done\n @param depositData abi encoded amount"},"functionSelector":"cf2c52cb","id":11272,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11253,"name":"DEPOSITOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"50249:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11254,"kind":"modifierInvocation","modifierName":{"id":11252,"name":"only","nameLocations":["50244:4:27"],"nodeType":"IdentifierPath","referencedDeclaration":10740,"src":"50244:4:27"},"nodeType":"ModifierInvocation","src":"50244:20:27"}],"name":"deposit","nameLocation":"50152:7:27","nodeType":"FunctionDefinition","overrides":{"id":11251,"nodeType":"OverrideSpecifier","overrides":[],"src":"50227:8:27"},"parameters":{"id":11250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11247,"mutability":"mutable","name":"user","nameLocation":"50168:4:27","nodeType":"VariableDeclaration","scope":11272,"src":"50160:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11246,"name":"address","nodeType":"ElementaryTypeName","src":"50160:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11249,"mutability":"mutable","name":"depositData","nameLocation":"50189:11:27","nodeType":"VariableDeclaration","scope":11272,"src":"50174:26:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11248,"name":"bytes","nodeType":"ElementaryTypeName","src":"50174:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"50159:42:27"},"returnParameters":{"id":11255,"nodeType":"ParameterList","parameters":[],"src":"50269:0:27"},"scope":11286,"src":"50143:223:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11284,"nodeType":"Block","src":"50657:44:27","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11279,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[11226],"referencedDeclaration":11226,"src":"50673:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50673:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":11281,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"50687:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11278,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9930,"src":"50667:5:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50667:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11283,"nodeType":"ExpressionStatement","src":"50667:27:27"}]},"documentation":{"id":11273,"nodeType":"StructuredDocumentation","src":"50372:237:27","text":" @notice called when user wants to withdraw tokens back to root chain\n @dev Should burn user's tokens. This transaction will be verified when exiting on root chain\n @param amount amount of tokens to withdraw"},"functionSelector":"2e1a7d4d","id":11285,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"50623:8:27","nodeType":"FunctionDefinition","parameters":{"id":11276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11275,"mutability":"mutable","name":"amount","nameLocation":"50640:6:27","nodeType":"VariableDeclaration","scope":11285,"src":"50632:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11274,"name":"uint256","nodeType":"ElementaryTypeName","src":"50632:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50631:16:27"},"returnParameters":{"id":11277,"nodeType":"ParameterList","parameters":[],"src":"50657:0:27"},"scope":11286,"src":"50614:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11433,"src":"48416:2287:27","usedErrors":[],"usedEvents":[9058,9067,10455,10464,10473,10906]},{"id":11287,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"50767:24:27"},{"abstract":false,"baseContracts":[{"baseName":{"id":11288,"name":"UChildERC20","nameLocations":["50819:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":11286,"src":"50819:11:27"},"id":11289,"nodeType":"InheritanceSpecifier","src":"50819:11:27"}],"canonicalName":"NofTestDAIV3","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11432,"linearizedBaseContracts":[11432,11286,11135,11095,11078,10884,10769,10741,10703,10750,9998,9068,8991],"name":"NofTestDAIV3","nameLocation":"50803:12:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"30adf81f","id":11292,"mutability":"constant","name":"PERMIT_TYPEHASH","nameLocation":"51014:15:27","nodeType":"VariableDeclaration","scope":11432,"src":"50990:108:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50990:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307865613261613061316265313161303765643836643735356339333436376634663832333632623435323337316431626139346431373135313233353131616362","id":11291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51032:66:27","typeDescriptions":{"typeIdentifier":"t_rational_105916522785188513640362517802612480037966763957092682311465172263008277174987_by_1","typeString":"int_const 1059...(70 digits omitted)...4987"},"value":"0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb"},"visibility":"public"},{"body":{"id":11306,"nodeType":"Block","src":"51172:51:27","statements":[{"expression":{"arguments":[{"expression":{"id":11300,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51195:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51199:6:27","memberName":"sender","nodeType":"MemberAccess","src":"51195:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11302,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11294,"src":"51207:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11303,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11296,"src":"51212:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11299,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"51182:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":11304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51182:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11305,"nodeType":"ExpressionStatement","src":"51182:34:27"}]},"functionSelector":"b753a98c","id":11307,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"51135:4:27","nodeType":"FunctionDefinition","parameters":{"id":11297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11294,"mutability":"mutable","name":"usr","nameLocation":"51148:3:27","nodeType":"VariableDeclaration","scope":11307,"src":"51140:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11293,"name":"address","nodeType":"ElementaryTypeName","src":"51140:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11296,"mutability":"mutable","name":"wad","nameLocation":"51158:3:27","nodeType":"VariableDeclaration","scope":11307,"src":"51153:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11295,"name":"uint","nodeType":"ElementaryTypeName","src":"51153:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51139:23:27"},"returnParameters":{"id":11298,"nodeType":"ParameterList","parameters":[],"src":"51172:0:27"},"scope":11432,"src":"51126:97:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11321,"nodeType":"Block","src":"51274:51:27","statements":[{"expression":{"arguments":[{"id":11315,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"51297:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":11316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51302:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51306:6:27","memberName":"sender","nodeType":"MemberAccess","src":"51302:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11318,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"51314:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11314,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"51284:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":11319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51284:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11320,"nodeType":"ExpressionStatement","src":"51284:34:27"}]},"functionSelector":"f2d5d56b","id":11322,"implemented":true,"kind":"function","modifiers":[],"name":"pull","nameLocation":"51237:4:27","nodeType":"FunctionDefinition","parameters":{"id":11312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11309,"mutability":"mutable","name":"usr","nameLocation":"51250:3:27","nodeType":"VariableDeclaration","scope":11322,"src":"51242:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11308,"name":"address","nodeType":"ElementaryTypeName","src":"51242:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11311,"mutability":"mutable","name":"wad","nameLocation":"51260:3:27","nodeType":"VariableDeclaration","scope":11322,"src":"51255:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11310,"name":"uint","nodeType":"ElementaryTypeName","src":"51255:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51241:23:27"},"returnParameters":{"id":11313,"nodeType":"ParameterList","parameters":[],"src":"51274:0:27"},"scope":11432,"src":"51228:97:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11337,"nodeType":"Block","src":"51389:44:27","statements":[{"expression":{"arguments":[{"id":11332,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"51412:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11333,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11326,"src":"51417:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11334,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11328,"src":"51422:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11331,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9696,"src":"51399:12:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51399:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11336,"nodeType":"ExpressionStatement","src":"51399:27:27"}]},"functionSelector":"bb35783b","id":11338,"implemented":true,"kind":"function","modifiers":[],"name":"move","nameLocation":"51339:4:27","nodeType":"FunctionDefinition","parameters":{"id":11329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11324,"mutability":"mutable","name":"src","nameLocation":"51352:3:27","nodeType":"VariableDeclaration","scope":11338,"src":"51344:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11323,"name":"address","nodeType":"ElementaryTypeName","src":"51344:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11326,"mutability":"mutable","name":"dst","nameLocation":"51365:3:27","nodeType":"VariableDeclaration","scope":11338,"src":"51357:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11325,"name":"address","nodeType":"ElementaryTypeName","src":"51357:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11328,"mutability":"mutable","name":"wad","nameLocation":"51375:3:27","nodeType":"VariableDeclaration","scope":11338,"src":"51370:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11327,"name":"uint","nodeType":"ElementaryTypeName","src":"51370:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51343:36:27"},"returnParameters":{"id":11330,"nodeType":"ParameterList","parameters":[],"src":"51389:0:27"},"scope":11432,"src":"51330:103:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11430,"nodeType":"Block","src":"51679:785:27","statements":[{"assignments":[11358],"declarations":[{"constant":false,"id":11358,"mutability":"mutable","name":"digest","nameLocation":"51697:6:27","nodeType":"VariableDeclaration","scope":11430,"src":"51689:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51689:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11378,"initialValue":{"arguments":[{"arguments":[{"hexValue":"1901","id":11362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51763:10:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":11363,"name":"getDomainSeperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"51791:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":11364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51791:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":11368,"name":"PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11292,"src":"51896:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11369,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"51937:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11370,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11342,"src":"51969:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11344,"src":"52002:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11372,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"52033:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11373,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"52065:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51860:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51864:6:27","memberName":"encode","nodeType":"MemberAccess","src":"51860:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51860:234:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11365,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"51829:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51829:283:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51729:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51733:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"51729:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51729:393:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11359,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"51706:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51706:417:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"51689:434:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11380,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"52142:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":11382,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"52162:6:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11383,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11350,"src":"52170:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11384,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11352,"src":"52173:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11385,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11354,"src":"52176:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11381,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"52152:9:27","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":11386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52152:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"52142:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554368696c644441493a20494e56414c49442d5045524d4954","id":11388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52180:27:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53","typeString":"literal_string \"UChildDAI: INVALID-PERMIT\""},"value":"UChildDAI: INVALID-PERMIT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53","typeString":"literal_string \"UChildDAI: INVALID-PERMIT\""}],"id":11379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"52134:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52134:74:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11390,"nodeType":"ExpressionStatement","src":"52134:74:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11392,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"52226:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52236:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52226:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11395,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"52241:5:27","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52247:9:27","memberName":"timestamp","nodeType":"MemberAccess","src":"52241:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11397,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"52260:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"52241:25:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"52226:40:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554368696c644441493a205045524d49542d45585049524544","id":11400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52268:27:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe","typeString":"literal_string \"UChildDAI: PERMIT-EXPIRED\""},"value":"UChildDAI: PERMIT-EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe","typeString":"literal_string \"UChildDAI: PERMIT-EXPIRED\""}],"id":11391,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"52218:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52218:78:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11402,"nodeType":"ExpressionStatement","src":"52218:78:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11404,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11344,"src":"52314:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"52323:16:27","subExpression":{"baseExpression":{"id":11405,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"52323:6:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11407,"indexExpression":{"id":11406,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"52330:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"52323:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"52314:25:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554368696c644441493a20494e56414c49442d4e4f4e4345","id":11410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52341:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5","typeString":"literal_string \"UChildDAI: INVALID-NONCE\""},"value":"UChildDAI: INVALID-NONCE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5","typeString":"literal_string \"UChildDAI: INVALID-NONCE\""}],"id":11403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"52306:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52306:62:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11412,"nodeType":"ExpressionStatement","src":"52306:62:27"},{"assignments":[11414],"declarations":[{"constant":false,"id":11414,"mutability":"mutable","name":"wad","nameLocation":"52383:3:27","nodeType":"VariableDeclaration","scope":11430,"src":"52378:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11413,"name":"uint","nodeType":"ElementaryTypeName","src":"52378:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11423,"initialValue":{"condition":{"id":11415,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"52389:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":11421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52416:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"52389:28:27","trueExpression":{"expression":{"arguments":[{"id":11418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"52404:4:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11417,"name":"uint","nodeType":"ElementaryTypeName","src":"52404:4:27","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11416,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"52399:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52399:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52410:3:27","memberName":"max","nodeType":"MemberAccess","src":"52399:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"52378:39:27"},{"expression":{"arguments":[{"id":11425,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11340,"src":"52436:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11426,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11342,"src":"52444:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11427,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11414,"src":"52453:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11424,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9975,"src":"52427:8:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52427:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11429,"nodeType":"ExpressionStatement","src":"52427:30:27"}]},"functionSelector":"8fcbaf0c","id":11431,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"51484:6:27","nodeType":"FunctionDefinition","parameters":{"id":11355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11340,"mutability":"mutable","name":"holder","nameLocation":"51508:6:27","nodeType":"VariableDeclaration","scope":11431,"src":"51500:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11339,"name":"address","nodeType":"ElementaryTypeName","src":"51500:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11342,"mutability":"mutable","name":"spender","nameLocation":"51532:7:27","nodeType":"VariableDeclaration","scope":11431,"src":"51524:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11341,"name":"address","nodeType":"ElementaryTypeName","src":"51524:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11344,"mutability":"mutable","name":"nonce","nameLocation":"51557:5:27","nodeType":"VariableDeclaration","scope":11431,"src":"51549:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11343,"name":"uint256","nodeType":"ElementaryTypeName","src":"51549:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11346,"mutability":"mutable","name":"expiry","nameLocation":"51580:6:27","nodeType":"VariableDeclaration","scope":11431,"src":"51572:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11345,"name":"uint256","nodeType":"ElementaryTypeName","src":"51572:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11348,"mutability":"mutable","name":"allowed","nameLocation":"51601:7:27","nodeType":"VariableDeclaration","scope":11431,"src":"51596:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11347,"name":"bool","nodeType":"ElementaryTypeName","src":"51596:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11350,"mutability":"mutable","name":"v","nameLocation":"51624:1:27","nodeType":"VariableDeclaration","scope":11431,"src":"51618:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11349,"name":"uint8","nodeType":"ElementaryTypeName","src":"51618:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11352,"mutability":"mutable","name":"r","nameLocation":"51643:1:27","nodeType":"VariableDeclaration","scope":11431,"src":"51635:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51635:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11354,"mutability":"mutable","name":"s","nameLocation":"51662:1:27","nodeType":"VariableDeclaration","scope":11431,"src":"51654:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51654:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51490:179:27"},"returnParameters":{"id":11356,"nodeType":"ParameterList","parameters":[],"src":"51679:0:27"},"scope":11432,"src":"51475:989:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11433,"src":"50794:1672:27","usedErrors":[],"usedEvents":[9058,9067,10455,10464,10473,10906]}],"src":"32:52434:27"},"id":27},"hardhat/console.sol":{"ast":{"absolutePath":"hardhat/console.sol","exportedSymbols":{"console":[19517]},"id":19518,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11434,"literals":["solidity",">=","0.4",".22","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:32:28"},{"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":19517,"linearizedBaseContracts":[19517],"name":"console","nameLocation":"74:7:28","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":11437,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"105:15:28","nodeType":"VariableDeclaration","scope":19517,"src":"88:85:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11435,"name":"address","nodeType":"ElementaryTypeName","src":"88:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:42:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"body":{"id":11447,"nodeType":"Block","src":"255:388:28","statements":[{"assignments":[11443],"declarations":[{"constant":false,"id":11443,"mutability":"mutable","name":"consoleAddress","nameLocation":"273:14:28","nodeType":"VariableDeclaration","scope":11447,"src":"265:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11442,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11445,"initialValue":{"id":11444,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11437,"src":"290:15:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"265:40:28"},{"AST":{"nodeType":"YulBlock","src":"367:270:28","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"434:3:28"},"nodeType":"YulFunctionCall","src":"434:5:28"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"461:14:28"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"501:7:28"},{"kind":"number","nodeType":"YulLiteral","src":"510:2:28","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"497:3:28"},"nodeType":"YulFunctionCall","src":"497:16:28"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"541:7:28"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"535:5:28"},"nodeType":"YulFunctionCall","src":"535:14:28"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:28","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"594:1:28","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"402:10:28"},"nodeType":"YulFunctionCall","src":"402:211:28"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"381:3:28"},"nodeType":"YulFunctionCall","src":"381:246:28"},"nodeType":"YulExpressionStatement","src":"381:246:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":11443,"isOffset":false,"isSlot":false,"src":"461:14:28","valueSize":1},{"declaration":11439,"isOffset":false,"isSlot":false,"src":"501:7:28","valueSize":1},{"declaration":11439,"isOffset":false,"isSlot":false,"src":"541:7:28","valueSize":1}],"id":11446,"nodeType":"InlineAssembly","src":"358:279:28"}]},"id":11448,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadImplementation","nameLocation":"189:29:28","nodeType":"FunctionDefinition","parameters":{"id":11440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11439,"mutability":"mutable","name":"payload","nameLocation":"232:7:28","nodeType":"VariableDeclaration","scope":11448,"src":"219:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11438,"name":"bytes","nodeType":"ElementaryTypeName","src":"219:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"218:22:28"},"returnParameters":{"id":11441,"nodeType":"ParameterList","parameters":[],"src":"255:0:28"},"scope":19517,"src":"180:463:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11464,"nodeType":"Block","src":"783:62:28","statements":[{"AST":{"nodeType":"YulBlock","src":"802:37:28","statements":[{"nodeType":"YulAssignment","src":"816:13:28","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"825:4:28"},"variableNames":[{"name":"fnOut","nodeType":"YulIdentifier","src":"816:5:28"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":11454,"isOffset":false,"isSlot":false,"src":"825:4:28","valueSize":1},{"declaration":11461,"isOffset":false,"isSlot":false,"src":"816:5:28","valueSize":1}],"id":11463,"nodeType":"InlineAssembly","src":"793:46:28"}]},"id":11465,"implemented":true,"kind":"function","modifiers":[],"name":"_castToPure","nameLocation":"658:11:28","nodeType":"FunctionDefinition","parameters":{"id":11455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11454,"mutability":"mutable","name":"fnIn","nameLocation":"714:4:28","nodeType":"VariableDeclaration","scope":11465,"src":"677:41:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":11453,"nodeType":"FunctionTypeName","parameterTypes":{"id":11451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11453,"src":"686:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11449,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"685:14:28"},"returnParameterTypes":{"id":11452,"nodeType":"ParameterList","parameters":[],"src":"714:0:28"},"src":"677:41:28","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"669:55:28"},"returnParameters":{"id":11462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11461,"mutability":"mutable","name":"fnOut","nameLocation":"776:5:28","nodeType":"VariableDeclaration","scope":11465,"src":"748:33:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":11460,"nodeType":"FunctionTypeName","parameterTypes":{"id":11458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11460,"src":"757:12:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11456,"name":"bytes","nodeType":"ElementaryTypeName","src":"757:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"756:14:28"},"returnParameterTypes":{"id":11459,"nodeType":"ParameterList","parameters":[],"src":"776:0:28"},"src":"748:33:28","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"747:35:28"},"scope":19517,"src":"649:196:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11476,"nodeType":"Block","src":"912:68:28","statements":[{"expression":{"arguments":[{"id":11473,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11467,"src":"965:7:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":11471,"name":"_sendLogPayloadImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11448,"src":"934:29:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":11470,"name":"_castToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"922:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:51:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11475,"nodeType":"ExpressionStatement","src":"922:51:28"}]},"id":11477,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"860:15:28","nodeType":"FunctionDefinition","parameters":{"id":11468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11467,"mutability":"mutable","name":"payload","nameLocation":"889:7:28","nodeType":"VariableDeclaration","scope":11477,"src":"876:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11466,"name":"bytes","nodeType":"ElementaryTypeName","src":"876:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"875:22:28"},"returnParameters":{"id":11469,"nodeType":"ParameterList","parameters":[],"src":"912:0:28"},"scope":19517,"src":"851:129:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11487,"nodeType":"Block","src":"1015:66:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":11483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1065:7:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":11481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1041:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1045:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1041:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1025:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1025:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11486,"nodeType":"ExpressionStatement","src":"1025:49:28"}]},"id":11488,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"995:3:28","nodeType":"FunctionDefinition","parameters":{"id":11478,"nodeType":"ParameterList","parameters":[],"src":"998:2:28"},"returnParameters":{"id":11479,"nodeType":"ParameterList","parameters":[],"src":"1015:0:28"},"scope":19517,"src":"986:95:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11501,"nodeType":"Block","src":"1127:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":11496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1177:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":11497,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11490,"src":"1192:2:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":11494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1153:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1157:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1153:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11493,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1137:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11500,"nodeType":"ExpressionStatement","src":"1137:59:28"}]},"id":11502,"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"1095:6:28","nodeType":"FunctionDefinition","parameters":{"id":11491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11490,"mutability":"mutable","name":"p0","nameLocation":"1109:2:28","nodeType":"VariableDeclaration","scope":11502,"src":"1102:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11489,"name":"int256","nodeType":"ElementaryTypeName","src":"1102:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1101:11:28"},"returnParameters":{"id":11492,"nodeType":"ParameterList","parameters":[],"src":"1127:0:28"},"scope":19517,"src":"1086:117:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11515,"nodeType":"Block","src":"1252:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":11510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1302:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":11511,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11504,"src":"1318:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11508,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1278:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1282:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1278:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11507,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1262:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11514,"nodeType":"ExpressionStatement","src":"1262:60:28"}]},"id":11516,"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"1218:7:28","nodeType":"FunctionDefinition","parameters":{"id":11505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11504,"mutability":"mutable","name":"p0","nameLocation":"1234:2:28","nodeType":"VariableDeclaration","scope":11516,"src":"1226:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1225:12:28"},"returnParameters":{"id":11506,"nodeType":"ParameterList","parameters":[],"src":"1252:0:28"},"scope":19517,"src":"1209:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11529,"nodeType":"Block","src":"1386:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":11524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1436:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":11525,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11518,"src":"1451:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11522,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1412:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1416:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1412:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11521,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1396:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11528,"nodeType":"ExpressionStatement","src":"1396:59:28"}]},"id":11530,"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"1344:9:28","nodeType":"FunctionDefinition","parameters":{"id":11519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11518,"mutability":"mutable","name":"p0","nameLocation":"1368:2:28","nodeType":"VariableDeclaration","scope":11530,"src":"1354:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11517,"name":"string","nodeType":"ElementaryTypeName","src":"1354:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1353:18:28"},"returnParameters":{"id":11520,"nodeType":"ParameterList","parameters":[],"src":"1386:0:28"},"scope":19517,"src":"1335:127:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11543,"nodeType":"Block","src":"1508:74:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":11538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1558:11:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":11539,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11532,"src":"1571:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1534:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1538:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1534:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11535,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1518:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:57:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11542,"nodeType":"ExpressionStatement","src":"1518:57:28"}]},"id":11544,"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1477:7:28","nodeType":"FunctionDefinition","parameters":{"id":11533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11532,"mutability":"mutable","name":"p0","nameLocation":"1490:2:28","nodeType":"VariableDeclaration","scope":11544,"src":"1485:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11531,"name":"bool","nodeType":"ElementaryTypeName","src":"1485:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1484:9:28"},"returnParameters":{"id":11534,"nodeType":"ParameterList","parameters":[],"src":"1508:0:28"},"scope":19517,"src":"1468:114:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11557,"nodeType":"Block","src":"1634:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":11552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":11553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11546,"src":"1700:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1660:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1664:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1660:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1644:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11556,"nodeType":"ExpressionStatement","src":"1644:60:28"}]},"id":11558,"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1597:10:28","nodeType":"FunctionDefinition","parameters":{"id":11547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11546,"mutability":"mutable","name":"p0","nameLocation":"1616:2:28","nodeType":"VariableDeclaration","scope":11558,"src":"1608:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11545,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1607:12:28"},"returnParameters":{"id":11548,"nodeType":"ParameterList","parameters":[],"src":"1634:0:28"},"scope":19517,"src":"1588:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11571,"nodeType":"Block","src":"1766:75:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":11566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1816:12:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":11567,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11560,"src":"1830:2:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1792:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1796:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1792:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11563,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1776:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11570,"nodeType":"ExpressionStatement","src":"1776:58:28"}]},"id":11572,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1726:8:28","nodeType":"FunctionDefinition","parameters":{"id":11561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11560,"mutability":"mutable","name":"p0","nameLocation":"1748:2:28","nodeType":"VariableDeclaration","scope":11572,"src":"1735:15:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11559,"name":"bytes","nodeType":"ElementaryTypeName","src":"1735:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1734:17:28"},"returnParameters":{"id":11562,"nodeType":"ParameterList","parameters":[],"src":"1766:0:28"},"scope":19517,"src":"1717:124:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11585,"nodeType":"Block","src":"1891:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":11580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":11581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11574,"src":"1956:2:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":11578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1917:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1921:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1917:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"1901:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11584,"nodeType":"ExpressionStatement","src":"1901:59:28"}]},"id":11586,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1856:9:28","nodeType":"FunctionDefinition","parameters":{"id":11575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11574,"mutability":"mutable","name":"p0","nameLocation":"1873:2:28","nodeType":"VariableDeclaration","scope":11586,"src":"1866:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":11573,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1866:6:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1865:11:28"},"returnParameters":{"id":11576,"nodeType":"ParameterList","parameters":[],"src":"1891:0:28"},"scope":19517,"src":"1847:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11599,"nodeType":"Block","src":"2017:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":11594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2067:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":11595,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11588,"src":"2082:2:28","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":11592,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2043:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2047:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2043:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11591,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2027:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11598,"nodeType":"ExpressionStatement","src":"2027:59:28"}]},"id":11600,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1982:9:28","nodeType":"FunctionDefinition","parameters":{"id":11589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11588,"mutability":"mutable","name":"p0","nameLocation":"1999:2:28","nodeType":"VariableDeclaration","scope":11600,"src":"1992:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":11587,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1992:6:28","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1991:11:28"},"returnParameters":{"id":11590,"nodeType":"ParameterList","parameters":[],"src":"2017:0:28"},"scope":19517,"src":"1973:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11613,"nodeType":"Block","src":"2143:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":11608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":11609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"2208:2:28","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":11606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2169:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2173:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2169:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2153:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11612,"nodeType":"ExpressionStatement","src":"2153:59:28"}]},"id":11614,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"2108:9:28","nodeType":"FunctionDefinition","parameters":{"id":11603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11602,"mutability":"mutable","name":"p0","nameLocation":"2125:2:28","nodeType":"VariableDeclaration","scope":11614,"src":"2118:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":11601,"name":"bytes3","nodeType":"ElementaryTypeName","src":"2118:6:28","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"2117:11:28"},"returnParameters":{"id":11604,"nodeType":"ParameterList","parameters":[],"src":"2143:0:28"},"scope":19517,"src":"2099:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11627,"nodeType":"Block","src":"2269:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":11622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2319:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":11623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11616,"src":"2334:2:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":11620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2295:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2299:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2295:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2279:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11626,"nodeType":"ExpressionStatement","src":"2279:59:28"}]},"id":11628,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"2234:9:28","nodeType":"FunctionDefinition","parameters":{"id":11617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11616,"mutability":"mutable","name":"p0","nameLocation":"2251:2:28","nodeType":"VariableDeclaration","scope":11628,"src":"2244:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11615,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2244:6:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2243:11:28"},"returnParameters":{"id":11618,"nodeType":"ParameterList","parameters":[],"src":"2269:0:28"},"scope":19517,"src":"2225:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11641,"nodeType":"Block","src":"2395:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":11636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2445:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":11637,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11630,"src":"2460:2:28","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":11634,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2421:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2425:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2421:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11633,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2405:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2405:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11640,"nodeType":"ExpressionStatement","src":"2405:59:28"}]},"id":11642,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"2360:9:28","nodeType":"FunctionDefinition","parameters":{"id":11631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11630,"mutability":"mutable","name":"p0","nameLocation":"2377:2:28","nodeType":"VariableDeclaration","scope":11642,"src":"2370:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":11629,"name":"bytes5","nodeType":"ElementaryTypeName","src":"2370:6:28","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"2369:11:28"},"returnParameters":{"id":11632,"nodeType":"ParameterList","parameters":[],"src":"2395:0:28"},"scope":19517,"src":"2351:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11655,"nodeType":"Block","src":"2521:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":11650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2571:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":11651,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"2586:2:28","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":11648,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2547:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2551:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2547:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11647,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2531:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11654,"nodeType":"ExpressionStatement","src":"2531:59:28"}]},"id":11656,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2486:9:28","nodeType":"FunctionDefinition","parameters":{"id":11645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11644,"mutability":"mutable","name":"p0","nameLocation":"2503:2:28","nodeType":"VariableDeclaration","scope":11656,"src":"2496:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":11643,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2496:6:28","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2495:11:28"},"returnParameters":{"id":11646,"nodeType":"ParameterList","parameters":[],"src":"2521:0:28"},"scope":19517,"src":"2477:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11669,"nodeType":"Block","src":"2647:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":11664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2697:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":11665,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"2712:2:28","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":11662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2673:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2677:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2673:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11661,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2657:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11668,"nodeType":"ExpressionStatement","src":"2657:59:28"}]},"id":11670,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2612:9:28","nodeType":"FunctionDefinition","parameters":{"id":11659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11658,"mutability":"mutable","name":"p0","nameLocation":"2629:2:28","nodeType":"VariableDeclaration","scope":11670,"src":"2622:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":11657,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2622:6:28","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2621:11:28"},"returnParameters":{"id":11660,"nodeType":"ParameterList","parameters":[],"src":"2647:0:28"},"scope":19517,"src":"2603:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11683,"nodeType":"Block","src":"2773:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":11678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2823:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":11679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11672,"src":"2838:2:28","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":11676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2803:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2799:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2783:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11682,"nodeType":"ExpressionStatement","src":"2783:59:28"}]},"id":11684,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2738:9:28","nodeType":"FunctionDefinition","parameters":{"id":11673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11672,"mutability":"mutable","name":"p0","nameLocation":"2755:2:28","nodeType":"VariableDeclaration","scope":11684,"src":"2748:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":11671,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2748:6:28","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2747:11:28"},"returnParameters":{"id":11674,"nodeType":"ParameterList","parameters":[],"src":"2773:0:28"},"scope":19517,"src":"2729:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11697,"nodeType":"Block","src":"2899:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":11692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2949:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":11693,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11686,"src":"2964:2:28","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":11690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2925:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11689,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"2909:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2909:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11696,"nodeType":"ExpressionStatement","src":"2909:59:28"}]},"id":11698,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2864:9:28","nodeType":"FunctionDefinition","parameters":{"id":11687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11686,"mutability":"mutable","name":"p0","nameLocation":"2881:2:28","nodeType":"VariableDeclaration","scope":11698,"src":"2874:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":11685,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2874:6:28","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2873:11:28"},"returnParameters":{"id":11688,"nodeType":"ParameterList","parameters":[],"src":"2899:0:28"},"scope":19517,"src":"2855:120:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11711,"nodeType":"Block","src":"3027:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":11706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3077:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":11707,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11700,"src":"3093:2:28","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":11704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3053:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3057:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3053:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3053:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11703,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3037:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3037:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11710,"nodeType":"ExpressionStatement","src":"3037:60:28"}]},"id":11712,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2990:10:28","nodeType":"FunctionDefinition","parameters":{"id":11701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11700,"mutability":"mutable","name":"p0","nameLocation":"3009:2:28","nodeType":"VariableDeclaration","scope":11712,"src":"3001:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":11699,"name":"bytes10","nodeType":"ElementaryTypeName","src":"3001:7:28","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"3000:12:28"},"returnParameters":{"id":11702,"nodeType":"ParameterList","parameters":[],"src":"3027:0:28"},"scope":19517,"src":"2981:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11725,"nodeType":"Block","src":"3156:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":11720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3206:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":11721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"3222:2:28","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":11718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3182:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3186:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3182:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3166:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3166:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11724,"nodeType":"ExpressionStatement","src":"3166:60:28"}]},"id":11726,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"3119:10:28","nodeType":"FunctionDefinition","parameters":{"id":11715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11714,"mutability":"mutable","name":"p0","nameLocation":"3138:2:28","nodeType":"VariableDeclaration","scope":11726,"src":"3130:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":11713,"name":"bytes11","nodeType":"ElementaryTypeName","src":"3130:7:28","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"3129:12:28"},"returnParameters":{"id":11716,"nodeType":"ParameterList","parameters":[],"src":"3156:0:28"},"scope":19517,"src":"3110:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11739,"nodeType":"Block","src":"3285:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":11734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":11735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11728,"src":"3351:2:28","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":11732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3311:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3315:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3311:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3311:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3295:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3295:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11738,"nodeType":"ExpressionStatement","src":"3295:60:28"}]},"id":11740,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"3248:10:28","nodeType":"FunctionDefinition","parameters":{"id":11729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11728,"mutability":"mutable","name":"p0","nameLocation":"3267:2:28","nodeType":"VariableDeclaration","scope":11740,"src":"3259:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":11727,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3259:7:28","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"3258:12:28"},"returnParameters":{"id":11730,"nodeType":"ParameterList","parameters":[],"src":"3285:0:28"},"scope":19517,"src":"3239:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11753,"nodeType":"Block","src":"3414:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":11748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3464:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":11749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"3480:2:28","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":11746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3440:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3444:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3440:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3424:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11752,"nodeType":"ExpressionStatement","src":"3424:60:28"}]},"id":11754,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"3377:10:28","nodeType":"FunctionDefinition","parameters":{"id":11743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11742,"mutability":"mutable","name":"p0","nameLocation":"3396:2:28","nodeType":"VariableDeclaration","scope":11754,"src":"3388:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":11741,"name":"bytes13","nodeType":"ElementaryTypeName","src":"3388:7:28","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"3387:12:28"},"returnParameters":{"id":11744,"nodeType":"ParameterList","parameters":[],"src":"3414:0:28"},"scope":19517,"src":"3368:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11767,"nodeType":"Block","src":"3543:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":11762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3593:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":11763,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11756,"src":"3609:2:28","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":11760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3569:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3573:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3569:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3569:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11759,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3553:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11766,"nodeType":"ExpressionStatement","src":"3553:60:28"}]},"id":11768,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3506:10:28","nodeType":"FunctionDefinition","parameters":{"id":11757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11756,"mutability":"mutable","name":"p0","nameLocation":"3525:2:28","nodeType":"VariableDeclaration","scope":11768,"src":"3517:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":11755,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3517:7:28","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3516:12:28"},"returnParameters":{"id":11758,"nodeType":"ParameterList","parameters":[],"src":"3543:0:28"},"scope":19517,"src":"3497:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11781,"nodeType":"Block","src":"3672:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":11776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3722:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":11777,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11770,"src":"3738:2:28","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":11774,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3698:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3702:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3698:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11773,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3682:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3682:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11780,"nodeType":"ExpressionStatement","src":"3682:60:28"}]},"id":11782,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3635:10:28","nodeType":"FunctionDefinition","parameters":{"id":11771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11770,"mutability":"mutable","name":"p0","nameLocation":"3654:2:28","nodeType":"VariableDeclaration","scope":11782,"src":"3646:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":11769,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3646:7:28","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3645:12:28"},"returnParameters":{"id":11772,"nodeType":"ParameterList","parameters":[],"src":"3672:0:28"},"scope":19517,"src":"3626:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11795,"nodeType":"Block","src":"3801:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":11790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3851:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":11791,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"3867:2:28","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":11788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3827:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3831:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3827:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11787,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3811:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11794,"nodeType":"ExpressionStatement","src":"3811:60:28"}]},"id":11796,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3764:10:28","nodeType":"FunctionDefinition","parameters":{"id":11785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11784,"mutability":"mutable","name":"p0","nameLocation":"3783:2:28","nodeType":"VariableDeclaration","scope":11796,"src":"3775:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":11783,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3775:7:28","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3774:12:28"},"returnParameters":{"id":11786,"nodeType":"ParameterList","parameters":[],"src":"3801:0:28"},"scope":19517,"src":"3755:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11809,"nodeType":"Block","src":"3930:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":11804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3980:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":11805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11798,"src":"3996:2:28","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":11802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3956:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3960:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3956:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"3940:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3940:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11808,"nodeType":"ExpressionStatement","src":"3940:60:28"}]},"id":11810,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3893:10:28","nodeType":"FunctionDefinition","parameters":{"id":11799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11798,"mutability":"mutable","name":"p0","nameLocation":"3912:2:28","nodeType":"VariableDeclaration","scope":11810,"src":"3904:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":11797,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3904:7:28","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3903:12:28"},"returnParameters":{"id":11800,"nodeType":"ParameterList","parameters":[],"src":"3930:0:28"},"scope":19517,"src":"3884:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11823,"nodeType":"Block","src":"4059:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":11818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4109:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":11819,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11812,"src":"4125:2:28","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":11816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4085:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4089:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4085:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11815,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4069:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11822,"nodeType":"ExpressionStatement","src":"4069:60:28"}]},"id":11824,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"4022:10:28","nodeType":"FunctionDefinition","parameters":{"id":11813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11812,"mutability":"mutable","name":"p0","nameLocation":"4041:2:28","nodeType":"VariableDeclaration","scope":11824,"src":"4033:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":11811,"name":"bytes18","nodeType":"ElementaryTypeName","src":"4033:7:28","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"4032:12:28"},"returnParameters":{"id":11814,"nodeType":"ParameterList","parameters":[],"src":"4059:0:28"},"scope":19517,"src":"4013:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11837,"nodeType":"Block","src":"4188:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":11832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4238:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":11833,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"4254:2:28","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":11830,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4214:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4218:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4214:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11829,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4198:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4198:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11836,"nodeType":"ExpressionStatement","src":"4198:60:28"}]},"id":11838,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"4151:10:28","nodeType":"FunctionDefinition","parameters":{"id":11827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11826,"mutability":"mutable","name":"p0","nameLocation":"4170:2:28","nodeType":"VariableDeclaration","scope":11838,"src":"4162:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":11825,"name":"bytes19","nodeType":"ElementaryTypeName","src":"4162:7:28","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"4161:12:28"},"returnParameters":{"id":11828,"nodeType":"ParameterList","parameters":[],"src":"4188:0:28"},"scope":19517,"src":"4142:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11851,"nodeType":"Block","src":"4317:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":11846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4367:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":11847,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11840,"src":"4383:2:28","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":11844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4343:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4347:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4343:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11843,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4327:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11850,"nodeType":"ExpressionStatement","src":"4327:60:28"}]},"id":11852,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"4280:10:28","nodeType":"FunctionDefinition","parameters":{"id":11841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11840,"mutability":"mutable","name":"p0","nameLocation":"4299:2:28","nodeType":"VariableDeclaration","scope":11852,"src":"4291:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":11839,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4291:7:28","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"4290:12:28"},"returnParameters":{"id":11842,"nodeType":"ParameterList","parameters":[],"src":"4317:0:28"},"scope":19517,"src":"4271:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11865,"nodeType":"Block","src":"4446:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":11860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4496:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":11861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11854,"src":"4512:2:28","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":11858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4472:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4476:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4472:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4472:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4456:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11864,"nodeType":"ExpressionStatement","src":"4456:60:28"}]},"id":11866,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"4409:10:28","nodeType":"FunctionDefinition","parameters":{"id":11855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11854,"mutability":"mutable","name":"p0","nameLocation":"4428:2:28","nodeType":"VariableDeclaration","scope":11866,"src":"4420:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":11853,"name":"bytes21","nodeType":"ElementaryTypeName","src":"4420:7:28","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"4419:12:28"},"returnParameters":{"id":11856,"nodeType":"ParameterList","parameters":[],"src":"4446:0:28"},"scope":19517,"src":"4400:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11879,"nodeType":"Block","src":"4575:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":11874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4625:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":11875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11868,"src":"4641:2:28","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":11872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4601:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4605:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4601:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4585:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11878,"nodeType":"ExpressionStatement","src":"4585:60:28"}]},"id":11880,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4538:10:28","nodeType":"FunctionDefinition","parameters":{"id":11869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11868,"mutability":"mutable","name":"p0","nameLocation":"4557:2:28","nodeType":"VariableDeclaration","scope":11880,"src":"4549:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":11867,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4549:7:28","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4548:12:28"},"returnParameters":{"id":11870,"nodeType":"ParameterList","parameters":[],"src":"4575:0:28"},"scope":19517,"src":"4529:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11893,"nodeType":"Block","src":"4704:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":11888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4754:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":11889,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11882,"src":"4770:2:28","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":11886,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4730:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4734:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4730:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11885,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4714:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11892,"nodeType":"ExpressionStatement","src":"4714:60:28"}]},"id":11894,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4667:10:28","nodeType":"FunctionDefinition","parameters":{"id":11883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11882,"mutability":"mutable","name":"p0","nameLocation":"4686:2:28","nodeType":"VariableDeclaration","scope":11894,"src":"4678:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":11881,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4678:7:28","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4677:12:28"},"returnParameters":{"id":11884,"nodeType":"ParameterList","parameters":[],"src":"4704:0:28"},"scope":19517,"src":"4658:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11907,"nodeType":"Block","src":"4833:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":11902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4883:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":11903,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11896,"src":"4899:2:28","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":11900,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4859:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4863:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4859:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4859:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11899,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4843:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4843:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11906,"nodeType":"ExpressionStatement","src":"4843:60:28"}]},"id":11908,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4796:10:28","nodeType":"FunctionDefinition","parameters":{"id":11897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11896,"mutability":"mutable","name":"p0","nameLocation":"4815:2:28","nodeType":"VariableDeclaration","scope":11908,"src":"4807:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":11895,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4807:7:28","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4806:12:28"},"returnParameters":{"id":11898,"nodeType":"ParameterList","parameters":[],"src":"4833:0:28"},"scope":19517,"src":"4787:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11921,"nodeType":"Block","src":"4962:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":11916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5012:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":11917,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"5028:2:28","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":11914,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4988:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4992:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4988:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4988:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11913,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"4972:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4972:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11920,"nodeType":"ExpressionStatement","src":"4972:60:28"}]},"id":11922,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4925:10:28","nodeType":"FunctionDefinition","parameters":{"id":11911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11910,"mutability":"mutable","name":"p0","nameLocation":"4944:2:28","nodeType":"VariableDeclaration","scope":11922,"src":"4936:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":11909,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4936:7:28","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4935:12:28"},"returnParameters":{"id":11912,"nodeType":"ParameterList","parameters":[],"src":"4962:0:28"},"scope":19517,"src":"4916:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11935,"nodeType":"Block","src":"5091:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":11930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5141:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":11931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11924,"src":"5157:2:28","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":11928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5117:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5121:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5117:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5101:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5101:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11934,"nodeType":"ExpressionStatement","src":"5101:60:28"}]},"id":11936,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"5054:10:28","nodeType":"FunctionDefinition","parameters":{"id":11925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11924,"mutability":"mutable","name":"p0","nameLocation":"5073:2:28","nodeType":"VariableDeclaration","scope":11936,"src":"5065:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":11923,"name":"bytes26","nodeType":"ElementaryTypeName","src":"5065:7:28","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"5064:12:28"},"returnParameters":{"id":11926,"nodeType":"ParameterList","parameters":[],"src":"5091:0:28"},"scope":19517,"src":"5045:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11949,"nodeType":"Block","src":"5220:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":11944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5270:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":11945,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"5286:2:28","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":11942,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5246:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5250:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5246:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11941,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5230:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11948,"nodeType":"ExpressionStatement","src":"5230:60:28"}]},"id":11950,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"5183:10:28","nodeType":"FunctionDefinition","parameters":{"id":11939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11938,"mutability":"mutable","name":"p0","nameLocation":"5202:2:28","nodeType":"VariableDeclaration","scope":11950,"src":"5194:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":11937,"name":"bytes27","nodeType":"ElementaryTypeName","src":"5194:7:28","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"5193:12:28"},"returnParameters":{"id":11940,"nodeType":"ParameterList","parameters":[],"src":"5220:0:28"},"scope":19517,"src":"5174:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11963,"nodeType":"Block","src":"5349:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":11958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5399:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":11959,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11952,"src":"5415:2:28","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":11956,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5375:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5379:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5375:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11955,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5359:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5359:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11962,"nodeType":"ExpressionStatement","src":"5359:60:28"}]},"id":11964,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"5312:10:28","nodeType":"FunctionDefinition","parameters":{"id":11953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11952,"mutability":"mutable","name":"p0","nameLocation":"5331:2:28","nodeType":"VariableDeclaration","scope":11964,"src":"5323:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":11951,"name":"bytes28","nodeType":"ElementaryTypeName","src":"5323:7:28","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"5322:12:28"},"returnParameters":{"id":11954,"nodeType":"ParameterList","parameters":[],"src":"5349:0:28"},"scope":19517,"src":"5303:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11977,"nodeType":"Block","src":"5478:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":11972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5528:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":11973,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11966,"src":"5544:2:28","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":11970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5504:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5508:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5504:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11969,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5488:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11976,"nodeType":"ExpressionStatement","src":"5488:60:28"}]},"id":11978,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5441:10:28","nodeType":"FunctionDefinition","parameters":{"id":11967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11966,"mutability":"mutable","name":"p0","nameLocation":"5460:2:28","nodeType":"VariableDeclaration","scope":11978,"src":"5452:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":11965,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5452:7:28","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5451:12:28"},"returnParameters":{"id":11968,"nodeType":"ParameterList","parameters":[],"src":"5478:0:28"},"scope":19517,"src":"5432:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11991,"nodeType":"Block","src":"5607:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":11986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5657:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":11987,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"5673:2:28","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":11984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5633:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5637:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5633:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5633:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11983,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5617:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5617:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11990,"nodeType":"ExpressionStatement","src":"5617:60:28"}]},"id":11992,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5570:10:28","nodeType":"FunctionDefinition","parameters":{"id":11981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11980,"mutability":"mutable","name":"p0","nameLocation":"5589:2:28","nodeType":"VariableDeclaration","scope":11992,"src":"5581:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":11979,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5581:7:28","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5580:12:28"},"returnParameters":{"id":11982,"nodeType":"ParameterList","parameters":[],"src":"5607:0:28"},"scope":19517,"src":"5561:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12005,"nodeType":"Block","src":"5736:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":12000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":12001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11994,"src":"5802:2:28","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":11998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5762:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5766:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5762:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5746:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12004,"nodeType":"ExpressionStatement","src":"5746:60:28"}]},"id":12006,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5699:10:28","nodeType":"FunctionDefinition","parameters":{"id":11995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11994,"mutability":"mutable","name":"p0","nameLocation":"5718:2:28","nodeType":"VariableDeclaration","scope":12006,"src":"5710:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":11993,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5710:7:28","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5709:12:28"},"returnParameters":{"id":11996,"nodeType":"ParameterList","parameters":[],"src":"5736:0:28"},"scope":19517,"src":"5690:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12019,"nodeType":"Block","src":"5865:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":12014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5915:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":12015,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12008,"src":"5931:2:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12012,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5891:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5895:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5891:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12011,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5875:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12018,"nodeType":"ExpressionStatement","src":"5875:60:28"}]},"id":12020,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5828:10:28","nodeType":"FunctionDefinition","parameters":{"id":12009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12008,"mutability":"mutable","name":"p0","nameLocation":"5847:2:28","nodeType":"VariableDeclaration","scope":12020,"src":"5839:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5839:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5838:12:28"},"returnParameters":{"id":12010,"nodeType":"ParameterList","parameters":[],"src":"5865:0:28"},"scope":19517,"src":"5819:123:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12033,"nodeType":"Block","src":"5987:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":12028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6037:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":12029,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"6053:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12026,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6013:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6017:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6013:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12025,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"5997:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5997:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12032,"nodeType":"ExpressionStatement","src":"5997:60:28"}]},"id":12034,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5957:3:28","nodeType":"FunctionDefinition","parameters":{"id":12023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12022,"mutability":"mutable","name":"p0","nameLocation":"5969:2:28","nodeType":"VariableDeclaration","scope":12034,"src":"5961:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5961:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5960:12:28"},"returnParameters":{"id":12024,"nodeType":"ParameterList","parameters":[],"src":"5987:0:28"},"scope":19517,"src":"5948:116:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12047,"nodeType":"Block","src":"6115:76:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":12042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6165:13:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":12043,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12036,"src":"6180:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12040,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6141:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6145:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6141:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12039,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6125:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12046,"nodeType":"ExpressionStatement","src":"6125:59:28"}]},"id":12048,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6079:3:28","nodeType":"FunctionDefinition","parameters":{"id":12037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12036,"mutability":"mutable","name":"p0","nameLocation":"6097:2:28","nodeType":"VariableDeclaration","scope":12048,"src":"6083:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12035,"name":"string","nodeType":"ElementaryTypeName","src":"6083:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6082:18:28"},"returnParameters":{"id":12038,"nodeType":"ParameterList","parameters":[],"src":"6115:0:28"},"scope":19517,"src":"6070:121:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12061,"nodeType":"Block","src":"6233:74:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":12056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6283:11:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":12057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12050,"src":"6296:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6259:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6263:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6259:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6259:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6243:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6243:57:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12060,"nodeType":"ExpressionStatement","src":"6243:57:28"}]},"id":12062,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6206:3:28","nodeType":"FunctionDefinition","parameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12050,"mutability":"mutable","name":"p0","nameLocation":"6215:2:28","nodeType":"VariableDeclaration","scope":12062,"src":"6210:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12049,"name":"bool","nodeType":"ElementaryTypeName","src":"6210:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6209:9:28"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[],"src":"6233:0:28"},"scope":19517,"src":"6197:110:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12075,"nodeType":"Block","src":"6352:77:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":12070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6402:14:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":12071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"6418:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6378:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6378:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6362:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12074,"nodeType":"ExpressionStatement","src":"6362:60:28"}]},"id":12076,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6322:3:28","nodeType":"FunctionDefinition","parameters":{"id":12065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12064,"mutability":"mutable","name":"p0","nameLocation":"6334:2:28","nodeType":"VariableDeclaration","scope":12076,"src":"6326:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12063,"name":"address","nodeType":"ElementaryTypeName","src":"6326:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6325:12:28"},"returnParameters":{"id":12066,"nodeType":"ParameterList","parameters":[],"src":"6352:0:28"},"scope":19517,"src":"6313:116:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12092,"nodeType":"Block","src":"6486:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":12086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6536:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":12087,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"6560:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12088,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"6564:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12084,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6512:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6516:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6512:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6512:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12083,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6496:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12091,"nodeType":"ExpressionStatement","src":"6496:72:28"}]},"id":12093,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6444:3:28","nodeType":"FunctionDefinition","parameters":{"id":12081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12078,"mutability":"mutable","name":"p0","nameLocation":"6456:2:28","nodeType":"VariableDeclaration","scope":12093,"src":"6448:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6448:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12080,"mutability":"mutable","name":"p1","nameLocation":"6468:2:28","nodeType":"VariableDeclaration","scope":12093,"src":"6460:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12079,"name":"uint256","nodeType":"ElementaryTypeName","src":"6460:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6447:24:28"},"returnParameters":{"id":12082,"nodeType":"ParameterList","parameters":[],"src":"6486:0:28"},"scope":19517,"src":"6435:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12109,"nodeType":"Block","src":"6638:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":12103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6688:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":12104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12095,"src":"6711:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12097,"src":"6715:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6664:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6668:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6664:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6664:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6648:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12108,"nodeType":"ExpressionStatement","src":"6648:71:28"}]},"id":12110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6590:3:28","nodeType":"FunctionDefinition","parameters":{"id":12098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12095,"mutability":"mutable","name":"p0","nameLocation":"6602:2:28","nodeType":"VariableDeclaration","scope":12110,"src":"6594:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12094,"name":"uint256","nodeType":"ElementaryTypeName","src":"6594:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12097,"mutability":"mutable","name":"p1","nameLocation":"6620:2:28","nodeType":"VariableDeclaration","scope":12110,"src":"6606:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12096,"name":"string","nodeType":"ElementaryTypeName","src":"6606:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6593:30:28"},"returnParameters":{"id":12099,"nodeType":"ParameterList","parameters":[],"src":"6638:0:28"},"scope":19517,"src":"6581:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12126,"nodeType":"Block","src":"6780:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":12120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6830:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":12121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"6851:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"6855:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6806:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6810:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6806:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6790:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6790:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12125,"nodeType":"ExpressionStatement","src":"6790:69:28"}]},"id":12127,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6741:3:28","nodeType":"FunctionDefinition","parameters":{"id":12115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12112,"mutability":"mutable","name":"p0","nameLocation":"6753:2:28","nodeType":"VariableDeclaration","scope":12127,"src":"6745:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6745:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"p1","nameLocation":"6762:2:28","nodeType":"VariableDeclaration","scope":12127,"src":"6757:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12113,"name":"bool","nodeType":"ElementaryTypeName","src":"6757:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6744:21:28"},"returnParameters":{"id":12116,"nodeType":"ParameterList","parameters":[],"src":"6780:0:28"},"scope":19517,"src":"6732:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12143,"nodeType":"Block","src":"6923:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":12137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6973:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":12138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12129,"src":"6997:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"7001:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6949:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6953:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6949:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6949:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"6933:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6933:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12142,"nodeType":"ExpressionStatement","src":"6933:72:28"}]},"id":12144,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6881:3:28","nodeType":"FunctionDefinition","parameters":{"id":12132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12129,"mutability":"mutable","name":"p0","nameLocation":"6893:2:28","nodeType":"VariableDeclaration","scope":12144,"src":"6885:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12128,"name":"uint256","nodeType":"ElementaryTypeName","src":"6885:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12131,"mutability":"mutable","name":"p1","nameLocation":"6905:2:28","nodeType":"VariableDeclaration","scope":12144,"src":"6897:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12130,"name":"address","nodeType":"ElementaryTypeName","src":"6897:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6884:24:28"},"returnParameters":{"id":12133,"nodeType":"ParameterList","parameters":[],"src":"6923:0:28"},"scope":19517,"src":"6872:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12160,"nodeType":"Block","src":"7075:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":12154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7125:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":12155,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12146,"src":"7148:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12156,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12148,"src":"7152:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12152,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7101:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7105:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7101:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7101:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12151,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7085:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7085:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12159,"nodeType":"ExpressionStatement","src":"7085:71:28"}]},"id":12161,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7027:3:28","nodeType":"FunctionDefinition","parameters":{"id":12149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12146,"mutability":"mutable","name":"p0","nameLocation":"7045:2:28","nodeType":"VariableDeclaration","scope":12161,"src":"7031:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12145,"name":"string","nodeType":"ElementaryTypeName","src":"7031:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12148,"mutability":"mutable","name":"p1","nameLocation":"7057:2:28","nodeType":"VariableDeclaration","scope":12161,"src":"7049:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12147,"name":"uint256","nodeType":"ElementaryTypeName","src":"7049:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7030:30:28"},"returnParameters":{"id":12150,"nodeType":"ParameterList","parameters":[],"src":"7075:0:28"},"scope":19517,"src":"7018:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12177,"nodeType":"Block","src":"7232:87:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":12171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7282:20:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":12172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12163,"src":"7304:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12165,"src":"7308:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7258:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7262:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7258:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7258:53:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7242:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12176,"nodeType":"ExpressionStatement","src":"7242:70:28"}]},"id":12178,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7178:3:28","nodeType":"FunctionDefinition","parameters":{"id":12166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12163,"mutability":"mutable","name":"p0","nameLocation":"7196:2:28","nodeType":"VariableDeclaration","scope":12178,"src":"7182:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12162,"name":"string","nodeType":"ElementaryTypeName","src":"7182:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12165,"mutability":"mutable","name":"p1","nameLocation":"7214:2:28","nodeType":"VariableDeclaration","scope":12178,"src":"7200:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12164,"name":"string","nodeType":"ElementaryTypeName","src":"7200:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7181:36:28"},"returnParameters":{"id":12167,"nodeType":"ParameterList","parameters":[],"src":"7232:0:28"},"scope":19517,"src":"7169:150:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12194,"nodeType":"Block","src":"7379:85:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":12188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:18:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":12189,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12180,"src":"7449:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12190,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12182,"src":"7453:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7405:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7409:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7405:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7405:51:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12185,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7389:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7389:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12193,"nodeType":"ExpressionStatement","src":"7389:68:28"}]},"id":12195,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7334:3:28","nodeType":"FunctionDefinition","parameters":{"id":12183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12180,"mutability":"mutable","name":"p0","nameLocation":"7352:2:28","nodeType":"VariableDeclaration","scope":12195,"src":"7338:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12179,"name":"string","nodeType":"ElementaryTypeName","src":"7338:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12182,"mutability":"mutable","name":"p1","nameLocation":"7361:2:28","nodeType":"VariableDeclaration","scope":12195,"src":"7356:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12181,"name":"bool","nodeType":"ElementaryTypeName","src":"7356:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7337:27:28"},"returnParameters":{"id":12184,"nodeType":"ParameterList","parameters":[],"src":"7379:0:28"},"scope":19517,"src":"7325:139:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12211,"nodeType":"Block","src":"7527:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":12205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7577:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":12206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12197,"src":"7600:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12199,"src":"7604:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7553:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7557:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7553:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7553:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7537:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12210,"nodeType":"ExpressionStatement","src":"7537:71:28"}]},"id":12212,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7479:3:28","nodeType":"FunctionDefinition","parameters":{"id":12200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12197,"mutability":"mutable","name":"p0","nameLocation":"7497:2:28","nodeType":"VariableDeclaration","scope":12212,"src":"7483:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12196,"name":"string","nodeType":"ElementaryTypeName","src":"7483:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12199,"mutability":"mutable","name":"p1","nameLocation":"7509:2:28","nodeType":"VariableDeclaration","scope":12212,"src":"7501:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12198,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7482:30:28"},"returnParameters":{"id":12201,"nodeType":"ParameterList","parameters":[],"src":"7527:0:28"},"scope":19517,"src":"7470:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12228,"nodeType":"Block","src":"7669:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":12222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7719:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":12223,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12214,"src":"7740:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12224,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12216,"src":"7744:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7695:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7699:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7695:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7695:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7679:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12227,"nodeType":"ExpressionStatement","src":"7679:69:28"}]},"id":12229,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7630:3:28","nodeType":"FunctionDefinition","parameters":{"id":12217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12214,"mutability":"mutable","name":"p0","nameLocation":"7639:2:28","nodeType":"VariableDeclaration","scope":12229,"src":"7634:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12213,"name":"bool","nodeType":"ElementaryTypeName","src":"7634:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12216,"mutability":"mutable","name":"p1","nameLocation":"7651:2:28","nodeType":"VariableDeclaration","scope":12229,"src":"7643:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12215,"name":"uint256","nodeType":"ElementaryTypeName","src":"7643:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7633:21:28"},"returnParameters":{"id":12218,"nodeType":"ParameterList","parameters":[],"src":"7669:0:28"},"scope":19517,"src":"7621:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12245,"nodeType":"Block","src":"7815:85:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":12239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7865:18:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":12240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"7885:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12233,"src":"7889:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7841:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7845:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7841:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7841:51:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7825:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12244,"nodeType":"ExpressionStatement","src":"7825:68:28"}]},"id":12246,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7770:3:28","nodeType":"FunctionDefinition","parameters":{"id":12234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12231,"mutability":"mutable","name":"p0","nameLocation":"7779:2:28","nodeType":"VariableDeclaration","scope":12246,"src":"7774:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12230,"name":"bool","nodeType":"ElementaryTypeName","src":"7774:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12233,"mutability":"mutable","name":"p1","nameLocation":"7797:2:28","nodeType":"VariableDeclaration","scope":12246,"src":"7783:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12232,"name":"string","nodeType":"ElementaryTypeName","src":"7783:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7773:27:28"},"returnParameters":{"id":12235,"nodeType":"ParameterList","parameters":[],"src":"7815:0:28"},"scope":19517,"src":"7761:139:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12262,"nodeType":"Block","src":"7951:83:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":12256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8001:16:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":12257,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"8019:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12258,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"8023:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12254,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7977:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7981:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7977:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12253,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"7961:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7961:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12261,"nodeType":"ExpressionStatement","src":"7961:66:28"}]},"id":12263,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7915:3:28","nodeType":"FunctionDefinition","parameters":{"id":12251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12248,"mutability":"mutable","name":"p0","nameLocation":"7924:2:28","nodeType":"VariableDeclaration","scope":12263,"src":"7919:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12247,"name":"bool","nodeType":"ElementaryTypeName","src":"7919:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12250,"mutability":"mutable","name":"p1","nameLocation":"7933:2:28","nodeType":"VariableDeclaration","scope":12263,"src":"7928:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12249,"name":"bool","nodeType":"ElementaryTypeName","src":"7928:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7918:18:28"},"returnParameters":{"id":12252,"nodeType":"ParameterList","parameters":[],"src":"7951:0:28"},"scope":19517,"src":"7906:128:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12279,"nodeType":"Block","src":"8088:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":12273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8138:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":12274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"8159:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12275,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12267,"src":"8163:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8114:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8118:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8114:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8098:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8098:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12278,"nodeType":"ExpressionStatement","src":"8098:69:28"}]},"id":12280,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8049:3:28","nodeType":"FunctionDefinition","parameters":{"id":12268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12265,"mutability":"mutable","name":"p0","nameLocation":"8058:2:28","nodeType":"VariableDeclaration","scope":12280,"src":"8053:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12264,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12267,"mutability":"mutable","name":"p1","nameLocation":"8070:2:28","nodeType":"VariableDeclaration","scope":12280,"src":"8062:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12266,"name":"address","nodeType":"ElementaryTypeName","src":"8062:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8052:21:28"},"returnParameters":{"id":12269,"nodeType":"ParameterList","parameters":[],"src":"8088:0:28"},"scope":19517,"src":"8040:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12296,"nodeType":"Block","src":"8231:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":12290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8281:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":12291,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12282,"src":"8305:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12292,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12284,"src":"8309:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8257:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8261:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8257:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12287,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8241:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8241:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12295,"nodeType":"ExpressionStatement","src":"8241:72:28"}]},"id":12297,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8189:3:28","nodeType":"FunctionDefinition","parameters":{"id":12285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12282,"mutability":"mutable","name":"p0","nameLocation":"8201:2:28","nodeType":"VariableDeclaration","scope":12297,"src":"8193:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12281,"name":"address","nodeType":"ElementaryTypeName","src":"8193:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12284,"mutability":"mutable","name":"p1","nameLocation":"8213:2:28","nodeType":"VariableDeclaration","scope":12297,"src":"8205:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12283,"name":"uint256","nodeType":"ElementaryTypeName","src":"8205:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8192:24:28"},"returnParameters":{"id":12286,"nodeType":"ParameterList","parameters":[],"src":"8231:0:28"},"scope":19517,"src":"8180:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12313,"nodeType":"Block","src":"8383:88:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":12307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8433:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":12308,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"8456:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12309,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12301,"src":"8460:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12305,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8409:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8413:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8409:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8409:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12304,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8393:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8393:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12312,"nodeType":"ExpressionStatement","src":"8393:71:28"}]},"id":12314,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8335:3:28","nodeType":"FunctionDefinition","parameters":{"id":12302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12299,"mutability":"mutable","name":"p0","nameLocation":"8347:2:28","nodeType":"VariableDeclaration","scope":12314,"src":"8339:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12298,"name":"address","nodeType":"ElementaryTypeName","src":"8339:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12301,"mutability":"mutable","name":"p1","nameLocation":"8365:2:28","nodeType":"VariableDeclaration","scope":12314,"src":"8351:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12300,"name":"string","nodeType":"ElementaryTypeName","src":"8351:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8338:30:28"},"returnParameters":{"id":12303,"nodeType":"ParameterList","parameters":[],"src":"8383:0:28"},"scope":19517,"src":"8326:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12330,"nodeType":"Block","src":"8525:86:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":12324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8575:19:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":12325,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12316,"src":"8596:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12326,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12318,"src":"8600:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8551:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8555:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8551:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8551:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8535:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12329,"nodeType":"ExpressionStatement","src":"8535:69:28"}]},"id":12331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8486:3:28","nodeType":"FunctionDefinition","parameters":{"id":12319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12316,"mutability":"mutable","name":"p0","nameLocation":"8498:2:28","nodeType":"VariableDeclaration","scope":12331,"src":"8490:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12315,"name":"address","nodeType":"ElementaryTypeName","src":"8490:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12318,"mutability":"mutable","name":"p1","nameLocation":"8507:2:28","nodeType":"VariableDeclaration","scope":12331,"src":"8502:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12317,"name":"bool","nodeType":"ElementaryTypeName","src":"8502:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8489:21:28"},"returnParameters":{"id":12320,"nodeType":"ParameterList","parameters":[],"src":"8525:0:28"},"scope":19517,"src":"8477:134:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12347,"nodeType":"Block","src":"8668:89:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":12341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8718:22:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":12342,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"8742:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12343,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"8746:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12339,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8694:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8698:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8694:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8694:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12338,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8678:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8678:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12346,"nodeType":"ExpressionStatement","src":"8678:72:28"}]},"id":12348,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8626:3:28","nodeType":"FunctionDefinition","parameters":{"id":12336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"mutability":"mutable","name":"p0","nameLocation":"8638:2:28","nodeType":"VariableDeclaration","scope":12348,"src":"8630:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12332,"name":"address","nodeType":"ElementaryTypeName","src":"8630:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12335,"mutability":"mutable","name":"p1","nameLocation":"8650:2:28","nodeType":"VariableDeclaration","scope":12348,"src":"8642:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12334,"name":"address","nodeType":"ElementaryTypeName","src":"8642:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8629:24:28"},"returnParameters":{"id":12337,"nodeType":"ParameterList","parameters":[],"src":"8668:0:28"},"scope":19517,"src":"8617:140:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12367,"nodeType":"Block","src":"8826:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":12360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8876:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":12361,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12350,"src":"8908:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12362,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12352,"src":"8912:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12363,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12354,"src":"8916:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8852:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8856:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8852:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8852:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"8836:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8836:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12366,"nodeType":"ExpressionStatement","src":"8836:84:28"}]},"id":12368,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8772:3:28","nodeType":"FunctionDefinition","parameters":{"id":12355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12350,"mutability":"mutable","name":"p0","nameLocation":"8784:2:28","nodeType":"VariableDeclaration","scope":12368,"src":"8776:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12349,"name":"uint256","nodeType":"ElementaryTypeName","src":"8776:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12352,"mutability":"mutable","name":"p1","nameLocation":"8796:2:28","nodeType":"VariableDeclaration","scope":12368,"src":"8788:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12351,"name":"uint256","nodeType":"ElementaryTypeName","src":"8788:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12354,"mutability":"mutable","name":"p2","nameLocation":"8808:2:28","nodeType":"VariableDeclaration","scope":12368,"src":"8800:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12353,"name":"uint256","nodeType":"ElementaryTypeName","src":"8800:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8775:36:28"},"returnParameters":{"id":12356,"nodeType":"ParameterList","parameters":[],"src":"8826:0:28"},"scope":19517,"src":"8763:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12387,"nodeType":"Block","src":"9002:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":12380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9052:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":12381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"9083:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"9087:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12374,"src":"9091:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9028:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9032:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9028:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9028:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9012:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12386,"nodeType":"ExpressionStatement","src":"9012:83:28"}]},"id":12388,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8942:3:28","nodeType":"FunctionDefinition","parameters":{"id":12375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12370,"mutability":"mutable","name":"p0","nameLocation":"8954:2:28","nodeType":"VariableDeclaration","scope":12388,"src":"8946:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12369,"name":"uint256","nodeType":"ElementaryTypeName","src":"8946:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12372,"mutability":"mutable","name":"p1","nameLocation":"8966:2:28","nodeType":"VariableDeclaration","scope":12388,"src":"8958:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12371,"name":"uint256","nodeType":"ElementaryTypeName","src":"8958:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12374,"mutability":"mutable","name":"p2","nameLocation":"8984:2:28","nodeType":"VariableDeclaration","scope":12388,"src":"8970:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12373,"name":"string","nodeType":"ElementaryTypeName","src":"8970:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8945:42:28"},"returnParameters":{"id":12376,"nodeType":"ParameterList","parameters":[],"src":"9002:0:28"},"scope":19517,"src":"8933:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12407,"nodeType":"Block","src":"9168:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":12400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9218:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":12401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12390,"src":"9247:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12392,"src":"9251:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"9255:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9194:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9198:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9194:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9194:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9178:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9178:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12406,"nodeType":"ExpressionStatement","src":"9178:81:28"}]},"id":12408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9117:3:28","nodeType":"FunctionDefinition","parameters":{"id":12395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12390,"mutability":"mutable","name":"p0","nameLocation":"9129:2:28","nodeType":"VariableDeclaration","scope":12408,"src":"9121:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12389,"name":"uint256","nodeType":"ElementaryTypeName","src":"9121:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12392,"mutability":"mutable","name":"p1","nameLocation":"9141:2:28","nodeType":"VariableDeclaration","scope":12408,"src":"9133:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12391,"name":"uint256","nodeType":"ElementaryTypeName","src":"9133:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12394,"mutability":"mutable","name":"p2","nameLocation":"9150:2:28","nodeType":"VariableDeclaration","scope":12408,"src":"9145:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12393,"name":"bool","nodeType":"ElementaryTypeName","src":"9145:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9120:33:28"},"returnParameters":{"id":12396,"nodeType":"ParameterList","parameters":[],"src":"9168:0:28"},"scope":19517,"src":"9108:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12427,"nodeType":"Block","src":"9335:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":12420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9385:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":12421,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"9417:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12422,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12412,"src":"9421:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12423,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"9425:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9361:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9365:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9361:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9361:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9345:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12426,"nodeType":"ExpressionStatement","src":"9345:84:28"}]},"id":12428,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9281:3:28","nodeType":"FunctionDefinition","parameters":{"id":12415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12410,"mutability":"mutable","name":"p0","nameLocation":"9293:2:28","nodeType":"VariableDeclaration","scope":12428,"src":"9285:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12409,"name":"uint256","nodeType":"ElementaryTypeName","src":"9285:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12412,"mutability":"mutable","name":"p1","nameLocation":"9305:2:28","nodeType":"VariableDeclaration","scope":12428,"src":"9297:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12411,"name":"uint256","nodeType":"ElementaryTypeName","src":"9297:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12414,"mutability":"mutable","name":"p2","nameLocation":"9317:2:28","nodeType":"VariableDeclaration","scope":12428,"src":"9309:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12413,"name":"address","nodeType":"ElementaryTypeName","src":"9309:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9284:36:28"},"returnParameters":{"id":12416,"nodeType":"ParameterList","parameters":[],"src":"9335:0:28"},"scope":19517,"src":"9272:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12447,"nodeType":"Block","src":"9511:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":12440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9561:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":12441,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"9592:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12442,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"9596:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12443,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"9600:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9537:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9541:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9537:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9537:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9521:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9521:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12446,"nodeType":"ExpressionStatement","src":"9521:83:28"}]},"id":12448,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9451:3:28","nodeType":"FunctionDefinition","parameters":{"id":12435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12430,"mutability":"mutable","name":"p0","nameLocation":"9463:2:28","nodeType":"VariableDeclaration","scope":12448,"src":"9455:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12429,"name":"uint256","nodeType":"ElementaryTypeName","src":"9455:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12432,"mutability":"mutable","name":"p1","nameLocation":"9481:2:28","nodeType":"VariableDeclaration","scope":12448,"src":"9467:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12431,"name":"string","nodeType":"ElementaryTypeName","src":"9467:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12434,"mutability":"mutable","name":"p2","nameLocation":"9493:2:28","nodeType":"VariableDeclaration","scope":12448,"src":"9485:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12433,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9454:42:28"},"returnParameters":{"id":12436,"nodeType":"ParameterList","parameters":[],"src":"9511:0:28"},"scope":19517,"src":"9442:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12467,"nodeType":"Block","src":"9692:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9742:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":12461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12450,"src":"9772:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12452,"src":"9776:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12454,"src":"9780:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9718:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9722:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9718:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9718:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9702:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12466,"nodeType":"ExpressionStatement","src":"9702:82:28"}]},"id":12468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9626:3:28","nodeType":"FunctionDefinition","parameters":{"id":12455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12450,"mutability":"mutable","name":"p0","nameLocation":"9638:2:28","nodeType":"VariableDeclaration","scope":12468,"src":"9630:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12449,"name":"uint256","nodeType":"ElementaryTypeName","src":"9630:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12452,"mutability":"mutable","name":"p1","nameLocation":"9656:2:28","nodeType":"VariableDeclaration","scope":12468,"src":"9642:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12451,"name":"string","nodeType":"ElementaryTypeName","src":"9642:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12454,"mutability":"mutable","name":"p2","nameLocation":"9674:2:28","nodeType":"VariableDeclaration","scope":12468,"src":"9660:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12453,"name":"string","nodeType":"ElementaryTypeName","src":"9660:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9629:48:28"},"returnParameters":{"id":12456,"nodeType":"ParameterList","parameters":[],"src":"9692:0:28"},"scope":19517,"src":"9617:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12487,"nodeType":"Block","src":"9863:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":12480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9913:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":12481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"9941:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"9945:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"9949:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9889:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9893:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9889:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"9873:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12486,"nodeType":"ExpressionStatement","src":"9873:80:28"}]},"id":12488,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9806:3:28","nodeType":"FunctionDefinition","parameters":{"id":12475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12470,"mutability":"mutable","name":"p0","nameLocation":"9818:2:28","nodeType":"VariableDeclaration","scope":12488,"src":"9810:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12469,"name":"uint256","nodeType":"ElementaryTypeName","src":"9810:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12472,"mutability":"mutable","name":"p1","nameLocation":"9836:2:28","nodeType":"VariableDeclaration","scope":12488,"src":"9822:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12471,"name":"string","nodeType":"ElementaryTypeName","src":"9822:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12474,"mutability":"mutable","name":"p2","nameLocation":"9845:2:28","nodeType":"VariableDeclaration","scope":12488,"src":"9840:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12473,"name":"bool","nodeType":"ElementaryTypeName","src":"9840:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9809:39:28"},"returnParameters":{"id":12476,"nodeType":"ParameterList","parameters":[],"src":"9863:0:28"},"scope":19517,"src":"9797:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12507,"nodeType":"Block","src":"10035:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":12500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10085:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":12501,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12490,"src":"10116:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12502,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12492,"src":"10120:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12503,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12494,"src":"10124:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12498,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10061:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10065:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10061:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10045:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10045:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12506,"nodeType":"ExpressionStatement","src":"10045:83:28"}]},"id":12508,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9975:3:28","nodeType":"FunctionDefinition","parameters":{"id":12495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12490,"mutability":"mutable","name":"p0","nameLocation":"9987:2:28","nodeType":"VariableDeclaration","scope":12508,"src":"9979:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12489,"name":"uint256","nodeType":"ElementaryTypeName","src":"9979:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12492,"mutability":"mutable","name":"p1","nameLocation":"10005:2:28","nodeType":"VariableDeclaration","scope":12508,"src":"9991:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12491,"name":"string","nodeType":"ElementaryTypeName","src":"9991:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12494,"mutability":"mutable","name":"p2","nameLocation":"10017:2:28","nodeType":"VariableDeclaration","scope":12508,"src":"10009:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12493,"name":"address","nodeType":"ElementaryTypeName","src":"10009:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9978:42:28"},"returnParameters":{"id":12496,"nodeType":"ParameterList","parameters":[],"src":"10035:0:28"},"scope":19517,"src":"9966:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12527,"nodeType":"Block","src":"10201:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":12520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10251:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":12521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12510,"src":"10280:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12512,"src":"10284:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12514,"src":"10288:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10227:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10231:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10227:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10227:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10211:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10211:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12526,"nodeType":"ExpressionStatement","src":"10211:81:28"}]},"id":12528,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10150:3:28","nodeType":"FunctionDefinition","parameters":{"id":12515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12510,"mutability":"mutable","name":"p0","nameLocation":"10162:2:28","nodeType":"VariableDeclaration","scope":12528,"src":"10154:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12509,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12512,"mutability":"mutable","name":"p1","nameLocation":"10171:2:28","nodeType":"VariableDeclaration","scope":12528,"src":"10166:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12511,"name":"bool","nodeType":"ElementaryTypeName","src":"10166:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12514,"mutability":"mutable","name":"p2","nameLocation":"10183:2:28","nodeType":"VariableDeclaration","scope":12528,"src":"10175:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12513,"name":"uint256","nodeType":"ElementaryTypeName","src":"10175:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:33:28"},"returnParameters":{"id":12516,"nodeType":"ParameterList","parameters":[],"src":"10201:0:28"},"scope":19517,"src":"10141:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12547,"nodeType":"Block","src":"10371:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":12540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10421:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":12541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12530,"src":"10449:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12532,"src":"10453:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12534,"src":"10457:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10397:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10401:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10397:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10397:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10381:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10381:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12546,"nodeType":"ExpressionStatement","src":"10381:80:28"}]},"id":12548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10314:3:28","nodeType":"FunctionDefinition","parameters":{"id":12535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12530,"mutability":"mutable","name":"p0","nameLocation":"10326:2:28","nodeType":"VariableDeclaration","scope":12548,"src":"10318:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12529,"name":"uint256","nodeType":"ElementaryTypeName","src":"10318:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12532,"mutability":"mutable","name":"p1","nameLocation":"10335:2:28","nodeType":"VariableDeclaration","scope":12548,"src":"10330:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12531,"name":"bool","nodeType":"ElementaryTypeName","src":"10330:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12534,"mutability":"mutable","name":"p2","nameLocation":"10353:2:28","nodeType":"VariableDeclaration","scope":12548,"src":"10339:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12533,"name":"string","nodeType":"ElementaryTypeName","src":"10339:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10317:39:28"},"returnParameters":{"id":12536,"nodeType":"ParameterList","parameters":[],"src":"10371:0:28"},"scope":19517,"src":"10305:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12567,"nodeType":"Block","src":"10531:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":12560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10581:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":12561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12550,"src":"10607:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12552,"src":"10611:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12554,"src":"10615:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10557:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10561:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10557:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10557:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10541:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10541:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12566,"nodeType":"ExpressionStatement","src":"10541:78:28"}]},"id":12568,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10483:3:28","nodeType":"FunctionDefinition","parameters":{"id":12555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12550,"mutability":"mutable","name":"p0","nameLocation":"10495:2:28","nodeType":"VariableDeclaration","scope":12568,"src":"10487:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12549,"name":"uint256","nodeType":"ElementaryTypeName","src":"10487:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12552,"mutability":"mutable","name":"p1","nameLocation":"10504:2:28","nodeType":"VariableDeclaration","scope":12568,"src":"10499:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12551,"name":"bool","nodeType":"ElementaryTypeName","src":"10499:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12554,"mutability":"mutable","name":"p2","nameLocation":"10513:2:28","nodeType":"VariableDeclaration","scope":12568,"src":"10508:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12553,"name":"bool","nodeType":"ElementaryTypeName","src":"10508:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10486:30:28"},"returnParameters":{"id":12556,"nodeType":"ParameterList","parameters":[],"src":"10531:0:28"},"scope":19517,"src":"10474:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12587,"nodeType":"Block","src":"10692:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":12580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10742:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":12581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"10771:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12572,"src":"10775:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"10779:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10718:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10722:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10718:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10718:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10702:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10702:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12586,"nodeType":"ExpressionStatement","src":"10702:81:28"}]},"id":12588,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10641:3:28","nodeType":"FunctionDefinition","parameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12570,"mutability":"mutable","name":"p0","nameLocation":"10653:2:28","nodeType":"VariableDeclaration","scope":12588,"src":"10645:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12569,"name":"uint256","nodeType":"ElementaryTypeName","src":"10645:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12572,"mutability":"mutable","name":"p1","nameLocation":"10662:2:28","nodeType":"VariableDeclaration","scope":12588,"src":"10657:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12571,"name":"bool","nodeType":"ElementaryTypeName","src":"10657:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12574,"mutability":"mutable","name":"p2","nameLocation":"10674:2:28","nodeType":"VariableDeclaration","scope":12588,"src":"10666:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12573,"name":"address","nodeType":"ElementaryTypeName","src":"10666:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10644:33:28"},"returnParameters":{"id":12576,"nodeType":"ParameterList","parameters":[],"src":"10692:0:28"},"scope":19517,"src":"10632:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12607,"nodeType":"Block","src":"10859:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":12600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10909:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":12601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12590,"src":"10941:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12592,"src":"10945:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12594,"src":"10949:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10885:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10889:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10885:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10885:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"10869:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10869:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12606,"nodeType":"ExpressionStatement","src":"10869:84:28"}]},"id":12608,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10805:3:28","nodeType":"FunctionDefinition","parameters":{"id":12595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12590,"mutability":"mutable","name":"p0","nameLocation":"10817:2:28","nodeType":"VariableDeclaration","scope":12608,"src":"10809:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12589,"name":"uint256","nodeType":"ElementaryTypeName","src":"10809:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12592,"mutability":"mutable","name":"p1","nameLocation":"10829:2:28","nodeType":"VariableDeclaration","scope":12608,"src":"10821:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12591,"name":"address","nodeType":"ElementaryTypeName","src":"10821:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12594,"mutability":"mutable","name":"p2","nameLocation":"10841:2:28","nodeType":"VariableDeclaration","scope":12608,"src":"10833:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12593,"name":"uint256","nodeType":"ElementaryTypeName","src":"10833:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10808:36:28"},"returnParameters":{"id":12596,"nodeType":"ParameterList","parameters":[],"src":"10859:0:28"},"scope":19517,"src":"10796:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12627,"nodeType":"Block","src":"11035:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":12620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11085:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":12621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12610,"src":"11116:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12612,"src":"11120:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12614,"src":"11124:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11061:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11065:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11061:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11061:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11045:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12626,"nodeType":"ExpressionStatement","src":"11045:83:28"}]},"id":12628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10975:3:28","nodeType":"FunctionDefinition","parameters":{"id":12615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12610,"mutability":"mutable","name":"p0","nameLocation":"10987:2:28","nodeType":"VariableDeclaration","scope":12628,"src":"10979:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12609,"name":"uint256","nodeType":"ElementaryTypeName","src":"10979:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12612,"mutability":"mutable","name":"p1","nameLocation":"10999:2:28","nodeType":"VariableDeclaration","scope":12628,"src":"10991:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12611,"name":"address","nodeType":"ElementaryTypeName","src":"10991:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12614,"mutability":"mutable","name":"p2","nameLocation":"11017:2:28","nodeType":"VariableDeclaration","scope":12628,"src":"11003:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12613,"name":"string","nodeType":"ElementaryTypeName","src":"11003:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10978:42:28"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"11035:0:28"},"scope":19517,"src":"10966:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12647,"nodeType":"Block","src":"11201:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":12640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11251:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":12641,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12630,"src":"11280:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12642,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"11284:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12643,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12634,"src":"11288:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11227:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11231:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11227:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12637,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11211:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11211:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12646,"nodeType":"ExpressionStatement","src":"11211:81:28"}]},"id":12648,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11150:3:28","nodeType":"FunctionDefinition","parameters":{"id":12635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12630,"mutability":"mutable","name":"p0","nameLocation":"11162:2:28","nodeType":"VariableDeclaration","scope":12648,"src":"11154:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12629,"name":"uint256","nodeType":"ElementaryTypeName","src":"11154:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12632,"mutability":"mutable","name":"p1","nameLocation":"11174:2:28","nodeType":"VariableDeclaration","scope":12648,"src":"11166:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12631,"name":"address","nodeType":"ElementaryTypeName","src":"11166:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12634,"mutability":"mutable","name":"p2","nameLocation":"11183:2:28","nodeType":"VariableDeclaration","scope":12648,"src":"11178:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12633,"name":"bool","nodeType":"ElementaryTypeName","src":"11178:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11153:33:28"},"returnParameters":{"id":12636,"nodeType":"ParameterList","parameters":[],"src":"11201:0:28"},"scope":19517,"src":"11141:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12667,"nodeType":"Block","src":"11368:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":12660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11418:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":12661,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12650,"src":"11450:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12662,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12652,"src":"11454:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12663,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12654,"src":"11458:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11394:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11398:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11394:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11394:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11378:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11378:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12666,"nodeType":"ExpressionStatement","src":"11378:84:28"}]},"id":12668,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11314:3:28","nodeType":"FunctionDefinition","parameters":{"id":12655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12650,"mutability":"mutable","name":"p0","nameLocation":"11326:2:28","nodeType":"VariableDeclaration","scope":12668,"src":"11318:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12649,"name":"uint256","nodeType":"ElementaryTypeName","src":"11318:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12652,"mutability":"mutable","name":"p1","nameLocation":"11338:2:28","nodeType":"VariableDeclaration","scope":12668,"src":"11330:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12651,"name":"address","nodeType":"ElementaryTypeName","src":"11330:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12654,"mutability":"mutable","name":"p2","nameLocation":"11350:2:28","nodeType":"VariableDeclaration","scope":12668,"src":"11342:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12653,"name":"address","nodeType":"ElementaryTypeName","src":"11342:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11317:36:28"},"returnParameters":{"id":12656,"nodeType":"ParameterList","parameters":[],"src":"11368:0:28"},"scope":19517,"src":"11305:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12687,"nodeType":"Block","src":"11544:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":12680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11594:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":12681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"11625:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12672,"src":"11629:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"11633:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11570:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11574:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11570:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11570:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11554:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11554:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12686,"nodeType":"ExpressionStatement","src":"11554:83:28"}]},"id":12688,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11484:3:28","nodeType":"FunctionDefinition","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12670,"mutability":"mutable","name":"p0","nameLocation":"11502:2:28","nodeType":"VariableDeclaration","scope":12688,"src":"11488:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12669,"name":"string","nodeType":"ElementaryTypeName","src":"11488:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12672,"mutability":"mutable","name":"p1","nameLocation":"11514:2:28","nodeType":"VariableDeclaration","scope":12688,"src":"11506:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12671,"name":"uint256","nodeType":"ElementaryTypeName","src":"11506:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12674,"mutability":"mutable","name":"p2","nameLocation":"11526:2:28","nodeType":"VariableDeclaration","scope":12688,"src":"11518:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12673,"name":"uint256","nodeType":"ElementaryTypeName","src":"11518:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11487:42:28"},"returnParameters":{"id":12676,"nodeType":"ParameterList","parameters":[],"src":"11544:0:28"},"scope":19517,"src":"11475:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12707,"nodeType":"Block","src":"11725:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":12700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":12701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12690,"src":"11805:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12692,"src":"11809:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12694,"src":"11813:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11751:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11755:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11751:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11751:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11735:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11735:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12706,"nodeType":"ExpressionStatement","src":"11735:82:28"}]},"id":12708,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11659:3:28","nodeType":"FunctionDefinition","parameters":{"id":12695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12690,"mutability":"mutable","name":"p0","nameLocation":"11677:2:28","nodeType":"VariableDeclaration","scope":12708,"src":"11663:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12689,"name":"string","nodeType":"ElementaryTypeName","src":"11663:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12692,"mutability":"mutable","name":"p1","nameLocation":"11689:2:28","nodeType":"VariableDeclaration","scope":12708,"src":"11681:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12691,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12694,"mutability":"mutable","name":"p2","nameLocation":"11707:2:28","nodeType":"VariableDeclaration","scope":12708,"src":"11693:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12693,"name":"string","nodeType":"ElementaryTypeName","src":"11693:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11662:48:28"},"returnParameters":{"id":12696,"nodeType":"ParameterList","parameters":[],"src":"11725:0:28"},"scope":19517,"src":"11650:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12727,"nodeType":"Block","src":"11896:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":12720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11946:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":12721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"11974:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12722,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12712,"src":"11978:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12723,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12714,"src":"11982:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11922:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11926:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11922:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11922:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"11906:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11906:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12726,"nodeType":"ExpressionStatement","src":"11906:80:28"}]},"id":12728,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11839:3:28","nodeType":"FunctionDefinition","parameters":{"id":12715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12710,"mutability":"mutable","name":"p0","nameLocation":"11857:2:28","nodeType":"VariableDeclaration","scope":12728,"src":"11843:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12709,"name":"string","nodeType":"ElementaryTypeName","src":"11843:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12712,"mutability":"mutable","name":"p1","nameLocation":"11869:2:28","nodeType":"VariableDeclaration","scope":12728,"src":"11861:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12711,"name":"uint256","nodeType":"ElementaryTypeName","src":"11861:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12714,"mutability":"mutable","name":"p2","nameLocation":"11878:2:28","nodeType":"VariableDeclaration","scope":12728,"src":"11873:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12713,"name":"bool","nodeType":"ElementaryTypeName","src":"11873:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11842:39:28"},"returnParameters":{"id":12716,"nodeType":"ParameterList","parameters":[],"src":"11896:0:28"},"scope":19517,"src":"11830:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12747,"nodeType":"Block","src":"12068:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":12740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12118:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":12741,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12730,"src":"12149:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12742,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"12153:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12743,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12734,"src":"12157:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12738,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12094:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12098:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12094:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12094:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12737,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12078:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12746,"nodeType":"ExpressionStatement","src":"12078:83:28"}]},"id":12748,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12008:3:28","nodeType":"FunctionDefinition","parameters":{"id":12735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12730,"mutability":"mutable","name":"p0","nameLocation":"12026:2:28","nodeType":"VariableDeclaration","scope":12748,"src":"12012:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12729,"name":"string","nodeType":"ElementaryTypeName","src":"12012:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12732,"mutability":"mutable","name":"p1","nameLocation":"12038:2:28","nodeType":"VariableDeclaration","scope":12748,"src":"12030:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12731,"name":"uint256","nodeType":"ElementaryTypeName","src":"12030:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12734,"mutability":"mutable","name":"p2","nameLocation":"12050:2:28","nodeType":"VariableDeclaration","scope":12748,"src":"12042:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12733,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12011:42:28"},"returnParameters":{"id":12736,"nodeType":"ParameterList","parameters":[],"src":"12068:0:28"},"scope":19517,"src":"11999:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12767,"nodeType":"Block","src":"12249:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":12760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12299:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":12761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12750,"src":"12329:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12752,"src":"12333:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12754,"src":"12337:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12275:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12279:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12275:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12275:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12259:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12259:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12766,"nodeType":"ExpressionStatement","src":"12259:82:28"}]},"id":12768,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12183:3:28","nodeType":"FunctionDefinition","parameters":{"id":12755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12750,"mutability":"mutable","name":"p0","nameLocation":"12201:2:28","nodeType":"VariableDeclaration","scope":12768,"src":"12187:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12749,"name":"string","nodeType":"ElementaryTypeName","src":"12187:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12752,"mutability":"mutable","name":"p1","nameLocation":"12219:2:28","nodeType":"VariableDeclaration","scope":12768,"src":"12205:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12751,"name":"string","nodeType":"ElementaryTypeName","src":"12205:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12754,"mutability":"mutable","name":"p2","nameLocation":"12231:2:28","nodeType":"VariableDeclaration","scope":12768,"src":"12223:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12753,"name":"uint256","nodeType":"ElementaryTypeName","src":"12223:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12186:48:28"},"returnParameters":{"id":12756,"nodeType":"ParameterList","parameters":[],"src":"12249:0:28"},"scope":19517,"src":"12174:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12787,"nodeType":"Block","src":"12435:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":12780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12485:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":12781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12770,"src":"12514:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12772,"src":"12518:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12774,"src":"12522:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12461:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12465:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12461:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12461:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12445:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12445:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12786,"nodeType":"ExpressionStatement","src":"12445:81:28"}]},"id":12788,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12363:3:28","nodeType":"FunctionDefinition","parameters":{"id":12775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12770,"mutability":"mutable","name":"p0","nameLocation":"12381:2:28","nodeType":"VariableDeclaration","scope":12788,"src":"12367:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12769,"name":"string","nodeType":"ElementaryTypeName","src":"12367:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12772,"mutability":"mutable","name":"p1","nameLocation":"12399:2:28","nodeType":"VariableDeclaration","scope":12788,"src":"12385:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12771,"name":"string","nodeType":"ElementaryTypeName","src":"12385:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12774,"mutability":"mutable","name":"p2","nameLocation":"12417:2:28","nodeType":"VariableDeclaration","scope":12788,"src":"12403:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12773,"name":"string","nodeType":"ElementaryTypeName","src":"12403:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12366:54:28"},"returnParameters":{"id":12776,"nodeType":"ParameterList","parameters":[],"src":"12435:0:28"},"scope":19517,"src":"12354:179:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12807,"nodeType":"Block","src":"12611:96:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":12800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12661:25:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":12801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12790,"src":"12688:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12802,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"12692:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12803,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12794,"src":"12696:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12637:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12641:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12637:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12637:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12621:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12621:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12806,"nodeType":"ExpressionStatement","src":"12621:79:28"}]},"id":12808,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12548:3:28","nodeType":"FunctionDefinition","parameters":{"id":12795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12790,"mutability":"mutable","name":"p0","nameLocation":"12566:2:28","nodeType":"VariableDeclaration","scope":12808,"src":"12552:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12789,"name":"string","nodeType":"ElementaryTypeName","src":"12552:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12792,"mutability":"mutable","name":"p1","nameLocation":"12584:2:28","nodeType":"VariableDeclaration","scope":12808,"src":"12570:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12791,"name":"string","nodeType":"ElementaryTypeName","src":"12570:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12794,"mutability":"mutable","name":"p2","nameLocation":"12593:2:28","nodeType":"VariableDeclaration","scope":12808,"src":"12588:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12793,"name":"bool","nodeType":"ElementaryTypeName","src":"12588:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12551:45:28"},"returnParameters":{"id":12796,"nodeType":"ParameterList","parameters":[],"src":"12611:0:28"},"scope":19517,"src":"12539:168:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12827,"nodeType":"Block","src":"12788:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":12820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12838:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":12821,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12810,"src":"12868:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12822,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12812,"src":"12872:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12823,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12814,"src":"12876:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12814:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12818:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12814:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12814:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12817,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12798:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12798:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12826,"nodeType":"ExpressionStatement","src":"12798:82:28"}]},"id":12828,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12722:3:28","nodeType":"FunctionDefinition","parameters":{"id":12815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12810,"mutability":"mutable","name":"p0","nameLocation":"12740:2:28","nodeType":"VariableDeclaration","scope":12828,"src":"12726:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12809,"name":"string","nodeType":"ElementaryTypeName","src":"12726:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12812,"mutability":"mutable","name":"p1","nameLocation":"12758:2:28","nodeType":"VariableDeclaration","scope":12828,"src":"12744:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12811,"name":"string","nodeType":"ElementaryTypeName","src":"12744:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12814,"mutability":"mutable","name":"p2","nameLocation":"12770:2:28","nodeType":"VariableDeclaration","scope":12828,"src":"12762:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12813,"name":"address","nodeType":"ElementaryTypeName","src":"12762:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12725:48:28"},"returnParameters":{"id":12816,"nodeType":"ParameterList","parameters":[],"src":"12788:0:28"},"scope":19517,"src":"12713:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12847,"nodeType":"Block","src":"12959:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":12840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13009:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":12841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12830,"src":"13037:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12832,"src":"13041:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12834,"src":"13045:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12985:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12989:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12985:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12985:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"12969:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12969:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12846,"nodeType":"ExpressionStatement","src":"12969:80:28"}]},"id":12848,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12902:3:28","nodeType":"FunctionDefinition","parameters":{"id":12835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12830,"mutability":"mutable","name":"p0","nameLocation":"12920:2:28","nodeType":"VariableDeclaration","scope":12848,"src":"12906:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12829,"name":"string","nodeType":"ElementaryTypeName","src":"12906:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12832,"mutability":"mutable","name":"p1","nameLocation":"12929:2:28","nodeType":"VariableDeclaration","scope":12848,"src":"12924:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12831,"name":"bool","nodeType":"ElementaryTypeName","src":"12924:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12834,"mutability":"mutable","name":"p2","nameLocation":"12941:2:28","nodeType":"VariableDeclaration","scope":12848,"src":"12933:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12833,"name":"uint256","nodeType":"ElementaryTypeName","src":"12933:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12905:39:28"},"returnParameters":{"id":12836,"nodeType":"ParameterList","parameters":[],"src":"12959:0:28"},"scope":19517,"src":"12893:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12867,"nodeType":"Block","src":"13134:96:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":12860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13184:25:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":12861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12850,"src":"13211:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12862,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"13215:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12863,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12854,"src":"13219:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13160:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13164:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13160:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13160:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13144:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13144:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12866,"nodeType":"ExpressionStatement","src":"13144:79:28"}]},"id":12868,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13071:3:28","nodeType":"FunctionDefinition","parameters":{"id":12855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12850,"mutability":"mutable","name":"p0","nameLocation":"13089:2:28","nodeType":"VariableDeclaration","scope":12868,"src":"13075:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12849,"name":"string","nodeType":"ElementaryTypeName","src":"13075:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12852,"mutability":"mutable","name":"p1","nameLocation":"13098:2:28","nodeType":"VariableDeclaration","scope":12868,"src":"13093:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12851,"name":"bool","nodeType":"ElementaryTypeName","src":"13093:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12854,"mutability":"mutable","name":"p2","nameLocation":"13116:2:28","nodeType":"VariableDeclaration","scope":12868,"src":"13102:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12853,"name":"string","nodeType":"ElementaryTypeName","src":"13102:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13074:45:28"},"returnParameters":{"id":12856,"nodeType":"ParameterList","parameters":[],"src":"13134:0:28"},"scope":19517,"src":"13062:168:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12887,"nodeType":"Block","src":"13299:94:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":12880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13349:23:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":12881,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12870,"src":"13374:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12882,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"13378:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12883,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"13382:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13325:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13329:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13325:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13325:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13309:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13309:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12886,"nodeType":"ExpressionStatement","src":"13309:77:28"}]},"id":12888,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13245:3:28","nodeType":"FunctionDefinition","parameters":{"id":12875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12870,"mutability":"mutable","name":"p0","nameLocation":"13263:2:28","nodeType":"VariableDeclaration","scope":12888,"src":"13249:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12869,"name":"string","nodeType":"ElementaryTypeName","src":"13249:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12872,"mutability":"mutable","name":"p1","nameLocation":"13272:2:28","nodeType":"VariableDeclaration","scope":12888,"src":"13267:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12871,"name":"bool","nodeType":"ElementaryTypeName","src":"13267:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12874,"mutability":"mutable","name":"p2","nameLocation":"13281:2:28","nodeType":"VariableDeclaration","scope":12888,"src":"13276:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12873,"name":"bool","nodeType":"ElementaryTypeName","src":"13276:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13248:36:28"},"returnParameters":{"id":12876,"nodeType":"ParameterList","parameters":[],"src":"13299:0:28"},"scope":19517,"src":"13236:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12907,"nodeType":"Block","src":"13465:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":12900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13515:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":12901,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"13543:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12902,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12892,"src":"13547:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12903,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"13551:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13491:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13495:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13491:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12897,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13475:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13475:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12906,"nodeType":"ExpressionStatement","src":"13475:80:28"}]},"id":12908,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13408:3:28","nodeType":"FunctionDefinition","parameters":{"id":12895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12890,"mutability":"mutable","name":"p0","nameLocation":"13426:2:28","nodeType":"VariableDeclaration","scope":12908,"src":"13412:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12889,"name":"string","nodeType":"ElementaryTypeName","src":"13412:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12892,"mutability":"mutable","name":"p1","nameLocation":"13435:2:28","nodeType":"VariableDeclaration","scope":12908,"src":"13430:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12891,"name":"bool","nodeType":"ElementaryTypeName","src":"13430:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12894,"mutability":"mutable","name":"p2","nameLocation":"13447:2:28","nodeType":"VariableDeclaration","scope":12908,"src":"13439:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12893,"name":"address","nodeType":"ElementaryTypeName","src":"13439:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13411:39:28"},"returnParameters":{"id":12896,"nodeType":"ParameterList","parameters":[],"src":"13465:0:28"},"scope":19517,"src":"13399:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12927,"nodeType":"Block","src":"13637:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":12920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13687:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":12921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12910,"src":"13718:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12912,"src":"13722:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"13726:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13663:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13667:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13663:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13663:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13647:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13647:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12926,"nodeType":"ExpressionStatement","src":"13647:83:28"}]},"id":12928,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13577:3:28","nodeType":"FunctionDefinition","parameters":{"id":12915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12910,"mutability":"mutable","name":"p0","nameLocation":"13595:2:28","nodeType":"VariableDeclaration","scope":12928,"src":"13581:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12909,"name":"string","nodeType":"ElementaryTypeName","src":"13581:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12912,"mutability":"mutable","name":"p1","nameLocation":"13607:2:28","nodeType":"VariableDeclaration","scope":12928,"src":"13599:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12911,"name":"address","nodeType":"ElementaryTypeName","src":"13599:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12914,"mutability":"mutable","name":"p2","nameLocation":"13619:2:28","nodeType":"VariableDeclaration","scope":12928,"src":"13611:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12913,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13580:42:28"},"returnParameters":{"id":12916,"nodeType":"ParameterList","parameters":[],"src":"13637:0:28"},"scope":19517,"src":"13568:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12947,"nodeType":"Block","src":"13818:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":12940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13868:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":12941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"13898:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12942,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12932,"src":"13902:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12943,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12934,"src":"13906:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13844:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13848:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13844:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13844:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13828:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12946,"nodeType":"ExpressionStatement","src":"13828:82:28"}]},"id":12948,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13752:3:28","nodeType":"FunctionDefinition","parameters":{"id":12935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12930,"mutability":"mutable","name":"p0","nameLocation":"13770:2:28","nodeType":"VariableDeclaration","scope":12948,"src":"13756:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12929,"name":"string","nodeType":"ElementaryTypeName","src":"13756:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12932,"mutability":"mutable","name":"p1","nameLocation":"13782:2:28","nodeType":"VariableDeclaration","scope":12948,"src":"13774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12931,"name":"address","nodeType":"ElementaryTypeName","src":"13774:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12934,"mutability":"mutable","name":"p2","nameLocation":"13800:2:28","nodeType":"VariableDeclaration","scope":12948,"src":"13786:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12933,"name":"string","nodeType":"ElementaryTypeName","src":"13786:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13755:48:28"},"returnParameters":{"id":12936,"nodeType":"ParameterList","parameters":[],"src":"13818:0:28"},"scope":19517,"src":"13743:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12967,"nodeType":"Block","src":"13989:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":12960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14039:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":12961,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12950,"src":"14067:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12962,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12952,"src":"14071:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12963,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12954,"src":"14075:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14015:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14019:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14015:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14015:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12957,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"13999:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13999:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12966,"nodeType":"ExpressionStatement","src":"13999:80:28"}]},"id":12968,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13932:3:28","nodeType":"FunctionDefinition","parameters":{"id":12955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12950,"mutability":"mutable","name":"p0","nameLocation":"13950:2:28","nodeType":"VariableDeclaration","scope":12968,"src":"13936:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12949,"name":"string","nodeType":"ElementaryTypeName","src":"13936:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12952,"mutability":"mutable","name":"p1","nameLocation":"13962:2:28","nodeType":"VariableDeclaration","scope":12968,"src":"13954:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12951,"name":"address","nodeType":"ElementaryTypeName","src":"13954:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12954,"mutability":"mutable","name":"p2","nameLocation":"13971:2:28","nodeType":"VariableDeclaration","scope":12968,"src":"13966:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12953,"name":"bool","nodeType":"ElementaryTypeName","src":"13966:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13935:39:28"},"returnParameters":{"id":12956,"nodeType":"ParameterList","parameters":[],"src":"13989:0:28"},"scope":19517,"src":"13923:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12987,"nodeType":"Block","src":"14161:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":12980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14211:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":12981,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12970,"src":"14242:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12982,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12972,"src":"14246:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12983,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12974,"src":"14250:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14187:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14191:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14187:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14187:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12977,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14171:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14171:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12986,"nodeType":"ExpressionStatement","src":"14171:83:28"}]},"id":12988,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14101:3:28","nodeType":"FunctionDefinition","parameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12970,"mutability":"mutable","name":"p0","nameLocation":"14119:2:28","nodeType":"VariableDeclaration","scope":12988,"src":"14105:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12969,"name":"string","nodeType":"ElementaryTypeName","src":"14105:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12972,"mutability":"mutable","name":"p1","nameLocation":"14131:2:28","nodeType":"VariableDeclaration","scope":12988,"src":"14123:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12971,"name":"address","nodeType":"ElementaryTypeName","src":"14123:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"p2","nameLocation":"14143:2:28","nodeType":"VariableDeclaration","scope":12988,"src":"14135:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12973,"name":"address","nodeType":"ElementaryTypeName","src":"14135:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14104:42:28"},"returnParameters":{"id":12976,"nodeType":"ParameterList","parameters":[],"src":"14161:0:28"},"scope":19517,"src":"14092:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13007,"nodeType":"Block","src":"14327:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":13000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14377:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":13001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12990,"src":"14406:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12992,"src":"14410:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"14414:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14353:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14357:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14353:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14353:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14337:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14337:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13006,"nodeType":"ExpressionStatement","src":"14337:81:28"}]},"id":13008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14276:3:28","nodeType":"FunctionDefinition","parameters":{"id":12995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12990,"mutability":"mutable","name":"p0","nameLocation":"14285:2:28","nodeType":"VariableDeclaration","scope":13008,"src":"14280:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12989,"name":"bool","nodeType":"ElementaryTypeName","src":"14280:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12992,"mutability":"mutable","name":"p1","nameLocation":"14297:2:28","nodeType":"VariableDeclaration","scope":13008,"src":"14289:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12991,"name":"uint256","nodeType":"ElementaryTypeName","src":"14289:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12994,"mutability":"mutable","name":"p2","nameLocation":"14309:2:28","nodeType":"VariableDeclaration","scope":13008,"src":"14301:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12993,"name":"uint256","nodeType":"ElementaryTypeName","src":"14301:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14279:33:28"},"returnParameters":{"id":12996,"nodeType":"ParameterList","parameters":[],"src":"14327:0:28"},"scope":19517,"src":"14267:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13027,"nodeType":"Block","src":"14497:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":13020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14547:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":13021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13010,"src":"14575:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13022,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13012,"src":"14579:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13023,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13014,"src":"14583:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14523:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14527:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14523:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14523:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14507:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14507:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13026,"nodeType":"ExpressionStatement","src":"14507:80:28"}]},"id":13028,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14440:3:28","nodeType":"FunctionDefinition","parameters":{"id":13015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13010,"mutability":"mutable","name":"p0","nameLocation":"14449:2:28","nodeType":"VariableDeclaration","scope":13028,"src":"14444:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13009,"name":"bool","nodeType":"ElementaryTypeName","src":"14444:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13012,"mutability":"mutable","name":"p1","nameLocation":"14461:2:28","nodeType":"VariableDeclaration","scope":13028,"src":"14453:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13011,"name":"uint256","nodeType":"ElementaryTypeName","src":"14453:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13014,"mutability":"mutable","name":"p2","nameLocation":"14479:2:28","nodeType":"VariableDeclaration","scope":13028,"src":"14465:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13013,"name":"string","nodeType":"ElementaryTypeName","src":"14465:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14443:39:28"},"returnParameters":{"id":13016,"nodeType":"ParameterList","parameters":[],"src":"14497:0:28"},"scope":19517,"src":"14431:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13047,"nodeType":"Block","src":"14657:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":13040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14707:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":13041,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"14733:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13042,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13032,"src":"14737:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13043,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13034,"src":"14741:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13038,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14683:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14687:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14683:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14683:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13037,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14667:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14667:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13046,"nodeType":"ExpressionStatement","src":"14667:78:28"}]},"id":13048,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14609:3:28","nodeType":"FunctionDefinition","parameters":{"id":13035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13030,"mutability":"mutable","name":"p0","nameLocation":"14618:2:28","nodeType":"VariableDeclaration","scope":13048,"src":"14613:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13029,"name":"bool","nodeType":"ElementaryTypeName","src":"14613:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13032,"mutability":"mutable","name":"p1","nameLocation":"14630:2:28","nodeType":"VariableDeclaration","scope":13048,"src":"14622:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13031,"name":"uint256","nodeType":"ElementaryTypeName","src":"14622:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13034,"mutability":"mutable","name":"p2","nameLocation":"14639:2:28","nodeType":"VariableDeclaration","scope":13048,"src":"14634:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13033,"name":"bool","nodeType":"ElementaryTypeName","src":"14634:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14612:30:28"},"returnParameters":{"id":13036,"nodeType":"ParameterList","parameters":[],"src":"14657:0:28"},"scope":19517,"src":"14600:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13067,"nodeType":"Block","src":"14818:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":13060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14868:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":13061,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13050,"src":"14897:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13062,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13052,"src":"14901:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13063,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13054,"src":"14905:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14844:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14848:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14844:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14844:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13057,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14828:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14828:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13066,"nodeType":"ExpressionStatement","src":"14828:81:28"}]},"id":13068,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14767:3:28","nodeType":"FunctionDefinition","parameters":{"id":13055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13050,"mutability":"mutable","name":"p0","nameLocation":"14776:2:28","nodeType":"VariableDeclaration","scope":13068,"src":"14771:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13049,"name":"bool","nodeType":"ElementaryTypeName","src":"14771:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13052,"mutability":"mutable","name":"p1","nameLocation":"14788:2:28","nodeType":"VariableDeclaration","scope":13068,"src":"14780:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13051,"name":"uint256","nodeType":"ElementaryTypeName","src":"14780:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13054,"mutability":"mutable","name":"p2","nameLocation":"14800:2:28","nodeType":"VariableDeclaration","scope":13068,"src":"14792:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13053,"name":"address","nodeType":"ElementaryTypeName","src":"14792:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14770:33:28"},"returnParameters":{"id":13056,"nodeType":"ParameterList","parameters":[],"src":"14818:0:28"},"scope":19517,"src":"14758:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13087,"nodeType":"Block","src":"14988:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":13080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15038:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":13081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13070,"src":"15066:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13072,"src":"15070:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13074,"src":"15074:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15014:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15018:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15014:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"14998:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13086,"nodeType":"ExpressionStatement","src":"14998:80:28"}]},"id":13088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14931:3:28","nodeType":"FunctionDefinition","parameters":{"id":13075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13070,"mutability":"mutable","name":"p0","nameLocation":"14940:2:28","nodeType":"VariableDeclaration","scope":13088,"src":"14935:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13069,"name":"bool","nodeType":"ElementaryTypeName","src":"14935:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13072,"mutability":"mutable","name":"p1","nameLocation":"14958:2:28","nodeType":"VariableDeclaration","scope":13088,"src":"14944:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13071,"name":"string","nodeType":"ElementaryTypeName","src":"14944:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13074,"mutability":"mutable","name":"p2","nameLocation":"14970:2:28","nodeType":"VariableDeclaration","scope":13088,"src":"14962:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13073,"name":"uint256","nodeType":"ElementaryTypeName","src":"14962:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14934:39:28"},"returnParameters":{"id":13076,"nodeType":"ParameterList","parameters":[],"src":"14988:0:28"},"scope":19517,"src":"14922:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13107,"nodeType":"Block","src":"15163:96:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":13100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15213:25:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":13101,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13090,"src":"15240:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13102,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13092,"src":"15244:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13103,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13094,"src":"15248:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13098,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15189:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15193:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15189:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15189:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13097,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15173:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15173:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13106,"nodeType":"ExpressionStatement","src":"15173:79:28"}]},"id":13108,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15100:3:28","nodeType":"FunctionDefinition","parameters":{"id":13095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13090,"mutability":"mutable","name":"p0","nameLocation":"15109:2:28","nodeType":"VariableDeclaration","scope":13108,"src":"15104:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13089,"name":"bool","nodeType":"ElementaryTypeName","src":"15104:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13092,"mutability":"mutable","name":"p1","nameLocation":"15127:2:28","nodeType":"VariableDeclaration","scope":13108,"src":"15113:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13091,"name":"string","nodeType":"ElementaryTypeName","src":"15113:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13094,"mutability":"mutable","name":"p2","nameLocation":"15145:2:28","nodeType":"VariableDeclaration","scope":13108,"src":"15131:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13093,"name":"string","nodeType":"ElementaryTypeName","src":"15131:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15103:45:28"},"returnParameters":{"id":13096,"nodeType":"ParameterList","parameters":[],"src":"15163:0:28"},"scope":19517,"src":"15091:168:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13127,"nodeType":"Block","src":"15328:94:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":13120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15378:23:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":13121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13110,"src":"15403:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13112,"src":"15407:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13123,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"15411:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15354:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15358:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15354:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15354:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15338:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13126,"nodeType":"ExpressionStatement","src":"15338:77:28"}]},"id":13128,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15274:3:28","nodeType":"FunctionDefinition","parameters":{"id":13115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13110,"mutability":"mutable","name":"p0","nameLocation":"15283:2:28","nodeType":"VariableDeclaration","scope":13128,"src":"15278:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13109,"name":"bool","nodeType":"ElementaryTypeName","src":"15278:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13112,"mutability":"mutable","name":"p1","nameLocation":"15301:2:28","nodeType":"VariableDeclaration","scope":13128,"src":"15287:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13111,"name":"string","nodeType":"ElementaryTypeName","src":"15287:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13114,"mutability":"mutable","name":"p2","nameLocation":"15310:2:28","nodeType":"VariableDeclaration","scope":13128,"src":"15305:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13113,"name":"bool","nodeType":"ElementaryTypeName","src":"15305:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15277:36:28"},"returnParameters":{"id":13116,"nodeType":"ParameterList","parameters":[],"src":"15328:0:28"},"scope":19517,"src":"15265:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13147,"nodeType":"Block","src":"15494:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":13140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15544:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":13141,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13130,"src":"15572:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13142,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13132,"src":"15576:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13143,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13134,"src":"15580:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15520:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15524:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15520:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15520:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13137,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15504:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15504:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13146,"nodeType":"ExpressionStatement","src":"15504:80:28"}]},"id":13148,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15437:3:28","nodeType":"FunctionDefinition","parameters":{"id":13135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13130,"mutability":"mutable","name":"p0","nameLocation":"15446:2:28","nodeType":"VariableDeclaration","scope":13148,"src":"15441:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13129,"name":"bool","nodeType":"ElementaryTypeName","src":"15441:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13132,"mutability":"mutable","name":"p1","nameLocation":"15464:2:28","nodeType":"VariableDeclaration","scope":13148,"src":"15450:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13131,"name":"string","nodeType":"ElementaryTypeName","src":"15450:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13134,"mutability":"mutable","name":"p2","nameLocation":"15476:2:28","nodeType":"VariableDeclaration","scope":13148,"src":"15468:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13133,"name":"address","nodeType":"ElementaryTypeName","src":"15468:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15440:39:28"},"returnParameters":{"id":13136,"nodeType":"ParameterList","parameters":[],"src":"15494:0:28"},"scope":19517,"src":"15428:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13167,"nodeType":"Block","src":"15654:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":13160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15704:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":13161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13150,"src":"15730:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13152,"src":"15734:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13154,"src":"15738:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15680:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15684:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15680:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15680:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15664:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15664:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13166,"nodeType":"ExpressionStatement","src":"15664:78:28"}]},"id":13168,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15606:3:28","nodeType":"FunctionDefinition","parameters":{"id":13155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13150,"mutability":"mutable","name":"p0","nameLocation":"15615:2:28","nodeType":"VariableDeclaration","scope":13168,"src":"15610:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13149,"name":"bool","nodeType":"ElementaryTypeName","src":"15610:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13152,"mutability":"mutable","name":"p1","nameLocation":"15624:2:28","nodeType":"VariableDeclaration","scope":13168,"src":"15619:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13151,"name":"bool","nodeType":"ElementaryTypeName","src":"15619:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13154,"mutability":"mutable","name":"p2","nameLocation":"15636:2:28","nodeType":"VariableDeclaration","scope":13168,"src":"15628:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13153,"name":"uint256","nodeType":"ElementaryTypeName","src":"15628:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15609:30:28"},"returnParameters":{"id":13156,"nodeType":"ParameterList","parameters":[],"src":"15654:0:28"},"scope":19517,"src":"15597:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13187,"nodeType":"Block","src":"15818:94:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":13180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15868:23:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":13181,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"15893:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13182,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"15897:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13183,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13174,"src":"15901:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15844:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15848:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15844:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15844:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13177,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15828:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15828:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13186,"nodeType":"ExpressionStatement","src":"15828:77:28"}]},"id":13188,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15764:3:28","nodeType":"FunctionDefinition","parameters":{"id":13175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13170,"mutability":"mutable","name":"p0","nameLocation":"15773:2:28","nodeType":"VariableDeclaration","scope":13188,"src":"15768:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13169,"name":"bool","nodeType":"ElementaryTypeName","src":"15768:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13172,"mutability":"mutable","name":"p1","nameLocation":"15782:2:28","nodeType":"VariableDeclaration","scope":13188,"src":"15777:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13171,"name":"bool","nodeType":"ElementaryTypeName","src":"15777:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13174,"mutability":"mutable","name":"p2","nameLocation":"15800:2:28","nodeType":"VariableDeclaration","scope":13188,"src":"15786:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13173,"name":"string","nodeType":"ElementaryTypeName","src":"15786:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15767:36:28"},"returnParameters":{"id":13176,"nodeType":"ParameterList","parameters":[],"src":"15818:0:28"},"scope":19517,"src":"15755:157:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13207,"nodeType":"Block","src":"15972:92:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":13200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16022:21:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":13201,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13190,"src":"16045:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13202,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13192,"src":"16049:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13203,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13194,"src":"16053:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15998:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16002:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15998:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15998:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13197,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"15982:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15982:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13206,"nodeType":"ExpressionStatement","src":"15982:75:28"}]},"id":13208,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15927:3:28","nodeType":"FunctionDefinition","parameters":{"id":13195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13190,"mutability":"mutable","name":"p0","nameLocation":"15936:2:28","nodeType":"VariableDeclaration","scope":13208,"src":"15931:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13189,"name":"bool","nodeType":"ElementaryTypeName","src":"15931:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13192,"mutability":"mutable","name":"p1","nameLocation":"15945:2:28","nodeType":"VariableDeclaration","scope":13208,"src":"15940:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13191,"name":"bool","nodeType":"ElementaryTypeName","src":"15940:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13194,"mutability":"mutable","name":"p2","nameLocation":"15954:2:28","nodeType":"VariableDeclaration","scope":13208,"src":"15949:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13193,"name":"bool","nodeType":"ElementaryTypeName","src":"15949:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15930:27:28"},"returnParameters":{"id":13196,"nodeType":"ParameterList","parameters":[],"src":"15972:0:28"},"scope":19517,"src":"15918:146:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13227,"nodeType":"Block","src":"16127:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":13220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16177:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":13221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13210,"src":"16203:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13222,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13212,"src":"16207:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13223,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13214,"src":"16211:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16153:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16157:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16153:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16153:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16137:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16137:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13226,"nodeType":"ExpressionStatement","src":"16137:78:28"}]},"id":13228,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16079:3:28","nodeType":"FunctionDefinition","parameters":{"id":13215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13210,"mutability":"mutable","name":"p0","nameLocation":"16088:2:28","nodeType":"VariableDeclaration","scope":13228,"src":"16083:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13209,"name":"bool","nodeType":"ElementaryTypeName","src":"16083:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13212,"mutability":"mutable","name":"p1","nameLocation":"16097:2:28","nodeType":"VariableDeclaration","scope":13228,"src":"16092:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13211,"name":"bool","nodeType":"ElementaryTypeName","src":"16092:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13214,"mutability":"mutable","name":"p2","nameLocation":"16109:2:28","nodeType":"VariableDeclaration","scope":13228,"src":"16101:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13213,"name":"address","nodeType":"ElementaryTypeName","src":"16101:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16082:30:28"},"returnParameters":{"id":13216,"nodeType":"ParameterList","parameters":[],"src":"16127:0:28"},"scope":19517,"src":"16070:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13247,"nodeType":"Block","src":"16288:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":13240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16338:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":13241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13230,"src":"16367:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13232,"src":"16371:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13234,"src":"16375:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16314:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16318:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16314:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16314:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16298:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16298:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13246,"nodeType":"ExpressionStatement","src":"16298:81:28"}]},"id":13248,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16237:3:28","nodeType":"FunctionDefinition","parameters":{"id":13235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13230,"mutability":"mutable","name":"p0","nameLocation":"16246:2:28","nodeType":"VariableDeclaration","scope":13248,"src":"16241:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13229,"name":"bool","nodeType":"ElementaryTypeName","src":"16241:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13232,"mutability":"mutable","name":"p1","nameLocation":"16258:2:28","nodeType":"VariableDeclaration","scope":13248,"src":"16250:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13231,"name":"address","nodeType":"ElementaryTypeName","src":"16250:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13234,"mutability":"mutable","name":"p2","nameLocation":"16270:2:28","nodeType":"VariableDeclaration","scope":13248,"src":"16262:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13233,"name":"uint256","nodeType":"ElementaryTypeName","src":"16262:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16240:33:28"},"returnParameters":{"id":13236,"nodeType":"ParameterList","parameters":[],"src":"16288:0:28"},"scope":19517,"src":"16228:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13267,"nodeType":"Block","src":"16458:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":13260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16508:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":13261,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13250,"src":"16536:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13262,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13252,"src":"16540:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13263,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13254,"src":"16544:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16484:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16488:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16484:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16484:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13257,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16468:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13266,"nodeType":"ExpressionStatement","src":"16468:80:28"}]},"id":13268,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16401:3:28","nodeType":"FunctionDefinition","parameters":{"id":13255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13250,"mutability":"mutable","name":"p0","nameLocation":"16410:2:28","nodeType":"VariableDeclaration","scope":13268,"src":"16405:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13249,"name":"bool","nodeType":"ElementaryTypeName","src":"16405:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13252,"mutability":"mutable","name":"p1","nameLocation":"16422:2:28","nodeType":"VariableDeclaration","scope":13268,"src":"16414:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13251,"name":"address","nodeType":"ElementaryTypeName","src":"16414:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13254,"mutability":"mutable","name":"p2","nameLocation":"16440:2:28","nodeType":"VariableDeclaration","scope":13268,"src":"16426:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13253,"name":"string","nodeType":"ElementaryTypeName","src":"16426:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16404:39:28"},"returnParameters":{"id":13256,"nodeType":"ParameterList","parameters":[],"src":"16458:0:28"},"scope":19517,"src":"16392:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13287,"nodeType":"Block","src":"16618:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":13280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16668:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":13281,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"16694:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13282,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13272,"src":"16698:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13283,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13274,"src":"16702:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13278,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16644:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16648:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16644:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16644:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13277,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16628:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16628:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13286,"nodeType":"ExpressionStatement","src":"16628:78:28"}]},"id":13288,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16570:3:28","nodeType":"FunctionDefinition","parameters":{"id":13275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13270,"mutability":"mutable","name":"p0","nameLocation":"16579:2:28","nodeType":"VariableDeclaration","scope":13288,"src":"16574:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13269,"name":"bool","nodeType":"ElementaryTypeName","src":"16574:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13272,"mutability":"mutable","name":"p1","nameLocation":"16591:2:28","nodeType":"VariableDeclaration","scope":13288,"src":"16583:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13271,"name":"address","nodeType":"ElementaryTypeName","src":"16583:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13274,"mutability":"mutable","name":"p2","nameLocation":"16600:2:28","nodeType":"VariableDeclaration","scope":13288,"src":"16595:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13273,"name":"bool","nodeType":"ElementaryTypeName","src":"16595:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16573:30:28"},"returnParameters":{"id":13276,"nodeType":"ParameterList","parameters":[],"src":"16618:0:28"},"scope":19517,"src":"16561:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13307,"nodeType":"Block","src":"16779:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":13300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16829:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":13301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13290,"src":"16858:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13292,"src":"16862:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"16866:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16805:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16809:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16805:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16805:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16789:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16789:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13306,"nodeType":"ExpressionStatement","src":"16789:81:28"}]},"id":13308,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16728:3:28","nodeType":"FunctionDefinition","parameters":{"id":13295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13290,"mutability":"mutable","name":"p0","nameLocation":"16737:2:28","nodeType":"VariableDeclaration","scope":13308,"src":"16732:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13289,"name":"bool","nodeType":"ElementaryTypeName","src":"16732:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13292,"mutability":"mutable","name":"p1","nameLocation":"16749:2:28","nodeType":"VariableDeclaration","scope":13308,"src":"16741:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13291,"name":"address","nodeType":"ElementaryTypeName","src":"16741:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13294,"mutability":"mutable","name":"p2","nameLocation":"16761:2:28","nodeType":"VariableDeclaration","scope":13308,"src":"16753:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13293,"name":"address","nodeType":"ElementaryTypeName","src":"16753:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16731:33:28"},"returnParameters":{"id":13296,"nodeType":"ParameterList","parameters":[],"src":"16779:0:28"},"scope":19517,"src":"16719:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13327,"nodeType":"Block","src":"16946:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":13320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16996:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":13321,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13310,"src":"17028:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13322,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13312,"src":"17032:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13323,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13314,"src":"17036:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16972:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16976:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16972:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16972:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"16956:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16956:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13326,"nodeType":"ExpressionStatement","src":"16956:84:28"}]},"id":13328,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16892:3:28","nodeType":"FunctionDefinition","parameters":{"id":13315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13310,"mutability":"mutable","name":"p0","nameLocation":"16904:2:28","nodeType":"VariableDeclaration","scope":13328,"src":"16896:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13309,"name":"address","nodeType":"ElementaryTypeName","src":"16896:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13312,"mutability":"mutable","name":"p1","nameLocation":"16916:2:28","nodeType":"VariableDeclaration","scope":13328,"src":"16908:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13311,"name":"uint256","nodeType":"ElementaryTypeName","src":"16908:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13314,"mutability":"mutable","name":"p2","nameLocation":"16928:2:28","nodeType":"VariableDeclaration","scope":13328,"src":"16920:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13313,"name":"uint256","nodeType":"ElementaryTypeName","src":"16920:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16895:36:28"},"returnParameters":{"id":13316,"nodeType":"ParameterList","parameters":[],"src":"16946:0:28"},"scope":19517,"src":"16883:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13347,"nodeType":"Block","src":"17122:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":13340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17172:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":13341,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13330,"src":"17203:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13342,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13332,"src":"17207:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13343,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13334,"src":"17211:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17148:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17152:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17148:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17148:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13337,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17132:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13346,"nodeType":"ExpressionStatement","src":"17132:83:28"}]},"id":13348,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17062:3:28","nodeType":"FunctionDefinition","parameters":{"id":13335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13330,"mutability":"mutable","name":"p0","nameLocation":"17074:2:28","nodeType":"VariableDeclaration","scope":13348,"src":"17066:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13329,"name":"address","nodeType":"ElementaryTypeName","src":"17066:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13332,"mutability":"mutable","name":"p1","nameLocation":"17086:2:28","nodeType":"VariableDeclaration","scope":13348,"src":"17078:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13331,"name":"uint256","nodeType":"ElementaryTypeName","src":"17078:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13334,"mutability":"mutable","name":"p2","nameLocation":"17104:2:28","nodeType":"VariableDeclaration","scope":13348,"src":"17090:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13333,"name":"string","nodeType":"ElementaryTypeName","src":"17090:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17065:42:28"},"returnParameters":{"id":13336,"nodeType":"ParameterList","parameters":[],"src":"17122:0:28"},"scope":19517,"src":"17053:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13367,"nodeType":"Block","src":"17288:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":13360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17338:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":13361,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"17367:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13362,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13352,"src":"17371:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13363,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13354,"src":"17375:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17314:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17318:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17314:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17314:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17298:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17298:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13366,"nodeType":"ExpressionStatement","src":"17298:81:28"}]},"id":13368,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17237:3:28","nodeType":"FunctionDefinition","parameters":{"id":13355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13350,"mutability":"mutable","name":"p0","nameLocation":"17249:2:28","nodeType":"VariableDeclaration","scope":13368,"src":"17241:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13349,"name":"address","nodeType":"ElementaryTypeName","src":"17241:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13352,"mutability":"mutable","name":"p1","nameLocation":"17261:2:28","nodeType":"VariableDeclaration","scope":13368,"src":"17253:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13351,"name":"uint256","nodeType":"ElementaryTypeName","src":"17253:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13354,"mutability":"mutable","name":"p2","nameLocation":"17270:2:28","nodeType":"VariableDeclaration","scope":13368,"src":"17265:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13353,"name":"bool","nodeType":"ElementaryTypeName","src":"17265:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17240:33:28"},"returnParameters":{"id":13356,"nodeType":"ParameterList","parameters":[],"src":"17288:0:28"},"scope":19517,"src":"17228:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13387,"nodeType":"Block","src":"17455:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":13380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17505:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":13381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"17537:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13372,"src":"17541:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13374,"src":"17545:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17481:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17485:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17481:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17481:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17465:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17465:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13386,"nodeType":"ExpressionStatement","src":"17465:84:28"}]},"id":13388,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17401:3:28","nodeType":"FunctionDefinition","parameters":{"id":13375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13370,"mutability":"mutable","name":"p0","nameLocation":"17413:2:28","nodeType":"VariableDeclaration","scope":13388,"src":"17405:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13369,"name":"address","nodeType":"ElementaryTypeName","src":"17405:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13372,"mutability":"mutable","name":"p1","nameLocation":"17425:2:28","nodeType":"VariableDeclaration","scope":13388,"src":"17417:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13371,"name":"uint256","nodeType":"ElementaryTypeName","src":"17417:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13374,"mutability":"mutable","name":"p2","nameLocation":"17437:2:28","nodeType":"VariableDeclaration","scope":13388,"src":"17429:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13373,"name":"address","nodeType":"ElementaryTypeName","src":"17429:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17404:36:28"},"returnParameters":{"id":13376,"nodeType":"ParameterList","parameters":[],"src":"17455:0:28"},"scope":19517,"src":"17392:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13407,"nodeType":"Block","src":"17631:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":13400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17681:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":13401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"17712:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"17716:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"17720:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17657:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17661:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17657:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17641:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13406,"nodeType":"ExpressionStatement","src":"17641:83:28"}]},"id":13408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17571:3:28","nodeType":"FunctionDefinition","parameters":{"id":13395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13390,"mutability":"mutable","name":"p0","nameLocation":"17583:2:28","nodeType":"VariableDeclaration","scope":13408,"src":"17575:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13389,"name":"address","nodeType":"ElementaryTypeName","src":"17575:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13392,"mutability":"mutable","name":"p1","nameLocation":"17601:2:28","nodeType":"VariableDeclaration","scope":13408,"src":"17587:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13391,"name":"string","nodeType":"ElementaryTypeName","src":"17587:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13394,"mutability":"mutable","name":"p2","nameLocation":"17613:2:28","nodeType":"VariableDeclaration","scope":13408,"src":"17605:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13393,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17574:42:28"},"returnParameters":{"id":13396,"nodeType":"ParameterList","parameters":[],"src":"17631:0:28"},"scope":19517,"src":"17562:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13427,"nodeType":"Block","src":"17812:99:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":13420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17862:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":13421,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13410,"src":"17892:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13422,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13412,"src":"17896:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13423,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13414,"src":"17900:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17838:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17842:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17838:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17838:65:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17822:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17822:82:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13426,"nodeType":"ExpressionStatement","src":"17822:82:28"}]},"id":13428,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17746:3:28","nodeType":"FunctionDefinition","parameters":{"id":13415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13410,"mutability":"mutable","name":"p0","nameLocation":"17758:2:28","nodeType":"VariableDeclaration","scope":13428,"src":"17750:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13409,"name":"address","nodeType":"ElementaryTypeName","src":"17750:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13412,"mutability":"mutable","name":"p1","nameLocation":"17776:2:28","nodeType":"VariableDeclaration","scope":13428,"src":"17762:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13411,"name":"string","nodeType":"ElementaryTypeName","src":"17762:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13414,"mutability":"mutable","name":"p2","nameLocation":"17794:2:28","nodeType":"VariableDeclaration","scope":13428,"src":"17780:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13413,"name":"string","nodeType":"ElementaryTypeName","src":"17780:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17749:48:28"},"returnParameters":{"id":13416,"nodeType":"ParameterList","parameters":[],"src":"17812:0:28"},"scope":19517,"src":"17737:174:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13447,"nodeType":"Block","src":"17983:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":13440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18033:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":13441,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13430,"src":"18061:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13442,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13432,"src":"18065:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13443,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13434,"src":"18069:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18009:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18013:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18009:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18009:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"17993:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17993:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13446,"nodeType":"ExpressionStatement","src":"17993:80:28"}]},"id":13448,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17926:3:28","nodeType":"FunctionDefinition","parameters":{"id":13435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13430,"mutability":"mutable","name":"p0","nameLocation":"17938:2:28","nodeType":"VariableDeclaration","scope":13448,"src":"17930:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13429,"name":"address","nodeType":"ElementaryTypeName","src":"17930:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13432,"mutability":"mutable","name":"p1","nameLocation":"17956:2:28","nodeType":"VariableDeclaration","scope":13448,"src":"17942:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13431,"name":"string","nodeType":"ElementaryTypeName","src":"17942:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13434,"mutability":"mutable","name":"p2","nameLocation":"17965:2:28","nodeType":"VariableDeclaration","scope":13448,"src":"17960:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13433,"name":"bool","nodeType":"ElementaryTypeName","src":"17960:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17929:39:28"},"returnParameters":{"id":13436,"nodeType":"ParameterList","parameters":[],"src":"17983:0:28"},"scope":19517,"src":"17917:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13467,"nodeType":"Block","src":"18155:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":13460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18205:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":13461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"18236:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13452,"src":"18240:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13454,"src":"18244:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18181:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18185:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18181:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18181:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18165:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13466,"nodeType":"ExpressionStatement","src":"18165:83:28"}]},"id":13468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18095:3:28","nodeType":"FunctionDefinition","parameters":{"id":13455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13450,"mutability":"mutable","name":"p0","nameLocation":"18107:2:28","nodeType":"VariableDeclaration","scope":13468,"src":"18099:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13449,"name":"address","nodeType":"ElementaryTypeName","src":"18099:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13452,"mutability":"mutable","name":"p1","nameLocation":"18125:2:28","nodeType":"VariableDeclaration","scope":13468,"src":"18111:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13451,"name":"string","nodeType":"ElementaryTypeName","src":"18111:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13454,"mutability":"mutable","name":"p2","nameLocation":"18137:2:28","nodeType":"VariableDeclaration","scope":13468,"src":"18129:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13453,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18098:42:28"},"returnParameters":{"id":13456,"nodeType":"ParameterList","parameters":[],"src":"18155:0:28"},"scope":19517,"src":"18086:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13487,"nodeType":"Block","src":"18321:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":13480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18371:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":13481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13470,"src":"18400:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13472,"src":"18404:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13474,"src":"18408:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18347:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18351:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18347:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18347:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18331:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13486,"nodeType":"ExpressionStatement","src":"18331:81:28"}]},"id":13488,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18270:3:28","nodeType":"FunctionDefinition","parameters":{"id":13475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13470,"mutability":"mutable","name":"p0","nameLocation":"18282:2:28","nodeType":"VariableDeclaration","scope":13488,"src":"18274:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13469,"name":"address","nodeType":"ElementaryTypeName","src":"18274:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13472,"mutability":"mutable","name":"p1","nameLocation":"18291:2:28","nodeType":"VariableDeclaration","scope":13488,"src":"18286:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13471,"name":"bool","nodeType":"ElementaryTypeName","src":"18286:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13474,"mutability":"mutable","name":"p2","nameLocation":"18303:2:28","nodeType":"VariableDeclaration","scope":13488,"src":"18295:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13473,"name":"uint256","nodeType":"ElementaryTypeName","src":"18295:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18273:33:28"},"returnParameters":{"id":13476,"nodeType":"ParameterList","parameters":[],"src":"18321:0:28"},"scope":19517,"src":"18261:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13507,"nodeType":"Block","src":"18491:97:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":13500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18541:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":13501,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13490,"src":"18569:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13502,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"18573:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13503,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13494,"src":"18577:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13498,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18517:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18521:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18517:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18501:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18501:80:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13506,"nodeType":"ExpressionStatement","src":"18501:80:28"}]},"id":13508,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18434:3:28","nodeType":"FunctionDefinition","parameters":{"id":13495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13490,"mutability":"mutable","name":"p0","nameLocation":"18446:2:28","nodeType":"VariableDeclaration","scope":13508,"src":"18438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13489,"name":"address","nodeType":"ElementaryTypeName","src":"18438:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13492,"mutability":"mutable","name":"p1","nameLocation":"18455:2:28","nodeType":"VariableDeclaration","scope":13508,"src":"18450:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13491,"name":"bool","nodeType":"ElementaryTypeName","src":"18450:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13494,"mutability":"mutable","name":"p2","nameLocation":"18473:2:28","nodeType":"VariableDeclaration","scope":13508,"src":"18459:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13493,"name":"string","nodeType":"ElementaryTypeName","src":"18459:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18437:39:28"},"returnParameters":{"id":13496,"nodeType":"ParameterList","parameters":[],"src":"18491:0:28"},"scope":19517,"src":"18425:163:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13527,"nodeType":"Block","src":"18651:95:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":13520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18701:24:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":13521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13510,"src":"18727:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13512,"src":"18731:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13514,"src":"18735:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18677:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18681:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18677:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18677:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18661:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18661:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13526,"nodeType":"ExpressionStatement","src":"18661:78:28"}]},"id":13528,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18603:3:28","nodeType":"FunctionDefinition","parameters":{"id":13515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13510,"mutability":"mutable","name":"p0","nameLocation":"18615:2:28","nodeType":"VariableDeclaration","scope":13528,"src":"18607:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13509,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13512,"mutability":"mutable","name":"p1","nameLocation":"18624:2:28","nodeType":"VariableDeclaration","scope":13528,"src":"18619:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13511,"name":"bool","nodeType":"ElementaryTypeName","src":"18619:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13514,"mutability":"mutable","name":"p2","nameLocation":"18633:2:28","nodeType":"VariableDeclaration","scope":13528,"src":"18628:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13513,"name":"bool","nodeType":"ElementaryTypeName","src":"18628:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18606:30:28"},"returnParameters":{"id":13516,"nodeType":"ParameterList","parameters":[],"src":"18651:0:28"},"scope":19517,"src":"18594:152:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13547,"nodeType":"Block","src":"18812:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":13540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18862:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":13541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"18891:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"18895:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13534,"src":"18899:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18838:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18838:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18838:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18822:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18822:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13546,"nodeType":"ExpressionStatement","src":"18822:81:28"}]},"id":13548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18761:3:28","nodeType":"FunctionDefinition","parameters":{"id":13535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13530,"mutability":"mutable","name":"p0","nameLocation":"18773:2:28","nodeType":"VariableDeclaration","scope":13548,"src":"18765:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13529,"name":"address","nodeType":"ElementaryTypeName","src":"18765:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13532,"mutability":"mutable","name":"p1","nameLocation":"18782:2:28","nodeType":"VariableDeclaration","scope":13548,"src":"18777:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13531,"name":"bool","nodeType":"ElementaryTypeName","src":"18777:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"p2","nameLocation":"18794:2:28","nodeType":"VariableDeclaration","scope":13548,"src":"18786:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13533,"name":"address","nodeType":"ElementaryTypeName","src":"18786:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18764:33:28"},"returnParameters":{"id":13536,"nodeType":"ParameterList","parameters":[],"src":"18812:0:28"},"scope":19517,"src":"18752:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13567,"nodeType":"Block","src":"18979:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":13560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19029:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":13561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13550,"src":"19061:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"19065:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13554,"src":"19069:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19005:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19009:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19005:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19005:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"18989:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18989:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13566,"nodeType":"ExpressionStatement","src":"18989:84:28"}]},"id":13568,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18925:3:28","nodeType":"FunctionDefinition","parameters":{"id":13555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13550,"mutability":"mutable","name":"p0","nameLocation":"18937:2:28","nodeType":"VariableDeclaration","scope":13568,"src":"18929:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13549,"name":"address","nodeType":"ElementaryTypeName","src":"18929:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13552,"mutability":"mutable","name":"p1","nameLocation":"18949:2:28","nodeType":"VariableDeclaration","scope":13568,"src":"18941:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13551,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13554,"mutability":"mutable","name":"p2","nameLocation":"18961:2:28","nodeType":"VariableDeclaration","scope":13568,"src":"18953:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13553,"name":"uint256","nodeType":"ElementaryTypeName","src":"18953:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18928:36:28"},"returnParameters":{"id":13556,"nodeType":"ParameterList","parameters":[],"src":"18979:0:28"},"scope":19517,"src":"18916:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13587,"nodeType":"Block","src":"19155:100:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":13580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19205:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":13581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13570,"src":"19236:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13572,"src":"19240:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13574,"src":"19244:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19181:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19185:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19181:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19181:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19165:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19165:83:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13586,"nodeType":"ExpressionStatement","src":"19165:83:28"}]},"id":13588,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19095:3:28","nodeType":"FunctionDefinition","parameters":{"id":13575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13570,"mutability":"mutable","name":"p0","nameLocation":"19107:2:28","nodeType":"VariableDeclaration","scope":13588,"src":"19099:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13569,"name":"address","nodeType":"ElementaryTypeName","src":"19099:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13572,"mutability":"mutable","name":"p1","nameLocation":"19119:2:28","nodeType":"VariableDeclaration","scope":13588,"src":"19111:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13571,"name":"address","nodeType":"ElementaryTypeName","src":"19111:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13574,"mutability":"mutable","name":"p2","nameLocation":"19137:2:28","nodeType":"VariableDeclaration","scope":13588,"src":"19123:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13573,"name":"string","nodeType":"ElementaryTypeName","src":"19123:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19098:42:28"},"returnParameters":{"id":13576,"nodeType":"ParameterList","parameters":[],"src":"19155:0:28"},"scope":19517,"src":"19086:169:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13607,"nodeType":"Block","src":"19321:98:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":13600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19371:27:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":13601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13590,"src":"19400:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13592,"src":"19404:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13594,"src":"19408:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19347:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19351:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19347:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19347:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19331:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19331:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13606,"nodeType":"ExpressionStatement","src":"19331:81:28"}]},"id":13608,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19270:3:28","nodeType":"FunctionDefinition","parameters":{"id":13595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13590,"mutability":"mutable","name":"p0","nameLocation":"19282:2:28","nodeType":"VariableDeclaration","scope":13608,"src":"19274:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13589,"name":"address","nodeType":"ElementaryTypeName","src":"19274:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13592,"mutability":"mutable","name":"p1","nameLocation":"19294:2:28","nodeType":"VariableDeclaration","scope":13608,"src":"19286:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13591,"name":"address","nodeType":"ElementaryTypeName","src":"19286:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13594,"mutability":"mutable","name":"p2","nameLocation":"19303:2:28","nodeType":"VariableDeclaration","scope":13608,"src":"19298:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13593,"name":"bool","nodeType":"ElementaryTypeName","src":"19298:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19273:33:28"},"returnParameters":{"id":13596,"nodeType":"ParameterList","parameters":[],"src":"19321:0:28"},"scope":19517,"src":"19261:158:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13627,"nodeType":"Block","src":"19488:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":13620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19538:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":13621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13610,"src":"19570:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13612,"src":"19574:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13614,"src":"19578:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19514:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19518:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19514:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19514:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19498:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19498:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13626,"nodeType":"ExpressionStatement","src":"19498:84:28"}]},"id":13628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19434:3:28","nodeType":"FunctionDefinition","parameters":{"id":13615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13610,"mutability":"mutable","name":"p0","nameLocation":"19446:2:28","nodeType":"VariableDeclaration","scope":13628,"src":"19438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13609,"name":"address","nodeType":"ElementaryTypeName","src":"19438:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13612,"mutability":"mutable","name":"p1","nameLocation":"19458:2:28","nodeType":"VariableDeclaration","scope":13628,"src":"19450:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13611,"name":"address","nodeType":"ElementaryTypeName","src":"19450:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13614,"mutability":"mutable","name":"p2","nameLocation":"19470:2:28","nodeType":"VariableDeclaration","scope":13628,"src":"19462:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13613,"name":"address","nodeType":"ElementaryTypeName","src":"19462:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19437:36:28"},"returnParameters":{"id":13616,"nodeType":"ParameterList","parameters":[],"src":"19488:0:28"},"scope":19517,"src":"19425:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13650,"nodeType":"Block","src":"19670:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":13642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19720:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":13643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13630,"src":"19760:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13644,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13632,"src":"19764:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13645,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13634,"src":"19768:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13646,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13636,"src":"19772:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19696:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19700:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19696:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19680:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19680:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13649,"nodeType":"ExpressionStatement","src":"19680:96:28"}]},"id":13651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19604:3:28","nodeType":"FunctionDefinition","parameters":{"id":13637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13630,"mutability":"mutable","name":"p0","nameLocation":"19616:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19608:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13629,"name":"uint256","nodeType":"ElementaryTypeName","src":"19608:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13632,"mutability":"mutable","name":"p1","nameLocation":"19628:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19620:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13631,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13634,"mutability":"mutable","name":"p2","nameLocation":"19640:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19632:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13633,"name":"uint256","nodeType":"ElementaryTypeName","src":"19632:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13636,"mutability":"mutable","name":"p3","nameLocation":"19652:2:28","nodeType":"VariableDeclaration","scope":13651,"src":"19644:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13635,"name":"uint256","nodeType":"ElementaryTypeName","src":"19644:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19607:48:28"},"returnParameters":{"id":13638,"nodeType":"ParameterList","parameters":[],"src":"19670:0:28"},"scope":19517,"src":"19595:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13673,"nodeType":"Block","src":"19870:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":13665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19920:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":13666,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13653,"src":"19959:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13667,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13655,"src":"19963:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13668,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"19967:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13669,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13659,"src":"19971:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19896:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19900:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19896:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19896:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13662,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"19880:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19880:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13672,"nodeType":"ExpressionStatement","src":"19880:95:28"}]},"id":13674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19798:3:28","nodeType":"FunctionDefinition","parameters":{"id":13660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13653,"mutability":"mutable","name":"p0","nameLocation":"19810:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19802:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13652,"name":"uint256","nodeType":"ElementaryTypeName","src":"19802:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13655,"mutability":"mutable","name":"p1","nameLocation":"19822:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19814:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13654,"name":"uint256","nodeType":"ElementaryTypeName","src":"19814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13657,"mutability":"mutable","name":"p2","nameLocation":"19834:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19826:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13656,"name":"uint256","nodeType":"ElementaryTypeName","src":"19826:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13659,"mutability":"mutable","name":"p3","nameLocation":"19852:2:28","nodeType":"VariableDeclaration","scope":13674,"src":"19838:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13658,"name":"string","nodeType":"ElementaryTypeName","src":"19838:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19801:54:28"},"returnParameters":{"id":13661,"nodeType":"ParameterList","parameters":[],"src":"19870:0:28"},"scope":19517,"src":"19789:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13696,"nodeType":"Block","src":"20060:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":13688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20110:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":13689,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13676,"src":"20147:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13690,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13678,"src":"20151:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13691,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"20155:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13692,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"20159:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13686,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20086:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20090:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20086:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20086:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13685,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20070:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20070:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13695,"nodeType":"ExpressionStatement","src":"20070:93:28"}]},"id":13697,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19997:3:28","nodeType":"FunctionDefinition","parameters":{"id":13683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13676,"mutability":"mutable","name":"p0","nameLocation":"20009:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20001:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13675,"name":"uint256","nodeType":"ElementaryTypeName","src":"20001:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13678,"mutability":"mutable","name":"p1","nameLocation":"20021:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20013:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13677,"name":"uint256","nodeType":"ElementaryTypeName","src":"20013:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13680,"mutability":"mutable","name":"p2","nameLocation":"20033:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20025:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13679,"name":"uint256","nodeType":"ElementaryTypeName","src":"20025:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13682,"mutability":"mutable","name":"p3","nameLocation":"20042:2:28","nodeType":"VariableDeclaration","scope":13697,"src":"20037:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13681,"name":"bool","nodeType":"ElementaryTypeName","src":"20037:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20000:45:28"},"returnParameters":{"id":13684,"nodeType":"ParameterList","parameters":[],"src":"20060:0:28"},"scope":19517,"src":"19988:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13719,"nodeType":"Block","src":"20251:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":13711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20301:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":13712,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"20341:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13713,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"20345:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13714,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13703,"src":"20349:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13715,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"20353:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20277:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20281:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20277:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20277:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13708,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20261:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20261:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13718,"nodeType":"ExpressionStatement","src":"20261:96:28"}]},"id":13720,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20185:3:28","nodeType":"FunctionDefinition","parameters":{"id":13706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13699,"mutability":"mutable","name":"p0","nameLocation":"20197:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20189:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13698,"name":"uint256","nodeType":"ElementaryTypeName","src":"20189:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13701,"mutability":"mutable","name":"p1","nameLocation":"20209:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20201:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13700,"name":"uint256","nodeType":"ElementaryTypeName","src":"20201:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13703,"mutability":"mutable","name":"p2","nameLocation":"20221:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20213:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13702,"name":"uint256","nodeType":"ElementaryTypeName","src":"20213:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13705,"mutability":"mutable","name":"p3","nameLocation":"20233:2:28","nodeType":"VariableDeclaration","scope":13720,"src":"20225:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13704,"name":"address","nodeType":"ElementaryTypeName","src":"20225:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20188:48:28"},"returnParameters":{"id":13707,"nodeType":"ParameterList","parameters":[],"src":"20251:0:28"},"scope":19517,"src":"20176:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13742,"nodeType":"Block","src":"20451:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":13734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20501:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":13735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13722,"src":"20540:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13736,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13724,"src":"20544:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13737,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13726,"src":"20548:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13738,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13728,"src":"20552:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20477:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20481:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20477:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20477:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20461:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20461:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13741,"nodeType":"ExpressionStatement","src":"20461:95:28"}]},"id":13743,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20379:3:28","nodeType":"FunctionDefinition","parameters":{"id":13729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13722,"mutability":"mutable","name":"p0","nameLocation":"20391:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20383:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13721,"name":"uint256","nodeType":"ElementaryTypeName","src":"20383:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13724,"mutability":"mutable","name":"p1","nameLocation":"20403:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20395:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13723,"name":"uint256","nodeType":"ElementaryTypeName","src":"20395:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13726,"mutability":"mutable","name":"p2","nameLocation":"20421:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20407:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13725,"name":"string","nodeType":"ElementaryTypeName","src":"20407:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13728,"mutability":"mutable","name":"p3","nameLocation":"20433:2:28","nodeType":"VariableDeclaration","scope":13743,"src":"20425:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13727,"name":"uint256","nodeType":"ElementaryTypeName","src":"20425:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20382:54:28"},"returnParameters":{"id":13730,"nodeType":"ParameterList","parameters":[],"src":"20451:0:28"},"scope":19517,"src":"20370:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13765,"nodeType":"Block","src":"20656:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":13757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20706:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":13758,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13745,"src":"20744:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13759,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"20748:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13760,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13749,"src":"20752:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13761,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13751,"src":"20756:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20682:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20686:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20682:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20682:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13754,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20666:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13764,"nodeType":"ExpressionStatement","src":"20666:94:28"}]},"id":13766,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20578:3:28","nodeType":"FunctionDefinition","parameters":{"id":13752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13745,"mutability":"mutable","name":"p0","nameLocation":"20590:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20582:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13744,"name":"uint256","nodeType":"ElementaryTypeName","src":"20582:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13747,"mutability":"mutable","name":"p1","nameLocation":"20602:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20594:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13746,"name":"uint256","nodeType":"ElementaryTypeName","src":"20594:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13749,"mutability":"mutable","name":"p2","nameLocation":"20620:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20606:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13748,"name":"string","nodeType":"ElementaryTypeName","src":"20606:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13751,"mutability":"mutable","name":"p3","nameLocation":"20638:2:28","nodeType":"VariableDeclaration","scope":13766,"src":"20624:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13750,"name":"string","nodeType":"ElementaryTypeName","src":"20624:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20581:60:28"},"returnParameters":{"id":13753,"nodeType":"ParameterList","parameters":[],"src":"20656:0:28"},"scope":19517,"src":"20569:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13788,"nodeType":"Block","src":"20851:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":13780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20901:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":13781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13768,"src":"20937:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13770,"src":"20941:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13772,"src":"20945:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13784,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13774,"src":"20949:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20877:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20881:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20877:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20877:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"20861:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20861:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13787,"nodeType":"ExpressionStatement","src":"20861:92:28"}]},"id":13789,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20782:3:28","nodeType":"FunctionDefinition","parameters":{"id":13775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13768,"mutability":"mutable","name":"p0","nameLocation":"20794:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20786:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13767,"name":"uint256","nodeType":"ElementaryTypeName","src":"20786:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13770,"mutability":"mutable","name":"p1","nameLocation":"20806:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20798:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13769,"name":"uint256","nodeType":"ElementaryTypeName","src":"20798:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"p2","nameLocation":"20824:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20810:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13771,"name":"string","nodeType":"ElementaryTypeName","src":"20810:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13774,"mutability":"mutable","name":"p3","nameLocation":"20833:2:28","nodeType":"VariableDeclaration","scope":13789,"src":"20828:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13773,"name":"bool","nodeType":"ElementaryTypeName","src":"20828:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20785:51:28"},"returnParameters":{"id":13776,"nodeType":"ParameterList","parameters":[],"src":"20851:0:28"},"scope":19517,"src":"20773:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13811,"nodeType":"Block","src":"21047:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":13803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21097:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":13804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"21136:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13793,"src":"21140:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13795,"src":"21144:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13807,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13797,"src":"21148:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21073:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21077:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21073:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21073:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21057:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21057:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13810,"nodeType":"ExpressionStatement","src":"21057:95:28"}]},"id":13812,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20975:3:28","nodeType":"FunctionDefinition","parameters":{"id":13798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13791,"mutability":"mutable","name":"p0","nameLocation":"20987:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"20979:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13790,"name":"uint256","nodeType":"ElementaryTypeName","src":"20979:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13793,"mutability":"mutable","name":"p1","nameLocation":"20999:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"20991:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13792,"name":"uint256","nodeType":"ElementaryTypeName","src":"20991:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13795,"mutability":"mutable","name":"p2","nameLocation":"21017:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"21003:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13794,"name":"string","nodeType":"ElementaryTypeName","src":"21003:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13797,"mutability":"mutable","name":"p3","nameLocation":"21029:2:28","nodeType":"VariableDeclaration","scope":13812,"src":"21021:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13796,"name":"address","nodeType":"ElementaryTypeName","src":"21021:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20978:54:28"},"returnParameters":{"id":13799,"nodeType":"ParameterList","parameters":[],"src":"21047:0:28"},"scope":19517,"src":"20966:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13834,"nodeType":"Block","src":"21237:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":13826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21287:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":13827,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13814,"src":"21324:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13828,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13816,"src":"21328:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13829,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13818,"src":"21332:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13830,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13820,"src":"21336:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21263:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21263:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21263:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21247:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21247:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13833,"nodeType":"ExpressionStatement","src":"21247:93:28"}]},"id":13835,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21174:3:28","nodeType":"FunctionDefinition","parameters":{"id":13821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13814,"mutability":"mutable","name":"p0","nameLocation":"21186:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21178:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13813,"name":"uint256","nodeType":"ElementaryTypeName","src":"21178:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13816,"mutability":"mutable","name":"p1","nameLocation":"21198:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21190:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13815,"name":"uint256","nodeType":"ElementaryTypeName","src":"21190:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"p2","nameLocation":"21207:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21202:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13817,"name":"bool","nodeType":"ElementaryTypeName","src":"21202:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13820,"mutability":"mutable","name":"p3","nameLocation":"21219:2:28","nodeType":"VariableDeclaration","scope":13835,"src":"21211:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13819,"name":"uint256","nodeType":"ElementaryTypeName","src":"21211:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21177:45:28"},"returnParameters":{"id":13822,"nodeType":"ParameterList","parameters":[],"src":"21237:0:28"},"scope":19517,"src":"21165:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13857,"nodeType":"Block","src":"21431:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":13849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21481:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":13850,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"21517:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13851,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13839,"src":"21521:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13852,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13841,"src":"21525:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13853,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"21529:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21457:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21461:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21457:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21457:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13846,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21441:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21441:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13856,"nodeType":"ExpressionStatement","src":"21441:92:28"}]},"id":13858,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21362:3:28","nodeType":"FunctionDefinition","parameters":{"id":13844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13837,"mutability":"mutable","name":"p0","nameLocation":"21374:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21366:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13836,"name":"uint256","nodeType":"ElementaryTypeName","src":"21366:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13839,"mutability":"mutable","name":"p1","nameLocation":"21386:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21378:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13838,"name":"uint256","nodeType":"ElementaryTypeName","src":"21378:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13841,"mutability":"mutable","name":"p2","nameLocation":"21395:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21390:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13840,"name":"bool","nodeType":"ElementaryTypeName","src":"21390:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13843,"mutability":"mutable","name":"p3","nameLocation":"21413:2:28","nodeType":"VariableDeclaration","scope":13858,"src":"21399:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13842,"name":"string","nodeType":"ElementaryTypeName","src":"21399:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21365:51:28"},"returnParameters":{"id":13845,"nodeType":"ParameterList","parameters":[],"src":"21431:0:28"},"scope":19517,"src":"21353:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13880,"nodeType":"Block","src":"21615:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":13872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21665:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":13873,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13860,"src":"21699:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13874,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13862,"src":"21703:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13875,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13864,"src":"21707:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13876,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13866,"src":"21711:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13870,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21641:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21645:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21641:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21641:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13869,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21625:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21625:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13879,"nodeType":"ExpressionStatement","src":"21625:90:28"}]},"id":13881,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21555:3:28","nodeType":"FunctionDefinition","parameters":{"id":13867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13860,"mutability":"mutable","name":"p0","nameLocation":"21567:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21559:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13859,"name":"uint256","nodeType":"ElementaryTypeName","src":"21559:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13862,"mutability":"mutable","name":"p1","nameLocation":"21579:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21571:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13861,"name":"uint256","nodeType":"ElementaryTypeName","src":"21571:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13864,"mutability":"mutable","name":"p2","nameLocation":"21588:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21583:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13863,"name":"bool","nodeType":"ElementaryTypeName","src":"21583:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13866,"mutability":"mutable","name":"p3","nameLocation":"21597:2:28","nodeType":"VariableDeclaration","scope":13881,"src":"21592:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13865,"name":"bool","nodeType":"ElementaryTypeName","src":"21592:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21558:42:28"},"returnParameters":{"id":13868,"nodeType":"ParameterList","parameters":[],"src":"21615:0:28"},"scope":19517,"src":"21546:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13903,"nodeType":"Block","src":"21800:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":13895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21850:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":13896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13883,"src":"21887:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13897,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13885,"src":"21891:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13898,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13887,"src":"21895:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13899,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13889,"src":"21899:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21826:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21830:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21826:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21826:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"21810:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21810:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13902,"nodeType":"ExpressionStatement","src":"21810:93:28"}]},"id":13904,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21737:3:28","nodeType":"FunctionDefinition","parameters":{"id":13890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13883,"mutability":"mutable","name":"p0","nameLocation":"21749:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21741:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13882,"name":"uint256","nodeType":"ElementaryTypeName","src":"21741:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13885,"mutability":"mutable","name":"p1","nameLocation":"21761:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21753:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13884,"name":"uint256","nodeType":"ElementaryTypeName","src":"21753:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13887,"mutability":"mutable","name":"p2","nameLocation":"21770:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21765:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13886,"name":"bool","nodeType":"ElementaryTypeName","src":"21765:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13889,"mutability":"mutable","name":"p3","nameLocation":"21782:2:28","nodeType":"VariableDeclaration","scope":13904,"src":"21774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13888,"name":"address","nodeType":"ElementaryTypeName","src":"21774:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:45:28"},"returnParameters":{"id":13891,"nodeType":"ParameterList","parameters":[],"src":"21800:0:28"},"scope":19517,"src":"21728:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13926,"nodeType":"Block","src":"21991:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":13918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22041:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":13919,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13906,"src":"22081:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13920,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13908,"src":"22085:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13921,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13910,"src":"22089:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13922,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"22093:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22017:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22021:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22017:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22017:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13915,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22001:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22001:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13925,"nodeType":"ExpressionStatement","src":"22001:96:28"}]},"id":13927,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21925:3:28","nodeType":"FunctionDefinition","parameters":{"id":13913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13906,"mutability":"mutable","name":"p0","nameLocation":"21937:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21929:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13905,"name":"uint256","nodeType":"ElementaryTypeName","src":"21929:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13908,"mutability":"mutable","name":"p1","nameLocation":"21949:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21941:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13907,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13910,"mutability":"mutable","name":"p2","nameLocation":"21961:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21953:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13909,"name":"address","nodeType":"ElementaryTypeName","src":"21953:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13912,"mutability":"mutable","name":"p3","nameLocation":"21973:2:28","nodeType":"VariableDeclaration","scope":13927,"src":"21965:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13911,"name":"uint256","nodeType":"ElementaryTypeName","src":"21965:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21928:48:28"},"returnParameters":{"id":13914,"nodeType":"ParameterList","parameters":[],"src":"21991:0:28"},"scope":19517,"src":"21916:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13949,"nodeType":"Block","src":"22191:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":13941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22241:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":13942,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"22280:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13943,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13931,"src":"22284:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13944,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"22288:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13945,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"22292:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22217:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22221:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22217:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22217:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13938,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22201:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22201:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13948,"nodeType":"ExpressionStatement","src":"22201:95:28"}]},"id":13950,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22119:3:28","nodeType":"FunctionDefinition","parameters":{"id":13936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13929,"mutability":"mutable","name":"p0","nameLocation":"22131:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22123:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13928,"name":"uint256","nodeType":"ElementaryTypeName","src":"22123:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13931,"mutability":"mutable","name":"p1","nameLocation":"22143:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22135:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13930,"name":"uint256","nodeType":"ElementaryTypeName","src":"22135:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13933,"mutability":"mutable","name":"p2","nameLocation":"22155:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22147:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13932,"name":"address","nodeType":"ElementaryTypeName","src":"22147:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13935,"mutability":"mutable","name":"p3","nameLocation":"22173:2:28","nodeType":"VariableDeclaration","scope":13950,"src":"22159:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13934,"name":"string","nodeType":"ElementaryTypeName","src":"22159:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22122:54:28"},"returnParameters":{"id":13937,"nodeType":"ParameterList","parameters":[],"src":"22191:0:28"},"scope":19517,"src":"22110:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13972,"nodeType":"Block","src":"22381:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":13964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22431:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":13965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"22468:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13966,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13954,"src":"22472:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13967,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13956,"src":"22476:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13968,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13958,"src":"22480:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22407:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22411:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22407:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22407:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22391:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22391:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13971,"nodeType":"ExpressionStatement","src":"22391:93:28"}]},"id":13973,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22318:3:28","nodeType":"FunctionDefinition","parameters":{"id":13959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13952,"mutability":"mutable","name":"p0","nameLocation":"22330:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22322:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13951,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13954,"mutability":"mutable","name":"p1","nameLocation":"22342:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22334:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13953,"name":"uint256","nodeType":"ElementaryTypeName","src":"22334:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13956,"mutability":"mutable","name":"p2","nameLocation":"22354:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22346:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13955,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13958,"mutability":"mutable","name":"p3","nameLocation":"22363:2:28","nodeType":"VariableDeclaration","scope":13973,"src":"22358:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13957,"name":"bool","nodeType":"ElementaryTypeName","src":"22358:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22321:45:28"},"returnParameters":{"id":13960,"nodeType":"ParameterList","parameters":[],"src":"22381:0:28"},"scope":19517,"src":"22309:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":13995,"nodeType":"Block","src":"22572:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":13987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22622:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":13988,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13975,"src":"22662:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13989,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13977,"src":"22666:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13990,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13979,"src":"22670:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13991,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13981,"src":"22674:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22598:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22602:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22598:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22598:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13984,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22582:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":13993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22582:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13994,"nodeType":"ExpressionStatement","src":"22582:96:28"}]},"id":13996,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22506:3:28","nodeType":"FunctionDefinition","parameters":{"id":13982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13975,"mutability":"mutable","name":"p0","nameLocation":"22518:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22510:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13974,"name":"uint256","nodeType":"ElementaryTypeName","src":"22510:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13977,"mutability":"mutable","name":"p1","nameLocation":"22530:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22522:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13976,"name":"uint256","nodeType":"ElementaryTypeName","src":"22522:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13979,"mutability":"mutable","name":"p2","nameLocation":"22542:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22534:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13978,"name":"address","nodeType":"ElementaryTypeName","src":"22534:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13981,"mutability":"mutable","name":"p3","nameLocation":"22554:2:28","nodeType":"VariableDeclaration","scope":13996,"src":"22546:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13980,"name":"address","nodeType":"ElementaryTypeName","src":"22546:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22509:48:28"},"returnParameters":{"id":13983,"nodeType":"ParameterList","parameters":[],"src":"22572:0:28"},"scope":19517,"src":"22497:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14018,"nodeType":"Block","src":"22772:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":14010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22822:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":14011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"22861:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14012,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14000,"src":"22865:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14013,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14002,"src":"22869:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14014,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"22873:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22798:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22802:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22798:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22798:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22782:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22782:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14017,"nodeType":"ExpressionStatement","src":"22782:95:28"}]},"id":14019,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22700:3:28","nodeType":"FunctionDefinition","parameters":{"id":14005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13998,"mutability":"mutable","name":"p0","nameLocation":"22712:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22704:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13997,"name":"uint256","nodeType":"ElementaryTypeName","src":"22704:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14000,"mutability":"mutable","name":"p1","nameLocation":"22730:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22716:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13999,"name":"string","nodeType":"ElementaryTypeName","src":"22716:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14002,"mutability":"mutable","name":"p2","nameLocation":"22742:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22734:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14001,"name":"uint256","nodeType":"ElementaryTypeName","src":"22734:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14004,"mutability":"mutable","name":"p3","nameLocation":"22754:2:28","nodeType":"VariableDeclaration","scope":14019,"src":"22746:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14003,"name":"uint256","nodeType":"ElementaryTypeName","src":"22746:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22703:54:28"},"returnParameters":{"id":14006,"nodeType":"ParameterList","parameters":[],"src":"22772:0:28"},"scope":19517,"src":"22691:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14041,"nodeType":"Block","src":"22977:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":14033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23027:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":14034,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14021,"src":"23065:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14035,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14023,"src":"23069:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14036,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14025,"src":"23073:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14037,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14027,"src":"23077:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23003:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23007:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23003:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23003:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14030,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"22987:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22987:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14040,"nodeType":"ExpressionStatement","src":"22987:94:28"}]},"id":14042,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22899:3:28","nodeType":"FunctionDefinition","parameters":{"id":14028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14021,"mutability":"mutable","name":"p0","nameLocation":"22911:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22903:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14020,"name":"uint256","nodeType":"ElementaryTypeName","src":"22903:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14023,"mutability":"mutable","name":"p1","nameLocation":"22929:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22915:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14022,"name":"string","nodeType":"ElementaryTypeName","src":"22915:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14025,"mutability":"mutable","name":"p2","nameLocation":"22941:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22933:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14024,"name":"uint256","nodeType":"ElementaryTypeName","src":"22933:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14027,"mutability":"mutable","name":"p3","nameLocation":"22959:2:28","nodeType":"VariableDeclaration","scope":14042,"src":"22945:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14026,"name":"string","nodeType":"ElementaryTypeName","src":"22945:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22902:60:28"},"returnParameters":{"id":14029,"nodeType":"ParameterList","parameters":[],"src":"22977:0:28"},"scope":19517,"src":"22890:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14064,"nodeType":"Block","src":"23172:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":14056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23222:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":14057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14044,"src":"23258:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14058,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14046,"src":"23262:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14059,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14048,"src":"23266:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14060,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14050,"src":"23270:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23198:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23202:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23198:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23198:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23182:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23182:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14063,"nodeType":"ExpressionStatement","src":"23182:92:28"}]},"id":14065,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23103:3:28","nodeType":"FunctionDefinition","parameters":{"id":14051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14044,"mutability":"mutable","name":"p0","nameLocation":"23115:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23107:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14043,"name":"uint256","nodeType":"ElementaryTypeName","src":"23107:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14046,"mutability":"mutable","name":"p1","nameLocation":"23133:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23119:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14045,"name":"string","nodeType":"ElementaryTypeName","src":"23119:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14048,"mutability":"mutable","name":"p2","nameLocation":"23145:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23137:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14047,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14050,"mutability":"mutable","name":"p3","nameLocation":"23154:2:28","nodeType":"VariableDeclaration","scope":14065,"src":"23149:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14049,"name":"bool","nodeType":"ElementaryTypeName","src":"23149:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23106:51:28"},"returnParameters":{"id":14052,"nodeType":"ParameterList","parameters":[],"src":"23172:0:28"},"scope":19517,"src":"23094:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14087,"nodeType":"Block","src":"23368:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":14079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23418:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":14080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"23457:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"23461:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14071,"src":"23465:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14083,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14073,"src":"23469:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23394:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23398:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23394:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23394:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23378:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23378:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14086,"nodeType":"ExpressionStatement","src":"23378:95:28"}]},"id":14088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23296:3:28","nodeType":"FunctionDefinition","parameters":{"id":14074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14067,"mutability":"mutable","name":"p0","nameLocation":"23308:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23300:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14066,"name":"uint256","nodeType":"ElementaryTypeName","src":"23300:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14069,"mutability":"mutable","name":"p1","nameLocation":"23326:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23312:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14068,"name":"string","nodeType":"ElementaryTypeName","src":"23312:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14071,"mutability":"mutable","name":"p2","nameLocation":"23338:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23330:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14070,"name":"uint256","nodeType":"ElementaryTypeName","src":"23330:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14073,"mutability":"mutable","name":"p3","nameLocation":"23350:2:28","nodeType":"VariableDeclaration","scope":14088,"src":"23342:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14072,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23299:54:28"},"returnParameters":{"id":14075,"nodeType":"ParameterList","parameters":[],"src":"23368:0:28"},"scope":19517,"src":"23287:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14110,"nodeType":"Block","src":"23573:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":14102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23623:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":14103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14090,"src":"23661:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14092,"src":"23665:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14094,"src":"23669:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14106,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14096,"src":"23673:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23599:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23603:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23599:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23599:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23583:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23583:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14109,"nodeType":"ExpressionStatement","src":"23583:94:28"}]},"id":14111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23495:3:28","nodeType":"FunctionDefinition","parameters":{"id":14097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14090,"mutability":"mutable","name":"p0","nameLocation":"23507:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23499:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14089,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14092,"mutability":"mutable","name":"p1","nameLocation":"23525:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23511:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14091,"name":"string","nodeType":"ElementaryTypeName","src":"23511:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14094,"mutability":"mutable","name":"p2","nameLocation":"23543:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23529:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14093,"name":"string","nodeType":"ElementaryTypeName","src":"23529:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14096,"mutability":"mutable","name":"p3","nameLocation":"23555:2:28","nodeType":"VariableDeclaration","scope":14111,"src":"23547:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14095,"name":"uint256","nodeType":"ElementaryTypeName","src":"23547:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23498:60:28"},"returnParameters":{"id":14098,"nodeType":"ParameterList","parameters":[],"src":"23573:0:28"},"scope":19517,"src":"23486:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14133,"nodeType":"Block","src":"23783:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":14125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23833:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":14126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14113,"src":"23870:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14115,"src":"23874:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14117,"src":"23878:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14129,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14119,"src":"23882:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23809:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23813:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23809:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23809:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23793:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23793:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14132,"nodeType":"ExpressionStatement","src":"23793:93:28"}]},"id":14134,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23699:3:28","nodeType":"FunctionDefinition","parameters":{"id":14120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14113,"mutability":"mutable","name":"p0","nameLocation":"23711:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23703:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14112,"name":"uint256","nodeType":"ElementaryTypeName","src":"23703:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14115,"mutability":"mutable","name":"p1","nameLocation":"23729:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23715:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14114,"name":"string","nodeType":"ElementaryTypeName","src":"23715:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14117,"mutability":"mutable","name":"p2","nameLocation":"23747:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23733:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14116,"name":"string","nodeType":"ElementaryTypeName","src":"23733:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14119,"mutability":"mutable","name":"p3","nameLocation":"23765:2:28","nodeType":"VariableDeclaration","scope":14134,"src":"23751:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14118,"name":"string","nodeType":"ElementaryTypeName","src":"23751:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23702:66:28"},"returnParameters":{"id":14121,"nodeType":"ParameterList","parameters":[],"src":"23783:0:28"},"scope":19517,"src":"23690:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14156,"nodeType":"Block","src":"23983:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":14148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24033:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":14149,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14136,"src":"24068:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14150,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14138,"src":"24072:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14151,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14140,"src":"24076:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14152,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14142,"src":"24080:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24009:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24013:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24009:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14145,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"23993:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23993:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14155,"nodeType":"ExpressionStatement","src":"23993:91:28"}]},"id":14157,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23908:3:28","nodeType":"FunctionDefinition","parameters":{"id":14143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14136,"mutability":"mutable","name":"p0","nameLocation":"23920:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23912:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14135,"name":"uint256","nodeType":"ElementaryTypeName","src":"23912:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14138,"mutability":"mutable","name":"p1","nameLocation":"23938:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23924:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14137,"name":"string","nodeType":"ElementaryTypeName","src":"23924:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14140,"mutability":"mutable","name":"p2","nameLocation":"23956:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23942:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14139,"name":"string","nodeType":"ElementaryTypeName","src":"23942:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14142,"mutability":"mutable","name":"p3","nameLocation":"23965:2:28","nodeType":"VariableDeclaration","scope":14157,"src":"23960:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14141,"name":"bool","nodeType":"ElementaryTypeName","src":"23960:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23911:57:28"},"returnParameters":{"id":14144,"nodeType":"ParameterList","parameters":[],"src":"23983:0:28"},"scope":19517,"src":"23899:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14179,"nodeType":"Block","src":"24184:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":14171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24234:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":14172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14159,"src":"24272:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14161,"src":"24276:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14174,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14163,"src":"24280:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14175,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14165,"src":"24284:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24210:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24214:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24210:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24210:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24194:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24194:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14178,"nodeType":"ExpressionStatement","src":"24194:94:28"}]},"id":14180,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24106:3:28","nodeType":"FunctionDefinition","parameters":{"id":14166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14159,"mutability":"mutable","name":"p0","nameLocation":"24118:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24110:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14158,"name":"uint256","nodeType":"ElementaryTypeName","src":"24110:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14161,"mutability":"mutable","name":"p1","nameLocation":"24136:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24122:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14160,"name":"string","nodeType":"ElementaryTypeName","src":"24122:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14163,"mutability":"mutable","name":"p2","nameLocation":"24154:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24140:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14162,"name":"string","nodeType":"ElementaryTypeName","src":"24140:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14165,"mutability":"mutable","name":"p3","nameLocation":"24166:2:28","nodeType":"VariableDeclaration","scope":14180,"src":"24158:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14164,"name":"address","nodeType":"ElementaryTypeName","src":"24158:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24109:60:28"},"returnParameters":{"id":14167,"nodeType":"ParameterList","parameters":[],"src":"24184:0:28"},"scope":19517,"src":"24097:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14202,"nodeType":"Block","src":"24379:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":14194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24429:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":14195,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14182,"src":"24465:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14196,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14184,"src":"24469:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14197,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14186,"src":"24473:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14198,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14188,"src":"24477:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24405:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24409:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24405:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24405:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14191,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24389:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24389:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14201,"nodeType":"ExpressionStatement","src":"24389:92:28"}]},"id":14203,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24310:3:28","nodeType":"FunctionDefinition","parameters":{"id":14189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14182,"mutability":"mutable","name":"p0","nameLocation":"24322:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24314:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14181,"name":"uint256","nodeType":"ElementaryTypeName","src":"24314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14184,"mutability":"mutable","name":"p1","nameLocation":"24340:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24326:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14183,"name":"string","nodeType":"ElementaryTypeName","src":"24326:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14186,"mutability":"mutable","name":"p2","nameLocation":"24349:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24344:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14185,"name":"bool","nodeType":"ElementaryTypeName","src":"24344:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14188,"mutability":"mutable","name":"p3","nameLocation":"24361:2:28","nodeType":"VariableDeclaration","scope":14203,"src":"24353:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14187,"name":"uint256","nodeType":"ElementaryTypeName","src":"24353:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24313:51:28"},"returnParameters":{"id":14190,"nodeType":"ParameterList","parameters":[],"src":"24379:0:28"},"scope":19517,"src":"24301:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14225,"nodeType":"Block","src":"24578:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":14217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24628:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":14218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14205,"src":"24663:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14207,"src":"24667:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14220,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14209,"src":"24671:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14221,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14211,"src":"24675:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24604:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24608:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24604:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24604:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24588:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24588:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14224,"nodeType":"ExpressionStatement","src":"24588:91:28"}]},"id":14226,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24503:3:28","nodeType":"FunctionDefinition","parameters":{"id":14212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14205,"mutability":"mutable","name":"p0","nameLocation":"24515:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14204,"name":"uint256","nodeType":"ElementaryTypeName","src":"24507:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14207,"mutability":"mutable","name":"p1","nameLocation":"24533:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24519:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14206,"name":"string","nodeType":"ElementaryTypeName","src":"24519:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14209,"mutability":"mutable","name":"p2","nameLocation":"24542:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24537:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14208,"name":"bool","nodeType":"ElementaryTypeName","src":"24537:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14211,"mutability":"mutable","name":"p3","nameLocation":"24560:2:28","nodeType":"VariableDeclaration","scope":14226,"src":"24546:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14210,"name":"string","nodeType":"ElementaryTypeName","src":"24546:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24506:57:28"},"returnParameters":{"id":14213,"nodeType":"ParameterList","parameters":[],"src":"24578:0:28"},"scope":19517,"src":"24494:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14248,"nodeType":"Block","src":"24767:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":14240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24817:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":14241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14228,"src":"24850:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14230,"src":"24854:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14232,"src":"24858:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14244,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14234,"src":"24862:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24793:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24797:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24793:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24793:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24777:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24777:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14247,"nodeType":"ExpressionStatement","src":"24777:89:28"}]},"id":14249,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24701:3:28","nodeType":"FunctionDefinition","parameters":{"id":14235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14228,"mutability":"mutable","name":"p0","nameLocation":"24713:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24705:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14227,"name":"uint256","nodeType":"ElementaryTypeName","src":"24705:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14230,"mutability":"mutable","name":"p1","nameLocation":"24731:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24717:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14229,"name":"string","nodeType":"ElementaryTypeName","src":"24717:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14232,"mutability":"mutable","name":"p2","nameLocation":"24740:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24735:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14231,"name":"bool","nodeType":"ElementaryTypeName","src":"24735:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14234,"mutability":"mutable","name":"p3","nameLocation":"24749:2:28","nodeType":"VariableDeclaration","scope":14249,"src":"24744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14233,"name":"bool","nodeType":"ElementaryTypeName","src":"24744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24704:48:28"},"returnParameters":{"id":14236,"nodeType":"ParameterList","parameters":[],"src":"24767:0:28"},"scope":19517,"src":"24692:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14271,"nodeType":"Block","src":"24957:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":14263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25007:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":14264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14251,"src":"25043:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"25047:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14255,"src":"25051:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14267,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14257,"src":"25055:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24983:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24983:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24983:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"24967:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24967:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14270,"nodeType":"ExpressionStatement","src":"24967:92:28"}]},"id":14272,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24888:3:28","nodeType":"FunctionDefinition","parameters":{"id":14258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14251,"mutability":"mutable","name":"p0","nameLocation":"24900:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24892:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14250,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14253,"mutability":"mutable","name":"p1","nameLocation":"24918:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24904:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14252,"name":"string","nodeType":"ElementaryTypeName","src":"24904:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14255,"mutability":"mutable","name":"p2","nameLocation":"24927:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24922:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14254,"name":"bool","nodeType":"ElementaryTypeName","src":"24922:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14257,"mutability":"mutable","name":"p3","nameLocation":"24939:2:28","nodeType":"VariableDeclaration","scope":14272,"src":"24931:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14256,"name":"address","nodeType":"ElementaryTypeName","src":"24931:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24891:51:28"},"returnParameters":{"id":14259,"nodeType":"ParameterList","parameters":[],"src":"24957:0:28"},"scope":19517,"src":"24879:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14294,"nodeType":"Block","src":"25153:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":14286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25203:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":14287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14274,"src":"25242:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14288,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14276,"src":"25246:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14289,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14278,"src":"25250:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14290,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"25254:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25179:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25183:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25179:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25179:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25163:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25163:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14293,"nodeType":"ExpressionStatement","src":"25163:95:28"}]},"id":14295,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25081:3:28","nodeType":"FunctionDefinition","parameters":{"id":14281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14274,"mutability":"mutable","name":"p0","nameLocation":"25093:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25085:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14273,"name":"uint256","nodeType":"ElementaryTypeName","src":"25085:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14276,"mutability":"mutable","name":"p1","nameLocation":"25111:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25097:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14275,"name":"string","nodeType":"ElementaryTypeName","src":"25097:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14278,"mutability":"mutable","name":"p2","nameLocation":"25123:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25115:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14277,"name":"address","nodeType":"ElementaryTypeName","src":"25115:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14280,"mutability":"mutable","name":"p3","nameLocation":"25135:2:28","nodeType":"VariableDeclaration","scope":14295,"src":"25127:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14279,"name":"uint256","nodeType":"ElementaryTypeName","src":"25127:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25084:54:28"},"returnParameters":{"id":14282,"nodeType":"ParameterList","parameters":[],"src":"25153:0:28"},"scope":19517,"src":"25072:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14317,"nodeType":"Block","src":"25358:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":14309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25408:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":14310,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14297,"src":"25446:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14311,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14299,"src":"25450:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14301,"src":"25454:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14313,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14303,"src":"25458:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25384:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25388:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25384:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25384:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25368:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25368:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14316,"nodeType":"ExpressionStatement","src":"25368:94:28"}]},"id":14318,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25280:3:28","nodeType":"FunctionDefinition","parameters":{"id":14304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14297,"mutability":"mutable","name":"p0","nameLocation":"25292:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25284:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14296,"name":"uint256","nodeType":"ElementaryTypeName","src":"25284:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14299,"mutability":"mutable","name":"p1","nameLocation":"25310:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25296:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14298,"name":"string","nodeType":"ElementaryTypeName","src":"25296:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14301,"mutability":"mutable","name":"p2","nameLocation":"25322:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25314:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14300,"name":"address","nodeType":"ElementaryTypeName","src":"25314:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14303,"mutability":"mutable","name":"p3","nameLocation":"25340:2:28","nodeType":"VariableDeclaration","scope":14318,"src":"25326:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14302,"name":"string","nodeType":"ElementaryTypeName","src":"25326:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25283:60:28"},"returnParameters":{"id":14305,"nodeType":"ParameterList","parameters":[],"src":"25358:0:28"},"scope":19517,"src":"25271:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14340,"nodeType":"Block","src":"25553:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":14332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25603:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":14333,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14320,"src":"25639:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14334,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14322,"src":"25643:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14335,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14324,"src":"25647:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14336,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14326,"src":"25651:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25579:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25583:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25579:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25563:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25563:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14339,"nodeType":"ExpressionStatement","src":"25563:92:28"}]},"id":14341,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25484:3:28","nodeType":"FunctionDefinition","parameters":{"id":14327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14320,"mutability":"mutable","name":"p0","nameLocation":"25496:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25488:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14319,"name":"uint256","nodeType":"ElementaryTypeName","src":"25488:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14322,"mutability":"mutable","name":"p1","nameLocation":"25514:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25500:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14321,"name":"string","nodeType":"ElementaryTypeName","src":"25500:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14324,"mutability":"mutable","name":"p2","nameLocation":"25526:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25518:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14323,"name":"address","nodeType":"ElementaryTypeName","src":"25518:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14326,"mutability":"mutable","name":"p3","nameLocation":"25535:2:28","nodeType":"VariableDeclaration","scope":14341,"src":"25530:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14325,"name":"bool","nodeType":"ElementaryTypeName","src":"25530:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25487:51:28"},"returnParameters":{"id":14328,"nodeType":"ParameterList","parameters":[],"src":"25553:0:28"},"scope":19517,"src":"25475:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14363,"nodeType":"Block","src":"25749:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":14355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25799:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":14356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14343,"src":"25838:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"25842:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"25846:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14359,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14349,"src":"25850:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25775:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25779:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25775:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25759:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25759:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14362,"nodeType":"ExpressionStatement","src":"25759:95:28"}]},"id":14364,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25677:3:28","nodeType":"FunctionDefinition","parameters":{"id":14350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14343,"mutability":"mutable","name":"p0","nameLocation":"25689:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25681:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14342,"name":"uint256","nodeType":"ElementaryTypeName","src":"25681:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14345,"mutability":"mutable","name":"p1","nameLocation":"25707:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25693:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14344,"name":"string","nodeType":"ElementaryTypeName","src":"25693:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14347,"mutability":"mutable","name":"p2","nameLocation":"25719:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25711:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14346,"name":"address","nodeType":"ElementaryTypeName","src":"25711:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14349,"mutability":"mutable","name":"p3","nameLocation":"25731:2:28","nodeType":"VariableDeclaration","scope":14364,"src":"25723:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14348,"name":"address","nodeType":"ElementaryTypeName","src":"25723:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25680:54:28"},"returnParameters":{"id":14351,"nodeType":"ParameterList","parameters":[],"src":"25749:0:28"},"scope":19517,"src":"25668:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14386,"nodeType":"Block","src":"25939:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":14378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25989:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":14379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14366,"src":"26026:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14368,"src":"26030:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14370,"src":"26034:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14382,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14372,"src":"26038:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25965:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25969:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25965:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25965:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"25949:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25949:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14385,"nodeType":"ExpressionStatement","src":"25949:93:28"}]},"id":14387,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25876:3:28","nodeType":"FunctionDefinition","parameters":{"id":14373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14366,"mutability":"mutable","name":"p0","nameLocation":"25888:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25880:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14365,"name":"uint256","nodeType":"ElementaryTypeName","src":"25880:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14368,"mutability":"mutable","name":"p1","nameLocation":"25897:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25892:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14367,"name":"bool","nodeType":"ElementaryTypeName","src":"25892:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14370,"mutability":"mutable","name":"p2","nameLocation":"25909:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25901:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14369,"name":"uint256","nodeType":"ElementaryTypeName","src":"25901:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14372,"mutability":"mutable","name":"p3","nameLocation":"25921:2:28","nodeType":"VariableDeclaration","scope":14387,"src":"25913:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14371,"name":"uint256","nodeType":"ElementaryTypeName","src":"25913:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25879:45:28"},"returnParameters":{"id":14374,"nodeType":"ParameterList","parameters":[],"src":"25939:0:28"},"scope":19517,"src":"25867:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14409,"nodeType":"Block","src":"26133:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":14401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26183:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":14402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14389,"src":"26219:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14403,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14391,"src":"26223:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14404,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14393,"src":"26227:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14405,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14395,"src":"26231:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26159:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26163:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26159:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26159:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26143:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26143:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14408,"nodeType":"ExpressionStatement","src":"26143:92:28"}]},"id":14410,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26064:3:28","nodeType":"FunctionDefinition","parameters":{"id":14396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14389,"mutability":"mutable","name":"p0","nameLocation":"26076:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26068:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14388,"name":"uint256","nodeType":"ElementaryTypeName","src":"26068:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14391,"mutability":"mutable","name":"p1","nameLocation":"26085:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26080:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14390,"name":"bool","nodeType":"ElementaryTypeName","src":"26080:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14393,"mutability":"mutable","name":"p2","nameLocation":"26097:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26089:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14392,"name":"uint256","nodeType":"ElementaryTypeName","src":"26089:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14395,"mutability":"mutable","name":"p3","nameLocation":"26115:2:28","nodeType":"VariableDeclaration","scope":14410,"src":"26101:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14394,"name":"string","nodeType":"ElementaryTypeName","src":"26101:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26067:51:28"},"returnParameters":{"id":14397,"nodeType":"ParameterList","parameters":[],"src":"26133:0:28"},"scope":19517,"src":"26055:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14432,"nodeType":"Block","src":"26317:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":14424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26367:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":14425,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14412,"src":"26401:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14426,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14414,"src":"26405:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14427,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14416,"src":"26409:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14428,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14418,"src":"26413:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26343:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26347:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26343:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26343:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14421,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26327:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26327:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14431,"nodeType":"ExpressionStatement","src":"26327:90:28"}]},"id":14433,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26257:3:28","nodeType":"FunctionDefinition","parameters":{"id":14419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14412,"mutability":"mutable","name":"p0","nameLocation":"26269:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26261:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14411,"name":"uint256","nodeType":"ElementaryTypeName","src":"26261:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14414,"mutability":"mutable","name":"p1","nameLocation":"26278:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26273:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14413,"name":"bool","nodeType":"ElementaryTypeName","src":"26273:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14416,"mutability":"mutable","name":"p2","nameLocation":"26290:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26282:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14415,"name":"uint256","nodeType":"ElementaryTypeName","src":"26282:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14418,"mutability":"mutable","name":"p3","nameLocation":"26299:2:28","nodeType":"VariableDeclaration","scope":14433,"src":"26294:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14417,"name":"bool","nodeType":"ElementaryTypeName","src":"26294:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26260:42:28"},"returnParameters":{"id":14420,"nodeType":"ParameterList","parameters":[],"src":"26317:0:28"},"scope":19517,"src":"26248:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14455,"nodeType":"Block","src":"26502:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":14447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26552:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":14448,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14435,"src":"26589:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14449,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14437,"src":"26593:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14450,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14439,"src":"26597:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14451,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14441,"src":"26601:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26528:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26532:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26528:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26528:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26512:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26512:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14454,"nodeType":"ExpressionStatement","src":"26512:93:28"}]},"id":14456,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26439:3:28","nodeType":"FunctionDefinition","parameters":{"id":14442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14435,"mutability":"mutable","name":"p0","nameLocation":"26451:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26443:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14434,"name":"uint256","nodeType":"ElementaryTypeName","src":"26443:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14437,"mutability":"mutable","name":"p1","nameLocation":"26460:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26455:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14436,"name":"bool","nodeType":"ElementaryTypeName","src":"26455:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14439,"mutability":"mutable","name":"p2","nameLocation":"26472:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26464:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14438,"name":"uint256","nodeType":"ElementaryTypeName","src":"26464:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14441,"mutability":"mutable","name":"p3","nameLocation":"26484:2:28","nodeType":"VariableDeclaration","scope":14456,"src":"26476:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14440,"name":"address","nodeType":"ElementaryTypeName","src":"26476:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26442:45:28"},"returnParameters":{"id":14443,"nodeType":"ParameterList","parameters":[],"src":"26502:0:28"},"scope":19517,"src":"26430:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14478,"nodeType":"Block","src":"26696:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":14470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26746:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":14471,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14458,"src":"26782:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14472,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14460,"src":"26786:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14473,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14462,"src":"26790:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14474,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14464,"src":"26794:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14468,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26722:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26726:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26722:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14467,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26706:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26706:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14477,"nodeType":"ExpressionStatement","src":"26706:92:28"}]},"id":14479,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26627:3:28","nodeType":"FunctionDefinition","parameters":{"id":14465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14458,"mutability":"mutable","name":"p0","nameLocation":"26639:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26631:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14457,"name":"uint256","nodeType":"ElementaryTypeName","src":"26631:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14460,"mutability":"mutable","name":"p1","nameLocation":"26648:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26643:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14459,"name":"bool","nodeType":"ElementaryTypeName","src":"26643:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14462,"mutability":"mutable","name":"p2","nameLocation":"26666:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26652:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14461,"name":"string","nodeType":"ElementaryTypeName","src":"26652:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14464,"mutability":"mutable","name":"p3","nameLocation":"26678:2:28","nodeType":"VariableDeclaration","scope":14479,"src":"26670:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14463,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26630:51:28"},"returnParameters":{"id":14466,"nodeType":"ParameterList","parameters":[],"src":"26696:0:28"},"scope":19517,"src":"26618:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14501,"nodeType":"Block","src":"26895:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":14493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26945:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":14494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"26980:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14483,"src":"26984:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14496,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14485,"src":"26988:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14497,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"26992:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26921:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26925:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26921:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26921:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"26905:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14500,"nodeType":"ExpressionStatement","src":"26905:91:28"}]},"id":14502,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26820:3:28","nodeType":"FunctionDefinition","parameters":{"id":14488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14481,"mutability":"mutable","name":"p0","nameLocation":"26832:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26824:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14480,"name":"uint256","nodeType":"ElementaryTypeName","src":"26824:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14483,"mutability":"mutable","name":"p1","nameLocation":"26841:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26836:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14482,"name":"bool","nodeType":"ElementaryTypeName","src":"26836:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14485,"mutability":"mutable","name":"p2","nameLocation":"26859:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26845:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14484,"name":"string","nodeType":"ElementaryTypeName","src":"26845:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14487,"mutability":"mutable","name":"p3","nameLocation":"26877:2:28","nodeType":"VariableDeclaration","scope":14502,"src":"26863:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14486,"name":"string","nodeType":"ElementaryTypeName","src":"26863:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26823:57:28"},"returnParameters":{"id":14489,"nodeType":"ParameterList","parameters":[],"src":"26895:0:28"},"scope":19517,"src":"26811:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14524,"nodeType":"Block","src":"27084:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":14516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27134:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":14517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14504,"src":"27167:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14506,"src":"27171:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14519,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14508,"src":"27175:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14520,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14510,"src":"27179:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27110:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27114:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27110:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27110:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27094:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27094:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14523,"nodeType":"ExpressionStatement","src":"27094:89:28"}]},"id":14525,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27018:3:28","nodeType":"FunctionDefinition","parameters":{"id":14511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14504,"mutability":"mutable","name":"p0","nameLocation":"27030:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27022:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14503,"name":"uint256","nodeType":"ElementaryTypeName","src":"27022:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14506,"mutability":"mutable","name":"p1","nameLocation":"27039:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27034:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14505,"name":"bool","nodeType":"ElementaryTypeName","src":"27034:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14508,"mutability":"mutable","name":"p2","nameLocation":"27057:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27043:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14507,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14510,"mutability":"mutable","name":"p3","nameLocation":"27066:2:28","nodeType":"VariableDeclaration","scope":14525,"src":"27061:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14509,"name":"bool","nodeType":"ElementaryTypeName","src":"27061:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27021:48:28"},"returnParameters":{"id":14512,"nodeType":"ParameterList","parameters":[],"src":"27084:0:28"},"scope":19517,"src":"27009:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14547,"nodeType":"Block","src":"27274:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":14539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27324:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":14540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14527,"src":"27360:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14529,"src":"27364:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14531,"src":"27368:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14543,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14533,"src":"27372:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27300:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27304:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27300:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27300:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27284:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27284:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14546,"nodeType":"ExpressionStatement","src":"27284:92:28"}]},"id":14548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27205:3:28","nodeType":"FunctionDefinition","parameters":{"id":14534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14527,"mutability":"mutable","name":"p0","nameLocation":"27217:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27209:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14526,"name":"uint256","nodeType":"ElementaryTypeName","src":"27209:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14529,"mutability":"mutable","name":"p1","nameLocation":"27226:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27221:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14528,"name":"bool","nodeType":"ElementaryTypeName","src":"27221:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14531,"mutability":"mutable","name":"p2","nameLocation":"27244:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27230:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14530,"name":"string","nodeType":"ElementaryTypeName","src":"27230:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14533,"mutability":"mutable","name":"p3","nameLocation":"27256:2:28","nodeType":"VariableDeclaration","scope":14548,"src":"27248:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14532,"name":"address","nodeType":"ElementaryTypeName","src":"27248:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27208:51:28"},"returnParameters":{"id":14535,"nodeType":"ParameterList","parameters":[],"src":"27274:0:28"},"scope":19517,"src":"27196:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14570,"nodeType":"Block","src":"27458:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":14562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27508:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":14563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"27542:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"27546:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"27550:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14566,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"27554:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27484:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27488:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27484:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27468:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27468:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14569,"nodeType":"ExpressionStatement","src":"27468:90:28"}]},"id":14571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27398:3:28","nodeType":"FunctionDefinition","parameters":{"id":14557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14550,"mutability":"mutable","name":"p0","nameLocation":"27410:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27402:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14549,"name":"uint256","nodeType":"ElementaryTypeName","src":"27402:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14552,"mutability":"mutable","name":"p1","nameLocation":"27419:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27414:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14551,"name":"bool","nodeType":"ElementaryTypeName","src":"27414:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14554,"mutability":"mutable","name":"p2","nameLocation":"27428:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27423:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14553,"name":"bool","nodeType":"ElementaryTypeName","src":"27423:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14556,"mutability":"mutable","name":"p3","nameLocation":"27440:2:28","nodeType":"VariableDeclaration","scope":14571,"src":"27432:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14555,"name":"uint256","nodeType":"ElementaryTypeName","src":"27432:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27401:42:28"},"returnParameters":{"id":14558,"nodeType":"ParameterList","parameters":[],"src":"27458:0:28"},"scope":19517,"src":"27389:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14593,"nodeType":"Block","src":"27646:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":14585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27696:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":14586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14573,"src":"27729:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14575,"src":"27733:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14577,"src":"27737:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14589,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14579,"src":"27741:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27672:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27676:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27672:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27672:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27656:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27656:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14592,"nodeType":"ExpressionStatement","src":"27656:89:28"}]},"id":14594,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27580:3:28","nodeType":"FunctionDefinition","parameters":{"id":14580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14573,"mutability":"mutable","name":"p0","nameLocation":"27592:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27584:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14572,"name":"uint256","nodeType":"ElementaryTypeName","src":"27584:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14575,"mutability":"mutable","name":"p1","nameLocation":"27601:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27596:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14574,"name":"bool","nodeType":"ElementaryTypeName","src":"27596:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14577,"mutability":"mutable","name":"p2","nameLocation":"27610:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27605:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14576,"name":"bool","nodeType":"ElementaryTypeName","src":"27605:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14579,"mutability":"mutable","name":"p3","nameLocation":"27628:2:28","nodeType":"VariableDeclaration","scope":14594,"src":"27614:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14578,"name":"string","nodeType":"ElementaryTypeName","src":"27614:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27583:48:28"},"returnParameters":{"id":14581,"nodeType":"ParameterList","parameters":[],"src":"27646:0:28"},"scope":19517,"src":"27571:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14616,"nodeType":"Block","src":"27824:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":14608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27874:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":14609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14596,"src":"27905:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14610,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14598,"src":"27909:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14611,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14600,"src":"27913:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14612,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14602,"src":"27917:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27850:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27854:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27850:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27850:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"27834:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27834:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14615,"nodeType":"ExpressionStatement","src":"27834:87:28"}]},"id":14617,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27767:3:28","nodeType":"FunctionDefinition","parameters":{"id":14603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14596,"mutability":"mutable","name":"p0","nameLocation":"27779:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27771:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14595,"name":"uint256","nodeType":"ElementaryTypeName","src":"27771:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14598,"mutability":"mutable","name":"p1","nameLocation":"27788:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27783:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14597,"name":"bool","nodeType":"ElementaryTypeName","src":"27783:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14600,"mutability":"mutable","name":"p2","nameLocation":"27797:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27792:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14599,"name":"bool","nodeType":"ElementaryTypeName","src":"27792:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14602,"mutability":"mutable","name":"p3","nameLocation":"27806:2:28","nodeType":"VariableDeclaration","scope":14617,"src":"27801:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14601,"name":"bool","nodeType":"ElementaryTypeName","src":"27801:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27770:39:28"},"returnParameters":{"id":14604,"nodeType":"ParameterList","parameters":[],"src":"27824:0:28"},"scope":19517,"src":"27758:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14639,"nodeType":"Block","src":"28003:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":14631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28053:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":14632,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14619,"src":"28087:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14633,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14621,"src":"28091:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14634,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14623,"src":"28095:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14635,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14625,"src":"28099:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28029:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28033:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28029:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28029:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14628,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28013:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28013:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14638,"nodeType":"ExpressionStatement","src":"28013:90:28"}]},"id":14640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27943:3:28","nodeType":"FunctionDefinition","parameters":{"id":14626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14619,"mutability":"mutable","name":"p0","nameLocation":"27955:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27947:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14618,"name":"uint256","nodeType":"ElementaryTypeName","src":"27947:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14621,"mutability":"mutable","name":"p1","nameLocation":"27964:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27959:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14620,"name":"bool","nodeType":"ElementaryTypeName","src":"27959:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14623,"mutability":"mutable","name":"p2","nameLocation":"27973:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27968:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14622,"name":"bool","nodeType":"ElementaryTypeName","src":"27968:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14625,"mutability":"mutable","name":"p3","nameLocation":"27985:2:28","nodeType":"VariableDeclaration","scope":14640,"src":"27977:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14624,"name":"address","nodeType":"ElementaryTypeName","src":"27977:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27946:42:28"},"returnParameters":{"id":14627,"nodeType":"ParameterList","parameters":[],"src":"28003:0:28"},"scope":19517,"src":"27934:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14662,"nodeType":"Block","src":"28188:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":14654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28238:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":14655,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14642,"src":"28275:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14656,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"28279:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14657,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14646,"src":"28283:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14658,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14648,"src":"28287:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28214:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28218:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28214:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28214:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28198:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14661,"nodeType":"ExpressionStatement","src":"28198:93:28"}]},"id":14663,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28125:3:28","nodeType":"FunctionDefinition","parameters":{"id":14649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14642,"mutability":"mutable","name":"p0","nameLocation":"28137:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28129:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14641,"name":"uint256","nodeType":"ElementaryTypeName","src":"28129:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14644,"mutability":"mutable","name":"p1","nameLocation":"28146:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28141:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14643,"name":"bool","nodeType":"ElementaryTypeName","src":"28141:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14646,"mutability":"mutable","name":"p2","nameLocation":"28158:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28150:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14645,"name":"address","nodeType":"ElementaryTypeName","src":"28150:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14648,"mutability":"mutable","name":"p3","nameLocation":"28170:2:28","nodeType":"VariableDeclaration","scope":14663,"src":"28162:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14647,"name":"uint256","nodeType":"ElementaryTypeName","src":"28162:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28128:45:28"},"returnParameters":{"id":14650,"nodeType":"ParameterList","parameters":[],"src":"28188:0:28"},"scope":19517,"src":"28116:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14685,"nodeType":"Block","src":"28382:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":14677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28432:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":14678,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14665,"src":"28468:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14679,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14667,"src":"28472:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14680,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14669,"src":"28476:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14681,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14671,"src":"28480:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28408:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28412:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28408:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28408:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14674,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28392:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28392:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14684,"nodeType":"ExpressionStatement","src":"28392:92:28"}]},"id":14686,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28313:3:28","nodeType":"FunctionDefinition","parameters":{"id":14672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14665,"mutability":"mutable","name":"p0","nameLocation":"28325:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28317:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14664,"name":"uint256","nodeType":"ElementaryTypeName","src":"28317:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14667,"mutability":"mutable","name":"p1","nameLocation":"28334:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28329:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14666,"name":"bool","nodeType":"ElementaryTypeName","src":"28329:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14669,"mutability":"mutable","name":"p2","nameLocation":"28346:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28338:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14668,"name":"address","nodeType":"ElementaryTypeName","src":"28338:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14671,"mutability":"mutable","name":"p3","nameLocation":"28364:2:28","nodeType":"VariableDeclaration","scope":14686,"src":"28350:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14670,"name":"string","nodeType":"ElementaryTypeName","src":"28350:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28316:51:28"},"returnParameters":{"id":14673,"nodeType":"ParameterList","parameters":[],"src":"28382:0:28"},"scope":19517,"src":"28304:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14708,"nodeType":"Block","src":"28566:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":14700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28616:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":14701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14688,"src":"28650:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14690,"src":"28654:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14692,"src":"28658:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14704,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14694,"src":"28662:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28592:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28596:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28592:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28592:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28576:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28576:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14707,"nodeType":"ExpressionStatement","src":"28576:90:28"}]},"id":14709,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28506:3:28","nodeType":"FunctionDefinition","parameters":{"id":14695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14688,"mutability":"mutable","name":"p0","nameLocation":"28518:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28510:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14687,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14690,"mutability":"mutable","name":"p1","nameLocation":"28527:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28522:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14689,"name":"bool","nodeType":"ElementaryTypeName","src":"28522:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14692,"mutability":"mutable","name":"p2","nameLocation":"28539:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28531:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14691,"name":"address","nodeType":"ElementaryTypeName","src":"28531:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14694,"mutability":"mutable","name":"p3","nameLocation":"28548:2:28","nodeType":"VariableDeclaration","scope":14709,"src":"28543:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14693,"name":"bool","nodeType":"ElementaryTypeName","src":"28543:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28509:42:28"},"returnParameters":{"id":14696,"nodeType":"ParameterList","parameters":[],"src":"28566:0:28"},"scope":19517,"src":"28497:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14731,"nodeType":"Block","src":"28751:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":14723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28801:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":14724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14711,"src":"28838:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14713,"src":"28842:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14715,"src":"28846:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14727,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14717,"src":"28850:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28777:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28781:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28777:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28777:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28761:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28761:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14730,"nodeType":"ExpressionStatement","src":"28761:93:28"}]},"id":14732,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28688:3:28","nodeType":"FunctionDefinition","parameters":{"id":14718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14711,"mutability":"mutable","name":"p0","nameLocation":"28700:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28692:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14710,"name":"uint256","nodeType":"ElementaryTypeName","src":"28692:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14713,"mutability":"mutable","name":"p1","nameLocation":"28709:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28704:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14712,"name":"bool","nodeType":"ElementaryTypeName","src":"28704:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14715,"mutability":"mutable","name":"p2","nameLocation":"28721:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28713:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14714,"name":"address","nodeType":"ElementaryTypeName","src":"28713:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14717,"mutability":"mutable","name":"p3","nameLocation":"28733:2:28","nodeType":"VariableDeclaration","scope":14732,"src":"28725:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14716,"name":"address","nodeType":"ElementaryTypeName","src":"28725:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28691:45:28"},"returnParameters":{"id":14719,"nodeType":"ParameterList","parameters":[],"src":"28751:0:28"},"scope":19517,"src":"28679:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14754,"nodeType":"Block","src":"28942:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":14746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28992:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":14747,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14734,"src":"29032:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14748,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14736,"src":"29036:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14749,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14738,"src":"29040:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14750,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14740,"src":"29044:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28968:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28972:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28968:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28968:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"28952:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28952:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14753,"nodeType":"ExpressionStatement","src":"28952:96:28"}]},"id":14755,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28876:3:28","nodeType":"FunctionDefinition","parameters":{"id":14741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14734,"mutability":"mutable","name":"p0","nameLocation":"28888:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28880:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14733,"name":"uint256","nodeType":"ElementaryTypeName","src":"28880:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14736,"mutability":"mutable","name":"p1","nameLocation":"28900:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28892:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14735,"name":"address","nodeType":"ElementaryTypeName","src":"28892:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14738,"mutability":"mutable","name":"p2","nameLocation":"28912:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28904:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14737,"name":"uint256","nodeType":"ElementaryTypeName","src":"28904:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14740,"mutability":"mutable","name":"p3","nameLocation":"28924:2:28","nodeType":"VariableDeclaration","scope":14755,"src":"28916:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14739,"name":"uint256","nodeType":"ElementaryTypeName","src":"28916:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28879:48:28"},"returnParameters":{"id":14742,"nodeType":"ParameterList","parameters":[],"src":"28942:0:28"},"scope":19517,"src":"28867:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14777,"nodeType":"Block","src":"29142:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":14769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29192:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":14770,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14757,"src":"29231:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14771,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14759,"src":"29235:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14772,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"29239:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14773,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14763,"src":"29243:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29168:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29172:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29168:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29168:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29152:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29152:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14776,"nodeType":"ExpressionStatement","src":"29152:95:28"}]},"id":14778,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29070:3:28","nodeType":"FunctionDefinition","parameters":{"id":14764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14757,"mutability":"mutable","name":"p0","nameLocation":"29082:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29074:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14756,"name":"uint256","nodeType":"ElementaryTypeName","src":"29074:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14759,"mutability":"mutable","name":"p1","nameLocation":"29094:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29086:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14758,"name":"address","nodeType":"ElementaryTypeName","src":"29086:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14761,"mutability":"mutable","name":"p2","nameLocation":"29106:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29098:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14760,"name":"uint256","nodeType":"ElementaryTypeName","src":"29098:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14763,"mutability":"mutable","name":"p3","nameLocation":"29124:2:28","nodeType":"VariableDeclaration","scope":14778,"src":"29110:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14762,"name":"string","nodeType":"ElementaryTypeName","src":"29110:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29073:54:28"},"returnParameters":{"id":14765,"nodeType":"ParameterList","parameters":[],"src":"29142:0:28"},"scope":19517,"src":"29061:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14800,"nodeType":"Block","src":"29332:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":14792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29382:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":14793,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14780,"src":"29419:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14794,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14782,"src":"29423:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14795,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"29427:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14796,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"29431:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29358:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29362:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29358:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29358:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14789,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29342:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29342:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14799,"nodeType":"ExpressionStatement","src":"29342:93:28"}]},"id":14801,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29269:3:28","nodeType":"FunctionDefinition","parameters":{"id":14787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14780,"mutability":"mutable","name":"p0","nameLocation":"29281:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29273:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14779,"name":"uint256","nodeType":"ElementaryTypeName","src":"29273:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14782,"mutability":"mutable","name":"p1","nameLocation":"29293:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29285:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14781,"name":"address","nodeType":"ElementaryTypeName","src":"29285:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14784,"mutability":"mutable","name":"p2","nameLocation":"29305:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29297:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14783,"name":"uint256","nodeType":"ElementaryTypeName","src":"29297:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14786,"mutability":"mutable","name":"p3","nameLocation":"29314:2:28","nodeType":"VariableDeclaration","scope":14801,"src":"29309:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14785,"name":"bool","nodeType":"ElementaryTypeName","src":"29309:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29272:45:28"},"returnParameters":{"id":14788,"nodeType":"ParameterList","parameters":[],"src":"29332:0:28"},"scope":19517,"src":"29260:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14823,"nodeType":"Block","src":"29523:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":14815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29573:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":14816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"29613:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14805,"src":"29617:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"29621:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14819,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14809,"src":"29625:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29549:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29553:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29549:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29533:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14822,"nodeType":"ExpressionStatement","src":"29533:96:28"}]},"id":14824,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29457:3:28","nodeType":"FunctionDefinition","parameters":{"id":14810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14803,"mutability":"mutable","name":"p0","nameLocation":"29469:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29461:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14802,"name":"uint256","nodeType":"ElementaryTypeName","src":"29461:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14805,"mutability":"mutable","name":"p1","nameLocation":"29481:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29473:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14804,"name":"address","nodeType":"ElementaryTypeName","src":"29473:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14807,"mutability":"mutable","name":"p2","nameLocation":"29493:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29485:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14806,"name":"uint256","nodeType":"ElementaryTypeName","src":"29485:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14809,"mutability":"mutable","name":"p3","nameLocation":"29505:2:28","nodeType":"VariableDeclaration","scope":14824,"src":"29497:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14808,"name":"address","nodeType":"ElementaryTypeName","src":"29497:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29460:48:28"},"returnParameters":{"id":14811,"nodeType":"ParameterList","parameters":[],"src":"29523:0:28"},"scope":19517,"src":"29448:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14846,"nodeType":"Block","src":"29723:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":14838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29773:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":14839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14826,"src":"29812:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14828,"src":"29816:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14830,"src":"29820:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14842,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14832,"src":"29824:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29749:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29753:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29749:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29749:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29733:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29733:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14845,"nodeType":"ExpressionStatement","src":"29733:95:28"}]},"id":14847,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29651:3:28","nodeType":"FunctionDefinition","parameters":{"id":14833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14826,"mutability":"mutable","name":"p0","nameLocation":"29663:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29655:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14825,"name":"uint256","nodeType":"ElementaryTypeName","src":"29655:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14828,"mutability":"mutable","name":"p1","nameLocation":"29675:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29667:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14827,"name":"address","nodeType":"ElementaryTypeName","src":"29667:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14830,"mutability":"mutable","name":"p2","nameLocation":"29693:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29679:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14829,"name":"string","nodeType":"ElementaryTypeName","src":"29679:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14832,"mutability":"mutable","name":"p3","nameLocation":"29705:2:28","nodeType":"VariableDeclaration","scope":14847,"src":"29697:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14831,"name":"uint256","nodeType":"ElementaryTypeName","src":"29697:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29654:54:28"},"returnParameters":{"id":14834,"nodeType":"ParameterList","parameters":[],"src":"29723:0:28"},"scope":19517,"src":"29642:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14869,"nodeType":"Block","src":"29928:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":14861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29978:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":14862,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14849,"src":"30016:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14863,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14851,"src":"30020:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14864,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14853,"src":"30024:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14865,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14855,"src":"30028:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29954:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29958:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29954:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29954:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"29938:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29938:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14868,"nodeType":"ExpressionStatement","src":"29938:94:28"}]},"id":14870,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29850:3:28","nodeType":"FunctionDefinition","parameters":{"id":14856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14849,"mutability":"mutable","name":"p0","nameLocation":"29862:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29854:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14848,"name":"uint256","nodeType":"ElementaryTypeName","src":"29854:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14851,"mutability":"mutable","name":"p1","nameLocation":"29874:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29866:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14850,"name":"address","nodeType":"ElementaryTypeName","src":"29866:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14853,"mutability":"mutable","name":"p2","nameLocation":"29892:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29878:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14852,"name":"string","nodeType":"ElementaryTypeName","src":"29878:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14855,"mutability":"mutable","name":"p3","nameLocation":"29910:2:28","nodeType":"VariableDeclaration","scope":14870,"src":"29896:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14854,"name":"string","nodeType":"ElementaryTypeName","src":"29896:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29853:60:28"},"returnParameters":{"id":14857,"nodeType":"ParameterList","parameters":[],"src":"29928:0:28"},"scope":19517,"src":"29841:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14892,"nodeType":"Block","src":"30123:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":14884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30173:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":14885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14872,"src":"30209:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14886,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14874,"src":"30213:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14887,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14876,"src":"30217:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14888,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14878,"src":"30221:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30149:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30153:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30149:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30149:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30133:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30133:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14891,"nodeType":"ExpressionStatement","src":"30133:92:28"}]},"id":14893,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30054:3:28","nodeType":"FunctionDefinition","parameters":{"id":14879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14872,"mutability":"mutable","name":"p0","nameLocation":"30066:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30058:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14871,"name":"uint256","nodeType":"ElementaryTypeName","src":"30058:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14874,"mutability":"mutable","name":"p1","nameLocation":"30078:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30070:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14873,"name":"address","nodeType":"ElementaryTypeName","src":"30070:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14876,"mutability":"mutable","name":"p2","nameLocation":"30096:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30082:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14875,"name":"string","nodeType":"ElementaryTypeName","src":"30082:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14878,"mutability":"mutable","name":"p3","nameLocation":"30105:2:28","nodeType":"VariableDeclaration","scope":14893,"src":"30100:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14877,"name":"bool","nodeType":"ElementaryTypeName","src":"30100:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30057:51:28"},"returnParameters":{"id":14880,"nodeType":"ParameterList","parameters":[],"src":"30123:0:28"},"scope":19517,"src":"30045:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14915,"nodeType":"Block","src":"30319:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":14907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30369:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":14908,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"30408:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14909,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14897,"src":"30412:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14910,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14899,"src":"30416:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14911,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14901,"src":"30420:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30345:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30349:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30345:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30345:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14904,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30329:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30329:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14914,"nodeType":"ExpressionStatement","src":"30329:95:28"}]},"id":14916,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30247:3:28","nodeType":"FunctionDefinition","parameters":{"id":14902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14895,"mutability":"mutable","name":"p0","nameLocation":"30259:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30251:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14894,"name":"uint256","nodeType":"ElementaryTypeName","src":"30251:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14897,"mutability":"mutable","name":"p1","nameLocation":"30271:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30263:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14896,"name":"address","nodeType":"ElementaryTypeName","src":"30263:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14899,"mutability":"mutable","name":"p2","nameLocation":"30289:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30275:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14898,"name":"string","nodeType":"ElementaryTypeName","src":"30275:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14901,"mutability":"mutable","name":"p3","nameLocation":"30301:2:28","nodeType":"VariableDeclaration","scope":14916,"src":"30293:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14900,"name":"address","nodeType":"ElementaryTypeName","src":"30293:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:54:28"},"returnParameters":{"id":14903,"nodeType":"ParameterList","parameters":[],"src":"30319:0:28"},"scope":19517,"src":"30238:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14938,"nodeType":"Block","src":"30509:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":14930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30559:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":14931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14918,"src":"30596:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14932,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14920,"src":"30600:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14933,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14922,"src":"30604:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14934,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14924,"src":"30608:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30535:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30539:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30535:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30535:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30519:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30519:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14937,"nodeType":"ExpressionStatement","src":"30519:93:28"}]},"id":14939,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30446:3:28","nodeType":"FunctionDefinition","parameters":{"id":14925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14918,"mutability":"mutable","name":"p0","nameLocation":"30458:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30450:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14917,"name":"uint256","nodeType":"ElementaryTypeName","src":"30450:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14920,"mutability":"mutable","name":"p1","nameLocation":"30470:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30462:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14919,"name":"address","nodeType":"ElementaryTypeName","src":"30462:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14922,"mutability":"mutable","name":"p2","nameLocation":"30479:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30474:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14921,"name":"bool","nodeType":"ElementaryTypeName","src":"30474:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14924,"mutability":"mutable","name":"p3","nameLocation":"30491:2:28","nodeType":"VariableDeclaration","scope":14939,"src":"30483:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14923,"name":"uint256","nodeType":"ElementaryTypeName","src":"30483:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30449:45:28"},"returnParameters":{"id":14926,"nodeType":"ParameterList","parameters":[],"src":"30509:0:28"},"scope":19517,"src":"30437:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14961,"nodeType":"Block","src":"30703:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":14953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30753:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":14954,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14941,"src":"30789:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14955,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14943,"src":"30793:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14956,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14945,"src":"30797:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14957,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14947,"src":"30801:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30729:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30733:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30729:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30729:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14950,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30713:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30713:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14960,"nodeType":"ExpressionStatement","src":"30713:92:28"}]},"id":14962,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30634:3:28","nodeType":"FunctionDefinition","parameters":{"id":14948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14941,"mutability":"mutable","name":"p0","nameLocation":"30646:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30638:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14940,"name":"uint256","nodeType":"ElementaryTypeName","src":"30638:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14943,"mutability":"mutable","name":"p1","nameLocation":"30658:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30650:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14942,"name":"address","nodeType":"ElementaryTypeName","src":"30650:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14945,"mutability":"mutable","name":"p2","nameLocation":"30667:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30662:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14944,"name":"bool","nodeType":"ElementaryTypeName","src":"30662:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14947,"mutability":"mutable","name":"p3","nameLocation":"30685:2:28","nodeType":"VariableDeclaration","scope":14962,"src":"30671:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14946,"name":"string","nodeType":"ElementaryTypeName","src":"30671:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30637:51:28"},"returnParameters":{"id":14949,"nodeType":"ParameterList","parameters":[],"src":"30703:0:28"},"scope":19517,"src":"30625:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14984,"nodeType":"Block","src":"30887:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":14976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30937:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":14977,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14964,"src":"30971:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14978,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14966,"src":"30975:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14979,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14968,"src":"30979:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14980,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14970,"src":"30983:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30913:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30917:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30913:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30913:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14973,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"30897:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":14982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30897:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14983,"nodeType":"ExpressionStatement","src":"30897:90:28"}]},"id":14985,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30827:3:28","nodeType":"FunctionDefinition","parameters":{"id":14971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14964,"mutability":"mutable","name":"p0","nameLocation":"30839:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30831:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14963,"name":"uint256","nodeType":"ElementaryTypeName","src":"30831:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14966,"mutability":"mutable","name":"p1","nameLocation":"30851:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30843:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14965,"name":"address","nodeType":"ElementaryTypeName","src":"30843:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14968,"mutability":"mutable","name":"p2","nameLocation":"30860:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30855:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14967,"name":"bool","nodeType":"ElementaryTypeName","src":"30855:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14970,"mutability":"mutable","name":"p3","nameLocation":"30869:2:28","nodeType":"VariableDeclaration","scope":14985,"src":"30864:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14969,"name":"bool","nodeType":"ElementaryTypeName","src":"30864:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30830:42:28"},"returnParameters":{"id":14972,"nodeType":"ParameterList","parameters":[],"src":"30887:0:28"},"scope":19517,"src":"30818:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15007,"nodeType":"Block","src":"31072:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":14999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31122:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":15000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14987,"src":"31159:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14989,"src":"31163:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14991,"src":"31167:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15003,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14993,"src":"31171:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31098:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31102:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31098:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31098:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31082:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31082:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15006,"nodeType":"ExpressionStatement","src":"31082:93:28"}]},"id":15008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31009:3:28","nodeType":"FunctionDefinition","parameters":{"id":14994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14987,"mutability":"mutable","name":"p0","nameLocation":"31021:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31013:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14986,"name":"uint256","nodeType":"ElementaryTypeName","src":"31013:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14989,"mutability":"mutable","name":"p1","nameLocation":"31033:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31025:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14988,"name":"address","nodeType":"ElementaryTypeName","src":"31025:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14991,"mutability":"mutable","name":"p2","nameLocation":"31042:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31037:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14990,"name":"bool","nodeType":"ElementaryTypeName","src":"31037:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14993,"mutability":"mutable","name":"p3","nameLocation":"31054:2:28","nodeType":"VariableDeclaration","scope":15008,"src":"31046:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14992,"name":"address","nodeType":"ElementaryTypeName","src":"31046:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31012:45:28"},"returnParameters":{"id":14995,"nodeType":"ParameterList","parameters":[],"src":"31072:0:28"},"scope":19517,"src":"31000:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15030,"nodeType":"Block","src":"31263:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":15022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31313:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":15023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"31353:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15012,"src":"31357:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15014,"src":"31361:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15026,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15016,"src":"31365:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31289:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31293:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31289:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31289:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31273:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31273:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15029,"nodeType":"ExpressionStatement","src":"31273:96:28"}]},"id":15031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31197:3:28","nodeType":"FunctionDefinition","parameters":{"id":15017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15010,"mutability":"mutable","name":"p0","nameLocation":"31209:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31201:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15009,"name":"uint256","nodeType":"ElementaryTypeName","src":"31201:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15012,"mutability":"mutable","name":"p1","nameLocation":"31221:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31213:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15011,"name":"address","nodeType":"ElementaryTypeName","src":"31213:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15014,"mutability":"mutable","name":"p2","nameLocation":"31233:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31225:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15013,"name":"address","nodeType":"ElementaryTypeName","src":"31225:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15016,"mutability":"mutable","name":"p3","nameLocation":"31245:2:28","nodeType":"VariableDeclaration","scope":15031,"src":"31237:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15015,"name":"uint256","nodeType":"ElementaryTypeName","src":"31237:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31200:48:28"},"returnParameters":{"id":15018,"nodeType":"ParameterList","parameters":[],"src":"31263:0:28"},"scope":19517,"src":"31188:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15053,"nodeType":"Block","src":"31463:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":15045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31513:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":15046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15033,"src":"31552:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"31556:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15037,"src":"31560:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15049,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15039,"src":"31564:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31489:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31493:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31489:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31489:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31473:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31473:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15052,"nodeType":"ExpressionStatement","src":"31473:95:28"}]},"id":15054,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31391:3:28","nodeType":"FunctionDefinition","parameters":{"id":15040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15033,"mutability":"mutable","name":"p0","nameLocation":"31403:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31395:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15032,"name":"uint256","nodeType":"ElementaryTypeName","src":"31395:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15035,"mutability":"mutable","name":"p1","nameLocation":"31415:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31407:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15034,"name":"address","nodeType":"ElementaryTypeName","src":"31407:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15037,"mutability":"mutable","name":"p2","nameLocation":"31427:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31419:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15036,"name":"address","nodeType":"ElementaryTypeName","src":"31419:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15039,"mutability":"mutable","name":"p3","nameLocation":"31445:2:28","nodeType":"VariableDeclaration","scope":15054,"src":"31431:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15038,"name":"string","nodeType":"ElementaryTypeName","src":"31431:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31394:54:28"},"returnParameters":{"id":15041,"nodeType":"ParameterList","parameters":[],"src":"31463:0:28"},"scope":19517,"src":"31382:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15076,"nodeType":"Block","src":"31653:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":15068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31703:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":15069,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15056,"src":"31740:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15070,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"31744:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15071,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15060,"src":"31748:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15072,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15062,"src":"31752:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31679:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31683:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31679:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31679:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15065,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31663:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31663:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15075,"nodeType":"ExpressionStatement","src":"31663:93:28"}]},"id":15077,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31590:3:28","nodeType":"FunctionDefinition","parameters":{"id":15063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15056,"mutability":"mutable","name":"p0","nameLocation":"31602:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31594:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15055,"name":"uint256","nodeType":"ElementaryTypeName","src":"31594:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15058,"mutability":"mutable","name":"p1","nameLocation":"31614:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31606:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15057,"name":"address","nodeType":"ElementaryTypeName","src":"31606:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15060,"mutability":"mutable","name":"p2","nameLocation":"31626:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31618:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15059,"name":"address","nodeType":"ElementaryTypeName","src":"31618:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15062,"mutability":"mutable","name":"p3","nameLocation":"31635:2:28","nodeType":"VariableDeclaration","scope":15077,"src":"31630:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15061,"name":"bool","nodeType":"ElementaryTypeName","src":"31630:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31593:45:28"},"returnParameters":{"id":15064,"nodeType":"ParameterList","parameters":[],"src":"31653:0:28"},"scope":19517,"src":"31581:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15099,"nodeType":"Block","src":"31844:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":15091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31894:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":15092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15079,"src":"31934:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15093,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"31938:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15094,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15083,"src":"31942:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15095,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15085,"src":"31946:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31870:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31874:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31870:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31870:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"31854:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31854:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15098,"nodeType":"ExpressionStatement","src":"31854:96:28"}]},"id":15100,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31778:3:28","nodeType":"FunctionDefinition","parameters":{"id":15086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15079,"mutability":"mutable","name":"p0","nameLocation":"31790:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31782:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15078,"name":"uint256","nodeType":"ElementaryTypeName","src":"31782:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15081,"mutability":"mutable","name":"p1","nameLocation":"31802:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31794:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15080,"name":"address","nodeType":"ElementaryTypeName","src":"31794:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15083,"mutability":"mutable","name":"p2","nameLocation":"31814:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31806:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15082,"name":"address","nodeType":"ElementaryTypeName","src":"31806:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15085,"mutability":"mutable","name":"p3","nameLocation":"31826:2:28","nodeType":"VariableDeclaration","scope":15100,"src":"31818:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15084,"name":"address","nodeType":"ElementaryTypeName","src":"31818:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31781:48:28"},"returnParameters":{"id":15087,"nodeType":"ParameterList","parameters":[],"src":"31844:0:28"},"scope":19517,"src":"31769:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15122,"nodeType":"Block","src":"32044:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":15114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32094:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":15115,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15102,"src":"32133:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15116,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15104,"src":"32137:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15117,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15106,"src":"32141:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15118,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15108,"src":"32145:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32070:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32074:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32070:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32070:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15111,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32054:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32054:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15121,"nodeType":"ExpressionStatement","src":"32054:95:28"}]},"id":15123,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31972:3:28","nodeType":"FunctionDefinition","parameters":{"id":15109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15102,"mutability":"mutable","name":"p0","nameLocation":"31990:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"31976:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15101,"name":"string","nodeType":"ElementaryTypeName","src":"31976:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15104,"mutability":"mutable","name":"p1","nameLocation":"32002:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"31994:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15103,"name":"uint256","nodeType":"ElementaryTypeName","src":"31994:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15106,"mutability":"mutable","name":"p2","nameLocation":"32014:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"32006:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15105,"name":"uint256","nodeType":"ElementaryTypeName","src":"32006:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15108,"mutability":"mutable","name":"p3","nameLocation":"32026:2:28","nodeType":"VariableDeclaration","scope":15123,"src":"32018:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15107,"name":"uint256","nodeType":"ElementaryTypeName","src":"32018:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31975:54:28"},"returnParameters":{"id":15110,"nodeType":"ParameterList","parameters":[],"src":"32044:0:28"},"scope":19517,"src":"31963:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15145,"nodeType":"Block","src":"32249:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":15137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32299:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":15138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15125,"src":"32337:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15127,"src":"32341:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15140,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15129,"src":"32345:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15141,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15131,"src":"32349:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32275:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32279:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32275:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32275:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32259:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32259:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15144,"nodeType":"ExpressionStatement","src":"32259:94:28"}]},"id":15146,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32171:3:28","nodeType":"FunctionDefinition","parameters":{"id":15132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15125,"mutability":"mutable","name":"p0","nameLocation":"32189:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32175:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15124,"name":"string","nodeType":"ElementaryTypeName","src":"32175:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15127,"mutability":"mutable","name":"p1","nameLocation":"32201:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32193:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15126,"name":"uint256","nodeType":"ElementaryTypeName","src":"32193:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15129,"mutability":"mutable","name":"p2","nameLocation":"32213:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32205:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15128,"name":"uint256","nodeType":"ElementaryTypeName","src":"32205:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15131,"mutability":"mutable","name":"p3","nameLocation":"32231:2:28","nodeType":"VariableDeclaration","scope":15146,"src":"32217:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15130,"name":"string","nodeType":"ElementaryTypeName","src":"32217:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32174:60:28"},"returnParameters":{"id":15133,"nodeType":"ParameterList","parameters":[],"src":"32249:0:28"},"scope":19517,"src":"32162:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15168,"nodeType":"Block","src":"32444:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":15160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32494:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":15161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"32530:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15150,"src":"32534:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15152,"src":"32538:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15164,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"32542:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32470:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32474:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32470:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32470:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32454:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32454:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15167,"nodeType":"ExpressionStatement","src":"32454:92:28"}]},"id":15169,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32375:3:28","nodeType":"FunctionDefinition","parameters":{"id":15155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15148,"mutability":"mutable","name":"p0","nameLocation":"32393:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32379:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15147,"name":"string","nodeType":"ElementaryTypeName","src":"32379:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15150,"mutability":"mutable","name":"p1","nameLocation":"32405:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32397:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15149,"name":"uint256","nodeType":"ElementaryTypeName","src":"32397:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15152,"mutability":"mutable","name":"p2","nameLocation":"32417:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32409:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15151,"name":"uint256","nodeType":"ElementaryTypeName","src":"32409:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15154,"mutability":"mutable","name":"p3","nameLocation":"32426:2:28","nodeType":"VariableDeclaration","scope":15169,"src":"32421:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15153,"name":"bool","nodeType":"ElementaryTypeName","src":"32421:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32378:51:28"},"returnParameters":{"id":15156,"nodeType":"ParameterList","parameters":[],"src":"32444:0:28"},"scope":19517,"src":"32366:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15191,"nodeType":"Block","src":"32640:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":15183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32690:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":15184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15171,"src":"32729:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"32733:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15175,"src":"32737:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15187,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15177,"src":"32741:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32666:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32670:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32666:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32666:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32650:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32650:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15190,"nodeType":"ExpressionStatement","src":"32650:95:28"}]},"id":15192,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32568:3:28","nodeType":"FunctionDefinition","parameters":{"id":15178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15171,"mutability":"mutable","name":"p0","nameLocation":"32586:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32572:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15170,"name":"string","nodeType":"ElementaryTypeName","src":"32572:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15173,"mutability":"mutable","name":"p1","nameLocation":"32598:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32590:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15172,"name":"uint256","nodeType":"ElementaryTypeName","src":"32590:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15175,"mutability":"mutable","name":"p2","nameLocation":"32610:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32602:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15174,"name":"uint256","nodeType":"ElementaryTypeName","src":"32602:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15177,"mutability":"mutable","name":"p3","nameLocation":"32622:2:28","nodeType":"VariableDeclaration","scope":15192,"src":"32614:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15176,"name":"address","nodeType":"ElementaryTypeName","src":"32614:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32571:54:28"},"returnParameters":{"id":15179,"nodeType":"ParameterList","parameters":[],"src":"32640:0:28"},"scope":19517,"src":"32559:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15214,"nodeType":"Block","src":"32845:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":15206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32895:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":15207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15194,"src":"32933:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15196,"src":"32937:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15209,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15198,"src":"32941:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15210,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15200,"src":"32945:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32871:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32875:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32871:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32871:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"32855:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32855:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15213,"nodeType":"ExpressionStatement","src":"32855:94:28"}]},"id":15215,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32767:3:28","nodeType":"FunctionDefinition","parameters":{"id":15201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15194,"mutability":"mutable","name":"p0","nameLocation":"32785:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32771:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15193,"name":"string","nodeType":"ElementaryTypeName","src":"32771:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15196,"mutability":"mutable","name":"p1","nameLocation":"32797:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32789:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15195,"name":"uint256","nodeType":"ElementaryTypeName","src":"32789:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15198,"mutability":"mutable","name":"p2","nameLocation":"32815:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32801:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15197,"name":"string","nodeType":"ElementaryTypeName","src":"32801:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15200,"mutability":"mutable","name":"p3","nameLocation":"32827:2:28","nodeType":"VariableDeclaration","scope":15215,"src":"32819:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15199,"name":"uint256","nodeType":"ElementaryTypeName","src":"32819:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32770:60:28"},"returnParameters":{"id":15202,"nodeType":"ParameterList","parameters":[],"src":"32845:0:28"},"scope":19517,"src":"32758:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15237,"nodeType":"Block","src":"33055:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":15229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33105:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":15230,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15217,"src":"33142:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15231,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15219,"src":"33146:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15232,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15221,"src":"33150:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15233,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15223,"src":"33154:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33081:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33085:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33081:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33081:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15226,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33065:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33065:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15236,"nodeType":"ExpressionStatement","src":"33065:93:28"}]},"id":15238,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32971:3:28","nodeType":"FunctionDefinition","parameters":{"id":15224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15217,"mutability":"mutable","name":"p0","nameLocation":"32989:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"32975:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15216,"name":"string","nodeType":"ElementaryTypeName","src":"32975:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15219,"mutability":"mutable","name":"p1","nameLocation":"33001:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"32993:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15218,"name":"uint256","nodeType":"ElementaryTypeName","src":"32993:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15221,"mutability":"mutable","name":"p2","nameLocation":"33019:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"33005:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15220,"name":"string","nodeType":"ElementaryTypeName","src":"33005:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15223,"mutability":"mutable","name":"p3","nameLocation":"33037:2:28","nodeType":"VariableDeclaration","scope":15238,"src":"33023:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15222,"name":"string","nodeType":"ElementaryTypeName","src":"33023:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32974:66:28"},"returnParameters":{"id":15225,"nodeType":"ParameterList","parameters":[],"src":"33055:0:28"},"scope":19517,"src":"32962:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15260,"nodeType":"Block","src":"33255:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":15252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33305:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":15253,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15240,"src":"33340:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15254,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15242,"src":"33344:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15255,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15244,"src":"33348:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15256,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15246,"src":"33352:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33281:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33285:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33281:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33281:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33265:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33265:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15259,"nodeType":"ExpressionStatement","src":"33265:91:28"}]},"id":15261,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33180:3:28","nodeType":"FunctionDefinition","parameters":{"id":15247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15240,"mutability":"mutable","name":"p0","nameLocation":"33198:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33184:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15239,"name":"string","nodeType":"ElementaryTypeName","src":"33184:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15242,"mutability":"mutable","name":"p1","nameLocation":"33210:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33202:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15241,"name":"uint256","nodeType":"ElementaryTypeName","src":"33202:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15244,"mutability":"mutable","name":"p2","nameLocation":"33228:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33214:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15243,"name":"string","nodeType":"ElementaryTypeName","src":"33214:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15246,"mutability":"mutable","name":"p3","nameLocation":"33237:2:28","nodeType":"VariableDeclaration","scope":15261,"src":"33232:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15245,"name":"bool","nodeType":"ElementaryTypeName","src":"33232:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33183:57:28"},"returnParameters":{"id":15248,"nodeType":"ParameterList","parameters":[],"src":"33255:0:28"},"scope":19517,"src":"33171:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15283,"nodeType":"Block","src":"33456:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":15275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33506:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":15276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15263,"src":"33544:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15265,"src":"33548:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15267,"src":"33552:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15279,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15269,"src":"33556:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33482:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33486:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33482:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33482:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33466:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33466:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15282,"nodeType":"ExpressionStatement","src":"33466:94:28"}]},"id":15284,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33378:3:28","nodeType":"FunctionDefinition","parameters":{"id":15270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15263,"mutability":"mutable","name":"p0","nameLocation":"33396:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33382:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15262,"name":"string","nodeType":"ElementaryTypeName","src":"33382:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15265,"mutability":"mutable","name":"p1","nameLocation":"33408:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33400:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15264,"name":"uint256","nodeType":"ElementaryTypeName","src":"33400:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15267,"mutability":"mutable","name":"p2","nameLocation":"33426:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33412:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15266,"name":"string","nodeType":"ElementaryTypeName","src":"33412:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15269,"mutability":"mutable","name":"p3","nameLocation":"33438:2:28","nodeType":"VariableDeclaration","scope":15284,"src":"33430:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15268,"name":"address","nodeType":"ElementaryTypeName","src":"33430:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33381:60:28"},"returnParameters":{"id":15271,"nodeType":"ParameterList","parameters":[],"src":"33456:0:28"},"scope":19517,"src":"33369:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15306,"nodeType":"Block","src":"33651:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":15298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33701:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":15299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15286,"src":"33737:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15288,"src":"33741:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15290,"src":"33745:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15302,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15292,"src":"33749:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33677:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33681:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33677:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33677:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33661:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33661:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15305,"nodeType":"ExpressionStatement","src":"33661:92:28"}]},"id":15307,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33582:3:28","nodeType":"FunctionDefinition","parameters":{"id":15293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15286,"mutability":"mutable","name":"p0","nameLocation":"33600:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33586:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15285,"name":"string","nodeType":"ElementaryTypeName","src":"33586:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15288,"mutability":"mutable","name":"p1","nameLocation":"33612:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33604:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15287,"name":"uint256","nodeType":"ElementaryTypeName","src":"33604:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15290,"mutability":"mutable","name":"p2","nameLocation":"33621:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33616:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15289,"name":"bool","nodeType":"ElementaryTypeName","src":"33616:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15292,"mutability":"mutable","name":"p3","nameLocation":"33633:2:28","nodeType":"VariableDeclaration","scope":15307,"src":"33625:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15291,"name":"uint256","nodeType":"ElementaryTypeName","src":"33625:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33585:51:28"},"returnParameters":{"id":15294,"nodeType":"ParameterList","parameters":[],"src":"33651:0:28"},"scope":19517,"src":"33573:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15329,"nodeType":"Block","src":"33850:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":15321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33900:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":15322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15309,"src":"33935:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15323,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15311,"src":"33939:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15324,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15313,"src":"33943:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15325,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15315,"src":"33947:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33876:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33880:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33876:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33876:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15318,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"33860:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33860:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15328,"nodeType":"ExpressionStatement","src":"33860:91:28"}]},"id":15330,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33775:3:28","nodeType":"FunctionDefinition","parameters":{"id":15316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15309,"mutability":"mutable","name":"p0","nameLocation":"33793:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33779:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15308,"name":"string","nodeType":"ElementaryTypeName","src":"33779:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15311,"mutability":"mutable","name":"p1","nameLocation":"33805:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33797:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15310,"name":"uint256","nodeType":"ElementaryTypeName","src":"33797:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15313,"mutability":"mutable","name":"p2","nameLocation":"33814:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33809:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15312,"name":"bool","nodeType":"ElementaryTypeName","src":"33809:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15315,"mutability":"mutable","name":"p3","nameLocation":"33832:2:28","nodeType":"VariableDeclaration","scope":15330,"src":"33818:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15314,"name":"string","nodeType":"ElementaryTypeName","src":"33818:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33778:57:28"},"returnParameters":{"id":15317,"nodeType":"ParameterList","parameters":[],"src":"33850:0:28"},"scope":19517,"src":"33766:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15352,"nodeType":"Block","src":"34039:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":15344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34089:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":15345,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15332,"src":"34122:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15346,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15334,"src":"34126:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15347,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15336,"src":"34130:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15348,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15338,"src":"34134:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34065:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34069:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34065:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34065:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34049:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34049:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15351,"nodeType":"ExpressionStatement","src":"34049:89:28"}]},"id":15353,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33973:3:28","nodeType":"FunctionDefinition","parameters":{"id":15339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15332,"mutability":"mutable","name":"p0","nameLocation":"33991:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"33977:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15331,"name":"string","nodeType":"ElementaryTypeName","src":"33977:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15334,"mutability":"mutable","name":"p1","nameLocation":"34003:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"33995:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15333,"name":"uint256","nodeType":"ElementaryTypeName","src":"33995:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15336,"mutability":"mutable","name":"p2","nameLocation":"34012:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"34007:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15335,"name":"bool","nodeType":"ElementaryTypeName","src":"34007:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15338,"mutability":"mutable","name":"p3","nameLocation":"34021:2:28","nodeType":"VariableDeclaration","scope":15353,"src":"34016:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15337,"name":"bool","nodeType":"ElementaryTypeName","src":"34016:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33976:48:28"},"returnParameters":{"id":15340,"nodeType":"ParameterList","parameters":[],"src":"34039:0:28"},"scope":19517,"src":"33964:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15375,"nodeType":"Block","src":"34229:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":15367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34279:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":15368,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15355,"src":"34315:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15369,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15357,"src":"34319:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15370,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15359,"src":"34323:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15371,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15361,"src":"34327:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34255:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34259:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34255:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34255:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15364,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34239:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34239:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15374,"nodeType":"ExpressionStatement","src":"34239:92:28"}]},"id":15376,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34160:3:28","nodeType":"FunctionDefinition","parameters":{"id":15362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15355,"mutability":"mutable","name":"p0","nameLocation":"34178:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34164:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15354,"name":"string","nodeType":"ElementaryTypeName","src":"34164:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15357,"mutability":"mutable","name":"p1","nameLocation":"34190:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34182:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15356,"name":"uint256","nodeType":"ElementaryTypeName","src":"34182:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15359,"mutability":"mutable","name":"p2","nameLocation":"34199:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34194:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15358,"name":"bool","nodeType":"ElementaryTypeName","src":"34194:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15361,"mutability":"mutable","name":"p3","nameLocation":"34211:2:28","nodeType":"VariableDeclaration","scope":15376,"src":"34203:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15360,"name":"address","nodeType":"ElementaryTypeName","src":"34203:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34163:51:28"},"returnParameters":{"id":15363,"nodeType":"ParameterList","parameters":[],"src":"34229:0:28"},"scope":19517,"src":"34151:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15398,"nodeType":"Block","src":"34425:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":15390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34475:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":15391,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15378,"src":"34514:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15392,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15380,"src":"34518:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15393,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15382,"src":"34522:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15394,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"34526:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34451:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34455:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34451:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34451:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15387,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34435:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34435:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15397,"nodeType":"ExpressionStatement","src":"34435:95:28"}]},"id":15399,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34353:3:28","nodeType":"FunctionDefinition","parameters":{"id":15385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"mutability":"mutable","name":"p0","nameLocation":"34371:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34357:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15377,"name":"string","nodeType":"ElementaryTypeName","src":"34357:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15380,"mutability":"mutable","name":"p1","nameLocation":"34383:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34375:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15379,"name":"uint256","nodeType":"ElementaryTypeName","src":"34375:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15382,"mutability":"mutable","name":"p2","nameLocation":"34395:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34387:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15381,"name":"address","nodeType":"ElementaryTypeName","src":"34387:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15384,"mutability":"mutable","name":"p3","nameLocation":"34407:2:28","nodeType":"VariableDeclaration","scope":15399,"src":"34399:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15383,"name":"uint256","nodeType":"ElementaryTypeName","src":"34399:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34356:54:28"},"returnParameters":{"id":15386,"nodeType":"ParameterList","parameters":[],"src":"34425:0:28"},"scope":19517,"src":"34344:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15421,"nodeType":"Block","src":"34630:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":15413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34680:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":15414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15401,"src":"34718:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15415,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15403,"src":"34722:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15416,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15405,"src":"34726:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15417,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15407,"src":"34730:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34656:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34660:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34656:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34656:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34640:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34640:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15420,"nodeType":"ExpressionStatement","src":"34640:94:28"}]},"id":15422,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34552:3:28","nodeType":"FunctionDefinition","parameters":{"id":15408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15401,"mutability":"mutable","name":"p0","nameLocation":"34570:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34556:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15400,"name":"string","nodeType":"ElementaryTypeName","src":"34556:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15403,"mutability":"mutable","name":"p1","nameLocation":"34582:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34574:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15402,"name":"uint256","nodeType":"ElementaryTypeName","src":"34574:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15405,"mutability":"mutable","name":"p2","nameLocation":"34594:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34586:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15404,"name":"address","nodeType":"ElementaryTypeName","src":"34586:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15407,"mutability":"mutable","name":"p3","nameLocation":"34612:2:28","nodeType":"VariableDeclaration","scope":15422,"src":"34598:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15406,"name":"string","nodeType":"ElementaryTypeName","src":"34598:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34555:60:28"},"returnParameters":{"id":15409,"nodeType":"ParameterList","parameters":[],"src":"34630:0:28"},"scope":19517,"src":"34543:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15444,"nodeType":"Block","src":"34825:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":15436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34875:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":15437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"34911:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15438,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15426,"src":"34915:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15439,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15428,"src":"34919:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15440,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15430,"src":"34923:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34851:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34855:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34851:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34851:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"34835:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34835:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15443,"nodeType":"ExpressionStatement","src":"34835:92:28"}]},"id":15445,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34756:3:28","nodeType":"FunctionDefinition","parameters":{"id":15431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15424,"mutability":"mutable","name":"p0","nameLocation":"34774:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34760:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15423,"name":"string","nodeType":"ElementaryTypeName","src":"34760:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15426,"mutability":"mutable","name":"p1","nameLocation":"34786:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34778:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15425,"name":"uint256","nodeType":"ElementaryTypeName","src":"34778:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15428,"mutability":"mutable","name":"p2","nameLocation":"34798:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34790:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15427,"name":"address","nodeType":"ElementaryTypeName","src":"34790:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15430,"mutability":"mutable","name":"p3","nameLocation":"34807:2:28","nodeType":"VariableDeclaration","scope":15445,"src":"34802:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15429,"name":"bool","nodeType":"ElementaryTypeName","src":"34802:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34759:51:28"},"returnParameters":{"id":15432,"nodeType":"ParameterList","parameters":[],"src":"34825:0:28"},"scope":19517,"src":"34747:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15467,"nodeType":"Block","src":"35021:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":15459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35071:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":15460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15447,"src":"35110:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15449,"src":"35114:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15451,"src":"35118:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15463,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15453,"src":"35122:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35047:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35051:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35047:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35047:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35031:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35031:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15466,"nodeType":"ExpressionStatement","src":"35031:95:28"}]},"id":15468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34949:3:28","nodeType":"FunctionDefinition","parameters":{"id":15454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15447,"mutability":"mutable","name":"p0","nameLocation":"34967:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34953:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15446,"name":"string","nodeType":"ElementaryTypeName","src":"34953:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15449,"mutability":"mutable","name":"p1","nameLocation":"34979:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34971:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15448,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15451,"mutability":"mutable","name":"p2","nameLocation":"34991:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34983:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15450,"name":"address","nodeType":"ElementaryTypeName","src":"34983:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15453,"mutability":"mutable","name":"p3","nameLocation":"35003:2:28","nodeType":"VariableDeclaration","scope":15468,"src":"34995:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15452,"name":"address","nodeType":"ElementaryTypeName","src":"34995:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34952:54:28"},"returnParameters":{"id":15455,"nodeType":"ParameterList","parameters":[],"src":"35021:0:28"},"scope":19517,"src":"34940:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15490,"nodeType":"Block","src":"35226:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":15482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35276:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":15483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15470,"src":"35314:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15472,"src":"35318:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15474,"src":"35322:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15486,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15476,"src":"35326:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35252:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35256:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35252:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35236:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35236:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15489,"nodeType":"ExpressionStatement","src":"35236:94:28"}]},"id":15491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35148:3:28","nodeType":"FunctionDefinition","parameters":{"id":15477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15470,"mutability":"mutable","name":"p0","nameLocation":"35166:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35152:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15469,"name":"string","nodeType":"ElementaryTypeName","src":"35152:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15472,"mutability":"mutable","name":"p1","nameLocation":"35184:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35170:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15471,"name":"string","nodeType":"ElementaryTypeName","src":"35170:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15474,"mutability":"mutable","name":"p2","nameLocation":"35196:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35188:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15473,"name":"uint256","nodeType":"ElementaryTypeName","src":"35188:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15476,"mutability":"mutable","name":"p3","nameLocation":"35208:2:28","nodeType":"VariableDeclaration","scope":15491,"src":"35200:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15475,"name":"uint256","nodeType":"ElementaryTypeName","src":"35200:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35151:60:28"},"returnParameters":{"id":15478,"nodeType":"ParameterList","parameters":[],"src":"35226:0:28"},"scope":19517,"src":"35139:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15513,"nodeType":"Block","src":"35436:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":15505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35486:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":15506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15493,"src":"35523:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15495,"src":"35527:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15497,"src":"35531:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15509,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15499,"src":"35535:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35462:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35466:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35462:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35462:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35446:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35446:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15512,"nodeType":"ExpressionStatement","src":"35446:93:28"}]},"id":15514,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35352:3:28","nodeType":"FunctionDefinition","parameters":{"id":15500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15493,"mutability":"mutable","name":"p0","nameLocation":"35370:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35356:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15492,"name":"string","nodeType":"ElementaryTypeName","src":"35356:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15495,"mutability":"mutable","name":"p1","nameLocation":"35388:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35374:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15494,"name":"string","nodeType":"ElementaryTypeName","src":"35374:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15497,"mutability":"mutable","name":"p2","nameLocation":"35400:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35392:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15496,"name":"uint256","nodeType":"ElementaryTypeName","src":"35392:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15499,"mutability":"mutable","name":"p3","nameLocation":"35418:2:28","nodeType":"VariableDeclaration","scope":15514,"src":"35404:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15498,"name":"string","nodeType":"ElementaryTypeName","src":"35404:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35355:66:28"},"returnParameters":{"id":15501,"nodeType":"ParameterList","parameters":[],"src":"35436:0:28"},"scope":19517,"src":"35343:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15536,"nodeType":"Block","src":"35636:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":15528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35686:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":15529,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15516,"src":"35721:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15530,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15518,"src":"35725:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15531,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"35729:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15532,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15522,"src":"35733:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15526,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35662:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35666:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35662:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35662:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15525,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35646:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35646:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15535,"nodeType":"ExpressionStatement","src":"35646:91:28"}]},"id":15537,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35561:3:28","nodeType":"FunctionDefinition","parameters":{"id":15523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15516,"mutability":"mutable","name":"p0","nameLocation":"35579:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35565:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15515,"name":"string","nodeType":"ElementaryTypeName","src":"35565:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15518,"mutability":"mutable","name":"p1","nameLocation":"35597:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35583:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15517,"name":"string","nodeType":"ElementaryTypeName","src":"35583:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15520,"mutability":"mutable","name":"p2","nameLocation":"35609:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35601:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15519,"name":"uint256","nodeType":"ElementaryTypeName","src":"35601:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15522,"mutability":"mutable","name":"p3","nameLocation":"35618:2:28","nodeType":"VariableDeclaration","scope":15537,"src":"35613:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15521,"name":"bool","nodeType":"ElementaryTypeName","src":"35613:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35564:57:28"},"returnParameters":{"id":15524,"nodeType":"ParameterList","parameters":[],"src":"35636:0:28"},"scope":19517,"src":"35552:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15559,"nodeType":"Block","src":"35837:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":15551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35887:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":15552,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15539,"src":"35925:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15553,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15541,"src":"35929:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15554,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15543,"src":"35933:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15555,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15545,"src":"35937:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35863:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35867:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35863:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35863:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15548,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"35847:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15558,"nodeType":"ExpressionStatement","src":"35847:94:28"}]},"id":15560,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35759:3:28","nodeType":"FunctionDefinition","parameters":{"id":15546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15539,"mutability":"mutable","name":"p0","nameLocation":"35777:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35763:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15538,"name":"string","nodeType":"ElementaryTypeName","src":"35763:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15541,"mutability":"mutable","name":"p1","nameLocation":"35795:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35781:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15540,"name":"string","nodeType":"ElementaryTypeName","src":"35781:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15543,"mutability":"mutable","name":"p2","nameLocation":"35807:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35799:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15542,"name":"uint256","nodeType":"ElementaryTypeName","src":"35799:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15545,"mutability":"mutable","name":"p3","nameLocation":"35819:2:28","nodeType":"VariableDeclaration","scope":15560,"src":"35811:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15544,"name":"address","nodeType":"ElementaryTypeName","src":"35811:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35762:60:28"},"returnParameters":{"id":15547,"nodeType":"ParameterList","parameters":[],"src":"35837:0:28"},"scope":19517,"src":"35750:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15582,"nodeType":"Block","src":"36047:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":15574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36097:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":15575,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15562,"src":"36134:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15564,"src":"36138:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15577,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"36142:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15578,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"36146:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36073:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36077:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36073:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36073:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36057:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36057:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15581,"nodeType":"ExpressionStatement","src":"36057:93:28"}]},"id":15583,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35963:3:28","nodeType":"FunctionDefinition","parameters":{"id":15569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15562,"mutability":"mutable","name":"p0","nameLocation":"35981:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"35967:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15561,"name":"string","nodeType":"ElementaryTypeName","src":"35967:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15564,"mutability":"mutable","name":"p1","nameLocation":"35999:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"35985:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15563,"name":"string","nodeType":"ElementaryTypeName","src":"35985:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15566,"mutability":"mutable","name":"p2","nameLocation":"36017:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"36003:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15565,"name":"string","nodeType":"ElementaryTypeName","src":"36003:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15568,"mutability":"mutable","name":"p3","nameLocation":"36029:2:28","nodeType":"VariableDeclaration","scope":15583,"src":"36021:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15567,"name":"uint256","nodeType":"ElementaryTypeName","src":"36021:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35966:66:28"},"returnParameters":{"id":15570,"nodeType":"ParameterList","parameters":[],"src":"36047:0:28"},"scope":19517,"src":"35954:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15605,"nodeType":"Block","src":"36262:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":15597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36312:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":15598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15585,"src":"36348:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15599,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15587,"src":"36352:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"36356:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15601,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15591,"src":"36360:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36288:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36292:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36288:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36288:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36272:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36272:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15604,"nodeType":"ExpressionStatement","src":"36272:92:28"}]},"id":15606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36172:3:28","nodeType":"FunctionDefinition","parameters":{"id":15592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15585,"mutability":"mutable","name":"p0","nameLocation":"36190:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36176:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15584,"name":"string","nodeType":"ElementaryTypeName","src":"36176:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15587,"mutability":"mutable","name":"p1","nameLocation":"36208:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36194:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15586,"name":"string","nodeType":"ElementaryTypeName","src":"36194:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15589,"mutability":"mutable","name":"p2","nameLocation":"36226:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36212:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15588,"name":"string","nodeType":"ElementaryTypeName","src":"36212:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15591,"mutability":"mutable","name":"p3","nameLocation":"36244:2:28","nodeType":"VariableDeclaration","scope":15606,"src":"36230:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15590,"name":"string","nodeType":"ElementaryTypeName","src":"36230:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36175:72:28"},"returnParameters":{"id":15593,"nodeType":"ParameterList","parameters":[],"src":"36262:0:28"},"scope":19517,"src":"36163:208:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15628,"nodeType":"Block","src":"36467:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":15620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36517:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":15621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15608,"src":"36551:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15610,"src":"36555:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15612,"src":"36559:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15624,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15614,"src":"36563:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36493:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36497:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36493:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36493:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36477:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36477:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15627,"nodeType":"ExpressionStatement","src":"36477:90:28"}]},"id":15629,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36386:3:28","nodeType":"FunctionDefinition","parameters":{"id":15615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15608,"mutability":"mutable","name":"p0","nameLocation":"36404:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36390:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15607,"name":"string","nodeType":"ElementaryTypeName","src":"36390:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15610,"mutability":"mutable","name":"p1","nameLocation":"36422:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36408:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15609,"name":"string","nodeType":"ElementaryTypeName","src":"36408:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15612,"mutability":"mutable","name":"p2","nameLocation":"36440:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36426:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15611,"name":"string","nodeType":"ElementaryTypeName","src":"36426:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15614,"mutability":"mutable","name":"p3","nameLocation":"36449:2:28","nodeType":"VariableDeclaration","scope":15629,"src":"36444:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15613,"name":"bool","nodeType":"ElementaryTypeName","src":"36444:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36389:63:28"},"returnParameters":{"id":15616,"nodeType":"ParameterList","parameters":[],"src":"36467:0:28"},"scope":19517,"src":"36377:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15651,"nodeType":"Block","src":"36673:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":15643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36723:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":15644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15631,"src":"36760:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15633,"src":"36764:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15635,"src":"36768:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15647,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15637,"src":"36772:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36699:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36703:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36699:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36699:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36683:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36683:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15650,"nodeType":"ExpressionStatement","src":"36683:93:28"}]},"id":15652,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36589:3:28","nodeType":"FunctionDefinition","parameters":{"id":15638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15631,"mutability":"mutable","name":"p0","nameLocation":"36607:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36593:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15630,"name":"string","nodeType":"ElementaryTypeName","src":"36593:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15633,"mutability":"mutable","name":"p1","nameLocation":"36625:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36611:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15632,"name":"string","nodeType":"ElementaryTypeName","src":"36611:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15635,"mutability":"mutable","name":"p2","nameLocation":"36643:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36629:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15634,"name":"string","nodeType":"ElementaryTypeName","src":"36629:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15637,"mutability":"mutable","name":"p3","nameLocation":"36655:2:28","nodeType":"VariableDeclaration","scope":15652,"src":"36647:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15636,"name":"address","nodeType":"ElementaryTypeName","src":"36647:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36592:66:28"},"returnParameters":{"id":15639,"nodeType":"ParameterList","parameters":[],"src":"36673:0:28"},"scope":19517,"src":"36580:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15674,"nodeType":"Block","src":"36873:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":15666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36923:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":15667,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15654,"src":"36958:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15668,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15656,"src":"36962:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15669,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"36966:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15670,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15660,"src":"36970:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36899:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36903:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36899:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36899:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15663,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"36883:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36883:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15673,"nodeType":"ExpressionStatement","src":"36883:91:28"}]},"id":15675,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36798:3:28","nodeType":"FunctionDefinition","parameters":{"id":15661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15654,"mutability":"mutable","name":"p0","nameLocation":"36816:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36802:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15653,"name":"string","nodeType":"ElementaryTypeName","src":"36802:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15656,"mutability":"mutable","name":"p1","nameLocation":"36834:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36820:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15655,"name":"string","nodeType":"ElementaryTypeName","src":"36820:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15658,"mutability":"mutable","name":"p2","nameLocation":"36843:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36838:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15657,"name":"bool","nodeType":"ElementaryTypeName","src":"36838:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15660,"mutability":"mutable","name":"p3","nameLocation":"36855:2:28","nodeType":"VariableDeclaration","scope":15675,"src":"36847:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15659,"name":"uint256","nodeType":"ElementaryTypeName","src":"36847:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36801:57:28"},"returnParameters":{"id":15662,"nodeType":"ParameterList","parameters":[],"src":"36873:0:28"},"scope":19517,"src":"36789:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15697,"nodeType":"Block","src":"37077:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":15689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37127:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":15690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15677,"src":"37161:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15691,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15679,"src":"37165:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15692,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"37169:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15693,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15683,"src":"37173:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37103:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37107:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37103:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37103:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37087:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37087:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15696,"nodeType":"ExpressionStatement","src":"37087:90:28"}]},"id":15698,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36996:3:28","nodeType":"FunctionDefinition","parameters":{"id":15684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15677,"mutability":"mutable","name":"p0","nameLocation":"37014:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37000:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15676,"name":"string","nodeType":"ElementaryTypeName","src":"37000:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15679,"mutability":"mutable","name":"p1","nameLocation":"37032:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37018:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15678,"name":"string","nodeType":"ElementaryTypeName","src":"37018:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15681,"mutability":"mutable","name":"p2","nameLocation":"37041:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37036:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15680,"name":"bool","nodeType":"ElementaryTypeName","src":"37036:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15683,"mutability":"mutable","name":"p3","nameLocation":"37059:2:28","nodeType":"VariableDeclaration","scope":15698,"src":"37045:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15682,"name":"string","nodeType":"ElementaryTypeName","src":"37045:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36999:63:28"},"returnParameters":{"id":15685,"nodeType":"ParameterList","parameters":[],"src":"37077:0:28"},"scope":19517,"src":"36987:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15720,"nodeType":"Block","src":"37271:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":15712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37321:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":15713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15700,"src":"37353:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15714,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"37357:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15715,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15704,"src":"37361:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15716,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"37365:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37297:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37301:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37297:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37297:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37281:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37281:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15719,"nodeType":"ExpressionStatement","src":"37281:88:28"}]},"id":15721,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37199:3:28","nodeType":"FunctionDefinition","parameters":{"id":15707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15700,"mutability":"mutable","name":"p0","nameLocation":"37217:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37203:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15699,"name":"string","nodeType":"ElementaryTypeName","src":"37203:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15702,"mutability":"mutable","name":"p1","nameLocation":"37235:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37221:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15701,"name":"string","nodeType":"ElementaryTypeName","src":"37221:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15704,"mutability":"mutable","name":"p2","nameLocation":"37244:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37239:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15703,"name":"bool","nodeType":"ElementaryTypeName","src":"37239:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15706,"mutability":"mutable","name":"p3","nameLocation":"37253:2:28","nodeType":"VariableDeclaration","scope":15721,"src":"37248:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15705,"name":"bool","nodeType":"ElementaryTypeName","src":"37248:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37202:54:28"},"returnParameters":{"id":15708,"nodeType":"ParameterList","parameters":[],"src":"37271:0:28"},"scope":19517,"src":"37190:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15743,"nodeType":"Block","src":"37466:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":15735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37516:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":15736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15723,"src":"37551:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"37555:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"37559:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15739,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15729,"src":"37563:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37492:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37496:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37492:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37492:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37476:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37476:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15742,"nodeType":"ExpressionStatement","src":"37476:91:28"}]},"id":15744,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37391:3:28","nodeType":"FunctionDefinition","parameters":{"id":15730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15723,"mutability":"mutable","name":"p0","nameLocation":"37409:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37395:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15722,"name":"string","nodeType":"ElementaryTypeName","src":"37395:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15725,"mutability":"mutable","name":"p1","nameLocation":"37427:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37413:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15724,"name":"string","nodeType":"ElementaryTypeName","src":"37413:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15727,"mutability":"mutable","name":"p2","nameLocation":"37436:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37431:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15726,"name":"bool","nodeType":"ElementaryTypeName","src":"37431:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15729,"mutability":"mutable","name":"p3","nameLocation":"37448:2:28","nodeType":"VariableDeclaration","scope":15744,"src":"37440:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15728,"name":"address","nodeType":"ElementaryTypeName","src":"37440:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37394:57:28"},"returnParameters":{"id":15731,"nodeType":"ParameterList","parameters":[],"src":"37466:0:28"},"scope":19517,"src":"37382:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15766,"nodeType":"Block","src":"37667:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":15758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37717:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":15759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"37755:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15748,"src":"37759:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15750,"src":"37763:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15762,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"37767:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37693:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37697:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37693:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37693:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37677:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37677:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15765,"nodeType":"ExpressionStatement","src":"37677:94:28"}]},"id":15767,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37589:3:28","nodeType":"FunctionDefinition","parameters":{"id":15753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15746,"mutability":"mutable","name":"p0","nameLocation":"37607:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37593:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15745,"name":"string","nodeType":"ElementaryTypeName","src":"37593:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15748,"mutability":"mutable","name":"p1","nameLocation":"37625:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37611:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15747,"name":"string","nodeType":"ElementaryTypeName","src":"37611:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15750,"mutability":"mutable","name":"p2","nameLocation":"37637:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37629:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15749,"name":"address","nodeType":"ElementaryTypeName","src":"37629:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15752,"mutability":"mutable","name":"p3","nameLocation":"37649:2:28","nodeType":"VariableDeclaration","scope":15767,"src":"37641:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15751,"name":"uint256","nodeType":"ElementaryTypeName","src":"37641:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37592:60:28"},"returnParameters":{"id":15754,"nodeType":"ParameterList","parameters":[],"src":"37667:0:28"},"scope":19517,"src":"37580:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15789,"nodeType":"Block","src":"37877:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":15781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37927:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":15782,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15769,"src":"37964:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15783,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15771,"src":"37968:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15784,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15773,"src":"37972:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15785,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15775,"src":"37976:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37903:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37907:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37903:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37903:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15778,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"37887:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37887:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15788,"nodeType":"ExpressionStatement","src":"37887:93:28"}]},"id":15790,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37793:3:28","nodeType":"FunctionDefinition","parameters":{"id":15776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15769,"mutability":"mutable","name":"p0","nameLocation":"37811:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37797:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15768,"name":"string","nodeType":"ElementaryTypeName","src":"37797:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15771,"mutability":"mutable","name":"p1","nameLocation":"37829:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37815:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15770,"name":"string","nodeType":"ElementaryTypeName","src":"37815:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15773,"mutability":"mutable","name":"p2","nameLocation":"37841:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37833:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15772,"name":"address","nodeType":"ElementaryTypeName","src":"37833:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15775,"mutability":"mutable","name":"p3","nameLocation":"37859:2:28","nodeType":"VariableDeclaration","scope":15790,"src":"37845:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15774,"name":"string","nodeType":"ElementaryTypeName","src":"37845:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37796:66:28"},"returnParameters":{"id":15777,"nodeType":"ParameterList","parameters":[],"src":"37877:0:28"},"scope":19517,"src":"37784:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15812,"nodeType":"Block","src":"38077:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":15804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38127:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":15805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15792,"src":"38162:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15806,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15794,"src":"38166:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15807,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15796,"src":"38170:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15808,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15798,"src":"38174:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38103:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38107:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38103:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38103:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38087:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38087:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15811,"nodeType":"ExpressionStatement","src":"38087:91:28"}]},"id":15813,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38002:3:28","nodeType":"FunctionDefinition","parameters":{"id":15799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15792,"mutability":"mutable","name":"p0","nameLocation":"38020:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38006:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15791,"name":"string","nodeType":"ElementaryTypeName","src":"38006:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15794,"mutability":"mutable","name":"p1","nameLocation":"38038:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38024:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15793,"name":"string","nodeType":"ElementaryTypeName","src":"38024:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15796,"mutability":"mutable","name":"p2","nameLocation":"38050:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38042:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15795,"name":"address","nodeType":"ElementaryTypeName","src":"38042:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15798,"mutability":"mutable","name":"p3","nameLocation":"38059:2:28","nodeType":"VariableDeclaration","scope":15813,"src":"38054:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15797,"name":"bool","nodeType":"ElementaryTypeName","src":"38054:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38005:57:28"},"returnParameters":{"id":15800,"nodeType":"ParameterList","parameters":[],"src":"38077:0:28"},"scope":19517,"src":"37993:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15835,"nodeType":"Block","src":"38278:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":15827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38328:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":15828,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15815,"src":"38366:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15829,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15817,"src":"38370:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15830,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15819,"src":"38374:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15831,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15821,"src":"38378:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38304:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38308:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38304:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38304:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15824,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38288:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38288:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15834,"nodeType":"ExpressionStatement","src":"38288:94:28"}]},"id":15836,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38200:3:28","nodeType":"FunctionDefinition","parameters":{"id":15822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15815,"mutability":"mutable","name":"p0","nameLocation":"38218:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38204:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15814,"name":"string","nodeType":"ElementaryTypeName","src":"38204:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15817,"mutability":"mutable","name":"p1","nameLocation":"38236:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38222:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15816,"name":"string","nodeType":"ElementaryTypeName","src":"38222:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15819,"mutability":"mutable","name":"p2","nameLocation":"38248:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38240:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15818,"name":"address","nodeType":"ElementaryTypeName","src":"38240:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15821,"mutability":"mutable","name":"p3","nameLocation":"38260:2:28","nodeType":"VariableDeclaration","scope":15836,"src":"38252:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15820,"name":"address","nodeType":"ElementaryTypeName","src":"38252:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38203:60:28"},"returnParameters":{"id":15823,"nodeType":"ParameterList","parameters":[],"src":"38278:0:28"},"scope":19517,"src":"38191:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15858,"nodeType":"Block","src":"38473:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":15850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38523:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":15851,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15838,"src":"38559:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15852,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15840,"src":"38563:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15853,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15842,"src":"38567:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15854,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15844,"src":"38571:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38499:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38503:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38499:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38499:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15847,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38483:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38483:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15857,"nodeType":"ExpressionStatement","src":"38483:92:28"}]},"id":15859,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38404:3:28","nodeType":"FunctionDefinition","parameters":{"id":15845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15838,"mutability":"mutable","name":"p0","nameLocation":"38422:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38408:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15837,"name":"string","nodeType":"ElementaryTypeName","src":"38408:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15840,"mutability":"mutable","name":"p1","nameLocation":"38431:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38426:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15839,"name":"bool","nodeType":"ElementaryTypeName","src":"38426:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15842,"mutability":"mutable","name":"p2","nameLocation":"38443:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38435:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15841,"name":"uint256","nodeType":"ElementaryTypeName","src":"38435:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15844,"mutability":"mutable","name":"p3","nameLocation":"38455:2:28","nodeType":"VariableDeclaration","scope":15859,"src":"38447:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15843,"name":"uint256","nodeType":"ElementaryTypeName","src":"38447:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38407:51:28"},"returnParameters":{"id":15846,"nodeType":"ParameterList","parameters":[],"src":"38473:0:28"},"scope":19517,"src":"38395:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15881,"nodeType":"Block","src":"38672:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":15873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38722:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":15874,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15861,"src":"38757:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15875,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"38761:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15876,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15865,"src":"38765:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15877,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"38769:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38698:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38702:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38698:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38698:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15870,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38682:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38682:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15880,"nodeType":"ExpressionStatement","src":"38682:91:28"}]},"id":15882,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38597:3:28","nodeType":"FunctionDefinition","parameters":{"id":15868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15861,"mutability":"mutable","name":"p0","nameLocation":"38615:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38601:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15860,"name":"string","nodeType":"ElementaryTypeName","src":"38601:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15863,"mutability":"mutable","name":"p1","nameLocation":"38624:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38619:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15862,"name":"bool","nodeType":"ElementaryTypeName","src":"38619:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15865,"mutability":"mutable","name":"p2","nameLocation":"38636:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38628:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15864,"name":"uint256","nodeType":"ElementaryTypeName","src":"38628:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15867,"mutability":"mutable","name":"p3","nameLocation":"38654:2:28","nodeType":"VariableDeclaration","scope":15882,"src":"38640:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15866,"name":"string","nodeType":"ElementaryTypeName","src":"38640:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38600:57:28"},"returnParameters":{"id":15869,"nodeType":"ParameterList","parameters":[],"src":"38672:0:28"},"scope":19517,"src":"38588:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15904,"nodeType":"Block","src":"38861:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":15896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38911:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":15897,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15884,"src":"38944:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15898,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15886,"src":"38948:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15899,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15888,"src":"38952:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15900,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15890,"src":"38956:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15894,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38887:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38891:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38887:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38887:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15893,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"38871:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38871:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15903,"nodeType":"ExpressionStatement","src":"38871:89:28"}]},"id":15905,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38795:3:28","nodeType":"FunctionDefinition","parameters":{"id":15891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15884,"mutability":"mutable","name":"p0","nameLocation":"38813:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38799:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15883,"name":"string","nodeType":"ElementaryTypeName","src":"38799:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15886,"mutability":"mutable","name":"p1","nameLocation":"38822:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38817:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15885,"name":"bool","nodeType":"ElementaryTypeName","src":"38817:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15888,"mutability":"mutable","name":"p2","nameLocation":"38834:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38826:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15887,"name":"uint256","nodeType":"ElementaryTypeName","src":"38826:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15890,"mutability":"mutable","name":"p3","nameLocation":"38843:2:28","nodeType":"VariableDeclaration","scope":15905,"src":"38838:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15889,"name":"bool","nodeType":"ElementaryTypeName","src":"38838:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38798:48:28"},"returnParameters":{"id":15892,"nodeType":"ParameterList","parameters":[],"src":"38861:0:28"},"scope":19517,"src":"38786:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15927,"nodeType":"Block","src":"39051:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":15919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39101:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":15920,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15907,"src":"39137:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15921,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15909,"src":"39141:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15922,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15911,"src":"39145:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15923,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15913,"src":"39149:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39077:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39081:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39077:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39077:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15916,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39061:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39061:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15926,"nodeType":"ExpressionStatement","src":"39061:92:28"}]},"id":15928,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38982:3:28","nodeType":"FunctionDefinition","parameters":{"id":15914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15907,"mutability":"mutable","name":"p0","nameLocation":"39000:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"38986:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15906,"name":"string","nodeType":"ElementaryTypeName","src":"38986:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15909,"mutability":"mutable","name":"p1","nameLocation":"39009:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"39004:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15908,"name":"bool","nodeType":"ElementaryTypeName","src":"39004:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15911,"mutability":"mutable","name":"p2","nameLocation":"39021:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"39013:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15910,"name":"uint256","nodeType":"ElementaryTypeName","src":"39013:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15913,"mutability":"mutable","name":"p3","nameLocation":"39033:2:28","nodeType":"VariableDeclaration","scope":15928,"src":"39025:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15912,"name":"address","nodeType":"ElementaryTypeName","src":"39025:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38985:51:28"},"returnParameters":{"id":15915,"nodeType":"ParameterList","parameters":[],"src":"39051:0:28"},"scope":19517,"src":"38973:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15950,"nodeType":"Block","src":"39250:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":15942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39300:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":15943,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15930,"src":"39335:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15944,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15932,"src":"39339:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15945,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"39343:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15946,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"39347:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15940,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39276:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39280:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39276:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39276:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15939,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39260:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39260:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15949,"nodeType":"ExpressionStatement","src":"39260:91:28"}]},"id":15951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39175:3:28","nodeType":"FunctionDefinition","parameters":{"id":15937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15930,"mutability":"mutable","name":"p0","nameLocation":"39193:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39179:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15929,"name":"string","nodeType":"ElementaryTypeName","src":"39179:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15932,"mutability":"mutable","name":"p1","nameLocation":"39202:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39197:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15931,"name":"bool","nodeType":"ElementaryTypeName","src":"39197:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15934,"mutability":"mutable","name":"p2","nameLocation":"39220:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39206:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15933,"name":"string","nodeType":"ElementaryTypeName","src":"39206:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15936,"mutability":"mutable","name":"p3","nameLocation":"39232:2:28","nodeType":"VariableDeclaration","scope":15951,"src":"39224:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15935,"name":"uint256","nodeType":"ElementaryTypeName","src":"39224:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39178:57:28"},"returnParameters":{"id":15938,"nodeType":"ParameterList","parameters":[],"src":"39250:0:28"},"scope":19517,"src":"39166:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15973,"nodeType":"Block","src":"39454:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":15965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39504:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":15966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15953,"src":"39538:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15967,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15955,"src":"39542:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15968,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15957,"src":"39546:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15969,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"39550:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39480:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39484:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39480:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39480:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39464:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39464:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15972,"nodeType":"ExpressionStatement","src":"39464:90:28"}]},"id":15974,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39373:3:28","nodeType":"FunctionDefinition","parameters":{"id":15960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15953,"mutability":"mutable","name":"p0","nameLocation":"39391:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39377:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15952,"name":"string","nodeType":"ElementaryTypeName","src":"39377:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15955,"mutability":"mutable","name":"p1","nameLocation":"39400:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39395:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15954,"name":"bool","nodeType":"ElementaryTypeName","src":"39395:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15957,"mutability":"mutable","name":"p2","nameLocation":"39418:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39404:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15956,"name":"string","nodeType":"ElementaryTypeName","src":"39404:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15959,"mutability":"mutable","name":"p3","nameLocation":"39436:2:28","nodeType":"VariableDeclaration","scope":15974,"src":"39422:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15958,"name":"string","nodeType":"ElementaryTypeName","src":"39422:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39376:63:28"},"returnParameters":{"id":15961,"nodeType":"ParameterList","parameters":[],"src":"39454:0:28"},"scope":19517,"src":"39364:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15996,"nodeType":"Block","src":"39648:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":15988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39698:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":15989,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15976,"src":"39730:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15990,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15978,"src":"39734:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15991,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15980,"src":"39738:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15992,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15982,"src":"39742:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39674:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39678:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39674:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39674:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15985,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39658:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":15994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39658:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15995,"nodeType":"ExpressionStatement","src":"39658:88:28"}]},"id":15997,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39576:3:28","nodeType":"FunctionDefinition","parameters":{"id":15983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15976,"mutability":"mutable","name":"p0","nameLocation":"39594:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39580:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15975,"name":"string","nodeType":"ElementaryTypeName","src":"39580:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15978,"mutability":"mutable","name":"p1","nameLocation":"39603:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39598:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15977,"name":"bool","nodeType":"ElementaryTypeName","src":"39598:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15980,"mutability":"mutable","name":"p2","nameLocation":"39621:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39607:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15979,"name":"string","nodeType":"ElementaryTypeName","src":"39607:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15982,"mutability":"mutable","name":"p3","nameLocation":"39630:2:28","nodeType":"VariableDeclaration","scope":15997,"src":"39625:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15981,"name":"bool","nodeType":"ElementaryTypeName","src":"39625:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39579:54:28"},"returnParameters":{"id":15984,"nodeType":"ParameterList","parameters":[],"src":"39648:0:28"},"scope":19517,"src":"39567:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16019,"nodeType":"Block","src":"39843:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":16011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39893:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":16012,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"39928:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16013,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16001,"src":"39932:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16014,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16003,"src":"39936:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16015,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16005,"src":"39940:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39869:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39873:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39869:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39869:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16008,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"39853:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39853:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16018,"nodeType":"ExpressionStatement","src":"39853:91:28"}]},"id":16020,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39768:3:28","nodeType":"FunctionDefinition","parameters":{"id":16006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15999,"mutability":"mutable","name":"p0","nameLocation":"39786:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39772:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15998,"name":"string","nodeType":"ElementaryTypeName","src":"39772:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16001,"mutability":"mutable","name":"p1","nameLocation":"39795:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39790:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16000,"name":"bool","nodeType":"ElementaryTypeName","src":"39790:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16003,"mutability":"mutable","name":"p2","nameLocation":"39813:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39799:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16002,"name":"string","nodeType":"ElementaryTypeName","src":"39799:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16005,"mutability":"mutable","name":"p3","nameLocation":"39825:2:28","nodeType":"VariableDeclaration","scope":16020,"src":"39817:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16004,"name":"address","nodeType":"ElementaryTypeName","src":"39817:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39771:57:28"},"returnParameters":{"id":16007,"nodeType":"ParameterList","parameters":[],"src":"39843:0:28"},"scope":19517,"src":"39759:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16042,"nodeType":"Block","src":"40032:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":16034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40082:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":16035,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16022,"src":"40115:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16036,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16024,"src":"40119:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16037,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16026,"src":"40123:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16038,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16028,"src":"40127:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40058:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40062:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40058:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40058:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40042:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40042:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16041,"nodeType":"ExpressionStatement","src":"40042:89:28"}]},"id":16043,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39966:3:28","nodeType":"FunctionDefinition","parameters":{"id":16029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16022,"mutability":"mutable","name":"p0","nameLocation":"39984:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"39970:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16021,"name":"string","nodeType":"ElementaryTypeName","src":"39970:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16024,"mutability":"mutable","name":"p1","nameLocation":"39993:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"39988:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16023,"name":"bool","nodeType":"ElementaryTypeName","src":"39988:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16026,"mutability":"mutable","name":"p2","nameLocation":"40002:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"39997:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16025,"name":"bool","nodeType":"ElementaryTypeName","src":"39997:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16028,"mutability":"mutable","name":"p3","nameLocation":"40014:2:28","nodeType":"VariableDeclaration","scope":16043,"src":"40006:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16027,"name":"uint256","nodeType":"ElementaryTypeName","src":"40006:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39969:48:28"},"returnParameters":{"id":16030,"nodeType":"ParameterList","parameters":[],"src":"40032:0:28"},"scope":19517,"src":"39957:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16065,"nodeType":"Block","src":"40225:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":16057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40275:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":16058,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16045,"src":"40307:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16059,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"40311:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16060,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16049,"src":"40315:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16061,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"40319:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40251:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40255:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40251:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40251:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16054,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40235:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40235:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16064,"nodeType":"ExpressionStatement","src":"40235:88:28"}]},"id":16066,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40153:3:28","nodeType":"FunctionDefinition","parameters":{"id":16052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16045,"mutability":"mutable","name":"p0","nameLocation":"40171:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40157:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16044,"name":"string","nodeType":"ElementaryTypeName","src":"40157:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16047,"mutability":"mutable","name":"p1","nameLocation":"40180:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40175:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16046,"name":"bool","nodeType":"ElementaryTypeName","src":"40175:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16049,"mutability":"mutable","name":"p2","nameLocation":"40189:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40184:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16048,"name":"bool","nodeType":"ElementaryTypeName","src":"40184:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16051,"mutability":"mutable","name":"p3","nameLocation":"40207:2:28","nodeType":"VariableDeclaration","scope":16066,"src":"40193:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16050,"name":"string","nodeType":"ElementaryTypeName","src":"40193:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40156:54:28"},"returnParameters":{"id":16053,"nodeType":"ParameterList","parameters":[],"src":"40225:0:28"},"scope":19517,"src":"40144:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16088,"nodeType":"Block","src":"40408:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":16080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40458:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":16081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16068,"src":"40488:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16070,"src":"40492:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16072,"src":"40496:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16084,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"40500:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40434:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40438:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40434:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40434:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40418:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40418:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16087,"nodeType":"ExpressionStatement","src":"40418:86:28"}]},"id":16089,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40345:3:28","nodeType":"FunctionDefinition","parameters":{"id":16075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16068,"mutability":"mutable","name":"p0","nameLocation":"40363:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40349:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16067,"name":"string","nodeType":"ElementaryTypeName","src":"40349:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16070,"mutability":"mutable","name":"p1","nameLocation":"40372:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40367:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16069,"name":"bool","nodeType":"ElementaryTypeName","src":"40367:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16072,"mutability":"mutable","name":"p2","nameLocation":"40381:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40376:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16071,"name":"bool","nodeType":"ElementaryTypeName","src":"40376:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16074,"mutability":"mutable","name":"p3","nameLocation":"40390:2:28","nodeType":"VariableDeclaration","scope":16089,"src":"40385:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16073,"name":"bool","nodeType":"ElementaryTypeName","src":"40385:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40348:45:28"},"returnParameters":{"id":16076,"nodeType":"ParameterList","parameters":[],"src":"40408:0:28"},"scope":19517,"src":"40336:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16111,"nodeType":"Block","src":"40592:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":16103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40642:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":16104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16091,"src":"40675:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16093,"src":"40679:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16106,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16095,"src":"40683:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16107,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16097,"src":"40687:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40618:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40622:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40618:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40618:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40602:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40602:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16110,"nodeType":"ExpressionStatement","src":"40602:89:28"}]},"id":16112,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40526:3:28","nodeType":"FunctionDefinition","parameters":{"id":16098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16091,"mutability":"mutable","name":"p0","nameLocation":"40544:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40530:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16090,"name":"string","nodeType":"ElementaryTypeName","src":"40530:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16093,"mutability":"mutable","name":"p1","nameLocation":"40553:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40548:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16092,"name":"bool","nodeType":"ElementaryTypeName","src":"40548:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16095,"mutability":"mutable","name":"p2","nameLocation":"40562:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40557:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16094,"name":"bool","nodeType":"ElementaryTypeName","src":"40557:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16097,"mutability":"mutable","name":"p3","nameLocation":"40574:2:28","nodeType":"VariableDeclaration","scope":16112,"src":"40566:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16096,"name":"address","nodeType":"ElementaryTypeName","src":"40566:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40529:48:28"},"returnParameters":{"id":16099,"nodeType":"ParameterList","parameters":[],"src":"40592:0:28"},"scope":19517,"src":"40517:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16134,"nodeType":"Block","src":"40782:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":16126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40832:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":16127,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16114,"src":"40868:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16128,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"40872:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16129,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16118,"src":"40876:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16130,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16120,"src":"40880:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40808:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40812:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40808:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40808:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40792:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40792:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16133,"nodeType":"ExpressionStatement","src":"40792:92:28"}]},"id":16135,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40713:3:28","nodeType":"FunctionDefinition","parameters":{"id":16121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16114,"mutability":"mutable","name":"p0","nameLocation":"40731:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40717:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16113,"name":"string","nodeType":"ElementaryTypeName","src":"40717:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16116,"mutability":"mutable","name":"p1","nameLocation":"40740:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40735:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16115,"name":"bool","nodeType":"ElementaryTypeName","src":"40735:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16118,"mutability":"mutable","name":"p2","nameLocation":"40752:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40744:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16117,"name":"address","nodeType":"ElementaryTypeName","src":"40744:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16120,"mutability":"mutable","name":"p3","nameLocation":"40764:2:28","nodeType":"VariableDeclaration","scope":16135,"src":"40756:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16119,"name":"uint256","nodeType":"ElementaryTypeName","src":"40756:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40716:51:28"},"returnParameters":{"id":16122,"nodeType":"ParameterList","parameters":[],"src":"40782:0:28"},"scope":19517,"src":"40704:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16157,"nodeType":"Block","src":"40981:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":16149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41031:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":16150,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16137,"src":"41066:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16151,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16139,"src":"41070:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16152,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16141,"src":"41074:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16153,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16143,"src":"41078:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41007:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41011:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41007:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41007:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16146,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"40991:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40991:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16156,"nodeType":"ExpressionStatement","src":"40991:91:28"}]},"id":16158,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40906:3:28","nodeType":"FunctionDefinition","parameters":{"id":16144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16137,"mutability":"mutable","name":"p0","nameLocation":"40924:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40910:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16136,"name":"string","nodeType":"ElementaryTypeName","src":"40910:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16139,"mutability":"mutable","name":"p1","nameLocation":"40933:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40928:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16138,"name":"bool","nodeType":"ElementaryTypeName","src":"40928:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16141,"mutability":"mutable","name":"p2","nameLocation":"40945:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40937:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16140,"name":"address","nodeType":"ElementaryTypeName","src":"40937:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16143,"mutability":"mutable","name":"p3","nameLocation":"40963:2:28","nodeType":"VariableDeclaration","scope":16158,"src":"40949:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16142,"name":"string","nodeType":"ElementaryTypeName","src":"40949:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40909:57:28"},"returnParameters":{"id":16145,"nodeType":"ParameterList","parameters":[],"src":"40981:0:28"},"scope":19517,"src":"40897:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16180,"nodeType":"Block","src":"41170:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":16172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41220:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":16173,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16160,"src":"41253:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16174,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16162,"src":"41257:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16175,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16164,"src":"41261:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16176,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16166,"src":"41265:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16170,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41196:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41200:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41196:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41196:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16169,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41180:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41180:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16179,"nodeType":"ExpressionStatement","src":"41180:89:28"}]},"id":16181,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41104:3:28","nodeType":"FunctionDefinition","parameters":{"id":16167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16160,"mutability":"mutable","name":"p0","nameLocation":"41122:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41108:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16159,"name":"string","nodeType":"ElementaryTypeName","src":"41108:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16162,"mutability":"mutable","name":"p1","nameLocation":"41131:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41126:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16161,"name":"bool","nodeType":"ElementaryTypeName","src":"41126:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16164,"mutability":"mutable","name":"p2","nameLocation":"41143:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41135:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16163,"name":"address","nodeType":"ElementaryTypeName","src":"41135:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16166,"mutability":"mutable","name":"p3","nameLocation":"41152:2:28","nodeType":"VariableDeclaration","scope":16181,"src":"41147:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16165,"name":"bool","nodeType":"ElementaryTypeName","src":"41147:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41107:48:28"},"returnParameters":{"id":16168,"nodeType":"ParameterList","parameters":[],"src":"41170:0:28"},"scope":19517,"src":"41095:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16203,"nodeType":"Block","src":"41360:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":16195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41410:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":16196,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16183,"src":"41446:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16197,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16185,"src":"41450:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16198,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16187,"src":"41454:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16199,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16189,"src":"41458:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16193,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41386:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41390:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41386:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41386:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16192,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41370:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41370:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16202,"nodeType":"ExpressionStatement","src":"41370:92:28"}]},"id":16204,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41291:3:28","nodeType":"FunctionDefinition","parameters":{"id":16190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16183,"mutability":"mutable","name":"p0","nameLocation":"41309:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41295:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16182,"name":"string","nodeType":"ElementaryTypeName","src":"41295:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16185,"mutability":"mutable","name":"p1","nameLocation":"41318:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41313:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16184,"name":"bool","nodeType":"ElementaryTypeName","src":"41313:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16187,"mutability":"mutable","name":"p2","nameLocation":"41330:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41322:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16186,"name":"address","nodeType":"ElementaryTypeName","src":"41322:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16189,"mutability":"mutable","name":"p3","nameLocation":"41342:2:28","nodeType":"VariableDeclaration","scope":16204,"src":"41334:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16188,"name":"address","nodeType":"ElementaryTypeName","src":"41334:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41294:51:28"},"returnParameters":{"id":16191,"nodeType":"ParameterList","parameters":[],"src":"41360:0:28"},"scope":19517,"src":"41282:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16226,"nodeType":"Block","src":"41556:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":16218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41606:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":16219,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16206,"src":"41645:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16220,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16208,"src":"41649:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16221,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16210,"src":"41653:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16222,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16212,"src":"41657:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16216,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41582:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41586:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41582:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41582:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16215,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41566:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41566:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16225,"nodeType":"ExpressionStatement","src":"41566:95:28"}]},"id":16227,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41484:3:28","nodeType":"FunctionDefinition","parameters":{"id":16213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16206,"mutability":"mutable","name":"p0","nameLocation":"41502:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41488:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16205,"name":"string","nodeType":"ElementaryTypeName","src":"41488:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16208,"mutability":"mutable","name":"p1","nameLocation":"41514:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41506:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16207,"name":"address","nodeType":"ElementaryTypeName","src":"41506:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16210,"mutability":"mutable","name":"p2","nameLocation":"41526:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41518:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16209,"name":"uint256","nodeType":"ElementaryTypeName","src":"41518:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16212,"mutability":"mutable","name":"p3","nameLocation":"41538:2:28","nodeType":"VariableDeclaration","scope":16227,"src":"41530:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16211,"name":"uint256","nodeType":"ElementaryTypeName","src":"41530:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41487:54:28"},"returnParameters":{"id":16214,"nodeType":"ParameterList","parameters":[],"src":"41556:0:28"},"scope":19517,"src":"41475:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16249,"nodeType":"Block","src":"41761:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":16241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41811:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":16242,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16229,"src":"41849:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16243,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16231,"src":"41853:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16244,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16233,"src":"41857:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16245,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16235,"src":"41861:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16239,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41787:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41791:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41787:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41787:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16238,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41771:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41771:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16248,"nodeType":"ExpressionStatement","src":"41771:94:28"}]},"id":16250,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41683:3:28","nodeType":"FunctionDefinition","parameters":{"id":16236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16229,"mutability":"mutable","name":"p0","nameLocation":"41701:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41687:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16228,"name":"string","nodeType":"ElementaryTypeName","src":"41687:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16231,"mutability":"mutable","name":"p1","nameLocation":"41713:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41705:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16230,"name":"address","nodeType":"ElementaryTypeName","src":"41705:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16233,"mutability":"mutable","name":"p2","nameLocation":"41725:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41717:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16232,"name":"uint256","nodeType":"ElementaryTypeName","src":"41717:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16235,"mutability":"mutable","name":"p3","nameLocation":"41743:2:28","nodeType":"VariableDeclaration","scope":16250,"src":"41729:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16234,"name":"string","nodeType":"ElementaryTypeName","src":"41729:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41686:60:28"},"returnParameters":{"id":16237,"nodeType":"ParameterList","parameters":[],"src":"41761:0:28"},"scope":19517,"src":"41674:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16272,"nodeType":"Block","src":"41956:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":16264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42006:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":16265,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16252,"src":"42042:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16266,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16254,"src":"42046:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16267,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16256,"src":"42050:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16268,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16258,"src":"42054:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16262,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41982:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41986:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41982:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41982:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16261,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"41966:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41966:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16271,"nodeType":"ExpressionStatement","src":"41966:92:28"}]},"id":16273,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41887:3:28","nodeType":"FunctionDefinition","parameters":{"id":16259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16252,"mutability":"mutable","name":"p0","nameLocation":"41905:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41891:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16251,"name":"string","nodeType":"ElementaryTypeName","src":"41891:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16254,"mutability":"mutable","name":"p1","nameLocation":"41917:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41909:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16253,"name":"address","nodeType":"ElementaryTypeName","src":"41909:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16256,"mutability":"mutable","name":"p2","nameLocation":"41929:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41921:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16255,"name":"uint256","nodeType":"ElementaryTypeName","src":"41921:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16258,"mutability":"mutable","name":"p3","nameLocation":"41938:2:28","nodeType":"VariableDeclaration","scope":16273,"src":"41933:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16257,"name":"bool","nodeType":"ElementaryTypeName","src":"41933:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41890:51:28"},"returnParameters":{"id":16260,"nodeType":"ParameterList","parameters":[],"src":"41956:0:28"},"scope":19517,"src":"41878:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16295,"nodeType":"Block","src":"42152:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":16287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42202:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":16288,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16275,"src":"42241:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16289,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16277,"src":"42245:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16290,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"42249:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16291,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16281,"src":"42253:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42178:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42182:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42178:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42178:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16284,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42162:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42162:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16294,"nodeType":"ExpressionStatement","src":"42162:95:28"}]},"id":16296,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42080:3:28","nodeType":"FunctionDefinition","parameters":{"id":16282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16275,"mutability":"mutable","name":"p0","nameLocation":"42098:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42084:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16274,"name":"string","nodeType":"ElementaryTypeName","src":"42084:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16277,"mutability":"mutable","name":"p1","nameLocation":"42110:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42102:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16276,"name":"address","nodeType":"ElementaryTypeName","src":"42102:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16279,"mutability":"mutable","name":"p2","nameLocation":"42122:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42114:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16278,"name":"uint256","nodeType":"ElementaryTypeName","src":"42114:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16281,"mutability":"mutable","name":"p3","nameLocation":"42134:2:28","nodeType":"VariableDeclaration","scope":16296,"src":"42126:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16280,"name":"address","nodeType":"ElementaryTypeName","src":"42126:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42083:54:28"},"returnParameters":{"id":16283,"nodeType":"ParameterList","parameters":[],"src":"42152:0:28"},"scope":19517,"src":"42071:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16318,"nodeType":"Block","src":"42357:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":16310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42407:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":16311,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16298,"src":"42445:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16312,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"42449:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16313,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16302,"src":"42453:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16314,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16304,"src":"42457:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16308,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42383:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42387:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42383:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42383:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16307,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42367:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42367:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16317,"nodeType":"ExpressionStatement","src":"42367:94:28"}]},"id":16319,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42279:3:28","nodeType":"FunctionDefinition","parameters":{"id":16305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16298,"mutability":"mutable","name":"p0","nameLocation":"42297:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42283:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16297,"name":"string","nodeType":"ElementaryTypeName","src":"42283:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16300,"mutability":"mutable","name":"p1","nameLocation":"42309:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42301:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16299,"name":"address","nodeType":"ElementaryTypeName","src":"42301:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16302,"mutability":"mutable","name":"p2","nameLocation":"42327:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42313:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16301,"name":"string","nodeType":"ElementaryTypeName","src":"42313:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16304,"mutability":"mutable","name":"p3","nameLocation":"42339:2:28","nodeType":"VariableDeclaration","scope":16319,"src":"42331:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16303,"name":"uint256","nodeType":"ElementaryTypeName","src":"42331:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42282:60:28"},"returnParameters":{"id":16306,"nodeType":"ParameterList","parameters":[],"src":"42357:0:28"},"scope":19517,"src":"42270:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16341,"nodeType":"Block","src":"42567:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":16333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42617:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":16334,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16321,"src":"42654:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16335,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16323,"src":"42658:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16336,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16325,"src":"42662:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16337,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"42666:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16331,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42593:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42597:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42593:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42593:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16330,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42577:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42577:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16340,"nodeType":"ExpressionStatement","src":"42577:93:28"}]},"id":16342,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42483:3:28","nodeType":"FunctionDefinition","parameters":{"id":16328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16321,"mutability":"mutable","name":"p0","nameLocation":"42501:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42487:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16320,"name":"string","nodeType":"ElementaryTypeName","src":"42487:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16323,"mutability":"mutable","name":"p1","nameLocation":"42513:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42505:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16322,"name":"address","nodeType":"ElementaryTypeName","src":"42505:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16325,"mutability":"mutable","name":"p2","nameLocation":"42531:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42517:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16324,"name":"string","nodeType":"ElementaryTypeName","src":"42517:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16327,"mutability":"mutable","name":"p3","nameLocation":"42549:2:28","nodeType":"VariableDeclaration","scope":16342,"src":"42535:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16326,"name":"string","nodeType":"ElementaryTypeName","src":"42535:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42486:66:28"},"returnParameters":{"id":16329,"nodeType":"ParameterList","parameters":[],"src":"42567:0:28"},"scope":19517,"src":"42474:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16364,"nodeType":"Block","src":"42767:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":16356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42817:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":16357,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16344,"src":"42852:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16358,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16346,"src":"42856:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16359,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16348,"src":"42860:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16360,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16350,"src":"42864:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42793:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42797:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42793:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42793:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16353,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42777:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42777:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16363,"nodeType":"ExpressionStatement","src":"42777:91:28"}]},"id":16365,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42692:3:28","nodeType":"FunctionDefinition","parameters":{"id":16351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16344,"mutability":"mutable","name":"p0","nameLocation":"42710:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42696:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16343,"name":"string","nodeType":"ElementaryTypeName","src":"42696:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16346,"mutability":"mutable","name":"p1","nameLocation":"42722:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42714:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16345,"name":"address","nodeType":"ElementaryTypeName","src":"42714:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16348,"mutability":"mutable","name":"p2","nameLocation":"42740:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42726:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16347,"name":"string","nodeType":"ElementaryTypeName","src":"42726:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16350,"mutability":"mutable","name":"p3","nameLocation":"42749:2:28","nodeType":"VariableDeclaration","scope":16365,"src":"42744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16349,"name":"bool","nodeType":"ElementaryTypeName","src":"42744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42695:57:28"},"returnParameters":{"id":16352,"nodeType":"ParameterList","parameters":[],"src":"42767:0:28"},"scope":19517,"src":"42683:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16387,"nodeType":"Block","src":"42968:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":16379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43018:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":16380,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16367,"src":"43056:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16381,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16369,"src":"43060:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16382,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16371,"src":"43064:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16383,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16373,"src":"43068:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42994:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42998:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42994:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42994:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16376,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"42978:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42978:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16386,"nodeType":"ExpressionStatement","src":"42978:94:28"}]},"id":16388,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42890:3:28","nodeType":"FunctionDefinition","parameters":{"id":16374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16367,"mutability":"mutable","name":"p0","nameLocation":"42908:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42894:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16366,"name":"string","nodeType":"ElementaryTypeName","src":"42894:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16369,"mutability":"mutable","name":"p1","nameLocation":"42920:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42912:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16368,"name":"address","nodeType":"ElementaryTypeName","src":"42912:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16371,"mutability":"mutable","name":"p2","nameLocation":"42938:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42924:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16370,"name":"string","nodeType":"ElementaryTypeName","src":"42924:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16373,"mutability":"mutable","name":"p3","nameLocation":"42950:2:28","nodeType":"VariableDeclaration","scope":16388,"src":"42942:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16372,"name":"address","nodeType":"ElementaryTypeName","src":"42942:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42893:60:28"},"returnParameters":{"id":16375,"nodeType":"ParameterList","parameters":[],"src":"42968:0:28"},"scope":19517,"src":"42881:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16410,"nodeType":"Block","src":"43163:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":16402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43213:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":16403,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"43249:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16404,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"43253:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16405,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16394,"src":"43257:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16406,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16396,"src":"43261:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43189:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43193:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43189:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43189:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16399,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43173:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43173:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16409,"nodeType":"ExpressionStatement","src":"43173:92:28"}]},"id":16411,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43094:3:28","nodeType":"FunctionDefinition","parameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16390,"mutability":"mutable","name":"p0","nameLocation":"43112:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43098:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16389,"name":"string","nodeType":"ElementaryTypeName","src":"43098:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16392,"mutability":"mutable","name":"p1","nameLocation":"43124:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43116:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16391,"name":"address","nodeType":"ElementaryTypeName","src":"43116:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16394,"mutability":"mutable","name":"p2","nameLocation":"43133:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43128:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16393,"name":"bool","nodeType":"ElementaryTypeName","src":"43128:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16396,"mutability":"mutable","name":"p3","nameLocation":"43145:2:28","nodeType":"VariableDeclaration","scope":16411,"src":"43137:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16395,"name":"uint256","nodeType":"ElementaryTypeName","src":"43137:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43097:51:28"},"returnParameters":{"id":16398,"nodeType":"ParameterList","parameters":[],"src":"43163:0:28"},"scope":19517,"src":"43085:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16433,"nodeType":"Block","src":"43362:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":16425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43412:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":16426,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16413,"src":"43447:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16427,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16415,"src":"43451:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16428,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"43455:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16429,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16419,"src":"43459:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43388:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43392:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43388:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43388:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16422,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43372:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43372:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16432,"nodeType":"ExpressionStatement","src":"43372:91:28"}]},"id":16434,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43287:3:28","nodeType":"FunctionDefinition","parameters":{"id":16420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16413,"mutability":"mutable","name":"p0","nameLocation":"43305:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43291:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16412,"name":"string","nodeType":"ElementaryTypeName","src":"43291:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16415,"mutability":"mutable","name":"p1","nameLocation":"43317:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43309:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16414,"name":"address","nodeType":"ElementaryTypeName","src":"43309:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16417,"mutability":"mutable","name":"p2","nameLocation":"43326:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43321:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16416,"name":"bool","nodeType":"ElementaryTypeName","src":"43321:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16419,"mutability":"mutable","name":"p3","nameLocation":"43344:2:28","nodeType":"VariableDeclaration","scope":16434,"src":"43330:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16418,"name":"string","nodeType":"ElementaryTypeName","src":"43330:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43290:57:28"},"returnParameters":{"id":16421,"nodeType":"ParameterList","parameters":[],"src":"43362:0:28"},"scope":19517,"src":"43278:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16456,"nodeType":"Block","src":"43551:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":16448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43601:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":16449,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16436,"src":"43634:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16450,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16438,"src":"43638:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16451,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"43642:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16452,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"43646:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16446,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43577:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43581:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43577:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43577:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16445,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43561:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43561:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16455,"nodeType":"ExpressionStatement","src":"43561:89:28"}]},"id":16457,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43485:3:28","nodeType":"FunctionDefinition","parameters":{"id":16443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16436,"mutability":"mutable","name":"p0","nameLocation":"43503:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43489:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16435,"name":"string","nodeType":"ElementaryTypeName","src":"43489:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16438,"mutability":"mutable","name":"p1","nameLocation":"43515:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16437,"name":"address","nodeType":"ElementaryTypeName","src":"43507:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16440,"mutability":"mutable","name":"p2","nameLocation":"43524:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43519:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16439,"name":"bool","nodeType":"ElementaryTypeName","src":"43519:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16442,"mutability":"mutable","name":"p3","nameLocation":"43533:2:28","nodeType":"VariableDeclaration","scope":16457,"src":"43528:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16441,"name":"bool","nodeType":"ElementaryTypeName","src":"43528:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43488:48:28"},"returnParameters":{"id":16444,"nodeType":"ParameterList","parameters":[],"src":"43551:0:28"},"scope":19517,"src":"43476:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16479,"nodeType":"Block","src":"43741:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":16471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43791:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":16472,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16459,"src":"43827:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16473,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16461,"src":"43831:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16474,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16463,"src":"43835:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16475,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16465,"src":"43839:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43767:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43771:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43767:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43767:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16468,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43751:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43751:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16478,"nodeType":"ExpressionStatement","src":"43751:92:28"}]},"id":16480,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43672:3:28","nodeType":"FunctionDefinition","parameters":{"id":16466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16459,"mutability":"mutable","name":"p0","nameLocation":"43690:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43676:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16458,"name":"string","nodeType":"ElementaryTypeName","src":"43676:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16461,"mutability":"mutable","name":"p1","nameLocation":"43702:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43694:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16460,"name":"address","nodeType":"ElementaryTypeName","src":"43694:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16463,"mutability":"mutable","name":"p2","nameLocation":"43711:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43706:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16462,"name":"bool","nodeType":"ElementaryTypeName","src":"43706:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16465,"mutability":"mutable","name":"p3","nameLocation":"43723:2:28","nodeType":"VariableDeclaration","scope":16480,"src":"43715:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16464,"name":"address","nodeType":"ElementaryTypeName","src":"43715:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43675:51:28"},"returnParameters":{"id":16467,"nodeType":"ParameterList","parameters":[],"src":"43741:0:28"},"scope":19517,"src":"43663:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16502,"nodeType":"Block","src":"43937:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":16494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43987:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":16495,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"44026:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16496,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"44030:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16497,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"44034:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16498,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16488,"src":"44038:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16492,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43963:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43967:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43963:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43963:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16491,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"43947:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43947:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16501,"nodeType":"ExpressionStatement","src":"43947:95:28"}]},"id":16503,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43865:3:28","nodeType":"FunctionDefinition","parameters":{"id":16489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16482,"mutability":"mutable","name":"p0","nameLocation":"43883:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43869:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16481,"name":"string","nodeType":"ElementaryTypeName","src":"43869:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16484,"mutability":"mutable","name":"p1","nameLocation":"43895:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43887:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16483,"name":"address","nodeType":"ElementaryTypeName","src":"43887:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16486,"mutability":"mutable","name":"p2","nameLocation":"43907:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43899:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16485,"name":"address","nodeType":"ElementaryTypeName","src":"43899:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16488,"mutability":"mutable","name":"p3","nameLocation":"43919:2:28","nodeType":"VariableDeclaration","scope":16503,"src":"43911:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16487,"name":"uint256","nodeType":"ElementaryTypeName","src":"43911:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43868:54:28"},"returnParameters":{"id":16490,"nodeType":"ParameterList","parameters":[],"src":"43937:0:28"},"scope":19517,"src":"43856:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16525,"nodeType":"Block","src":"44142:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":16517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44192:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":16518,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16505,"src":"44230:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16519,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"44234:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16520,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16509,"src":"44238:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16521,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16511,"src":"44242:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16515,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44168:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44172:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44168:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44168:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16514,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44152:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44152:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16524,"nodeType":"ExpressionStatement","src":"44152:94:28"}]},"id":16526,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44064:3:28","nodeType":"FunctionDefinition","parameters":{"id":16512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16505,"mutability":"mutable","name":"p0","nameLocation":"44082:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44068:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16504,"name":"string","nodeType":"ElementaryTypeName","src":"44068:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16507,"mutability":"mutable","name":"p1","nameLocation":"44094:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44086:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16506,"name":"address","nodeType":"ElementaryTypeName","src":"44086:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16509,"mutability":"mutable","name":"p2","nameLocation":"44106:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44098:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16508,"name":"address","nodeType":"ElementaryTypeName","src":"44098:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16511,"mutability":"mutable","name":"p3","nameLocation":"44124:2:28","nodeType":"VariableDeclaration","scope":16526,"src":"44110:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16510,"name":"string","nodeType":"ElementaryTypeName","src":"44110:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44067:60:28"},"returnParameters":{"id":16513,"nodeType":"ParameterList","parameters":[],"src":"44142:0:28"},"scope":19517,"src":"44055:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16548,"nodeType":"Block","src":"44337:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":16540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44387:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":16541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16528,"src":"44423:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16530,"src":"44427:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16532,"src":"44431:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16544,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"44435:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44363:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44367:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44363:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44363:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44347:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44347:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16547,"nodeType":"ExpressionStatement","src":"44347:92:28"}]},"id":16549,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44268:3:28","nodeType":"FunctionDefinition","parameters":{"id":16535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16528,"mutability":"mutable","name":"p0","nameLocation":"44286:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44272:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16527,"name":"string","nodeType":"ElementaryTypeName","src":"44272:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16530,"mutability":"mutable","name":"p1","nameLocation":"44298:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44290:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16529,"name":"address","nodeType":"ElementaryTypeName","src":"44290:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16532,"mutability":"mutable","name":"p2","nameLocation":"44310:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44302:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16531,"name":"address","nodeType":"ElementaryTypeName","src":"44302:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16534,"mutability":"mutable","name":"p3","nameLocation":"44319:2:28","nodeType":"VariableDeclaration","scope":16549,"src":"44314:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16533,"name":"bool","nodeType":"ElementaryTypeName","src":"44314:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44271:51:28"},"returnParameters":{"id":16536,"nodeType":"ParameterList","parameters":[],"src":"44337:0:28"},"scope":19517,"src":"44259:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16571,"nodeType":"Block","src":"44533:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":16563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44583:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":16564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16551,"src":"44622:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16565,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16553,"src":"44626:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16566,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16555,"src":"44630:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16567,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16557,"src":"44634:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44559:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44563:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44559:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44559:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44543:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44543:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16570,"nodeType":"ExpressionStatement","src":"44543:95:28"}]},"id":16572,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44461:3:28","nodeType":"FunctionDefinition","parameters":{"id":16558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16551,"mutability":"mutable","name":"p0","nameLocation":"44479:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44465:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16550,"name":"string","nodeType":"ElementaryTypeName","src":"44465:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16553,"mutability":"mutable","name":"p1","nameLocation":"44491:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44483:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16552,"name":"address","nodeType":"ElementaryTypeName","src":"44483:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16555,"mutability":"mutable","name":"p2","nameLocation":"44503:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44495:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16554,"name":"address","nodeType":"ElementaryTypeName","src":"44495:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16557,"mutability":"mutable","name":"p3","nameLocation":"44515:2:28","nodeType":"VariableDeclaration","scope":16572,"src":"44507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16556,"name":"address","nodeType":"ElementaryTypeName","src":"44507:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44464:54:28"},"returnParameters":{"id":16559,"nodeType":"ParameterList","parameters":[],"src":"44533:0:28"},"scope":19517,"src":"44452:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16594,"nodeType":"Block","src":"44723:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":16586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44773:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":16587,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16574,"src":"44810:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16588,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"44814:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16589,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16578,"src":"44818:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16590,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"44822:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16584,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44749:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44753:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44749:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44749:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16583,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44733:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44733:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16593,"nodeType":"ExpressionStatement","src":"44733:93:28"}]},"id":16595,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44660:3:28","nodeType":"FunctionDefinition","parameters":{"id":16581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16574,"mutability":"mutable","name":"p0","nameLocation":"44669:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44664:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16573,"name":"bool","nodeType":"ElementaryTypeName","src":"44664:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16576,"mutability":"mutable","name":"p1","nameLocation":"44681:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44673:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16575,"name":"uint256","nodeType":"ElementaryTypeName","src":"44673:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16578,"mutability":"mutable","name":"p2","nameLocation":"44693:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44685:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16577,"name":"uint256","nodeType":"ElementaryTypeName","src":"44685:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16580,"mutability":"mutable","name":"p3","nameLocation":"44705:2:28","nodeType":"VariableDeclaration","scope":16595,"src":"44697:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16579,"name":"uint256","nodeType":"ElementaryTypeName","src":"44697:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44663:45:28"},"returnParameters":{"id":16582,"nodeType":"ParameterList","parameters":[],"src":"44723:0:28"},"scope":19517,"src":"44651:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16617,"nodeType":"Block","src":"44917:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":16609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44967:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":16610,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16597,"src":"45003:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16611,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16599,"src":"45007:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16612,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16601,"src":"45011:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16613,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16603,"src":"45015:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44943:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44947:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44943:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44943:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16606,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"44927:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44927:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16616,"nodeType":"ExpressionStatement","src":"44927:92:28"}]},"id":16618,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44848:3:28","nodeType":"FunctionDefinition","parameters":{"id":16604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16597,"mutability":"mutable","name":"p0","nameLocation":"44857:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44852:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16596,"name":"bool","nodeType":"ElementaryTypeName","src":"44852:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16599,"mutability":"mutable","name":"p1","nameLocation":"44869:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44861:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16598,"name":"uint256","nodeType":"ElementaryTypeName","src":"44861:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16601,"mutability":"mutable","name":"p2","nameLocation":"44881:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44873:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16600,"name":"uint256","nodeType":"ElementaryTypeName","src":"44873:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16603,"mutability":"mutable","name":"p3","nameLocation":"44899:2:28","nodeType":"VariableDeclaration","scope":16618,"src":"44885:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16602,"name":"string","nodeType":"ElementaryTypeName","src":"44885:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44851:51:28"},"returnParameters":{"id":16605,"nodeType":"ParameterList","parameters":[],"src":"44917:0:28"},"scope":19517,"src":"44839:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16640,"nodeType":"Block","src":"45101:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":16632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45151:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":16633,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16620,"src":"45185:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16634,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16622,"src":"45189:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16635,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16624,"src":"45193:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16636,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16626,"src":"45197:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45127:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45131:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45127:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45127:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16629,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45111:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45111:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16639,"nodeType":"ExpressionStatement","src":"45111:90:28"}]},"id":16641,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45041:3:28","nodeType":"FunctionDefinition","parameters":{"id":16627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16620,"mutability":"mutable","name":"p0","nameLocation":"45050:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45045:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16619,"name":"bool","nodeType":"ElementaryTypeName","src":"45045:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16622,"mutability":"mutable","name":"p1","nameLocation":"45062:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45054:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16621,"name":"uint256","nodeType":"ElementaryTypeName","src":"45054:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16624,"mutability":"mutable","name":"p2","nameLocation":"45074:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45066:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16623,"name":"uint256","nodeType":"ElementaryTypeName","src":"45066:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16626,"mutability":"mutable","name":"p3","nameLocation":"45083:2:28","nodeType":"VariableDeclaration","scope":16641,"src":"45078:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16625,"name":"bool","nodeType":"ElementaryTypeName","src":"45078:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45044:42:28"},"returnParameters":{"id":16628,"nodeType":"ParameterList","parameters":[],"src":"45101:0:28"},"scope":19517,"src":"45032:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16663,"nodeType":"Block","src":"45286:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":16655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45336:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":16656,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16643,"src":"45373:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16657,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"45377:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16658,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"45381:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16659,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16649,"src":"45385:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45312:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45316:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45312:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45312:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16652,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45296:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45296:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16662,"nodeType":"ExpressionStatement","src":"45296:93:28"}]},"id":16664,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45223:3:28","nodeType":"FunctionDefinition","parameters":{"id":16650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16643,"mutability":"mutable","name":"p0","nameLocation":"45232:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45227:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16642,"name":"bool","nodeType":"ElementaryTypeName","src":"45227:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16645,"mutability":"mutable","name":"p1","nameLocation":"45244:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45236:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16644,"name":"uint256","nodeType":"ElementaryTypeName","src":"45236:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16647,"mutability":"mutable","name":"p2","nameLocation":"45256:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45248:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16646,"name":"uint256","nodeType":"ElementaryTypeName","src":"45248:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16649,"mutability":"mutable","name":"p3","nameLocation":"45268:2:28","nodeType":"VariableDeclaration","scope":16664,"src":"45260:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16648,"name":"address","nodeType":"ElementaryTypeName","src":"45260:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45226:45:28"},"returnParameters":{"id":16651,"nodeType":"ParameterList","parameters":[],"src":"45286:0:28"},"scope":19517,"src":"45214:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16686,"nodeType":"Block","src":"45480:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":16678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45530:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":16679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16666,"src":"45566:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16680,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16668,"src":"45570:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16681,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16670,"src":"45574:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16682,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16672,"src":"45578:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45506:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45510:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45506:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45506:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45490:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45490:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16685,"nodeType":"ExpressionStatement","src":"45490:92:28"}]},"id":16687,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45411:3:28","nodeType":"FunctionDefinition","parameters":{"id":16673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16666,"mutability":"mutable","name":"p0","nameLocation":"45420:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45415:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16665,"name":"bool","nodeType":"ElementaryTypeName","src":"45415:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16668,"mutability":"mutable","name":"p1","nameLocation":"45432:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45424:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16667,"name":"uint256","nodeType":"ElementaryTypeName","src":"45424:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16670,"mutability":"mutable","name":"p2","nameLocation":"45450:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45436:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16669,"name":"string","nodeType":"ElementaryTypeName","src":"45436:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16672,"mutability":"mutable","name":"p3","nameLocation":"45462:2:28","nodeType":"VariableDeclaration","scope":16687,"src":"45454:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16671,"name":"uint256","nodeType":"ElementaryTypeName","src":"45454:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45414:51:28"},"returnParameters":{"id":16674,"nodeType":"ParameterList","parameters":[],"src":"45480:0:28"},"scope":19517,"src":"45402:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16709,"nodeType":"Block","src":"45679:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":16701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45729:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":16702,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16689,"src":"45764:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16703,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16691,"src":"45768:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16704,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16693,"src":"45772:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16705,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16695,"src":"45776:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16699,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45705:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45709:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45705:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45705:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16698,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45689:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45689:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16708,"nodeType":"ExpressionStatement","src":"45689:91:28"}]},"id":16710,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45604:3:28","nodeType":"FunctionDefinition","parameters":{"id":16696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16689,"mutability":"mutable","name":"p0","nameLocation":"45613:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45608:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16688,"name":"bool","nodeType":"ElementaryTypeName","src":"45608:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16691,"mutability":"mutable","name":"p1","nameLocation":"45625:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45617:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16690,"name":"uint256","nodeType":"ElementaryTypeName","src":"45617:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16693,"mutability":"mutable","name":"p2","nameLocation":"45643:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45629:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16692,"name":"string","nodeType":"ElementaryTypeName","src":"45629:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16695,"mutability":"mutable","name":"p3","nameLocation":"45661:2:28","nodeType":"VariableDeclaration","scope":16710,"src":"45647:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16694,"name":"string","nodeType":"ElementaryTypeName","src":"45647:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45607:57:28"},"returnParameters":{"id":16697,"nodeType":"ParameterList","parameters":[],"src":"45679:0:28"},"scope":19517,"src":"45595:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16732,"nodeType":"Block","src":"45868:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":16724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45918:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":16725,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16712,"src":"45951:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16726,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16714,"src":"45955:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16727,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16716,"src":"45959:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16728,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16718,"src":"45963:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16722,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45894:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45898:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45894:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45894:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16721,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"45878:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45878:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16731,"nodeType":"ExpressionStatement","src":"45878:89:28"}]},"id":16733,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45802:3:28","nodeType":"FunctionDefinition","parameters":{"id":16719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16712,"mutability":"mutable","name":"p0","nameLocation":"45811:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45806:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16711,"name":"bool","nodeType":"ElementaryTypeName","src":"45806:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16714,"mutability":"mutable","name":"p1","nameLocation":"45823:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45815:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16713,"name":"uint256","nodeType":"ElementaryTypeName","src":"45815:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16716,"mutability":"mutable","name":"p2","nameLocation":"45841:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45827:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16715,"name":"string","nodeType":"ElementaryTypeName","src":"45827:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16718,"mutability":"mutable","name":"p3","nameLocation":"45850:2:28","nodeType":"VariableDeclaration","scope":16733,"src":"45845:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16717,"name":"bool","nodeType":"ElementaryTypeName","src":"45845:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45805:48:28"},"returnParameters":{"id":16720,"nodeType":"ParameterList","parameters":[],"src":"45868:0:28"},"scope":19517,"src":"45793:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16755,"nodeType":"Block","src":"46058:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":16747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46108:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":16748,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16735,"src":"46144:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16749,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16737,"src":"46148:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16750,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"46152:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16751,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16741,"src":"46156:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46084:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46088:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46084:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46084:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16744,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46068:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46068:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16754,"nodeType":"ExpressionStatement","src":"46068:92:28"}]},"id":16756,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45989:3:28","nodeType":"FunctionDefinition","parameters":{"id":16742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16735,"mutability":"mutable","name":"p0","nameLocation":"45998:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"45993:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16734,"name":"bool","nodeType":"ElementaryTypeName","src":"45993:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16737,"mutability":"mutable","name":"p1","nameLocation":"46010:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"46002:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16736,"name":"uint256","nodeType":"ElementaryTypeName","src":"46002:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16739,"mutability":"mutable","name":"p2","nameLocation":"46028:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"46014:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16738,"name":"string","nodeType":"ElementaryTypeName","src":"46014:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16741,"mutability":"mutable","name":"p3","nameLocation":"46040:2:28","nodeType":"VariableDeclaration","scope":16756,"src":"46032:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16740,"name":"address","nodeType":"ElementaryTypeName","src":"46032:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45992:51:28"},"returnParameters":{"id":16743,"nodeType":"ParameterList","parameters":[],"src":"46058:0:28"},"scope":19517,"src":"45980:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16778,"nodeType":"Block","src":"46242:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":16770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46292:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":16771,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16758,"src":"46326:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16772,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16760,"src":"46330:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16773,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16762,"src":"46334:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16774,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16764,"src":"46338:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16768,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46268:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46272:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46268:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46268:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16767,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46252:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46252:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16777,"nodeType":"ExpressionStatement","src":"46252:90:28"}]},"id":16779,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46182:3:28","nodeType":"FunctionDefinition","parameters":{"id":16765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16758,"mutability":"mutable","name":"p0","nameLocation":"46191:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46186:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16757,"name":"bool","nodeType":"ElementaryTypeName","src":"46186:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16760,"mutability":"mutable","name":"p1","nameLocation":"46203:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46195:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16759,"name":"uint256","nodeType":"ElementaryTypeName","src":"46195:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16762,"mutability":"mutable","name":"p2","nameLocation":"46212:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46207:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16761,"name":"bool","nodeType":"ElementaryTypeName","src":"46207:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16764,"mutability":"mutable","name":"p3","nameLocation":"46224:2:28","nodeType":"VariableDeclaration","scope":16779,"src":"46216:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16763,"name":"uint256","nodeType":"ElementaryTypeName","src":"46216:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46185:42:28"},"returnParameters":{"id":16766,"nodeType":"ParameterList","parameters":[],"src":"46242:0:28"},"scope":19517,"src":"46173:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16801,"nodeType":"Block","src":"46430:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":16793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46480:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":16794,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16781,"src":"46513:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16795,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"46517:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16796,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16785,"src":"46521:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16797,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16787,"src":"46525:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46456:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46460:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46456:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46456:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16790,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46440:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46440:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16800,"nodeType":"ExpressionStatement","src":"46440:89:28"}]},"id":16802,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46364:3:28","nodeType":"FunctionDefinition","parameters":{"id":16788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16781,"mutability":"mutable","name":"p0","nameLocation":"46373:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46368:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16780,"name":"bool","nodeType":"ElementaryTypeName","src":"46368:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16783,"mutability":"mutable","name":"p1","nameLocation":"46385:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46377:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16782,"name":"uint256","nodeType":"ElementaryTypeName","src":"46377:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16785,"mutability":"mutable","name":"p2","nameLocation":"46394:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46389:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16784,"name":"bool","nodeType":"ElementaryTypeName","src":"46389:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16787,"mutability":"mutable","name":"p3","nameLocation":"46412:2:28","nodeType":"VariableDeclaration","scope":16802,"src":"46398:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16786,"name":"string","nodeType":"ElementaryTypeName","src":"46398:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46367:48:28"},"returnParameters":{"id":16789,"nodeType":"ParameterList","parameters":[],"src":"46430:0:28"},"scope":19517,"src":"46355:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16824,"nodeType":"Block","src":"46608:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":16816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46658:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":16817,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"46689:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16818,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16806,"src":"46693:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16819,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16808,"src":"46697:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16820,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16810,"src":"46701:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46634:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46638:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46634:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46634:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16813,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46618:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46618:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16823,"nodeType":"ExpressionStatement","src":"46618:87:28"}]},"id":16825,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46551:3:28","nodeType":"FunctionDefinition","parameters":{"id":16811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16804,"mutability":"mutable","name":"p0","nameLocation":"46560:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46555:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16803,"name":"bool","nodeType":"ElementaryTypeName","src":"46555:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16806,"mutability":"mutable","name":"p1","nameLocation":"46572:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46564:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16805,"name":"uint256","nodeType":"ElementaryTypeName","src":"46564:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16808,"mutability":"mutable","name":"p2","nameLocation":"46581:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46576:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16807,"name":"bool","nodeType":"ElementaryTypeName","src":"46576:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16810,"mutability":"mutable","name":"p3","nameLocation":"46590:2:28","nodeType":"VariableDeclaration","scope":16825,"src":"46585:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16809,"name":"bool","nodeType":"ElementaryTypeName","src":"46585:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46554:39:28"},"returnParameters":{"id":16812,"nodeType":"ParameterList","parameters":[],"src":"46608:0:28"},"scope":19517,"src":"46542:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16847,"nodeType":"Block","src":"46787:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":16839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46837:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":16840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16827,"src":"46871:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16841,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16829,"src":"46875:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16842,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16831,"src":"46879:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16843,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16833,"src":"46883:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46813:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46817:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46813:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46813:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46797:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46797:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16846,"nodeType":"ExpressionStatement","src":"46797:90:28"}]},"id":16848,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46727:3:28","nodeType":"FunctionDefinition","parameters":{"id":16834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16827,"mutability":"mutable","name":"p0","nameLocation":"46736:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46731:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16826,"name":"bool","nodeType":"ElementaryTypeName","src":"46731:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16829,"mutability":"mutable","name":"p1","nameLocation":"46748:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46740:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16828,"name":"uint256","nodeType":"ElementaryTypeName","src":"46740:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16831,"mutability":"mutable","name":"p2","nameLocation":"46757:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46752:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16830,"name":"bool","nodeType":"ElementaryTypeName","src":"46752:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16833,"mutability":"mutable","name":"p3","nameLocation":"46769:2:28","nodeType":"VariableDeclaration","scope":16848,"src":"46761:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16832,"name":"address","nodeType":"ElementaryTypeName","src":"46761:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46730:42:28"},"returnParameters":{"id":16835,"nodeType":"ParameterList","parameters":[],"src":"46787:0:28"},"scope":19517,"src":"46718:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16870,"nodeType":"Block","src":"46972:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":16862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47022:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":16863,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16850,"src":"47059:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16864,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16852,"src":"47063:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16865,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16854,"src":"47067:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16866,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16856,"src":"47071:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46998:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47002:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46998:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46998:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"46982:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46982:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16869,"nodeType":"ExpressionStatement","src":"46982:93:28"}]},"id":16871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46909:3:28","nodeType":"FunctionDefinition","parameters":{"id":16857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16850,"mutability":"mutable","name":"p0","nameLocation":"46918:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46913:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16849,"name":"bool","nodeType":"ElementaryTypeName","src":"46913:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16852,"mutability":"mutable","name":"p1","nameLocation":"46930:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46922:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16851,"name":"uint256","nodeType":"ElementaryTypeName","src":"46922:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16854,"mutability":"mutable","name":"p2","nameLocation":"46942:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46934:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16853,"name":"address","nodeType":"ElementaryTypeName","src":"46934:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16856,"mutability":"mutable","name":"p3","nameLocation":"46954:2:28","nodeType":"VariableDeclaration","scope":16871,"src":"46946:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16855,"name":"uint256","nodeType":"ElementaryTypeName","src":"46946:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46912:45:28"},"returnParameters":{"id":16858,"nodeType":"ParameterList","parameters":[],"src":"46972:0:28"},"scope":19517,"src":"46900:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16893,"nodeType":"Block","src":"47166:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":16885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47216:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":16886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16873,"src":"47252:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16875,"src":"47256:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16877,"src":"47260:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16889,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16879,"src":"47264:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47192:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47196:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47192:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47192:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47176:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47176:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16892,"nodeType":"ExpressionStatement","src":"47176:92:28"}]},"id":16894,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47097:3:28","nodeType":"FunctionDefinition","parameters":{"id":16880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16873,"mutability":"mutable","name":"p0","nameLocation":"47106:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47101:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16872,"name":"bool","nodeType":"ElementaryTypeName","src":"47101:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16875,"mutability":"mutable","name":"p1","nameLocation":"47118:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47110:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16874,"name":"uint256","nodeType":"ElementaryTypeName","src":"47110:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16877,"mutability":"mutable","name":"p2","nameLocation":"47130:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47122:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16876,"name":"address","nodeType":"ElementaryTypeName","src":"47122:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16879,"mutability":"mutable","name":"p3","nameLocation":"47148:2:28","nodeType":"VariableDeclaration","scope":16894,"src":"47134:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16878,"name":"string","nodeType":"ElementaryTypeName","src":"47134:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47100:51:28"},"returnParameters":{"id":16881,"nodeType":"ParameterList","parameters":[],"src":"47166:0:28"},"scope":19517,"src":"47088:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16916,"nodeType":"Block","src":"47350:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":16908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47400:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":16909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16896,"src":"47434:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16910,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16898,"src":"47438:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16911,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16900,"src":"47442:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16912,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16902,"src":"47446:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47376:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47380:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47376:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47376:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47360:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47360:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16915,"nodeType":"ExpressionStatement","src":"47360:90:28"}]},"id":16917,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47290:3:28","nodeType":"FunctionDefinition","parameters":{"id":16903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16896,"mutability":"mutable","name":"p0","nameLocation":"47299:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47294:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16895,"name":"bool","nodeType":"ElementaryTypeName","src":"47294:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16898,"mutability":"mutable","name":"p1","nameLocation":"47311:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47303:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16897,"name":"uint256","nodeType":"ElementaryTypeName","src":"47303:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16900,"mutability":"mutable","name":"p2","nameLocation":"47323:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47315:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16899,"name":"address","nodeType":"ElementaryTypeName","src":"47315:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16902,"mutability":"mutable","name":"p3","nameLocation":"47332:2:28","nodeType":"VariableDeclaration","scope":16917,"src":"47327:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16901,"name":"bool","nodeType":"ElementaryTypeName","src":"47327:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47293:42:28"},"returnParameters":{"id":16904,"nodeType":"ParameterList","parameters":[],"src":"47350:0:28"},"scope":19517,"src":"47281:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16939,"nodeType":"Block","src":"47535:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":16931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47585:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":16932,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16919,"src":"47622:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16933,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16921,"src":"47626:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16934,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16923,"src":"47630:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16935,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"47634:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47561:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47565:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47561:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47561:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16928,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47545:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47545:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16938,"nodeType":"ExpressionStatement","src":"47545:93:28"}]},"id":16940,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47472:3:28","nodeType":"FunctionDefinition","parameters":{"id":16926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16919,"mutability":"mutable","name":"p0","nameLocation":"47481:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47476:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16918,"name":"bool","nodeType":"ElementaryTypeName","src":"47476:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16921,"mutability":"mutable","name":"p1","nameLocation":"47493:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47485:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16920,"name":"uint256","nodeType":"ElementaryTypeName","src":"47485:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16923,"mutability":"mutable","name":"p2","nameLocation":"47505:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47497:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16922,"name":"address","nodeType":"ElementaryTypeName","src":"47497:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16925,"mutability":"mutable","name":"p3","nameLocation":"47517:2:28","nodeType":"VariableDeclaration","scope":16940,"src":"47509:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16924,"name":"address","nodeType":"ElementaryTypeName","src":"47509:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47475:45:28"},"returnParameters":{"id":16927,"nodeType":"ParameterList","parameters":[],"src":"47535:0:28"},"scope":19517,"src":"47463:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16962,"nodeType":"Block","src":"47729:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":16954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47779:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":16955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16942,"src":"47815:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16956,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16944,"src":"47819:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16957,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"47823:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16958,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16948,"src":"47827:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47755:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47759:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47755:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47755:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47739:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47739:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16961,"nodeType":"ExpressionStatement","src":"47739:92:28"}]},"id":16963,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47660:3:28","nodeType":"FunctionDefinition","parameters":{"id":16949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16942,"mutability":"mutable","name":"p0","nameLocation":"47669:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47664:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16941,"name":"bool","nodeType":"ElementaryTypeName","src":"47664:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16944,"mutability":"mutable","name":"p1","nameLocation":"47687:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47673:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16943,"name":"string","nodeType":"ElementaryTypeName","src":"47673:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16946,"mutability":"mutable","name":"p2","nameLocation":"47699:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47691:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16945,"name":"uint256","nodeType":"ElementaryTypeName","src":"47691:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16948,"mutability":"mutable","name":"p3","nameLocation":"47711:2:28","nodeType":"VariableDeclaration","scope":16963,"src":"47703:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16947,"name":"uint256","nodeType":"ElementaryTypeName","src":"47703:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47663:51:28"},"returnParameters":{"id":16950,"nodeType":"ParameterList","parameters":[],"src":"47729:0:28"},"scope":19517,"src":"47651:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16985,"nodeType":"Block","src":"47928:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":16977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47978:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":16978,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16965,"src":"48013:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16979,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16967,"src":"48017:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16980,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"48021:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16981,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16971,"src":"48025:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47954:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47958:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47954:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47954:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16974,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"47938:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":16983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47938:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16984,"nodeType":"ExpressionStatement","src":"47938:91:28"}]},"id":16986,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47853:3:28","nodeType":"FunctionDefinition","parameters":{"id":16972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16965,"mutability":"mutable","name":"p0","nameLocation":"47862:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47857:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16964,"name":"bool","nodeType":"ElementaryTypeName","src":"47857:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16967,"mutability":"mutable","name":"p1","nameLocation":"47880:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47866:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16966,"name":"string","nodeType":"ElementaryTypeName","src":"47866:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16969,"mutability":"mutable","name":"p2","nameLocation":"47892:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47884:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16968,"name":"uint256","nodeType":"ElementaryTypeName","src":"47884:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16971,"mutability":"mutable","name":"p3","nameLocation":"47910:2:28","nodeType":"VariableDeclaration","scope":16986,"src":"47896:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16970,"name":"string","nodeType":"ElementaryTypeName","src":"47896:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47856:57:28"},"returnParameters":{"id":16973,"nodeType":"ParameterList","parameters":[],"src":"47928:0:28"},"scope":19517,"src":"47844:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17008,"nodeType":"Block","src":"48117:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":17000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48167:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":17001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"48200:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16990,"src":"48204:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16992,"src":"48208:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17004,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16994,"src":"48212:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48143:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48147:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48143:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48143:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48127:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48127:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17007,"nodeType":"ExpressionStatement","src":"48127:89:28"}]},"id":17009,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48051:3:28","nodeType":"FunctionDefinition","parameters":{"id":16995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16988,"mutability":"mutable","name":"p0","nameLocation":"48060:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48055:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16987,"name":"bool","nodeType":"ElementaryTypeName","src":"48055:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16990,"mutability":"mutable","name":"p1","nameLocation":"48078:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48064:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16989,"name":"string","nodeType":"ElementaryTypeName","src":"48064:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16992,"mutability":"mutable","name":"p2","nameLocation":"48090:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48082:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16991,"name":"uint256","nodeType":"ElementaryTypeName","src":"48082:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16994,"mutability":"mutable","name":"p3","nameLocation":"48099:2:28","nodeType":"VariableDeclaration","scope":17009,"src":"48094:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16993,"name":"bool","nodeType":"ElementaryTypeName","src":"48094:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48054:48:28"},"returnParameters":{"id":16996,"nodeType":"ParameterList","parameters":[],"src":"48117:0:28"},"scope":19517,"src":"48042:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17031,"nodeType":"Block","src":"48307:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":17023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48357:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":17024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"48393:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17013,"src":"48397:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17015,"src":"48401:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17027,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17017,"src":"48405:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48333:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48337:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48333:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48333:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48317:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48317:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17030,"nodeType":"ExpressionStatement","src":"48317:92:28"}]},"id":17032,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48238:3:28","nodeType":"FunctionDefinition","parameters":{"id":17018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17011,"mutability":"mutable","name":"p0","nameLocation":"48247:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48242:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17010,"name":"bool","nodeType":"ElementaryTypeName","src":"48242:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17013,"mutability":"mutable","name":"p1","nameLocation":"48265:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48251:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17012,"name":"string","nodeType":"ElementaryTypeName","src":"48251:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17015,"mutability":"mutable","name":"p2","nameLocation":"48277:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48269:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17014,"name":"uint256","nodeType":"ElementaryTypeName","src":"48269:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17017,"mutability":"mutable","name":"p3","nameLocation":"48289:2:28","nodeType":"VariableDeclaration","scope":17032,"src":"48281:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17016,"name":"address","nodeType":"ElementaryTypeName","src":"48281:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48241:51:28"},"returnParameters":{"id":17019,"nodeType":"ParameterList","parameters":[],"src":"48307:0:28"},"scope":19517,"src":"48229:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17054,"nodeType":"Block","src":"48506:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":17046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48556:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":17047,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17034,"src":"48591:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17048,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17036,"src":"48595:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17049,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17038,"src":"48599:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17050,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"48603:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17044,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48532:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48536:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48532:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48532:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17043,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48516:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48516:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17053,"nodeType":"ExpressionStatement","src":"48516:91:28"}]},"id":17055,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48431:3:28","nodeType":"FunctionDefinition","parameters":{"id":17041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17034,"mutability":"mutable","name":"p0","nameLocation":"48440:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48435:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17033,"name":"bool","nodeType":"ElementaryTypeName","src":"48435:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17036,"mutability":"mutable","name":"p1","nameLocation":"48458:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48444:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17035,"name":"string","nodeType":"ElementaryTypeName","src":"48444:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17038,"mutability":"mutable","name":"p2","nameLocation":"48476:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48462:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17037,"name":"string","nodeType":"ElementaryTypeName","src":"48462:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17040,"mutability":"mutable","name":"p3","nameLocation":"48488:2:28","nodeType":"VariableDeclaration","scope":17055,"src":"48480:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17039,"name":"uint256","nodeType":"ElementaryTypeName","src":"48480:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48434:57:28"},"returnParameters":{"id":17042,"nodeType":"ParameterList","parameters":[],"src":"48506:0:28"},"scope":19517,"src":"48422:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17077,"nodeType":"Block","src":"48710:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":17069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48760:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":17070,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17057,"src":"48794:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17071,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17059,"src":"48798:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17072,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17061,"src":"48802:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17073,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17063,"src":"48806:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48736:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48740:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48736:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48736:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17066,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48720:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48720:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17076,"nodeType":"ExpressionStatement","src":"48720:90:28"}]},"id":17078,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48629:3:28","nodeType":"FunctionDefinition","parameters":{"id":17064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17057,"mutability":"mutable","name":"p0","nameLocation":"48638:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48633:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17056,"name":"bool","nodeType":"ElementaryTypeName","src":"48633:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17059,"mutability":"mutable","name":"p1","nameLocation":"48656:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48642:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17058,"name":"string","nodeType":"ElementaryTypeName","src":"48642:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17061,"mutability":"mutable","name":"p2","nameLocation":"48674:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48660:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17060,"name":"string","nodeType":"ElementaryTypeName","src":"48660:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17063,"mutability":"mutable","name":"p3","nameLocation":"48692:2:28","nodeType":"VariableDeclaration","scope":17078,"src":"48678:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17062,"name":"string","nodeType":"ElementaryTypeName","src":"48678:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48632:63:28"},"returnParameters":{"id":17065,"nodeType":"ParameterList","parameters":[],"src":"48710:0:28"},"scope":19517,"src":"48620:197:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17100,"nodeType":"Block","src":"48904:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":17092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48954:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":17093,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17080,"src":"48986:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17094,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17082,"src":"48990:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17095,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17084,"src":"48994:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17096,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17086,"src":"48998:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48930:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48934:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48930:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48930:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17089,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"48914:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48914:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17099,"nodeType":"ExpressionStatement","src":"48914:88:28"}]},"id":17101,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48832:3:28","nodeType":"FunctionDefinition","parameters":{"id":17087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17080,"mutability":"mutable","name":"p0","nameLocation":"48841:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48836:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17079,"name":"bool","nodeType":"ElementaryTypeName","src":"48836:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17082,"mutability":"mutable","name":"p1","nameLocation":"48859:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48845:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17081,"name":"string","nodeType":"ElementaryTypeName","src":"48845:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17084,"mutability":"mutable","name":"p2","nameLocation":"48877:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48863:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17083,"name":"string","nodeType":"ElementaryTypeName","src":"48863:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17086,"mutability":"mutable","name":"p3","nameLocation":"48886:2:28","nodeType":"VariableDeclaration","scope":17101,"src":"48881:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17085,"name":"bool","nodeType":"ElementaryTypeName","src":"48881:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48835:54:28"},"returnParameters":{"id":17088,"nodeType":"ParameterList","parameters":[],"src":"48904:0:28"},"scope":19517,"src":"48823:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17123,"nodeType":"Block","src":"49099:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":17115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49149:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":17116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17103,"src":"49184:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17105,"src":"49188:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17118,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"49192:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17119,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17109,"src":"49196:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49125:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49129:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49125:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49109:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49109:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17122,"nodeType":"ExpressionStatement","src":"49109:91:28"}]},"id":17124,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49024:3:28","nodeType":"FunctionDefinition","parameters":{"id":17110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17103,"mutability":"mutable","name":"p0","nameLocation":"49033:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49028:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17102,"name":"bool","nodeType":"ElementaryTypeName","src":"49028:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17105,"mutability":"mutable","name":"p1","nameLocation":"49051:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49037:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17104,"name":"string","nodeType":"ElementaryTypeName","src":"49037:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17107,"mutability":"mutable","name":"p2","nameLocation":"49069:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49055:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17106,"name":"string","nodeType":"ElementaryTypeName","src":"49055:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17109,"mutability":"mutable","name":"p3","nameLocation":"49081:2:28","nodeType":"VariableDeclaration","scope":17124,"src":"49073:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17108,"name":"address","nodeType":"ElementaryTypeName","src":"49073:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49027:57:28"},"returnParameters":{"id":17111,"nodeType":"ParameterList","parameters":[],"src":"49099:0:28"},"scope":19517,"src":"49015:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17146,"nodeType":"Block","src":"49288:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":17138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49338:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":17139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17126,"src":"49371:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17128,"src":"49375:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17141,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"49379:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17142,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17132,"src":"49383:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49314:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49318:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49314:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49314:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49298:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49298:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17145,"nodeType":"ExpressionStatement","src":"49298:89:28"}]},"id":17147,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49222:3:28","nodeType":"FunctionDefinition","parameters":{"id":17133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17126,"mutability":"mutable","name":"p0","nameLocation":"49231:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49226:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17125,"name":"bool","nodeType":"ElementaryTypeName","src":"49226:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17128,"mutability":"mutable","name":"p1","nameLocation":"49249:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49235:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17127,"name":"string","nodeType":"ElementaryTypeName","src":"49235:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17130,"mutability":"mutable","name":"p2","nameLocation":"49258:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49253:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17129,"name":"bool","nodeType":"ElementaryTypeName","src":"49253:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17132,"mutability":"mutable","name":"p3","nameLocation":"49270:2:28","nodeType":"VariableDeclaration","scope":17147,"src":"49262:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17131,"name":"uint256","nodeType":"ElementaryTypeName","src":"49262:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49225:48:28"},"returnParameters":{"id":17134,"nodeType":"ParameterList","parameters":[],"src":"49288:0:28"},"scope":19517,"src":"49213:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17169,"nodeType":"Block","src":"49481:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":17161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49531:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":17162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17149,"src":"49563:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17163,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17151,"src":"49567:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17164,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17153,"src":"49571:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17165,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17155,"src":"49575:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49507:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49511:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49507:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49507:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49491:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49491:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17168,"nodeType":"ExpressionStatement","src":"49491:88:28"}]},"id":17170,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49409:3:28","nodeType":"FunctionDefinition","parameters":{"id":17156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17149,"mutability":"mutable","name":"p0","nameLocation":"49418:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49413:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17148,"name":"bool","nodeType":"ElementaryTypeName","src":"49413:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17151,"mutability":"mutable","name":"p1","nameLocation":"49436:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49422:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17150,"name":"string","nodeType":"ElementaryTypeName","src":"49422:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17153,"mutability":"mutable","name":"p2","nameLocation":"49445:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49440:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17152,"name":"bool","nodeType":"ElementaryTypeName","src":"49440:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17155,"mutability":"mutable","name":"p3","nameLocation":"49463:2:28","nodeType":"VariableDeclaration","scope":17170,"src":"49449:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17154,"name":"string","nodeType":"ElementaryTypeName","src":"49449:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49412:54:28"},"returnParameters":{"id":17157,"nodeType":"ParameterList","parameters":[],"src":"49481:0:28"},"scope":19517,"src":"49400:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17192,"nodeType":"Block","src":"49664:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":17184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49714:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":17185,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17172,"src":"49744:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17186,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"49748:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17187,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17176,"src":"49752:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17188,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17178,"src":"49756:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17182,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49690:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49694:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49690:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49690:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17181,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49674:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49674:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17191,"nodeType":"ExpressionStatement","src":"49674:86:28"}]},"id":17193,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49601:3:28","nodeType":"FunctionDefinition","parameters":{"id":17179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17172,"mutability":"mutable","name":"p0","nameLocation":"49610:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49605:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17171,"name":"bool","nodeType":"ElementaryTypeName","src":"49605:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17174,"mutability":"mutable","name":"p1","nameLocation":"49628:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49614:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17173,"name":"string","nodeType":"ElementaryTypeName","src":"49614:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17176,"mutability":"mutable","name":"p2","nameLocation":"49637:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49632:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17175,"name":"bool","nodeType":"ElementaryTypeName","src":"49632:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17178,"mutability":"mutable","name":"p3","nameLocation":"49646:2:28","nodeType":"VariableDeclaration","scope":17193,"src":"49641:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17177,"name":"bool","nodeType":"ElementaryTypeName","src":"49641:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49604:45:28"},"returnParameters":{"id":17180,"nodeType":"ParameterList","parameters":[],"src":"49664:0:28"},"scope":19517,"src":"49592:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17215,"nodeType":"Block","src":"49848:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":17207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49898:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":17208,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17195,"src":"49931:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17209,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17197,"src":"49935:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17210,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17199,"src":"49939:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17211,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17201,"src":"49943:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49874:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49878:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49874:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49874:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17204,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"49858:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49858:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17214,"nodeType":"ExpressionStatement","src":"49858:89:28"}]},"id":17216,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49782:3:28","nodeType":"FunctionDefinition","parameters":{"id":17202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17195,"mutability":"mutable","name":"p0","nameLocation":"49791:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49786:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17194,"name":"bool","nodeType":"ElementaryTypeName","src":"49786:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17197,"mutability":"mutable","name":"p1","nameLocation":"49809:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49795:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17196,"name":"string","nodeType":"ElementaryTypeName","src":"49795:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17199,"mutability":"mutable","name":"p2","nameLocation":"49818:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49813:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17198,"name":"bool","nodeType":"ElementaryTypeName","src":"49813:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17201,"mutability":"mutable","name":"p3","nameLocation":"49830:2:28","nodeType":"VariableDeclaration","scope":17216,"src":"49822:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17200,"name":"address","nodeType":"ElementaryTypeName","src":"49822:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49785:48:28"},"returnParameters":{"id":17203,"nodeType":"ParameterList","parameters":[],"src":"49848:0:28"},"scope":19517,"src":"49773:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17238,"nodeType":"Block","src":"50038:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":17230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50088:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":17231,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17218,"src":"50124:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17232,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17220,"src":"50128:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17233,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17222,"src":"50132:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17234,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17224,"src":"50136:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50064:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50068:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50064:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50064:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50048:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50048:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17237,"nodeType":"ExpressionStatement","src":"50048:92:28"}]},"id":17239,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49969:3:28","nodeType":"FunctionDefinition","parameters":{"id":17225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17218,"mutability":"mutable","name":"p0","nameLocation":"49978:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"49973:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17217,"name":"bool","nodeType":"ElementaryTypeName","src":"49973:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17220,"mutability":"mutable","name":"p1","nameLocation":"49996:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"49982:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17219,"name":"string","nodeType":"ElementaryTypeName","src":"49982:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17222,"mutability":"mutable","name":"p2","nameLocation":"50008:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"50000:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17221,"name":"address","nodeType":"ElementaryTypeName","src":"50000:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17224,"mutability":"mutable","name":"p3","nameLocation":"50020:2:28","nodeType":"VariableDeclaration","scope":17239,"src":"50012:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17223,"name":"uint256","nodeType":"ElementaryTypeName","src":"50012:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49972:51:28"},"returnParameters":{"id":17226,"nodeType":"ParameterList","parameters":[],"src":"50038:0:28"},"scope":19517,"src":"49960:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17261,"nodeType":"Block","src":"50237:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":17253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50287:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":17254,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17241,"src":"50322:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17255,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17243,"src":"50326:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17256,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17245,"src":"50330:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17257,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"50334:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50263:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50267:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50263:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50263:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17250,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50247:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50247:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17260,"nodeType":"ExpressionStatement","src":"50247:91:28"}]},"id":17262,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50162:3:28","nodeType":"FunctionDefinition","parameters":{"id":17248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17241,"mutability":"mutable","name":"p0","nameLocation":"50171:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50166:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17240,"name":"bool","nodeType":"ElementaryTypeName","src":"50166:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17243,"mutability":"mutable","name":"p1","nameLocation":"50189:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50175:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17242,"name":"string","nodeType":"ElementaryTypeName","src":"50175:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17245,"mutability":"mutable","name":"p2","nameLocation":"50201:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50193:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17244,"name":"address","nodeType":"ElementaryTypeName","src":"50193:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17247,"mutability":"mutable","name":"p3","nameLocation":"50219:2:28","nodeType":"VariableDeclaration","scope":17262,"src":"50205:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17246,"name":"string","nodeType":"ElementaryTypeName","src":"50205:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50165:57:28"},"returnParameters":{"id":17249,"nodeType":"ParameterList","parameters":[],"src":"50237:0:28"},"scope":19517,"src":"50153:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17284,"nodeType":"Block","src":"50426:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":17276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50476:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":17277,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17264,"src":"50509:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17278,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17266,"src":"50513:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17279,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17268,"src":"50517:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17280,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17270,"src":"50521:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50452:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50456:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50452:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50452:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50436:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50436:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17283,"nodeType":"ExpressionStatement","src":"50436:89:28"}]},"id":17285,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50360:3:28","nodeType":"FunctionDefinition","parameters":{"id":17271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17264,"mutability":"mutable","name":"p0","nameLocation":"50369:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50364:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17263,"name":"bool","nodeType":"ElementaryTypeName","src":"50364:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17266,"mutability":"mutable","name":"p1","nameLocation":"50387:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50373:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17265,"name":"string","nodeType":"ElementaryTypeName","src":"50373:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17268,"mutability":"mutable","name":"p2","nameLocation":"50399:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50391:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17267,"name":"address","nodeType":"ElementaryTypeName","src":"50391:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17270,"mutability":"mutable","name":"p3","nameLocation":"50408:2:28","nodeType":"VariableDeclaration","scope":17285,"src":"50403:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17269,"name":"bool","nodeType":"ElementaryTypeName","src":"50403:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50363:48:28"},"returnParameters":{"id":17272,"nodeType":"ParameterList","parameters":[],"src":"50426:0:28"},"scope":19517,"src":"50351:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17307,"nodeType":"Block","src":"50616:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":17299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50666:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":17300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17287,"src":"50702:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17289,"src":"50706:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17291,"src":"50710:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17303,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17293,"src":"50714:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50642:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50646:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50642:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50642:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50626:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50626:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17306,"nodeType":"ExpressionStatement","src":"50626:92:28"}]},"id":17308,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50547:3:28","nodeType":"FunctionDefinition","parameters":{"id":17294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17287,"mutability":"mutable","name":"p0","nameLocation":"50556:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50551:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17286,"name":"bool","nodeType":"ElementaryTypeName","src":"50551:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17289,"mutability":"mutable","name":"p1","nameLocation":"50574:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50560:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17288,"name":"string","nodeType":"ElementaryTypeName","src":"50560:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17291,"mutability":"mutable","name":"p2","nameLocation":"50586:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50578:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17290,"name":"address","nodeType":"ElementaryTypeName","src":"50578:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17293,"mutability":"mutable","name":"p3","nameLocation":"50598:2:28","nodeType":"VariableDeclaration","scope":17308,"src":"50590:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17292,"name":"address","nodeType":"ElementaryTypeName","src":"50590:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50550:51:28"},"returnParameters":{"id":17295,"nodeType":"ParameterList","parameters":[],"src":"50616:0:28"},"scope":19517,"src":"50538:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17330,"nodeType":"Block","src":"50800:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":17322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50850:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":17323,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"50884:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17324,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"50888:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17325,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"50892:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17326,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17316,"src":"50896:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17320,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50826:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50830:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50826:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50826:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17319,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50810:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50810:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17329,"nodeType":"ExpressionStatement","src":"50810:90:28"}]},"id":17331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50740:3:28","nodeType":"FunctionDefinition","parameters":{"id":17317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17310,"mutability":"mutable","name":"p0","nameLocation":"50749:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17309,"name":"bool","nodeType":"ElementaryTypeName","src":"50744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17312,"mutability":"mutable","name":"p1","nameLocation":"50758:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50753:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17311,"name":"bool","nodeType":"ElementaryTypeName","src":"50753:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17314,"mutability":"mutable","name":"p2","nameLocation":"50770:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50762:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17313,"name":"uint256","nodeType":"ElementaryTypeName","src":"50762:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17316,"mutability":"mutable","name":"p3","nameLocation":"50782:2:28","nodeType":"VariableDeclaration","scope":17331,"src":"50774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17315,"name":"uint256","nodeType":"ElementaryTypeName","src":"50774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50743:42:28"},"returnParameters":{"id":17318,"nodeType":"ParameterList","parameters":[],"src":"50800:0:28"},"scope":19517,"src":"50731:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17353,"nodeType":"Block","src":"50988:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":17345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51038:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":17346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17333,"src":"51071:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17347,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17335,"src":"51075:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17348,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"51079:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17349,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17339,"src":"51083:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51014:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51018:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51014:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51014:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"50998:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50998:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17352,"nodeType":"ExpressionStatement","src":"50998:89:28"}]},"id":17354,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50922:3:28","nodeType":"FunctionDefinition","parameters":{"id":17340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17333,"mutability":"mutable","name":"p0","nameLocation":"50931:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50926:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17332,"name":"bool","nodeType":"ElementaryTypeName","src":"50926:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17335,"mutability":"mutable","name":"p1","nameLocation":"50940:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50935:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17334,"name":"bool","nodeType":"ElementaryTypeName","src":"50935:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17337,"mutability":"mutable","name":"p2","nameLocation":"50952:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50944:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17336,"name":"uint256","nodeType":"ElementaryTypeName","src":"50944:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17339,"mutability":"mutable","name":"p3","nameLocation":"50970:2:28","nodeType":"VariableDeclaration","scope":17354,"src":"50956:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17338,"name":"string","nodeType":"ElementaryTypeName","src":"50956:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50925:48:28"},"returnParameters":{"id":17341,"nodeType":"ParameterList","parameters":[],"src":"50988:0:28"},"scope":19517,"src":"50913:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17376,"nodeType":"Block","src":"51166:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":17368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51216:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":17369,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17356,"src":"51247:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17370,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17358,"src":"51251:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17371,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17360,"src":"51255:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17372,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17362,"src":"51259:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51192:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51196:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51192:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51192:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51176:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51176:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17375,"nodeType":"ExpressionStatement","src":"51176:87:28"}]},"id":17377,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51109:3:28","nodeType":"FunctionDefinition","parameters":{"id":17363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17356,"mutability":"mutable","name":"p0","nameLocation":"51118:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51113:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17355,"name":"bool","nodeType":"ElementaryTypeName","src":"51113:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17358,"mutability":"mutable","name":"p1","nameLocation":"51127:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51122:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17357,"name":"bool","nodeType":"ElementaryTypeName","src":"51122:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17360,"mutability":"mutable","name":"p2","nameLocation":"51139:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51131:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17359,"name":"uint256","nodeType":"ElementaryTypeName","src":"51131:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17362,"mutability":"mutable","name":"p3","nameLocation":"51148:2:28","nodeType":"VariableDeclaration","scope":17377,"src":"51143:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17361,"name":"bool","nodeType":"ElementaryTypeName","src":"51143:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51112:39:28"},"returnParameters":{"id":17364,"nodeType":"ParameterList","parameters":[],"src":"51166:0:28"},"scope":19517,"src":"51100:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17399,"nodeType":"Block","src":"51345:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":17391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51395:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":17392,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17379,"src":"51429:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17393,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17381,"src":"51433:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17394,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17383,"src":"51437:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17395,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17385,"src":"51441:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17389,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51371:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51375:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51371:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51371:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17388,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51355:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51355:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17398,"nodeType":"ExpressionStatement","src":"51355:90:28"}]},"id":17400,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51285:3:28","nodeType":"FunctionDefinition","parameters":{"id":17386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17379,"mutability":"mutable","name":"p0","nameLocation":"51294:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51289:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17378,"name":"bool","nodeType":"ElementaryTypeName","src":"51289:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17381,"mutability":"mutable","name":"p1","nameLocation":"51303:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51298:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17380,"name":"bool","nodeType":"ElementaryTypeName","src":"51298:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17383,"mutability":"mutable","name":"p2","nameLocation":"51315:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51307:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17382,"name":"uint256","nodeType":"ElementaryTypeName","src":"51307:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17385,"mutability":"mutable","name":"p3","nameLocation":"51327:2:28","nodeType":"VariableDeclaration","scope":17400,"src":"51319:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17384,"name":"address","nodeType":"ElementaryTypeName","src":"51319:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51288:42:28"},"returnParameters":{"id":17387,"nodeType":"ParameterList","parameters":[],"src":"51345:0:28"},"scope":19517,"src":"51276:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17422,"nodeType":"Block","src":"51533:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":17414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51583:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":17415,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"51616:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17416,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17404,"src":"51620:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17417,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17406,"src":"51624:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17418,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17408,"src":"51628:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51559:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51563:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51559:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51559:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17411,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51543:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51543:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17421,"nodeType":"ExpressionStatement","src":"51543:89:28"}]},"id":17423,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51467:3:28","nodeType":"FunctionDefinition","parameters":{"id":17409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17402,"mutability":"mutable","name":"p0","nameLocation":"51476:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51471:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17401,"name":"bool","nodeType":"ElementaryTypeName","src":"51471:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17404,"mutability":"mutable","name":"p1","nameLocation":"51485:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51480:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17403,"name":"bool","nodeType":"ElementaryTypeName","src":"51480:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17406,"mutability":"mutable","name":"p2","nameLocation":"51503:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51489:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17405,"name":"string","nodeType":"ElementaryTypeName","src":"51489:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17408,"mutability":"mutable","name":"p3","nameLocation":"51515:2:28","nodeType":"VariableDeclaration","scope":17423,"src":"51507:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17407,"name":"uint256","nodeType":"ElementaryTypeName","src":"51507:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51470:48:28"},"returnParameters":{"id":17410,"nodeType":"ParameterList","parameters":[],"src":"51533:0:28"},"scope":19517,"src":"51458:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17445,"nodeType":"Block","src":"51726:105:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":17437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51776:30:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":17438,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17425,"src":"51808:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17439,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17427,"src":"51812:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17440,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17429,"src":"51816:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17441,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17431,"src":"51820:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51752:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51756:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51752:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51752:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17434,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51736:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51736:88:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17444,"nodeType":"ExpressionStatement","src":"51736:88:28"}]},"id":17446,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51654:3:28","nodeType":"FunctionDefinition","parameters":{"id":17432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17425,"mutability":"mutable","name":"p0","nameLocation":"51663:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51658:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17424,"name":"bool","nodeType":"ElementaryTypeName","src":"51658:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17427,"mutability":"mutable","name":"p1","nameLocation":"51672:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51667:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17426,"name":"bool","nodeType":"ElementaryTypeName","src":"51667:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17429,"mutability":"mutable","name":"p2","nameLocation":"51690:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51676:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17428,"name":"string","nodeType":"ElementaryTypeName","src":"51676:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17431,"mutability":"mutable","name":"p3","nameLocation":"51708:2:28","nodeType":"VariableDeclaration","scope":17446,"src":"51694:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17430,"name":"string","nodeType":"ElementaryTypeName","src":"51694:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51657:54:28"},"returnParameters":{"id":17433,"nodeType":"ParameterList","parameters":[],"src":"51726:0:28"},"scope":19517,"src":"51645:186:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17468,"nodeType":"Block","src":"51909:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":17460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51959:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":17461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17448,"src":"51989:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17450,"src":"51993:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17452,"src":"51997:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17464,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17454,"src":"52001:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51935:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51939:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51935:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51935:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"51919:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51919:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17467,"nodeType":"ExpressionStatement","src":"51919:86:28"}]},"id":17469,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51846:3:28","nodeType":"FunctionDefinition","parameters":{"id":17455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17448,"mutability":"mutable","name":"p0","nameLocation":"51855:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51850:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17447,"name":"bool","nodeType":"ElementaryTypeName","src":"51850:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17450,"mutability":"mutable","name":"p1","nameLocation":"51864:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51859:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17449,"name":"bool","nodeType":"ElementaryTypeName","src":"51859:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17452,"mutability":"mutable","name":"p2","nameLocation":"51882:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51868:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17451,"name":"string","nodeType":"ElementaryTypeName","src":"51868:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17454,"mutability":"mutable","name":"p3","nameLocation":"51891:2:28","nodeType":"VariableDeclaration","scope":17469,"src":"51886:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17453,"name":"bool","nodeType":"ElementaryTypeName","src":"51886:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51849:45:28"},"returnParameters":{"id":17456,"nodeType":"ParameterList","parameters":[],"src":"51909:0:28"},"scope":19517,"src":"51837:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17491,"nodeType":"Block","src":"52093:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":17483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52143:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":17484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17471,"src":"52176:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17473,"src":"52180:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17475,"src":"52184:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17487,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17477,"src":"52188:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52119:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52123:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52119:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52119:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52103:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52103:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17490,"nodeType":"ExpressionStatement","src":"52103:89:28"}]},"id":17492,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52027:3:28","nodeType":"FunctionDefinition","parameters":{"id":17478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17471,"mutability":"mutable","name":"p0","nameLocation":"52036:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52031:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17470,"name":"bool","nodeType":"ElementaryTypeName","src":"52031:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17473,"mutability":"mutable","name":"p1","nameLocation":"52045:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52040:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17472,"name":"bool","nodeType":"ElementaryTypeName","src":"52040:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17475,"mutability":"mutable","name":"p2","nameLocation":"52063:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52049:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17474,"name":"string","nodeType":"ElementaryTypeName","src":"52049:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17477,"mutability":"mutable","name":"p3","nameLocation":"52075:2:28","nodeType":"VariableDeclaration","scope":17492,"src":"52067:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17476,"name":"address","nodeType":"ElementaryTypeName","src":"52067:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52030:48:28"},"returnParameters":{"id":17479,"nodeType":"ParameterList","parameters":[],"src":"52093:0:28"},"scope":19517,"src":"52018:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17514,"nodeType":"Block","src":"52271:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":17506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52321:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":17507,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17494,"src":"52352:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17508,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17496,"src":"52356:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17509,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17498,"src":"52360:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17510,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17500,"src":"52364:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52297:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52301:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52297:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52297:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17503,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52281:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52281:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17513,"nodeType":"ExpressionStatement","src":"52281:87:28"}]},"id":17515,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52214:3:28","nodeType":"FunctionDefinition","parameters":{"id":17501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17494,"mutability":"mutable","name":"p0","nameLocation":"52223:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52218:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17493,"name":"bool","nodeType":"ElementaryTypeName","src":"52218:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17496,"mutability":"mutable","name":"p1","nameLocation":"52232:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52227:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17495,"name":"bool","nodeType":"ElementaryTypeName","src":"52227:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17498,"mutability":"mutable","name":"p2","nameLocation":"52241:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52236:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17497,"name":"bool","nodeType":"ElementaryTypeName","src":"52236:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17500,"mutability":"mutable","name":"p3","nameLocation":"52253:2:28","nodeType":"VariableDeclaration","scope":17515,"src":"52245:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17499,"name":"uint256","nodeType":"ElementaryTypeName","src":"52245:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52217:39:28"},"returnParameters":{"id":17502,"nodeType":"ParameterList","parameters":[],"src":"52271:0:28"},"scope":19517,"src":"52205:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17537,"nodeType":"Block","src":"52453:103:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":17529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52503:28:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":17530,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17517,"src":"52533:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17531,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17519,"src":"52537:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17532,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17521,"src":"52541:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17533,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"52545:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52479:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52483:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52479:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52479:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17526,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52463:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52463:86:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17536,"nodeType":"ExpressionStatement","src":"52463:86:28"}]},"id":17538,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52390:3:28","nodeType":"FunctionDefinition","parameters":{"id":17524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17517,"mutability":"mutable","name":"p0","nameLocation":"52399:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52394:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17516,"name":"bool","nodeType":"ElementaryTypeName","src":"52394:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17519,"mutability":"mutable","name":"p1","nameLocation":"52408:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52403:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17518,"name":"bool","nodeType":"ElementaryTypeName","src":"52403:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17521,"mutability":"mutable","name":"p2","nameLocation":"52417:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52412:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17520,"name":"bool","nodeType":"ElementaryTypeName","src":"52412:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17523,"mutability":"mutable","name":"p3","nameLocation":"52435:2:28","nodeType":"VariableDeclaration","scope":17538,"src":"52421:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17522,"name":"string","nodeType":"ElementaryTypeName","src":"52421:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52393:45:28"},"returnParameters":{"id":17525,"nodeType":"ParameterList","parameters":[],"src":"52453:0:28"},"scope":19517,"src":"52381:175:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17560,"nodeType":"Block","src":"52625:101:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":17552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52675:26:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":17553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17540,"src":"52703:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17554,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17542,"src":"52707:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17555,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17544,"src":"52711:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17556,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17546,"src":"52715:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52651:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52655:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52651:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52651:67:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52635:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52635:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17559,"nodeType":"ExpressionStatement","src":"52635:84:28"}]},"id":17561,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52571:3:28","nodeType":"FunctionDefinition","parameters":{"id":17547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17540,"mutability":"mutable","name":"p0","nameLocation":"52580:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52575:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17539,"name":"bool","nodeType":"ElementaryTypeName","src":"52575:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17542,"mutability":"mutable","name":"p1","nameLocation":"52589:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52584:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17541,"name":"bool","nodeType":"ElementaryTypeName","src":"52584:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17544,"mutability":"mutable","name":"p2","nameLocation":"52598:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52593:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17543,"name":"bool","nodeType":"ElementaryTypeName","src":"52593:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17546,"mutability":"mutable","name":"p3","nameLocation":"52607:2:28","nodeType":"VariableDeclaration","scope":17561,"src":"52602:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17545,"name":"bool","nodeType":"ElementaryTypeName","src":"52602:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52574:36:28"},"returnParameters":{"id":17548,"nodeType":"ParameterList","parameters":[],"src":"52625:0:28"},"scope":19517,"src":"52562:164:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17583,"nodeType":"Block","src":"52798:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":17575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52848:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":17576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17563,"src":"52879:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17565,"src":"52883:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17567,"src":"52887:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17579,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17569,"src":"52891:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52824:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52828:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52824:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52824:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52808:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52808:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17582,"nodeType":"ExpressionStatement","src":"52808:87:28"}]},"id":17584,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52741:3:28","nodeType":"FunctionDefinition","parameters":{"id":17570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17563,"mutability":"mutable","name":"p0","nameLocation":"52750:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52745:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17562,"name":"bool","nodeType":"ElementaryTypeName","src":"52745:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17565,"mutability":"mutable","name":"p1","nameLocation":"52759:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52754:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17564,"name":"bool","nodeType":"ElementaryTypeName","src":"52754:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17567,"mutability":"mutable","name":"p2","nameLocation":"52768:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52763:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17566,"name":"bool","nodeType":"ElementaryTypeName","src":"52763:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17569,"mutability":"mutable","name":"p3","nameLocation":"52780:2:28","nodeType":"VariableDeclaration","scope":17584,"src":"52772:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17568,"name":"address","nodeType":"ElementaryTypeName","src":"52772:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52744:39:28"},"returnParameters":{"id":17571,"nodeType":"ParameterList","parameters":[],"src":"52798:0:28"},"scope":19517,"src":"52732:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17606,"nodeType":"Block","src":"52977:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":17598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53027:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":17599,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17586,"src":"53061:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17600,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17588,"src":"53065:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17601,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17590,"src":"53069:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17602,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17592,"src":"53073:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53003:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53007:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53003:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53003:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17595,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"52987:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52987:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17605,"nodeType":"ExpressionStatement","src":"52987:90:28"}]},"id":17607,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52917:3:28","nodeType":"FunctionDefinition","parameters":{"id":17593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17586,"mutability":"mutable","name":"p0","nameLocation":"52926:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52921:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17585,"name":"bool","nodeType":"ElementaryTypeName","src":"52921:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17588,"mutability":"mutable","name":"p1","nameLocation":"52935:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52930:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17587,"name":"bool","nodeType":"ElementaryTypeName","src":"52930:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17590,"mutability":"mutable","name":"p2","nameLocation":"52947:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52939:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17589,"name":"address","nodeType":"ElementaryTypeName","src":"52939:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17592,"mutability":"mutable","name":"p3","nameLocation":"52959:2:28","nodeType":"VariableDeclaration","scope":17607,"src":"52951:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17591,"name":"uint256","nodeType":"ElementaryTypeName","src":"52951:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52920:42:28"},"returnParameters":{"id":17594,"nodeType":"ParameterList","parameters":[],"src":"52977:0:28"},"scope":19517,"src":"52908:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17629,"nodeType":"Block","src":"53165:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":17621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53215:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":17622,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17609,"src":"53248:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17623,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17611,"src":"53252:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17624,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"53256:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17625,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17615,"src":"53260:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53191:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53195:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53191:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53191:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17618,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53175:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53175:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17628,"nodeType":"ExpressionStatement","src":"53175:89:28"}]},"id":17630,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53099:3:28","nodeType":"FunctionDefinition","parameters":{"id":17616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17609,"mutability":"mutable","name":"p0","nameLocation":"53108:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53103:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17608,"name":"bool","nodeType":"ElementaryTypeName","src":"53103:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17611,"mutability":"mutable","name":"p1","nameLocation":"53117:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53112:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17610,"name":"bool","nodeType":"ElementaryTypeName","src":"53112:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17613,"mutability":"mutable","name":"p2","nameLocation":"53129:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53121:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17612,"name":"address","nodeType":"ElementaryTypeName","src":"53121:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17615,"mutability":"mutable","name":"p3","nameLocation":"53147:2:28","nodeType":"VariableDeclaration","scope":17630,"src":"53133:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17614,"name":"string","nodeType":"ElementaryTypeName","src":"53133:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53102:48:28"},"returnParameters":{"id":17617,"nodeType":"ParameterList","parameters":[],"src":"53165:0:28"},"scope":19517,"src":"53090:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17652,"nodeType":"Block","src":"53343:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":17644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53393:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":17645,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"53424:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17646,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"53428:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17647,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17636,"src":"53432:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17648,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17638,"src":"53436:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17642,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53369:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53373:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53369:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53369:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17641,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53353:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53353:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17651,"nodeType":"ExpressionStatement","src":"53353:87:28"}]},"id":17653,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53286:3:28","nodeType":"FunctionDefinition","parameters":{"id":17639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17632,"mutability":"mutable","name":"p0","nameLocation":"53295:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53290:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17631,"name":"bool","nodeType":"ElementaryTypeName","src":"53290:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17634,"mutability":"mutable","name":"p1","nameLocation":"53304:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53299:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17633,"name":"bool","nodeType":"ElementaryTypeName","src":"53299:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17636,"mutability":"mutable","name":"p2","nameLocation":"53316:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53308:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17635,"name":"address","nodeType":"ElementaryTypeName","src":"53308:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17638,"mutability":"mutable","name":"p3","nameLocation":"53325:2:28","nodeType":"VariableDeclaration","scope":17653,"src":"53320:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17637,"name":"bool","nodeType":"ElementaryTypeName","src":"53320:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53289:39:28"},"returnParameters":{"id":17640,"nodeType":"ParameterList","parameters":[],"src":"53343:0:28"},"scope":19517,"src":"53277:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17675,"nodeType":"Block","src":"53522:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":17667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53572:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":17668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17655,"src":"53606:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17657,"src":"53610:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17670,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17659,"src":"53614:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17671,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17661,"src":"53618:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53548:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53552:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53548:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53548:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53532:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53532:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17674,"nodeType":"ExpressionStatement","src":"53532:90:28"}]},"id":17676,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53462:3:28","nodeType":"FunctionDefinition","parameters":{"id":17662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17655,"mutability":"mutable","name":"p0","nameLocation":"53471:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53466:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17654,"name":"bool","nodeType":"ElementaryTypeName","src":"53466:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17657,"mutability":"mutable","name":"p1","nameLocation":"53480:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53475:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17656,"name":"bool","nodeType":"ElementaryTypeName","src":"53475:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17659,"mutability":"mutable","name":"p2","nameLocation":"53492:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53484:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17658,"name":"address","nodeType":"ElementaryTypeName","src":"53484:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17661,"mutability":"mutable","name":"p3","nameLocation":"53504:2:28","nodeType":"VariableDeclaration","scope":17676,"src":"53496:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17660,"name":"address","nodeType":"ElementaryTypeName","src":"53496:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53465:42:28"},"returnParameters":{"id":17663,"nodeType":"ParameterList","parameters":[],"src":"53522:0:28"},"scope":19517,"src":"53453:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17698,"nodeType":"Block","src":"53707:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":17690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53757:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":17691,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"53794:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17692,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"53798:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17693,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17682,"src":"53802:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17694,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17684,"src":"53806:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53733:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53737:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53733:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53733:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17687,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53717:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53717:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17697,"nodeType":"ExpressionStatement","src":"53717:93:28"}]},"id":17699,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53644:3:28","nodeType":"FunctionDefinition","parameters":{"id":17685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17678,"mutability":"mutable","name":"p0","nameLocation":"53653:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53648:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17677,"name":"bool","nodeType":"ElementaryTypeName","src":"53648:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17680,"mutability":"mutable","name":"p1","nameLocation":"53665:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53657:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17679,"name":"address","nodeType":"ElementaryTypeName","src":"53657:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17682,"mutability":"mutable","name":"p2","nameLocation":"53677:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53669:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17681,"name":"uint256","nodeType":"ElementaryTypeName","src":"53669:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17684,"mutability":"mutable","name":"p3","nameLocation":"53689:2:28","nodeType":"VariableDeclaration","scope":17699,"src":"53681:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17683,"name":"uint256","nodeType":"ElementaryTypeName","src":"53681:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53647:45:28"},"returnParameters":{"id":17686,"nodeType":"ParameterList","parameters":[],"src":"53707:0:28"},"scope":19517,"src":"53635:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17721,"nodeType":"Block","src":"53901:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":17713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53951:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":17714,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17701,"src":"53987:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17715,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"53991:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17716,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17705,"src":"53995:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17717,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17707,"src":"53999:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53927:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53931:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53927:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53927:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17710,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"53911:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53911:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17720,"nodeType":"ExpressionStatement","src":"53911:92:28"}]},"id":17722,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53832:3:28","nodeType":"FunctionDefinition","parameters":{"id":17708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17701,"mutability":"mutable","name":"p0","nameLocation":"53841:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53836:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17700,"name":"bool","nodeType":"ElementaryTypeName","src":"53836:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17703,"mutability":"mutable","name":"p1","nameLocation":"53853:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53845:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17702,"name":"address","nodeType":"ElementaryTypeName","src":"53845:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17705,"mutability":"mutable","name":"p2","nameLocation":"53865:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53857:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17704,"name":"uint256","nodeType":"ElementaryTypeName","src":"53857:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17707,"mutability":"mutable","name":"p3","nameLocation":"53883:2:28","nodeType":"VariableDeclaration","scope":17722,"src":"53869:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17706,"name":"string","nodeType":"ElementaryTypeName","src":"53869:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53835:51:28"},"returnParameters":{"id":17709,"nodeType":"ParameterList","parameters":[],"src":"53901:0:28"},"scope":19517,"src":"53823:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17744,"nodeType":"Block","src":"54085:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":17736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54135:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":17737,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17724,"src":"54169:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17738,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17726,"src":"54173:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17739,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17728,"src":"54177:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17740,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"54181:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17734,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54111:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54115:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54111:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54111:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54095:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54095:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17743,"nodeType":"ExpressionStatement","src":"54095:90:28"}]},"id":17745,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54025:3:28","nodeType":"FunctionDefinition","parameters":{"id":17731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17724,"mutability":"mutable","name":"p0","nameLocation":"54034:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54029:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17723,"name":"bool","nodeType":"ElementaryTypeName","src":"54029:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17726,"mutability":"mutable","name":"p1","nameLocation":"54046:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54038:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17725,"name":"address","nodeType":"ElementaryTypeName","src":"54038:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17728,"mutability":"mutable","name":"p2","nameLocation":"54058:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54050:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17727,"name":"uint256","nodeType":"ElementaryTypeName","src":"54050:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17730,"mutability":"mutable","name":"p3","nameLocation":"54067:2:28","nodeType":"VariableDeclaration","scope":17745,"src":"54062:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17729,"name":"bool","nodeType":"ElementaryTypeName","src":"54062:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54028:42:28"},"returnParameters":{"id":17732,"nodeType":"ParameterList","parameters":[],"src":"54085:0:28"},"scope":19517,"src":"54016:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17767,"nodeType":"Block","src":"54270:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":17759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54320:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":17760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17747,"src":"54357:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17761,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17749,"src":"54361:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17762,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"54365:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17763,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17753,"src":"54369:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54296:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54300:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54296:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54296:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54280:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54280:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17766,"nodeType":"ExpressionStatement","src":"54280:93:28"}]},"id":17768,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54207:3:28","nodeType":"FunctionDefinition","parameters":{"id":17754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17747,"mutability":"mutable","name":"p0","nameLocation":"54216:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54211:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17746,"name":"bool","nodeType":"ElementaryTypeName","src":"54211:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17749,"mutability":"mutable","name":"p1","nameLocation":"54228:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54220:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17748,"name":"address","nodeType":"ElementaryTypeName","src":"54220:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17751,"mutability":"mutable","name":"p2","nameLocation":"54240:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54232:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17750,"name":"uint256","nodeType":"ElementaryTypeName","src":"54232:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17753,"mutability":"mutable","name":"p3","nameLocation":"54252:2:28","nodeType":"VariableDeclaration","scope":17768,"src":"54244:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17752,"name":"address","nodeType":"ElementaryTypeName","src":"54244:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54210:45:28"},"returnParameters":{"id":17755,"nodeType":"ParameterList","parameters":[],"src":"54270:0:28"},"scope":19517,"src":"54198:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17790,"nodeType":"Block","src":"54464:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":17782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54514:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":17783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"54550:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17784,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17772,"src":"54554:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17785,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"54558:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17786,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"54562:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54490:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54494:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54490:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54490:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54474:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54474:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17789,"nodeType":"ExpressionStatement","src":"54474:92:28"}]},"id":17791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54395:3:28","nodeType":"FunctionDefinition","parameters":{"id":17777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17770,"mutability":"mutable","name":"p0","nameLocation":"54404:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54399:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17769,"name":"bool","nodeType":"ElementaryTypeName","src":"54399:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17772,"mutability":"mutable","name":"p1","nameLocation":"54416:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54408:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17771,"name":"address","nodeType":"ElementaryTypeName","src":"54408:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17774,"mutability":"mutable","name":"p2","nameLocation":"54434:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54420:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17773,"name":"string","nodeType":"ElementaryTypeName","src":"54420:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17776,"mutability":"mutable","name":"p3","nameLocation":"54446:2:28","nodeType":"VariableDeclaration","scope":17791,"src":"54438:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17775,"name":"uint256","nodeType":"ElementaryTypeName","src":"54438:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54398:51:28"},"returnParameters":{"id":17778,"nodeType":"ParameterList","parameters":[],"src":"54464:0:28"},"scope":19517,"src":"54386:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17813,"nodeType":"Block","src":"54663:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":17805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54713:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":17806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17793,"src":"54748:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17795,"src":"54752:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17797,"src":"54756:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17809,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"54760:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54689:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54693:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54689:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54689:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54673:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54673:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17812,"nodeType":"ExpressionStatement","src":"54673:91:28"}]},"id":17814,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54588:3:28","nodeType":"FunctionDefinition","parameters":{"id":17800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17793,"mutability":"mutable","name":"p0","nameLocation":"54597:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54592:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17792,"name":"bool","nodeType":"ElementaryTypeName","src":"54592:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17795,"mutability":"mutable","name":"p1","nameLocation":"54609:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54601:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17794,"name":"address","nodeType":"ElementaryTypeName","src":"54601:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17797,"mutability":"mutable","name":"p2","nameLocation":"54627:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54613:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17796,"name":"string","nodeType":"ElementaryTypeName","src":"54613:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17799,"mutability":"mutable","name":"p3","nameLocation":"54645:2:28","nodeType":"VariableDeclaration","scope":17814,"src":"54631:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17798,"name":"string","nodeType":"ElementaryTypeName","src":"54631:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54591:57:28"},"returnParameters":{"id":17801,"nodeType":"ParameterList","parameters":[],"src":"54663:0:28"},"scope":19517,"src":"54579:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17836,"nodeType":"Block","src":"54852:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":17828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54902:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":17829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17816,"src":"54935:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17830,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"54939:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17831,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17820,"src":"54943:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17832,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17822,"src":"54947:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54878:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54882:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54878:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54878:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"54862:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54862:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17835,"nodeType":"ExpressionStatement","src":"54862:89:28"}]},"id":17837,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54786:3:28","nodeType":"FunctionDefinition","parameters":{"id":17823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17816,"mutability":"mutable","name":"p0","nameLocation":"54795:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54790:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17815,"name":"bool","nodeType":"ElementaryTypeName","src":"54790:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17818,"mutability":"mutable","name":"p1","nameLocation":"54807:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54799:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17817,"name":"address","nodeType":"ElementaryTypeName","src":"54799:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17820,"mutability":"mutable","name":"p2","nameLocation":"54825:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54811:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17819,"name":"string","nodeType":"ElementaryTypeName","src":"54811:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17822,"mutability":"mutable","name":"p3","nameLocation":"54834:2:28","nodeType":"VariableDeclaration","scope":17837,"src":"54829:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17821,"name":"bool","nodeType":"ElementaryTypeName","src":"54829:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54789:48:28"},"returnParameters":{"id":17824,"nodeType":"ParameterList","parameters":[],"src":"54852:0:28"},"scope":19517,"src":"54777:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17859,"nodeType":"Block","src":"55042:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":17851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55092:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":17852,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17839,"src":"55128:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17853,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17841,"src":"55132:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17854,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17843,"src":"55136:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17855,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17845,"src":"55140:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55068:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55072:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55068:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55068:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17848,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55052:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55052:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17858,"nodeType":"ExpressionStatement","src":"55052:92:28"}]},"id":17860,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54973:3:28","nodeType":"FunctionDefinition","parameters":{"id":17846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17839,"mutability":"mutable","name":"p0","nameLocation":"54982:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"54977:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17838,"name":"bool","nodeType":"ElementaryTypeName","src":"54977:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17841,"mutability":"mutable","name":"p1","nameLocation":"54994:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"54986:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17840,"name":"address","nodeType":"ElementaryTypeName","src":"54986:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17843,"mutability":"mutable","name":"p2","nameLocation":"55012:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"54998:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17842,"name":"string","nodeType":"ElementaryTypeName","src":"54998:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17845,"mutability":"mutable","name":"p3","nameLocation":"55024:2:28","nodeType":"VariableDeclaration","scope":17860,"src":"55016:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17844,"name":"address","nodeType":"ElementaryTypeName","src":"55016:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54976:51:28"},"returnParameters":{"id":17847,"nodeType":"ParameterList","parameters":[],"src":"55042:0:28"},"scope":19517,"src":"54964:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17882,"nodeType":"Block","src":"55226:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":17874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55276:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":17875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17862,"src":"55310:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17876,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17864,"src":"55314:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17877,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17866,"src":"55318:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17878,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17868,"src":"55322:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55252:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55256:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55252:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55252:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55236:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55236:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17881,"nodeType":"ExpressionStatement","src":"55236:90:28"}]},"id":17883,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55166:3:28","nodeType":"FunctionDefinition","parameters":{"id":17869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17862,"mutability":"mutable","name":"p0","nameLocation":"55175:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55170:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17861,"name":"bool","nodeType":"ElementaryTypeName","src":"55170:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17864,"mutability":"mutable","name":"p1","nameLocation":"55187:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55179:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17863,"name":"address","nodeType":"ElementaryTypeName","src":"55179:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17866,"mutability":"mutable","name":"p2","nameLocation":"55196:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55191:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17865,"name":"bool","nodeType":"ElementaryTypeName","src":"55191:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17868,"mutability":"mutable","name":"p3","nameLocation":"55208:2:28","nodeType":"VariableDeclaration","scope":17883,"src":"55200:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17867,"name":"uint256","nodeType":"ElementaryTypeName","src":"55200:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55169:42:28"},"returnParameters":{"id":17870,"nodeType":"ParameterList","parameters":[],"src":"55226:0:28"},"scope":19517,"src":"55157:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17905,"nodeType":"Block","src":"55414:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":17897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55464:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":17898,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17885,"src":"55497:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17899,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17887,"src":"55501:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17900,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17889,"src":"55505:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17901,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17891,"src":"55509:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17895,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55440:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55444:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55440:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55440:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17894,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55424:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55424:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17904,"nodeType":"ExpressionStatement","src":"55424:89:28"}]},"id":17906,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55348:3:28","nodeType":"FunctionDefinition","parameters":{"id":17892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17885,"mutability":"mutable","name":"p0","nameLocation":"55357:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55352:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17884,"name":"bool","nodeType":"ElementaryTypeName","src":"55352:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17887,"mutability":"mutable","name":"p1","nameLocation":"55369:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55361:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17886,"name":"address","nodeType":"ElementaryTypeName","src":"55361:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17889,"mutability":"mutable","name":"p2","nameLocation":"55378:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55373:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17888,"name":"bool","nodeType":"ElementaryTypeName","src":"55373:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17891,"mutability":"mutable","name":"p3","nameLocation":"55396:2:28","nodeType":"VariableDeclaration","scope":17906,"src":"55382:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17890,"name":"string","nodeType":"ElementaryTypeName","src":"55382:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55351:48:28"},"returnParameters":{"id":17893,"nodeType":"ParameterList","parameters":[],"src":"55414:0:28"},"scope":19517,"src":"55339:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17928,"nodeType":"Block","src":"55592:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":17920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55642:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":17921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17908,"src":"55673:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17910,"src":"55677:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17912,"src":"55681:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17924,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17914,"src":"55685:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55618:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55622:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55618:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55618:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55602:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55602:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17927,"nodeType":"ExpressionStatement","src":"55602:87:28"}]},"id":17929,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55535:3:28","nodeType":"FunctionDefinition","parameters":{"id":17915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17908,"mutability":"mutable","name":"p0","nameLocation":"55544:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55539:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17907,"name":"bool","nodeType":"ElementaryTypeName","src":"55539:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17910,"mutability":"mutable","name":"p1","nameLocation":"55556:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55548:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17909,"name":"address","nodeType":"ElementaryTypeName","src":"55548:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17912,"mutability":"mutable","name":"p2","nameLocation":"55565:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55560:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17911,"name":"bool","nodeType":"ElementaryTypeName","src":"55560:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17914,"mutability":"mutable","name":"p3","nameLocation":"55574:2:28","nodeType":"VariableDeclaration","scope":17929,"src":"55569:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17913,"name":"bool","nodeType":"ElementaryTypeName","src":"55569:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55538:39:28"},"returnParameters":{"id":17916,"nodeType":"ParameterList","parameters":[],"src":"55592:0:28"},"scope":19517,"src":"55526:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17951,"nodeType":"Block","src":"55771:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":17943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55821:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":17944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17931,"src":"55855:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17933,"src":"55859:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17935,"src":"55863:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17947,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17937,"src":"55867:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55797:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55801:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55797:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55797:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55781:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55781:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17950,"nodeType":"ExpressionStatement","src":"55781:90:28"}]},"id":17952,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55711:3:28","nodeType":"FunctionDefinition","parameters":{"id":17938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17931,"mutability":"mutable","name":"p0","nameLocation":"55720:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55715:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17930,"name":"bool","nodeType":"ElementaryTypeName","src":"55715:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17933,"mutability":"mutable","name":"p1","nameLocation":"55732:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55724:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17932,"name":"address","nodeType":"ElementaryTypeName","src":"55724:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17935,"mutability":"mutable","name":"p2","nameLocation":"55741:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55736:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17934,"name":"bool","nodeType":"ElementaryTypeName","src":"55736:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17937,"mutability":"mutable","name":"p3","nameLocation":"55753:2:28","nodeType":"VariableDeclaration","scope":17952,"src":"55745:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17936,"name":"address","nodeType":"ElementaryTypeName","src":"55745:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55714:42:28"},"returnParameters":{"id":17939,"nodeType":"ParameterList","parameters":[],"src":"55771:0:28"},"scope":19517,"src":"55702:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17974,"nodeType":"Block","src":"55956:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":17966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56006:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":17967,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17954,"src":"56043:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17968,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17956,"src":"56047:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17969,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17958,"src":"56051:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17970,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17960,"src":"56055:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55982:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55986:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55982:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55982:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"55966:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55966:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17973,"nodeType":"ExpressionStatement","src":"55966:93:28"}]},"id":17975,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55893:3:28","nodeType":"FunctionDefinition","parameters":{"id":17961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17954,"mutability":"mutable","name":"p0","nameLocation":"55902:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55897:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17953,"name":"bool","nodeType":"ElementaryTypeName","src":"55897:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17956,"mutability":"mutable","name":"p1","nameLocation":"55914:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55906:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17955,"name":"address","nodeType":"ElementaryTypeName","src":"55906:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17958,"mutability":"mutable","name":"p2","nameLocation":"55926:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55918:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17957,"name":"address","nodeType":"ElementaryTypeName","src":"55918:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17960,"mutability":"mutable","name":"p3","nameLocation":"55938:2:28","nodeType":"VariableDeclaration","scope":17975,"src":"55930:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17959,"name":"uint256","nodeType":"ElementaryTypeName","src":"55930:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55896:45:28"},"returnParameters":{"id":17962,"nodeType":"ParameterList","parameters":[],"src":"55956:0:28"},"scope":19517,"src":"55884:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17997,"nodeType":"Block","src":"56150:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":17989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56200:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":17990,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17977,"src":"56236:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17991,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17979,"src":"56240:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17992,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17981,"src":"56244:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17993,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"56248:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56176:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56180:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56176:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56176:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17986,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56160:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":17995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17996,"nodeType":"ExpressionStatement","src":"56160:92:28"}]},"id":17998,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56081:3:28","nodeType":"FunctionDefinition","parameters":{"id":17984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17977,"mutability":"mutable","name":"p0","nameLocation":"56090:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56085:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17976,"name":"bool","nodeType":"ElementaryTypeName","src":"56085:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17979,"mutability":"mutable","name":"p1","nameLocation":"56102:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56094:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17978,"name":"address","nodeType":"ElementaryTypeName","src":"56094:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17981,"mutability":"mutable","name":"p2","nameLocation":"56114:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56106:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17980,"name":"address","nodeType":"ElementaryTypeName","src":"56106:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17983,"mutability":"mutable","name":"p3","nameLocation":"56132:2:28","nodeType":"VariableDeclaration","scope":17998,"src":"56118:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17982,"name":"string","nodeType":"ElementaryTypeName","src":"56118:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56084:51:28"},"returnParameters":{"id":17985,"nodeType":"ParameterList","parameters":[],"src":"56150:0:28"},"scope":19517,"src":"56072:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18020,"nodeType":"Block","src":"56334:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":18012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56384:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":18013,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18000,"src":"56418:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18014,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18002,"src":"56422:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18015,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18004,"src":"56426:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18016,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18006,"src":"56430:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56360:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56364:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56360:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56360:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56344:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56344:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18019,"nodeType":"ExpressionStatement","src":"56344:90:28"}]},"id":18021,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56274:3:28","nodeType":"FunctionDefinition","parameters":{"id":18007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18000,"mutability":"mutable","name":"p0","nameLocation":"56283:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56278:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17999,"name":"bool","nodeType":"ElementaryTypeName","src":"56278:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18002,"mutability":"mutable","name":"p1","nameLocation":"56295:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56287:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18001,"name":"address","nodeType":"ElementaryTypeName","src":"56287:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18004,"mutability":"mutable","name":"p2","nameLocation":"56307:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56299:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18003,"name":"address","nodeType":"ElementaryTypeName","src":"56299:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18006,"mutability":"mutable","name":"p3","nameLocation":"56316:2:28","nodeType":"VariableDeclaration","scope":18021,"src":"56311:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18005,"name":"bool","nodeType":"ElementaryTypeName","src":"56311:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56277:42:28"},"returnParameters":{"id":18008,"nodeType":"ParameterList","parameters":[],"src":"56334:0:28"},"scope":19517,"src":"56265:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18043,"nodeType":"Block","src":"56519:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":18035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56569:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":18036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18023,"src":"56606:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18025,"src":"56610:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18038,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18027,"src":"56614:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18039,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18029,"src":"56618:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56545:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56549:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56545:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56545:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56529:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56529:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18042,"nodeType":"ExpressionStatement","src":"56529:93:28"}]},"id":18044,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56456:3:28","nodeType":"FunctionDefinition","parameters":{"id":18030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18023,"mutability":"mutable","name":"p0","nameLocation":"56465:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56460:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18022,"name":"bool","nodeType":"ElementaryTypeName","src":"56460:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18025,"mutability":"mutable","name":"p1","nameLocation":"56477:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56469:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18024,"name":"address","nodeType":"ElementaryTypeName","src":"56469:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18027,"mutability":"mutable","name":"p2","nameLocation":"56489:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56481:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18026,"name":"address","nodeType":"ElementaryTypeName","src":"56481:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18029,"mutability":"mutable","name":"p3","nameLocation":"56501:2:28","nodeType":"VariableDeclaration","scope":18044,"src":"56493:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18028,"name":"address","nodeType":"ElementaryTypeName","src":"56493:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56459:45:28"},"returnParameters":{"id":18031,"nodeType":"ParameterList","parameters":[],"src":"56519:0:28"},"scope":19517,"src":"56447:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18066,"nodeType":"Block","src":"56710:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":18058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56760:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":18059,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18046,"src":"56800:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18060,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18048,"src":"56804:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18061,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18050,"src":"56808:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18062,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18052,"src":"56812:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56736:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56740:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56736:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56736:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56720:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56720:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18065,"nodeType":"ExpressionStatement","src":"56720:96:28"}]},"id":18067,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56644:3:28","nodeType":"FunctionDefinition","parameters":{"id":18053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18046,"mutability":"mutable","name":"p0","nameLocation":"56656:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56648:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18045,"name":"address","nodeType":"ElementaryTypeName","src":"56648:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18048,"mutability":"mutable","name":"p1","nameLocation":"56668:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56660:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18047,"name":"uint256","nodeType":"ElementaryTypeName","src":"56660:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18050,"mutability":"mutable","name":"p2","nameLocation":"56680:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56672:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18049,"name":"uint256","nodeType":"ElementaryTypeName","src":"56672:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18052,"mutability":"mutable","name":"p3","nameLocation":"56692:2:28","nodeType":"VariableDeclaration","scope":18067,"src":"56684:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18051,"name":"uint256","nodeType":"ElementaryTypeName","src":"56684:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56647:48:28"},"returnParameters":{"id":18054,"nodeType":"ParameterList","parameters":[],"src":"56710:0:28"},"scope":19517,"src":"56635:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18089,"nodeType":"Block","src":"56910:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":18081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56960:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":18082,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18069,"src":"56999:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18083,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18071,"src":"57003:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18084,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"57007:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18085,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18075,"src":"57011:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56936:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56940:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56936:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56936:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18078,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"56920:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56920:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18088,"nodeType":"ExpressionStatement","src":"56920:95:28"}]},"id":18090,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56838:3:28","nodeType":"FunctionDefinition","parameters":{"id":18076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18069,"mutability":"mutable","name":"p0","nameLocation":"56850:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56842:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18068,"name":"address","nodeType":"ElementaryTypeName","src":"56842:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18071,"mutability":"mutable","name":"p1","nameLocation":"56862:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56854:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18070,"name":"uint256","nodeType":"ElementaryTypeName","src":"56854:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18073,"mutability":"mutable","name":"p2","nameLocation":"56874:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56866:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18072,"name":"uint256","nodeType":"ElementaryTypeName","src":"56866:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18075,"mutability":"mutable","name":"p3","nameLocation":"56892:2:28","nodeType":"VariableDeclaration","scope":18090,"src":"56878:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18074,"name":"string","nodeType":"ElementaryTypeName","src":"56878:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56841:54:28"},"returnParameters":{"id":18077,"nodeType":"ParameterList","parameters":[],"src":"56910:0:28"},"scope":19517,"src":"56829:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18112,"nodeType":"Block","src":"57100:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":18104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57150:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":18105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18092,"src":"57187:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18106,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"57191:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18107,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"57195:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18108,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18098,"src":"57199:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57126:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57130:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57126:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57126:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57110:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57110:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18111,"nodeType":"ExpressionStatement","src":"57110:93:28"}]},"id":18113,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57037:3:28","nodeType":"FunctionDefinition","parameters":{"id":18099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18092,"mutability":"mutable","name":"p0","nameLocation":"57049:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57041:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18091,"name":"address","nodeType":"ElementaryTypeName","src":"57041:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18094,"mutability":"mutable","name":"p1","nameLocation":"57061:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57053:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18093,"name":"uint256","nodeType":"ElementaryTypeName","src":"57053:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18096,"mutability":"mutable","name":"p2","nameLocation":"57073:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57065:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18095,"name":"uint256","nodeType":"ElementaryTypeName","src":"57065:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18098,"mutability":"mutable","name":"p3","nameLocation":"57082:2:28","nodeType":"VariableDeclaration","scope":18113,"src":"57077:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18097,"name":"bool","nodeType":"ElementaryTypeName","src":"57077:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57040:45:28"},"returnParameters":{"id":18100,"nodeType":"ParameterList","parameters":[],"src":"57100:0:28"},"scope":19517,"src":"57028:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18135,"nodeType":"Block","src":"57291:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":18127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57341:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":18128,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18115,"src":"57381:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18129,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18117,"src":"57385:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18130,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18119,"src":"57389:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18131,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18121,"src":"57393:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57317:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57321:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57317:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57317:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18124,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57301:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57301:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18134,"nodeType":"ExpressionStatement","src":"57301:96:28"}]},"id":18136,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57225:3:28","nodeType":"FunctionDefinition","parameters":{"id":18122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18115,"mutability":"mutable","name":"p0","nameLocation":"57237:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57229:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18114,"name":"address","nodeType":"ElementaryTypeName","src":"57229:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18117,"mutability":"mutable","name":"p1","nameLocation":"57249:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57241:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18116,"name":"uint256","nodeType":"ElementaryTypeName","src":"57241:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18119,"mutability":"mutable","name":"p2","nameLocation":"57261:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57253:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18118,"name":"uint256","nodeType":"ElementaryTypeName","src":"57253:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18121,"mutability":"mutable","name":"p3","nameLocation":"57273:2:28","nodeType":"VariableDeclaration","scope":18136,"src":"57265:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18120,"name":"address","nodeType":"ElementaryTypeName","src":"57265:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57228:48:28"},"returnParameters":{"id":18123,"nodeType":"ParameterList","parameters":[],"src":"57291:0:28"},"scope":19517,"src":"57216:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18158,"nodeType":"Block","src":"57491:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":18150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57541:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":18151,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"57580:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18152,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18140,"src":"57584:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18153,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18142,"src":"57588:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18154,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18144,"src":"57592:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57517:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57521:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57517:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57517:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57501:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57501:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18157,"nodeType":"ExpressionStatement","src":"57501:95:28"}]},"id":18159,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57419:3:28","nodeType":"FunctionDefinition","parameters":{"id":18145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18138,"mutability":"mutable","name":"p0","nameLocation":"57431:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57423:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18137,"name":"address","nodeType":"ElementaryTypeName","src":"57423:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18140,"mutability":"mutable","name":"p1","nameLocation":"57443:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57435:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18139,"name":"uint256","nodeType":"ElementaryTypeName","src":"57435:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18142,"mutability":"mutable","name":"p2","nameLocation":"57461:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57447:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18141,"name":"string","nodeType":"ElementaryTypeName","src":"57447:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18144,"mutability":"mutable","name":"p3","nameLocation":"57473:2:28","nodeType":"VariableDeclaration","scope":18159,"src":"57465:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18143,"name":"uint256","nodeType":"ElementaryTypeName","src":"57465:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57422:54:28"},"returnParameters":{"id":18146,"nodeType":"ParameterList","parameters":[],"src":"57491:0:28"},"scope":19517,"src":"57410:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18181,"nodeType":"Block","src":"57696:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":18173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57746:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":18174,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18161,"src":"57784:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18175,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18163,"src":"57788:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18176,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18165,"src":"57792:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18177,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18167,"src":"57796:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57722:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57726:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57722:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57722:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18170,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57706:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57706:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18180,"nodeType":"ExpressionStatement","src":"57706:94:28"}]},"id":18182,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57618:3:28","nodeType":"FunctionDefinition","parameters":{"id":18168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18161,"mutability":"mutable","name":"p0","nameLocation":"57630:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57622:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18160,"name":"address","nodeType":"ElementaryTypeName","src":"57622:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18163,"mutability":"mutable","name":"p1","nameLocation":"57642:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57634:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18162,"name":"uint256","nodeType":"ElementaryTypeName","src":"57634:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18165,"mutability":"mutable","name":"p2","nameLocation":"57660:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57646:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18164,"name":"string","nodeType":"ElementaryTypeName","src":"57646:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18167,"mutability":"mutable","name":"p3","nameLocation":"57678:2:28","nodeType":"VariableDeclaration","scope":18182,"src":"57664:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18166,"name":"string","nodeType":"ElementaryTypeName","src":"57664:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57621:60:28"},"returnParameters":{"id":18169,"nodeType":"ParameterList","parameters":[],"src":"57696:0:28"},"scope":19517,"src":"57609:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18204,"nodeType":"Block","src":"57891:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":18196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57941:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":18197,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18184,"src":"57977:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18198,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18186,"src":"57981:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18199,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18188,"src":"57985:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18200,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18190,"src":"57989:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18194,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57917:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57921:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57917:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57917:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18193,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"57901:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57901:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18203,"nodeType":"ExpressionStatement","src":"57901:92:28"}]},"id":18205,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57822:3:28","nodeType":"FunctionDefinition","parameters":{"id":18191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18184,"mutability":"mutable","name":"p0","nameLocation":"57834:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57826:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18183,"name":"address","nodeType":"ElementaryTypeName","src":"57826:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18186,"mutability":"mutable","name":"p1","nameLocation":"57846:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57838:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18185,"name":"uint256","nodeType":"ElementaryTypeName","src":"57838:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18188,"mutability":"mutable","name":"p2","nameLocation":"57864:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57850:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18187,"name":"string","nodeType":"ElementaryTypeName","src":"57850:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18190,"mutability":"mutable","name":"p3","nameLocation":"57873:2:28","nodeType":"VariableDeclaration","scope":18205,"src":"57868:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18189,"name":"bool","nodeType":"ElementaryTypeName","src":"57868:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57825:51:28"},"returnParameters":{"id":18192,"nodeType":"ParameterList","parameters":[],"src":"57891:0:28"},"scope":19517,"src":"57813:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18227,"nodeType":"Block","src":"58087:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":18219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58137:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":18220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18207,"src":"58176:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18221,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18209,"src":"58180:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18222,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"58184:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18223,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18213,"src":"58188:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58113:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58117:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58113:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58113:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58097:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58097:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18226,"nodeType":"ExpressionStatement","src":"58097:95:28"}]},"id":18228,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58015:3:28","nodeType":"FunctionDefinition","parameters":{"id":18214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18207,"mutability":"mutable","name":"p0","nameLocation":"58027:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58019:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18206,"name":"address","nodeType":"ElementaryTypeName","src":"58019:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18209,"mutability":"mutable","name":"p1","nameLocation":"58039:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58031:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18208,"name":"uint256","nodeType":"ElementaryTypeName","src":"58031:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18211,"mutability":"mutable","name":"p2","nameLocation":"58057:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58043:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18210,"name":"string","nodeType":"ElementaryTypeName","src":"58043:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18213,"mutability":"mutable","name":"p3","nameLocation":"58069:2:28","nodeType":"VariableDeclaration","scope":18228,"src":"58061:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18212,"name":"address","nodeType":"ElementaryTypeName","src":"58061:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58018:54:28"},"returnParameters":{"id":18215,"nodeType":"ParameterList","parameters":[],"src":"58087:0:28"},"scope":19517,"src":"58006:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18250,"nodeType":"Block","src":"58277:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":18242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58327:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":18243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18230,"src":"58364:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18232,"src":"58368:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18234,"src":"58372:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18246,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"58376:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58303:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58307:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58303:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58303:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58287:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58287:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18249,"nodeType":"ExpressionStatement","src":"58287:93:28"}]},"id":18251,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58214:3:28","nodeType":"FunctionDefinition","parameters":{"id":18237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18230,"mutability":"mutable","name":"p0","nameLocation":"58226:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58218:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18229,"name":"address","nodeType":"ElementaryTypeName","src":"58218:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18232,"mutability":"mutable","name":"p1","nameLocation":"58238:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58230:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18231,"name":"uint256","nodeType":"ElementaryTypeName","src":"58230:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18234,"mutability":"mutable","name":"p2","nameLocation":"58247:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58242:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18233,"name":"bool","nodeType":"ElementaryTypeName","src":"58242:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18236,"mutability":"mutable","name":"p3","nameLocation":"58259:2:28","nodeType":"VariableDeclaration","scope":18251,"src":"58251:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18235,"name":"uint256","nodeType":"ElementaryTypeName","src":"58251:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58217:45:28"},"returnParameters":{"id":18238,"nodeType":"ParameterList","parameters":[],"src":"58277:0:28"},"scope":19517,"src":"58205:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18273,"nodeType":"Block","src":"58471:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":18265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58521:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":18266,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18253,"src":"58557:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18267,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"58561:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18268,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18257,"src":"58565:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18269,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18259,"src":"58569:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58497:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58501:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58497:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58497:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18262,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58481:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58481:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18272,"nodeType":"ExpressionStatement","src":"58481:92:28"}]},"id":18274,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58402:3:28","nodeType":"FunctionDefinition","parameters":{"id":18260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18253,"mutability":"mutable","name":"p0","nameLocation":"58414:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58406:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18252,"name":"address","nodeType":"ElementaryTypeName","src":"58406:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18255,"mutability":"mutable","name":"p1","nameLocation":"58426:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58418:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18254,"name":"uint256","nodeType":"ElementaryTypeName","src":"58418:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18257,"mutability":"mutable","name":"p2","nameLocation":"58435:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58430:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18256,"name":"bool","nodeType":"ElementaryTypeName","src":"58430:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18259,"mutability":"mutable","name":"p3","nameLocation":"58453:2:28","nodeType":"VariableDeclaration","scope":18274,"src":"58439:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18258,"name":"string","nodeType":"ElementaryTypeName","src":"58439:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58405:51:28"},"returnParameters":{"id":18261,"nodeType":"ParameterList","parameters":[],"src":"58471:0:28"},"scope":19517,"src":"58393:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18296,"nodeType":"Block","src":"58655:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":18288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58705:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":18289,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18276,"src":"58739:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18290,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18278,"src":"58743:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18291,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18280,"src":"58747:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18292,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18282,"src":"58751:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58681:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58685:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58681:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58681:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18285,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58665:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58665:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18295,"nodeType":"ExpressionStatement","src":"58665:90:28"}]},"id":18297,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58595:3:28","nodeType":"FunctionDefinition","parameters":{"id":18283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18276,"mutability":"mutable","name":"p0","nameLocation":"58607:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58599:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18275,"name":"address","nodeType":"ElementaryTypeName","src":"58599:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18278,"mutability":"mutable","name":"p1","nameLocation":"58619:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58611:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18277,"name":"uint256","nodeType":"ElementaryTypeName","src":"58611:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18280,"mutability":"mutable","name":"p2","nameLocation":"58628:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58623:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18279,"name":"bool","nodeType":"ElementaryTypeName","src":"58623:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18282,"mutability":"mutable","name":"p3","nameLocation":"58637:2:28","nodeType":"VariableDeclaration","scope":18297,"src":"58632:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18281,"name":"bool","nodeType":"ElementaryTypeName","src":"58632:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58598:42:28"},"returnParameters":{"id":18284,"nodeType":"ParameterList","parameters":[],"src":"58655:0:28"},"scope":19517,"src":"58586:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18319,"nodeType":"Block","src":"58840:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":18311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58890:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":18312,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18299,"src":"58927:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18313,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18301,"src":"58931:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18314,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18303,"src":"58935:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18315,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18305,"src":"58939:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18309,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58866:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58870:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58866:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58866:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18308,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"58850:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58850:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18318,"nodeType":"ExpressionStatement","src":"58850:93:28"}]},"id":18320,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58777:3:28","nodeType":"FunctionDefinition","parameters":{"id":18306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18299,"mutability":"mutable","name":"p0","nameLocation":"58789:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58781:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18298,"name":"address","nodeType":"ElementaryTypeName","src":"58781:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18301,"mutability":"mutable","name":"p1","nameLocation":"58801:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58793:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18300,"name":"uint256","nodeType":"ElementaryTypeName","src":"58793:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18303,"mutability":"mutable","name":"p2","nameLocation":"58810:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58805:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18302,"name":"bool","nodeType":"ElementaryTypeName","src":"58805:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18305,"mutability":"mutable","name":"p3","nameLocation":"58822:2:28","nodeType":"VariableDeclaration","scope":18320,"src":"58814:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18304,"name":"address","nodeType":"ElementaryTypeName","src":"58814:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58780:45:28"},"returnParameters":{"id":18307,"nodeType":"ParameterList","parameters":[],"src":"58840:0:28"},"scope":19517,"src":"58768:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18342,"nodeType":"Block","src":"59031:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":18334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59081:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":18335,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18322,"src":"59121:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18336,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"59125:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18337,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18326,"src":"59129:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18338,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18328,"src":"59133:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59057:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59061:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59057:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59057:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18331,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59041:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59041:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18341,"nodeType":"ExpressionStatement","src":"59041:96:28"}]},"id":18343,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58965:3:28","nodeType":"FunctionDefinition","parameters":{"id":18329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18322,"mutability":"mutable","name":"p0","nameLocation":"58977:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"58969:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18321,"name":"address","nodeType":"ElementaryTypeName","src":"58969:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18324,"mutability":"mutable","name":"p1","nameLocation":"58989:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"58981:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18323,"name":"uint256","nodeType":"ElementaryTypeName","src":"58981:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18326,"mutability":"mutable","name":"p2","nameLocation":"59001:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"58993:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18325,"name":"address","nodeType":"ElementaryTypeName","src":"58993:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18328,"mutability":"mutable","name":"p3","nameLocation":"59013:2:28","nodeType":"VariableDeclaration","scope":18343,"src":"59005:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18327,"name":"uint256","nodeType":"ElementaryTypeName","src":"59005:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58968:48:28"},"returnParameters":{"id":18330,"nodeType":"ParameterList","parameters":[],"src":"59031:0:28"},"scope":19517,"src":"58956:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18365,"nodeType":"Block","src":"59231:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":18357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59281:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":18358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18345,"src":"59320:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18359,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18347,"src":"59324:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18360,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"59328:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18361,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18351,"src":"59332:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59257:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59261:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59257:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59257:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59241:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59241:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18364,"nodeType":"ExpressionStatement","src":"59241:95:28"}]},"id":18366,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59159:3:28","nodeType":"FunctionDefinition","parameters":{"id":18352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18345,"mutability":"mutable","name":"p0","nameLocation":"59171:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59163:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18344,"name":"address","nodeType":"ElementaryTypeName","src":"59163:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18347,"mutability":"mutable","name":"p1","nameLocation":"59183:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59175:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18346,"name":"uint256","nodeType":"ElementaryTypeName","src":"59175:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18349,"mutability":"mutable","name":"p2","nameLocation":"59195:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59187:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18348,"name":"address","nodeType":"ElementaryTypeName","src":"59187:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18351,"mutability":"mutable","name":"p3","nameLocation":"59213:2:28","nodeType":"VariableDeclaration","scope":18366,"src":"59199:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18350,"name":"string","nodeType":"ElementaryTypeName","src":"59199:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59162:54:28"},"returnParameters":{"id":18353,"nodeType":"ParameterList","parameters":[],"src":"59231:0:28"},"scope":19517,"src":"59150:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18388,"nodeType":"Block","src":"59421:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":18380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59471:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":18381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18368,"src":"59508:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18370,"src":"59512:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18372,"src":"59516:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18384,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18374,"src":"59520:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59447:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59451:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59447:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59447:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59431:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59431:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18387,"nodeType":"ExpressionStatement","src":"59431:93:28"}]},"id":18389,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59358:3:28","nodeType":"FunctionDefinition","parameters":{"id":18375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18368,"mutability":"mutable","name":"p0","nameLocation":"59370:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59362:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18367,"name":"address","nodeType":"ElementaryTypeName","src":"59362:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18370,"mutability":"mutable","name":"p1","nameLocation":"59382:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59374:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18369,"name":"uint256","nodeType":"ElementaryTypeName","src":"59374:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18372,"mutability":"mutable","name":"p2","nameLocation":"59394:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59386:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18371,"name":"address","nodeType":"ElementaryTypeName","src":"59386:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18374,"mutability":"mutable","name":"p3","nameLocation":"59403:2:28","nodeType":"VariableDeclaration","scope":18389,"src":"59398:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18373,"name":"bool","nodeType":"ElementaryTypeName","src":"59398:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59361:45:28"},"returnParameters":{"id":18376,"nodeType":"ParameterList","parameters":[],"src":"59421:0:28"},"scope":19517,"src":"59349:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18411,"nodeType":"Block","src":"59612:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":18403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59662:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":18404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18391,"src":"59702:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18393,"src":"59706:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18395,"src":"59710:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18407,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18397,"src":"59714:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59638:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59642:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59638:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59638:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59622:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59622:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18410,"nodeType":"ExpressionStatement","src":"59622:96:28"}]},"id":18412,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59546:3:28","nodeType":"FunctionDefinition","parameters":{"id":18398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18391,"mutability":"mutable","name":"p0","nameLocation":"59558:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59550:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18390,"name":"address","nodeType":"ElementaryTypeName","src":"59550:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18393,"mutability":"mutable","name":"p1","nameLocation":"59570:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59562:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18392,"name":"uint256","nodeType":"ElementaryTypeName","src":"59562:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18395,"mutability":"mutable","name":"p2","nameLocation":"59582:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59574:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18394,"name":"address","nodeType":"ElementaryTypeName","src":"59574:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18397,"mutability":"mutable","name":"p3","nameLocation":"59594:2:28","nodeType":"VariableDeclaration","scope":18412,"src":"59586:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18396,"name":"address","nodeType":"ElementaryTypeName","src":"59586:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59549:48:28"},"returnParameters":{"id":18399,"nodeType":"ParameterList","parameters":[],"src":"59612:0:28"},"scope":19517,"src":"59537:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18434,"nodeType":"Block","src":"59812:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":18426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59862:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":18427,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18414,"src":"59901:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18428,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18416,"src":"59905:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18429,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"59909:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18430,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18420,"src":"59913:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59838:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59842:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59838:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59838:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18423,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"59822:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59822:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18433,"nodeType":"ExpressionStatement","src":"59822:95:28"}]},"id":18435,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59740:3:28","nodeType":"FunctionDefinition","parameters":{"id":18421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18414,"mutability":"mutable","name":"p0","nameLocation":"59752:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59744:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18413,"name":"address","nodeType":"ElementaryTypeName","src":"59744:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18416,"mutability":"mutable","name":"p1","nameLocation":"59770:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59756:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18415,"name":"string","nodeType":"ElementaryTypeName","src":"59756:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18418,"mutability":"mutable","name":"p2","nameLocation":"59782:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59774:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18417,"name":"uint256","nodeType":"ElementaryTypeName","src":"59774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18420,"mutability":"mutable","name":"p3","nameLocation":"59794:2:28","nodeType":"VariableDeclaration","scope":18435,"src":"59786:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18419,"name":"uint256","nodeType":"ElementaryTypeName","src":"59786:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59743:54:28"},"returnParameters":{"id":18422,"nodeType":"ParameterList","parameters":[],"src":"59812:0:28"},"scope":19517,"src":"59731:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18457,"nodeType":"Block","src":"60017:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":18449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60067:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":18450,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18437,"src":"60105:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18451,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18439,"src":"60109:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18452,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18441,"src":"60113:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18453,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18443,"src":"60117:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60043:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60047:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60043:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60043:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18446,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60027:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60027:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18456,"nodeType":"ExpressionStatement","src":"60027:94:28"}]},"id":18458,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59939:3:28","nodeType":"FunctionDefinition","parameters":{"id":18444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18437,"mutability":"mutable","name":"p0","nameLocation":"59951:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59943:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18436,"name":"address","nodeType":"ElementaryTypeName","src":"59943:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18439,"mutability":"mutable","name":"p1","nameLocation":"59969:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59955:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18438,"name":"string","nodeType":"ElementaryTypeName","src":"59955:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18441,"mutability":"mutable","name":"p2","nameLocation":"59981:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59973:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18440,"name":"uint256","nodeType":"ElementaryTypeName","src":"59973:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18443,"mutability":"mutable","name":"p3","nameLocation":"59999:2:28","nodeType":"VariableDeclaration","scope":18458,"src":"59985:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18442,"name":"string","nodeType":"ElementaryTypeName","src":"59985:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59942:60:28"},"returnParameters":{"id":18445,"nodeType":"ParameterList","parameters":[],"src":"60017:0:28"},"scope":19517,"src":"59930:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18480,"nodeType":"Block","src":"60212:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":18472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60262:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":18473,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18460,"src":"60298:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18474,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18462,"src":"60302:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18475,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18464,"src":"60306:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18476,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18466,"src":"60310:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18470,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60238:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60242:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60238:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60238:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18469,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60222:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60222:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18479,"nodeType":"ExpressionStatement","src":"60222:92:28"}]},"id":18481,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60143:3:28","nodeType":"FunctionDefinition","parameters":{"id":18467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18460,"mutability":"mutable","name":"p0","nameLocation":"60155:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60147:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18459,"name":"address","nodeType":"ElementaryTypeName","src":"60147:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18462,"mutability":"mutable","name":"p1","nameLocation":"60173:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60159:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18461,"name":"string","nodeType":"ElementaryTypeName","src":"60159:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18464,"mutability":"mutable","name":"p2","nameLocation":"60185:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60177:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18463,"name":"uint256","nodeType":"ElementaryTypeName","src":"60177:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18466,"mutability":"mutable","name":"p3","nameLocation":"60194:2:28","nodeType":"VariableDeclaration","scope":18481,"src":"60189:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18465,"name":"bool","nodeType":"ElementaryTypeName","src":"60189:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60146:51:28"},"returnParameters":{"id":18468,"nodeType":"ParameterList","parameters":[],"src":"60212:0:28"},"scope":19517,"src":"60134:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18503,"nodeType":"Block","src":"60408:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":18495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60458:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":18496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18483,"src":"60497:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18485,"src":"60501:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18487,"src":"60505:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18499,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18489,"src":"60509:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60434:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60438:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60434:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60434:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60418:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60418:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18502,"nodeType":"ExpressionStatement","src":"60418:95:28"}]},"id":18504,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60336:3:28","nodeType":"FunctionDefinition","parameters":{"id":18490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18483,"mutability":"mutable","name":"p0","nameLocation":"60348:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60340:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18482,"name":"address","nodeType":"ElementaryTypeName","src":"60340:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18485,"mutability":"mutable","name":"p1","nameLocation":"60366:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60352:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18484,"name":"string","nodeType":"ElementaryTypeName","src":"60352:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18487,"mutability":"mutable","name":"p2","nameLocation":"60378:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60370:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18486,"name":"uint256","nodeType":"ElementaryTypeName","src":"60370:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18489,"mutability":"mutable","name":"p3","nameLocation":"60390:2:28","nodeType":"VariableDeclaration","scope":18504,"src":"60382:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18488,"name":"address","nodeType":"ElementaryTypeName","src":"60382:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60339:54:28"},"returnParameters":{"id":18491,"nodeType":"ParameterList","parameters":[],"src":"60408:0:28"},"scope":19517,"src":"60327:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18526,"nodeType":"Block","src":"60613:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":18518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60663:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":18519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18506,"src":"60701:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18508,"src":"60705:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18510,"src":"60709:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18522,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18512,"src":"60713:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60639:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60643:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60639:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60639:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60623:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60623:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18525,"nodeType":"ExpressionStatement","src":"60623:94:28"}]},"id":18527,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60535:3:28","nodeType":"FunctionDefinition","parameters":{"id":18513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18506,"mutability":"mutable","name":"p0","nameLocation":"60547:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60539:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18505,"name":"address","nodeType":"ElementaryTypeName","src":"60539:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18508,"mutability":"mutable","name":"p1","nameLocation":"60565:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60551:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18507,"name":"string","nodeType":"ElementaryTypeName","src":"60551:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18510,"mutability":"mutable","name":"p2","nameLocation":"60583:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60569:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18509,"name":"string","nodeType":"ElementaryTypeName","src":"60569:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18512,"mutability":"mutable","name":"p3","nameLocation":"60595:2:28","nodeType":"VariableDeclaration","scope":18527,"src":"60587:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18511,"name":"uint256","nodeType":"ElementaryTypeName","src":"60587:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60538:60:28"},"returnParameters":{"id":18514,"nodeType":"ParameterList","parameters":[],"src":"60613:0:28"},"scope":19517,"src":"60526:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18549,"nodeType":"Block","src":"60823:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":18541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60873:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":18542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18529,"src":"60910:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18543,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18531,"src":"60914:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18544,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18533,"src":"60918:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18545,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18535,"src":"60922:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60849:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60853:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60849:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60849:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"60833:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60833:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18548,"nodeType":"ExpressionStatement","src":"60833:93:28"}]},"id":18550,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60739:3:28","nodeType":"FunctionDefinition","parameters":{"id":18536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18529,"mutability":"mutable","name":"p0","nameLocation":"60751:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60743:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18528,"name":"address","nodeType":"ElementaryTypeName","src":"60743:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18531,"mutability":"mutable","name":"p1","nameLocation":"60769:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60755:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18530,"name":"string","nodeType":"ElementaryTypeName","src":"60755:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18533,"mutability":"mutable","name":"p2","nameLocation":"60787:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60773:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18532,"name":"string","nodeType":"ElementaryTypeName","src":"60773:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18535,"mutability":"mutable","name":"p3","nameLocation":"60805:2:28","nodeType":"VariableDeclaration","scope":18550,"src":"60791:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18534,"name":"string","nodeType":"ElementaryTypeName","src":"60791:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60742:66:28"},"returnParameters":{"id":18537,"nodeType":"ParameterList","parameters":[],"src":"60823:0:28"},"scope":19517,"src":"60730:203:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18572,"nodeType":"Block","src":"61023:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":18564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61073:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":18565,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18552,"src":"61108:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18566,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18554,"src":"61112:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18567,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18556,"src":"61116:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18568,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18558,"src":"61120:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61049:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61053:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61049:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61049:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61033:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61033:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18571,"nodeType":"ExpressionStatement","src":"61033:91:28"}]},"id":18573,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60948:3:28","nodeType":"FunctionDefinition","parameters":{"id":18559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18552,"mutability":"mutable","name":"p0","nameLocation":"60960:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"60952:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18551,"name":"address","nodeType":"ElementaryTypeName","src":"60952:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18554,"mutability":"mutable","name":"p1","nameLocation":"60978:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"60964:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18553,"name":"string","nodeType":"ElementaryTypeName","src":"60964:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18556,"mutability":"mutable","name":"p2","nameLocation":"60996:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"60982:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18555,"name":"string","nodeType":"ElementaryTypeName","src":"60982:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18558,"mutability":"mutable","name":"p3","nameLocation":"61005:2:28","nodeType":"VariableDeclaration","scope":18573,"src":"61000:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18557,"name":"bool","nodeType":"ElementaryTypeName","src":"61000:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60951:57:28"},"returnParameters":{"id":18560,"nodeType":"ParameterList","parameters":[],"src":"61023:0:28"},"scope":19517,"src":"60939:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18595,"nodeType":"Block","src":"61224:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":18587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61274:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":18588,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18575,"src":"61312:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18589,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18577,"src":"61316:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18590,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18579,"src":"61320:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18591,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"61324:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18585,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61250:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61254:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61250:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61250:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18584,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61234:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61234:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18594,"nodeType":"ExpressionStatement","src":"61234:94:28"}]},"id":18596,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61146:3:28","nodeType":"FunctionDefinition","parameters":{"id":18582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18575,"mutability":"mutable","name":"p0","nameLocation":"61158:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61150:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18574,"name":"address","nodeType":"ElementaryTypeName","src":"61150:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18577,"mutability":"mutable","name":"p1","nameLocation":"61176:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61162:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18576,"name":"string","nodeType":"ElementaryTypeName","src":"61162:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18579,"mutability":"mutable","name":"p2","nameLocation":"61194:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61180:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18578,"name":"string","nodeType":"ElementaryTypeName","src":"61180:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18581,"mutability":"mutable","name":"p3","nameLocation":"61206:2:28","nodeType":"VariableDeclaration","scope":18596,"src":"61198:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18580,"name":"address","nodeType":"ElementaryTypeName","src":"61198:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61149:60:28"},"returnParameters":{"id":18583,"nodeType":"ParameterList","parameters":[],"src":"61224:0:28"},"scope":19517,"src":"61137:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18618,"nodeType":"Block","src":"61419:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":18610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61469:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":18611,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18598,"src":"61505:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18612,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18600,"src":"61509:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18613,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18602,"src":"61513:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18614,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18604,"src":"61517:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18608,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61445:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61449:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61445:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61445:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18607,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61429:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61429:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18617,"nodeType":"ExpressionStatement","src":"61429:92:28"}]},"id":18619,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61350:3:28","nodeType":"FunctionDefinition","parameters":{"id":18605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18598,"mutability":"mutable","name":"p0","nameLocation":"61362:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61354:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18597,"name":"address","nodeType":"ElementaryTypeName","src":"61354:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18600,"mutability":"mutable","name":"p1","nameLocation":"61380:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61366:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18599,"name":"string","nodeType":"ElementaryTypeName","src":"61366:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18602,"mutability":"mutable","name":"p2","nameLocation":"61389:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61384:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18601,"name":"bool","nodeType":"ElementaryTypeName","src":"61384:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18604,"mutability":"mutable","name":"p3","nameLocation":"61401:2:28","nodeType":"VariableDeclaration","scope":18619,"src":"61393:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18603,"name":"uint256","nodeType":"ElementaryTypeName","src":"61393:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61353:51:28"},"returnParameters":{"id":18606,"nodeType":"ParameterList","parameters":[],"src":"61419:0:28"},"scope":19517,"src":"61341:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18641,"nodeType":"Block","src":"61618:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":18633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61668:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":18634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18621,"src":"61703:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18623,"src":"61707:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18636,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"61711:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18637,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18627,"src":"61715:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61644:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61648:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61644:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61644:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61628:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61628:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18640,"nodeType":"ExpressionStatement","src":"61628:91:28"}]},"id":18642,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61543:3:28","nodeType":"FunctionDefinition","parameters":{"id":18628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18621,"mutability":"mutable","name":"p0","nameLocation":"61555:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61547:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18620,"name":"address","nodeType":"ElementaryTypeName","src":"61547:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18623,"mutability":"mutable","name":"p1","nameLocation":"61573:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61559:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18622,"name":"string","nodeType":"ElementaryTypeName","src":"61559:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18625,"mutability":"mutable","name":"p2","nameLocation":"61582:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61577:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18624,"name":"bool","nodeType":"ElementaryTypeName","src":"61577:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18627,"mutability":"mutable","name":"p3","nameLocation":"61600:2:28","nodeType":"VariableDeclaration","scope":18642,"src":"61586:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18626,"name":"string","nodeType":"ElementaryTypeName","src":"61586:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61546:57:28"},"returnParameters":{"id":18629,"nodeType":"ParameterList","parameters":[],"src":"61618:0:28"},"scope":19517,"src":"61534:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18664,"nodeType":"Block","src":"61807:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":18656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61857:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":18657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"61890:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18658,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18646,"src":"61894:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18659,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18648,"src":"61898:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18660,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18650,"src":"61902:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61833:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61837:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61833:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61833:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"61817:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61817:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18663,"nodeType":"ExpressionStatement","src":"61817:89:28"}]},"id":18665,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61741:3:28","nodeType":"FunctionDefinition","parameters":{"id":18651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18644,"mutability":"mutable","name":"p0","nameLocation":"61753:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61745:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18643,"name":"address","nodeType":"ElementaryTypeName","src":"61745:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18646,"mutability":"mutable","name":"p1","nameLocation":"61771:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61757:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18645,"name":"string","nodeType":"ElementaryTypeName","src":"61757:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18648,"mutability":"mutable","name":"p2","nameLocation":"61780:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61775:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18647,"name":"bool","nodeType":"ElementaryTypeName","src":"61775:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18650,"mutability":"mutable","name":"p3","nameLocation":"61789:2:28","nodeType":"VariableDeclaration","scope":18665,"src":"61784:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18649,"name":"bool","nodeType":"ElementaryTypeName","src":"61784:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61744:48:28"},"returnParameters":{"id":18652,"nodeType":"ParameterList","parameters":[],"src":"61807:0:28"},"scope":19517,"src":"61732:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18687,"nodeType":"Block","src":"61997:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":18679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62047:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":18680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"62083:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18669,"src":"62087:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18671,"src":"62091:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18683,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18673,"src":"62095:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62023:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62027:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62023:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62023:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62007:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62007:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18686,"nodeType":"ExpressionStatement","src":"62007:92:28"}]},"id":18688,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61928:3:28","nodeType":"FunctionDefinition","parameters":{"id":18674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18667,"mutability":"mutable","name":"p0","nameLocation":"61940:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61932:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18666,"name":"address","nodeType":"ElementaryTypeName","src":"61932:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18669,"mutability":"mutable","name":"p1","nameLocation":"61958:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61944:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18668,"name":"string","nodeType":"ElementaryTypeName","src":"61944:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18671,"mutability":"mutable","name":"p2","nameLocation":"61967:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61962:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18670,"name":"bool","nodeType":"ElementaryTypeName","src":"61962:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18673,"mutability":"mutable","name":"p3","nameLocation":"61979:2:28","nodeType":"VariableDeclaration","scope":18688,"src":"61971:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18672,"name":"address","nodeType":"ElementaryTypeName","src":"61971:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61931:51:28"},"returnParameters":{"id":18675,"nodeType":"ParameterList","parameters":[],"src":"61997:0:28"},"scope":19517,"src":"61919:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18710,"nodeType":"Block","src":"62193:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":18702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62243:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":18703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18690,"src":"62282:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18692,"src":"62286:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18694,"src":"62290:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18706,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18696,"src":"62294:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62219:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62223:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62219:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62219:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62203:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62203:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18709,"nodeType":"ExpressionStatement","src":"62203:95:28"}]},"id":18711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62121:3:28","nodeType":"FunctionDefinition","parameters":{"id":18697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18690,"mutability":"mutable","name":"p0","nameLocation":"62133:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62125:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18689,"name":"address","nodeType":"ElementaryTypeName","src":"62125:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18692,"mutability":"mutable","name":"p1","nameLocation":"62151:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62137:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18691,"name":"string","nodeType":"ElementaryTypeName","src":"62137:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18694,"mutability":"mutable","name":"p2","nameLocation":"62163:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62155:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18693,"name":"address","nodeType":"ElementaryTypeName","src":"62155:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18696,"mutability":"mutable","name":"p3","nameLocation":"62175:2:28","nodeType":"VariableDeclaration","scope":18711,"src":"62167:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18695,"name":"uint256","nodeType":"ElementaryTypeName","src":"62167:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62124:54:28"},"returnParameters":{"id":18698,"nodeType":"ParameterList","parameters":[],"src":"62193:0:28"},"scope":19517,"src":"62112:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18733,"nodeType":"Block","src":"62398:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":18725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62448:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":18726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18713,"src":"62486:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18715,"src":"62490:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18717,"src":"62494:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18729,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18719,"src":"62498:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62424:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62428:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62424:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62424:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62408:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62408:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18732,"nodeType":"ExpressionStatement","src":"62408:94:28"}]},"id":18734,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62320:3:28","nodeType":"FunctionDefinition","parameters":{"id":18720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18713,"mutability":"mutable","name":"p0","nameLocation":"62332:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62324:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18712,"name":"address","nodeType":"ElementaryTypeName","src":"62324:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18715,"mutability":"mutable","name":"p1","nameLocation":"62350:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62336:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18714,"name":"string","nodeType":"ElementaryTypeName","src":"62336:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18717,"mutability":"mutable","name":"p2","nameLocation":"62362:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62354:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18716,"name":"address","nodeType":"ElementaryTypeName","src":"62354:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18719,"mutability":"mutable","name":"p3","nameLocation":"62380:2:28","nodeType":"VariableDeclaration","scope":18734,"src":"62366:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18718,"name":"string","nodeType":"ElementaryTypeName","src":"62366:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62323:60:28"},"returnParameters":{"id":18721,"nodeType":"ParameterList","parameters":[],"src":"62398:0:28"},"scope":19517,"src":"62311:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18756,"nodeType":"Block","src":"62593:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":18748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62643:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":18749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18736,"src":"62679:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18750,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18738,"src":"62683:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18751,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18740,"src":"62687:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18752,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"62691:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62619:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62623:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62619:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62619:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62603:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62603:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18755,"nodeType":"ExpressionStatement","src":"62603:92:28"}]},"id":18757,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62524:3:28","nodeType":"FunctionDefinition","parameters":{"id":18743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18736,"mutability":"mutable","name":"p0","nameLocation":"62536:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62528:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18735,"name":"address","nodeType":"ElementaryTypeName","src":"62528:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18738,"mutability":"mutable","name":"p1","nameLocation":"62554:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62540:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18737,"name":"string","nodeType":"ElementaryTypeName","src":"62540:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18740,"mutability":"mutable","name":"p2","nameLocation":"62566:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62558:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18739,"name":"address","nodeType":"ElementaryTypeName","src":"62558:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18742,"mutability":"mutable","name":"p3","nameLocation":"62575:2:28","nodeType":"VariableDeclaration","scope":18757,"src":"62570:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18741,"name":"bool","nodeType":"ElementaryTypeName","src":"62570:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62527:51:28"},"returnParameters":{"id":18744,"nodeType":"ParameterList","parameters":[],"src":"62593:0:28"},"scope":19517,"src":"62515:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18779,"nodeType":"Block","src":"62789:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":18771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62839:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":18772,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18759,"src":"62878:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18773,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18761,"src":"62882:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18774,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18763,"src":"62886:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18775,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18765,"src":"62890:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62815:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62819:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62815:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62815:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18768,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62799:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62799:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18778,"nodeType":"ExpressionStatement","src":"62799:95:28"}]},"id":18780,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62717:3:28","nodeType":"FunctionDefinition","parameters":{"id":18766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18759,"mutability":"mutable","name":"p0","nameLocation":"62729:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62721:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18758,"name":"address","nodeType":"ElementaryTypeName","src":"62721:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18761,"mutability":"mutable","name":"p1","nameLocation":"62747:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62733:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18760,"name":"string","nodeType":"ElementaryTypeName","src":"62733:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18763,"mutability":"mutable","name":"p2","nameLocation":"62759:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62751:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18762,"name":"address","nodeType":"ElementaryTypeName","src":"62751:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18765,"mutability":"mutable","name":"p3","nameLocation":"62771:2:28","nodeType":"VariableDeclaration","scope":18780,"src":"62763:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18764,"name":"address","nodeType":"ElementaryTypeName","src":"62763:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62720:54:28"},"returnParameters":{"id":18767,"nodeType":"ParameterList","parameters":[],"src":"62789:0:28"},"scope":19517,"src":"62708:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18802,"nodeType":"Block","src":"62979:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":18794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63029:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":18795,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18782,"src":"63066:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18796,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18784,"src":"63070:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18797,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18786,"src":"63074:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18798,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18788,"src":"63078:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63005:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63009:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63005:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63005:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"62989:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62989:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18801,"nodeType":"ExpressionStatement","src":"62989:93:28"}]},"id":18803,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62916:3:28","nodeType":"FunctionDefinition","parameters":{"id":18789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18782,"mutability":"mutable","name":"p0","nameLocation":"62928:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62920:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18781,"name":"address","nodeType":"ElementaryTypeName","src":"62920:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18784,"mutability":"mutable","name":"p1","nameLocation":"62937:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62932:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18783,"name":"bool","nodeType":"ElementaryTypeName","src":"62932:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18786,"mutability":"mutable","name":"p2","nameLocation":"62949:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62941:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18785,"name":"uint256","nodeType":"ElementaryTypeName","src":"62941:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18788,"mutability":"mutable","name":"p3","nameLocation":"62961:2:28","nodeType":"VariableDeclaration","scope":18803,"src":"62953:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18787,"name":"uint256","nodeType":"ElementaryTypeName","src":"62953:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62919:45:28"},"returnParameters":{"id":18790,"nodeType":"ParameterList","parameters":[],"src":"62979:0:28"},"scope":19517,"src":"62907:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18825,"nodeType":"Block","src":"63173:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":18817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63223:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":18818,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"63259:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18819,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"63263:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18820,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18809,"src":"63267:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18821,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18811,"src":"63271:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63199:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63203:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63199:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63199:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18814,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63183:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63183:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18824,"nodeType":"ExpressionStatement","src":"63183:92:28"}]},"id":18826,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63104:3:28","nodeType":"FunctionDefinition","parameters":{"id":18812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18805,"mutability":"mutable","name":"p0","nameLocation":"63116:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63108:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18804,"name":"address","nodeType":"ElementaryTypeName","src":"63108:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18807,"mutability":"mutable","name":"p1","nameLocation":"63125:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63120:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18806,"name":"bool","nodeType":"ElementaryTypeName","src":"63120:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18809,"mutability":"mutable","name":"p2","nameLocation":"63137:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63129:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18808,"name":"uint256","nodeType":"ElementaryTypeName","src":"63129:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18811,"mutability":"mutable","name":"p3","nameLocation":"63155:2:28","nodeType":"VariableDeclaration","scope":18826,"src":"63141:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18810,"name":"string","nodeType":"ElementaryTypeName","src":"63141:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63107:51:28"},"returnParameters":{"id":18813,"nodeType":"ParameterList","parameters":[],"src":"63173:0:28"},"scope":19517,"src":"63095:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18848,"nodeType":"Block","src":"63357:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":18840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63407:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":18841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18828,"src":"63441:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18830,"src":"63445:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18832,"src":"63449:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18844,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18834,"src":"63453:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63383:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63387:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63383:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63383:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63367:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63367:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18847,"nodeType":"ExpressionStatement","src":"63367:90:28"}]},"id":18849,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63297:3:28","nodeType":"FunctionDefinition","parameters":{"id":18835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18828,"mutability":"mutable","name":"p0","nameLocation":"63309:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63301:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18827,"name":"address","nodeType":"ElementaryTypeName","src":"63301:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18830,"mutability":"mutable","name":"p1","nameLocation":"63318:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63313:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18829,"name":"bool","nodeType":"ElementaryTypeName","src":"63313:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18832,"mutability":"mutable","name":"p2","nameLocation":"63330:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63322:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18831,"name":"uint256","nodeType":"ElementaryTypeName","src":"63322:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18834,"mutability":"mutable","name":"p3","nameLocation":"63339:2:28","nodeType":"VariableDeclaration","scope":18849,"src":"63334:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18833,"name":"bool","nodeType":"ElementaryTypeName","src":"63334:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63300:42:28"},"returnParameters":{"id":18836,"nodeType":"ParameterList","parameters":[],"src":"63357:0:28"},"scope":19517,"src":"63288:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18871,"nodeType":"Block","src":"63542:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":18863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63592:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":18864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18851,"src":"63629:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18853,"src":"63633:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18855,"src":"63637:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18867,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18857,"src":"63641:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63568:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63572:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63568:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63568:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63552:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63552:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18870,"nodeType":"ExpressionStatement","src":"63552:93:28"}]},"id":18872,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63479:3:28","nodeType":"FunctionDefinition","parameters":{"id":18858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18851,"mutability":"mutable","name":"p0","nameLocation":"63491:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63483:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18850,"name":"address","nodeType":"ElementaryTypeName","src":"63483:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18853,"mutability":"mutable","name":"p1","nameLocation":"63500:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63495:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18852,"name":"bool","nodeType":"ElementaryTypeName","src":"63495:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18855,"mutability":"mutable","name":"p2","nameLocation":"63512:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63504:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18854,"name":"uint256","nodeType":"ElementaryTypeName","src":"63504:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18857,"mutability":"mutable","name":"p3","nameLocation":"63524:2:28","nodeType":"VariableDeclaration","scope":18872,"src":"63516:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18856,"name":"address","nodeType":"ElementaryTypeName","src":"63516:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63482:45:28"},"returnParameters":{"id":18859,"nodeType":"ParameterList","parameters":[],"src":"63542:0:28"},"scope":19517,"src":"63470:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18894,"nodeType":"Block","src":"63736:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":18886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63786:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":18887,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18874,"src":"63822:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18888,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18876,"src":"63826:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18889,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18878,"src":"63830:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18890,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18880,"src":"63834:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63762:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63766:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63762:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63762:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18883,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63746:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63746:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18893,"nodeType":"ExpressionStatement","src":"63746:92:28"}]},"id":18895,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63667:3:28","nodeType":"FunctionDefinition","parameters":{"id":18881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18874,"mutability":"mutable","name":"p0","nameLocation":"63679:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63671:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18873,"name":"address","nodeType":"ElementaryTypeName","src":"63671:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18876,"mutability":"mutable","name":"p1","nameLocation":"63688:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63683:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18875,"name":"bool","nodeType":"ElementaryTypeName","src":"63683:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18878,"mutability":"mutable","name":"p2","nameLocation":"63706:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63692:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18877,"name":"string","nodeType":"ElementaryTypeName","src":"63692:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18880,"mutability":"mutable","name":"p3","nameLocation":"63718:2:28","nodeType":"VariableDeclaration","scope":18895,"src":"63710:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18879,"name":"uint256","nodeType":"ElementaryTypeName","src":"63710:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63670:51:28"},"returnParameters":{"id":18882,"nodeType":"ParameterList","parameters":[],"src":"63736:0:28"},"scope":19517,"src":"63658:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18917,"nodeType":"Block","src":"63935:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":18909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63985:33:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":18910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18897,"src":"64020:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18911,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18899,"src":"64024:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18912,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18901,"src":"64028:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18913,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18903,"src":"64032:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63961:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63965:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63961:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63961:74:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"63945:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63945:91:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18916,"nodeType":"ExpressionStatement","src":"63945:91:28"}]},"id":18918,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63860:3:28","nodeType":"FunctionDefinition","parameters":{"id":18904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18897,"mutability":"mutable","name":"p0","nameLocation":"63872:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63864:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18896,"name":"address","nodeType":"ElementaryTypeName","src":"63864:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18899,"mutability":"mutable","name":"p1","nameLocation":"63881:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63876:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18898,"name":"bool","nodeType":"ElementaryTypeName","src":"63876:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18901,"mutability":"mutable","name":"p2","nameLocation":"63899:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63885:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18900,"name":"string","nodeType":"ElementaryTypeName","src":"63885:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18903,"mutability":"mutable","name":"p3","nameLocation":"63917:2:28","nodeType":"VariableDeclaration","scope":18918,"src":"63903:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18902,"name":"string","nodeType":"ElementaryTypeName","src":"63903:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63863:57:28"},"returnParameters":{"id":18905,"nodeType":"ParameterList","parameters":[],"src":"63935:0:28"},"scope":19517,"src":"63851:192:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18940,"nodeType":"Block","src":"64124:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":18932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64174:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":18933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18920,"src":"64207:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18922,"src":"64211:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18935,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18924,"src":"64215:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18936,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18926,"src":"64219:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64150:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64154:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64150:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64150:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64134:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64134:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18939,"nodeType":"ExpressionStatement","src":"64134:89:28"}]},"id":18941,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64058:3:28","nodeType":"FunctionDefinition","parameters":{"id":18927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18920,"mutability":"mutable","name":"p0","nameLocation":"64070:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64062:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18919,"name":"address","nodeType":"ElementaryTypeName","src":"64062:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18922,"mutability":"mutable","name":"p1","nameLocation":"64079:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64074:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18921,"name":"bool","nodeType":"ElementaryTypeName","src":"64074:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18924,"mutability":"mutable","name":"p2","nameLocation":"64097:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64083:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18923,"name":"string","nodeType":"ElementaryTypeName","src":"64083:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18926,"mutability":"mutable","name":"p3","nameLocation":"64106:2:28","nodeType":"VariableDeclaration","scope":18941,"src":"64101:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18925,"name":"bool","nodeType":"ElementaryTypeName","src":"64101:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64061:48:28"},"returnParameters":{"id":18928,"nodeType":"ParameterList","parameters":[],"src":"64124:0:28"},"scope":19517,"src":"64049:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18963,"nodeType":"Block","src":"64314:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":18955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64364:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":18956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18943,"src":"64400:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18945,"src":"64404:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"64408:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18959,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18949,"src":"64412:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64340:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64344:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64340:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64340:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64324:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64324:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18962,"nodeType":"ExpressionStatement","src":"64324:92:28"}]},"id":18964,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64245:3:28","nodeType":"FunctionDefinition","parameters":{"id":18950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18943,"mutability":"mutable","name":"p0","nameLocation":"64257:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64249:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18942,"name":"address","nodeType":"ElementaryTypeName","src":"64249:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18945,"mutability":"mutable","name":"p1","nameLocation":"64266:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64261:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18944,"name":"bool","nodeType":"ElementaryTypeName","src":"64261:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18947,"mutability":"mutable","name":"p2","nameLocation":"64284:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64270:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18946,"name":"string","nodeType":"ElementaryTypeName","src":"64270:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18949,"mutability":"mutable","name":"p3","nameLocation":"64296:2:28","nodeType":"VariableDeclaration","scope":18964,"src":"64288:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18948,"name":"address","nodeType":"ElementaryTypeName","src":"64288:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64248:51:28"},"returnParameters":{"id":18951,"nodeType":"ParameterList","parameters":[],"src":"64314:0:28"},"scope":19517,"src":"64236:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":18986,"nodeType":"Block","src":"64498:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":18978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64548:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":18979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18966,"src":"64582:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18968,"src":"64586:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18970,"src":"64590:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18982,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18972,"src":"64594:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64524:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64528:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64524:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64524:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64508:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":18984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64508:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18985,"nodeType":"ExpressionStatement","src":"64508:90:28"}]},"id":18987,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64438:3:28","nodeType":"FunctionDefinition","parameters":{"id":18973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18966,"mutability":"mutable","name":"p0","nameLocation":"64450:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64442:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18965,"name":"address","nodeType":"ElementaryTypeName","src":"64442:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18968,"mutability":"mutable","name":"p1","nameLocation":"64459:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64454:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18967,"name":"bool","nodeType":"ElementaryTypeName","src":"64454:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18970,"mutability":"mutable","name":"p2","nameLocation":"64468:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64463:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18969,"name":"bool","nodeType":"ElementaryTypeName","src":"64463:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18972,"mutability":"mutable","name":"p3","nameLocation":"64480:2:28","nodeType":"VariableDeclaration","scope":18987,"src":"64472:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18971,"name":"uint256","nodeType":"ElementaryTypeName","src":"64472:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64441:42:28"},"returnParameters":{"id":18974,"nodeType":"ParameterList","parameters":[],"src":"64498:0:28"},"scope":19517,"src":"64429:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19009,"nodeType":"Block","src":"64686:106:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":19001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64736:31:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":19002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18989,"src":"64769:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18991,"src":"64773:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19004,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18993,"src":"64777:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19005,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18995,"src":"64781:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64712:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64716:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64712:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64712:72:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64696:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64696:89:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19008,"nodeType":"ExpressionStatement","src":"64696:89:28"}]},"id":19010,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64620:3:28","nodeType":"FunctionDefinition","parameters":{"id":18996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18989,"mutability":"mutable","name":"p0","nameLocation":"64632:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64624:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18988,"name":"address","nodeType":"ElementaryTypeName","src":"64624:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18991,"mutability":"mutable","name":"p1","nameLocation":"64641:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64636:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18990,"name":"bool","nodeType":"ElementaryTypeName","src":"64636:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18993,"mutability":"mutable","name":"p2","nameLocation":"64650:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64645:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18992,"name":"bool","nodeType":"ElementaryTypeName","src":"64645:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18995,"mutability":"mutable","name":"p3","nameLocation":"64668:2:28","nodeType":"VariableDeclaration","scope":19010,"src":"64654:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18994,"name":"string","nodeType":"ElementaryTypeName","src":"64654:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64623:48:28"},"returnParameters":{"id":18997,"nodeType":"ParameterList","parameters":[],"src":"64686:0:28"},"scope":19517,"src":"64611:181:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19032,"nodeType":"Block","src":"64864:104:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":19024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64914:29:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":19025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"64945:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19026,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19014,"src":"64949:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19027,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19016,"src":"64953:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19028,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19018,"src":"64957:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64890:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64894:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64890:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64890:70:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"64874:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64874:87:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19031,"nodeType":"ExpressionStatement","src":"64874:87:28"}]},"id":19033,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64807:3:28","nodeType":"FunctionDefinition","parameters":{"id":19019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19012,"mutability":"mutable","name":"p0","nameLocation":"64819:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64811:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19011,"name":"address","nodeType":"ElementaryTypeName","src":"64811:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19014,"mutability":"mutable","name":"p1","nameLocation":"64828:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64823:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19013,"name":"bool","nodeType":"ElementaryTypeName","src":"64823:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19016,"mutability":"mutable","name":"p2","nameLocation":"64837:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64832:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19015,"name":"bool","nodeType":"ElementaryTypeName","src":"64832:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19018,"mutability":"mutable","name":"p3","nameLocation":"64846:2:28","nodeType":"VariableDeclaration","scope":19033,"src":"64841:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19017,"name":"bool","nodeType":"ElementaryTypeName","src":"64841:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64810:39:28"},"returnParameters":{"id":19020,"nodeType":"ParameterList","parameters":[],"src":"64864:0:28"},"scope":19517,"src":"64798:170:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19055,"nodeType":"Block","src":"65043:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":19047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65093:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":19048,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19035,"src":"65127:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19049,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19037,"src":"65131:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19050,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19039,"src":"65135:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19051,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19041,"src":"65139:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65069:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65073:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65069:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65069:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19044,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65053:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65053:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19054,"nodeType":"ExpressionStatement","src":"65053:90:28"}]},"id":19056,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64983:3:28","nodeType":"FunctionDefinition","parameters":{"id":19042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19035,"mutability":"mutable","name":"p0","nameLocation":"64995:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"64987:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19034,"name":"address","nodeType":"ElementaryTypeName","src":"64987:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19037,"mutability":"mutable","name":"p1","nameLocation":"65004:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"64999:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19036,"name":"bool","nodeType":"ElementaryTypeName","src":"64999:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19039,"mutability":"mutable","name":"p2","nameLocation":"65013:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"65008:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19038,"name":"bool","nodeType":"ElementaryTypeName","src":"65008:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19041,"mutability":"mutable","name":"p3","nameLocation":"65025:2:28","nodeType":"VariableDeclaration","scope":19056,"src":"65017:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19040,"name":"address","nodeType":"ElementaryTypeName","src":"65017:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64986:42:28"},"returnParameters":{"id":19043,"nodeType":"ParameterList","parameters":[],"src":"65043:0:28"},"scope":19517,"src":"64974:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19078,"nodeType":"Block","src":"65228:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":19070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65278:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":19071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19058,"src":"65315:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19060,"src":"65319:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19073,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19062,"src":"65323:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19074,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19064,"src":"65327:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65254:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65258:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65254:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65254:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65238:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65238:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19077,"nodeType":"ExpressionStatement","src":"65238:93:28"}]},"id":19079,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65165:3:28","nodeType":"FunctionDefinition","parameters":{"id":19065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19058,"mutability":"mutable","name":"p0","nameLocation":"65177:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65169:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19057,"name":"address","nodeType":"ElementaryTypeName","src":"65169:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19060,"mutability":"mutable","name":"p1","nameLocation":"65186:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65181:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19059,"name":"bool","nodeType":"ElementaryTypeName","src":"65181:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19062,"mutability":"mutable","name":"p2","nameLocation":"65198:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65190:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19061,"name":"address","nodeType":"ElementaryTypeName","src":"65190:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19064,"mutability":"mutable","name":"p3","nameLocation":"65210:2:28","nodeType":"VariableDeclaration","scope":19079,"src":"65202:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19063,"name":"uint256","nodeType":"ElementaryTypeName","src":"65202:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65168:45:28"},"returnParameters":{"id":19066,"nodeType":"ParameterList","parameters":[],"src":"65228:0:28"},"scope":19517,"src":"65156:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19101,"nodeType":"Block","src":"65422:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":19093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65472:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":19094,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19081,"src":"65508:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19095,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19083,"src":"65512:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19096,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"65516:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19097,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19087,"src":"65520:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65448:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65452:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65448:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65448:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19090,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65432:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65432:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19100,"nodeType":"ExpressionStatement","src":"65432:92:28"}]},"id":19102,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65353:3:28","nodeType":"FunctionDefinition","parameters":{"id":19088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19081,"mutability":"mutable","name":"p0","nameLocation":"65365:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65357:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19080,"name":"address","nodeType":"ElementaryTypeName","src":"65357:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19083,"mutability":"mutable","name":"p1","nameLocation":"65374:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65369:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19082,"name":"bool","nodeType":"ElementaryTypeName","src":"65369:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19085,"mutability":"mutable","name":"p2","nameLocation":"65386:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65378:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19084,"name":"address","nodeType":"ElementaryTypeName","src":"65378:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19087,"mutability":"mutable","name":"p3","nameLocation":"65404:2:28","nodeType":"VariableDeclaration","scope":19102,"src":"65390:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19086,"name":"string","nodeType":"ElementaryTypeName","src":"65390:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65356:51:28"},"returnParameters":{"id":19089,"nodeType":"ParameterList","parameters":[],"src":"65422:0:28"},"scope":19517,"src":"65344:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19124,"nodeType":"Block","src":"65606:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":19116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65656:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":19117,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19104,"src":"65690:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19118,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19106,"src":"65694:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19119,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19108,"src":"65698:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19120,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19110,"src":"65702:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65632:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65636:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65632:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65632:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19113,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65616:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65616:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19123,"nodeType":"ExpressionStatement","src":"65616:90:28"}]},"id":19125,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65546:3:28","nodeType":"FunctionDefinition","parameters":{"id":19111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19104,"mutability":"mutable","name":"p0","nameLocation":"65558:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65550:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19103,"name":"address","nodeType":"ElementaryTypeName","src":"65550:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19106,"mutability":"mutable","name":"p1","nameLocation":"65567:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65562:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19105,"name":"bool","nodeType":"ElementaryTypeName","src":"65562:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19108,"mutability":"mutable","name":"p2","nameLocation":"65579:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65571:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19107,"name":"address","nodeType":"ElementaryTypeName","src":"65571:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19110,"mutability":"mutable","name":"p3","nameLocation":"65588:2:28","nodeType":"VariableDeclaration","scope":19125,"src":"65583:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19109,"name":"bool","nodeType":"ElementaryTypeName","src":"65583:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65549:42:28"},"returnParameters":{"id":19112,"nodeType":"ParameterList","parameters":[],"src":"65606:0:28"},"scope":19517,"src":"65537:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19147,"nodeType":"Block","src":"65791:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":19139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65841:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":19140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19127,"src":"65878:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19129,"src":"65882:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19131,"src":"65886:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19143,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19133,"src":"65890:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65817:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65821:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65817:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65817:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65801:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65801:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19146,"nodeType":"ExpressionStatement","src":"65801:93:28"}]},"id":19148,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65728:3:28","nodeType":"FunctionDefinition","parameters":{"id":19134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19127,"mutability":"mutable","name":"p0","nameLocation":"65740:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65732:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19126,"name":"address","nodeType":"ElementaryTypeName","src":"65732:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19129,"mutability":"mutable","name":"p1","nameLocation":"65749:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65744:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19128,"name":"bool","nodeType":"ElementaryTypeName","src":"65744:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19131,"mutability":"mutable","name":"p2","nameLocation":"65761:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65753:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19130,"name":"address","nodeType":"ElementaryTypeName","src":"65753:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19133,"mutability":"mutable","name":"p3","nameLocation":"65773:2:28","nodeType":"VariableDeclaration","scope":19148,"src":"65765:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19132,"name":"address","nodeType":"ElementaryTypeName","src":"65765:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65731:45:28"},"returnParameters":{"id":19135,"nodeType":"ParameterList","parameters":[],"src":"65791:0:28"},"scope":19517,"src":"65719:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19170,"nodeType":"Block","src":"65982:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":19162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66032:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":19163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19150,"src":"66072:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19152,"src":"66076:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19154,"src":"66080:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19166,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19156,"src":"66084:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66008:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66012:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66008:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66008:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"65992:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65992:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19169,"nodeType":"ExpressionStatement","src":"65992:96:28"}]},"id":19171,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65916:3:28","nodeType":"FunctionDefinition","parameters":{"id":19157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19150,"mutability":"mutable","name":"p0","nameLocation":"65928:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65920:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19149,"name":"address","nodeType":"ElementaryTypeName","src":"65920:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19152,"mutability":"mutable","name":"p1","nameLocation":"65940:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65932:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19151,"name":"address","nodeType":"ElementaryTypeName","src":"65932:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19154,"mutability":"mutable","name":"p2","nameLocation":"65952:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65944:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19153,"name":"uint256","nodeType":"ElementaryTypeName","src":"65944:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19156,"mutability":"mutable","name":"p3","nameLocation":"65964:2:28","nodeType":"VariableDeclaration","scope":19171,"src":"65956:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19155,"name":"uint256","nodeType":"ElementaryTypeName","src":"65956:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65919:48:28"},"returnParameters":{"id":19158,"nodeType":"ParameterList","parameters":[],"src":"65982:0:28"},"scope":19517,"src":"65907:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19193,"nodeType":"Block","src":"66182:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":19185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66232:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":19186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19173,"src":"66271:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19175,"src":"66275:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19177,"src":"66279:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19189,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19179,"src":"66283:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66208:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66212:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66208:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66208:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66192:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66192:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19192,"nodeType":"ExpressionStatement","src":"66192:95:28"}]},"id":19194,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66110:3:28","nodeType":"FunctionDefinition","parameters":{"id":19180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19173,"mutability":"mutable","name":"p0","nameLocation":"66122:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66114:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19172,"name":"address","nodeType":"ElementaryTypeName","src":"66114:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19175,"mutability":"mutable","name":"p1","nameLocation":"66134:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66126:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19174,"name":"address","nodeType":"ElementaryTypeName","src":"66126:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19177,"mutability":"mutable","name":"p2","nameLocation":"66146:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66138:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19176,"name":"uint256","nodeType":"ElementaryTypeName","src":"66138:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19179,"mutability":"mutable","name":"p3","nameLocation":"66164:2:28","nodeType":"VariableDeclaration","scope":19194,"src":"66150:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19178,"name":"string","nodeType":"ElementaryTypeName","src":"66150:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66113:54:28"},"returnParameters":{"id":19181,"nodeType":"ParameterList","parameters":[],"src":"66182:0:28"},"scope":19517,"src":"66101:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19216,"nodeType":"Block","src":"66372:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":19208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66422:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":19209,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19196,"src":"66459:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19210,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19198,"src":"66463:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19200,"src":"66467:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19212,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"66471:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66398:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66402:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66398:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66398:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19205,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66382:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66382:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19215,"nodeType":"ExpressionStatement","src":"66382:93:28"}]},"id":19217,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66309:3:28","nodeType":"FunctionDefinition","parameters":{"id":19203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19196,"mutability":"mutable","name":"p0","nameLocation":"66321:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66313:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19195,"name":"address","nodeType":"ElementaryTypeName","src":"66313:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19198,"mutability":"mutable","name":"p1","nameLocation":"66333:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66325:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19197,"name":"address","nodeType":"ElementaryTypeName","src":"66325:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19200,"mutability":"mutable","name":"p2","nameLocation":"66345:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66337:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19199,"name":"uint256","nodeType":"ElementaryTypeName","src":"66337:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19202,"mutability":"mutable","name":"p3","nameLocation":"66354:2:28","nodeType":"VariableDeclaration","scope":19217,"src":"66349:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19201,"name":"bool","nodeType":"ElementaryTypeName","src":"66349:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66312:45:28"},"returnParameters":{"id":19204,"nodeType":"ParameterList","parameters":[],"src":"66372:0:28"},"scope":19517,"src":"66300:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19239,"nodeType":"Block","src":"66563:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":19231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66613:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":19232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"66653:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19233,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19221,"src":"66657:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19234,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19223,"src":"66661:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19235,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19225,"src":"66665:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66589:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66593:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66589:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66589:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66573:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66573:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19238,"nodeType":"ExpressionStatement","src":"66573:96:28"}]},"id":19240,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66497:3:28","nodeType":"FunctionDefinition","parameters":{"id":19226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19219,"mutability":"mutable","name":"p0","nameLocation":"66509:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66501:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19218,"name":"address","nodeType":"ElementaryTypeName","src":"66501:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19221,"mutability":"mutable","name":"p1","nameLocation":"66521:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66513:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19220,"name":"address","nodeType":"ElementaryTypeName","src":"66513:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19223,"mutability":"mutable","name":"p2","nameLocation":"66533:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66525:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19222,"name":"uint256","nodeType":"ElementaryTypeName","src":"66525:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19225,"mutability":"mutable","name":"p3","nameLocation":"66545:2:28","nodeType":"VariableDeclaration","scope":19240,"src":"66537:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19224,"name":"address","nodeType":"ElementaryTypeName","src":"66537:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66500:48:28"},"returnParameters":{"id":19227,"nodeType":"ParameterList","parameters":[],"src":"66563:0:28"},"scope":19517,"src":"66488:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19262,"nodeType":"Block","src":"66763:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":19254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66813:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":19255,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19242,"src":"66852:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19244,"src":"66856:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19257,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19246,"src":"66860:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19258,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19248,"src":"66864:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66789:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66793:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66789:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66789:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66773:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66773:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19261,"nodeType":"ExpressionStatement","src":"66773:95:28"}]},"id":19263,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66691:3:28","nodeType":"FunctionDefinition","parameters":{"id":19249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19242,"mutability":"mutable","name":"p0","nameLocation":"66703:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66695:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19241,"name":"address","nodeType":"ElementaryTypeName","src":"66695:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19244,"mutability":"mutable","name":"p1","nameLocation":"66715:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66707:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19243,"name":"address","nodeType":"ElementaryTypeName","src":"66707:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19246,"mutability":"mutable","name":"p2","nameLocation":"66733:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66719:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19245,"name":"string","nodeType":"ElementaryTypeName","src":"66719:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19248,"mutability":"mutable","name":"p3","nameLocation":"66745:2:28","nodeType":"VariableDeclaration","scope":19263,"src":"66737:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19247,"name":"uint256","nodeType":"ElementaryTypeName","src":"66737:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66694:54:28"},"returnParameters":{"id":19250,"nodeType":"ParameterList","parameters":[],"src":"66763:0:28"},"scope":19517,"src":"66682:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19285,"nodeType":"Block","src":"66968:111:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":19277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67018:36:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":19278,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19265,"src":"67056:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19279,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19267,"src":"67060:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19280,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19269,"src":"67064:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19281,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19271,"src":"67068:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19275,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66994:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66998:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66994:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66994:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19274,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"66978:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66978:94:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19284,"nodeType":"ExpressionStatement","src":"66978:94:28"}]},"id":19286,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66890:3:28","nodeType":"FunctionDefinition","parameters":{"id":19272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19265,"mutability":"mutable","name":"p0","nameLocation":"66902:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66894:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19264,"name":"address","nodeType":"ElementaryTypeName","src":"66894:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19267,"mutability":"mutable","name":"p1","nameLocation":"66914:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66906:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19266,"name":"address","nodeType":"ElementaryTypeName","src":"66906:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19269,"mutability":"mutable","name":"p2","nameLocation":"66932:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66918:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19268,"name":"string","nodeType":"ElementaryTypeName","src":"66918:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19271,"mutability":"mutable","name":"p3","nameLocation":"66950:2:28","nodeType":"VariableDeclaration","scope":19286,"src":"66936:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19270,"name":"string","nodeType":"ElementaryTypeName","src":"66936:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66893:60:28"},"returnParameters":{"id":19273,"nodeType":"ParameterList","parameters":[],"src":"66968:0:28"},"scope":19517,"src":"66881:198:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19308,"nodeType":"Block","src":"67163:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":19300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67213:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":19301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19288,"src":"67249:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19290,"src":"67253:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19292,"src":"67257:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19304,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19294,"src":"67261:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67189:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67193:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67189:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67189:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67173:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67173:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19307,"nodeType":"ExpressionStatement","src":"67173:92:28"}]},"id":19309,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67094:3:28","nodeType":"FunctionDefinition","parameters":{"id":19295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19288,"mutability":"mutable","name":"p0","nameLocation":"67106:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67098:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19287,"name":"address","nodeType":"ElementaryTypeName","src":"67098:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19290,"mutability":"mutable","name":"p1","nameLocation":"67118:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67110:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19289,"name":"address","nodeType":"ElementaryTypeName","src":"67110:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19292,"mutability":"mutable","name":"p2","nameLocation":"67136:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67122:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19291,"name":"string","nodeType":"ElementaryTypeName","src":"67122:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19294,"mutability":"mutable","name":"p3","nameLocation":"67145:2:28","nodeType":"VariableDeclaration","scope":19309,"src":"67140:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19293,"name":"bool","nodeType":"ElementaryTypeName","src":"67140:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67097:51:28"},"returnParameters":{"id":19296,"nodeType":"ParameterList","parameters":[],"src":"67163:0:28"},"scope":19517,"src":"67085:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19331,"nodeType":"Block","src":"67359:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":19323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67409:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":19324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19311,"src":"67448:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19313,"src":"67452:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19315,"src":"67456:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19327,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19317,"src":"67460:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67385:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67389:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67385:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67385:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67369:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67369:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19330,"nodeType":"ExpressionStatement","src":"67369:95:28"}]},"id":19332,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67287:3:28","nodeType":"FunctionDefinition","parameters":{"id":19318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19311,"mutability":"mutable","name":"p0","nameLocation":"67299:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67291:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19310,"name":"address","nodeType":"ElementaryTypeName","src":"67291:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19313,"mutability":"mutable","name":"p1","nameLocation":"67311:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67303:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19312,"name":"address","nodeType":"ElementaryTypeName","src":"67303:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19315,"mutability":"mutable","name":"p2","nameLocation":"67329:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67315:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19314,"name":"string","nodeType":"ElementaryTypeName","src":"67315:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19317,"mutability":"mutable","name":"p3","nameLocation":"67341:2:28","nodeType":"VariableDeclaration","scope":19332,"src":"67333:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19316,"name":"address","nodeType":"ElementaryTypeName","src":"67333:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67290:54:28"},"returnParameters":{"id":19319,"nodeType":"ParameterList","parameters":[],"src":"67359:0:28"},"scope":19517,"src":"67278:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19354,"nodeType":"Block","src":"67549:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":19346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67599:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":19347,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19334,"src":"67636:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19348,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19336,"src":"67640:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19349,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19338,"src":"67644:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19350,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19340,"src":"67648:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67575:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67579:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67575:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67575:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19343,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67559:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67559:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19353,"nodeType":"ExpressionStatement","src":"67559:93:28"}]},"id":19355,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67486:3:28","nodeType":"FunctionDefinition","parameters":{"id":19341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19334,"mutability":"mutable","name":"p0","nameLocation":"67498:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67490:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19333,"name":"address","nodeType":"ElementaryTypeName","src":"67490:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19336,"mutability":"mutable","name":"p1","nameLocation":"67510:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67502:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19335,"name":"address","nodeType":"ElementaryTypeName","src":"67502:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19338,"mutability":"mutable","name":"p2","nameLocation":"67519:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67514:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19337,"name":"bool","nodeType":"ElementaryTypeName","src":"67514:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19340,"mutability":"mutable","name":"p3","nameLocation":"67531:2:28","nodeType":"VariableDeclaration","scope":19355,"src":"67523:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19339,"name":"uint256","nodeType":"ElementaryTypeName","src":"67523:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67489:45:28"},"returnParameters":{"id":19342,"nodeType":"ParameterList","parameters":[],"src":"67549:0:28"},"scope":19517,"src":"67477:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19377,"nodeType":"Block","src":"67743:109:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":19369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67793:34:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":19370,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"67829:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19371,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19359,"src":"67833:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19372,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19361,"src":"67837:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19373,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19363,"src":"67841:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67769:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67773:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67769:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67769:75:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19366,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67753:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67753:92:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19376,"nodeType":"ExpressionStatement","src":"67753:92:28"}]},"id":19378,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67674:3:28","nodeType":"FunctionDefinition","parameters":{"id":19364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19357,"mutability":"mutable","name":"p0","nameLocation":"67686:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67678:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19356,"name":"address","nodeType":"ElementaryTypeName","src":"67678:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19359,"mutability":"mutable","name":"p1","nameLocation":"67698:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67690:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19358,"name":"address","nodeType":"ElementaryTypeName","src":"67690:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19361,"mutability":"mutable","name":"p2","nameLocation":"67707:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67702:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19360,"name":"bool","nodeType":"ElementaryTypeName","src":"67702:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19363,"mutability":"mutable","name":"p3","nameLocation":"67725:2:28","nodeType":"VariableDeclaration","scope":19378,"src":"67711:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19362,"name":"string","nodeType":"ElementaryTypeName","src":"67711:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67677:51:28"},"returnParameters":{"id":19365,"nodeType":"ParameterList","parameters":[],"src":"67743:0:28"},"scope":19517,"src":"67665:187:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19400,"nodeType":"Block","src":"67927:107:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":19392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67977:32:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":19393,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19380,"src":"68011:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19394,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"68015:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19395,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19384,"src":"68019:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19396,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19386,"src":"68023:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67953:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67957:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67953:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67953:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19389,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"67937:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67937:90:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19399,"nodeType":"ExpressionStatement","src":"67937:90:28"}]},"id":19401,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67867:3:28","nodeType":"FunctionDefinition","parameters":{"id":19387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19380,"mutability":"mutable","name":"p0","nameLocation":"67879:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67871:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19379,"name":"address","nodeType":"ElementaryTypeName","src":"67871:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19382,"mutability":"mutable","name":"p1","nameLocation":"67891:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67883:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19381,"name":"address","nodeType":"ElementaryTypeName","src":"67883:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19384,"mutability":"mutable","name":"p2","nameLocation":"67900:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67895:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19383,"name":"bool","nodeType":"ElementaryTypeName","src":"67895:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19386,"mutability":"mutable","name":"p3","nameLocation":"67909:2:28","nodeType":"VariableDeclaration","scope":19401,"src":"67904:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19385,"name":"bool","nodeType":"ElementaryTypeName","src":"67904:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67870:42:28"},"returnParameters":{"id":19388,"nodeType":"ParameterList","parameters":[],"src":"67927:0:28"},"scope":19517,"src":"67858:176:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19423,"nodeType":"Block","src":"68112:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":19415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68162:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":19416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19403,"src":"68199:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19405,"src":"68203:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19407,"src":"68207:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19419,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"68211:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68138:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68142:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68138:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68138:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68122:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68122:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19422,"nodeType":"ExpressionStatement","src":"68122:93:28"}]},"id":19424,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68049:3:28","nodeType":"FunctionDefinition","parameters":{"id":19410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19403,"mutability":"mutable","name":"p0","nameLocation":"68061:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68053:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19402,"name":"address","nodeType":"ElementaryTypeName","src":"68053:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19405,"mutability":"mutable","name":"p1","nameLocation":"68073:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68065:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19404,"name":"address","nodeType":"ElementaryTypeName","src":"68065:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19407,"mutability":"mutable","name":"p2","nameLocation":"68082:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68077:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19406,"name":"bool","nodeType":"ElementaryTypeName","src":"68077:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19409,"mutability":"mutable","name":"p3","nameLocation":"68094:2:28","nodeType":"VariableDeclaration","scope":19424,"src":"68086:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19408,"name":"address","nodeType":"ElementaryTypeName","src":"68086:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68052:45:28"},"returnParameters":{"id":19411,"nodeType":"ParameterList","parameters":[],"src":"68112:0:28"},"scope":19517,"src":"68040:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19446,"nodeType":"Block","src":"68303:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":19438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68353:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":19439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19426,"src":"68393:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19428,"src":"68397:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19430,"src":"68401:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19442,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19432,"src":"68405:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68329:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68333:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68329:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68329:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68313:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68313:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19445,"nodeType":"ExpressionStatement","src":"68313:96:28"}]},"id":19447,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68237:3:28","nodeType":"FunctionDefinition","parameters":{"id":19433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19426,"mutability":"mutable","name":"p0","nameLocation":"68249:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68241:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19425,"name":"address","nodeType":"ElementaryTypeName","src":"68241:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19428,"mutability":"mutable","name":"p1","nameLocation":"68261:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68253:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19427,"name":"address","nodeType":"ElementaryTypeName","src":"68253:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19430,"mutability":"mutable","name":"p2","nameLocation":"68273:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68265:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19429,"name":"address","nodeType":"ElementaryTypeName","src":"68265:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19432,"mutability":"mutable","name":"p3","nameLocation":"68285:2:28","nodeType":"VariableDeclaration","scope":19447,"src":"68277:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19431,"name":"uint256","nodeType":"ElementaryTypeName","src":"68277:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68240:48:28"},"returnParameters":{"id":19434,"nodeType":"ParameterList","parameters":[],"src":"68303:0:28"},"scope":19517,"src":"68228:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19469,"nodeType":"Block","src":"68503:112:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":19461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68553:37:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":19462,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19449,"src":"68592:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19463,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19451,"src":"68596:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19464,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19453,"src":"68600:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19465,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19455,"src":"68604:2:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68529:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68533:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68529:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68529:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19458,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68513:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68513:95:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19468,"nodeType":"ExpressionStatement","src":"68513:95:28"}]},"id":19470,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68431:3:28","nodeType":"FunctionDefinition","parameters":{"id":19456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19449,"mutability":"mutable","name":"p0","nameLocation":"68443:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68435:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19448,"name":"address","nodeType":"ElementaryTypeName","src":"68435:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19451,"mutability":"mutable","name":"p1","nameLocation":"68455:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68447:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19450,"name":"address","nodeType":"ElementaryTypeName","src":"68447:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19453,"mutability":"mutable","name":"p2","nameLocation":"68467:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68459:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19452,"name":"address","nodeType":"ElementaryTypeName","src":"68459:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19455,"mutability":"mutable","name":"p3","nameLocation":"68485:2:28","nodeType":"VariableDeclaration","scope":19470,"src":"68471:16:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19454,"name":"string","nodeType":"ElementaryTypeName","src":"68471:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68434:54:28"},"returnParameters":{"id":19457,"nodeType":"ParameterList","parameters":[],"src":"68503:0:28"},"scope":19517,"src":"68422:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19492,"nodeType":"Block","src":"68693:110:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":19484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68743:35:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":19485,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19472,"src":"68780:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19474,"src":"68784:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19487,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19476,"src":"68788:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19488,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19478,"src":"68792:2:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68719:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68723:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68719:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68719:76:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68703:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68703:93:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19491,"nodeType":"ExpressionStatement","src":"68703:93:28"}]},"id":19493,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68630:3:28","nodeType":"FunctionDefinition","parameters":{"id":19479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19472,"mutability":"mutable","name":"p0","nameLocation":"68642:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68634:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19471,"name":"address","nodeType":"ElementaryTypeName","src":"68634:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19474,"mutability":"mutable","name":"p1","nameLocation":"68654:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68646:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19473,"name":"address","nodeType":"ElementaryTypeName","src":"68646:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19476,"mutability":"mutable","name":"p2","nameLocation":"68666:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68658:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19475,"name":"address","nodeType":"ElementaryTypeName","src":"68658:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19478,"mutability":"mutable","name":"p3","nameLocation":"68675:2:28","nodeType":"VariableDeclaration","scope":19493,"src":"68670:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19477,"name":"bool","nodeType":"ElementaryTypeName","src":"68670:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68633:45:28"},"returnParameters":{"id":19480,"nodeType":"ParameterList","parameters":[],"src":"68693:0:28"},"scope":19517,"src":"68621:182:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":19515,"nodeType":"Block","src":"68884:113:28","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":19507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68934:38:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":19508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"68974:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19509,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"68978:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19499,"src":"68982:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19511,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19501,"src":"68986:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68910:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68914:19:28","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68910:23:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68910:79:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"68894:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":19513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68894:96:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19514,"nodeType":"ExpressionStatement","src":"68894:96:28"}]},"id":19516,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68818:3:28","nodeType":"FunctionDefinition","parameters":{"id":19502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19495,"mutability":"mutable","name":"p0","nameLocation":"68830:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68822:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19494,"name":"address","nodeType":"ElementaryTypeName","src":"68822:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19497,"mutability":"mutable","name":"p1","nameLocation":"68842:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68834:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19496,"name":"address","nodeType":"ElementaryTypeName","src":"68834:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19499,"mutability":"mutable","name":"p2","nameLocation":"68854:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68846:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19498,"name":"address","nodeType":"ElementaryTypeName","src":"68846:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19501,"mutability":"mutable","name":"p3","nameLocation":"68866:2:28","nodeType":"VariableDeclaration","scope":19516,"src":"68858:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19500,"name":"address","nodeType":"ElementaryTypeName","src":"68858:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68821:48:28"},"returnParameters":{"id":19503,"nodeType":"ParameterList","parameters":[],"src":"68884:0:28"},"scope":19517,"src":"68809:188:28","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":19518,"src":"66:68934:28","usedErrors":[],"usedEvents":[]}],"src":"32:68969:28"},"id":28}},"contracts":{"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC4906.sol":{"IERC4906":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"EIP-721 Metadata Update Extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC4906.sol\":\"IERC4906\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@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.20+commit.a1b79de6\"},\"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 ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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.20+commit.a1b79de6\"},\"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 ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"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.20+commit.a1b79de6\"},\"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 ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 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 EIP-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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol":{"ERC721Burnable":{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","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.20+commit.a1b79de6\"},\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 Token that can be burned (destroyed).\",\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":\"ERC721Burnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ERC721URIStorage":{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC721 token with storage based token URI management.\",\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"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/Strings.sol":{"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"MessageHashUtils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3235:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:18;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:18:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"contracts/gamma/GammaCards.v5.sol":{"IgammaOffersContract":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOfferByUserAndCardNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8[]","name":"","type":"uint8[]"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOffersByUserCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeOffersByUser","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":{"getOfferByUserAndCardNumber(address,uint8)":"9f915069","getOffersByUserCounter(address)":"0cdb3117","hasOffer(address,uint8)":"2edb5fcf","removeOffersByUser(address)":"fc9e80fc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOfferByUserAndCardNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getOffersByUserCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeOffersByUser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"IgammaOffersContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"IgammaPacksContract":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPackOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPacks","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getPackOwner(uint256)":"d3e6a7ad","openPack(uint256,address)":"80f2540b","openPacks(uint256[],address)":"97f8b3d3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getPackOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"IgammaPacksContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"IgammaTicketsContract":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"generateTicket","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"generateTicket(address)":"fa8213d3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"generateTicket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"IgammaTicketsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"NofGammaCardsV5":{"abi":[{"inputs":[{"internalType":"address","name":"_daiTokenAddress","type":"address"},{"internalType":"address","name":"_gammaPacksContract","type":"address"},{"internalType":"address","name":"_gammaOffersContract","type":"address"},{"internalType":"address","name":"_gammaTicketsContract","type":"address"},{"internalType":"string","name":"_baseUri","type":"string"},{"internalType":"address","name":"_signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CannotRemoveUserOffers","type":"error"},{"inputs":[],"name":"CardLimitExceeded","type":"error"},{"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"},{"inputs":[],"name":"IncorrectPrizeAmount","type":"error"},{"inputs":[],"name":"InsufficientCards","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidCardNumber","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidTransfer","type":"error"},{"inputs":[],"name":"MustCompleteAlbum","type":"error"},{"inputs":[],"name":"NotYourPack","type":"error"},{"inputs":[],"name":"OnlyGammaPacksContract","type":"error"},{"inputs":[],"name":"OnlyOffersContract","type":"error"},{"inputs":[],"name":"OnlyOwners","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"UserDoesNotHaveCardOrAlbum","type":"error"},{"inputs":[],"name":"WrongPacksQuantity","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint8","name":"albumClass","type":"uint8"}],"name":"AlbumCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint256","name":"cardTokenId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"albumTokenId","type":"uint256"}],"name":"CardPasted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"CardTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint8[]","name":"cardsNumber","type":"uint8[]"}],"name":"CardsBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint8[]","name":"cardNumber","type":"uint8[]"}],"name":"CardsTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaOffersContract","type":"address"}],"name":"NewGammaOffersContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaPacksContract","type":"address"}],"name":"NewGammaPacksContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaTicketContract","type":"address"}],"name":"NewGammaTicketsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newSigner","type":"address"}],"name":"NewSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"newMainUri","type":"string"},{"indexed":true,"internalType":"string","name":"newSecondaryUri","type":"string"}],"name":"NewUris","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumberFrom","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"cardNumberTo","type":"uint8"}],"name":"OfferCardsExchanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"indexed":true,"internalType":"uint256","name":"packNumber","type":"uint256"}],"name":"PackOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DAI_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSigner","type":"address"}],"name":"addSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"cardNumbers","type":"uint8[]"}],"name":"burnCards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_maxPacksToOpenAtOnce","type":"uint8"}],"name":"changeMaxPacksToOpenAtOnce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPackPrice","type":"uint256"}],"name":"changePackPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"name":"changeRequireOfferValidationInMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"name":"changeRequireOfferValidationInTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"required","type":"bool"}],"name":"changeRequireOpenPackSignerValidation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint8","name":"cardNumberFrom","type":"uint8"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8","name":"cardNumberTo","type":"uint8"}],"name":"exchangeCardsOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishAlbum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gammaOffersContract","outputs":[{"internalType":"contract IgammaOffersContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gammaPacksContract","outputs":[{"internalType":"contract IgammaPacksContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gammaTicketsContract","outputs":[{"internalType":"contract IgammaTicketsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getBurnedCardQttyByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNum","type":"uint8"}],"name":"getCardQuantityByUser","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getCardsByUser","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"},{"internalType":"uint8[]","name":"","type":"uint8[]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLotteryPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNum","type":"uint8"}],"name":"hasCard","outputs":[{"internalType":"bool","name":"has","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasCardByOffer","outputs":[{"internalType":"bool","name":"has","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNum","type":"uint8"}],"name":"mintCard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"openPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"packsQuantity","type":"uint8"},{"internalType":"uint256[]","name":"packsNumber","type":"uint256[]"},{"internalType":"uint8[][]","name":"packsData","type":"uint8[][]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"openPacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ownerToRemove","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_signerToRemove","type":"address"}],"name":"removeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"restoreCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"s_baseUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"s_burnedCards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"s_cards","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"bool","name":"pasted","type":"bool"},{"internalType":"uint8","name":"class","type":"uint8"},{"internalType":"uint256","name":"completion","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"s_cardsByUser","outputs":[{"internalType":"uint8","name":"amount","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cardNumber","type":"uint256"}],"name":"s_cardsInventory","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_lotteryPrizePercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_mainAlbumPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_mainUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_maxPacksToOpenAtOnce","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_packPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_prizesBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_requireOfferValidationInMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_requireOfferValidationInTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_requireOpenPackSignerValidation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_secondaryAlbumPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_secondaryUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_tokenIdCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaOffersContract","type":"address"}],"name":"setGammaOffersContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaPacksContract","type":"address"}],"name":"setGammaPacksContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaTicketsContract","type":"address"}],"name":"setGammaTicketsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"amount","type":"uint8"}],"name":"setLotteryPrizePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMainAlbumPrize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPrizesBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSecondaryAlbumPrize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newMainUri","type":"string"},{"internalType":"string","name":"newSecondaryUri","type":"string"}],"name":"setUris","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"testAddCards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"}],"name":"testOpenPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"transferCard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8[]","name":"cardNumbers","type":"uint8[]"}],"name":"transferCards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verifyPackSigner","outputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4107":{"entryPoint":null,"id":4107,"parameterSlots":6,"returnSlots":0},"@_464":{"entryPoint":null,"id":464,"parameterSlots":2,"returnSlots":0},"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_5830":{"entryPoint":null,"id":5830,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":771,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":853,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_addresst_string_memory_ptrt_address_fromMemory":{"entryPoint":942,"id":null,"parameterSlots":2,"returnSlots":6},"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1568,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":1281,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1364,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":904,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1221,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":1757,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":882,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6370:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:29","statements":[{"nodeType":"YulAssignment","src":"84:22:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:29"},"nodeType":"YulFunctionCall","src":"93:13:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:29"}]},{"body":{"nodeType":"YulBlock","src":"169:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:29"},"nodeType":"YulFunctionCall","src":"171:12:29"},"nodeType":"YulExpressionStatement","src":"171:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:29"},"nodeType":"YulFunctionCall","src":"150:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:29"},"nodeType":"YulFunctionCall","src":"135:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:29"},"nodeType":"YulFunctionCall","src":"125:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:29"},"nodeType":"YulFunctionCall","src":"118:50:29"},"nodeType":"YulIf","src":"115:70:29"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:29","type":""}],"src":"14:177:29"},{"body":{"nodeType":"YulBlock","src":"228:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"245:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"252:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"257:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"248:3:29"},"nodeType":"YulFunctionCall","src":"248:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"238:6:29"},"nodeType":"YulFunctionCall","src":"238:31:29"},"nodeType":"YulExpressionStatement","src":"238:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"285:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"288:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"278:6:29"},"nodeType":"YulFunctionCall","src":"278:15:29"},"nodeType":"YulExpressionStatement","src":"278:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:29"},"nodeType":"YulFunctionCall","src":"302:15:29"},"nodeType":"YulExpressionStatement","src":"302:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"196:127:29"},{"body":{"nodeType":"YulBlock","src":"394:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"404:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"413:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"408:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"473:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"498:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"503:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"494:3:29"},"nodeType":"YulFunctionCall","src":"494:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"517:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"522:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:29"},"nodeType":"YulFunctionCall","src":"513:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"507:5:29"},"nodeType":"YulFunctionCall","src":"507:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"487:6:29"},"nodeType":"YulFunctionCall","src":"487:39:29"},"nodeType":"YulExpressionStatement","src":"487:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"434:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"437:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"431:2:29"},"nodeType":"YulFunctionCall","src":"431:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"445:19:29","statements":[{"nodeType":"YulAssignment","src":"447:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"456:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"459:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"452:3:29"},"nodeType":"YulFunctionCall","src":"452:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"447:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"427:3:29","statements":[]},"src":"423:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"556:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"561:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"552:3:29"},"nodeType":"YulFunctionCall","src":"552:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"570:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"545:6:29"},"nodeType":"YulFunctionCall","src":"545:27:29"},"nodeType":"YulExpressionStatement","src":"545:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"372:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"377:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"382:6:29","type":""}],"src":"328:250:29"},{"body":{"nodeType":"YulBlock","src":"759:1149:29","statements":[{"body":{"nodeType":"YulBlock","src":"806:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"815:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"818:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"808:6:29"},"nodeType":"YulFunctionCall","src":"808:12:29"},"nodeType":"YulExpressionStatement","src":"808:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"780:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"789:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"776:3:29"},"nodeType":"YulFunctionCall","src":"776:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"801:3:29","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"772:3:29"},"nodeType":"YulFunctionCall","src":"772:33:29"},"nodeType":"YulIf","src":"769:53:29"},{"nodeType":"YulAssignment","src":"831:50:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"871:9:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"841:29:29"},"nodeType":"YulFunctionCall","src":"841:40:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"831:6:29"}]},{"nodeType":"YulAssignment","src":"890:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:29"},"nodeType":"YulFunctionCall","src":"930:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"900:29:29"},"nodeType":"YulFunctionCall","src":"900:49:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"890:6:29"}]},{"nodeType":"YulAssignment","src":"958:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1013:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"998:3:29"},"nodeType":"YulFunctionCall","src":"998:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"968:29:29"},"nodeType":"YulFunctionCall","src":"968:49:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:29"}]},{"nodeType":"YulAssignment","src":"1026:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1070:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1081:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:29"},"nodeType":"YulFunctionCall","src":"1066:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1036:29:29"},"nodeType":"YulFunctionCall","src":"1036:49:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1026:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1094:40:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1118:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1129:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1114:3:29"},"nodeType":"YulFunctionCall","src":"1114:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1108:5:29"},"nodeType":"YulFunctionCall","src":"1108:26:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1098:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1143:28:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1161:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1165:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1157:3:29"},"nodeType":"YulFunctionCall","src":"1157:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1169:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1153:3:29"},"nodeType":"YulFunctionCall","src":"1153:18:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1147:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1198:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1207:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1210:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1200:6:29"},"nodeType":"YulFunctionCall","src":"1200:12:29"},"nodeType":"YulExpressionStatement","src":"1200:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1186:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1194:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1183:2:29"},"nodeType":"YulFunctionCall","src":"1183:14:29"},"nodeType":"YulIf","src":"1180:34:29"},{"nodeType":"YulVariableDeclaration","src":"1223:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1237:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1248:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1233:3:29"},"nodeType":"YulFunctionCall","src":"1233:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1227:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1303:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1312:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1315:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1305:6:29"},"nodeType":"YulFunctionCall","src":"1305:12:29"},"nodeType":"YulExpressionStatement","src":"1305:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1282:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1286:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1278:3:29"},"nodeType":"YulFunctionCall","src":"1278:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1293:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1274:3:29"},"nodeType":"YulFunctionCall","src":"1274:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1267:6:29"},"nodeType":"YulFunctionCall","src":"1267:35:29"},"nodeType":"YulIf","src":"1264:55:29"},{"nodeType":"YulVariableDeclaration","src":"1328:19:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1344:2:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1338:5:29"},"nodeType":"YulFunctionCall","src":"1338:9:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1332:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1370:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1372:16:29"},"nodeType":"YulFunctionCall","src":"1372:18:29"},"nodeType":"YulExpressionStatement","src":"1372:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1362:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1366:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1359:2:29"},"nodeType":"YulFunctionCall","src":"1359:10:29"},"nodeType":"YulIf","src":"1356:36:29"},{"nodeType":"YulVariableDeclaration","src":"1401:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1415:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1411:3:29"},"nodeType":"YulFunctionCall","src":"1411:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1405:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1427:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1447:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1441:5:29"},"nodeType":"YulFunctionCall","src":"1441:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1431:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1459:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1481:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1505:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1509:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1501:3:29"},"nodeType":"YulFunctionCall","src":"1501:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1516:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1497:3:29"},"nodeType":"YulFunctionCall","src":"1497:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"1521:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:29"},"nodeType":"YulFunctionCall","src":"1493:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1526:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1489:3:29"},"nodeType":"YulFunctionCall","src":"1489:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1477:3:29"},"nodeType":"YulFunctionCall","src":"1477:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1463:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1589:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1591:16:29"},"nodeType":"YulFunctionCall","src":"1591:18:29"},"nodeType":"YulExpressionStatement","src":"1591:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1548:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1560:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1545:2:29"},"nodeType":"YulFunctionCall","src":"1545:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1568:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1580:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1565:2:29"},"nodeType":"YulFunctionCall","src":"1565:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1542:2:29"},"nodeType":"YulFunctionCall","src":"1542:46:29"},"nodeType":"YulIf","src":"1539:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1627:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1631:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1620:6:29"},"nodeType":"YulFunctionCall","src":"1620:22:29"},"nodeType":"YulExpressionStatement","src":"1620:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1658:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1666:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1651:6:29"},"nodeType":"YulFunctionCall","src":"1651:18:29"},"nodeType":"YulExpressionStatement","src":"1651:18:29"},{"body":{"nodeType":"YulBlock","src":"1715:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1724:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1727:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1717:6:29"},"nodeType":"YulFunctionCall","src":"1717:12:29"},"nodeType":"YulExpressionStatement","src":"1717:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1692:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1696:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1688:3:29"},"nodeType":"YulFunctionCall","src":"1688:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1701:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1684:3:29"},"nodeType":"YulFunctionCall","src":"1684:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1706:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1681:2:29"},"nodeType":"YulFunctionCall","src":"1681:33:29"},"nodeType":"YulIf","src":"1678:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1779:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1783:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1775:3:29"},"nodeType":"YulFunctionCall","src":"1775:11:29"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1792:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1800:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1788:3:29"},"nodeType":"YulFunctionCall","src":"1788:15:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1805:2:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1740:34:29"},"nodeType":"YulFunctionCall","src":"1740:68:29"},"nodeType":"YulExpressionStatement","src":"1740:68:29"},{"nodeType":"YulAssignment","src":"1817:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1827:6:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1817:6:29"}]},{"nodeType":"YulAssignment","src":"1842:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1886:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1897:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1882:3:29"},"nodeType":"YulFunctionCall","src":"1882:19:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1852:29:29"},"nodeType":"YulFunctionCall","src":"1852:50:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1842:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_addresst_string_memory_ptrt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"685:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"696:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"708:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"716:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"724:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"732:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"740:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"748:6:29","type":""}],"src":"583:1325:29"},{"body":{"nodeType":"YulBlock","src":"1968:325:29","statements":[{"nodeType":"YulAssignment","src":"1978:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1992:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1995:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1988:3:29"},"nodeType":"YulFunctionCall","src":"1988:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1978:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2009:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2039:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"2045:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2035:3:29"},"nodeType":"YulFunctionCall","src":"2035:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2013:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2086:31:29","statements":[{"nodeType":"YulAssignment","src":"2088:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2102:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2110:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2098:3:29"},"nodeType":"YulFunctionCall","src":"2098:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2088:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2066:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2059:6:29"},"nodeType":"YulFunctionCall","src":"2059:26:29"},"nodeType":"YulIf","src":"2056:61:29"},{"body":{"nodeType":"YulBlock","src":"2176:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2197:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2204:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2209:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2200:3:29"},"nodeType":"YulFunctionCall","src":"2200:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2190:6:29"},"nodeType":"YulFunctionCall","src":"2190:31:29"},"nodeType":"YulExpressionStatement","src":"2190:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2241:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2244:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2234:6:29"},"nodeType":"YulFunctionCall","src":"2234:15:29"},"nodeType":"YulExpressionStatement","src":"2234:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2269:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2272:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2262:6:29"},"nodeType":"YulFunctionCall","src":"2262:15:29"},"nodeType":"YulExpressionStatement","src":"2262:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2132:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2155:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2152:2:29"},"nodeType":"YulFunctionCall","src":"2152:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2129:2:29"},"nodeType":"YulFunctionCall","src":"2129:38:29"},"nodeType":"YulIf","src":"2126:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1948:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1957:6:29","type":""}],"src":"1913:380:29"},{"body":{"nodeType":"YulBlock","src":"2354:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2371:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2374:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2364:6:29"},"nodeType":"YulFunctionCall","src":"2364:14:29"},"nodeType":"YulExpressionStatement","src":"2364:14:29"},{"nodeType":"YulAssignment","src":"2387:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2405:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2408:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2395:9:29"},"nodeType":"YulFunctionCall","src":"2395:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2387:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2337:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2345:4:29","type":""}],"src":"2298:121:29"},{"body":{"nodeType":"YulBlock","src":"2505:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"2538:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2552:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2562:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2556:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2583:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"2587:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2576:6:29"},"nodeType":"YulFunctionCall","src":"2576:17:29"},"nodeType":"YulExpressionStatement","src":"2576:17:29"},{"nodeType":"YulVariableDeclaration","src":"2606:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2628:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2632:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2618:9:29"},"nodeType":"YulFunctionCall","src":"2618:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2610:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2650:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2673:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2683:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2690:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2702:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2686:3:29"},"nodeType":"YulFunctionCall","src":"2686:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2679:3:29"},"nodeType":"YulFunctionCall","src":"2679:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2669:3:29"},"nodeType":"YulFunctionCall","src":"2669:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2654:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2744:23:29","statements":[{"nodeType":"YulAssignment","src":"2746:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"2761:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2746:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2726:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2738:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2723:2:29"},"nodeType":"YulFunctionCall","src":"2723:20:29"},"nodeType":"YulIf","src":"2720:47:29"},{"nodeType":"YulVariableDeclaration","src":"2780:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2794:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2804:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2811:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2816:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2807:3:29"},"nodeType":"YulFunctionCall","src":"2807:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2800:3:29"},"nodeType":"YulFunctionCall","src":"2800:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2790:3:29"},"nodeType":"YulFunctionCall","src":"2790:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2784:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2834:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2847:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2838:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2932:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2941:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2948:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2934:6:29"},"nodeType":"YulFunctionCall","src":"2934:17:29"},"nodeType":"YulExpressionStatement","src":"2934:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2882:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2889:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2879:2:29"},"nodeType":"YulFunctionCall","src":"2879:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2893:26:29","statements":[{"nodeType":"YulAssignment","src":"2895:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2908:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2915:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2904:3:29"},"nodeType":"YulFunctionCall","src":"2904:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2895:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2875:3:29","statements":[]},"src":"2871:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2521:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2526:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2518:2:29"},"nodeType":"YulFunctionCall","src":"2518:11:29"},"nodeType":"YulIf","src":"2515:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2477:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"2484:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2489:10:29","type":""}],"src":"2424:545:29"},{"body":{"nodeType":"YulBlock","src":"3059:81:29","statements":[{"nodeType":"YulAssignment","src":"3069:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3084:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3102:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"3105:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3098:3:29"},"nodeType":"YulFunctionCall","src":"3098:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3115:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3111:3:29"},"nodeType":"YulFunctionCall","src":"3111:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3094:3:29"},"nodeType":"YulFunctionCall","src":"3094:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3090:3:29"},"nodeType":"YulFunctionCall","src":"3090:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3080:3:29"},"nodeType":"YulFunctionCall","src":"3080:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3126:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"3129:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3122:3:29"},"nodeType":"YulFunctionCall","src":"3122:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3077:2:29"},"nodeType":"YulFunctionCall","src":"3077:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"3069:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3036:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"3042:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"3050:4:29","type":""}],"src":"2974:166:29"},{"body":{"nodeType":"YulBlock","src":"3241:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3251:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3271:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3265:5:29"},"nodeType":"YulFunctionCall","src":"3265:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"3255:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3318:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3320:16:29"},"nodeType":"YulFunctionCall","src":"3320:18:29"},"nodeType":"YulExpressionStatement","src":"3320:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3290:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3306:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3310:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3302:3:29"},"nodeType":"YulFunctionCall","src":"3302:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"3314:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3298:3:29"},"nodeType":"YulFunctionCall","src":"3298:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3287:2:29"},"nodeType":"YulFunctionCall","src":"3287:30:29"},"nodeType":"YulIf","src":"3284:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3393:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3431:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3425:5:29"},"nodeType":"YulFunctionCall","src":"3425:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3399:25:29"},"nodeType":"YulFunctionCall","src":"3399:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3439:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3349:43:29"},"nodeType":"YulFunctionCall","src":"3349:97:29"},"nodeType":"YulExpressionStatement","src":"3349:97:29"},{"nodeType":"YulVariableDeclaration","src":"3455:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3472:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3459:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3482:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3501:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3486:11:29","type":""}]},{"nodeType":"YulAssignment","src":"3514:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3527:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3514:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3584:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3598:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3617:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3629:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3625:3:29"},"nodeType":"YulFunctionCall","src":"3625:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3613:3:29"},"nodeType":"YulFunctionCall","src":"3613:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3602:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3646:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3690:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3660:29:29"},"nodeType":"YulFunctionCall","src":"3660:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3650:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3708:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3717:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3712:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3795:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3820:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3838:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3843:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3834:3:29"},"nodeType":"YulFunctionCall","src":"3834:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3828:5:29"},"nodeType":"YulFunctionCall","src":"3828:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3813:6:29"},"nodeType":"YulFunctionCall","src":"3813:42:29"},"nodeType":"YulExpressionStatement","src":"3813:42:29"},{"nodeType":"YulAssignment","src":"3872:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3886:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3894:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3882:3:29"},"nodeType":"YulFunctionCall","src":"3882:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3872:6:29"}]},{"nodeType":"YulAssignment","src":"3913:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3930:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3941:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3926:3:29"},"nodeType":"YulFunctionCall","src":"3926:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3913:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3742:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3745:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3739:2:29"},"nodeType":"YulFunctionCall","src":"3739:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3754:28:29","statements":[{"nodeType":"YulAssignment","src":"3756:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3765:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3768:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3761:3:29"},"nodeType":"YulFunctionCall","src":"3761:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3756:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3735:3:29","statements":[]},"src":"3731:236:29"},{"body":{"nodeType":"YulBlock","src":"4015:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4033:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4060:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4065:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4056:3:29"},"nodeType":"YulFunctionCall","src":"4056:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4050:5:29"},"nodeType":"YulFunctionCall","src":"4050:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"4037:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4100:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"4112:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4139:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"4142:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4135:3:29"},"nodeType":"YulFunctionCall","src":"4135:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"4151:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4131:3:29"},"nodeType":"YulFunctionCall","src":"4131:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4161:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4157:3:29"},"nodeType":"YulFunctionCall","src":"4157:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4127:3:29"},"nodeType":"YulFunctionCall","src":"4127:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4123:3:29"},"nodeType":"YulFunctionCall","src":"4123:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4108:3:29"},"nodeType":"YulFunctionCall","src":"4108:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4093:6:29"},"nodeType":"YulFunctionCall","src":"4093:74:29"},"nodeType":"YulExpressionStatement","src":"4093:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3986:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3995:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3983:2:29"},"nodeType":"YulFunctionCall","src":"3983:19:29"},"nodeType":"YulIf","src":"3980:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4201:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4215:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"4218:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4211:3:29"},"nodeType":"YulFunctionCall","src":"4211:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"4227:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4207:3:29"},"nodeType":"YulFunctionCall","src":"4207:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4194:6:29"},"nodeType":"YulFunctionCall","src":"4194:36:29"},"nodeType":"YulExpressionStatement","src":"4194:36:29"}]},"nodeType":"YulCase","src":"3577:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3582:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4257:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4271:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"4284:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4275:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4320:67:29","statements":[{"nodeType":"YulAssignment","src":"4338:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4357:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4362:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4353:3:29"},"nodeType":"YulFunctionCall","src":"4353:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4347:5:29"},"nodeType":"YulFunctionCall","src":"4347:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4338:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"4301:6:29"},"nodeType":"YulIf","src":"4298:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4407:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4466:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"4473:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4413:52:29"},"nodeType":"YulFunctionCall","src":"4413:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4400:6:29"},"nodeType":"YulFunctionCall","src":"4400:81:29"},"nodeType":"YulExpressionStatement","src":"4400:81:29"}]},"nodeType":"YulCase","src":"4249:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3557:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3565:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3554:2:29"},"nodeType":"YulFunctionCall","src":"3554:14:29"},"nodeType":"YulSwitch","src":"3547:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"3226:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"3232:3:29","type":""}],"src":"3145:1352:29"},{"body":{"nodeType":"YulBlock","src":"4603:102:29","statements":[{"nodeType":"YulAssignment","src":"4613:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4625:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4636:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4621:3:29"},"nodeType":"YulFunctionCall","src":"4621:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4613:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4655:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4670:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4686:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4691:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4682:3:29"},"nodeType":"YulFunctionCall","src":"4682:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"4695:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4678:3:29"},"nodeType":"YulFunctionCall","src":"4678:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4666:3:29"},"nodeType":"YulFunctionCall","src":"4666:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4648:6:29"},"nodeType":"YulFunctionCall","src":"4648:51:29"},"nodeType":"YulExpressionStatement","src":"4648:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4572:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4583:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4594:4:29","type":""}],"src":"4502:203:29"},{"body":{"nodeType":"YulBlock","src":"4986:1145:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4996:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5007:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"5000:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5017:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5040:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5034:5:29"},"nodeType":"YulFunctionCall","src":"5034:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"5021:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5056:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5096:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"5070:25:29"},"nodeType":"YulFunctionCall","src":"5070:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5060:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5115:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5125:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5119:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"5176:126:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5197:3:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5206:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5221:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5217:3:29"},"nodeType":"YulFunctionCall","src":"5217:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5202:3:29"},"nodeType":"YulFunctionCall","src":"5202:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5190:6:29"},"nodeType":"YulFunctionCall","src":"5190:37:29"},"nodeType":"YulExpressionStatement","src":"5190:37:29"},{"nodeType":"YulAssignment","src":"5240:52:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5251:3:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5260:6:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5282:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5275:6:29"},"nodeType":"YulFunctionCall","src":"5275:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5268:6:29"},"nodeType":"YulFunctionCall","src":"5268:22:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5256:3:29"},"nodeType":"YulFunctionCall","src":"5256:35:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5247:3:29"},"nodeType":"YulFunctionCall","src":"5247:45:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5240:3:29"}]}]},"nodeType":"YulCase","src":"5169:133:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5174:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5318:349:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5339:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"5342:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5332:6:29"},"nodeType":"YulFunctionCall","src":"5332:17:29"},"nodeType":"YulExpressionStatement","src":"5332:17:29"},{"nodeType":"YulVariableDeclaration","src":"5362:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5372:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5366:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5389:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5414:1:29","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"5417:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5404:9:29"},"nodeType":"YulFunctionCall","src":"5404:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"5393:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5433:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5442:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5437:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5510:111:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5539:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"5544:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5535:3:29"},"nodeType":"YulFunctionCall","src":"5535:11:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"5554:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5548:5:29"},"nodeType":"YulFunctionCall","src":"5548:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5528:6:29"},"nodeType":"YulFunctionCall","src":"5528:35:29"},"nodeType":"YulExpressionStatement","src":"5528:35:29"},{"nodeType":"YulAssignment","src":"5580:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"5595:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5604:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5591:3:29"},"nodeType":"YulFunctionCall","src":"5591:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"5580:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5467:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"5470:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5464:2:29"},"nodeType":"YulFunctionCall","src":"5464:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5478:19:29","statements":[{"nodeType":"YulAssignment","src":"5480:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5489:1:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5492:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5485:3:29"},"nodeType":"YulFunctionCall","src":"5485:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5480:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"5460:3:29","statements":[]},"src":"5456:165:29"},{"nodeType":"YulAssignment","src":"5634:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5645:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"5650:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5641:3:29"},"nodeType":"YulFunctionCall","src":"5641:16:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5634:3:29"}]}]},"nodeType":"YulCase","src":"5311:356:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5316:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5146:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5157:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5142:3:29"},"nodeType":"YulFunctionCall","src":"5142:18:29"},"nodeType":"YulSwitch","src":"5135:532:29"},{"nodeType":"YulVariableDeclaration","src":"5676:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5698:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5692:5:29"},"nodeType":"YulFunctionCall","src":"5692:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"5680:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5753:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5761:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5749:3:29"},"nodeType":"YulFunctionCall","src":"5749:17:29"},{"name":"ret","nodeType":"YulIdentifier","src":"5768:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"5773:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5714:34:29"},"nodeType":"YulFunctionCall","src":"5714:68:29"},"nodeType":"YulExpressionStatement","src":"5714:68:29"},{"nodeType":"YulVariableDeclaration","src":"5791:31:29","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"5808:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"5813:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5804:3:29"},"nodeType":"YulFunctionCall","src":"5804:18:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"5795:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5831:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5853:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5847:5:29"},"nodeType":"YulFunctionCall","src":"5847:13:29"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"5835:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5908:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5916:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5904:3:29"},"nodeType":"YulFunctionCall","src":"5904:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"5923:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"5930:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5869:34:29"},"nodeType":"YulFunctionCall","src":"5869:70:29"},"nodeType":"YulExpressionStatement","src":"5869:70:29"},{"nodeType":"YulVariableDeclaration","src":"5948:30:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"5962:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"5969:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5958:3:29"},"nodeType":"YulFunctionCall","src":"5958:20:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5952:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5987:29:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6009:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6003:5:29"},"nodeType":"YulFunctionCall","src":"6003:13:29"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"5991:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6064:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6072:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6060:3:29"},"nodeType":"YulFunctionCall","src":"6060:17:29"},{"name":"_3","nodeType":"YulIdentifier","src":"6079:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"6083:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6025:34:29"},"nodeType":"YulFunctionCall","src":"6025:67:29"},"nodeType":"YulExpressionStatement","src":"6025:67:29"},{"nodeType":"YulAssignment","src":"6101:24:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6112:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"6116:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6108:3:29"},"nodeType":"YulFunctionCall","src":"6108:17:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6101:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4938:3:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4943:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4951:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4959:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4967:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4978:3:29","type":""}],"src":"4710:1421:29"},{"body":{"nodeType":"YulBlock","src":"6183:185:29","statements":[{"body":{"nodeType":"YulBlock","src":"6222:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6243:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6250:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6255:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6246:3:29"},"nodeType":"YulFunctionCall","src":"6246:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6236:6:29"},"nodeType":"YulFunctionCall","src":"6236:31:29"},"nodeType":"YulExpressionStatement","src":"6236:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6287:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6290:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6280:6:29"},"nodeType":"YulFunctionCall","src":"6280:15:29"},"nodeType":"YulExpressionStatement","src":"6280:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6315:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6318:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6308:6:29"},"nodeType":"YulFunctionCall","src":"6308:15:29"},"nodeType":"YulExpressionStatement","src":"6308:15:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6199:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6210:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6206:3:29"},"nodeType":"YulFunctionCall","src":"6206:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6196:2:29"},"nodeType":"YulFunctionCall","src":"6196:17:29"},"nodeType":"YulIf","src":"6193:140:29"},{"nodeType":"YulAssignment","src":"6342:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6353:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"6360:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6349:3:29"},"nodeType":"YulFunctionCall","src":"6349:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6342:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6165:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"6175:3:29","type":""}],"src":"6136:232:29"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_decode_tuple_t_addresst_addresst_addresst_addresst_string_memory_ptrt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n let offset := mload(add(headStart, 128))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n value4 := memPtr\n value5 := abi_decode_address_fromMemory(add(headStart, 160))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), ret, length_1)\n let end_1 := add(ret, length_1)\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), end_1, length_2)\n let _3 := add(end_1, length_2)\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), _3, length_3)\n end := add(_3, length_3)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":5805},{"length":20,"start":6489},{"length":20,"start":10458},{"length":20,"start":15317}]},"contracts/gamma/libs/LibPackVerifier.sol":{"LibPackVerifier":[{"length":20,"start":6067},{"length":20,"start":15807}]},"contracts/gamma/libs/LibStringUtils.sol":{"LibStringUtils":[{"length":20,"start":14469}]}},"object":"6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040516200592d3803806200592d8339810160408190526200007d91620003ae565b336040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000d1919062000554565b506001620000e0828262000554565b5050506001600160a01b0381166200011257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200011d8162000303565b50336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a805486841690831617905560098054928716929091169190911790556017620001a4838262000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b81840152935162000203946017949390910162000620565b6040516020818303038152906040526015908162000222919062000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b81840152935162000281946017949390910162000620565b60405160208183030381529060405260169081620002a0919062000554565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015620002f6576000818152601a602052604090206001905580620002ed81620006dd565b915050620002c5565b5050505050505062000705565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003a55781810151838201526020016200038b565b50506000910152565b60008060008060008060c08789031215620003c857600080fd5b620003d38762000355565b9550620003e36020880162000355565b9450620003f36040880162000355565b9350620004036060880162000355565b60808801519093506001600160401b03808211156200042157600080fd5b818901915089601f8301126200043657600080fd5b8151818111156200044b576200044b62000372565b604051601f8201601f19908116603f0116810190838211818310171562000476576200047662000372565b816040528281528c60208487010111156200049057600080fd5b620004a383602083016020880162000388565b8096505050505050620004b960a0880162000355565b90509295509295509295565b600181811c90821680620004da57607f821691505b602082108103620004fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054f57600081815260208120601f850160051c810160208610156200052a5750805b601f850160051c820191505b818110156200054b5782815560010162000536565b5050505b505050565b81516001600160401b0381111562000570576200057062000372565b6200058881620005818454620004c5565b8462000501565b602080601f831160018114620005c05760008415620005a75750858301515b600019600386901b1c1916600185901b1785556200054b565b600085815260208120601f198616915b82811015620005f157888601518255948401946001909101908401620005d0565b5085821015620006105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008086546200063081620004c5565b600182811680156200064b5760018114620006615762000692565b60ff198416875282151583028701945062000692565b8a60005260208060002060005b85811015620006895781548a8201529084019082016200066e565b50505082870194505b505050508551620006a8818360208a0162000388565b8551910190620006bd81836020890162000388565b8451910190620006d281836020880162000388565b019695505050505050565b600060018201620006fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b61521880620007156000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xF DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x320A OR SWAP1 SSTORE PUSH8 0x10A741A462780000 PUSH1 0x11 SSTORE PUSH1 0x0 PUSH1 0x12 SSTORE PUSH8 0xD02AB486CEDC0000 PUSH1 0x13 SSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x14 SSTORE PUSH1 0x18 DUP1 SLOAD PUSH3 0xFFFF00 NOT AND PUSH3 0x10100 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x592D CODESIZE SUB DUP1 PUSH3 0x592D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x7D SWAP2 PUSH3 0x3AE JUMP JUMPDEST CALLER PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x47616D6D614361726473 PUSH1 0xB0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x4E4F465F4743 PUSH1 0xD0 SHL DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0xE0 DUP3 DUP3 PUSH3 0x554 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x112 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x11D DUP2 PUSH3 0x303 JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH3 0x10000 MUL PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x8 DUP1 SLOAD DUP8 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xA DUP1 SLOAD DUP7 DUP5 AND SWAP1 DUP4 AND OR SWAP1 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP3 DUP8 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x17 PUSH3 0x1A4 DUP4 DUP3 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x2F PUSH1 0xF8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x31323 PUSH1 0xEC SHL DUP2 DUP4 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH6 0x23173539B7B7 PUSH1 0xD1 SHL DUP2 DUP5 ADD MSTORE SWAP4 MLOAD PUSH3 0x203 SWAP5 PUSH1 0x17 SWAP5 SWAP4 SWAP1 SWAP2 ADD PUSH3 0x620 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x15 SWAP1 DUP2 PUSH3 0x222 SWAP2 SWAP1 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x2F PUSH1 0xF8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x313231 PUSH1 0xE8 SHL DUP2 DUP4 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x6 DUP2 MSTORE PUSH6 0x23173539B7B7 PUSH1 0xD1 SHL DUP2 DUP5 ADD MSTORE SWAP4 MLOAD PUSH3 0x281 SWAP5 PUSH1 0x17 SWAP5 SWAP4 SWAP1 SWAP2 ADD PUSH3 0x620 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x16 SWAP1 DUP2 PUSH3 0x2A0 SWAP2 SWAP1 PUSH3 0x554 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMPDEST PUSH1 0x7A DUP2 LT ISZERO PUSH3 0x2F6 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE DUP1 PUSH3 0x2ED DUP2 PUSH3 0x6DD JUMP JUMPDEST SWAP2 POP POP PUSH3 0x2C5 JUMP JUMPDEST POP POP POP POP POP POP POP PUSH3 0x705 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x38B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x3D3 DUP8 PUSH3 0x355 JUMP JUMPDEST SWAP6 POP PUSH3 0x3E3 PUSH1 0x20 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST SWAP5 POP PUSH3 0x3F3 PUSH1 0x40 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST SWAP4 POP PUSH3 0x403 PUSH1 0x60 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST PUSH1 0x80 DUP9 ADD MLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x44B JUMPI PUSH3 0x44B PUSH3 0x372 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x476 JUMPI PUSH3 0x476 PUSH3 0x372 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP13 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x4A3 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x388 JUMP JUMPDEST DUP1 SWAP7 POP POP POP POP POP POP PUSH3 0x4B9 PUSH1 0xA0 DUP9 ADD PUSH3 0x355 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x4DA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x4FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x54F JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x52A JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x54B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x536 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x570 JUMPI PUSH3 0x570 PUSH3 0x372 JUMP JUMPDEST PUSH3 0x588 DUP2 PUSH3 0x581 DUP5 SLOAD PUSH3 0x4C5 JUMP JUMPDEST DUP5 PUSH3 0x501 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x5C0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x5A7 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x54B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x5F1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x5D0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x610 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 SLOAD PUSH3 0x630 DUP2 PUSH3 0x4C5 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH3 0x64B JUMPI PUSH1 0x1 DUP2 EQ PUSH3 0x661 JUMPI PUSH3 0x692 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH3 0x692 JUMP JUMPDEST DUP11 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH3 0x689 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH3 0x66E JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP6 MLOAD PUSH3 0x6A8 DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH3 0x388 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH3 0x6BD DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH3 0x388 JUMP JUMPDEST DUP5 MLOAD SWAP2 ADD SWAP1 PUSH3 0x6D2 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH3 0x388 JUMP JUMPDEST ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x6FE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0x5218 DUP1 PUSH3 0x715 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x45F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7232D7D4 GT PUSH2 0x24C JUMPI DUP1 PUSH4 0xAD1684FA GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDBFC05CF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE8A7E31D GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE8A7E31D EQ PUSH2 0xA64 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0xA6C JUMPI DUP1 PUSH4 0xEB12D61E EQ PUSH2 0xA7F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xF98FD283 EQ PUSH2 0xAA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDBFC05CF EQ PUSH2 0xA05 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0xA18 JUMPI DUP1 PUSH4 0xE1883C6E EQ PUSH2 0xA2B JUMPI DUP1 PUSH4 0xE4AE0B9B EQ PUSH2 0xA3E JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0xA4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC87B56DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x9BB JUMPI DUP1 PUSH4 0xCAFAA473 EQ PUSH2 0x9CE JUMPI DUP1 PUSH4 0xD322B563 EQ PUSH2 0x9E1 JUMPI DUP1 PUSH4 0xD7093F40 EQ PUSH2 0x9F4 JUMPI DUP1 PUSH4 0xD780C477 EQ PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAD1684FA EQ PUSH2 0x966 JUMPI DUP1 PUSH4 0xB3526185 EQ PUSH2 0x979 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x982 JUMPI DUP1 PUSH4 0xBA6C0FBC EQ PUSH2 0x995 JUMPI DUP1 PUSH4 0xBF400A6A EQ PUSH2 0x9A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x9FF26EFD GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x9FF26EFD EQ PUSH2 0x8F2 JUMPI DUP1 PUSH4 0xA1AF8AD4 EQ PUSH2 0x920 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x933 JUMPI DUP1 PUSH4 0xA419811D EQ PUSH2 0x946 JUMPI DUP1 PUSH4 0xAB535160 EQ PUSH2 0x959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x9038F414 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0x9A5613AD EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0x9C7F707F EQ PUSH2 0x8DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DF73E27 GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x7DF73E27 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0x82D8A118 EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0x886EB60F EQ PUSH2 0x865 JUMPI DUP1 PUSH4 0x88E0EF80 EQ PUSH2 0x878 JUMPI DUP1 PUSH4 0x8BF670C8 EQ PUSH2 0x898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7232D7D4 EQ PUSH2 0x7EF JUMPI DUP1 PUSH4 0x79E8DADC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0x7CE65F7B EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0x7CF86B72 EQ PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D GT PUSH2 0x35D JUMPI DUP1 PUSH4 0x5312EA8E GT PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x6D0AF178 GT PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6D0AF178 EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x7AE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x7C1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x7155A3AC EQ PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5312EA8E EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0x5E31CE48 EQ PUSH2 0x75A JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x76D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x780 JUMPI DUP1 PUSH4 0x68CC5BC1 EQ PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30F5CC58 GT PUSH2 0x32C JUMPI DUP1 PUSH4 0x30F5CC58 EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0x4039327E EQ PUSH2 0x6A7 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x4C03CD0B EQ PUSH2 0x6D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2CA699E7 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x655 JUMPI DUP1 PUSH4 0x2F9E026A EQ PUSH2 0x681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 GT PUSH2 0x3EB JUMPI DUP1 PUSH4 0x203335F6 GT PUSH2 0x3AF JUMPI DUP1 PUSH4 0x203335F6 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0x20965A5F EQ PUSH2 0x5ED JUMPI DUP1 PUSH4 0x21A7C6B0 EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x609 JUMPI DUP1 PUSH4 0x241A08FE EQ PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x155E2F92 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x1585CC4E EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x5C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81812FC GT PUSH2 0x432 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xE316AB7 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x128916DC EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x1306952C EQ PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x435DCAF EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x7B2E246 EQ PUSH2 0x4C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x477 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x4389 JUMP JUMPDEST PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49F PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xAC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4416 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0xE79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP2 SWAP1 PUSH2 0x44D1 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x4D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x4FF CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0xF0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x44FD JUMP JUMPDEST PUSH2 0xF34 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x52F PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xFE9 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x108C JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1118 JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1195 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x47B3 JUMP JUMPDEST PUSH2 0x1266 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5FB CALLDATASIZE PUSH1 0x4 PUSH2 0x48A9 JUMP JUMPDEST PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x617 CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x62A CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x63D CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x1A17 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x650 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1A24 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4946 JUMP JUMPDEST PUSH2 0x1C77 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FAD JUMP JUMPDEST PUSH2 0x717 PUSH2 0x6E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x755 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FB9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x768 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x77B CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2119 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x797 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x2124 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7BC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x7CF CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x21E7 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x222F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7EA CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x2243 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7FD CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x22A3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x22F9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2306 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x82B CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x83E CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x23C3 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x886 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x8A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x241F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x504 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x281E JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x8ED CALLDATASIZE PUSH1 0x4 PUSH2 0x4A49 JUMP JUMPDEST PUSH2 0x282D JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x900 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x92E CALLDATASIZE PUSH1 0x4 PUSH2 0x4AAC JUMP JUMPDEST PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x941 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B00 JUMP JUMPDEST PUSH2 0x2C49 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x954 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2C54 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x974 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B39 JUMP JUMPDEST PUSH2 0x2CF3 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x990 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B91 JUMP JUMPDEST PUSH2 0x2F86 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2FF3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x9C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x323F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9DC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x324A JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x12 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x32ED JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA13 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x331A JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA26 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x335D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA39 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x504 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x3430 JUMP JUMPDEST PUSH2 0x477 PUSH2 0xA7A CALLDATASIZE PUSH1 0x4 PUSH2 0x4C10 JUMP JUMPDEST PUSH2 0x343D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA8D CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x346B JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAA0 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x34E2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAB3 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x3520 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x356A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xCAF JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO PUSH2 0xC9D JUMPI DUP1 DUP6 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 AND DUP4 MSTORE SWAP1 SWAP3 MSTORE KECCAK256 SLOAD DUP6 MLOAD SWAP1 DUP3 AND SWAP2 DUP7 SWAP2 SWAP1 DUP6 AND SWAP1 DUP2 LT PUSH2 0xBE5 JUMPI PUSH2 0xBE5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC6A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST DUP4 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xC7F JUMPI PUSH2 0xC7F PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 PUSH2 0xC99 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 PUSH2 0xCA7 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB46 JUMP JUMPDEST POP PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCD PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCF6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD16 JUMPI PUSH2 0xD16 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD3F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD5F JUMPI PUSH2 0xD5F PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD88 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0xE67 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH2 0xDAB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDC5 JUMPI PUSH2 0xDC5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDEB JUMPI PUSH2 0xDEB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE05 JUMPI PUSH2 0xE05 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xE2B JUMPI PUSH2 0xE2B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE45 JUMPI PUSH2 0xE45 PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP1 PUSH2 0xE5F DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD8E JUMP JUMPDEST POP SWAP2 SWAP11 SWAP1 SWAP10 POP SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF 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 0xEB4 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xED6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF16 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC3 JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 CALLER PUSH2 0x35C8 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF73 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x982088F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x982088F0 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xFE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1019 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1041 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x538B3425A321783393AD250DB10356B8B3523EF29A40DE015C5218213DE0EAD0 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x10CE SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x110F SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x11BF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0xFF DUP6 AND ISZERO DUP1 PUSH2 0x127E JUMPI POP PUSH1 0xF SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND GT JUMPDEST ISZERO PUSH2 0x129C JUMPI PUSH1 0x40 MLOAD PUSH4 0xB154B3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x131D JUMPI PUSH2 0x130B CALLER DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12C0 JUMPI PUSH2 0x12C0 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x12DA JUMPI PUSH2 0x12DA PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP7 DUP2 DUP2 LT PUSH2 0x12F4 JUMPI PUSH2 0x12F4 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x4D97 JUMP JUMPDEST PUSH2 0x35D5 JUMP JUMPDEST DUP1 PUSH2 0x1315 DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x129F JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 SUB PUSH2 0x1363 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x137E SWAP1 DUP4 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3C DUP3 LT PUSH2 0x1436 JUMPI PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FD SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x14 SLOAD DUP2 LT DUP1 PUSH2 0x1412 JUMPI POP PUSH1 0x14 SLOAD PUSH1 0x12 SLOAD LT JUMPDEST ISZERO PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCDB3117 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xCDB3117 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1483 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14A7 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST GT SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x16CE JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x14D8 JUMPI PUSH2 0x14D8 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 ISZERO PUSH2 0x164A JUMPI PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x1551 JUMPI PUSH2 0x1551 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1566 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15D6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST ISZERO PUSH2 0x164A JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 SWAP2 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x15FF JUMPI PUSH2 0x15FF PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1614 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND LT ISZERO PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH4 0x483E9B8D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x166C JUMPI PUSH2 0x166C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1681 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x16A8 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x14AE JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x16EE SWAP1 DUP5 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH2 0x1703 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 CALLER SWAP1 PUSH32 0xDBCDA3B6D52A6F69C85189CA3F35E5BE8A2E3D052FEA47F656FF00384B0C47B1 SWAP1 PUSH1 0x0 SWAP1 LOG3 DUP3 ISZERO PUSH2 0x131D JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND SWAP2 PUSH2 0x1765 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1816 CALLER PUSH1 0x16 DUP1 SLOAD PUSH2 0x178F SWAP1 PUSH2 0x4CBF 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 0x17BB SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1808 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1808 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x79 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x182A SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x14 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18AD SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFA8213D3 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFA8213D3 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x2 SWAP3 POP CALLER SWAP2 POP PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1970 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x197D DUP4 DUP4 CALLER PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x19CB CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x35D5 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x1A8A JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SUB PUSH2 0x1AB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B3A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP10 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x1B6B JUMPI POP DUP1 JUMPDEST PUSH2 0x1B87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1BB6 DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x1C05 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x1B6E5F928A38F442936BBDF4696F128A543B8E43730594344A66C028D0B9C3DA DUP5 PUSH1 0x40 MLOAD PUSH2 0x1C6A SWAP2 SWAP1 PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1CA7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x1D1C SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x1D29 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D3A SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x19CB JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1D5E JUMPI PUSH2 0x1D5E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 EQ PUSH2 0x1DA9 JUMPI PUSH2 0x1389 PUSH1 0x1A PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1D89 JUMPI PUSH2 0x1D89 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB9 GT JUMPDEST PUSH2 0x1E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642063617264496E76656E746F727920706F736974696F6E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1E3C JUMPI PUSH2 0x1E3C PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1E66 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 MLOAD SWAP1 SWAP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1E9A JUMPI PUSH2 0x1E9A PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1ED3 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x1EF7 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1D43 JUMP JUMPDEST PUSH1 0x16 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF 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 0x1F38 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F85 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F5A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F85 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F68 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2F86 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF3F PUSH1 0x0 DUP3 CALLER PUSH2 0x3A4F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1FE9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1FF3 ADDRESS PUSH2 0x21E7 JUMP JUMPDEST LT ISZERO PUSH2 0x2012 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2024 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20A3 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 SWAP1 CALLER SWAP1 PUSH32 0x23D6711A1D031134A36921253C75AA59E967D38E369AC625992824315E204F20 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x20FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2111 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x358F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2154 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x21A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2237 PUSH2 0x3B48 JUMP JUMPDEST PUSH2 0x2241 PUSH1 0x0 PUSH2 0x3B75 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x226E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4E09 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x22D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x22F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SSTORE JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2336 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x235B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23ED JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x244D JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x78 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 SUB PUSH2 0x24BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x12 SLOAD LT ISZERO PUSH2 0x24E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2530 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2554 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x13 SLOAD DUP2 LT ISZERO PUSH2 0x2579 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x78 DUP2 PUSH1 0xFF AND GT PUSH2 0x2608 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x25B6 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x2608 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x25E2 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x257D JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x2627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3DE829 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26BF CALLER PUSH1 0x15 DUP1 SLOAD PUSH2 0x2638 SWAP1 PUSH2 0x4CBF 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 0x2664 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2686 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x26B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2694 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x78 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x13 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x273D SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x13 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2752 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F27A03F PUSH1 0xE2 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFC9E80FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27C6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x27E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE07C7C8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 SWAP1 CALLER SWAP1 PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x285D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x15 PUSH2 0x2869 DUP4 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x16 PUSH2 0x2876 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0x2885 SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH1 0x40 MLOAD PUSH2 0x289B SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0xABFD337AC5625B7DC2DDD3D3BD465FB1DEC15322EEEED81032268B337880BEC6 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x28F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SUB PUSH2 0x2920 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BF5 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x294D JUMPI PUSH2 0x294D PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2962 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x299C JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x29BE JUMPI PUSH2 0x29BE PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x29D3 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x29FA DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x1C PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x2A4C JUMPI PUSH2 0x2A4C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2A61 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x2A88 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x18 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2BE3 JUMPI PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP8 DUP8 DUP7 DUP2 DUP2 LT PUSH2 0x2ADD JUMPI PUSH2 0x2ADD PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2AF2 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B62 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 SWAP1 DUP3 DUP9 DUP9 DUP8 DUP2 DUP2 LT PUSH2 0x2B8B JUMPI PUSH2 0x2B8B PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2BA0 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND GT SWAP1 POP DUP2 ISZERO DUP1 PUSH2 0x2BC4 JUMPI POP DUP1 JUMPDEST PUSH2 0x2BE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST DUP1 PUSH2 0x2BED DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2923 JUMP JUMPDEST POP DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2C06 SWAP3 SWAP2 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 CALLER SWAP1 PUSH32 0x368EB521419FE880268B0D75C05EAA2DA7AE9CCF468BE86A848F7054366D2B9B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0xF3F CALLER DUP4 DUP4 PUSH2 0x3BC7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2C84 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xF3F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2CC7 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x2CEB SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2C87 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D1E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D46 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D6E JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO DUP1 PUSH2 0x2DC9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO JUMPDEST ISZERO PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2E1C DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2E6B DUP4 PUSH2 0x4C87 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2EBA DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2F09 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x52819375A02768CB5083D7B729260C6DB2309FCB5C9161201ADA89D30D00D524 DUP8 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F76 SWAP3 SWAP2 SWAP1 PUSH1 0xFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F91 DUP5 DUP5 DUP5 PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x19CB DUP5 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2FCD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x3031 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3107 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30B7 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x30E8 JUMPI POP DUP1 JUMPDEST PUSH2 0x3104 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x3133 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 PUSH1 0x17 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2F PUSH1 0xF8 SHL DUP2 MSTORE POP DUP4 PUSH1 0xFF AND PUSH20 0x0 PUSH4 0x6900A3AE SWAP1 SWAP2 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31A8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x31C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31ED SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x173539B7B7 PUSH1 0xD9 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x321E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x505A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xF3F CALLER DUP3 DUP5 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAC3 DUP3 PUSH2 0x3D80 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x327A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x32A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5A78287A942B8EA0DA8734A4EB919DF11E564CC48301FFCB582DC8612D98208F SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 PUSH1 0x64 SWAP2 PUSH2 0x330B SWAP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5109 JUMP JUMPDEST PUSH2 0x3315 SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x334A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x338D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x33B5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x342B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x349B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3B9DB689 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x773B6D12 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x34EA PUSH2 0x3B48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3514 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x351D DUP2 PUSH2 0x3B75 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x3550 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0xAC3 JUMPI POP PUSH2 0xAC3 DUP3 PUSH2 0x3E91 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0xAC3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD3E6A7AD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 AND SWAP1 PUSH4 0xD3E6A7AD SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3620 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3644 SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP4 MLOAD LT PUSH2 0x368D JUMPI PUSH1 0x40 MLOAD PUSH4 0x9DCCA733 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3759 JUMPI PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x36DA SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x36F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x371B SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x3757 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8BAA579F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x37CE SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x37DB SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x37EC SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x399A JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3810 JUMPI PUSH2 0x3810 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 SUB PUSH2 0x3875 JUMPI PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB8 LT ISZERO PUSH2 0x3870 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38C7 JUMP JUMPDEST PUSH2 0x1388 PUSH1 0x1A PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x388E JUMPI PUSH2 0x388E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x38C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x38DD JUMPI PUSH2 0x38DD PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3907 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 MLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x393B JUMPI PUSH2 0x393B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3974 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37F5 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x39AA SWAP2 SWAP1 PUSH2 0x5120 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xBABE8F5E83E93AB103DDF917B4292A19335A5128B3530BEDD896A681CDD945E3 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x3A26 DUP6 DUP3 PUSH2 0x3FE7 JUMP JUMPDEST PUSH2 0x3A30 DUP2 DUP6 PUSH2 0x4001 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x10 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3A43 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x3A7C JUMPI PUSH2 0x3A7C DUP2 DUP5 DUP7 PUSH2 0x4051 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3ABA JUMPI PUSH2 0x3A99 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x3AE9 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2241 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3BF9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x3CA0 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x5159 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x3CDB JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x3CD8 SWAP2 DUP2 ADD SWAP1 PUSH2 0x5196 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x3D44 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x3D09 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3D3C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xFE2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D8B DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x3DA5 SWAP1 PUSH2 0x4CBF 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 0x3DD1 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3E1E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DF3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3E1E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3E01 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x3E3C PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3E4E JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x3E80 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3E68 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3E89 DUP5 PUSH2 0x40B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3EC2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xAC3 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xAC3 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x3EF5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x3FB7 JUMPI PUSH1 0x0 PUSH2 0x3F05 DUP5 PUSH2 0x358F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3F31 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3F44 JUMPI POP PUSH2 0x3F42 DUP2 DUP5 PUSH2 0x343D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x3F6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3FB5 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x412A JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x4019 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x405C DUP4 DUP4 DUP4 PUSH2 0x4141 JUMP JUMPDEST PUSH2 0x1FA8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x408A JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x40C0 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x40D8 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x40F8 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x4123 JUMP JUMPDEST DUP1 PUSH2 0x4102 DUP5 PUSH2 0x41A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4113 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x4134 DUP4 DUP4 PUSH2 0x4236 JUMP JUMPDEST PUSH2 0x1FA8 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3E89 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x417B JUMPI POP PUSH2 0x417B DUP5 DUP5 PUSH2 0x343D JUMP JUMPDEST DUP1 PUSH2 0x3E89 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x41B1 DUP4 PUSH2 0x429B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41D0 JUMPI PUSH2 0x41D0 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x4204 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4260 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426E DUP4 DUP4 PUSH1 0x0 PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x42DA JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x4306 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x4324 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x433C JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4350 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4362 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAC3 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x439B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x440B JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x43EC JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4429 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x43D8 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH2 0x443C DUP3 DUP8 PUSH2 0x43D8 JUMP JUMPDEST DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE DUP3 DUP8 ADD SWAP4 POP SWAP1 DUP3 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4473 JUMPI DUP5 MLOAD ISZERO ISZERO DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4455 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x449C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4484 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x44BD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4123 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x451B DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4567 JUMPI PUSH2 0x4567 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4588 JUMPI PUSH2 0x4588 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x45A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x45CE PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST PUSH2 0x453F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x45ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI PUSH2 0x4602 DUP2 PUSH2 0x4592 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x45F1 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x464E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x465A DUP9 DUP4 DUP10 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x46A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x46C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x46D2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x46E0 PUSH1 0x20 DUP5 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x470A PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x474C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x475A DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x45A8 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x472D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x477A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x47CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47D4 DUP7 PUSH2 0x4592 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP1 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x47F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4813 PUSH2 0x45C9 DUP3 PUSH2 0x456F JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP4 ADD DUP5 ADD SWAP1 DUP5 DUP2 ADD SWAP1 DUP13 DUP4 GT ISZERO PUSH2 0x4832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x4850 JUMPI DUP5 CALLDATALOAD DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x4837 JUMP JUMPDEST SWAP9 POP POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x4868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4874 DUP11 DUP5 DUP12 ADD PUSH2 0x46E9 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x488A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4898 DUP9 DUP3 DUP10 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x48BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x48D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48DE DUP6 DUP3 DUP7 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x48FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x490A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x491A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x493D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP3 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x495B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4966 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4988 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4994 DUP7 DUP3 DUP8 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x49E2 JUMPI PUSH2 0x49E2 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49FE PUSH2 0x45C9 DUP5 PUSH2 0x49C9 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x4A12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4A3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x49F0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4A73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A7F DUP7 DUP4 DUP8 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AA2 DUP6 DUP3 DUP7 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4AC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4ACC DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4AE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4AF3 DUP7 DUP3 DUP8 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4B1E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x499E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4B5A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH2 0x4B68 PUSH1 0x20 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x4B78 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B86 PUSH1 0x60 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4BA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4BB2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x4BC2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x4BF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C04 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x49F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4C2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x4C9D JUMPI PUSH2 0x4C9D PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x4CB8 JUMPI PUSH2 0x4CB8 PUSH2 0x4C71 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x4CD3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x23BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP4 ADD DUP2 SWAP1 MSTORE DUP6 MLOAD SWAP1 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP7 DUP2 ADD SWAP2 PUSH1 0xA0 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4D45 JUMPI DUP5 MLOAD PUSH1 0xFF AND DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4D26 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x60 DUP7 ADD MSTORE DUP6 DUP2 MSTORE DUP6 DUP8 DUP4 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP8 ADD DUP4 ADD MSTORE PUSH1 0x1F SWAP1 SWAP6 ADD PUSH1 0x1F NOT AND SWAP1 SWAP5 ADD SWAP1 SWAP4 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND DUP1 PUSH2 0x4E1C JUMPI PUSH2 0x4E1C PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 NOT ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP3 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4E55 JUMPI PUSH1 0xFF PUSH2 0x4E3F DUP4 PUSH2 0x4592 JUMP JUMPDEST AND DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4E2C JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x5468697320636172642068617320616E206F666665722E000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4EC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x4EF3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x131D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4EFF JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F2B JUMPI PUSH2 0x4F2B PUSH2 0x4529 JUMP JUMPDEST PUSH2 0x4F3F DUP2 PUSH2 0x4F39 DUP5 SLOAD PUSH2 0x4CBF JUMP JUMPDEST DUP5 PUSH2 0x4ECC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F74 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F5C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x131D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FA3 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4F84 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x4FC1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4FE3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4481 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4FFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5015 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x5026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x5034 PUSH2 0x45C9 DUP3 PUSH2 0x49C9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x5049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x110F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 SLOAD PUSH2 0x5068 DUP2 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x5080 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x5095 JUMPI PUSH2 0x50C4 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x50C4 JUMP JUMPDEST DUP11 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x50BB JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x50A2 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP6 MLOAD PUSH2 0x50D8 DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH2 0x4481 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50EB DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH2 0x4481 JUMP JUMPDEST DUP5 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50FE DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x514D JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x512E JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x518C SWAP1 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x51C5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x51D9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xE0 BYTE 0xBF SMOD CALLDATASIZE PUSH5 0x11DE543430 0xD2 0xCE OR 0xBD SWAP14 DUP6 0xBB PUSH29 0x4732A9D9486B45E32B9C4A6764736F6C63430008140033000000000000 ","sourceMap":"1668:18927:20:-:0;;;2051:40;;;-1:-1:-1;;2095:42:20;;;;;2233:5;2204:34;;-1:-1:-1;2253:34:20;;2325:5;2291:39;;2414:4;2375:43;;2598:49;;;-1:-1:-1;;2651:53:20;;;;;4770:875;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4976:10;1381:113:6;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:6;:17;1480:7;1470;:17;:::i;:::-;-1:-1:-1;;;;;;;;1273:26:0;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;4648:51:29;4621:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;5012:10:20::1;4994:17;:29:::0;;;:10:::1;:29;::::0;;;;:36;;-1:-1:-1;;4994:36:20::1;5026:4;4994:36;::::0;;5037:9:::1;:28:::0;;-1:-1:-1;;;;;5037:28:20;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;5037:28:20;;::::1;::::0;;;::::1;::::0;;;5071:18:::1;:61:::0;;;;::::1;-1:-1:-1::0;;;;;;5071:61:20;;::::1;;::::0;;;5138:20:::1;:67:::0;;;;::::1;::::0;;::::1;;::::0;;5211:19:::1;:64:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;5282:9:::1;:20;5294:8:::0;5282:9;:20:::1;:::i;:::-;-1:-1:-1::0;5362:10:20::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5362:10:20::1;::::0;;::::1;::::0;;;;5374:12;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5374:12:20;;::::1;::::0;5388:15;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5388:15:20;;::::1;::::0;5327:77;;::::1;::::0;5350:9:::1;::::0;5362:10;5388:15;;5327:77:::1;;:::i;:::-;;;;;;;;;;;;;5308:9;:97;;;;;;:::i;:::-;-1:-1:-1::0;5477:10:20::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5477:10:20::1;::::0;;::::1;::::0;;;;5489:12;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5489:12:20;;::::1;::::0;5503:15;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5503:15:20;;::::1;::::0;5442:77;;::::1;::::0;5465:9:::1;::::0;5477:10;5503:15;;5442:77:::1;;:::i;:::-;;;;;;;;;;;;;5411:14;:114;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;5531:28:20;::::1;;::::0;;;:19;:28:::1;::::0;;;;:35;;-1:-1:-1;;5531:35:20::1;5562:4;5531:35;::::0;;5573:68:::1;5593:3;5589:1;:7;5573:68;;;5611:19;::::0;;;:16:::1;:19;::::0;;;;5633:1:::1;5611:23:::0;;5628:1;5598:3:::1;5628:1:::0;5598:3:::1;:::i;:::-;;;;5573:68;;;;4770:875:::0;;;;;;1668:18927;;2912:187:0;3004:6;;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;14:177:29:-;93:13;;-1:-1:-1;;;;;135:31:29;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:29;552:16;;545:27;328:250::o;583:1325::-;708:6;716;724;732;740;748;801:3;789:9;780:7;776:23;772:33;769:53;;;818:1;815;808:12;769:53;841:40;871:9;841:40;:::i;:::-;831:50;;900:49;945:2;934:9;930:18;900:49;:::i;:::-;890:59;;968:49;1013:2;1002:9;998:18;968:49;:::i;:::-;958:59;;1036:49;1081:2;1070:9;1066:18;1036:49;:::i;:::-;1129:3;1114:19;;1108:26;1026:59;;-1:-1:-1;;;;;;1183:14:29;;;1180:34;;;1210:1;1207;1200:12;1180:34;1248:6;1237:9;1233:22;1223:32;;1293:7;1286:4;1282:2;1278:13;1274:27;1264:55;;1315:1;1312;1305:12;1264:55;1344:2;1338:9;1366:2;1362;1359:10;1356:36;;;1372:18;;:::i;:::-;1447:2;1441:9;1415:2;1501:13;;-1:-1:-1;;1497:22:29;;;1521:2;1493:31;1489:40;1477:53;;;1545:18;;;1565:22;;;1542:46;1539:72;;;1591:18;;:::i;:::-;1631:10;1627:2;1620:22;1666:2;1658:6;1651:18;1706:7;1701:2;1696;1692;1688:11;1684:20;1681:33;1678:53;;;1727:1;1724;1717:12;1678:53;1740:68;1805:2;1800;1792:6;1788:15;1783:2;1779;1775:11;1740:68;:::i;:::-;1827:6;1817:16;;;;;;;1852:50;1897:3;1886:9;1882:19;1852:50;:::i;:::-;1842:60;;583:1325;;;;;;;;:::o;1913:380::-;1992:1;1988:12;;;;2035;;;2056:61;;2110:4;2102:6;2098:17;2088:27;;2056:61;2163:2;2155:6;2152:14;2132:18;2129:38;2126:161;;2209:10;2204:3;2200:20;2197:1;2190:31;2244:4;2241:1;2234:15;2272:4;2269:1;2262:15;2126:161;;1913:380;;;:::o;2424:545::-;2526:2;2521:3;2518:11;2515:448;;;2562:1;2587:5;2583:2;2576:17;2632:4;2628:2;2618:19;2702:2;2690:10;2686:19;2683:1;2679:27;2673:4;2669:38;2738:4;2726:10;2723:20;2720:47;;;-1:-1:-1;2761:4:29;2720:47;2816:2;2811:3;2807:12;2804:1;2800:20;2794:4;2790:31;2780:41;;2871:82;2889:2;2882:5;2879:13;2871:82;;;2934:17;;;2915:1;2904:13;2871:82;;;2875:3;;;2515:448;2424:545;;;:::o;3145:1352::-;3265:10;;-1:-1:-1;;;;;3287:30:29;;3284:56;;;3320:18;;:::i;:::-;3349:97;3439:6;3399:38;3431:4;3425:11;3399:38;:::i;:::-;3393:4;3349:97;:::i;:::-;3501:4;;3565:2;3554:14;;3582:1;3577:663;;;;4284:1;4301:6;4298:89;;;-1:-1:-1;4353:19:29;;;4347:26;4298:89;-1:-1:-1;;3102:1:29;3098:11;;;3094:24;3090:29;3080:40;3126:1;3122:11;;;3077:57;4400:81;;3547:944;;3577:663;2371:1;2364:14;;;2408:4;2395:18;;-1:-1:-1;;3613:20:29;;;3731:236;3745:7;3742:1;3739:14;3731:236;;;3834:19;;;3828:26;3813:42;;3926:27;;;;3894:1;3882:14;;;;3761:19;;3731:236;;;3735:3;3995:6;3986:7;3983:19;3980:201;;;4056:19;;;4050:26;-1:-1:-1;;4139:1:29;4135:14;;;4151:3;4131:24;4127:37;4123:42;4108:58;4093:74;;3980:201;-1:-1:-1;;;;;4227:1:29;4211:14;;;4207:22;4194:36;;-1:-1:-1;3145:1352:29:o;4710:1421::-;4978:3;5007:1;5040:6;5034:13;5070:36;5096:9;5070:36;:::i;:::-;5125:1;5142:18;;;5169:133;;;;5316:1;5311:356;;;;5135:532;;5169:133;-1:-1:-1;;5202:24:29;;5190:37;;5275:14;;5268:22;5256:35;;5247:45;;;-1:-1:-1;5169:133:29;;5311:356;5342:6;5339:1;5332:17;5372:4;5417:2;5414:1;5404:16;5442:1;5456:165;5470:6;5467:1;5464:13;5456:165;;;5548:14;;5535:11;;;5528:35;5591:16;;;;5485:10;;5456:165;;;5460:3;;;5650:6;5645:3;5641:16;5634:23;;5135:532;;;;;5698:6;5692:13;5714:68;5773:8;5768:3;5761:4;5753:6;5749:17;5714:68;:::i;:::-;5847:13;;5804:18;;;5869:70;5847:13;5804:18;5916:4;5904:17;;5869:70;:::i;:::-;6003:13;;5958:20;;;6025:67;6003:13;5958:20;6072:4;6060:17;;6025:67;:::i;:::-;6108:17;;4710:1421;-1:-1:-1;;;;;;4710:1421:29:o;6136:232::-;6175:3;6196:17;;;6193:140;;6255:10;6250:3;6246:20;6243:1;6236:31;6290:4;6287:1;6280:15;6318:4;6315:1;6308:15;6193:140;-1:-1:-1;6360:1:29;6349:13;;6136:232::o;:::-;1668:18927:20;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DAI_TOKEN_3774":{"entryPoint":null,"id":3774,"parameterSlots":0,"returnSlots":0},"@_approve_1206":{"entryPoint":13768,"id":1206,"parameterSlots":3,"returnSlots":0},"@_approve_1272":{"entryPoint":16097,"id":1272,"parameterSlots":4,"returnSlots":0},"@_baseURI_599":{"entryPoint":null,"id":599,"parameterSlots":0,"returnSlots":1},"@_checkAuthorized_854":{"entryPoint":16465,"id":854,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_1402":{"entryPoint":15454,"id":1402,"parameterSlots":4,"returnSlots":0},"@_checkOwner_84":{"entryPoint":15176,"id":84,"parameterSlots":0,"returnSlots":0},"@_getApproved_781":{"entryPoint":null,"id":781,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_817":{"entryPoint":16705,"id":817,"parameterSlots":3,"returnSlots":1},"@_mint_1010":{"entryPoint":16950,"id":1010,"parameterSlots":2,"returnSlots":0},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_openPack_4925":{"entryPoint":13781,"id":4925,"parameterSlots":5,"returnSlots":0},"@_ownerOf_768":{"entryPoint":null,"id":768,"parameterSlots":1,"returnSlots":1},"@_requireOwned_1338":{"entryPoint":13711,"id":1338,"parameterSlots":1,"returnSlots":1},"@_safeMint_1025":{"entryPoint":16359,"id":1025,"parameterSlots":2,"returnSlots":0},"@_safeMint_1051":{"entryPoint":16682,"id":1051,"parameterSlots":3,"returnSlots":0},"@_setApprovalForAll_1309":{"entryPoint":15303,"id":1309,"parameterSlots":3,"returnSlots":0},"@_setTokenURI_1692":{"entryPoint":16385,"id":1692,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":15221,"id":146,"parameterSlots":1,"returnSlots":0},"@_update_960":{"entryPoint":14927,"id":960,"parameterSlots":3,"returnSlots":1},"@addOwner_4121":{"entryPoint":8560,"id":4121,"parameterSlots":1,"returnSlots":0},"@addSigner_4149":{"entryPoint":13419,"id":4149,"parameterSlots":1,"returnSlots":0},"@approve_615":{"entryPoint":3892,"id":615,"parameterSlots":2,"returnSlots":0},"@balanceOf_523":{"entryPoint":8679,"id":523,"parameterSlots":1,"returnSlots":1},"@burnCards_5521":{"entryPoint":4901,"id":5521,"parameterSlots":2,"returnSlots":0},"@burn_1566":{"entryPoint":8109,"id":1566,"parameterSlots":1,"returnSlots":0},"@changeMaxPacksToOpenAtOnce_4378":{"entryPoint":6609,"id":4378,"parameterSlots":1,"returnSlots":0},"@changePackPrice_4366":{"entryPoint":13312,"id":4366,"parameterSlots":1,"returnSlots":0},"@changeRequireOfferValidationInMint_4342":{"entryPoint":13600,"id":4342,"parameterSlots":1,"returnSlots":0},"@changeRequireOfferValidationInTransfer_4354":{"entryPoint":8484,"id":4354,"parameterSlots":1,"returnSlots":0},"@changeRequireOpenPackSignerValidation_4330":{"entryPoint":13082,"id":4330,"parameterSlots":1,"returnSlots":0},"@emergencyWithdraw_5703":{"entryPoint":8121,"id":5703,"parameterSlots":1,"returnSlots":0},"@exchangeCardsOffer_4999":{"entryPoint":11507,"id":4999,"parameterSlots":4,"returnSlots":0},"@finishAlbum_5320":{"entryPoint":9342,"id":5320,"parameterSlots":0,"returnSlots":1},"@gammaOffersContract_3757":{"entryPoint":null,"id":3757,"parameterSlots":0,"returnSlots":0},"@gammaPacksContract_3754":{"entryPoint":null,"id":3754,"parameterSlots":0,"returnSlots":0},"@gammaTicketsContract_3760":{"entryPoint":null,"id":3760,"parameterSlots":0,"returnSlots":0},"@getApproved_632":{"entryPoint":3851,"id":632,"parameterSlots":1,"returnSlots":1},"@getBurnedCardQttyByUser_4526":{"entryPoint":9079,"id":4526,"parameterSlots":1,"returnSlots":1},"@getCardQuantityByUser_4511":{"entryPoint":4501,"id":4511,"parameterSlots":2,"returnSlots":1},"@getCardsByUser_4700":{"entryPoint":2761,"id":4700,"parameterSlots":1,"returnSlots":3},"@getLotteryPrize_4492":{"entryPoint":13037,"id":4492,"parameterSlots":0,"returnSlots":1},"@hasCardByOffer_4432":{"entryPoint":9247,"id":4432,"parameterSlots":2,"returnSlots":1},"@hasCard_4453":{"entryPoint":9155,"id":4453,"parameterSlots":2,"returnSlots":1},"@isApprovedForAll_665":{"entryPoint":13373,"id":665,"parameterSlots":2,"returnSlots":1},"@isOwner_4466":{"entryPoint":null,"id":4466,"parameterSlots":1,"returnSlots":1},"@isSigner_4479":{"entryPoint":null,"id":4479,"parameterSlots":1,"returnSlots":1},"@log10_3338":{"entryPoint":17051,"id":3338,"parameterSlots":1,"returnSlots":1},"@mintCard_5613":{"entryPoint":12275,"id":5613,"parameterSlots":1,"returnSlots":0},"@name_545":{"entryPoint":3705,"id":545,"parameterSlots":0,"returnSlots":1},"@openPack_4741":{"entryPoint":6679,"id":4741,"parameterSlots":4,"returnSlots":0},"@openPacks_4793":{"entryPoint":4710,"id":4793,"parameterSlots":5,"returnSlots":0},"@ownerOf_536":{"entryPoint":8473,"id":536,"parameterSlots":1,"returnSlots":1},"@owner_67":{"entryPoint":null,"id":67,"parameterSlots":0,"returnSlots":1},"@removeCardByOffer_4395":{"entryPoint":8771,"id":4395,"parameterSlots":2,"returnSlots":0},"@removeOwner_4135":{"entryPoint":4591,"id":4135,"parameterSlots":1,"returnSlots":0},"@removeSigner_4163":{"entryPoint":3907,"id":4163,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":8751,"id":98,"parameterSlots":0,"returnSlots":0},"@restoreCardByOffer_4412":{"entryPoint":4376,"id":4412,"parameterSlots":2,"returnSlots":0},"@s_baseUri_3794":{"entryPoint":13360,"id":3794,"parameterSlots":0,"returnSlots":0},"@s_burnedCards_3826":{"entryPoint":null,"id":3826,"parameterSlots":0,"returnSlots":0},"@s_cardsByUser_3832":{"entryPoint":null,"id":3832,"parameterSlots":0,"returnSlots":0},"@s_cardsInventory_3822":{"entryPoint":null,"id":3822,"parameterSlots":0,"returnSlots":0},"@s_cards_3818":{"entryPoint":null,"id":3818,"parameterSlots":0,"returnSlots":0},"@s_lotteryPrizePercentage_3772":{"entryPoint":null,"id":3772,"parameterSlots":0,"returnSlots":0},"@s_mainAlbumPrize_3785":{"entryPoint":null,"id":3785,"parameterSlots":0,"returnSlots":0},"@s_mainUri_3790":{"entryPoint":8953,"id":3790,"parameterSlots":0,"returnSlots":0},"@s_maxPacksToOpenAtOnce_3769":{"entryPoint":null,"id":3769,"parameterSlots":0,"returnSlots":0},"@s_packPrice_3779":{"entryPoint":null,"id":3779,"parameterSlots":0,"returnSlots":0},"@s_prizesBalance_3782":{"entryPoint":null,"id":3782,"parameterSlots":0,"returnSlots":0},"@s_requireOfferValidationInMint_3799":{"entryPoint":null,"id":3799,"parameterSlots":0,"returnSlots":0},"@s_requireOfferValidationInTransfer_3802":{"entryPoint":null,"id":3802,"parameterSlots":0,"returnSlots":0},"@s_requireOpenPackSignerValidation_3796":{"entryPoint":null,"id":3796,"parameterSlots":0,"returnSlots":0},"@s_secondaryAlbumPrize_3788":{"entryPoint":null,"id":3788,"parameterSlots":0,"returnSlots":0},"@s_secondaryUri_3792":{"entryPoint":7935,"id":3792,"parameterSlots":0,"returnSlots":0},"@s_tokenIdCounter_3776":{"entryPoint":null,"id":3776,"parameterSlots":0,"returnSlots":0},"@safeMint_5664":{"entryPoint":14828,"id":5664,"parameterSlots":4,"returnSlots":0},"@safeTransferFrom_729":{"entryPoint":8077,"id":729,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_755":{"entryPoint":12166,"id":755,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_648":{"entryPoint":11337,"id":648,"parameterSlots":2,"returnSlots":0},"@setGammaOffersContract_4184":{"entryPoint":4073,"id":4184,"parameterSlots":1,"returnSlots":0},"@setGammaPacksContract_4205":{"entryPoint":12874,"id":4205,"parameterSlots":1,"returnSlots":0},"@setGammaTicketsContract_4226":{"entryPoint":13149,"id":4226,"parameterSlots":1,"returnSlots":0},"@setLotteryPrizePercentage_4295":{"entryPoint":8966,"id":4295,"parameterSlots":1,"returnSlots":0},"@setMainAlbumPrize_4257":{"entryPoint":8867,"id":4257,"parameterSlots":1,"returnSlots":0},"@setPrizesBalance_4238":{"entryPoint":8404,"id":4238,"parameterSlots":1,"returnSlots":0},"@setSecondaryAlbumPrize_4276":{"entryPoint":12189,"id":4276,"parameterSlots":1,"returnSlots":0},"@setUris_4318":{"entryPoint":10285,"id":4318,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1616":{"entryPoint":13674,"id":1616,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2451":{"entryPoint":null,"id":2451,"parameterSlots":1,"returnSlots":1},"@supportsInterface_495":{"entryPoint":16017,"id":495,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5876":{"entryPoint":2744,"id":5876,"parameterSlots":1,"returnSlots":1},"@symbol_554":{"entryPoint":10270,"id":554,"parameterSlots":0,"returnSlots":1},"@testAddCards_5729":{"entryPoint":11348,"id":5729,"parameterSlots":1,"returnSlots":0},"@testOpenPack_5807":{"entryPoint":7287,"id":5807,"parameterSlots":3,"returnSlots":0},"@toString_1819":{"entryPoint":16804,"id":1819,"parameterSlots":1,"returnSlots":1},"@tokenURI_1673":{"entryPoint":15744,"id":1673,"parameterSlots":1,"returnSlots":1},"@tokenURI_5860":{"entryPoint":12863,"id":5860,"parameterSlots":1,"returnSlots":1},"@tokenURI_590":{"entryPoint":16565,"id":590,"parameterSlots":1,"returnSlots":1},"@transferCard_5083":{"entryPoint":6692,"id":5083,"parameterSlots":2,"returnSlots":0},"@transferCards_5190":{"entryPoint":10447,"id":5190,"parameterSlots":3,"returnSlots":0},"@transferFrom_711":{"entryPoint":6465,"id":711,"parameterSlots":3,"returnSlots":0},"@transferOwnership_126":{"entryPoint":13538,"id":126,"parameterSlots":1,"returnSlots":0},"@verifyPackSigner_4722":{"entryPoint":4236,"id":4722,"parameterSlots":4,"returnSlots":1},"abi_decode_array_array_uint8_dyn_dyn":{"entryPoint":18153,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_bytes_calldata_dyn_calldata":{"entryPoint":18280,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_array_uint8_dyn":{"entryPoint":17832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_string":{"entryPoint":18928,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_string":{"entryPoint":18985,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":17339,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":19834,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":19472,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":18666,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":19345,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_array$_t_uint8_$dyn_calldata_ptr":{"entryPoint":19116,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bool":{"entryPoint":19200,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":17661,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptr":{"entryPoint":18758,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint8":{"entryPoint":18100,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint8t_addresst_uint8":{"entryPoint":19257,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_uint8_$dyn_calldata_ptr":{"entryPoint":18601,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":18860,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":19540,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":17289,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":20886,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":20461,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr":{"entryPoint":19017,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":17636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":19952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr":{"entryPoint":17946,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint8":{"entryPoint":18731,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8t_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":18355,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":17810,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_uint8_dyn":{"entryPoint":17368,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":17573,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_calldata_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20006,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20768,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20570,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20433,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":20915,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20825,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_library_reversed":{"entryPoint":19699,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":17430,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaOffersContract_$3734__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaPacksContract_$3694__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaTicketsContract_$3740__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17617,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":20083,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__to_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8_t_uint8__to_t_uint8_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":19863,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":17727,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_uint8_dyn":{"entryPoint":17775,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_string":{"entryPoint":18889,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":19933,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":20138,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":20745,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":20064,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":20172,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":20242,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":17537,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint8":{"entryPoint":19977,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":19647,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":19622,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint8":{"entryPoint":19591,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":19569,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":19518,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":17705,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":17318,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":18846,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":17267,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:30879:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:29","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:29"},"nodeType":"YulFunctionCall","src":"125:12:29"},"nodeType":"YulExpressionStatement","src":"125:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:29","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:29"},"nodeType":"YulFunctionCall","src":"99:20:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:29"},"nodeType":"YulFunctionCall","src":"88:32:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:29"},"nodeType":"YulFunctionCall","src":"78:43:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:29"},"nodeType":"YulFunctionCall","src":"71:51:29"},"nodeType":"YulIf","src":"68:71:29"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:29","type":""}],"src":"14:131:29"},{"body":{"nodeType":"YulBlock","src":"219:176:29","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:29"},"nodeType":"YulFunctionCall","src":"267:12:29"},"nodeType":"YulExpressionStatement","src":"267:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:29"},"nodeType":"YulFunctionCall","src":"236:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:29"},"nodeType":"YulFunctionCall","src":"232:32:29"},"nodeType":"YulIf","src":"229:52:29"},{"nodeType":"YulVariableDeclaration","src":"290:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:29"},"nodeType":"YulFunctionCall","src":"303:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:29"},"nodeType":"YulFunctionCall","src":"335:30:29"},"nodeType":"YulExpressionStatement","src":"335:30:29"},{"nodeType":"YulAssignment","src":"374:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:29","type":""}],"src":"150:245:29"},{"body":{"nodeType":"YulBlock","src":"495:92:29","statements":[{"nodeType":"YulAssignment","src":"505:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:29"},"nodeType":"YulFunctionCall","src":"513:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:29"},"nodeType":"YulFunctionCall","src":"565:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:29"},"nodeType":"YulFunctionCall","src":"558:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:29"},"nodeType":"YulFunctionCall","src":"540:41:29"},"nodeType":"YulExpressionStatement","src":"540:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:29","type":""}],"src":"400:187:29"},{"body":{"nodeType":"YulBlock","src":"637:86:29","statements":[{"body":{"nodeType":"YulBlock","src":"701:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"710:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"703:6:29"},"nodeType":"YulFunctionCall","src":"703:12:29"},"nodeType":"YulExpressionStatement","src":"703:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"660:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"671:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"686:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"691:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"682:3:29"},"nodeType":"YulFunctionCall","src":"682:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"695:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"678:3:29"},"nodeType":"YulFunctionCall","src":"678:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"667:3:29"},"nodeType":"YulFunctionCall","src":"667:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"657:2:29"},"nodeType":"YulFunctionCall","src":"657:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"650:6:29"},"nodeType":"YulFunctionCall","src":"650:50:29"},"nodeType":"YulIf","src":"647:70:29"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"626:5:29","type":""}],"src":"592:131:29"},{"body":{"nodeType":"YulBlock","src":"798:177:29","statements":[{"body":{"nodeType":"YulBlock","src":"844:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"853:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"856:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"846:6:29"},"nodeType":"YulFunctionCall","src":"846:12:29"},"nodeType":"YulExpressionStatement","src":"846:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"819:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"828:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"815:3:29"},"nodeType":"YulFunctionCall","src":"815:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"840:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"811:3:29"},"nodeType":"YulFunctionCall","src":"811:32:29"},"nodeType":"YulIf","src":"808:52:29"},{"nodeType":"YulVariableDeclaration","src":"869:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"895:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"882:12:29"},"nodeType":"YulFunctionCall","src":"882:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"873:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"939:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"914:24:29"},"nodeType":"YulFunctionCall","src":"914:31:29"},"nodeType":"YulExpressionStatement","src":"914:31:29"},{"nodeType":"YulAssignment","src":"954:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"964:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"954:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"764:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"775:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"787:6:29","type":""}],"src":"728:247:29"},{"body":{"nodeType":"YulBlock","src":"1039:385:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1049:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1069:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1063:5:29"},"nodeType":"YulFunctionCall","src":"1063:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1053:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1091:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"1096:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1084:6:29"},"nodeType":"YulFunctionCall","src":"1084:19:29"},"nodeType":"YulExpressionStatement","src":"1084:19:29"},{"nodeType":"YulVariableDeclaration","src":"1112:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1122:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1116:2:29","type":""}]},{"nodeType":"YulAssignment","src":"1135:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1146:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1151:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1142:3:29"},"nodeType":"YulFunctionCall","src":"1142:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"1135:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"1163:28:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1181:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1188:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:29"},"nodeType":"YulFunctionCall","src":"1177:14:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"1167:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1200:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1209:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1204:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1268:131:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1289:3:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"1304:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1298:5:29"},"nodeType":"YulFunctionCall","src":"1298:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"1313:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1294:3:29"},"nodeType":"YulFunctionCall","src":"1294:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1282:6:29"},"nodeType":"YulFunctionCall","src":"1282:37:29"},"nodeType":"YulExpressionStatement","src":"1282:37:29"},{"nodeType":"YulAssignment","src":"1332:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1343:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1348:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1339:3:29"},"nodeType":"YulFunctionCall","src":"1339:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"1332:3:29"}]},{"nodeType":"YulAssignment","src":"1364:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"1378:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1386:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1374:3:29"},"nodeType":"YulFunctionCall","src":"1374:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"1364:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1230:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"1233:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1227:2:29"},"nodeType":"YulFunctionCall","src":"1227:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1241:18:29","statements":[{"nodeType":"YulAssignment","src":"1243:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1252:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"1255:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1248:3:29"},"nodeType":"YulFunctionCall","src":"1248:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1243:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1223:3:29","statements":[]},"src":"1219:180:29"},{"nodeType":"YulAssignment","src":"1408:10:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"1415:3:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1408:3:29"}]}]},"name":"abi_encode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1016:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1023:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1031:3:29","type":""}],"src":"980:444:29"},{"body":{"nodeType":"YulBlock","src":"1722:713:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1739:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1750:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1732:6:29"},"nodeType":"YulFunctionCall","src":"1732:21:29"},"nodeType":"YulExpressionStatement","src":"1732:21:29"},{"nodeType":"YulVariableDeclaration","src":"1762:68:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1803:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1815:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1826:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:29"},"nodeType":"YulFunctionCall","src":"1811:18:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"1776:26:29"},"nodeType":"YulFunctionCall","src":"1776:54:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"1766:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1839:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1849:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1843:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1871:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1882:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1867:3:29"},"nodeType":"YulFunctionCall","src":"1867:18:29"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"1891:6:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1899:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1887:3:29"},"nodeType":"YulFunctionCall","src":"1887:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1860:6:29"},"nodeType":"YulFunctionCall","src":"1860:50:29"},"nodeType":"YulExpressionStatement","src":"1860:50:29"},{"nodeType":"YulVariableDeclaration","src":"1919:56:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1960:6:29"},{"name":"tail_1","nodeType":"YulIdentifier","src":"1968:6:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"1933:26:29"},"nodeType":"YulFunctionCall","src":"1933:42:29"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"1923:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1995:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2006:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1991:3:29"},"nodeType":"YulFunctionCall","src":"1991:18:29"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"2015:6:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2011:3:29"},"nodeType":"YulFunctionCall","src":"2011:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1984:6:29"},"nodeType":"YulFunctionCall","src":"1984:50:29"},"nodeType":"YulExpressionStatement","src":"1984:50:29"},{"nodeType":"YulVariableDeclaration","src":"2043:17:29","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"2054:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"2047:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2069:27:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2089:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2083:5:29"},"nodeType":"YulFunctionCall","src":"2083:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2073:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"2112:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"2120:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2105:6:29"},"nodeType":"YulFunctionCall","src":"2105:22:29"},"nodeType":"YulExpressionStatement","src":"2105:22:29"},{"nodeType":"YulAssignment","src":"2136:22:29","value":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"2147:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2155:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2143:3:29"},"nodeType":"YulFunctionCall","src":"2143:15:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2136:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"2167:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2185:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2193:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2181:3:29"},"nodeType":"YulFunctionCall","src":"2181:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"2171:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2205:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2214:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2209:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2273:136:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2294:3:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2319:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2313:5:29"},"nodeType":"YulFunctionCall","src":"2313:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2306:6:29"},"nodeType":"YulFunctionCall","src":"2306:21:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2299:6:29"},"nodeType":"YulFunctionCall","src":"2299:29:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2287:6:29"},"nodeType":"YulFunctionCall","src":"2287:42:29"},"nodeType":"YulExpressionStatement","src":"2287:42:29"},{"nodeType":"YulAssignment","src":"2342:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2353:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2358:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2349:3:29"},"nodeType":"YulFunctionCall","src":"2349:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2342:3:29"}]},{"nodeType":"YulAssignment","src":"2374:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2388:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2396:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2384:3:29"},"nodeType":"YulFunctionCall","src":"2384:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2374:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2235:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"2238:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2232:2:29"},"nodeType":"YulFunctionCall","src":"2232:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2246:18:29","statements":[{"nodeType":"YulAssignment","src":"2248:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2257:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"2260:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2253:3:29"},"nodeType":"YulFunctionCall","src":"2253:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2248:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2228:3:29","statements":[]},"src":"2224:185:29"},{"nodeType":"YulAssignment","src":"2418:11:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"2426:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2418:4:29"}]}]},"name":"abi_encode_tuple_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1675:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1686:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1694:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1702:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1713:4:29","type":""}],"src":"1429:1006:29"},{"body":{"nodeType":"YulBlock","src":"2506:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2516:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2525:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2520:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2585:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2610:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"2615:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2606:3:29"},"nodeType":"YulFunctionCall","src":"2606:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2629:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"2634:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2625:3:29"},"nodeType":"YulFunctionCall","src":"2625:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2619:5:29"},"nodeType":"YulFunctionCall","src":"2619:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2599:6:29"},"nodeType":"YulFunctionCall","src":"2599:39:29"},"nodeType":"YulExpressionStatement","src":"2599:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2546:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"2549:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2543:2:29"},"nodeType":"YulFunctionCall","src":"2543:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2557:19:29","statements":[{"nodeType":"YulAssignment","src":"2559:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2568:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"2571:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2564:3:29"},"nodeType":"YulFunctionCall","src":"2564:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2559:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2539:3:29","statements":[]},"src":"2535:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2668:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"2673:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2664:3:29"},"nodeType":"YulFunctionCall","src":"2664:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"2682:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2657:6:29"},"nodeType":"YulFunctionCall","src":"2657:27:29"},"nodeType":"YulExpressionStatement","src":"2657:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2484:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"2489:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"2494:6:29","type":""}],"src":"2440:250:29"},{"body":{"nodeType":"YulBlock","src":"2745:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2755:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2775:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2769:5:29"},"nodeType":"YulFunctionCall","src":"2769:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2759:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2797:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"2802:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2790:6:29"},"nodeType":"YulFunctionCall","src":"2790:19:29"},"nodeType":"YulExpressionStatement","src":"2790:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2857:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2864:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2853:3:29"},"nodeType":"YulFunctionCall","src":"2853:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2875:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2880:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2871:3:29"},"nodeType":"YulFunctionCall","src":"2871:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"2887:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"2818:34:29"},"nodeType":"YulFunctionCall","src":"2818:76:29"},"nodeType":"YulExpressionStatement","src":"2818:76:29"},{"nodeType":"YulAssignment","src":"2903:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2918:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2931:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2939:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2927:3:29"},"nodeType":"YulFunctionCall","src":"2927:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2948:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2944:3:29"},"nodeType":"YulFunctionCall","src":"2944:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2923:3:29"},"nodeType":"YulFunctionCall","src":"2923:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2914:3:29"},"nodeType":"YulFunctionCall","src":"2914:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"2955:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2910:3:29"},"nodeType":"YulFunctionCall","src":"2910:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2903:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2722:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2729:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2737:3:29","type":""}],"src":"2695:271:29"},{"body":{"nodeType":"YulBlock","src":"3092:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3109:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3120:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3102:6:29"},"nodeType":"YulFunctionCall","src":"3102:21:29"},"nodeType":"YulExpressionStatement","src":"3102:21:29"},{"nodeType":"YulAssignment","src":"3132:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3158:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3170:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3181:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3166:3:29"},"nodeType":"YulFunctionCall","src":"3166:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"3140:17:29"},"nodeType":"YulFunctionCall","src":"3140:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3132:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3061:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3072:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3083:4:29","type":""}],"src":"2971:220:29"},{"body":{"nodeType":"YulBlock","src":"3297:76:29","statements":[{"nodeType":"YulAssignment","src":"3307:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3319:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3330:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3315:3:29"},"nodeType":"YulFunctionCall","src":"3315:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3307:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3349:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3360:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3342:6:29"},"nodeType":"YulFunctionCall","src":"3342:25:29"},"nodeType":"YulExpressionStatement","src":"3342:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3266:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3277:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3288:4:29","type":""}],"src":"3196:177:29"},{"body":{"nodeType":"YulBlock","src":"3448:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3494:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3503:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3506:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3496:6:29"},"nodeType":"YulFunctionCall","src":"3496:12:29"},"nodeType":"YulExpressionStatement","src":"3496:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3469:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3465:3:29"},"nodeType":"YulFunctionCall","src":"3465:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3490:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3461:3:29"},"nodeType":"YulFunctionCall","src":"3461:32:29"},"nodeType":"YulIf","src":"3458:52:29"},{"nodeType":"YulAssignment","src":"3519:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3529:12:29"},"nodeType":"YulFunctionCall","src":"3529:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3519:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3414:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3425:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3437:6:29","type":""}],"src":"3378:180:29"},{"body":{"nodeType":"YulBlock","src":"3664:102:29","statements":[{"nodeType":"YulAssignment","src":"3674:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3686:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3697:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3682:3:29"},"nodeType":"YulFunctionCall","src":"3682:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3674:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3716:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3731:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3747:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3752:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3743:3:29"},"nodeType":"YulFunctionCall","src":"3743:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"3756:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3739:3:29"},"nodeType":"YulFunctionCall","src":"3739:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3727:3:29"},"nodeType":"YulFunctionCall","src":"3727:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3709:6:29"},"nodeType":"YulFunctionCall","src":"3709:51:29"},"nodeType":"YulExpressionStatement","src":"3709:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3633:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3644:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3655:4:29","type":""}],"src":"3563:203:29"},{"body":{"nodeType":"YulBlock","src":"3858:228:29","statements":[{"body":{"nodeType":"YulBlock","src":"3904:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3913:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3916:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3906:6:29"},"nodeType":"YulFunctionCall","src":"3906:12:29"},"nodeType":"YulExpressionStatement","src":"3906:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3879:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3888:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3875:3:29"},"nodeType":"YulFunctionCall","src":"3875:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3900:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3871:3:29"},"nodeType":"YulFunctionCall","src":"3871:32:29"},"nodeType":"YulIf","src":"3868:52:29"},{"nodeType":"YulVariableDeclaration","src":"3929:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3955:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3942:12:29"},"nodeType":"YulFunctionCall","src":"3942:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3933:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3999:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3974:24:29"},"nodeType":"YulFunctionCall","src":"3974:31:29"},"nodeType":"YulExpressionStatement","src":"3974:31:29"},{"nodeType":"YulAssignment","src":"4014:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"4024:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4014:6:29"}]},{"nodeType":"YulAssignment","src":"4038:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4065:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4076:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4061:3:29"},"nodeType":"YulFunctionCall","src":"4061:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4048:12:29"},"nodeType":"YulFunctionCall","src":"4048:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4038:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3816:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3827:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3839:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3847:6:29","type":""}],"src":"3771:315:29"},{"body":{"nodeType":"YulBlock","src":"4123:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4140:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4147:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4152:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4143:3:29"},"nodeType":"YulFunctionCall","src":"4143:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4133:6:29"},"nodeType":"YulFunctionCall","src":"4133:31:29"},"nodeType":"YulExpressionStatement","src":"4133:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4180:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4183:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4173:6:29"},"nodeType":"YulFunctionCall","src":"4173:15:29"},"nodeType":"YulExpressionStatement","src":"4173:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4204:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4207:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4197:6:29"},"nodeType":"YulFunctionCall","src":"4197:15:29"},"nodeType":"YulExpressionStatement","src":"4197:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4091:127:29"},{"body":{"nodeType":"YulBlock","src":"4268:230:29","statements":[{"nodeType":"YulAssignment","src":"4278:19:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4294:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4288:5:29"},"nodeType":"YulFunctionCall","src":"4288:9:29"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4278:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4306:58:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4328:6:29"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"4344:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4340:3:29"},"nodeType":"YulFunctionCall","src":"4340:13:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4359:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4355:3:29"},"nodeType":"YulFunctionCall","src":"4355:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4336:3:29"},"nodeType":"YulFunctionCall","src":"4336:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4324:3:29"},"nodeType":"YulFunctionCall","src":"4324:40:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4310:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4439:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4441:16:29"},"nodeType":"YulFunctionCall","src":"4441:18:29"},"nodeType":"YulExpressionStatement","src":"4441:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4382:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"4394:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4379:2:29"},"nodeType":"YulFunctionCall","src":"4379:34:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4418:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4430:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4415:2:29"},"nodeType":"YulFunctionCall","src":"4415:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4376:2:29"},"nodeType":"YulFunctionCall","src":"4376:62:29"},"nodeType":"YulIf","src":"4373:88:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4477:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4481:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4470:6:29"},"nodeType":"YulFunctionCall","src":"4470:22:29"},"nodeType":"YulExpressionStatement","src":"4470:22:29"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"4248:4:29","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4257:6:29","type":""}],"src":"4223:275:29"},{"body":{"nodeType":"YulBlock","src":"4570:114:29","statements":[{"body":{"nodeType":"YulBlock","src":"4614:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4616:16:29"},"nodeType":"YulFunctionCall","src":"4616:18:29"},"nodeType":"YulExpressionStatement","src":"4616:18:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4586:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4594:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4583:2:29"},"nodeType":"YulFunctionCall","src":"4583:30:29"},"nodeType":"YulIf","src":"4580:56:29"},{"nodeType":"YulAssignment","src":"4645:33:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4661:1:29","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"4664:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4657:3:29"},"nodeType":"YulFunctionCall","src":"4657:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"4673:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4653:3:29"},"nodeType":"YulFunctionCall","src":"4653:25:29"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"4645:4:29"}]}]},"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"4550:6:29","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"4561:4:29","type":""}],"src":"4503:181:29"},{"body":{"nodeType":"YulBlock","src":"4736:109:29","statements":[{"nodeType":"YulAssignment","src":"4746:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4768:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4755:12:29"},"nodeType":"YulFunctionCall","src":"4755:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4746:5:29"}]},{"body":{"nodeType":"YulBlock","src":"4823:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4832:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4835:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4825:6:29"},"nodeType":"YulFunctionCall","src":"4825:12:29"},"nodeType":"YulExpressionStatement","src":"4825:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4797:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4808:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"4815:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4804:3:29"},"nodeType":"YulFunctionCall","src":"4804:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4794:2:29"},"nodeType":"YulFunctionCall","src":"4794:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4787:6:29"},"nodeType":"YulFunctionCall","src":"4787:35:29"},"nodeType":"YulIf","src":"4784:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4715:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4726:5:29","type":""}],"src":"4689:156:29"},{"body":{"nodeType":"YulBlock","src":"4912:600:29","statements":[{"body":{"nodeType":"YulBlock","src":"4961:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4970:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4973:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4963:6:29"},"nodeType":"YulFunctionCall","src":"4963:12:29"},"nodeType":"YulExpressionStatement","src":"4963:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4940:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4948:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4936:3:29"},"nodeType":"YulFunctionCall","src":"4936:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"4955:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4932:3:29"},"nodeType":"YulFunctionCall","src":"4932:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4925:6:29"},"nodeType":"YulFunctionCall","src":"4925:35:29"},"nodeType":"YulIf","src":"4922:55:29"},{"nodeType":"YulVariableDeclaration","src":"4986:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5009:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4996:12:29"},"nodeType":"YulFunctionCall","src":"4996:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4990:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5025:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5035:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5029:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5048:69:29","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5113:2:29"}],"functionName":{"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulIdentifier","src":"5075:37:29"},"nodeType":"YulFunctionCall","src":"5075:41:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5059:15:29"},"nodeType":"YulFunctionCall","src":"5059:58:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"5052:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5126:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"5139:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"5130:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5158:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5163:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5151:6:29"},"nodeType":"YulFunctionCall","src":"5151:15:29"},"nodeType":"YulExpressionStatement","src":"5151:15:29"},{"nodeType":"YulAssignment","src":"5175:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5186:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5191:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5182:3:29"},"nodeType":"YulFunctionCall","src":"5182:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5175:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"5203:46:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5225:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5237:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"5240:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5233:3:29"},"nodeType":"YulFunctionCall","src":"5233:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5221:3:29"},"nodeType":"YulFunctionCall","src":"5221:23:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5246:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:29"},"nodeType":"YulFunctionCall","src":"5217:32:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"5207:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5277:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5286:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5289:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5279:6:29"},"nodeType":"YulFunctionCall","src":"5279:12:29"},"nodeType":"YulExpressionStatement","src":"5279:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"5264:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"5272:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5261:2:29"},"nodeType":"YulFunctionCall","src":"5261:15:29"},"nodeType":"YulIf","src":"5258:35:29"},{"nodeType":"YulVariableDeclaration","src":"5302:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5317:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5325:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5313:3:29"},"nodeType":"YulFunctionCall","src":"5313:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"5306:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5393:90:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5414:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5436:3:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"5419:16:29"},"nodeType":"YulFunctionCall","src":"5419:21:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5407:6:29"},"nodeType":"YulFunctionCall","src":"5407:34:29"},"nodeType":"YulExpressionStatement","src":"5407:34:29"},{"nodeType":"YulAssignment","src":"5454:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5465:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5470:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5461:3:29"},"nodeType":"YulFunctionCall","src":"5461:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5454:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5348:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"5353:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5345:2:29"},"nodeType":"YulFunctionCall","src":"5345:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5361:23:29","statements":[{"nodeType":"YulAssignment","src":"5363:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5374:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"5379:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5370:3:29"},"nodeType":"YulFunctionCall","src":"5370:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"5363:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"5341:3:29","statements":[]},"src":"5337:146:29"},{"nodeType":"YulAssignment","src":"5492:14:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"5501:5:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"5492:5:29"}]}]},"name":"abi_decode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4886:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"4894:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4902:5:29","type":""}],"src":"4850:662:29"},{"body":{"nodeType":"YulBlock","src":"5663:735:29","statements":[{"body":{"nodeType":"YulBlock","src":"5709:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5718:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5721:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5711:6:29"},"nodeType":"YulFunctionCall","src":"5711:12:29"},"nodeType":"YulExpressionStatement","src":"5711:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5684:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5693:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5680:3:29"},"nodeType":"YulFunctionCall","src":"5680:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5705:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5676:3:29"},"nodeType":"YulFunctionCall","src":"5676:32:29"},"nodeType":"YulIf","src":"5673:52:29"},{"nodeType":"YulAssignment","src":"5734:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5757:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5744:12:29"},"nodeType":"YulFunctionCall","src":"5744:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5734:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"5776:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5807:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5818:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5803:3:29"},"nodeType":"YulFunctionCall","src":"5803:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5790:12:29"},"nodeType":"YulFunctionCall","src":"5790:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5780:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5831:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5841:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5835:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5886:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5895:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5898:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5888:6:29"},"nodeType":"YulFunctionCall","src":"5888:12:29"},"nodeType":"YulExpressionStatement","src":"5888:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5874:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5882:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5871:2:29"},"nodeType":"YulFunctionCall","src":"5871:14:29"},"nodeType":"YulIf","src":"5868:34:29"},{"nodeType":"YulAssignment","src":"5911:69:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5952:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"5963:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5948:3:29"},"nodeType":"YulFunctionCall","src":"5948:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5972:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"5921:26:29"},"nodeType":"YulFunctionCall","src":"5921:59:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5911:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"5989:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6022:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6033:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6018:3:29"},"nodeType":"YulFunctionCall","src":"6018:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6005:12:29"},"nodeType":"YulFunctionCall","src":"6005:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5993:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6066:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6075:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6078:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6068:6:29"},"nodeType":"YulFunctionCall","src":"6068:12:29"},"nodeType":"YulExpressionStatement","src":"6068:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6052:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6062:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6049:2:29"},"nodeType":"YulFunctionCall","src":"6049:16:29"},"nodeType":"YulIf","src":"6046:36:29"},{"nodeType":"YulVariableDeclaration","src":"6091:34:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6105:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6116:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6101:3:29"},"nodeType":"YulFunctionCall","src":"6101:24:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6095:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6173:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6182:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6185:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6175:6:29"},"nodeType":"YulFunctionCall","src":"6175:12:29"},"nodeType":"YulExpressionStatement","src":"6175:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6152:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"6156:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6148:3:29"},"nodeType":"YulFunctionCall","src":"6148:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6163:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6144:3:29"},"nodeType":"YulFunctionCall","src":"6144:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6137:6:29"},"nodeType":"YulFunctionCall","src":"6137:35:29"},"nodeType":"YulIf","src":"6134:55:29"},{"nodeType":"YulVariableDeclaration","src":"6198:30:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6225:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6212:12:29"},"nodeType":"YulFunctionCall","src":"6212:16:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6202:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6255:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6264:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6267:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6257:6:29"},"nodeType":"YulFunctionCall","src":"6257:12:29"},"nodeType":"YulExpressionStatement","src":"6257:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6243:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6251:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6240:2:29"},"nodeType":"YulFunctionCall","src":"6240:14:29"},"nodeType":"YulIf","src":"6237:34:29"},{"body":{"nodeType":"YulBlock","src":"6321:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6330:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6333:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6323:6:29"},"nodeType":"YulFunctionCall","src":"6323:12:29"},"nodeType":"YulExpressionStatement","src":"6323:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6294:2:29"},{"name":"length","nodeType":"YulIdentifier","src":"6298:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6290:3:29"},"nodeType":"YulFunctionCall","src":"6290:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"6307:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6286:3:29"},"nodeType":"YulFunctionCall","src":"6286:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6312:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6283:2:29"},"nodeType":"YulFunctionCall","src":"6283:37:29"},"nodeType":"YulIf","src":"6280:57:29"},{"nodeType":"YulAssignment","src":"6346:21:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6360:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"6364:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6356:3:29"},"nodeType":"YulFunctionCall","src":"6356:11:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6346:6:29"}]},{"nodeType":"YulAssignment","src":"6376:16:29","value":{"name":"length","nodeType":"YulIdentifier","src":"6386:6:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6376:6:29"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5605:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5616:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5628:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5636:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5644:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5652:6:29","type":""}],"src":"5517:881:29"},{"body":{"nodeType":"YulBlock","src":"6534:102:29","statements":[{"nodeType":"YulAssignment","src":"6544:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6556:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6567:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6552:3:29"},"nodeType":"YulFunctionCall","src":"6552:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6544:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6586:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6601:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6617:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6622:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6613:3:29"},"nodeType":"YulFunctionCall","src":"6613:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6626:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6609:3:29"},"nodeType":"YulFunctionCall","src":"6609:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6597:3:29"},"nodeType":"YulFunctionCall","src":"6597:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6579:6:29"},"nodeType":"YulFunctionCall","src":"6579:51:29"},"nodeType":"YulExpressionStatement","src":"6579:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaTicketsContract_$3740__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6503:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6514:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6525:4:29","type":""}],"src":"6403:233:29"},{"body":{"nodeType":"YulBlock","src":"6726:232:29","statements":[{"body":{"nodeType":"YulBlock","src":"6772:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6781:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6784:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6774:6:29"},"nodeType":"YulFunctionCall","src":"6774:12:29"},"nodeType":"YulExpressionStatement","src":"6774:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6747:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6756:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6743:3:29"},"nodeType":"YulFunctionCall","src":"6743:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6768:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6739:3:29"},"nodeType":"YulFunctionCall","src":"6739:32:29"},"nodeType":"YulIf","src":"6736:52:29"},{"nodeType":"YulVariableDeclaration","src":"6797:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6823:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6810:12:29"},"nodeType":"YulFunctionCall","src":"6810:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6801:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6867:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6842:24:29"},"nodeType":"YulFunctionCall","src":"6842:31:29"},"nodeType":"YulExpressionStatement","src":"6842:31:29"},{"nodeType":"YulAssignment","src":"6882:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"6892:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6882:6:29"}]},{"nodeType":"YulAssignment","src":"6906:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6937:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6948:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6933:3:29"},"nodeType":"YulFunctionCall","src":"6933:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"6916:16:29"},"nodeType":"YulFunctionCall","src":"6916:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6906:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6684:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6695:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6707:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6715:6:29","type":""}],"src":"6641:317:29"},{"body":{"nodeType":"YulBlock","src":"7060:87:29","statements":[{"nodeType":"YulAssignment","src":"7070:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7082:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7093:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7078:3:29"},"nodeType":"YulFunctionCall","src":"7078:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7070:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7112:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7127:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7135:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7123:3:29"},"nodeType":"YulFunctionCall","src":"7123:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7105:6:29"},"nodeType":"YulFunctionCall","src":"7105:36:29"},"nodeType":"YulExpressionStatement","src":"7105:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7029:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7040:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7051:4:29","type":""}],"src":"6963:184:29"},{"body":{"nodeType":"YulBlock","src":"7224:832:29","statements":[{"body":{"nodeType":"YulBlock","src":"7273:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7282:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7285:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7275:6:29"},"nodeType":"YulFunctionCall","src":"7275:12:29"},"nodeType":"YulExpressionStatement","src":"7275:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7252:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7260:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7248:3:29"},"nodeType":"YulFunctionCall","src":"7248:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"7267:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7244:3:29"},"nodeType":"YulFunctionCall","src":"7244:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7237:6:29"},"nodeType":"YulFunctionCall","src":"7237:35:29"},"nodeType":"YulIf","src":"7234:55:29"},{"nodeType":"YulVariableDeclaration","src":"7298:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7321:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7308:12:29"},"nodeType":"YulFunctionCall","src":"7308:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7302:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7337:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7347:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7341:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7360:69:29","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"7425:2:29"}],"functionName":{"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulIdentifier","src":"7387:37:29"},"nodeType":"YulFunctionCall","src":"7387:41:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7371:15:29"},"nodeType":"YulFunctionCall","src":"7371:58:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7364:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7438:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"7451:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"7442:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7470:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7475:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7463:6:29"},"nodeType":"YulFunctionCall","src":"7463:15:29"},"nodeType":"YulExpressionStatement","src":"7463:15:29"},{"nodeType":"YulAssignment","src":"7487:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7498:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7503:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7494:3:29"},"nodeType":"YulFunctionCall","src":"7494:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"7487:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"7515:46:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7537:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7549:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"7552:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7545:3:29"},"nodeType":"YulFunctionCall","src":"7545:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7533:3:29"},"nodeType":"YulFunctionCall","src":"7533:23:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7558:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7529:3:29"},"nodeType":"YulFunctionCall","src":"7529:32:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"7519:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7589:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7598:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7601:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7591:6:29"},"nodeType":"YulFunctionCall","src":"7591:12:29"},"nodeType":"YulExpressionStatement","src":"7591:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"7576:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"7584:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7573:2:29"},"nodeType":"YulFunctionCall","src":"7573:15:29"},"nodeType":"YulIf","src":"7570:35:29"},{"nodeType":"YulVariableDeclaration","src":"7614:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7629:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7637:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7625:3:29"},"nodeType":"YulFunctionCall","src":"7625:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"7618:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7705:322:29","statements":[{"nodeType":"YulVariableDeclaration","src":"7719:36:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7751:3:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7738:12:29"},"nodeType":"YulFunctionCall","src":"7738:17:29"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"7723:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7819:74:29","statements":[{"nodeType":"YulVariableDeclaration","src":"7837:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7847:1:29","type":"","value":"0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7841:2:29","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7872:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"7876:2:29"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7865:6:29"},"nodeType":"YulFunctionCall","src":"7865:14:29"},"nodeType":"YulExpressionStatement","src":"7865:14:29"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"7774:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7787:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7771:2:29"},"nodeType":"YulFunctionCall","src":"7771:35:29"},"nodeType":"YulIf","src":"7768:125:29"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7913:3:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7953:6:29"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"7961:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7949:3:29"},"nodeType":"YulFunctionCall","src":"7949:24:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7975:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7945:3:29"},"nodeType":"YulFunctionCall","src":"7945:33:29"},{"name":"end","nodeType":"YulIdentifier","src":"7980:3:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"7918:26:29"},"nodeType":"YulFunctionCall","src":"7918:66:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:29"},"nodeType":"YulFunctionCall","src":"7906:79:29"},"nodeType":"YulExpressionStatement","src":"7906:79:29"},{"nodeType":"YulAssignment","src":"7998:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8009:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"8014:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8005:3:29"},"nodeType":"YulFunctionCall","src":"8005:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"7998:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7660:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"7665:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7657:2:29"},"nodeType":"YulFunctionCall","src":"7657:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7673:23:29","statements":[{"nodeType":"YulAssignment","src":"7675:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7686:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"7691:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7682:3:29"},"nodeType":"YulFunctionCall","src":"7682:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"7675:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"7653:3:29","statements":[]},"src":"7649:378:29"},{"nodeType":"YulAssignment","src":"8036:14:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"8045:5:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"8036:5:29"}]}]},"name":"abi_decode_array_array_uint8_dyn_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7198:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"7206:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7214:5:29","type":""}],"src":"7152:904:29"},{"body":{"nodeType":"YulBlock","src":"8152:283:29","statements":[{"body":{"nodeType":"YulBlock","src":"8201:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8210:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8213:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8203:6:29"},"nodeType":"YulFunctionCall","src":"8203:12:29"},"nodeType":"YulExpressionStatement","src":"8203:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8180:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8188:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8176:3:29"},"nodeType":"YulFunctionCall","src":"8176:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"8195:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8172:3:29"},"nodeType":"YulFunctionCall","src":"8172:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8165:6:29"},"nodeType":"YulFunctionCall","src":"8165:35:29"},"nodeType":"YulIf","src":"8162:55:29"},{"nodeType":"YulAssignment","src":"8226:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8249:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8236:12:29"},"nodeType":"YulFunctionCall","src":"8236:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8226:6:29"}]},{"body":{"nodeType":"YulBlock","src":"8299:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8308:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8311:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8301:6:29"},"nodeType":"YulFunctionCall","src":"8301:12:29"},"nodeType":"YulExpressionStatement","src":"8301:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8271:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8279:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8268:2:29"},"nodeType":"YulFunctionCall","src":"8268:30:29"},"nodeType":"YulIf","src":"8265:50:29"},{"nodeType":"YulAssignment","src":"8324:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8340:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8348:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8336:3:29"},"nodeType":"YulFunctionCall","src":"8336:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"8324:8:29"}]},{"body":{"nodeType":"YulBlock","src":"8413:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8422:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8425:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8415:6:29"},"nodeType":"YulFunctionCall","src":"8415:12:29"},"nodeType":"YulExpressionStatement","src":"8415:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8376:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8388:1:29","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"8391:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8384:3:29"},"nodeType":"YulFunctionCall","src":"8384:14:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8372:3:29"},"nodeType":"YulFunctionCall","src":"8372:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"8401:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8368:3:29"},"nodeType":"YulFunctionCall","src":"8368:38:29"},{"name":"end","nodeType":"YulIdentifier","src":"8408:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8365:2:29"},"nodeType":"YulFunctionCall","src":"8365:47:29"},"nodeType":"YulIf","src":"8362:67:29"}]},"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"8115:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"8123:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"8131:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"8141:6:29","type":""}],"src":"8061:374:29"},{"body":{"nodeType":"YulBlock","src":"8678:1333:29","statements":[{"body":{"nodeType":"YulBlock","src":"8725:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8734:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8737:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8727:6:29"},"nodeType":"YulFunctionCall","src":"8727:12:29"},"nodeType":"YulExpressionStatement","src":"8727:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8699:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"8708:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8695:3:29"},"nodeType":"YulFunctionCall","src":"8695:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"8720:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8691:3:29"},"nodeType":"YulFunctionCall","src":"8691:33:29"},"nodeType":"YulIf","src":"8688:53:29"},{"nodeType":"YulAssignment","src":"8750:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8777:9:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8760:16:29"},"nodeType":"YulFunctionCall","src":"8760:27:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8750:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"8796:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"8806:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8800:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8817:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8848:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8859:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8844:3:29"},"nodeType":"YulFunctionCall","src":"8844:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8831:12:29"},"nodeType":"YulFunctionCall","src":"8831:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8821:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8872:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"8882:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8876:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"8927:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8936:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8939:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8929:6:29"},"nodeType":"YulFunctionCall","src":"8929:12:29"},"nodeType":"YulExpressionStatement","src":"8929:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8915:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"8923:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8912:2:29"},"nodeType":"YulFunctionCall","src":"8912:14:29"},"nodeType":"YulIf","src":"8909:34:29"},{"nodeType":"YulVariableDeclaration","src":"8952:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8966:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"8977:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8962:3:29"},"nodeType":"YulFunctionCall","src":"8962:22:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"8956:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9032:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9041:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9044:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9034:6:29"},"nodeType":"YulFunctionCall","src":"9034:12:29"},"nodeType":"YulExpressionStatement","src":"9034:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9011:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"9015:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9007:3:29"},"nodeType":"YulFunctionCall","src":"9007:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9022:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9003:3:29"},"nodeType":"YulFunctionCall","src":"9003:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8996:6:29"},"nodeType":"YulFunctionCall","src":"8996:35:29"},"nodeType":"YulIf","src":"8993:55:29"},{"nodeType":"YulVariableDeclaration","src":"9057:26:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9080:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9067:12:29"},"nodeType":"YulFunctionCall","src":"9067:16:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"9061:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9092:69:29","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"9157:2:29"}],"functionName":{"name":"array_allocation_size_array_uint8_dyn","nodeType":"YulIdentifier","src":"9119:37:29"},"nodeType":"YulFunctionCall","src":"9119:41:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9103:15:29"},"nodeType":"YulFunctionCall","src":"9103:58:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"9096:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9170:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"9183:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"9174:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9202:3:29"},{"name":"_4","nodeType":"YulIdentifier","src":"9207:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9195:6:29"},"nodeType":"YulFunctionCall","src":"9195:15:29"},"nodeType":"YulExpressionStatement","src":"9195:15:29"},{"nodeType":"YulAssignment","src":"9219:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9230:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9235:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9226:3:29"},"nodeType":"YulFunctionCall","src":"9226:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"9219:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"9247:42:29","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9269:2:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9277:1:29","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"9280:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9273:3:29"},"nodeType":"YulFunctionCall","src":"9273:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:29"},"nodeType":"YulFunctionCall","src":"9265:19:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9286:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9261:3:29"},"nodeType":"YulFunctionCall","src":"9261:28:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"9251:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9321:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9330:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9333:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9323:6:29"},"nodeType":"YulFunctionCall","src":"9323:12:29"},"nodeType":"YulExpressionStatement","src":"9323:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"9304:6:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9312:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9301:2:29"},"nodeType":"YulFunctionCall","src":"9301:19:29"},"nodeType":"YulIf","src":"9298:39:29"},{"nodeType":"YulVariableDeclaration","src":"9346:22:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9361:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9365:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9357:3:29"},"nodeType":"YulFunctionCall","src":"9357:11:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"9350:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9433:86:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9454:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9472:3:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9459:12:29"},"nodeType":"YulFunctionCall","src":"9459:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9447:6:29"},"nodeType":"YulFunctionCall","src":"9447:30:29"},"nodeType":"YulExpressionStatement","src":"9447:30:29"},{"nodeType":"YulAssignment","src":"9490:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9501:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9506:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9497:3:29"},"nodeType":"YulFunctionCall","src":"9497:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"9490:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9388:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"9393:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9385:2:29"},"nodeType":"YulFunctionCall","src":"9385:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9401:23:29","statements":[{"nodeType":"YulAssignment","src":"9403:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9414:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9419:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9410:3:29"},"nodeType":"YulFunctionCall","src":"9410:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"9403:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"9381:3:29","statements":[]},"src":"9377:142:29"},{"nodeType":"YulAssignment","src":"9528:15:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"9538:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9528:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"9552:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9585:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9596:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9581:3:29"},"nodeType":"YulFunctionCall","src":"9581:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9568:12:29"},"nodeType":"YulFunctionCall","src":"9568:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9556:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9629:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9641:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9631:6:29"},"nodeType":"YulFunctionCall","src":"9631:12:29"},"nodeType":"YulExpressionStatement","src":"9631:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9615:8:29"},{"name":"_2","nodeType":"YulIdentifier","src":"9625:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9612:2:29"},"nodeType":"YulFunctionCall","src":"9612:16:29"},"nodeType":"YulIf","src":"9609:36:29"},{"nodeType":"YulAssignment","src":"9654:81:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9705:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9716:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9701:3:29"},"nodeType":"YulFunctionCall","src":"9701:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9727:7:29"}],"functionName":{"name":"abi_decode_array_array_uint8_dyn_dyn","nodeType":"YulIdentifier","src":"9664:36:29"},"nodeType":"YulFunctionCall","src":"9664:71:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9654:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"9744:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9777:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9788:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9773:3:29"},"nodeType":"YulFunctionCall","src":"9773:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9760:12:29"},"nodeType":"YulFunctionCall","src":"9760:32:29"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9748:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9821:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9830:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9833:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9823:6:29"},"nodeType":"YulFunctionCall","src":"9823:12:29"},"nodeType":"YulExpressionStatement","src":"9823:12:29"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9807:8:29"},{"name":"_2","nodeType":"YulIdentifier","src":"9817:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9804:2:29"},"nodeType":"YulFunctionCall","src":"9804:16:29"},"nodeType":"YulIf","src":"9801:36:29"},{"nodeType":"YulVariableDeclaration","src":"9846:105:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9921:9:29"},{"name":"offset_2","nodeType":"YulIdentifier","src":"9932:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9917:3:29"},"nodeType":"YulFunctionCall","src":"9917:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9943:7:29"}],"functionName":{"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"9872:44:29"},"nodeType":"YulFunctionCall","src":"9872:79:29"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"9850:8:29","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"9860:8:29","type":""}]},{"nodeType":"YulAssignment","src":"9960:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9970:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9960:6:29"}]},{"nodeType":"YulAssignment","src":"9987:18:29","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"9997:8:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9987:6:29"}]}]},"name":"abi_decode_tuple_t_uint8t_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8612:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8623:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8635:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8643:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8651:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8659:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8667:6:29","type":""}],"src":"8440:1571:29"},{"body":{"nodeType":"YulBlock","src":"10119:339:29","statements":[{"body":{"nodeType":"YulBlock","src":"10165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10167:6:29"},"nodeType":"YulFunctionCall","src":"10167:12:29"},"nodeType":"YulExpressionStatement","src":"10167:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10140:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"10149:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10136:3:29"},"nodeType":"YulFunctionCall","src":"10136:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"10161:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10132:3:29"},"nodeType":"YulFunctionCall","src":"10132:32:29"},"nodeType":"YulIf","src":"10129:52:29"},{"nodeType":"YulVariableDeclaration","src":"10190:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10217:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10204:12:29"},"nodeType":"YulFunctionCall","src":"10204:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10194:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"10270:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10279:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10282:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10272:6:29"},"nodeType":"YulFunctionCall","src":"10272:12:29"},"nodeType":"YulExpressionStatement","src":"10272:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10242:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10250:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10239:2:29"},"nodeType":"YulFunctionCall","src":"10239:30:29"},"nodeType":"YulIf","src":"10236:50:29"},{"nodeType":"YulVariableDeclaration","src":"10295:103:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10370:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"10381:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10366:3:29"},"nodeType":"YulFunctionCall","src":"10366:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10390:7:29"}],"functionName":{"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"10321:44:29"},"nodeType":"YulFunctionCall","src":"10321:77:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"10299:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"10309:8:29","type":""}]},{"nodeType":"YulAssignment","src":"10407:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"10417:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10407:6:29"}]},{"nodeType":"YulAssignment","src":"10434:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"10444:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10434:6:29"}]}]},"name":"abi_decode_tuple_t_array$_t_uint8_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10077:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10088:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10100:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10108:6:29","type":""}],"src":"10016:442:29"},{"body":{"nodeType":"YulBlock","src":"10567:352:29","statements":[{"body":{"nodeType":"YulBlock","src":"10613:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10622:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10625:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10615:6:29"},"nodeType":"YulFunctionCall","src":"10615:12:29"},"nodeType":"YulExpressionStatement","src":"10615:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10588:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"10597:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10584:3:29"},"nodeType":"YulFunctionCall","src":"10584:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"10609:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10580:3:29"},"nodeType":"YulFunctionCall","src":"10580:32:29"},"nodeType":"YulIf","src":"10577:52:29"},{"nodeType":"YulVariableDeclaration","src":"10638:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10664:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10651:12:29"},"nodeType":"YulFunctionCall","src":"10651:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10642:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10708:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10683:24:29"},"nodeType":"YulFunctionCall","src":"10683:31:29"},"nodeType":"YulExpressionStatement","src":"10683:31:29"},{"nodeType":"YulAssignment","src":"10723:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"10733:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10723:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"10747:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10779:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10790:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10775:3:29"},"nodeType":"YulFunctionCall","src":"10775:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10762:12:29"},"nodeType":"YulFunctionCall","src":"10762:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10751:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10828:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10803:24:29"},"nodeType":"YulFunctionCall","src":"10803:33:29"},"nodeType":"YulExpressionStatement","src":"10803:33:29"},{"nodeType":"YulAssignment","src":"10845:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10855:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10845:6:29"}]},{"nodeType":"YulAssignment","src":"10871:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10898:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10909:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10894:3:29"},"nodeType":"YulFunctionCall","src":"10894:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10881:12:29"},"nodeType":"YulFunctionCall","src":"10881:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10871:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10517:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10528:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10540:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10548:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10556:6:29","type":""}],"src":"10463:456:29"},{"body":{"nodeType":"YulBlock","src":"10992:114:29","statements":[{"body":{"nodeType":"YulBlock","src":"11038:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11047:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11050:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11040:6:29"},"nodeType":"YulFunctionCall","src":"11040:12:29"},"nodeType":"YulExpressionStatement","src":"11040:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11013:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"11022:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11009:3:29"},"nodeType":"YulFunctionCall","src":"11009:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"11034:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11005:3:29"},"nodeType":"YulFunctionCall","src":"11005:32:29"},"nodeType":"YulIf","src":"11002:52:29"},{"nodeType":"YulAssignment","src":"11063:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11090:9:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"11073:16:29"},"nodeType":"YulFunctionCall","src":"11073:27:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11063:6:29"}]}]},"name":"abi_decode_tuple_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10958:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10969:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10981:6:29","type":""}],"src":"10924:182:29"},{"body":{"nodeType":"YulBlock","src":"11240:102:29","statements":[{"nodeType":"YulAssignment","src":"11250:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11262:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11273:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11258:3:29"},"nodeType":"YulFunctionCall","src":"11258:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11250:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11292:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11307:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11323:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11328:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11319:3:29"},"nodeType":"YulFunctionCall","src":"11319:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"11332:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11315:3:29"},"nodeType":"YulFunctionCall","src":"11315:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11303:3:29"},"nodeType":"YulFunctionCall","src":"11303:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11285:6:29"},"nodeType":"YulFunctionCall","src":"11285:51:29"},"nodeType":"YulExpressionStatement","src":"11285:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaPacksContract_$3694__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11209:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11220:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11231:4:29","type":""}],"src":"11111:231:29"},{"body":{"nodeType":"YulBlock","src":"11474:420:29","statements":[{"body":{"nodeType":"YulBlock","src":"11520:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11529:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11532:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11522:6:29"},"nodeType":"YulFunctionCall","src":"11522:12:29"},"nodeType":"YulExpressionStatement","src":"11522:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11495:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"11504:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11491:3:29"},"nodeType":"YulFunctionCall","src":"11491:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"11516:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11487:3:29"},"nodeType":"YulFunctionCall","src":"11487:32:29"},"nodeType":"YulIf","src":"11484:52:29"},{"nodeType":"YulVariableDeclaration","src":"11545:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11571:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11558:12:29"},"nodeType":"YulFunctionCall","src":"11558:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11549:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11615:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11590:24:29"},"nodeType":"YulFunctionCall","src":"11590:31:29"},"nodeType":"YulExpressionStatement","src":"11590:31:29"},{"nodeType":"YulAssignment","src":"11630:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"11640:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11630:6:29"}]},{"nodeType":"YulAssignment","src":"11654:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11681:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11692:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11677:3:29"},"nodeType":"YulFunctionCall","src":"11677:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11664:12:29"},"nodeType":"YulFunctionCall","src":"11664:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11654:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"11705:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11736:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11747:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11732:3:29"},"nodeType":"YulFunctionCall","src":"11732:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11719:12:29"},"nodeType":"YulFunctionCall","src":"11719:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11709:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"11794:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11803:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11806:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11796:6:29"},"nodeType":"YulFunctionCall","src":"11796:12:29"},"nodeType":"YulExpressionStatement","src":"11796:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11766:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11774:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11763:2:29"},"nodeType":"YulFunctionCall","src":"11763:30:29"},"nodeType":"YulIf","src":"11760:50:29"},{"nodeType":"YulAssignment","src":"11819:69:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11860:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"11871:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11856:3:29"},"nodeType":"YulFunctionCall","src":"11856:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11880:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"11829:26:29"},"nodeType":"YulFunctionCall","src":"11829:59:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11819:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11424:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11435:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11447:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11455:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11463:6:29","type":""}],"src":"11347:547:29"},{"body":{"nodeType":"YulBlock","src":"12102:277:29","statements":[{"nodeType":"YulAssignment","src":"12112:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12124:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12135:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12120:3:29"},"nodeType":"YulFunctionCall","src":"12120:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12112:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12155:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"12166:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12148:6:29"},"nodeType":"YulFunctionCall","src":"12148:25:29"},"nodeType":"YulExpressionStatement","src":"12148:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12193:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12204:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12189:3:29"},"nodeType":"YulFunctionCall","src":"12189:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"12209:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12182:6:29"},"nodeType":"YulFunctionCall","src":"12182:34:29"},"nodeType":"YulExpressionStatement","src":"12182:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12236:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12247:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12232:3:29"},"nodeType":"YulFunctionCall","src":"12232:18:29"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12266:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12259:6:29"},"nodeType":"YulFunctionCall","src":"12259:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12252:6:29"},"nodeType":"YulFunctionCall","src":"12252:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12225:6:29"},"nodeType":"YulFunctionCall","src":"12225:50:29"},"nodeType":"YulExpressionStatement","src":"12225:50:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12295:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12306:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12291:3:29"},"nodeType":"YulFunctionCall","src":"12291:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"12315:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"12323:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12311:3:29"},"nodeType":"YulFunctionCall","src":"12311:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12284:6:29"},"nodeType":"YulFunctionCall","src":"12284:45:29"},"nodeType":"YulExpressionStatement","src":"12284:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12349:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12360:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12345:3:29"},"nodeType":"YulFunctionCall","src":"12345:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"12366:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12338:6:29"},"nodeType":"YulFunctionCall","src":"12338:35:29"},"nodeType":"YulExpressionStatement","src":"12338:35:29"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__to_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12039:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12050:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12058:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12066:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12074:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12082:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12093:4:29","type":""}],"src":"11899:480:29"},{"body":{"nodeType":"YulBlock","src":"12426:76:29","statements":[{"body":{"nodeType":"YulBlock","src":"12480:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12489:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12492:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12482:6:29"},"nodeType":"YulFunctionCall","src":"12482:12:29"},"nodeType":"YulExpressionStatement","src":"12482:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12449:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12470:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12463:6:29"},"nodeType":"YulFunctionCall","src":"12463:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12456:6:29"},"nodeType":"YulFunctionCall","src":"12456:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12446:2:29"},"nodeType":"YulFunctionCall","src":"12446:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12439:6:29"},"nodeType":"YulFunctionCall","src":"12439:40:29"},"nodeType":"YulIf","src":"12436:60:29"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12415:5:29","type":""}],"src":"12384:118:29"},{"body":{"nodeType":"YulBlock","src":"12574:174:29","statements":[{"body":{"nodeType":"YulBlock","src":"12620:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12629:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12632:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12622:6:29"},"nodeType":"YulFunctionCall","src":"12622:12:29"},"nodeType":"YulExpressionStatement","src":"12622:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12595:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"12604:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12591:3:29"},"nodeType":"YulFunctionCall","src":"12591:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"12616:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12587:3:29"},"nodeType":"YulFunctionCall","src":"12587:32:29"},"nodeType":"YulIf","src":"12584:52:29"},{"nodeType":"YulVariableDeclaration","src":"12645:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12671:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12658:12:29"},"nodeType":"YulFunctionCall","src":"12658:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12649:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12712:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"12690:21:29"},"nodeType":"YulFunctionCall","src":"12690:28:29"},"nodeType":"YulExpressionStatement","src":"12690:28:29"},{"nodeType":"YulAssignment","src":"12727:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"12737:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12727:6:29"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12540:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12551:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12563:6:29","type":""}],"src":"12507:241:29"},{"body":{"nodeType":"YulBlock","src":"12811:129:29","statements":[{"body":{"nodeType":"YulBlock","src":"12855:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"12857:16:29"},"nodeType":"YulFunctionCall","src":"12857:18:29"},"nodeType":"YulExpressionStatement","src":"12857:18:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12827:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"12835:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12824:2:29"},"nodeType":"YulFunctionCall","src":"12824:30:29"},"nodeType":"YulIf","src":"12821:56:29"},{"nodeType":"YulAssignment","src":"12886:48:29","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12906:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"12914:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12902:3:29"},"nodeType":"YulFunctionCall","src":"12902:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12923:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12919:3:29"},"nodeType":"YulFunctionCall","src":"12919:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12898:3:29"},"nodeType":"YulFunctionCall","src":"12898:29:29"},{"kind":"number","nodeType":"YulLiteral","src":"12929:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12894:3:29"},"nodeType":"YulFunctionCall","src":"12894:40:29"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"12886:4:29"}]}]},"name":"array_allocation_size_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"12791:6:29","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"12802:4:29","type":""}],"src":"12753:187:29"},{"body":{"nodeType":"YulBlock","src":"13020:263:29","statements":[{"nodeType":"YulAssignment","src":"13030:62:29","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13084:6:29"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"13055:28:29"},"nodeType":"YulFunctionCall","src":"13055:36:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"13039:15:29"},"nodeType":"YulFunctionCall","src":"13039:53:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"13030:5:29"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"13108:5:29"},{"name":"length","nodeType":"YulIdentifier","src":"13115:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13101:6:29"},"nodeType":"YulFunctionCall","src":"13101:21:29"},"nodeType":"YulExpressionStatement","src":"13101:21:29"},{"body":{"nodeType":"YulBlock","src":"13160:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13169:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13172:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13162:6:29"},"nodeType":"YulFunctionCall","src":"13162:12:29"},"nodeType":"YulExpressionStatement","src":"13162:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13141:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"13146:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13137:3:29"},"nodeType":"YulFunctionCall","src":"13137:16:29"},{"name":"end","nodeType":"YulIdentifier","src":"13155:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13134:2:29"},"nodeType":"YulFunctionCall","src":"13134:25:29"},"nodeType":"YulIf","src":"13131:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"13202:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"13209:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13198:3:29"},"nodeType":"YulFunctionCall","src":"13198:16:29"},{"name":"src","nodeType":"YulIdentifier","src":"13216:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"13221:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13185:12:29"},"nodeType":"YulFunctionCall","src":"13185:43:29"},"nodeType":"YulExpressionStatement","src":"13185:43:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"13252:5:29"},{"name":"length","nodeType":"YulIdentifier","src":"13259:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13248:3:29"},"nodeType":"YulFunctionCall","src":"13248:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"13268:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13244:3:29"},"nodeType":"YulFunctionCall","src":"13244:29:29"},{"kind":"number","nodeType":"YulLiteral","src":"13275:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13237:6:29"},"nodeType":"YulFunctionCall","src":"13237:40:29"},"nodeType":"YulExpressionStatement","src":"13237:40:29"}]},"name":"abi_decode_available_length_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"12989:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"12994:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"13002:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"13010:5:29","type":""}],"src":"12945:338:29"},{"body":{"nodeType":"YulBlock","src":"13341:169:29","statements":[{"body":{"nodeType":"YulBlock","src":"13390:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13399:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13402:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13392:6:29"},"nodeType":"YulFunctionCall","src":"13392:12:29"},"nodeType":"YulExpressionStatement","src":"13392:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13369:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"13377:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13365:3:29"},"nodeType":"YulFunctionCall","src":"13365:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"13384:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13361:3:29"},"nodeType":"YulFunctionCall","src":"13361:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13354:6:29"},"nodeType":"YulFunctionCall","src":"13354:35:29"},"nodeType":"YulIf","src":"13351:55:29"},{"nodeType":"YulAssignment","src":"13415:89:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13463:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"13471:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13459:3:29"},"nodeType":"YulFunctionCall","src":"13459:17:29"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13491:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13478:12:29"},"nodeType":"YulFunctionCall","src":"13478:20:29"},{"name":"end","nodeType":"YulIdentifier","src":"13500:3:29"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"13424:34:29"},"nodeType":"YulFunctionCall","src":"13424:80:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"13415:5:29"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"13315:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"13323:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"13331:5:29","type":""}],"src":"13288:222:29"},{"body":{"nodeType":"YulBlock","src":"13622:436:29","statements":[{"body":{"nodeType":"YulBlock","src":"13668:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13677:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13680:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13670:6:29"},"nodeType":"YulFunctionCall","src":"13670:12:29"},"nodeType":"YulExpressionStatement","src":"13670:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13643:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"13652:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13639:3:29"},"nodeType":"YulFunctionCall","src":"13639:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"13664:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13635:3:29"},"nodeType":"YulFunctionCall","src":"13635:32:29"},"nodeType":"YulIf","src":"13632:52:29"},{"nodeType":"YulVariableDeclaration","src":"13693:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13720:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13707:12:29"},"nodeType":"YulFunctionCall","src":"13707:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13697:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13739:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"13749:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13743:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13794:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13803:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13806:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13796:6:29"},"nodeType":"YulFunctionCall","src":"13796:12:29"},"nodeType":"YulExpressionStatement","src":"13796:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13782:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13790:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13779:2:29"},"nodeType":"YulFunctionCall","src":"13779:14:29"},"nodeType":"YulIf","src":"13776:34:29"},{"nodeType":"YulAssignment","src":"13819:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13851:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"13862:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13847:3:29"},"nodeType":"YulFunctionCall","src":"13847:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13871:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"13829:17:29"},"nodeType":"YulFunctionCall","src":"13829:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13819:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"13888:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13921:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13932:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13917:3:29"},"nodeType":"YulFunctionCall","src":"13917:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13904:12:29"},"nodeType":"YulFunctionCall","src":"13904:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"13892:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13965:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13974:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13977:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13967:6:29"},"nodeType":"YulFunctionCall","src":"13967:12:29"},"nodeType":"YulExpressionStatement","src":"13967:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"13951:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13961:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13948:2:29"},"nodeType":"YulFunctionCall","src":"13948:16:29"},"nodeType":"YulIf","src":"13945:36:29"},{"nodeType":"YulAssignment","src":"13990:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14022:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"14033:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14018:3:29"},"nodeType":"YulFunctionCall","src":"14018:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14044:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"14000:17:29"},"nodeType":"YulFunctionCall","src":"14000:52:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13990:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13580:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13591:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13603:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13611:6:29","type":""}],"src":"13515:543:29"},{"body":{"nodeType":"YulBlock","src":"14183:457:29","statements":[{"body":{"nodeType":"YulBlock","src":"14229:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14238:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14241:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14231:6:29"},"nodeType":"YulFunctionCall","src":"14231:12:29"},"nodeType":"YulExpressionStatement","src":"14231:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14204:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"14213:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14200:3:29"},"nodeType":"YulFunctionCall","src":"14200:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"14225:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14196:3:29"},"nodeType":"YulFunctionCall","src":"14196:32:29"},"nodeType":"YulIf","src":"14193:52:29"},{"nodeType":"YulVariableDeclaration","src":"14254:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14280:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14267:12:29"},"nodeType":"YulFunctionCall","src":"14267:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14258:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14324:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"14299:24:29"},"nodeType":"YulFunctionCall","src":"14299:31:29"},"nodeType":"YulExpressionStatement","src":"14299:31:29"},{"nodeType":"YulAssignment","src":"14339:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"14349:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14339:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"14363:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14394:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14405:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14390:3:29"},"nodeType":"YulFunctionCall","src":"14390:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14377:12:29"},"nodeType":"YulFunctionCall","src":"14377:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"14367:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"14452:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14461:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14464:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14454:6:29"},"nodeType":"YulFunctionCall","src":"14454:12:29"},"nodeType":"YulExpressionStatement","src":"14454:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14424:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14432:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14421:2:29"},"nodeType":"YulFunctionCall","src":"14421:30:29"},"nodeType":"YulIf","src":"14418:50:29"},{"nodeType":"YulVariableDeclaration","src":"14477:103:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14552:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"14563:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14548:3:29"},"nodeType":"YulFunctionCall","src":"14548:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14572:7:29"}],"functionName":{"name":"abi_decode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"14503:44:29"},"nodeType":"YulFunctionCall","src":"14503:77:29"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"14481:8:29","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"14491:8:29","type":""}]},{"nodeType":"YulAssignment","src":"14589:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"14599:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"14589:6:29"}]},{"nodeType":"YulAssignment","src":"14616:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"14626:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14616:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_uint8_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14133:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14144:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14156:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14164:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14172:6:29","type":""}],"src":"14063:577:29"},{"body":{"nodeType":"YulBlock","src":"14729:298:29","statements":[{"body":{"nodeType":"YulBlock","src":"14775:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14784:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14787:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14777:6:29"},"nodeType":"YulFunctionCall","src":"14777:12:29"},"nodeType":"YulExpressionStatement","src":"14777:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14750:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"14759:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14746:3:29"},"nodeType":"YulFunctionCall","src":"14746:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"14771:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14742:3:29"},"nodeType":"YulFunctionCall","src":"14742:32:29"},"nodeType":"YulIf","src":"14739:52:29"},{"nodeType":"YulVariableDeclaration","src":"14800:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14826:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14813:12:29"},"nodeType":"YulFunctionCall","src":"14813:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14804:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14870:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"14845:24:29"},"nodeType":"YulFunctionCall","src":"14845:31:29"},"nodeType":"YulExpressionStatement","src":"14845:31:29"},{"nodeType":"YulAssignment","src":"14885:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"14895:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14885:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"14909:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14952:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14937:3:29"},"nodeType":"YulFunctionCall","src":"14937:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14924:12:29"},"nodeType":"YulFunctionCall","src":"14924:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"14913:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"14987:7:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"14965:21:29"},"nodeType":"YulFunctionCall","src":"14965:30:29"},"nodeType":"YulExpressionStatement","src":"14965:30:29"},{"nodeType":"YulAssignment","src":"15004:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"15014:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15004:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14687:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14698:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14710:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14718:6:29","type":""}],"src":"14645:382:29"},{"body":{"nodeType":"YulBlock","src":"15149:412:29","statements":[{"body":{"nodeType":"YulBlock","src":"15196:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15205:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15208:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15198:6:29"},"nodeType":"YulFunctionCall","src":"15198:12:29"},"nodeType":"YulExpressionStatement","src":"15198:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15170:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"15179:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15166:3:29"},"nodeType":"YulFunctionCall","src":"15166:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"15191:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15162:3:29"},"nodeType":"YulFunctionCall","src":"15162:33:29"},"nodeType":"YulIf","src":"15159:53:29"},{"nodeType":"YulVariableDeclaration","src":"15221:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15247:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15234:12:29"},"nodeType":"YulFunctionCall","src":"15234:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15225:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15291:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15266:24:29"},"nodeType":"YulFunctionCall","src":"15266:31:29"},"nodeType":"YulExpressionStatement","src":"15266:31:29"},{"nodeType":"YulAssignment","src":"15306:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"15316:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15306:6:29"}]},{"nodeType":"YulAssignment","src":"15330:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15361:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15372:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15357:3:29"},"nodeType":"YulFunctionCall","src":"15357:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"15340:16:29"},"nodeType":"YulFunctionCall","src":"15340:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15330:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"15385:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15417:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15428:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15413:3:29"},"nodeType":"YulFunctionCall","src":"15413:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15400:12:29"},"nodeType":"YulFunctionCall","src":"15400:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"15389:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15466:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15441:24:29"},"nodeType":"YulFunctionCall","src":"15441:33:29"},"nodeType":"YulExpressionStatement","src":"15441:33:29"},{"nodeType":"YulAssignment","src":"15483:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"15493:7:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"15483:6:29"}]},{"nodeType":"YulAssignment","src":"15509:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15540:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15551:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15536:3:29"},"nodeType":"YulFunctionCall","src":"15536:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"15519:16:29"},"nodeType":"YulFunctionCall","src":"15519:36:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"15509:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15091:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15102:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15114:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15122:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15130:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15138:6:29","type":""}],"src":"15032:529:29"},{"body":{"nodeType":"YulBlock","src":"15696:665:29","statements":[{"body":{"nodeType":"YulBlock","src":"15743:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15752:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15755:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15745:6:29"},"nodeType":"YulFunctionCall","src":"15745:12:29"},"nodeType":"YulExpressionStatement","src":"15745:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15717:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"15726:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15713:3:29"},"nodeType":"YulFunctionCall","src":"15713:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"15738:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15709:3:29"},"nodeType":"YulFunctionCall","src":"15709:33:29"},"nodeType":"YulIf","src":"15706:53:29"},{"nodeType":"YulVariableDeclaration","src":"15768:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15794:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15781:12:29"},"nodeType":"YulFunctionCall","src":"15781:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15772:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15838:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15813:24:29"},"nodeType":"YulFunctionCall","src":"15813:31:29"},"nodeType":"YulExpressionStatement","src":"15813:31:29"},{"nodeType":"YulAssignment","src":"15853:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"15863:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15853:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"15877:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15909:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15920:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15905:3:29"},"nodeType":"YulFunctionCall","src":"15905:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15892:12:29"},"nodeType":"YulFunctionCall","src":"15892:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"15881:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15958:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15933:24:29"},"nodeType":"YulFunctionCall","src":"15933:33:29"},"nodeType":"YulExpressionStatement","src":"15933:33:29"},{"nodeType":"YulAssignment","src":"15975:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"15985:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15975:6:29"}]},{"nodeType":"YulAssignment","src":"16001:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16028:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16039:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16024:3:29"},"nodeType":"YulFunctionCall","src":"16024:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16011:12:29"},"nodeType":"YulFunctionCall","src":"16011:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"16001:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"16052:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16083:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16094:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16079:3:29"},"nodeType":"YulFunctionCall","src":"16079:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16066:12:29"},"nodeType":"YulFunctionCall","src":"16066:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16056:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"16141:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16150:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16153:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16143:6:29"},"nodeType":"YulFunctionCall","src":"16143:12:29"},"nodeType":"YulExpressionStatement","src":"16143:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"16113:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"16121:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16110:2:29"},"nodeType":"YulFunctionCall","src":"16110:30:29"},"nodeType":"YulIf","src":"16107:50:29"},{"nodeType":"YulVariableDeclaration","src":"16166:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16180:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"16191:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16176:3:29"},"nodeType":"YulFunctionCall","src":"16176:22:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16170:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"16246:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16255:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16258:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16248:6:29"},"nodeType":"YulFunctionCall","src":"16248:12:29"},"nodeType":"YulExpressionStatement","src":"16248:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16225:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"16229:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16221:3:29"},"nodeType":"YulFunctionCall","src":"16221:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16236:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16217:3:29"},"nodeType":"YulFunctionCall","src":"16217:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16210:6:29"},"nodeType":"YulFunctionCall","src":"16210:35:29"},"nodeType":"YulIf","src":"16207:55:29"},{"nodeType":"YulAssignment","src":"16271:84:29","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16320:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"16324:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16316:3:29"},"nodeType":"YulFunctionCall","src":"16316:11:29"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16342:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16329:12:29"},"nodeType":"YulFunctionCall","src":"16329:16:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16347:7:29"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"16281:34:29"},"nodeType":"YulFunctionCall","src":"16281:74:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"16271:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15638:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15649:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15661:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15669:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15677:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15685:6:29","type":""}],"src":"15566:795:29"},{"body":{"nodeType":"YulBlock","src":"16496:102:29","statements":[{"nodeType":"YulAssignment","src":"16506:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16518:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16529:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16514:3:29"},"nodeType":"YulFunctionCall","src":"16514:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16506:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16548:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16563:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16579:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16584:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16575:3:29"},"nodeType":"YulFunctionCall","src":"16575:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"16588:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16571:3:29"},"nodeType":"YulFunctionCall","src":"16571:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16559:3:29"},"nodeType":"YulFunctionCall","src":"16559:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16541:6:29"},"nodeType":"YulFunctionCall","src":"16541:51:29"},"nodeType":"YulExpressionStatement","src":"16541:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaOffersContract_$3734__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16465:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16476:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16487:4:29","type":""}],"src":"16366:232:29"},{"body":{"nodeType":"YulBlock","src":"16690:301:29","statements":[{"body":{"nodeType":"YulBlock","src":"16736:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16745:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16748:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16738:6:29"},"nodeType":"YulFunctionCall","src":"16738:12:29"},"nodeType":"YulExpressionStatement","src":"16738:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16711:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"16720:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16707:3:29"},"nodeType":"YulFunctionCall","src":"16707:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"16732:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16703:3:29"},"nodeType":"YulFunctionCall","src":"16703:32:29"},"nodeType":"YulIf","src":"16700:52:29"},{"nodeType":"YulVariableDeclaration","src":"16761:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16787:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16774:12:29"},"nodeType":"YulFunctionCall","src":"16774:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16765:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16831:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"16806:24:29"},"nodeType":"YulFunctionCall","src":"16806:31:29"},"nodeType":"YulExpressionStatement","src":"16806:31:29"},{"nodeType":"YulAssignment","src":"16846:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"16856:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16846:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"16870:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16902:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16913:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16898:3:29"},"nodeType":"YulFunctionCall","src":"16898:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16885:12:29"},"nodeType":"YulFunctionCall","src":"16885:32:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"16874:7:29","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"16951:7:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"16926:24:29"},"nodeType":"YulFunctionCall","src":"16926:33:29"},"nodeType":"YulExpressionStatement","src":"16926:33:29"},{"nodeType":"YulAssignment","src":"16968:17:29","value":{"name":"value_1","nodeType":"YulIdentifier","src":"16978:7:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"16968:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16648:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16659:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16671:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16679:6:29","type":""}],"src":"16603:388:29"},{"body":{"nodeType":"YulBlock","src":"17028:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17045:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17052:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17057:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17048:3:29"},"nodeType":"YulFunctionCall","src":"17048:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17038:6:29"},"nodeType":"YulFunctionCall","src":"17038:31:29"},"nodeType":"YulExpressionStatement","src":"17038:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17085:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17088:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17078:6:29"},"nodeType":"YulFunctionCall","src":"17078:15:29"},"nodeType":"YulExpressionStatement","src":"17078:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17109:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17112:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17102:6:29"},"nodeType":"YulFunctionCall","src":"17102:15:29"},"nodeType":"YulExpressionStatement","src":"17102:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"16996:127:29"},{"body":{"nodeType":"YulBlock","src":"17253:156:29","statements":[{"nodeType":"YulAssignment","src":"17263:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17275:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17286:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17271:3:29"},"nodeType":"YulFunctionCall","src":"17271:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17263:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17305:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17320:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17336:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"17341:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17332:3:29"},"nodeType":"YulFunctionCall","src":"17332:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"17345:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17328:3:29"},"nodeType":"YulFunctionCall","src":"17328:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17316:3:29"},"nodeType":"YulFunctionCall","src":"17316:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17298:6:29"},"nodeType":"YulFunctionCall","src":"17298:51:29"},"nodeType":"YulExpressionStatement","src":"17298:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17369:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17380:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17365:3:29"},"nodeType":"YulFunctionCall","src":"17365:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17389:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"17397:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17385:3:29"},"nodeType":"YulFunctionCall","src":"17385:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17358:6:29"},"nodeType":"YulFunctionCall","src":"17358:45:29"},"nodeType":"YulExpressionStatement","src":"17358:45:29"}]},"name":"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17214:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17225:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17233:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17244:4:29","type":""}],"src":"17128:281:29"},{"body":{"nodeType":"YulBlock","src":"17492:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"17538:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17547:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17550:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17540:6:29"},"nodeType":"YulFunctionCall","src":"17540:12:29"},"nodeType":"YulExpressionStatement","src":"17540:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"17513:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"17522:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17509:3:29"},"nodeType":"YulFunctionCall","src":"17509:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"17534:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17505:3:29"},"nodeType":"YulFunctionCall","src":"17505:32:29"},"nodeType":"YulIf","src":"17502:52:29"},{"nodeType":"YulVariableDeclaration","src":"17563:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17582:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17576:5:29"},"nodeType":"YulFunctionCall","src":"17576:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"17567:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17623:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"17601:21:29"},"nodeType":"YulFunctionCall","src":"17601:28:29"},"nodeType":"YulExpressionStatement","src":"17601:28:29"},{"nodeType":"YulAssignment","src":"17638:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"17648:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"17638:6:29"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17458:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"17469:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"17481:6:29","type":""}],"src":"17414:245:29"},{"body":{"nodeType":"YulBlock","src":"17696:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17713:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17720:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17725:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17716:3:29"},"nodeType":"YulFunctionCall","src":"17716:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17706:6:29"},"nodeType":"YulFunctionCall","src":"17706:31:29"},"nodeType":"YulExpressionStatement","src":"17706:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17753:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17756:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17746:6:29"},"nodeType":"YulFunctionCall","src":"17746:15:29"},"nodeType":"YulExpressionStatement","src":"17746:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17777:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17780:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17770:6:29"},"nodeType":"YulFunctionCall","src":"17770:15:29"},"nodeType":"YulExpressionStatement","src":"17770:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"17664:127:29"},{"body":{"nodeType":"YulBlock","src":"17841:130:29","statements":[{"nodeType":"YulVariableDeclaration","src":"17851:31:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17870:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"17877:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17866:3:29"},"nodeType":"YulFunctionCall","src":"17866:16:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"17855:7:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17912:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17914:16:29"},"nodeType":"YulFunctionCall","src":"17914:18:29"},"nodeType":"YulExpressionStatement","src":"17914:18:29"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"17897:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"17906:4:29","type":"","value":"0xff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17894:2:29"},"nodeType":"YulFunctionCall","src":"17894:17:29"},"nodeType":"YulIf","src":"17891:43:29"},{"nodeType":"YulAssignment","src":"17943:22:29","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"17954:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"17963:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17950:3:29"},"nodeType":"YulFunctionCall","src":"17950:15:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"17943:3:29"}]}]},"name":"increment_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17823:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"17833:3:29","type":""}],"src":"17796:175:29"},{"body":{"nodeType":"YulBlock","src":"18023:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"18054:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18056:16:29"},"nodeType":"YulFunctionCall","src":"18056:18:29"},"nodeType":"YulExpressionStatement","src":"18056:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18039:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18050:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18046:3:29"},"nodeType":"YulFunctionCall","src":"18046:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18036:2:29"},"nodeType":"YulFunctionCall","src":"18036:17:29"},"nodeType":"YulIf","src":"18033:43:29"},{"nodeType":"YulAssignment","src":"18085:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18096:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"18103:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18092:3:29"},"nodeType":"YulFunctionCall","src":"18092:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18085:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18005:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"18015:3:29","type":""}],"src":"17976:135:29"},{"body":{"nodeType":"YulBlock","src":"18171:325:29","statements":[{"nodeType":"YulAssignment","src":"18181:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18195:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"18198:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"18191:3:29"},"nodeType":"YulFunctionCall","src":"18191:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"18181:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"18212:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"18242:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"18248:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18238:3:29"},"nodeType":"YulFunctionCall","src":"18238:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"18216:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"18289:31:29","statements":[{"nodeType":"YulAssignment","src":"18291:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18305:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18313:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18301:3:29"},"nodeType":"YulFunctionCall","src":"18301:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"18291:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"18269:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18262:6:29"},"nodeType":"YulFunctionCall","src":"18262:26:29"},"nodeType":"YulIf","src":"18259:61:29"},{"body":{"nodeType":"YulBlock","src":"18379:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18400:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18407:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18412:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18403:3:29"},"nodeType":"YulFunctionCall","src":"18403:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18393:6:29"},"nodeType":"YulFunctionCall","src":"18393:31:29"},"nodeType":"YulExpressionStatement","src":"18393:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18444:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18447:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18437:6:29"},"nodeType":"YulFunctionCall","src":"18437:15:29"},"nodeType":"YulExpressionStatement","src":"18437:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18472:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18475:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18465:6:29"},"nodeType":"YulFunctionCall","src":"18465:15:29"},"nodeType":"YulExpressionStatement","src":"18465:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"18335:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18358:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18366:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18355:2:29"},"nodeType":"YulFunctionCall","src":"18355:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18332:2:29"},"nodeType":"YulFunctionCall","src":"18332:38:29"},"nodeType":"YulIf","src":"18329:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"18151:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"18160:6:29","type":""}],"src":"18116:380:29"},{"body":{"nodeType":"YulBlock","src":"18661:145:29","statements":[{"nodeType":"YulAssignment","src":"18671:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18683:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18694:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18679:3:29"},"nodeType":"YulFunctionCall","src":"18679:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18671:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18713:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"18724:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18706:6:29"},"nodeType":"YulFunctionCall","src":"18706:25:29"},"nodeType":"YulExpressionStatement","src":"18706:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18751:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18762:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18747:3:29"},"nodeType":"YulFunctionCall","src":"18747:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18771:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18787:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18792:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18783:3:29"},"nodeType":"YulFunctionCall","src":"18783:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"18796:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18779:3:29"},"nodeType":"YulFunctionCall","src":"18779:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18767:3:29"},"nodeType":"YulFunctionCall","src":"18767:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18740:6:29"},"nodeType":"YulFunctionCall","src":"18740:60:29"},"nodeType":"YulExpressionStatement","src":"18740:60:29"}]},"name":"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18622:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18633:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18641:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18652:4:29","type":""}],"src":"18501:305:29"},{"body":{"nodeType":"YulBlock","src":"19078:832:29","statements":[{"nodeType":"YulVariableDeclaration","src":"19088:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19106:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19117:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19102:3:29"},"nodeType":"YulFunctionCall","src":"19102:19:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19092:6:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19137:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19152:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19168:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19173:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19164:3:29"},"nodeType":"YulFunctionCall","src":"19164:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"19177:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19160:3:29"},"nodeType":"YulFunctionCall","src":"19160:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19148:3:29"},"nodeType":"YulFunctionCall","src":"19148:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19130:6:29"},"nodeType":"YulFunctionCall","src":"19130:51:29"},"nodeType":"YulExpressionStatement","src":"19130:51:29"},{"nodeType":"YulVariableDeclaration","src":"19190:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"19200:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19194:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19222:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19233:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19218:3:29"},"nodeType":"YulFunctionCall","src":"19218:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"19238:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19211:6:29"},"nodeType":"YulFunctionCall","src":"19211:34:29"},"nodeType":"YulExpressionStatement","src":"19211:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19265:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19276:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19261:3:29"},"nodeType":"YulFunctionCall","src":"19261:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"19281:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19254:6:29"},"nodeType":"YulFunctionCall","src":"19254:31:29"},"nodeType":"YulExpressionStatement","src":"19254:31:29"},{"nodeType":"YulVariableDeclaration","src":"19294:17:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"19305:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"19298:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19320:27:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19340:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19334:5:29"},"nodeType":"YulFunctionCall","src":"19334:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19324:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"19363:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"19371:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19356:6:29"},"nodeType":"YulFunctionCall","src":"19356:22:29"},"nodeType":"YulExpressionStatement","src":"19356:22:29"},{"nodeType":"YulAssignment","src":"19387:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19398:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19409:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19394:3:29"},"nodeType":"YulFunctionCall","src":"19394:19:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19387:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"19422:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19440:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19448:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19436:3:29"},"nodeType":"YulFunctionCall","src":"19436:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"19426:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19460:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"19469:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19464:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"19528:131:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19549:3:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19564:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19558:5:29"},"nodeType":"YulFunctionCall","src":"19558:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"19573:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19554:3:29"},"nodeType":"YulFunctionCall","src":"19554:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19542:6:29"},"nodeType":"YulFunctionCall","src":"19542:37:29"},"nodeType":"YulExpressionStatement","src":"19542:37:29"},{"nodeType":"YulAssignment","src":"19592:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19603:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19608:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19599:3:29"},"nodeType":"YulFunctionCall","src":"19599:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19592:3:29"}]},{"nodeType":"YulAssignment","src":"19624:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19638:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19646:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19634:3:29"},"nodeType":"YulFunctionCall","src":"19634:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19624:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19490:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"19493:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19487:2:29"},"nodeType":"YulFunctionCall","src":"19487:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19501:18:29","statements":[{"nodeType":"YulAssignment","src":"19503:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19512:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"19515:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19508:3:29"},"nodeType":"YulFunctionCall","src":"19508:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19503:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"19483:3:29","statements":[]},"src":"19479:180:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19679:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19690:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19675:3:29"},"nodeType":"YulFunctionCall","src":"19675:18:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19699:3:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"19704:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19695:3:29"},"nodeType":"YulFunctionCall","src":"19695:19:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19668:6:29"},"nodeType":"YulFunctionCall","src":"19668:47:29"},"nodeType":"YulExpressionStatement","src":"19668:47:29"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19731:3:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19736:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19724:6:29"},"nodeType":"YulFunctionCall","src":"19724:19:29"},"nodeType":"YulExpressionStatement","src":"19724:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19769:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19774:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19765:3:29"},"nodeType":"YulFunctionCall","src":"19765:12:29"},{"name":"value3","nodeType":"YulIdentifier","src":"19779:6:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19787:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"19752:12:29"},"nodeType":"YulFunctionCall","src":"19752:42:29"},"nodeType":"YulExpressionStatement","src":"19752:42:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19818:3:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19823:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19814:3:29"},"nodeType":"YulFunctionCall","src":"19814:16:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19832:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19810:3:29"},"nodeType":"YulFunctionCall","src":"19810:25:29"},{"kind":"number","nodeType":"YulLiteral","src":"19837:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19803:6:29"},"nodeType":"YulFunctionCall","src":"19803:36:29"},"nodeType":"YulExpressionStatement","src":"19803:36:29"},{"nodeType":"YulAssignment","src":"19848:56:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19864:3:29"},{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"19877:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"19885:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19873:3:29"},"nodeType":"YulFunctionCall","src":"19873:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19894:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19890:3:29"},"nodeType":"YulFunctionCall","src":"19890:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19869:3:29"},"nodeType":"YulFunctionCall","src":"19869:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19860:3:29"},"nodeType":"YulFunctionCall","src":"19860:39:29"},{"name":"_1","nodeType":"YulIdentifier","src":"19901:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19856:3:29"},"nodeType":"YulFunctionCall","src":"19856:48:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19848:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19015:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19026:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19034:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19042:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19050:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19058:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19069:4:29","type":""}],"src":"18811:1099:29"},{"body":{"nodeType":"YulBlock","src":"19996:170:29","statements":[{"body":{"nodeType":"YulBlock","src":"20042:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20051:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20054:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20044:6:29"},"nodeType":"YulFunctionCall","src":"20044:12:29"},"nodeType":"YulExpressionStatement","src":"20044:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20017:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"20026:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20013:3:29"},"nodeType":"YulFunctionCall","src":"20013:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"20038:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20009:3:29"},"nodeType":"YulFunctionCall","src":"20009:32:29"},"nodeType":"YulIf","src":"20006:52:29"},{"nodeType":"YulVariableDeclaration","src":"20067:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20086:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20080:5:29"},"nodeType":"YulFunctionCall","src":"20080:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"20071:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20130:5:29"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"20105:24:29"},"nodeType":"YulFunctionCall","src":"20105:31:29"},"nodeType":"YulExpressionStatement","src":"20105:31:29"},{"nodeType":"YulAssignment","src":"20145:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"20155:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20145:6:29"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19962:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"19973:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"19985:6:29","type":""}],"src":"19915:251:29"},{"body":{"nodeType":"YulBlock","src":"20265:427:29","statements":[{"nodeType":"YulVariableDeclaration","src":"20275:51:29","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"20314:11:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20301:12:29"},"nodeType":"YulFunctionCall","src":"20301:25:29"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"20279:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20415:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20424:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20427:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20417:6:29"},"nodeType":"YulFunctionCall","src":"20417:12:29"},"nodeType":"YulExpressionStatement","src":"20417:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20349:18:29"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"20377:12:29"},"nodeType":"YulFunctionCall","src":"20377:14:29"},{"name":"base_ref","nodeType":"YulIdentifier","src":"20393:8:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20373:3:29"},"nodeType":"YulFunctionCall","src":"20373:29:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20408:2:29","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20404:3:29"},"nodeType":"YulFunctionCall","src":"20404:7:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20369:3:29"},"nodeType":"YulFunctionCall","src":"20369:43:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20345:3:29"},"nodeType":"YulFunctionCall","src":"20345:68:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20338:6:29"},"nodeType":"YulFunctionCall","src":"20338:76:29"},"nodeType":"YulIf","src":"20335:96:29"},{"nodeType":"YulVariableDeclaration","src":"20440:47:29","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"20458:8:29"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"20468:18:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20454:3:29"},"nodeType":"YulFunctionCall","src":"20454:33:29"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"20444:6:29","type":""}]},{"nodeType":"YulAssignment","src":"20496:30:29","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"20519:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"20506:12:29"},"nodeType":"YulFunctionCall","src":"20506:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"20496:6:29"}]},{"body":{"nodeType":"YulBlock","src":"20569:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20578:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20581:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20571:6:29"},"nodeType":"YulFunctionCall","src":"20571:12:29"},"nodeType":"YulExpressionStatement","src":"20571:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20541:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"20549:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20538:2:29"},"nodeType":"YulFunctionCall","src":"20538:30:29"},"nodeType":"YulIf","src":"20535:50:29"},{"nodeType":"YulAssignment","src":"20594:25:29","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"20606:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"20614:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20602:3:29"},"nodeType":"YulFunctionCall","src":"20602:17:29"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"20594:4:29"}]},{"body":{"nodeType":"YulBlock","src":"20670:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20679:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20682:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20672:6:29"},"nodeType":"YulFunctionCall","src":"20672:12:29"},"nodeType":"YulExpressionStatement","src":"20672:12:29"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"20635:4:29"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"20645:12:29"},"nodeType":"YulFunctionCall","src":"20645:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"20661:6:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20641:3:29"},"nodeType":"YulFunctionCall","src":"20641:27:29"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"20631:3:29"},"nodeType":"YulFunctionCall","src":"20631:38:29"},"nodeType":"YulIf","src":"20628:58:29"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"20222:8:29","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"20232:11:29","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"20248:4:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"20254:6:29","type":""}],"src":"20171:521:29"},{"body":{"nodeType":"YulBlock","src":"20745:77:29","statements":[{"nodeType":"YulAssignment","src":"20755:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20766:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"20769:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20762:3:29"},"nodeType":"YulFunctionCall","src":"20762:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"20755:3:29"}]},{"body":{"nodeType":"YulBlock","src":"20794:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20796:16:29"},"nodeType":"YulFunctionCall","src":"20796:18:29"},"nodeType":"YulExpressionStatement","src":"20796:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20786:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"20789:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20783:2:29"},"nodeType":"YulFunctionCall","src":"20783:10:29"},"nodeType":"YulIf","src":"20780:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"20728:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"20731:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"20737:3:29","type":""}],"src":"20697:125:29"},{"body":{"nodeType":"YulBlock","src":"20908:103:29","statements":[{"body":{"nodeType":"YulBlock","src":"20954:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20963:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20966:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20956:6:29"},"nodeType":"YulFunctionCall","src":"20956:12:29"},"nodeType":"YulExpressionStatement","src":"20956:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20929:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"20938:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20925:3:29"},"nodeType":"YulFunctionCall","src":"20925:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"20950:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20921:3:29"},"nodeType":"YulFunctionCall","src":"20921:32:29"},"nodeType":"YulIf","src":"20918:52:29"},{"nodeType":"YulAssignment","src":"20979:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20995:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20989:5:29"},"nodeType":"YulFunctionCall","src":"20989:16:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20979:6:29"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20874:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20885:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20897:6:29","type":""}],"src":"20827:184:29"},{"body":{"nodeType":"YulBlock","src":"21061:133:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21071:31:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21090:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"21097:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21086:3:29"},"nodeType":"YulFunctionCall","src":"21086:16:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"21075:7:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21130:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21132:16:29"},"nodeType":"YulFunctionCall","src":"21132:18:29"},"nodeType":"YulExpressionStatement","src":"21132:18:29"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21121:7:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21114:6:29"},"nodeType":"YulFunctionCall","src":"21114:15:29"},"nodeType":"YulIf","src":"21111:41:29"},{"nodeType":"YulAssignment","src":"21161:27:29","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21172:7:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21185:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21181:3:29"},"nodeType":"YulFunctionCall","src":"21181:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21168:3:29"},"nodeType":"YulFunctionCall","src":"21168:20:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21161:3:29"}]}]},"name":"decrement_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21043:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21053:3:29","type":""}],"src":"21016:178:29"},{"body":{"nodeType":"YulBlock","src":"21374:355:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21384:16:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"21397:3:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"21388:5:29","type":""}]},{"nodeType":"YulAssignment","src":"21409:12:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"21418:3:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21409:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"21430:20:29","value":{"name":"value0","nodeType":"YulIdentifier","src":"21444:6:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"21434:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21459:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21468:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21463:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21527:175:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21548:5:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"21576:6:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"21559:16:29"},"nodeType":"YulFunctionCall","src":"21559:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"21585:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21555:3:29"},"nodeType":"YulFunctionCall","src":"21555:35:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21541:6:29"},"nodeType":"YulFunctionCall","src":"21541:50:29"},"nodeType":"YulExpressionStatement","src":"21541:50:29"},{"nodeType":"YulVariableDeclaration","src":"21604:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21614:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21608:2:29","type":""}]},{"nodeType":"YulAssignment","src":"21631:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21644:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"21651:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21640:3:29"},"nodeType":"YulFunctionCall","src":"21640:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"21631:5:29"}]},{"nodeType":"YulAssignment","src":"21667:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"21681:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"21689:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21677:3:29"},"nodeType":"YulFunctionCall","src":"21677:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"21667:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21489:1:29"},{"name":"value1","nodeType":"YulIdentifier","src":"21492:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21486:2:29"},"nodeType":"YulFunctionCall","src":"21486:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21500:18:29","statements":[{"nodeType":"YulAssignment","src":"21502:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21511:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"21514:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21507:3:29"},"nodeType":"YulFunctionCall","src":"21507:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21502:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"21482:3:29","statements":[]},"src":"21478:224:29"},{"nodeType":"YulAssignment","src":"21711:12:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"21718:5:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21711:3:29"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_calldata_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21342:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21347:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21355:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21366:3:29","type":""}],"src":"21199:530:29"},{"body":{"nodeType":"YulBlock","src":"21783:79:29","statements":[{"nodeType":"YulAssignment","src":"21793:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21805:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"21808:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21801:3:29"},"nodeType":"YulFunctionCall","src":"21801:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"21793:4:29"}]},{"body":{"nodeType":"YulBlock","src":"21834:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21836:16:29"},"nodeType":"YulFunctionCall","src":"21836:18:29"},"nodeType":"YulExpressionStatement","src":"21836:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"21825:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"21831:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21822:2:29"},"nodeType":"YulFunctionCall","src":"21822:11:29"},"nodeType":"YulIf","src":"21819:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21765:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"21768:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"21774:4:29","type":""}],"src":"21734:128:29"},{"body":{"nodeType":"YulBlock","src":"21996:145:29","statements":[{"nodeType":"YulAssignment","src":"22006:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22018:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22029:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22014:3:29"},"nodeType":"YulFunctionCall","src":"22014:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22006:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22048:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22063:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22079:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22084:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22075:3:29"},"nodeType":"YulFunctionCall","src":"22075:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"22088:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22071:3:29"},"nodeType":"YulFunctionCall","src":"22071:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22059:3:29"},"nodeType":"YulFunctionCall","src":"22059:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22041:6:29"},"nodeType":"YulFunctionCall","src":"22041:51:29"},"nodeType":"YulExpressionStatement","src":"22041:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22112:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22123:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22108:3:29"},"nodeType":"YulFunctionCall","src":"22108:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"22128:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22101:6:29"},"nodeType":"YulFunctionCall","src":"22101:34:29"},"nodeType":"YulExpressionStatement","src":"22101:34:29"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21957:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21968:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21976:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21987:4:29","type":""}],"src":"21867:274:29"},{"body":{"nodeType":"YulBlock","src":"22303:218:29","statements":[{"nodeType":"YulAssignment","src":"22313:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22325:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22336:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22321:3:29"},"nodeType":"YulFunctionCall","src":"22321:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22313:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"22348:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22366:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22371:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22362:3:29"},"nodeType":"YulFunctionCall","src":"22362:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"22375:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22358:3:29"},"nodeType":"YulFunctionCall","src":"22358:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22352:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22393:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22408:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"22416:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22404:3:29"},"nodeType":"YulFunctionCall","src":"22404:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22386:6:29"},"nodeType":"YulFunctionCall","src":"22386:34:29"},"nodeType":"YulExpressionStatement","src":"22386:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22440:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22451:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22436:3:29"},"nodeType":"YulFunctionCall","src":"22436:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"22456:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22429:6:29"},"nodeType":"YulFunctionCall","src":"22429:34:29"},"nodeType":"YulExpressionStatement","src":"22429:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22483:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22494:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22479:3:29"},"nodeType":"YulFunctionCall","src":"22479:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22503:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"22511:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22499:3:29"},"nodeType":"YulFunctionCall","src":"22499:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22472:6:29"},"nodeType":"YulFunctionCall","src":"22472:43:29"},"nodeType":"YulExpressionStatement","src":"22472:43:29"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22256:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22267:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22275:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22283:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22294:4:29","type":""}],"src":"22146:375:29"},{"body":{"nodeType":"YulBlock","src":"22700:173:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22717:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22728:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22710:6:29"},"nodeType":"YulFunctionCall","src":"22710:21:29"},"nodeType":"YulExpressionStatement","src":"22710:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22751:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22762:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22747:3:29"},"nodeType":"YulFunctionCall","src":"22747:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"22767:2:29","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22740:6:29"},"nodeType":"YulFunctionCall","src":"22740:30:29"},"nodeType":"YulExpressionStatement","src":"22740:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22790:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22801:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22786:3:29"},"nodeType":"YulFunctionCall","src":"22786:18:29"},{"hexValue":"5468697320636172642068617320616e206f666665722e","kind":"string","nodeType":"YulLiteral","src":"22806:25:29","type":"","value":"This card has an offer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22779:6:29"},"nodeType":"YulFunctionCall","src":"22779:53:29"},"nodeType":"YulExpressionStatement","src":"22779:53:29"},{"nodeType":"YulAssignment","src":"22841:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22853:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22864:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22849:3:29"},"nodeType":"YulFunctionCall","src":"22849:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22841:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22677:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22691:4:29","type":""}],"src":"22526:347:29"},{"body":{"nodeType":"YulBlock","src":"23007:145:29","statements":[{"nodeType":"YulAssignment","src":"23017:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23029:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23040:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23025:3:29"},"nodeType":"YulFunctionCall","src":"23025:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23017:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23059:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"23070:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23052:6:29"},"nodeType":"YulFunctionCall","src":"23052:25:29"},"nodeType":"YulExpressionStatement","src":"23052:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23097:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23108:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23093:3:29"},"nodeType":"YulFunctionCall","src":"23093:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"23117:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23133:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23138:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23129:3:29"},"nodeType":"YulFunctionCall","src":"23129:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"23142:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23125:3:29"},"nodeType":"YulFunctionCall","src":"23125:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23113:3:29"},"nodeType":"YulFunctionCall","src":"23113:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23086:6:29"},"nodeType":"YulFunctionCall","src":"23086:60:29"},"nodeType":"YulExpressionStatement","src":"23086:60:29"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22968:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22979:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22987:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22998:4:29","type":""}],"src":"22878:274:29"},{"body":{"nodeType":"YulBlock","src":"23189:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23206:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23213:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23218:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23209:3:29"},"nodeType":"YulFunctionCall","src":"23209:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23199:6:29"},"nodeType":"YulFunctionCall","src":"23199:31:29"},"nodeType":"YulExpressionStatement","src":"23199:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23246:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23249:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23239:6:29"},"nodeType":"YulFunctionCall","src":"23239:15:29"},"nodeType":"YulExpressionStatement","src":"23239:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23270:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23273:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23263:6:29"},"nodeType":"YulFunctionCall","src":"23263:15:29"},"nodeType":"YulExpressionStatement","src":"23263:15:29"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"23157:127:29"},{"body":{"nodeType":"YulBlock","src":"23335:171:29","statements":[{"body":{"nodeType":"YulBlock","src":"23366:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23387:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23394:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23399:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23390:3:29"},"nodeType":"YulFunctionCall","src":"23390:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23380:6:29"},"nodeType":"YulFunctionCall","src":"23380:31:29"},"nodeType":"YulExpressionStatement","src":"23380:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23431:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23434:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23424:6:29"},"nodeType":"YulFunctionCall","src":"23424:15:29"},"nodeType":"YulExpressionStatement","src":"23424:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23459:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23462:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23452:6:29"},"nodeType":"YulFunctionCall","src":"23452:15:29"},"nodeType":"YulExpressionStatement","src":"23452:15:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23355:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23348:6:29"},"nodeType":"YulFunctionCall","src":"23348:9:29"},"nodeType":"YulIf","src":"23345:132:29"},{"nodeType":"YulAssignment","src":"23486:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23495:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"23498:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"23491:3:29"},"nodeType":"YulFunctionCall","src":"23491:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"23486:1:29"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23320:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"23323:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"23329:1:29","type":""}],"src":"23289:217:29"},{"body":{"nodeType":"YulBlock","src":"23685:180:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23702:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23713:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23695:6:29"},"nodeType":"YulFunctionCall","src":"23695:21:29"},"nodeType":"YulExpressionStatement","src":"23695:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23736:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23747:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23732:3:29"},"nodeType":"YulFunctionCall","src":"23732:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"23752:2:29","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23725:6:29"},"nodeType":"YulFunctionCall","src":"23725:30:29"},"nodeType":"YulExpressionStatement","src":"23725:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23775:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23786:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23771:3:29"},"nodeType":"YulFunctionCall","src":"23771:18:29"},{"hexValue":"696e76616c69642063617264496e76656e746f727920706f736974696f6e","kind":"string","nodeType":"YulLiteral","src":"23791:32:29","type":"","value":"invalid cardInventory position"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23764:6:29"},"nodeType":"YulFunctionCall","src":"23764:60:29"},"nodeType":"YulExpressionStatement","src":"23764:60:29"},{"nodeType":"YulAssignment","src":"23833:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23845:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23856:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23841:3:29"},"nodeType":"YulFunctionCall","src":"23841:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23833:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23662:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23676:4:29","type":""}],"src":"23511:354:29"},{"body":{"nodeType":"YulBlock","src":"23926:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23943:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"23946:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23936:6:29"},"nodeType":"YulFunctionCall","src":"23936:14:29"},"nodeType":"YulExpressionStatement","src":"23936:14:29"},{"nodeType":"YulAssignment","src":"23959:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23977:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23980:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"23967:9:29"},"nodeType":"YulFunctionCall","src":"23967:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"23959:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"23909:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"23917:4:29","type":""}],"src":"23870:121:29"},{"body":{"nodeType":"YulBlock","src":"24077:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"24110:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"24124:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"24134:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24128:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24155:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"24159:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24148:6:29"},"nodeType":"YulFunctionCall","src":"24148:17:29"},"nodeType":"YulExpressionStatement","src":"24148:17:29"},{"nodeType":"YulVariableDeclaration","src":"24178:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24200:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"24204:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"24190:9:29"},"nodeType":"YulFunctionCall","src":"24190:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"24182:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24222:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"24245:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24255:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"24262:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"24274:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24258:3:29"},"nodeType":"YulFunctionCall","src":"24258:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24251:3:29"},"nodeType":"YulFunctionCall","src":"24251:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24241:3:29"},"nodeType":"YulFunctionCall","src":"24241:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"24226:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"24316:23:29","statements":[{"nodeType":"YulAssignment","src":"24318:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"24333:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"24318:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"24298:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"24310:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24295:2:29"},"nodeType":"YulFunctionCall","src":"24295:20:29"},"nodeType":"YulIf","src":"24292:47:29"},{"nodeType":"YulVariableDeclaration","src":"24352:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"24366:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24376:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"24383:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"24388:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24379:3:29"},"nodeType":"YulFunctionCall","src":"24379:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24372:3:29"},"nodeType":"YulFunctionCall","src":"24372:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24362:3:29"},"nodeType":"YulFunctionCall","src":"24362:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"24356:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24406:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"24419:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"24410:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"24504:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"24513:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"24520:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"24506:6:29"},"nodeType":"YulFunctionCall","src":"24506:17:29"},"nodeType":"YulExpressionStatement","src":"24506:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"24454:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"24461:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"24451:2:29"},"nodeType":"YulFunctionCall","src":"24451:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"24465:26:29","statements":[{"nodeType":"YulAssignment","src":"24467:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"24480:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"24487:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24476:3:29"},"nodeType":"YulFunctionCall","src":"24476:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"24467:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"24447:3:29","statements":[]},"src":"24443:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"24093:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"24098:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24090:2:29"},"nodeType":"YulFunctionCall","src":"24090:11:29"},"nodeType":"YulIf","src":"24087:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"24049:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"24056:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"24061:10:29","type":""}],"src":"23996:545:29"},{"body":{"nodeType":"YulBlock","src":"24631:81:29","statements":[{"nodeType":"YulAssignment","src":"24641:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"24656:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24674:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"24677:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24670:3:29"},"nodeType":"YulFunctionCall","src":"24670:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24687:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24683:3:29"},"nodeType":"YulFunctionCall","src":"24683:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"24666:3:29"},"nodeType":"YulFunctionCall","src":"24666:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"24662:3:29"},"nodeType":"YulFunctionCall","src":"24662:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24652:3:29"},"nodeType":"YulFunctionCall","src":"24652:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24698:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"24701:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24694:3:29"},"nodeType":"YulFunctionCall","src":"24694:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"24649:2:29"},"nodeType":"YulFunctionCall","src":"24649:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"24641:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"24608:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"24614:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"24622:4:29","type":""}],"src":"24546:166:29"},{"body":{"nodeType":"YulBlock","src":"24813:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"24823:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"24843:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24837:5:29"},"nodeType":"YulFunctionCall","src":"24837:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"24827:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"24890:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"24892:16:29"},"nodeType":"YulFunctionCall","src":"24892:18:29"},"nodeType":"YulExpressionStatement","src":"24892:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"24862:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"24870:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24859:2:29"},"nodeType":"YulFunctionCall","src":"24859:30:29"},"nodeType":"YulIf","src":"24856:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"24965:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25003:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"24997:5:29"},"nodeType":"YulFunctionCall","src":"24997:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"24971:25:29"},"nodeType":"YulFunctionCall","src":"24971:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"25011:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"24921:43:29"},"nodeType":"YulFunctionCall","src":"24921:97:29"},"nodeType":"YulExpressionStatement","src":"24921:97:29"},{"nodeType":"YulVariableDeclaration","src":"25027:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25044:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"25031:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25054:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25073:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"25058:11:29","type":""}]},{"nodeType":"YulAssignment","src":"25086:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"25099:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"25086:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"25156:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"25170:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"25189:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25201:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25197:3:29"},"nodeType":"YulFunctionCall","src":"25197:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25185:3:29"},"nodeType":"YulFunctionCall","src":"25185:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"25174:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25218:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25262:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"25232:29:29"},"nodeType":"YulFunctionCall","src":"25232:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"25222:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25280:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25289:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"25284:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"25367:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25392:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"25410:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"25415:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25406:3:29"},"nodeType":"YulFunctionCall","src":"25406:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25400:5:29"},"nodeType":"YulFunctionCall","src":"25400:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25385:6:29"},"nodeType":"YulFunctionCall","src":"25385:42:29"},"nodeType":"YulExpressionStatement","src":"25385:42:29"},{"nodeType":"YulAssignment","src":"25444:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25458:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"25466:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25454:3:29"},"nodeType":"YulFunctionCall","src":"25454:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25444:6:29"}]},{"nodeType":"YulAssignment","src":"25485:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"25502:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"25513:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25498:3:29"},"nodeType":"YulFunctionCall","src":"25498:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"25485:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"25314:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"25317:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"25311:2:29"},"nodeType":"YulFunctionCall","src":"25311:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"25326:28:29","statements":[{"nodeType":"YulAssignment","src":"25328:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"25337:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"25340:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25333:3:29"},"nodeType":"YulFunctionCall","src":"25333:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"25328:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"25307:3:29","statements":[]},"src":"25303:236:29"},{"body":{"nodeType":"YulBlock","src":"25587:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"25605:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"25632:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"25637:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25628:3:29"},"nodeType":"YulFunctionCall","src":"25628:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25622:5:29"},"nodeType":"YulFunctionCall","src":"25622:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"25609:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"25672:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"25684:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25711:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"25714:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25707:3:29"},"nodeType":"YulFunctionCall","src":"25707:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"25723:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25703:3:29"},"nodeType":"YulFunctionCall","src":"25703:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25733:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25729:3:29"},"nodeType":"YulFunctionCall","src":"25729:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"25699:3:29"},"nodeType":"YulFunctionCall","src":"25699:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25695:3:29"},"nodeType":"YulFunctionCall","src":"25695:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25680:3:29"},"nodeType":"YulFunctionCall","src":"25680:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25665:6:29"},"nodeType":"YulFunctionCall","src":"25665:74:29"},"nodeType":"YulExpressionStatement","src":"25665:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"25558:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"25567:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"25555:2:29"},"nodeType":"YulFunctionCall","src":"25555:19:29"},"nodeType":"YulIf","src":"25552:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25773:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25787:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"25790:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"25783:3:29"},"nodeType":"YulFunctionCall","src":"25783:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"25799:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25779:3:29"},"nodeType":"YulFunctionCall","src":"25779:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25766:6:29"},"nodeType":"YulFunctionCall","src":"25766:36:29"},"nodeType":"YulExpressionStatement","src":"25766:36:29"}]},"nodeType":"YulCase","src":"25149:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25154:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"25829:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"25843:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"25856:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"25847:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"25892:67:29","statements":[{"nodeType":"YulAssignment","src":"25910:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"25929:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"25934:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25925:3:29"},"nodeType":"YulFunctionCall","src":"25925:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25919:5:29"},"nodeType":"YulFunctionCall","src":"25919:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"25910:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"25873:6:29"},"nodeType":"YulIf","src":"25870:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"25979:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"26038:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"26045:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"25985:52:29"},"nodeType":"YulFunctionCall","src":"25985:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"25972:6:29"},"nodeType":"YulFunctionCall","src":"25972:81:29"},"nodeType":"YulExpressionStatement","src":"25972:81:29"}]},"nodeType":"YulCase","src":"25821:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"25129:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"25137:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25126:2:29"},"nodeType":"YulFunctionCall","src":"25126:14:29"},"nodeType":"YulSwitch","src":"25119:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"24798:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"24804:3:29","type":""}],"src":"24717:1352:29"},{"body":{"nodeType":"YulBlock","src":"26213:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"26223:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26243:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26237:5:29"},"nodeType":"YulFunctionCall","src":"26237:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"26227:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26298:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"26306:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26294:3:29"},"nodeType":"YulFunctionCall","src":"26294:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"26313:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"26318:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"26259:34:29"},"nodeType":"YulFunctionCall","src":"26259:66:29"},"nodeType":"YulExpressionStatement","src":"26259:66:29"},{"nodeType":"YulAssignment","src":"26334:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26345:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"26350:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26341:3:29"},"nodeType":"YulFunctionCall","src":"26341:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"26334:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"26189:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26194:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"26205:3:29","type":""}],"src":"26074:289:29"},{"body":{"nodeType":"YulBlock","src":"26489:141:29","statements":[{"nodeType":"YulAssignment","src":"26499:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26511:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"26522:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26507:3:29"},"nodeType":"YulFunctionCall","src":"26507:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26499:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26541:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"26556:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"26564:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26552:3:29"},"nodeType":"YulFunctionCall","src":"26552:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26534:6:29"},"nodeType":"YulFunctionCall","src":"26534:36:29"},"nodeType":"YulExpressionStatement","src":"26534:36:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26590:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"26601:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26586:3:29"},"nodeType":"YulFunctionCall","src":"26586:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26610:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"26618:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26606:3:29"},"nodeType":"YulFunctionCall","src":"26606:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26579:6:29"},"nodeType":"YulFunctionCall","src":"26579:45:29"},"nodeType":"YulExpressionStatement","src":"26579:45:29"}]},"name":"abi_encode_tuple_t_uint8_t_uint8__to_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26450:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26461:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26469:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26480:4:29","type":""}],"src":"26368:262:29"},{"body":{"nodeType":"YulBlock","src":"26744:76:29","statements":[{"nodeType":"YulAssignment","src":"26754:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26766:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"26777:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26762:3:29"},"nodeType":"YulFunctionCall","src":"26762:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26754:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26796:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"26807:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26789:6:29"},"nodeType":"YulFunctionCall","src":"26789:25:29"},"nodeType":"YulExpressionStatement","src":"26789:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26713:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26724:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26735:4:29","type":""}],"src":"26635:185:29"},{"body":{"nodeType":"YulBlock","src":"26916:558:29","statements":[{"body":{"nodeType":"YulBlock","src":"26962:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26971:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26974:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26964:6:29"},"nodeType":"YulFunctionCall","src":"26964:12:29"},"nodeType":"YulExpressionStatement","src":"26964:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"26937:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"26946:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26933:3:29"},"nodeType":"YulFunctionCall","src":"26933:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"26958:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"26929:3:29"},"nodeType":"YulFunctionCall","src":"26929:32:29"},"nodeType":"YulIf","src":"26926:52:29"},{"nodeType":"YulVariableDeclaration","src":"26987:30:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27007:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27001:5:29"},"nodeType":"YulFunctionCall","src":"27001:16:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"26991:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"27060:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27069:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27072:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27062:6:29"},"nodeType":"YulFunctionCall","src":"27062:12:29"},"nodeType":"YulExpressionStatement","src":"27062:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"27032:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"27040:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27029:2:29"},"nodeType":"YulFunctionCall","src":"27029:30:29"},"nodeType":"YulIf","src":"27026:50:29"},{"nodeType":"YulVariableDeclaration","src":"27085:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27099:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"27110:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27095:3:29"},"nodeType":"YulFunctionCall","src":"27095:22:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27089:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"27165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27167:6:29"},"nodeType":"YulFunctionCall","src":"27167:12:29"},"nodeType":"YulExpressionStatement","src":"27167:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27144:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"27148:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27140:3:29"},"nodeType":"YulFunctionCall","src":"27140:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"27155:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"27136:3:29"},"nodeType":"YulFunctionCall","src":"27136:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27129:6:29"},"nodeType":"YulFunctionCall","src":"27129:35:29"},"nodeType":"YulIf","src":"27126:55:29"},{"nodeType":"YulVariableDeclaration","src":"27190:19:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27206:2:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27200:5:29"},"nodeType":"YulFunctionCall","src":"27200:9:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"27194:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27218:62:29","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"27276:2:29"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"27247:28:29"},"nodeType":"YulFunctionCall","src":"27247:32:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"27231:15:29"},"nodeType":"YulFunctionCall","src":"27231:49:29"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"27222:5:29","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"27296:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"27303:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27289:6:29"},"nodeType":"YulFunctionCall","src":"27289:17:29"},"nodeType":"YulExpressionStatement","src":"27289:17:29"},{"body":{"nodeType":"YulBlock","src":"27352:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27361:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27364:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27354:6:29"},"nodeType":"YulFunctionCall","src":"27354:12:29"},"nodeType":"YulExpressionStatement","src":"27354:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27329:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"27333:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27325:3:29"},"nodeType":"YulFunctionCall","src":"27325:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"27338:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27321:3:29"},"nodeType":"YulFunctionCall","src":"27321:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"27343:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"27318:2:29"},"nodeType":"YulFunctionCall","src":"27318:33:29"},"nodeType":"YulIf","src":"27315:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"27416:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"27420:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27412:3:29"},"nodeType":"YulFunctionCall","src":"27412:11:29"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"27429:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"27436:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27425:3:29"},"nodeType":"YulFunctionCall","src":"27425:14:29"},{"name":"_2","nodeType":"YulIdentifier","src":"27441:2:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"27377:34:29"},"nodeType":"YulFunctionCall","src":"27377:67:29"},"nodeType":"YulExpressionStatement","src":"27377:67:29"},{"nodeType":"YulAssignment","src":"27453:15:29","value":{"name":"array","nodeType":"YulIdentifier","src":"27463:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"27453:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26882:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"26893:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"26905:6:29","type":""}],"src":"26825:649:29"},{"body":{"nodeType":"YulBlock","src":"27755:1145:29","statements":[{"nodeType":"YulVariableDeclaration","src":"27765:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"27776:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"27769:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27786:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"27809:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"27803:5:29"},"nodeType":"YulFunctionCall","src":"27803:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"27790:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27825:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"27865:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"27839:25:29"},"nodeType":"YulFunctionCall","src":"27839:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"27829:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27884:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"27894:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"27888:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"27945:126:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27966:3:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"27975:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27990:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27986:3:29"},"nodeType":"YulFunctionCall","src":"27986:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27971:3:29"},"nodeType":"YulFunctionCall","src":"27971:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27959:6:29"},"nodeType":"YulFunctionCall","src":"27959:37:29"},"nodeType":"YulExpressionStatement","src":"27959:37:29"},{"nodeType":"YulAssignment","src":"28009:52:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28020:3:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"28029:6:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"28051:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28044:6:29"},"nodeType":"YulFunctionCall","src":"28044:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28037:6:29"},"nodeType":"YulFunctionCall","src":"28037:22:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"28025:3:29"},"nodeType":"YulFunctionCall","src":"28025:35:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28016:3:29"},"nodeType":"YulFunctionCall","src":"28016:45:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"28009:3:29"}]}]},"nodeType":"YulCase","src":"27938:133:29","value":{"kind":"number","nodeType":"YulLiteral","src":"27943:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"28087:349:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28108:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"28111:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28101:6:29"},"nodeType":"YulFunctionCall","src":"28101:17:29"},"nodeType":"YulExpressionStatement","src":"28101:17:29"},{"nodeType":"YulVariableDeclaration","src":"28131:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"28141:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"28135:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28158:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"28183:1:29","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"28186:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"28173:9:29"},"nodeType":"YulFunctionCall","src":"28173:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"28162:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28202:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"28211:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"28206:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"28279:111:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28308:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"28313:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28304:3:29"},"nodeType":"YulFunctionCall","src":"28304:11:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"28323:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"28317:5:29"},"nodeType":"YulFunctionCall","src":"28317:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28297:6:29"},"nodeType":"YulFunctionCall","src":"28297:35:29"},"nodeType":"YulExpressionStatement","src":"28297:35:29"},{"nodeType":"YulAssignment","src":"28349:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"28364:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"28373:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28360:3:29"},"nodeType":"YulFunctionCall","src":"28360:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"28349:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"28236:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"28239:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"28233:2:29"},"nodeType":"YulFunctionCall","src":"28233:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"28247:19:29","statements":[{"nodeType":"YulAssignment","src":"28249:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"28258:1:29"},{"name":"_2","nodeType":"YulIdentifier","src":"28261:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28254:3:29"},"nodeType":"YulFunctionCall","src":"28254:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"28249:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"28229:3:29","statements":[]},"src":"28225:165:29"},{"nodeType":"YulAssignment","src":"28403:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28414:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"28419:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28410:3:29"},"nodeType":"YulFunctionCall","src":"28410:16:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"28403:3:29"}]}]},"nodeType":"YulCase","src":"28080:356:29","value":{"kind":"number","nodeType":"YulLiteral","src":"28085:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"27915:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"27926:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27911:3:29"},"nodeType":"YulFunctionCall","src":"27911:18:29"},"nodeType":"YulSwitch","src":"27904:532:29"},{"nodeType":"YulVariableDeclaration","src":"28445:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"28467:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28461:5:29"},"nodeType":"YulFunctionCall","src":"28461:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"28449:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"28522:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"28530:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28518:3:29"},"nodeType":"YulFunctionCall","src":"28518:17:29"},{"name":"ret","nodeType":"YulIdentifier","src":"28537:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"28542:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"28483:34:29"},"nodeType":"YulFunctionCall","src":"28483:68:29"},"nodeType":"YulExpressionStatement","src":"28483:68:29"},{"nodeType":"YulVariableDeclaration","src":"28560:31:29","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"28577:3:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"28582:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28573:3:29"},"nodeType":"YulFunctionCall","src":"28573:18:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"28564:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28600:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"28622:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28616:5:29"},"nodeType":"YulFunctionCall","src":"28616:13:29"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"28604:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"28677:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"28685:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28673:3:29"},"nodeType":"YulFunctionCall","src":"28673:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"28692:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"28699:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"28638:34:29"},"nodeType":"YulFunctionCall","src":"28638:70:29"},"nodeType":"YulExpressionStatement","src":"28638:70:29"},{"nodeType":"YulVariableDeclaration","src":"28717:30:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"28731:5:29"},{"name":"length_2","nodeType":"YulIdentifier","src":"28738:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28727:3:29"},"nodeType":"YulFunctionCall","src":"28727:20:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"28721:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28756:29:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"28778:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28772:5:29"},"nodeType":"YulFunctionCall","src":"28772:13:29"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"28760:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"28833:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"28841:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28829:3:29"},"nodeType":"YulFunctionCall","src":"28829:17:29"},{"name":"_3","nodeType":"YulIdentifier","src":"28848:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"28852:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"28794:34:29"},"nodeType":"YulFunctionCall","src":"28794:67:29"},"nodeType":"YulExpressionStatement","src":"28794:67:29"},{"nodeType":"YulAssignment","src":"28870:24:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"28881:2:29"},{"name":"length_3","nodeType":"YulIdentifier","src":"28885:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28877:3:29"},"nodeType":"YulFunctionCall","src":"28877:17:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"28870:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"27707:3:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"27712:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"27720:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"27728:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"27736:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"27747:3:29","type":""}],"src":"27479:1421:29"},{"body":{"nodeType":"YulBlock","src":"28957:116:29","statements":[{"nodeType":"YulAssignment","src":"28967:20:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"28982:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"28985:1:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"28978:3:29"},"nodeType":"YulFunctionCall","src":"28978:9:29"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"28967:7:29"}]},{"body":{"nodeType":"YulBlock","src":"29045:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29047:16:29"},"nodeType":"YulFunctionCall","src":"29047:18:29"},"nodeType":"YulExpressionStatement","src":"29047:18:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29016:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"29009:6:29"},"nodeType":"YulFunctionCall","src":"29009:9:29"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"29023:1:29"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"29030:7:29"},{"name":"x","nodeType":"YulIdentifier","src":"29039:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"29026:3:29"},"nodeType":"YulFunctionCall","src":"29026:15:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"29020:2:29"},"nodeType":"YulFunctionCall","src":"29020:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"29006:2:29"},"nodeType":"YulFunctionCall","src":"29006:37:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"28999:6:29"},"nodeType":"YulFunctionCall","src":"28999:45:29"},"nodeType":"YulIf","src":"28996:71:29"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"28936:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"28939:1:29","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"28945:7:29","type":""}],"src":"28905:168:29"},{"body":{"nodeType":"YulBlock","src":"29243:385:29","statements":[{"nodeType":"YulVariableDeclaration","src":"29253:16:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"29266:3:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"29257:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29278:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"29298:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29292:5:29"},"nodeType":"YulFunctionCall","src":"29292:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"29282:6:29","type":""}]},{"nodeType":"YulAssignment","src":"29314:12:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"29323:3:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29314:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"29335:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"29345:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29339:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29358:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"29376:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29384:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29372:3:29"},"nodeType":"YulFunctionCall","src":"29372:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"29362:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"29396:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"29405:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"29400:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"29464:137:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29485:5:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29502:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29496:5:29"},"nodeType":"YulFunctionCall","src":"29496:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"29511:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29492:3:29"},"nodeType":"YulFunctionCall","src":"29492:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29478:6:29"},"nodeType":"YulFunctionCall","src":"29478:39:29"},"nodeType":"YulExpressionStatement","src":"29478:39:29"},{"nodeType":"YulAssignment","src":"29530:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29543:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29550:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29539:3:29"},"nodeType":"YulFunctionCall","src":"29539:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"29530:5:29"}]},{"nodeType":"YulAssignment","src":"29566:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29580:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29588:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29576:3:29"},"nodeType":"YulFunctionCall","src":"29576:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"29566:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"29426:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"29429:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"29423:2:29"},"nodeType":"YulFunctionCall","src":"29423:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"29437:18:29","statements":[{"nodeType":"YulAssignment","src":"29439:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"29448:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"29451:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29444:3:29"},"nodeType":"YulFunctionCall","src":"29444:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"29439:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"29419:3:29","statements":[]},"src":"29415:186:29"},{"nodeType":"YulAssignment","src":"29610:12:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"29617:5:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"29610:3:29"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_uint8_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"29219:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"29224:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"29235:3:29","type":""}],"src":"29078:550:29"},{"body":{"nodeType":"YulBlock","src":"29836:286:29","statements":[{"nodeType":"YulVariableDeclaration","src":"29846:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29864:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"29869:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29860:3:29"},"nodeType":"YulFunctionCall","src":"29860:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"29873:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"29856:3:29"},"nodeType":"YulFunctionCall","src":"29856:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29850:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29891:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"29906:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29914:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29902:3:29"},"nodeType":"YulFunctionCall","src":"29902:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29884:6:29"},"nodeType":"YulFunctionCall","src":"29884:34:29"},"nodeType":"YulExpressionStatement","src":"29884:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29938:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"29949:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29934:3:29"},"nodeType":"YulFunctionCall","src":"29934:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"29958:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"29966:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29954:3:29"},"nodeType":"YulFunctionCall","src":"29954:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29927:6:29"},"nodeType":"YulFunctionCall","src":"29927:43:29"},"nodeType":"YulExpressionStatement","src":"29927:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29990:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"30001:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29986:3:29"},"nodeType":"YulFunctionCall","src":"29986:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"30006:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29979:6:29"},"nodeType":"YulFunctionCall","src":"29979:34:29"},"nodeType":"YulExpressionStatement","src":"29979:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30033:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"30044:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30029:3:29"},"nodeType":"YulFunctionCall","src":"30029:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"30049:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30022:6:29"},"nodeType":"YulFunctionCall","src":"30022:31:29"},"nodeType":"YulExpressionStatement","src":"30022:31:29"},{"nodeType":"YulAssignment","src":"30062:54:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"30088:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30100:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"30111:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30096:3:29"},"nodeType":"YulFunctionCall","src":"30096:19:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"30070:17:29"},"nodeType":"YulFunctionCall","src":"30070:46:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30062:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29781:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"29792:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"29800:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"29808:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"29816:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29827:4:29","type":""}],"src":"29633:489:29"},{"body":{"nodeType":"YulBlock","src":"30207:169:29","statements":[{"body":{"nodeType":"YulBlock","src":"30253:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30262:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"30265:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"30255:6:29"},"nodeType":"YulFunctionCall","src":"30255:12:29"},"nodeType":"YulExpressionStatement","src":"30255:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"30228:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"30237:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30224:3:29"},"nodeType":"YulFunctionCall","src":"30224:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"30249:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"30220:3:29"},"nodeType":"YulFunctionCall","src":"30220:32:29"},"nodeType":"YulIf","src":"30217:52:29"},{"nodeType":"YulVariableDeclaration","src":"30278:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30297:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30291:5:29"},"nodeType":"YulFunctionCall","src":"30291:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"30282:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30340:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"30316:23:29"},"nodeType":"YulFunctionCall","src":"30316:30:29"},"nodeType":"YulExpressionStatement","src":"30316:30:29"},{"nodeType":"YulAssignment","src":"30355:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"30365:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"30355:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30173:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"30184:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"30196:6:29","type":""}],"src":"30127:249:29"},{"body":{"nodeType":"YulBlock","src":"30568:309:29","statements":[{"nodeType":"YulVariableDeclaration","src":"30578:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30598:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30592:5:29"},"nodeType":"YulFunctionCall","src":"30592:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"30582:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30653:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"30661:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30649:3:29"},"nodeType":"YulFunctionCall","src":"30649:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"30668:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"30673:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"30614:34:29"},"nodeType":"YulFunctionCall","src":"30614:66:29"},"nodeType":"YulExpressionStatement","src":"30614:66:29"},{"nodeType":"YulVariableDeclaration","src":"30689:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30706:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"30711:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30702:3:29"},"nodeType":"YulFunctionCall","src":"30702:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"30693:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"30727:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"30749:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30743:5:29"},"nodeType":"YulFunctionCall","src":"30743:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"30731:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"30804:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"30812:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30800:3:29"},"nodeType":"YulFunctionCall","src":"30800:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"30819:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"30826:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"30765:34:29"},"nodeType":"YulFunctionCall","src":"30765:70:29"},"nodeType":"YulExpressionStatement","src":"30765:70:29"},{"nodeType":"YulAssignment","src":"30844:27:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"30855:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"30862:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30851:3:29"},"nodeType":"YulFunctionCall","src":"30851:20:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"30844:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"30536:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"30541:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30549:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"30560:3:29","type":""}],"src":"30381:496:29"}]},"contents":"{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_array_uint8_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_tuple_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_array_uint8_dyn(value0, add(headStart, 96))\n let _1 := 32\n mstore(add(headStart, _1), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_uint8_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let pos := tail_2\n let length := mload(value2)\n mstore(tail_2, length)\n pos := add(tail_2, _1)\n let srcPtr := add(value2, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, iszero(iszero(mload(srcPtr))))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_array_uint8_dyn(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(shl(5, length), 0x20)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_array_uint8_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let dst := allocate_memory(array_allocation_size_array_uint8_dyn(_1))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, shl(5, _1)), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n mstore(dst, abi_decode_uint8(src))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value1 := abi_decode_array_uint8_dyn(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n let _2 := add(headStart, offset_1)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value2 := add(_2, 32)\n value3 := length\n }\n function abi_encode_tuple_t_contract$_IgammaTicketsContract_$3740__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := abi_decode_uint8(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_array_array_uint8_dyn_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let dst := allocate_memory(array_allocation_size_array_uint8_dyn(_1))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, shl(5, _1)), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, 0xffffffffffffffff)\n {\n let _3 := 0\n revert(_3, _3)\n }\n mstore(dst, abi_decode_array_uint8_dyn(add(add(offset, innerOffset), _2), end))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_array_bytes_calldata_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint8t_array$_t_uint256_$dyn_memory_ptrt_array$_t_array$_t_uint8_$dyn_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n let _1 := 32\n let offset := calldataload(add(headStart, _1))\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n let dst := allocate_memory(array_allocation_size_array_uint8_dyn(_4))\n let dst_1 := dst\n mstore(dst, _4)\n dst := add(dst, _1)\n let srcEnd := add(add(_3, shl(5, _4)), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, _1)\n }\n value1 := dst_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _2) { revert(0, 0) }\n value2 := abi_decode_array_array_uint8_dyn_dyn(add(headStart, offset_1), dataEnd)\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, _2) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_array_bytes_calldata_dyn_calldata(add(headStart, offset_2), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_array$_t_uint8_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_bytes_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n }\n function abi_encode_tuple_t_contract$_IgammaPacksContract_$3694__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_array_uint8_dyn(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__to_t_uint256_t_uint256_t_bool_t_uint8_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), and(value3, 0xff))\n mstore(add(headStart, 128), value4)\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_available_length_string(src, length, end) -> array\n {\n array := allocate_memory(array_allocation_size_string(length))\n mstore(array, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(array, 0x20), src, length)\n mstore(add(add(array, length), 0x20), 0)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_array$_t_uint8_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_array_bytes_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_bool(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_addresst_uint8t_addresst_uint8(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := abi_decode_uint8(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n value3 := abi_decode_uint8(add(headStart, 96))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IgammaOffersContract_$3734__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_library_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 128)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n let _1 := 32\n mstore(add(headStart, _1), value1)\n mstore(add(headStart, 64), 128)\n let pos := tail_1\n let length := mload(value2)\n mstore(tail_1, length)\n pos := add(headStart, 160)\n let srcPtr := add(value2, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, 96), sub(pos, headStart))\n mstore(pos, value4)\n calldatacopy(add(pos, _1), value3, value4)\n mstore(add(add(pos, value4), _1), 0)\n tail := add(add(pos, and(add(value4, 31), not(31))), _1)\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function decrement_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if iszero(value_1) { panic_error_0x11() }\n ret := add(value_1, not(0))\n }\n function abi_encode_tuple_packed_t_array$_t_uint8_$dyn_calldata_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let pos_1 := pos\n pos_1 := pos\n let srcPtr := value0\n let i := 0\n for { } lt(i, value1) { i := add(i, 1) }\n {\n mstore(pos_1, and(abi_decode_uint8(srcPtr), 0xff))\n let _1 := 0x20\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos_1\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_stringliteral_88b5330e1896933900a14bf749a759ceee010cb99d295ffa203eac33ad95a232__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"This card has an offer.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_eb01e1647e93493aed8ecd1e3d4acfa1adcdfee195c37f083ed59badee6a65f8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"invalid cardInventory position\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_uint8_t_uint8__to_t_uint8_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xff))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_string(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_packed_t_bytes_storage_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), ret, length_1)\n let end_1 := add(ret, length_1)\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), end_1, length_2)\n let _3 := add(end_1, length_2)\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), _3, length_3)\n end := add(_3, length_3)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_array$_t_uint8_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let pos_1 := pos\n let length := mload(value0)\n pos_1 := pos\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, and(mload(srcPtr), 0xff))\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos_1\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":3992},{"length":20,"start":4676},{"length":20,"start":8645},{"length":20,"start":13504}]},"contracts/gamma/libs/LibPackVerifier.sol":{"LibPackVerifier":[{"length":20,"start":4254},{"length":20,"start":13994}]},"contracts/gamma/libs/LibStringUtils.sol":{"LibStringUtils":[{"length":20,"start":12656}]}},"object":"608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x45F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7232D7D4 GT PUSH2 0x24C JUMPI DUP1 PUSH4 0xAD1684FA GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDBFC05CF GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE8A7E31D GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE8A7E31D EQ PUSH2 0xA64 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0xA6C JUMPI DUP1 PUSH4 0xEB12D61E EQ PUSH2 0xA7F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA92 JUMPI DUP1 PUSH4 0xF98FD283 EQ PUSH2 0xAA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDBFC05CF EQ PUSH2 0xA05 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0xA18 JUMPI DUP1 PUSH4 0xE1883C6E EQ PUSH2 0xA2B JUMPI DUP1 PUSH4 0xE4AE0B9B EQ PUSH2 0xA3E JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0xA4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC87B56DD GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x9BB JUMPI DUP1 PUSH4 0xCAFAA473 EQ PUSH2 0x9CE JUMPI DUP1 PUSH4 0xD322B563 EQ PUSH2 0x9E1 JUMPI DUP1 PUSH4 0xD7093F40 EQ PUSH2 0x9F4 JUMPI DUP1 PUSH4 0xD780C477 EQ PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAD1684FA EQ PUSH2 0x966 JUMPI DUP1 PUSH4 0xB3526185 EQ PUSH2 0x979 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x982 JUMPI DUP1 PUSH4 0xBA6C0FBC EQ PUSH2 0x995 JUMPI DUP1 PUSH4 0xBF400A6A EQ PUSH2 0x9A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x9FF26EFD GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x9FF26EFD EQ PUSH2 0x8F2 JUMPI DUP1 PUSH4 0xA1AF8AD4 EQ PUSH2 0x920 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x933 JUMPI DUP1 PUSH4 0xA419811D EQ PUSH2 0x946 JUMPI DUP1 PUSH4 0xAB535160 EQ PUSH2 0x959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x8AB JUMPI DUP1 PUSH4 0x9038F414 EQ PUSH2 0x8BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0x9A5613AD EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0x9C7F707F EQ PUSH2 0x8DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7DF73E27 GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x7DF73E27 EQ PUSH2 0x830 JUMPI DUP1 PUSH4 0x82D8A118 EQ PUSH2 0x85C JUMPI DUP1 PUSH4 0x886EB60F EQ PUSH2 0x865 JUMPI DUP1 PUSH4 0x88E0EF80 EQ PUSH2 0x878 JUMPI DUP1 PUSH4 0x8BF670C8 EQ PUSH2 0x898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7232D7D4 EQ PUSH2 0x7EF JUMPI DUP1 PUSH4 0x79E8DADC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0x7CE65F7B EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0x7CF86B72 EQ PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D GT PUSH2 0x35D JUMPI DUP1 PUSH4 0x5312EA8E GT PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x6D0AF178 GT PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6D0AF178 EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x7AE JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x7C1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x7D4 JUMPI DUP1 PUSH4 0x7155A3AC EQ PUSH2 0x7DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5312EA8E EQ PUSH2 0x747 JUMPI DUP1 PUSH4 0x5E31CE48 EQ PUSH2 0x75A JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x76D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x780 JUMPI DUP1 PUSH4 0x68CC5BC1 EQ PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x30F5CC58 GT PUSH2 0x32C JUMPI DUP1 PUSH4 0x30F5CC58 EQ PUSH2 0x694 JUMPI DUP1 PUSH4 0x4039327E EQ PUSH2 0x6A7 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x4C03CD0B EQ PUSH2 0x6D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x267B841D EQ PUSH2 0x62F JUMPI DUP1 PUSH4 0x2CA699E7 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x655 JUMPI DUP1 PUSH4 0x2F9E026A EQ PUSH2 0x681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 GT PUSH2 0x3EB JUMPI DUP1 PUSH4 0x203335F6 GT PUSH2 0x3AF JUMPI DUP1 PUSH4 0x203335F6 EQ PUSH2 0x5DA JUMPI DUP1 PUSH4 0x20965A5F EQ PUSH2 0x5ED JUMPI DUP1 PUSH4 0x21A7C6B0 EQ PUSH2 0x600 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x609 JUMPI DUP1 PUSH4 0x241A08FE EQ PUSH2 0x61C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x147BAAC7 EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x155E2F92 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x1585CC4E EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x5C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81812FC GT PUSH2 0x432 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xE316AB7 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0x128916DC EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0x1306952C EQ PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x435DCAF EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x4AE JUMPI DUP1 PUSH4 0x7B2E246 EQ PUSH2 0x4C3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x477 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x4389 JUMP JUMPDEST PUSH2 0xAB8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49F PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xAC9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4416 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0xE79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x483 SWAP2 SWAP1 PUSH2 0x44D1 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x4D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x4FF CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0xF0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x44FD JUMP JUMPDEST PUSH2 0xF34 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x52F PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0xFE9 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x108C JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1118 JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1195 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x11EF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x47B3 JUMP JUMPDEST PUSH2 0x1266 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x5FB CALLDATASIZE PUSH1 0x4 PUSH2 0x48A9 JUMP JUMPDEST PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x617 CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x62A CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x63D CALLDATASIZE PUSH1 0x4 PUSH2 0x461A JUMP JUMPDEST PUSH2 0x1A17 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x650 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x1A24 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x663 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x4946 JUMP JUMPDEST PUSH2 0x1C77 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6BD CALLDATASIZE PUSH1 0x4 PUSH2 0x48EA JUMP JUMPDEST PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x6D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FAD JUMP JUMPDEST PUSH2 0x717 PUSH2 0x6E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV AND SWAP1 DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP2 ISZERO ISZERO SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x483 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x755 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x1FB9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x768 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x20D4 JUMP JUMPDEST PUSH2 0x504 PUSH2 0x77B CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2119 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x797 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x2124 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7BC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x7CF CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x21E7 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x222F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7EA CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x2243 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x7FD CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x22A3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x22F9 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2306 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x82B CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2377 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x83E CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x873 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x23C3 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x886 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x8A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH2 0x241F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x504 JUMP JUMPDEST PUSH2 0x477 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x281E JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x8ED CALLDATASIZE PUSH1 0x4 PUSH2 0x4A49 JUMP JUMPDEST PUSH2 0x282D JUMP JUMPDEST PUSH2 0x5B5 PUSH2 0x900 CALLDATASIZE PUSH1 0x4 PUSH2 0x46B4 JUMP JUMPDEST PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x92E CALLDATASIZE PUSH1 0x4 PUSH2 0x4AAC JUMP JUMPDEST PUSH2 0x28CF JUMP JUMPDEST PUSH2 0x52F PUSH2 0x941 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B00 JUMP JUMPDEST PUSH2 0x2C49 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x954 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x2C54 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x5B5 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x974 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B39 JUMP JUMPDEST PUSH2 0x2CF3 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x990 CALLDATASIZE PUSH1 0x4 PUSH2 0x4B91 JUMP JUMPDEST PUSH2 0x2F86 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x492B JUMP JUMPDEST PUSH2 0x2FF3 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x9C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x323F JUMP JUMPDEST PUSH2 0x52F PUSH2 0x9DC CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x324A JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x504 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH1 0x12 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x4E3 PUSH2 0x32ED JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA13 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x331A JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA26 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x335D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA39 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E4 JUMP JUMPDEST PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x477 SWAP1 PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x504 SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x4B6 PUSH2 0x3430 JUMP JUMPDEST PUSH2 0x477 PUSH2 0xA7A CALLDATASIZE PUSH1 0x4 PUSH2 0x4C10 JUMP JUMPDEST PUSH2 0x343D JUMP JUMPDEST PUSH2 0x52F PUSH2 0xA8D CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x346B JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAA0 CALLDATASIZE PUSH1 0x4 PUSH2 0x43BB JUMP JUMPDEST PUSH2 0x34E2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0xAB3 CALLDATASIZE PUSH1 0x4 PUSH2 0x49AC JUMP JUMPDEST PUSH2 0x3520 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x356A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x7A DUP1 DUP3 MSTORE PUSH2 0xF60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 SWAP2 POP PUSH1 0x20 DUP3 ADD PUSH2 0xF40 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xCAF JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO PUSH2 0xC9D JUMPI DUP1 DUP6 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xB95 JUMPI PUSH2 0xB95 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 AND DUP4 MSTORE SWAP1 SWAP3 MSTORE KECCAK256 SLOAD DUP6 MLOAD SWAP1 DUP3 AND SWAP2 DUP7 SWAP2 SWAP1 DUP6 AND SWAP1 DUP2 LT PUSH2 0xBE5 JUMPI PUSH2 0xBE5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0xFF SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC6A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST DUP4 DUP4 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xC7F JUMPI PUSH2 0xC7F PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP2 PUSH2 0xC99 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 PUSH2 0xCA7 DUP2 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB46 JUMP JUMPDEST POP PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xCCD JUMPI PUSH2 0xCCD PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCF6 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD16 JUMPI PUSH2 0xD16 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD3F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0xFF AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0xD5F JUMPI PUSH2 0xD5F PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD88 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0xE67 JUMPI DUP8 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDAB JUMPI PUSH2 0xDAB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDC5 JUMPI PUSH2 0xDC5 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xDEB JUMPI PUSH2 0xDEB PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE05 JUMPI PUSH2 0xE05 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH1 0xFF AND SWAP1 DUP2 PUSH1 0xFF AND DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xE2B JUMPI PUSH2 0xE2B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xE45 JUMPI PUSH2 0xE45 PUSH2 0x4C3E JUMP JUMPDEST SWAP2 ISZERO ISZERO PUSH1 0x20 SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE DUP1 PUSH2 0xE5F DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xD8E JUMP JUMPDEST POP SWAP2 SWAP11 SWAP1 SWAP10 POP SWAP1 SWAP8 POP SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF 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 0xEB4 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF01 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xED6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF01 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF16 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC3 JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 CALLER PUSH2 0x35C8 JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF73 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x982088F PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x982088F0 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xFE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1019 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1041 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x538B3425A321783393AD250DB10356B8B3523EF29A40DE015C5218213DE0EAD0 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x10CE SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x110F SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x11BF JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x121F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0xFF DUP6 AND ISZERO DUP1 PUSH2 0x127E JUMPI POP PUSH1 0xF SLOAD PUSH1 0xFF SWAP1 DUP2 AND SWAP1 DUP7 AND GT JUMPDEST ISZERO PUSH2 0x129C JUMPI PUSH1 0x40 MLOAD PUSH4 0xB154B3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x131D JUMPI PUSH2 0x130B CALLER DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12C0 JUMPI PUSH2 0x12C0 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x12DA JUMPI PUSH2 0x12DA PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 DUP7 DUP7 DUP2 DUP2 LT PUSH2 0x12F4 JUMPI PUSH2 0x12F4 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x4D97 JUMP JUMPDEST PUSH2 0x35D5 JUMP JUMPDEST DUP1 PUSH2 0x1315 DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x129F JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 SUB PUSH2 0x1363 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x137E SWAP1 DUP4 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3C DUP3 LT PUSH2 0x1436 JUMPI PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FD SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x14 SLOAD DUP2 LT DUP1 PUSH2 0x1412 JUMPI POP PUSH1 0x14 SLOAD PUSH1 0x12 SLOAD LT JUMPDEST ISZERO PUSH2 0x1430 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCDB3117 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xCDB3117 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1483 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14A7 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST GT SWAP1 POP DUP4 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x16CE JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x14D8 JUMPI PUSH2 0x14D8 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x14ED SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 ISZERO PUSH2 0x164A JUMPI PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x1551 JUMPI PUSH2 0x1551 PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1566 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15D6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST ISZERO PUSH2 0x164A JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 SWAP2 DUP10 DUP10 DUP6 DUP2 DUP2 LT PUSH2 0x15FF JUMPI PUSH2 0x15FF PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1614 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND LT ISZERO PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH4 0x483E9B8D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0x166C JUMPI PUSH2 0x166C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1681 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x16A8 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x14AE JUMP JUMPDEST POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x16EE SWAP1 DUP5 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH2 0x1703 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 CALLER SWAP1 PUSH32 0xDBCDA3B6D52A6F69C85189CA3F35E5BE8A2E3D052FEA47F656FF00384B0C47B1 SWAP1 PUSH1 0x0 SWAP1 LOG3 DUP3 ISZERO PUSH2 0x131D JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x79 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND SWAP2 PUSH2 0x1765 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1816 CALLER PUSH1 0x16 DUP1 SLOAD PUSH2 0x178F SWAP1 PUSH2 0x4CBF 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 0x17BB SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1808 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1808 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17EB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x79 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x14 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x182A SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x14 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1889 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18AD SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFA8213D3 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFA8213D3 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x2 SWAP3 POP CALLER SWAP2 POP PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1970 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x197D DUP4 DUP4 CALLER PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A01 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x19CB CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x35D5 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x1A8A JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SUB PUSH2 0x1AB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B3A SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP10 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x1B6B JUMPI POP DUP1 JUMPDEST PUSH2 0x1B87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP8 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1BB6 DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x1C05 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x1B6E5F928A38F442936BBDF4696F128A543B8E43730594344A66C028D0B9C3DA DUP5 PUSH1 0x40 MLOAD PUSH2 0x1C6A SWAP2 SWAP1 PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1CA7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x1D1C SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x1D29 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D3A SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x19CB JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x1D5E JUMPI PUSH2 0x1D5E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 EQ PUSH2 0x1DA9 JUMPI PUSH2 0x1389 PUSH1 0x1A PUSH1 0x0 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1D89 JUMPI PUSH2 0x1D89 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT PUSH2 0x1DDA JUMP JUMPDEST PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB9 GT JUMPDEST PUSH2 0x1E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642063617264496E76656E746F727920706F736974696F6E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1E3C JUMPI PUSH2 0x1E3C PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1E66 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP4 MLOAD SWAP1 SWAP2 SWAP1 DUP5 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1E9A JUMPI PUSH2 0x1E9A PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1ED3 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x1EF7 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1D43 JUMP JUMPDEST PUSH1 0x16 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF 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 0x1F38 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1F85 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1F5A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1F85 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F68 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2F86 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF3F PUSH1 0x0 DUP3 CALLER PUSH2 0x3A4F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1FE9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1FF3 ADDRESS PUSH2 0x21E7 JUMP JUMPDEST LT ISZERO PUSH2 0x2012 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2024 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20A3 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP2 SWAP1 CALLER SWAP1 PUSH32 0x23D6711A1D031134A36921253C75AA59E967D38E369AC625992824315E204F20 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x20FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2111 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH2 0x358F JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2154 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH3 0x10000 MUL PUSH3 0xFF0000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x21A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0xB PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2213 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2237 PUSH2 0x3B48 JUMP JUMPDEST PUSH2 0x2241 PUSH1 0x0 PUSH2 0x3B75 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x226E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x1178 DUP4 PUSH2 0x4E09 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x22D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x22F4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SSTORE JUMP JUMPDEST PUSH1 0x15 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2336 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x64 DUP2 PUSH1 0xFF AND GT ISZERO PUSH2 0x235B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x23ED JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x244D JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF SWAP5 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x78 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 SUB PUSH2 0x24BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 SLOAD PUSH1 0x12 SLOAD LT ISZERO PUSH2 0x24E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2530 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2554 SWAP2 SWAP1 PUSH2 0x4DF0 JUMP JUMPDEST SWAP1 POP PUSH1 0x13 SLOAD DUP2 LT ISZERO PUSH2 0x2579 JUMPI PUSH1 0x40 MLOAD PUSH4 0x356680B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x78 DUP2 PUSH1 0xFF AND GT PUSH2 0x2608 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x25B6 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x2608 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x25E2 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x257D JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x2627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3DE829 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26BF CALLER PUSH1 0x15 DUP1 SLOAD PUSH2 0x2638 SWAP1 PUSH2 0x4CBF 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 0x2664 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2686 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x26B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2694 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH1 0x78 PUSH1 0x2 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x13 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x273D SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST POP PUSH1 0x13 SLOAD PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2752 SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F27A03F PUSH1 0xE2 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFC9E80FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27C6 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x27E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE07C7C8D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 SWAP1 CALLER SWAP1 PUSH32 0x6D0344E2059F835240CB954CCE07D4B26F0D0844EECC234F7EE0E292BA80A1AA SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xE88 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x285D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x15 PUSH2 0x2869 DUP4 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x16 PUSH2 0x2876 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0x2885 SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP3 PUSH1 0x40 MLOAD PUSH2 0x289B SWAP2 SWAP1 PUSH2 0x4FD1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH32 0xABFD337AC5625B7DC2DDD3D3BD465FB1DEC15322EEEED81032268B337880BEC6 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x28F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SUB PUSH2 0x2920 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2F352531 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2BF5 JUMPI CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x294D JUMPI PUSH2 0x294D PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2962 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SLOAD SWAP1 SWAP2 AND SWAP1 SUB PUSH2 0x299C JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x29BE JUMPI PUSH2 0x29BE PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x29D3 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x29FA DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x1C PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x2A4C JUMPI PUSH2 0x2A4C PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2A61 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP2 SWAP1 PUSH2 0x2A88 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x18 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2BE3 JUMPI PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2EDB5FCF CALLER DUP8 DUP8 DUP7 DUP2 DUP2 LT PUSH2 0x2ADD JUMPI PUSH2 0x2ADD PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2AF2 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B3E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B62 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 SWAP1 DUP3 DUP9 DUP9 DUP8 DUP2 DUP2 LT PUSH2 0x2B8B JUMPI PUSH2 0x2B8B PUSH2 0x4C3E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2BA0 SWAP2 SWAP1 PUSH2 0x492B JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD AND GT SWAP1 POP DUP2 ISZERO DUP1 PUSH2 0x2BC4 JUMPI POP DUP1 JUMPDEST PUSH2 0x2BE0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST DUP1 PUSH2 0x2BED DUP2 PUSH2 0x4CA6 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2923 JUMP JUMPDEST POP DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2C06 SWAP3 SWAP2 SWAP1 PUSH2 0x4E26 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 CALLER SWAP1 PUSH32 0x368EB521419FE880268B0D75C05EAA2DA7AE9CCF468BE86A848F7054366D2B9B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH2 0xF3F CALLER DUP4 DUP4 PUSH2 0x3BC7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2C84 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x79 DUP2 PUSH1 0xFF AND GT PUSH2 0xF3F JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2CC7 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH2 0x2CEB SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2C87 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2D1E JUMPI PUSH1 0x40 MLOAD PUSH4 0x8EEA8241 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D46 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2D6E JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO DUP1 PUSH2 0x2DC9 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD AND ISZERO JUMPDEST ISZERO PUSH2 0x2DE7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP11 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x2E1C DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2E6B DUP4 PUSH2 0x4C87 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2EBA DUP4 PUSH2 0x4E09 JUMP JUMPDEST DUP3 SLOAD PUSH2 0x100 SWAP3 SWAP1 SWAP3 EXP PUSH1 0xFF DUP2 DUP2 MUL NOT SWAP1 SWAP4 AND SWAP2 DUP4 AND MUL OR SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP9 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND SWAP3 POP PUSH2 0x2F09 DUP4 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x52819375A02768CB5083D7B729260C6DB2309FCB5C9161201ADA89D30D00D524 DUP8 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F76 SWAP3 SWAP2 SWAP1 PUSH1 0xFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2F91 DUP5 DUP5 DUP5 PUSH2 0x1941 JUMP JUMPDEST PUSH2 0x19CB DUP5 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2FCD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x2FEE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B1C6CA1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 SLOAD AND SWAP1 SUB PUSH2 0x3031 JUMPI PUSH1 0x40 MLOAD PUSH4 0x210F01D1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3107 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2EDB5FCF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2EDB5FCF SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3093 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30B7 SWAP2 SWAP1 PUSH2 0x4C54 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP9 AND DUP6 MSTORE SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 SWAP2 AND GT DUP2 ISZERO DUP1 PUSH2 0x30E8 JUMPI POP DUP1 JUMPDEST PUSH2 0x3104 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1967 SWAP1 PUSH2 0x4E73 JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xFF DUP1 DUP7 AND DUP6 MSTORE SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP2 PUSH2 0x3133 DUP4 PUSH2 0x4E09 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 PUSH1 0x17 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2F PUSH1 0xF8 SHL DUP2 MSTORE POP DUP4 PUSH1 0xFF AND PUSH20 0x0 PUSH4 0x6900A3AE SWAP1 SWAP2 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31A8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x31C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31ED SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x4FED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x173539B7B7 PUSH1 0xD9 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x321E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x505A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xF3F CALLER DUP3 DUP5 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x39EC JUMP JUMPDEST PUSH1 0x60 PUSH2 0xAC3 DUP3 PUSH2 0x3D80 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x327A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x32A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x5A78287A942B8EA0DA8734A4EB919DF11E564CC48301FFCB582DC8612D98208F SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x12 SLOAD PUSH1 0xF SLOAD PUSH1 0x0 SWAP2 PUSH1 0x64 SWAP2 PUSH2 0x330B SWAP2 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5109 JUMP JUMPDEST PUSH2 0x3315 SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x334A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x338D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x33B5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x342B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7473CC7 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH2 0x1F0C SWAP1 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x349B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3B9DB689 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0xD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x773B6D12 SWAP1 PUSH1 0x44 ADD PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x34EA PUSH2 0x3B48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3514 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x351D DUP2 PUSH2 0x3B75 JUMP JUMPDEST POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x3550 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH2 0x100 MUL PUSH2 0xFF00 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0xAC3 JUMPI POP PUSH2 0xAC3 DUP3 PUSH2 0x3E91 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0xAC3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD3E6A7AD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 AND SWAP1 PUSH4 0xD3E6A7AD SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3620 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3644 SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP4 MLOAD LT PUSH2 0x368D JUMPI PUSH1 0x40 MLOAD PUSH4 0x9DCCA733 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x18 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3759 JUMPI PUSH1 0x40 MLOAD PUSH4 0x38FB7D8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x38FB7D8B SWAP1 PUSH2 0x36DA SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CF3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x36F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x371B SWAP2 SWAP1 PUSH2 0x4D7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x3757 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8BAA579F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x80F2540B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x80F2540B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x6 PUSH1 0x11 SLOAD PUSH2 0x37CE SWAP2 SWAP1 PUSH2 0x4EAA JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH2 0x37DB SWAP2 SWAP1 PUSH2 0x4E60 JUMP JUMPDEST PUSH1 0x12 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x37EC SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 SWAP1 POP JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x399A JUMPI DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x3810 JUMPI PUSH2 0x3810 PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0x78 SUB PUSH2 0x3875 JUMPI PUSH1 0x78 PUSH1 0x0 MSTORE PUSH1 0x1A PUSH1 0x20 MSTORE PUSH32 0x382F0CE335A2F6D9FF5C37189F20A85F5E9319580268A4587D7C49525CD970D SLOAD PUSH2 0xBB8 LT ISZERO PUSH2 0x3870 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38C7 JUMP JUMPDEST PUSH2 0x1388 PUSH1 0x1A PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x388E JUMPI PUSH2 0x388E PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x38C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1A PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x38DD JUMPI PUSH2 0x38DD PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3907 SWAP1 PUSH2 0x4CA6 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP6 MLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x393B JUMPI PUSH2 0x393B PUSH2 0x4C3E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x3974 SWAP1 PUSH2 0x4C87 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x37F5 JUMP JUMPDEST POP DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x39AA SWAP2 SWAP1 PUSH2 0x5120 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0xBABE8F5E83E93AB103DDF917B4292A19335A5128B3530BEDD896A681CDD945E3 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x19 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x3A26 DUP6 DUP3 PUSH2 0x3FE7 JUMP JUMPDEST PUSH2 0x3A30 DUP2 DUP6 PUSH2 0x4001 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x10 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3A43 SWAP2 SWAP1 PUSH2 0x4DDD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x3A7C JUMPI PUSH2 0x3A7C DUP2 DUP5 DUP7 PUSH2 0x4051 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x3ABA JUMPI PUSH2 0x3A99 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x3AE9 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2241 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3BF9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH2 0x1C6A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x19CB JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x3CA0 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x5159 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x3CDB JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x3CD8 SWAP2 DUP2 ADD SWAP1 PUSH2 0x5196 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x3D44 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x3D09 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3D3C JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xFE2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D8B DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x3DA5 SWAP1 PUSH2 0x4CBF 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 0x3DD1 SWAP1 PUSH2 0x4CBF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3E1E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3DF3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3E1E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3E01 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x3E3C PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3E4E JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x3E80 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3E68 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3E89 DUP5 PUSH2 0x40B5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3EC2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0xAC3 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xAC3 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x3EF5 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x3FB7 JUMPI PUSH1 0x0 PUSH2 0x3F05 DUP5 PUSH2 0x358F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3F31 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x3F44 JUMPI POP PUSH2 0x3F42 DUP2 DUP5 PUSH2 0x343D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x3F6D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3FB5 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xF3F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x412A JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x4019 DUP3 DUP3 PUSH2 0x4F12 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8E1A15ABA9398E019F0B49DF1A4FDE98EE17AE345CB5F6B5E2C27F5033E8CE7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x405C DUP4 DUP4 DUP4 PUSH2 0x4141 JUMP JUMPDEST PUSH2 0x1FA8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x408A JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x40C0 DUP3 PUSH2 0x358F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x40D8 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x40F8 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x4123 JUMP JUMPDEST DUP1 PUSH2 0x4102 DUP5 PUSH2 0x41A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4113 SWAP3 SWAP2 SWAP1 PUSH2 0x51B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x4134 DUP4 DUP4 PUSH2 0x4236 JUMP JUMPDEST PUSH2 0x1FA8 PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x3C5E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3E89 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x417B JUMPI POP PUSH2 0x417B DUP5 DUP5 PUSH2 0x343D JUMP JUMPDEST DUP1 PUSH2 0x3E89 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x41B1 DUP4 PUSH2 0x429B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x41D0 JUMPI PUSH2 0x41D0 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x41FA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x4204 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4260 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426E DUP4 DUP4 PUSH1 0x0 PUSH2 0x3A4F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1967 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x42DA JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x4306 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x4324 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x433C JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x4350 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x4362 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAC3 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x439B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x440B JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x43EC JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4429 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x43D8 JUMP JUMPDEST PUSH1 0x20 DUP4 DUP3 SUB DUP2 DUP6 ADD MSTORE PUSH2 0x443C DUP3 DUP8 PUSH2 0x43D8 JUMP JUMPDEST DUP5 DUP2 SUB PUSH1 0x40 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE DUP3 DUP8 ADD SWAP4 POP SWAP1 DUP3 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4473 JUMPI DUP5 MLOAD ISZERO ISZERO DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4455 JUMP JUMPDEST POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x449C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4484 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x44BD DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4123 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x451B DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4567 JUMPI PUSH2 0x4567 PUSH2 0x4529 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4588 JUMPI PUSH2 0x4588 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x45A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x45B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x45CE PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST PUSH2 0x453F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x45ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI PUSH2 0x4602 DUP2 PUSH2 0x4592 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x45F1 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4630 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x464E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x465A DUP9 DUP4 DUP10 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4670 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x4693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x46A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x46C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x46D2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x46E0 PUSH1 0x20 DUP5 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x46FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x470A PUSH2 0x45C9 DUP4 PUSH2 0x456F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x460F JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x474C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x475A DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x45A8 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x472D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x477A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x47CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47D4 DUP7 PUSH2 0x4592 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP1 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x47F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4813 PUSH2 0x45C9 DUP3 PUSH2 0x456F JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x5 SWAP2 SWAP1 SWAP2 SHL DUP4 ADD DUP5 ADD SWAP1 DUP5 DUP2 ADD SWAP1 DUP13 DUP4 GT ISZERO PUSH2 0x4832 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x4850 JUMPI DUP5 CALLDATALOAD DUP3 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP1 DUP6 ADD SWAP1 PUSH2 0x4837 JUMP JUMPDEST SWAP9 POP POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x4868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4874 DUP11 DUP5 DUP12 ADD PUSH2 0x46E9 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x488A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4898 DUP9 DUP3 DUP10 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x48BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x48D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48DE DUP6 DUP3 DUP7 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x48FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x490A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x491A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x493D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP3 PUSH2 0x4592 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x495B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4966 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4988 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4994 DUP7 DUP3 DUP8 ADD PUSH2 0x45A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x351D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x49BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x49E2 JUMPI PUSH2 0x49E2 PUSH2 0x4529 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49FE PUSH2 0x45C9 DUP5 PUSH2 0x49C9 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x4A12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4A3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4123 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x49F0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4A5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4A73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A7F DUP7 DUP4 DUP8 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4A95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AA2 DUP6 DUP3 DUP7 ADD PUSH2 0x4A29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4AC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x4ACC DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4AE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4AF3 DUP7 DUP3 DUP8 ADD PUSH2 0x4768 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4B13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4B1E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x499E JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4B5A DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH2 0x4B68 PUSH1 0x20 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x4B78 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B86 PUSH1 0x60 DUP7 ADD PUSH2 0x4592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4BA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4BB2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x4BC2 DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4BE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x4BF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C04 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x49F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4C23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4C2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x4B2E DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x499E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x4C9D JUMPI PUSH2 0x4C9D PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x4CB8 JUMPI PUSH2 0x4CB8 PUSH2 0x4C71 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x4CD3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x23BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP4 ADD DUP2 SWAP1 MSTORE DUP6 MLOAD SWAP1 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP7 DUP2 ADD SWAP2 PUSH1 0xA0 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4D45 JUMPI DUP5 MLOAD PUSH1 0xFF AND DUP4 MSTORE SWAP4 DUP4 ADD SWAP4 SWAP2 DUP4 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x4D26 JUMP JUMPDEST POP POP DUP5 DUP2 SUB PUSH1 0x60 DUP7 ADD MSTORE DUP6 DUP2 MSTORE DUP6 DUP8 DUP4 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP8 ADD DUP4 ADD MSTORE PUSH1 0x1F SWAP1 SWAP6 ADD PUSH1 0x1F NOT AND SWAP1 SWAP5 ADD SWAP1 SWAP4 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x43A6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x4DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x47AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND DUP1 PUSH2 0x4E1C JUMPI PUSH2 0x4E1C PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x0 NOT ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP3 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4E55 JUMPI PUSH1 0xFF PUSH2 0x4E3F DUP4 PUSH2 0x4592 JUMP JUMPDEST AND DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4E2C JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x5468697320636172642068617320616E206F666665722E000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4EC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1FA8 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x4EF3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x131D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x4EFF JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4F2B JUMPI PUSH2 0x4F2B PUSH2 0x4529 JUMP JUMPDEST PUSH2 0x4F3F DUP2 PUSH2 0x4F39 DUP5 SLOAD PUSH2 0x4CBF JUMP JUMPDEST DUP5 PUSH2 0x4ECC JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x4F74 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x4F5C JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x131D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4FA3 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x4F84 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x4FC1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4FE3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4481 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4FFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5015 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x5026 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x5034 PUSH2 0x45C9 DUP3 PUSH2 0x49C9 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x5049 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x110F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4481 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 SLOAD PUSH2 0x5068 DUP2 PUSH2 0x4CBF JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x5080 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x5095 JUMPI PUSH2 0x50C4 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x50C4 JUMP JUMPDEST DUP11 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x50BB JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x50A2 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP6 MLOAD PUSH2 0x50D8 DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH2 0x4481 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50EB DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH2 0x4481 JUMP JUMPDEST DUP5 MLOAD SWAP2 ADD SWAP1 PUSH2 0x50FE DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xAC3 JUMPI PUSH2 0xAC3 PUSH2 0x4C71 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x514D JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x512E JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x518C SWAP1 DUP4 ADD DUP5 PUSH2 0x44A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4123 DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x51C5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x51D9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x4481 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xE0 BYTE 0xBF SMOD CALLDATASIZE PUSH5 0x11DE543430 0xD2 0xCE OR 0xBD SWAP14 DUP6 0xBB PUSH29 0x4732A9D9486B45E32B9C4A6764736F6C63430008140033000000000000 ","sourceMap":"1668:18927:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;737:181:21;;;;;;:::i;:::-;;:::i;:::-;;;565:14:29;;558:22;540:41;;528:2;513:18;737:181:21;;;;;;;;9625:936:20;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2365:89:6:-;;;:::i;:::-;;;;;;;:::i;3080:60:20:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3342:25:29;;;3330:2;3315:18;3080:60:20;3196:177:29;3497:154:6;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3727:32:29;;;3709:51;;3697:2;3682:18;3497:154:6;3563:203:29;3323:113:6;;;;;;:::i;:::-;;:::i;:::-;;5976:119:20;;;;;;:::i;:::-;;:::i;6099:251::-;;;;;;:::i;:::-;;:::i;10565:245::-;;;;;;:::i;:::-;;:::i;2598:49::-;;;;;;;;;;;;1911;;;;;-1:-1:-1;;;;;1911:49:20;;;8504:137;;;;;;:::i;:::-;;:::i;9323:157::-;;;;;;:::i;:::-;;:::i;:::-;;;7135:4:29;7123:17;;;7105:36;;7093:2;7078:18;9323:157:20;6963:184:29;5751:114:20;;;;;;:::i;:::-;;:::i;10997:386::-;;;;;;:::i;:::-;;:::i;16613:1564::-;;;;;;:::i;:::-;;:::i;2291:39::-;;;;;;4143:578:6;;;;;;:::i;:::-;;:::i;8218:142:20:-;;;;;;:::i;:::-;;:::i;10814:179::-;;;;;;:::i;:::-;;:::i;13284:897::-;;;;;;:::i;:::-;;:::i;8981:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9054:23:20;9035:4;9054:23;;;:10;:23;;;;;;;;;8981:101;1811:45;;;;;-1:-1:-1;;;;;1811:45:20;;;19966:573;;;;;;:::i;:::-;;:::i;2490:28::-;;;:::i;4787:132:6:-;;;;;;:::i;:::-;;:::i;561:314:9:-;;;;;;:::i;:::-;;:::i;2932:47:20:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12148:25:29;;;12204:2;12189:18;;12182:34;;;;12259:14;;12252:22;12232:18;;;12225:50;;;;12323:4;12311:17;;;12306:2;12291:18;;12284:45;12360:3;12345:19;;12338:35;12135:3;12120:19;2932:47:20;11899:480:29;19449:269:20;;;;;;:::i;:::-;;:::i;6862:110::-;;;;;;:::i;:::-;;:::i;2185:118:6:-;;;;;;:::i;:::-;;:::i;2204:34:20:-;;;;;;7955:139;;;;;;:::i;:::-;;:::i;2095:42::-;;;;;;;;;;;;5649:98;;;;;;:::i;:::-;;:::i;1920:208:6:-;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;8364:136:20:-;;;;;;:::i;:::-;;:::i;6976:150::-;;;;;;:::i;:::-;;:::i;2463:23::-;;;:::i;7294:165::-;;;;;;:::i;:::-;;:::i;9484:137::-;;;;;;:::i;:::-;;:::i;9086:104::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9160:25:20;9141:4;9160:25;;;:19;:25;;;;;;;;;9086:104;2169:31;;;;;;8827:150;;;;;;:::i;:::-;;:::i;2983:69::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8645:178;;;;;;:::i;:::-;;:::i;1638:85:0:-;1710:6;;-1:-1:-1;;;;;1710:6:0;1638:85;;15326:1165:20;;;:::i;2518:93:6:-;;;:::i;2651:53:20:-;;;;;;;;;;;;7463:212;;;;;;:::i;:::-;;:::i;3144:87::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;14185:1021;;;;;;:::i;:::-;;:::i;3718:144:6:-;;;;;;:::i;:::-;;:::i;19779:183:20:-;;;;;;:::i;:::-;;:::i;2051:40::-;;;;;;;;;12720:560;;;;;;:::i;:::-;;:::i;2375:43::-;;;;;;4985:208:6;;;;;;:::i;:::-;;:::i;7130:160:20:-;;;;;;:::i;:::-;;:::i;18181:878::-;;;;;;:::i;:::-;;:::i;566:165:21:-;;;;;;:::i;:::-;;:::i;6354:242:20:-;;;;;;:::i;:::-;;:::i;1860:47::-;;;;;-1:-1:-1;;;;;1860:47:20;;;2253:34;;;;;;9194:125;;;:::i;7679:137::-;;;;;;:::i;:::-;;:::i;6600:258::-;;;;;;:::i;:::-;;:::i;8098:116::-;;;;;;:::i;:::-;;:::i;2549:45::-;;;;;;;;;2141:24;;;;;;;;-1:-1:-1;;;;;2141:24:20;;;2522:23;;;:::i;3928:153:6:-;;;;;;:::i;:::-;;:::i;5869:103:20:-;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;7820:131:20:-;;;;;;:::i;:::-;;:::i;737:181:21:-;848:4;875:36;899:11;875:23;:36::i;:::-;868:43;737:181;-1:-1:-1;;737:181:21:o;9625:936:20:-;9774:16;;;9786:3;9774:16;;;;;;;;;9692:14;;;;;;9745:26;;9774:16;;;;;;;;;-1:-1:-1;;9824:16:20;;;9836:3;9824:16;;;;;;;;;9745:45;;-1:-1:-1;9796:25:20;;9824:16;-1:-1:-1;9824:16:20;;;;;;;;-1:-1:-1;;9869:15:20;;;9880:3;9869:15;;;;;;;;;9796:44;;-1:-1:-1;9846:20:20;;9869:15;-1:-1:-1;9869:15:20;;;;;;;;;;-1:-1:-1;9869:15:20;9846:38;;9890:11;9917:7;9912:248;9931:3;9926:1;:8;;;9912:248;;-1:-1:-1;;;;;9953:19:20;;9978:1;9953:19;;;:13;:19;;;;;;;;:22;;;;;;;;;;;;;:26;9949:205;;10012:1;9991:11;10003:5;9991:18;;;;;;;;;;:::i;:::-;:22;;;;:18;;;;;;;;;;:22;;;;-1:-1:-1;;;;;10043:19:20;;;;;;:13;:19;;;;;;:22;;;;;;;;;;10023:17;;10043:22;;;;10023:10;;:17;;;;;;;;;;:::i;:::-;:42;;;;:17;;;;;;;;;:42;10091:19;;:37;;-1:-1:-1;;;10091:37:20;;-1:-1:-1;;;;;17316:32:29;;;10091:37:20;;;17298:51:29;17385:17;;;17365:18;;;17358:45;10091:19:20;;;:28;;17271:18:29;;10091:37:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10075:6;10082:5;10075:13;;;;;;;;;;:::i;:::-;:53;;;:13;;;;;;;;;;;:53;10138:7;;;;:::i;:::-;;;;9949:205;9936:3;;;;:::i;:::-;;;;9912:248;;;;10166:30;10211:5;10199:18;;-1:-1:-1;;;;;10199:18:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10199:18:20;;10166:51;;10223:28;10266:5;10254:18;;-1:-1:-1;;;;;10254:18:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10254:18:20;;10223:49;;10278:29;10321:5;10310:17;;-1:-1:-1;;;;;10310:17:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10310:17:20;;10278:49;;10339:9;10334:160;10354:5;10350:9;;:1;:9;10334:160;;;10395:11;10407:1;10395:14;;;;;;;;:::i;:::-;;;;;;;10374:15;10390:1;10374:18;;;;;;;;:::i;:::-;;;;;;:35;;;;;;;;;;;10436:10;10447:1;10436:13;;;;;;;;:::i;:::-;;;;;;;10417;10431:1;10417:16;;;;;;;;:::i;:::-;;;;;;:32;;;;;;;;;;;10478:6;10485:1;10478:9;;;;;;;;:::i;:::-;;;;;;;10457:15;10473:1;10457:18;;;;;;;;:::i;:::-;:30;;;:18;;;;;;;;;;;:30;10361:3;;;;:::i;:::-;;;;10334:160;;;-1:-1:-1;10508:15:20;;10525:13;;-1:-1:-1;10508:15:20;;-1:-1:-1;9625:936:20;-1:-1:-1;;;;;;9625:936:20:o;2365:89:6:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:12;3394:8:6;:35::i;:::-;3323:113;;:::o;5976:119:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6049:41:::1;::::0;-1:-1:-1;;;6049:41:20;;:11:::1;:41;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;6049:24:20::1;::::0;::::1;::::0;18679:18:29;;6049:41:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5976:119:::0;:::o;6099:251::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6198:20;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;6226:19:::2;:64:::0;;-1:-1:-1;;;;;;6226:64:20::2;-1:-1:-1::0;;;;;6226:64:20;::::2;::::0;;::::2;::::0;;;6301:44:::2;::::0;::::2;::::0;-1:-1:-1;;6301:44:20::2;4644:1:::1;6099:251:::0;:::o;10565:245::-;10728:77;;-1:-1:-1;;;10728:77:20;;10699:14;;10728:15;;:32;;:77;;10761:10;;10773;;10785:8;;10795:9;;;;10728:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10721:84;10565:245;-1:-1:-1;;;;;10565:245:20:o;8504:137::-;4491:19;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;-1:-1:-1;;;;;8603:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;:33;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8504:137:::0;;:::o;9323:157::-;9427:5;9412:4;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;-1:-1:-1;;;;;;;9447:19:20;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:28:::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;9323:157::o;5751:114::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;5822:38:::1;::::0;-1:-1:-1;;;5822:38:20;;:10:::1;:38;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;5822:22:20::1;::::0;::::1;::::0;18679:18:29;;5822:38:20::1;18501:305:29::0;10997:386:20;11162:18;;;;;:60;;-1:-1:-1;11200:22:20;;;;;;11184:38;;;;11162:60;11159:92;;;11231:20;;-1:-1:-1;;;11231:20:20;;;;;;;;;;;11159:92;11263:9;11258:121;11278:13;11274:17;;:1;:17;11258:121;;;11306:66;11316:10;11328:11;11340:1;11328:14;;;;;;;;:::i;:::-;;;;;;;11344:9;11354:1;11344:12;;;;;;;;:::i;:::-;;;;;;;11358:10;;11369:1;11358:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;11306:9;:66::i;:::-;11293:3;;;;:::i;:::-;;;;11258:121;;;;10997:386;;;;;:::o;16613:1564::-;16692:10;16678:25;;;;:13;:25;;;;;;;;16704:3;16678:30;;;;;;;;;;:35;;16675:75;;16722:28;;-1:-1:-1;;;16722:28:20;;;;;;;;;;;16675:75;16801:10;16756:28;16787:25;;;:13;:25;;;;;;:46;;16815:11;;16787:46;:::i;:::-;16756:77;;16839:17;16891:2;16867:20;:26;16863:263;;16936:9;;16929:42;;-1:-1:-1;;;16929:42:20;;16965:4;16929:42;;;3709:51:29;16903:23:20;;16936:9;;;-1:-1:-1;;;;;16936:9:20;;16929:27;;3682:18:29;;16929:42:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16903:68;;17000:21;;16982:15;:39;:82;;;;17043:21;;17025:15;;:39;16982:82;16979:113;;;17073:19;;-1:-1:-1;;;17073:19:20;;;;;;;;;;;16979:113;17115:4;17100:19;;16895:231;16863:263;17154:19;;:54;;-1:-1:-1;;;17154:54:20;;17197:10;17154:54;;;3709:51:29;17132:18:20;;;;-1:-1:-1;;;;;17154:19:20;;;;:42;;3682:18:29;;17154:54:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;-1:-1:-1;17247:11:20;17219:25;17271:436;17291:17;17287:1;:21;17271:436;;;17336:10;17322:25;;;;:13;:25;;;;;;17348:11;;17360:1;17348:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17322:41;;;;;;;;;;;;;;;-1:-1:-1;17322:41:20;;;;;;;:46;;17319:86;;17377:28;;-1:-1:-1;;;17377:28:20;;;;;;;;;;;17319:86;17417:13;17413:198;;;17446:19;;-1:-1:-1;;;;;17446:19:20;:28;17475:10;17487:11;;17499:1;17487:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17446:56;;-1:-1:-1;;;;;;17446:56:20;;;;;;;-1:-1:-1;;;;;17316:32:29;;;17446:56:20;;;17298:51:29;17397:4;17385:17;17365:18;;;17358:45;17271:18;;17446:56:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17442:161;;;17533:10;17519:25;;;;:13;:25;;;;;17563:1;;17545:11;;17557:1;17545:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17519:41;;;;;;;;;;;;;;;-1:-1:-1;17519:41:20;;;:45;17516:76;;;17573:19;;-1:-1:-1;;;17573:19:20;;;;;;;;;;;17516:76;17632:10;17618:25;;;;:13;:25;;;;;;17644:11;;17656:1;17644:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17618:41;;;;;;;;;;;;;;;-1:-1:-1;17618:41:20;;;:43;;;;;;:41;:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;17689:3;;;;;;;17271:436;;;-1:-1:-1;17727:10:20;17713:25;;;;:13;:25;;;;;:46;;17742:17;;17713:25;:46;;17742:17;;17713:46;:::i;:::-;;;;-1:-1:-1;;17770:36:20;;;;17794:11;;;;17770:36;:::i;:::-;;;;;;;;;;17782:10;;17770:36;;;;;17817:12;17813:360;;;17853:10;17839:25;;;;:13;:25;;;;;;;;17865:3;17839:30;;;;;;;:32;;:30;:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;17879:44;17888:10;17900:14;17879:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17916:3;17921:1;17879:8;:44::i;:::-;17978:21;;17959:15;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;18014:9:20;;18046:21;;18007:61;;-1:-1:-1;;;18007:61:20;;18034:10;18007:61;;;22041:51:29;22108:18;;;22101:34;;;;18014:9:20;;;;-1:-1:-1;;;;;18014:9:20;;18007:26;;22014:18:29;;18007:61:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18077:20:20;;:47;;-1:-1:-1;;;18077:47:20;;18113:10;18077:47;;;3709:51:29;-1:-1:-1;;;;;18077:20:20;;;;:35;;3682:18:29;;18077:47:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18137:29:20;;18164:1;;-1:-1:-1;18152:10:20;;-1:-1:-1;18137:29:20;;;;;16669:1508;;;;16613:1564;;:::o;4143:578:6:-;-1:-1:-1;;;;;4237:16:6;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:6;;4306:1;4276:33;;;3709:51:29;3682:18;;4276:33:6;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:12;4562:7:6;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:6;:13;-1:-1:-1;;;;;4610:21:6;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:6;;-1:-1:-1;;;;;22404:15:29;;;4654:50:6;;;22386:34:29;22436:18;;;22429:34;;;22499:15;;22479:18;;;22472:43;22321:18;;4654:50:6;22146:375:29;4606:109:6;4223:498;4143:578;;;:::o;8218:142:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;8309:22:::1;:46:::0;;-1:-1:-1;;8309:46:20::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8218:142::o;10814:179::-;10934:54;10944:10;10956;10968:8;10978:9;;10934;:54::i;13284:897::-;13362:2;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;13389:10:::1;13375:25;::::0;;;:13:::1;:25;::::0;;;;;;;:37:::1;::::0;;::::1;::::0;;;;;;;::::1;:42:::0;;13372:82:::1;;13426:28;;-1:-1:-1::0;;;13426:28:20::1;;;;;;;;;;;13372:82;13469:10;-1:-1:-1::0;;;;;13463:16:20;::::1;::::0;13460:45:::1;;13488:17;;-1:-1:-1::0;;;13488:17:20::1;;;;;;;;;;;13460:45;13516:34;::::0;;;::::1;;;13512:529;;;13576:19;::::0;:52:::1;::::0;-1:-1:-1;;;13576:52:20;;13605:10:::1;13576:52;::::0;::::1;17298:51:29::0;17397:4;17385:17;;17365:18;;;17358:45;13560:13:20::1;::::0;-1:-1:-1;;;;;13576:19:20::1;::::0;:28:::1;::::0;17271:18:29;;13576:52:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13672:10;13636:19;13658:25:::0;;;:13:::1;:25;::::0;;;;;;;:37:::1;::::0;;::::1;::::0;;;;;;;;13560:68;;-1:-1:-1;13698:1:20::1;13658:37:::0;::::1;:41;13979:9:::0;::::1;::::0;:27:::1;;;13992:14;13979:27;13971:63;;;;-1:-1:-1::0;;;13971:63:20::1;;;;;;;:::i;:::-;13552:489;;13512:529;14061:10;14047:25;::::0;;;:13:::1;:25;::::0;;;;;;;:37:::1;::::0;;::::1;::::0;;;;;;:39;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;::::0;;::::1;::::0;;;::::1;;::::0;;::::1;;::::0;;::::1;::::0;;::::1;;;::::0;;;-1:-1:-1;;;;;14092:17:20;::::1;-1:-1:-1::0;14092:17:20;;;:13:::1;:17;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:31;;;;::::1;::::0;-1:-1:-1;14092:31:20::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14161:2;-1:-1:-1::0;;;;;14134:42:20::1;14149:10;-1:-1:-1::0;;;;;14134:42:20::1;;14165:10;14134:42;;;;;7135:4:29::0;7123:17;;;;7105:36;;7093:2;7078:18;;6963:184;14134:42:20::1;;;;;;;;13284:897:::0;;;:::o;19966:573::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;20077:18:::1;::::0;:45:::1;::::0;-1:-1:-1;;;20077:45:20;;::::1;::::0;::::1;18706:25:29::0;;;-1:-1:-1;;;;;18767:32:29;;;18747:18;;;18740:60;20077:18:20;;::::1;::::0;:27:::1;::::0;18679:18:29;;20077:45:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20179:1;20165:11;;:15;;;;:::i;:::-;20151:11;;:29;;;;:::i;:::-;20132:15;;:48;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;20195:9:20::1;::::0;-1:-1:-1;20191:342:20::1;20208:8;:15;20206:1;:17;20191:342;;;20251:8;20260:1;20251:11;;;;;;;;:::i;:::-;;;;;;;:18;;20266:3;20251:18;:88;;20335:4;20303:16;:29;20320:8;20329:1;20320:11;;;;;;;;:::i;:::-;;;;;;;20303:29;;;;;;;;;;;;;;:36;20251:88;;;20289:3;20272:21;::::0;:16:::1;:21;::::0;;;20296:4:::1;-1:-1:-1::0;20251:88:20::1;20243:148;;;::::0;-1:-1:-1;;;20243:148:20;;23713:2:29;20243:148:20::1;::::0;::::1;23695:21:29::0;23752:2;23732:18;;;23725:30;23791:32;23771:18;;;23764:60;23841:18;;20243:148:20::1;23511:354:29::0;20243:148:20::1;20405:16;:29;20422:8;20431:1;20422:11;;;;;;;;:::i;:::-;;;;;;;20405:29;;;;;;;;;;;;;;:31;;;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;20469:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;20489:11;;20469:19;;;20489:8;;20498:1;;20489:11;::::1;;;;;:::i;:::-;;;;;;;20469:32;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;20225:3;;;;;:::i;:::-;;;;20191:342;;2490:28:::0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4787:132:6:-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;561:314:9:-;826:42;842:1;846:7;735:10:12;4562:7:6;:34::i;19449:269:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;19546:6:::1;19519:24;19537:4;19519:9;:24::i;:::-;:33;19516:64;;;19561:19;;-1:-1:-1::0;;;19561:19:20::1;;;;;;;;;;;19516:64;19605:6;19586:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;19624:9:20::1;::::0;19617:46:::1;::::0;-1:-1:-1;;;19617:46:20;;19644:10:::1;19617:46;::::0;::::1;22041:51:29::0;22108:18;;;22101:34;;;19624:9:20;;;::::1;-1:-1:-1::0;;;;;19624:9:20::1;::::0;19617:26:::1;::::0;22014:18:29;;19617:46:20::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19674:39:20::1;::::0;19706:6;;19694:10:::1;::::0;19674:39:::1;::::0;;;::::1;19449:269:::0;:::o;6862:110::-;4357:18;;-1:-1:-1;;;;;4357:18:20;4335:10;:41;4332:77;;4385:24;;-1:-1:-1;;;4385:24:20;;;;;;;;;;;4332:77;6961:6:::1;6942:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;6862:110:20:o;2185:118:6:-;2248:7;2274:22;2288:7;2274:13;:22::i;7955:139:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;8044:34:::1;:45:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;8044:45:20;;::::1;::::0;;;::::1;::::0;;7955:139::o;5649:98::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;5712:30:::1;::::0;-1:-1:-1;;;5712:30:20;;:10:::1;:30;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;5712:19:20::1;::::0;::::1;::::0;18679:18:29;;5712:30:20::1;18501:305:29::0;1920:208:6;1983:7;-1:-1:-1;;;;;2006:19:6;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:6;;2075:1;2048:30;;;3709:51:29;3682:18;;2048:30:6;3563:203:29;2002:87:6;-1:-1:-1;;;;;;2105:16:6;;;;;:9;:16;;;;;;;1920:208::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;8364:136:20:-;4491:19;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;-1:-1:-1;;;;;8462:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;:33;;;;::::1;::::0;::::1;::::0;::::1;:::i;6976:150::-:0;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7048:6:::1;7058:1;7048:11:::0;7045:45:::1;;7068:22;;-1:-1:-1::0;;;7068:22:20::1;;;;;;;;;;;7045:45;7096:16;:25:::0;6976:150::o;2463:23::-;;;;;;;:::i;7294:165::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7381:3:::1;7372:6;:12;;;7369:46;;;7393:22;;-1:-1:-1::0;;;7393:22:20::1;;;;;;;;;;;7369:46;7421:24;:33:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;7421:33:20;;::::1;::::0;;;::::1;::::0;;7294:165::o;9484:137::-;9575:7;9560:4;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;-1:-1:-1;;;;;9597:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;-1:-1:-1;4760:1:20::1;9484:137:::0;;;;:::o;8827:150::-;8917:8;8902:4;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;-1:-1:-1;;;;;;;8940:19:20;;;::::1;8971:1;8940:19:::0;;;:13:::1;:19;::::0;;;;;;;:28:::1;::::0;;::::1;::::0;;;;;;;;::::1;:32:::0;;;8827:150::o;8645:178::-;4491:19;;8760:8;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;-1:-1:-1;;;;;;8783:19:20;;;::::1;8817:1;8783:19:::0;;;:13:::1;:19;::::0;;;;;;;:31:::1;::::0;;::::1;::::0;;;;;;;;::::1;:35:::0;;;8645:178::o;15326:1165::-;15450:10;15365:4;15436:25;;;:13;:25;;;;;;;;15462:3;15436:30;;;;;;;;;;:35;;15433:75;;15480:28;;-1:-1:-1;;;15480:28:20;;;;;;;;;;;15433:75;15535:16;;15517:15;;:34;15514:68;;;15560:22;;-1:-1:-1;;;15560:22:20;;;;;;;;;;;15514:68;15622:9;;15615:42;;-1:-1:-1;;;15615:42:20;;15651:4;15615:42;;;3709:51:29;15589:23:20;;15622:9;;;-1:-1:-1;;;;;15622:9:20;;15615:27;;3682:18:29;;15615:42:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15589:68;;15684:16;;15666:15;:34;15663:65;;;15709:19;;-1:-1:-1;;;15709:19:20;;;;;;;;;;;15663:65;15795:15;15826:7;15821:206;15840:3;15835:1;:8;;;15821:206;;15872:10;15858:25;;;;:13;:25;;;;;;;;:28;;;;;;;;;;;;:33;;15854:90;;15916:4;15903:17;;15930:5;;15854:90;15965:10;15951:25;;;;:13;:25;;;;;;;;:28;;;;;;;;;;:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16009:3;;;;;;;15821:206;;;;16035:10;16032:41;;;16054:19;;-1:-1:-1;;;16054:19:20;;;;;;;;;;;16032:41;16113:39;16122:10;16134:9;16113:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16145:3;16150:1;16113:8;:39::i;:::-;16196:9;;16228:16;;16189:56;;-1:-1:-1;;;16189:56:20;;16216:10;16189:56;;;22041:51:29;22108:18;;;22101:34;;;;16196:9:20;;;;-1:-1:-1;;;;;16196:9:20;;16189:26;;22014:18:29;;16189:56:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16270:16;;16251:15;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;16318:19:20;;:50;;-1:-1:-1;;;16318:50:20;;16357:10;16318:50;;;3709:51:29;16293:22:20;;-1:-1:-1;;;;;16318:19:20;;:38;;3682:18:29;;16318:50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16293:75;;16378:17;16374:54;;16404:24;;-1:-1:-1;;;16404:24:20;;;;;;;;;;;16374:54;16440:29;;16467:1;;16455:10;;16440:29;;;;;16482:4;16475:11;;;;;15326:1165;:::o;2518:93:6:-;2565:13;2597:7;2590:14;;;;;:::i;7463:212:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7563:9:::1;:22;7575:10:::0;7563:9;:22:::1;:::i;:::-;-1:-1:-1::0;7591:14:20::1;:32;7608:15:::0;7591:14;:32:::1;:::i;:::-;;7654:15;7634:36;;;;;;:::i;:::-;;;;;;;;7642:10;7634:36;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;7463:212:::0;;:::o;14185:1021::-;14274:2;-1:-1:-1;;;;;4707:22:20;;4704:50;;4738:16;;-1:-1:-1;;;4738:16:20;;;;;;;;;;;4704:50;14293:10:::1;-1:-1:-1::0;;;;;14287:16:20;::::1;::::0;14284:45:::1;;14312:17;;-1:-1:-1::0;;;14312:17:20::1;;;;;;;;;;;14284:45;14341:9;14336:811;14352:22:::0;;::::1;14336:811;;;14406:10;14392:25;::::0;;;:13:::1;:25;::::0;;;;;14418:11;;14430:1;14418:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14392:41;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14392:41:20;;;;;;::::1;:46:::0;;14389:86:::1;;14447:28;;-1:-1:-1::0;;;14447:28:20::1;;;;;;;;;;;14389:86;14497:10;14483:25;::::0;;;:13:::1;:25;::::0;;;;;14509:11;;14521:1;14509:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14483:41;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14483:41:20;;;:43;;;;::::1;::::0;:41;:43:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14534:13;:17;14548:2;-1:-1:-1::0;;;;;14534:17:20::1;-1:-1:-1::0;;;;;14534:17:20::1;;;;;;;;;;;;:33;14552:11;;14564:1;14552:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14534:33;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14534:33:20;;;:35;;;;::::1;::::0;:33;:35:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14582:34;;;;;;;;;;;14578:563;;;14644:19;::::0;14628:13:::1;::::0;-1:-1:-1;;;;;14644:19:20::1;:28;14673:10;14685:11:::0;;14697:1;14685:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14644:56;::::0;-1:-1:-1;;;;;;14644:56:20::1;::::0;;;;;;-1:-1:-1;;;;;17316:32:29;;;14644:56:20::1;::::0;::::1;17298:51:29::0;17397:4;17385:17;17365:18;;;17358:45;17271:18;;14644:56:20::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14746:10;14710:19;14732:25:::0;;;:13:::1;:25;::::0;;;;14628:72;;-1:-1:-1;14710:19:20;14776:1:::1;::::0;14710:19;14758:11;;14770:1;14758:14;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14732:41;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14732:41:20;;::::1;:45;::::0;-1:-1:-1;15077:9:20;::::1;::::0;:27:::1;;;15090:14;15077:27;15069:63;;;;-1:-1:-1::0;;;15069:63:20::1;;;;;;;:::i;:::-;14618:523;;14578:563;14376:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14336:811;;;;15189:11;;15157:44;;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;-1:-1:-1;;;;;15157:44:20;::::1;::::0;15173:10:::1;::::0;15157:44:::1;::::0;;;::::1;14185:1021:::0;;;;:::o;3718:144:6:-;3803:52;735:10:12;3836:8:6;3846;3803:18;:52::i;19779:183:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;19845:7:::1;19841:117;19857:3;19854:1;:6;;;19841:117;;-1:-1:-1::0;;;;;19925:19:20;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;:22:::1;::::0;;::::1;::::0;;;;;;:24;;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;19862:3;;;;;:::i;:::-;;;;19841:117;;12720:560:::0;4491:19;;-1:-1:-1;;;;;4491:19:20;4469:10;:42;4466:74;;4520:20;;-1:-1:-1;;;4520:20:20;;;;;;;;;;;4466:74;12886:4;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;12909:2:::0;-1:-1:-1;;;;;4707:22:20;::::2;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::2;;;;;;;;;;;4704:50;-1:-1:-1::0;;;;;12922:19:20;::::3;;::::0;;;:13:::3;:19;::::0;;;;;;;:35:::3;::::0;;::::3;::::0;;;;;;;;::::3;:40:::0;;:80:::3;;-1:-1:-1::0;;;;;;12966:17:20;::::3;;::::0;;;:13:::3;:17;::::0;;;;;;;:31:::3;::::0;;::::3;::::0;;;;;;;;::::3;:36:::0;12922:80:::3;12919:120;;;13011:28;;-1:-1:-1::0;;;13011:28:20::3;;;;;;;;;;;12919:120;-1:-1:-1::0;;;;;13046:19:20;::::3;;::::0;;;:13:::3;:19;::::0;;;;;;;:35:::3;::::0;;::::3;::::0;;;;;;:37;;;;::::3;::::0;::::3;::::0;::::3;:::i;:::-;::::0;;::::3;::::0;;;::::3;;::::0;;::::3;;::::0;;::::3;::::0;;::::3;;;::::0;;;-1:-1:-1;;;;;13089:17:20;::::3;-1:-1:-1::0;13089:17:20;;;:13:::3;:17;::::0;;;;;;;:33;;::::3;::::0;;;;;;;:35;;;;::::3;::::0;-1:-1:-1;13089:35:20::3;::::0;::::3;:::i;:::-;::::0;;::::3;::::0;;;::::3;;::::0;;::::3;;::::0;;::::3;::::0;;::::3;;;::::0;;;-1:-1:-1;;;;;13130:17:20;::::3;-1:-1:-1::0;13130:17:20;;;:13:::3;:17;::::0;;;;;;;:31;;::::3;::::0;;;;;;;:33;;;;::::3;::::0;-1:-1:-1;13130:33:20::3;::::0;::::3;:::i;:::-;::::0;;::::3;::::0;;;::::3;;::::0;;::::3;;::::0;;::::3;::::0;;::::3;;;::::0;;;-1:-1:-1;;;;;13169:19:20;::::3;-1:-1:-1::0;13169:19:20;;;:13:::3;:19;::::0;;;;;;;:33;;::::3;::::0;;;;;;;:35;;;;::::3;::::0;-1:-1:-1;13169:35:20::3;::::0;::::3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;13242:2;-1:-1:-1::0;;;;;13216:59:20::3;13236:4;-1:-1:-1::0;;;;;13216:59:20::3;;13246:14;13262:12;13216:59;;;;;;26564:4:29::0;26552:17;;;26534:36;;26606:17;;26601:2;26586:18;;26579:45;26522:2;26507:18;;26368:262;13216:59:20::3;;;;;;;;4760:1:::2;4546::::1;12720:560:::0;;;;:::o;4985:208:6:-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;7130:160:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7207:6:::1;7217:1;7207:11:::0;7204:45:::1;;7227:22;;-1:-1:-1::0;;;7227:22:20::1;;;;;;;;;;;7204:45;7255:21;:30:::0;7130:160::o;18181:878::-;18244:10;18230:25;;;;:13;:25;;;;;;;;:34;;;;;;;;;;;;:39;;18227:79;;18278:28;;-1:-1:-1;;;18278:28:20;;;;;;;;;;;18227:79;18317:30;;;;;;;18313:519;;;18373:19;;:49;;-1:-1:-1;;;18373:49:20;;18402:10;18373:49;;;17298:51:29;17397:4;17385:17;;17365:18;;;17358:45;18357:13:20;;-1:-1:-1;;;;;18373:19:20;;:28;;17271:18:29;;18373:49:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18466:10;18430:19;18452:25;;;:13;:25;;;;;;;;:34;;;;;;;;;;;;18357:65;;-1:-1:-1;18489:1:20;18452:34;;:38;18770:9;;;:27;;;18783:14;18770:27;18762:63;;;;-1:-1:-1;;;18762:63:20;;;;;;;:::i;:::-;18349:483;;18313:519;18852:10;18838:25;;;;:13;:25;;;;;;;;:34;;;;;;;;;;:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;18881:17;18938:9;18950:10;;;;;;;;;;;;;-1:-1:-1;;;18950:10:20;;;18968:7;:16;;;;;;:18;;;;;;;;;;;;;3342:25:29;;3330:2;3315:18;;3196:177;18968:18:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18968:18:20;;;;;;;;;;;;:::i;:::-;18989:14;;;;;;;;;;;;;-1:-1:-1;;;18989:14:20;;;18915:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18881:129;;19017:37;19026:10;19038:3;19043:7;19017:37;;19052:1;19017:8;:37::i;566:165:21:-;665:13;701:23;716:7;701:14;:23::i;6354:242:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6451:19;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;6477:18:::2;:61:::0;;-1:-1:-1;;;;;;6477:61:20::2;-1:-1:-1::0;;;;;6477:61:20;::::2;::::0;;::::2;::::0;;;6549:42:::2;::::0;::::2;::::0;-1:-1:-1;;6549:42:20::2;4644:1:::1;6354:242:::0;:::o;9194:125::-;9292:15;;9265:24;;9242:7;;9311:3;;9265:42;;9292:15;9265:24;;;;;:42;:::i;:::-;9264:50;;;;:::i;:::-;9257:57;;9194:125;:::o;7679:137::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7767:33:::1;:44:::0;;-1:-1:-1;;7767:44:20::1;::::0;::::1;;::::0;;;::::1;::::0;;7679:137::o;6600:258::-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;6701:21;-1:-1:-1;;;;;4707:22:20;::::1;4704:50;;4738:16;;-1:-1:-1::0;;;4738:16:20::1;;;;;;;;;;;4704:50;6729:20:::2;:67:::0;;-1:-1:-1;;;;;;6729:67:20::2;-1:-1:-1::0;;;;;6729:67:20;::::2;::::0;;::::2;::::0;;;6807:46:::2;::::0;::::2;::::0;-1:-1:-1;;6807:46:20::2;4644:1:::1;6600:258:::0;:::o;8098:116::-;4357:18;;-1:-1:-1;;;;;4357:18:20;4335:10;:41;4332:77;;4385:24;;-1:-1:-1;;;4385:24:20;;;;;;;;;;;4332:77;8183:11:::1;:26:::0;8098:116::o;2522:23::-;;;;;;;:::i;3928:153:6:-;-1:-1:-1;;;;;4039:25:6;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;5869:103:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;5934:33:::1;::::0;-1:-1:-1;;;5934:33:20;;:11:::1;:33;::::0;::::1;18706:25:29::0;-1:-1:-1;;;;;18767:32:29;;18747:18;;;18740:60;5934:21:20::1;::::0;::::1;::::0;18679:18:29;;5934:33:20::1;18501:305:29::0;2543:215:0;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;3709:51:29::0;3682:18;;2672:31:0::1;3563:203:29::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;7820:131:20:-;4606:10;4588:17;:29;;;:10;:29;;;;;;;;4584:54;;4626:12;;-1:-1:-1;;;4626:12:20;;;;;;;;;;;4584:54;7905:30:::1;:41:::0;;;::::1;;;;-1:-1:-1::0;;7905:41:20;;::::1;::::0;;;::::1;::::0;;7820:131::o;937:207:10:-;1039:4;-1:-1:-1;;;;;;1062:35:10;;-1:-1:-1;;;1062:35:10;;:75;;;1101:36;1125:11;1101:23;:36::i;16146:241:6:-;16209:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;16271:88;;16317:31;;-1:-1:-1;;;16317:31:6;;;;;3342:25:29;;;3315:18;;16317:31:6;3196:177:29;14426:120:6;14506:33;14515:2;14519:7;14528:4;14534;14506:8;:33::i;11387:1329:20:-;11528:18;;:43;;-1:-1:-1;;;11528:43:20;;;;;3342:25:29;;;-1:-1:-1;;;;;11528:51:20;;;;:18;;:31;;3315:18:29;;11528:43:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11528:51:20;;11525:76;;11588:13;;-1:-1:-1;;;11588:13:20;;;;;;;;;;;11525:76;11661:2;11642:8;:15;:21;11639:52;;11672:19;;-1:-1:-1;;;11672:19:20;;;;;;;;;;;11639:52;11702:33;;;;11698:342;;;11843:117;;-1:-1:-1;;;11843:117:20;;11826:14;;11843:15;;:32;;:117;;11885:10;;11905;;11925:8;;11943:9;;;;11843:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11979:27:20;;;;;;:19;:27;;;;;;11826:134;;-1:-1:-1;11979:27:20;;11975:58;;12015:18;;-1:-1:-1;;;12015:18:20;;;;;;;;;;;11975:58;11737:303;11698:342;12046:18;;:45;;-1:-1:-1;;;12046:45:20;;;;;18706:25:29;;;-1:-1:-1;;;;;18767:32:29;;;18747:18;;;18740:60;12046:18:20;;;;:27;;18679:18:29;;12046:45:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12176:1;12162:11;;:15;;;;:::i;:::-;12148:11;;:29;;;;:::i;:::-;12129:15;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;12217:9:20;;-1:-1:-1;12212:450:20;12232:8;:15;12228:1;:19;12212:450;;;12261:8;12270:1;12261:11;;;;;;;;:::i;:::-;;;;;;;:18;;12276:3;12261:18;12258:192;;12310:3;12293:21;;:16;:21;;;;12317:4;-1:-1:-1;12290:59:20;;;12330:19;;-1:-1:-1;;;12330:19:20;;;;;;;;;;;12290:59;12258:192;;;12409:4;12377:16;:29;12394:8;12403:1;12394:11;;;;;;;;:::i;:::-;;;;;;;12377:29;;;;;;;;;;;;;;:36;12374:67;;;12422:19;;-1:-1:-1;;;12422:19:20;;;;;;;;;;;12374:67;12457:16;:29;12474:8;12483:1;12474:11;;;;;;;;:::i;:::-;;;;;;;12457:29;;;;;;;;;;;;;;:31;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12539:19:20;;;;;;:13;:19;;;;;12559:11;;12539:19;;;12559:8;;12568:1;;12559:11;;;;;;:::i;:::-;;;;;;;12539:32;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;12644:3;;;;;;;12212:450;;;;12700:10;12690:8;12673:38;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;12673:38:20;;;;;;;;11387:1329;;;;;:::o;19063:341::-;19178:16;;19160:15;19200:16;;;:7;:16;;;;;:34;;;19240:23;;;:33;;;19279:22;;:31;;-1:-1:-1;;19279:31:20;;;;;;;;;19316:23;19326:3;19178:16;19316:9;:23::i;:::-;19345:27;19358:7;19367:4;19345:12;:27::i;:::-;19398:1;19378:16;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;19063:341:20:o;8838:795:6:-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:6;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:6;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:6;;;9157:256;-1:-1:-1;;;;;9427:16:6;;;9423:107;;-1:-1:-1;;;;;9487:13:6;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:6;-1:-1:-1;;;;;9540:21:6;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:6:o;1796:162:0:-;1710:6;;-1:-1:-1;;;;;1710:6:0;735:10:12;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:12;1901:40:0;;;3709:51:29;3682:18;;1901:40:0;3563:203:29;2912:187:0;3004:6;;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;;3052:40;;3004:6;;;3020:17;3004:6;;3052:40;;2985:16;;3052:40;2975:124;2912:187;:::o;15599:312:6:-;-1:-1:-1;;;;;15706:22:6;;15702:91;;15751:31;;-1:-1:-1;;;15751:31:6;;-1:-1:-1;;;;;3727:32:29;;15751:31:6;;;3709:51:29;3682:18;;15751:31:6;3563:203:29;15702:91:6;-1:-1:-1;;;;;15802:25:6;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15802:46:6;;;;;;;;;;15863:41;;540::29;;;15863::6;;513:18:29;15863:41:6;400:187:29;16926:782:6;-1:-1:-1;;;;;17042:14:6;;;:18;17038:664;;17080:71;;-1:-1:-1;;;17080:71:6;;-1:-1:-1;;;;;17080:36:6;;;;;:71;;735:10:12;;17131:4:6;;17137:7;;17146:4;;17080:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17080:71:6;;;;;;;;-1:-1:-1;;17080:71:6;;;;;;;;;;;;:::i;:::-;;;17076:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17389:6;:13;17406:1;17389:18;17385:293;;17438:25;;-1:-1:-1;;;17438:25:6;;-1:-1:-1;;;;;3727:32:29;;17438:25:6;;;3709:51:29;3682:18;;17438:25:6;3563:203:29;17385:293:6;17630:6;17624:13;17615:6;17611:2;17607:15;17600:38;17076:616;-1:-1:-1;;;;;;17198:51:6;;-1:-1:-1;;;17198:51:6;17194:130;;17280:25;;-1:-1:-1;;;17280:25:6;;-1:-1:-1;;;;;3727:32:29;;17280:25:6;;;3709:51:29;3682:18;;17280:25:6;3563:203:29;1210:593:10;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;-1:-1:-1;1341:23:10;1367:19;;;:10;:19;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;3250:9:6;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;1417:10:10;1396:31;;1506:4;1500:18;1522:1;1500:23;1496:70;;-1:-1:-1;1546:9:10;1210:593;-1:-1:-1;;1210:593:10:o;1496:70::-;1665:23;;:27;1661:95;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;1210:593;;;:::o;1661:95::-;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;1210:593;-1:-1:-1;;;;1210:593:10:o;1561:300:6:-;1663:4;-1:-1:-1;;;;;;1698:40:6;;-1:-1:-1;;;1698:40:6;;:104;;-1:-1:-1;;;;;;;1754:48:6;;-1:-1:-1;;;1754:48:6;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:16;;;1818:36:6;762:146:16;14728:662:6;14888:9;:31;;;-1:-1:-1;;;;;;14901:18:6;;;;14888:31;14884:460;;;14935:13;14951:22;14965:7;14951:13;:22::i;:::-;14935:38;-1:-1:-1;;;;;;15101:18:6;;;;;;:35;;;15132:4;-1:-1:-1;;;;;15123:13:6;:5;-1:-1:-1;;;;;15123:13:6;;;15101:35;:69;;;;;15141:29;15158:5;15165:4;15141:16;:29::i;:::-;15140:30;15101:69;15097:142;;;15197:27;;-1:-1:-1;;;15197:27:6;;-1:-1:-1;;;;;3727:32:29;;15197:27:6;;;3709:51:29;3682:18;;15197:27:6;3563:203:29;15097:142:6;15257:9;15253:81;;;15311:7;15307:2;-1:-1:-1;;;;;15291:28:6;15300:5;-1:-1:-1;;;;;15291:28:6;;;;;;;;;;;15253:81;14921:423;14884:460;-1:-1:-1;;15354:24:6;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15354:29:6;-1:-1:-1;;;;;15354:29:6;;;;;;;;;;14728:662::o;10633:100::-;10700:26;10710:2;10714:7;10700:26;;;;;;;;;;;;:9;:26::i;1922:167:10:-;2013:19;;;;:10;:19;;;;;:31;2035:9;2013:19;:31;:::i;:::-;-1:-1:-1;2059:23:10;;3342:25:29;;;2059:23:10;;3330:2:29;3315:18;2059:23:10;;;;;;;1922:167;;:::o;7082:368:6:-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:6;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:6;;;;;3342:25:29;;;3315:18;;7298:31:6;3196:177:29;7248:186:6;7375:44;;-1:-1:-1;;;7375:44:6;;-1:-1:-1;;;;;22059:32:29;;7375:44:6;;;22041:51:29;22108:18;;;22101:34;;;22014:18;;7375:44:6;21867:274:29;2677:255:6;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:6:o;10954:182::-;11048:18;11054:2;11058:7;11048:5;:18::i;:::-;11076:53;11107:1;11111:2;11115:7;11124:4;11076:22;:53::i;6376:272::-;6479:4;-1:-1:-1;;;;;6514:21:6;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:6;:5;-1:-1:-1;;;;;6552:16:6;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:6:o;637:698:13:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:13;-1:-1:-1;794:41:13;-1:-1:-1;955:28:13;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:13;-1:-1:-1;;;1175:2:13;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:13;1010:282;1256:21;-1:-1:-1;1312:6:13;637:698;-1:-1:-1;;;637:698:13:o;9955:327:6:-;-1:-1:-1;;;;;10022:16:6;;10018:87;;10061:33;;-1:-1:-1;;;10061:33:6;;10091:1;10061:33;;;3709:51:29;3682:18;;10061:33:6;3563:203:29;10018:87:6;10114:21;10138:32;10146:2;10150:7;10167:1;10138:7;:32::i;:::-;10114:56;-1:-1:-1;;;;;;10184:27:6;;;10180:96;;10234:31;;-1:-1:-1;;;10234:31:6;;10262:1;10234:31;;;3709:51:29;3682:18;;10234:31:6;3563:203:29;12214:916:18;12267:7;;-1:-1:-1;;;12342:17:18;;12338:103;;-1:-1:-1;;;12379:17:18;;;-1:-1:-1;12424:2:18;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:18;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:18;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:18;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:18;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:18;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:18:o;14:131:29:-;-1:-1:-1;;;;;;88:32:29;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:131::-;-1:-1:-1;;;;;667:31:29;;657:42;;647:70;;713:1;710;703:12;728:247;787:6;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;895:9;882:23;914:31;939:5;914:31;:::i;980:444::-;1031:3;1069:5;1063:12;1096:6;1091:3;1084:19;1122:4;1151:2;1146:3;1142:12;1135:19;;1188:2;1181:5;1177:14;1209:1;1219:180;1233:6;1230:1;1227:13;1219:180;;;1298:13;;1313:4;1294:24;1282:37;;1339:12;;;;1374:15;;;;1255:1;1248:9;1219:180;;;-1:-1:-1;1415:3:29;;980:444;-1:-1:-1;;;;;980:444:29:o;1429:1006::-;1750:2;1739:9;1732:21;1713:4;1776:54;1826:2;1815:9;1811:18;1803:6;1776:54;:::i;:::-;1849:2;1899:9;1891:6;1887:22;1882:2;1871:9;1867:18;1860:50;1933:42;1968:6;1960;1933:42;:::i;:::-;2011:22;;;2006:2;1991:18;;1984:50;2083:13;;2105:22;;;2181:15;;;;-1:-1:-1;2143:15:29;;;;2214:1;2224:185;2238:6;2235:1;2232:13;2224:185;;;2313:13;;2306:21;2299:29;2287:42;;2384:15;;;;2349:12;;;;2260:1;2253:9;2224:185;;;-1:-1:-1;2426:3:29;;1429:1006;-1:-1:-1;;;;;;;;1429:1006:29:o;2440:250::-;2525:1;2535:113;2549:6;2546:1;2543:13;2535:113;;;2625:11;;;2619:18;2606:11;;;2599:39;2571:2;2564:10;2535:113;;;-1:-1:-1;;2682:1:29;2664:16;;2657:27;2440:250::o;2695:271::-;2737:3;2775:5;2769:12;2802:6;2797:3;2790:19;2818:76;2887:6;2880:4;2875:3;2871:14;2864:4;2857:5;2853:16;2818:76;:::i;:::-;2948:2;2927:15;-1:-1:-1;;2923:29:29;2914:39;;;;2955:4;2910:50;;2695:271;-1:-1:-1;;2695:271:29:o;2971:220::-;3120:2;3109:9;3102:21;3083:4;3140:45;3181:2;3170:9;3166:18;3158:6;3140:45;:::i;3378:180::-;3437:6;3490:2;3478:9;3469:7;3465:23;3461:32;3458:52;;;3506:1;3503;3496:12;3458:52;-1:-1:-1;3529:23:29;;3378:180;-1:-1:-1;3378:180:29:o;3771:315::-;3839:6;3847;3900:2;3888:9;3879:7;3875:23;3871:32;3868:52;;;3916:1;3913;3906:12;3868:52;3955:9;3942:23;3974:31;3999:5;3974:31;:::i;:::-;4024:5;4076:2;4061:18;;;;4048:32;;-1:-1:-1;;;3771:315:29:o;4091:127::-;4152:10;4147:3;4143:20;4140:1;4133:31;4183:4;4180:1;4173:15;4207:4;4204:1;4197:15;4223:275;4294:2;4288:9;4359:2;4340:13;;-1:-1:-1;;4336:27:29;4324:40;;-1:-1:-1;;;;;4379:34:29;;4415:22;;;4376:62;4373:88;;;4441:18;;:::i;:::-;4477:2;4470:22;4223:275;;-1:-1:-1;4223:275:29:o;4503:181::-;4561:4;-1:-1:-1;;;;;4586:6:29;4583:30;4580:56;;;4616:18;;:::i;:::-;-1:-1:-1;4661:1:29;4657:14;4673:4;4653:25;;4503:181::o;4689:156::-;4755:20;;4815:4;4804:16;;4794:27;;4784:55;;4835:1;4832;4825:12;4784:55;4689:156;;;:::o;4850:662::-;4902:5;4955:3;4948:4;4940:6;4936:17;4932:27;4922:55;;4973:1;4970;4963:12;4922:55;5009:6;4996:20;5035:4;5059:58;5075:41;5113:2;5075:41;:::i;:::-;5059:58;:::i;:::-;5151:15;;;5237:1;5233:10;;;;5221:23;;5217:32;;;5182:12;;;;5261:15;;;5258:35;;;5289:1;5286;5279:12;5258:35;5325:2;5317:6;5313:15;5337:146;5353:6;5348:3;5345:15;5337:146;;;5419:21;5436:3;5419:21;:::i;:::-;5407:34;;5461:12;;;;5370;;5337:146;;;-1:-1:-1;5501:5:29;4850:662;-1:-1:-1;;;;;;4850:662:29:o;5517:881::-;5628:6;5636;5644;5652;5705:2;5693:9;5684:7;5680:23;5676:32;5673:52;;;5721:1;5718;5711:12;5673:52;5757:9;5744:23;5734:33;;5818:2;5807:9;5803:18;5790:32;-1:-1:-1;;;;;5882:2:29;5874:6;5871:14;5868:34;;;5898:1;5895;5888:12;5868:34;5921:59;5972:7;5963:6;5952:9;5948:22;5921:59;:::i;:::-;5911:69;;6033:2;6022:9;6018:18;6005:32;5989:48;;6062:2;6052:8;6049:16;6046:36;;;6078:1;6075;6068:12;6046:36;6116:8;6105:9;6101:24;6091:34;;6163:7;6156:4;6152:2;6148:13;6144:27;6134:55;;6185:1;6182;6175:12;6134:55;6225:2;6212:16;6251:2;6243:6;6240:14;6237:34;;;6267:1;6264;6257:12;6237:34;6312:7;6307:2;6298:6;6294:2;6290:15;6286:24;6283:37;6280:57;;;6333:1;6330;6323:12;6280:57;5517:881;;;;-1:-1:-1;;6364:2:29;6356:11;;-1:-1:-1;;;5517:881:29:o;6641:317::-;6707:6;6715;6768:2;6756:9;6747:7;6743:23;6739:32;6736:52;;;6784:1;6781;6774:12;6736:52;6823:9;6810:23;6842:31;6867:5;6842:31;:::i;:::-;6892:5;-1:-1:-1;6916:36:29;6948:2;6933:18;;6916:36;:::i;:::-;6906:46;;6641:317;;;;;:::o;7152:904::-;7214:5;7267:3;7260:4;7252:6;7248:17;7244:27;7234:55;;7285:1;7282;7275:12;7234:55;7321:6;7308:20;7347:4;7371:58;7387:41;7425:2;7387:41;:::i;7371:58::-;7463:15;;;7549:1;7545:10;;;;7533:23;;7529:32;;;7494:12;;;;7573:15;;;7570:35;;;7601:1;7598;7591:12;7570:35;7637:2;7629:6;7625:15;7649:378;7665:6;7660:3;7657:15;7649:378;;;7751:3;7738:17;-1:-1:-1;;;;;7774:11:29;7771:35;7768:125;;;7847:1;7876:2;7872;7865:14;7768:125;7918:66;7980:3;7975:2;7961:11;7953:6;7949:24;7945:33;7918:66;:::i;:::-;7906:79;;-1:-1:-1;8005:12:29;;;;7682;;7649:378;;8061:374;8131:8;8141:6;8195:3;8188:4;8180:6;8176:17;8172:27;8162:55;;8213:1;8210;8203:12;8162:55;-1:-1:-1;8236:20:29;;-1:-1:-1;;;;;8268:30:29;;8265:50;;;8311:1;8308;8301:12;8265:50;8348:4;8340:6;8336:17;8324:29;;8408:3;8401:4;8391:6;8388:1;8384:14;8376:6;8372:27;8368:38;8365:47;8362:67;;;8425:1;8422;8415:12;8362:67;8061:374;;;;;:::o;8440:1571::-;8635:6;8643;8651;8659;8667;8720:3;8708:9;8699:7;8695:23;8691:33;8688:53;;;8737:1;8734;8727:12;8688:53;8760:27;8777:9;8760:27;:::i;:::-;8750:37;;8806:2;8859;8848:9;8844:18;8831:32;-1:-1:-1;;;;;8923:2:29;8915:6;8912:14;8909:34;;;8939:1;8936;8929:12;8909:34;8977:6;8966:9;8962:22;8952:32;;9022:7;9015:4;9011:2;9007:13;9003:27;8993:55;;9044:1;9041;9034:12;8993:55;9080:2;9067:16;9103:58;9119:41;9157:2;9119:41;:::i;9103:58::-;9195:15;;;9277:1;9273:10;;;;9265:19;;9261:28;;;9226:12;;;;9301:19;;;9298:39;;;9333:1;9330;9323:12;9298:39;9357:11;;;;9377:142;9393:6;9388:3;9385:15;9377:142;;;9459:17;;9447:30;;9410:12;;;;9497;;;;9377:142;;;9538:5;-1:-1:-1;;;9596:2:29;9581:18;;9568:32;;-1:-1:-1;9612:16:29;;;9609:36;;;9641:1;9638;9631:12;9609:36;9664:71;9727:7;9716:8;9705:9;9701:24;9664:71;:::i;:::-;9654:81;;9788:2;9777:9;9773:18;9760:32;9744:48;;9817:2;9807:8;9804:16;9801:36;;;9833:1;9830;9823:12;9801:36;;;9872:79;9943:7;9932:8;9921:9;9917:24;9872:79;:::i;:::-;8440:1571;;;;-1:-1:-1;8440:1571:29;;-1:-1:-1;9970:8:29;;9846:105;8440:1571;-1:-1:-1;;;8440:1571:29:o;10016:442::-;10100:6;10108;10161:2;10149:9;10140:7;10136:23;10132:32;10129:52;;;10177:1;10174;10167:12;10129:52;10217:9;10204:23;-1:-1:-1;;;;;10242:6:29;10239:30;10236:50;;;10282:1;10279;10272:12;10236:50;10321:77;10390:7;10381:6;10370:9;10366:22;10321:77;:::i;:::-;10417:8;;10295:103;;-1:-1:-1;10016:442:29;-1:-1:-1;;;;10016:442:29:o;10463:456::-;10540:6;10548;10556;10609:2;10597:9;10588:7;10584:23;10580:32;10577:52;;;10625:1;10622;10615:12;10577:52;10664:9;10651:23;10683:31;10708:5;10683:31;:::i;:::-;10733:5;-1:-1:-1;10790:2:29;10775:18;;10762:32;10803:33;10762:32;10803:33;:::i;:::-;10463:456;;10855:7;;-1:-1:-1;;;10909:2:29;10894:18;;;;10881:32;;10463:456::o;10924:182::-;10981:6;11034:2;11022:9;11013:7;11009:23;11005:32;11002:52;;;11050:1;11047;11040:12;11002:52;11073:27;11090:9;11073:27;:::i;11347:547::-;11447:6;11455;11463;11516:2;11504:9;11495:7;11491:23;11487:32;11484:52;;;11532:1;11529;11522:12;11484:52;11571:9;11558:23;11590:31;11615:5;11590:31;:::i;:::-;11640:5;-1:-1:-1;11692:2:29;11677:18;;11664:32;;-1:-1:-1;11747:2:29;11732:18;;11719:32;-1:-1:-1;;;;;11763:30:29;;11760:50;;;11806:1;11803;11796:12;11760:50;11829:59;11880:7;11871:6;11860:9;11856:22;11829:59;:::i;:::-;11819:69;;;11347:547;;;;;:::o;12384:118::-;12470:5;12463:13;12456:21;12449:5;12446:32;12436:60;;12492:1;12489;12482:12;12507:241;12563:6;12616:2;12604:9;12595:7;12591:23;12587:32;12584:52;;;12632:1;12629;12622:12;12584:52;12671:9;12658:23;12690:28;12712:5;12690:28;:::i;12753:187::-;12802:4;-1:-1:-1;;;;;12827:6:29;12824:30;12821:56;;;12857:18;;:::i;:::-;-1:-1:-1;12923:2:29;12902:15;-1:-1:-1;;12898:29:29;12929:4;12894:40;;12753:187::o;12945:338::-;13010:5;13039:53;13055:36;13084:6;13055:36;:::i;13039:53::-;13030:62;;13115:6;13108:5;13101:21;13155:3;13146:6;13141:3;13137:16;13134:25;13131:45;;;13172:1;13169;13162:12;13131:45;13221:6;13216:3;13209:4;13202:5;13198:16;13185:43;13275:1;13268:4;13259:6;13252:5;13248:18;13244:29;13237:40;12945:338;;;;;:::o;13288:222::-;13331:5;13384:3;13377:4;13369:6;13365:17;13361:27;13351:55;;13402:1;13399;13392:12;13351:55;13424:80;13500:3;13491:6;13478:20;13471:4;13463:6;13459:17;13424:80;:::i;13515:543::-;13603:6;13611;13664:2;13652:9;13643:7;13639:23;13635:32;13632:52;;;13680:1;13677;13670:12;13632:52;13720:9;13707:23;-1:-1:-1;;;;;13790:2:29;13782:6;13779:14;13776:34;;;13806:1;13803;13796:12;13776:34;13829:50;13871:7;13862:6;13851:9;13847:22;13829:50;:::i;:::-;13819:60;;13932:2;13921:9;13917:18;13904:32;13888:48;;13961:2;13951:8;13948:16;13945:36;;;13977:1;13974;13967:12;13945:36;;14000:52;14044:7;14033:8;14022:9;14018:24;14000:52;:::i;:::-;13990:62;;;13515:543;;;;;:::o;14063:577::-;14156:6;14164;14172;14225:2;14213:9;14204:7;14200:23;14196:32;14193:52;;;14241:1;14238;14231:12;14193:52;14280:9;14267:23;14299:31;14324:5;14299:31;:::i;:::-;14349:5;-1:-1:-1;14405:2:29;14390:18;;14377:32;-1:-1:-1;;;;;14421:30:29;;14418:50;;;14464:1;14461;14454:12;14418:50;14503:77;14572:7;14563:6;14552:9;14548:22;14503:77;:::i;:::-;14063:577;;14599:8;;-1:-1:-1;14477:103:29;;-1:-1:-1;;;;14063:577:29:o;14645:382::-;14710:6;14718;14771:2;14759:9;14750:7;14746:23;14742:32;14739:52;;;14787:1;14784;14777:12;14739:52;14826:9;14813:23;14845:31;14870:5;14845:31;:::i;:::-;14895:5;-1:-1:-1;14952:2:29;14937:18;;14924:32;14965:30;14924:32;14965:30;:::i;:::-;15014:7;15004:17;;;14645:382;;;;;:::o;15032:529::-;15114:6;15122;15130;15138;15191:3;15179:9;15170:7;15166:23;15162:33;15159:53;;;15208:1;15205;15198:12;15159:53;15247:9;15234:23;15266:31;15291:5;15266:31;:::i;:::-;15316:5;-1:-1:-1;15340:36:29;15372:2;15357:18;;15340:36;:::i;:::-;15330:46;;15428:2;15417:9;15413:18;15400:32;15441:33;15466:7;15441:33;:::i;:::-;15493:7;-1:-1:-1;15519:36:29;15551:2;15536:18;;15519:36;:::i;:::-;15509:46;;15032:529;;;;;;;:::o;15566:795::-;15661:6;15669;15677;15685;15738:3;15726:9;15717:7;15713:23;15709:33;15706:53;;;15755:1;15752;15745:12;15706:53;15794:9;15781:23;15813:31;15838:5;15813:31;:::i;:::-;15863:5;-1:-1:-1;15920:2:29;15905:18;;15892:32;15933:33;15892:32;15933:33;:::i;:::-;15985:7;-1:-1:-1;16039:2:29;16024:18;;16011:32;;-1:-1:-1;16094:2:29;16079:18;;16066:32;-1:-1:-1;;;;;16110:30:29;;16107:50;;;16153:1;16150;16143:12;16107:50;16176:22;;16229:4;16221:13;;16217:27;-1:-1:-1;16207:55:29;;16258:1;16255;16248:12;16207:55;16281:74;16347:7;16342:2;16329:16;16324:2;16320;16316:11;16281:74;:::i;:::-;16271:84;;;15566:795;;;;;;;:::o;16603:388::-;16671:6;16679;16732:2;16720:9;16711:7;16707:23;16703:32;16700:52;;;16748:1;16745;16738:12;16700:52;16787:9;16774:23;16806:31;16831:5;16806:31;:::i;:::-;16856:5;-1:-1:-1;16913:2:29;16898:18;;16885:32;16926:33;16885:32;16926:33;:::i;16996:127::-;17057:10;17052:3;17048:20;17045:1;17038:31;17088:4;17085:1;17078:15;17112:4;17109:1;17102:15;17414:245;17481:6;17534:2;17522:9;17513:7;17509:23;17505:32;17502:52;;;17550:1;17547;17540:12;17502:52;17582:9;17576:16;17601:28;17623:5;17601:28;:::i;17664:127::-;17725:10;17720:3;17716:20;17713:1;17706:31;17756:4;17753:1;17746:15;17780:4;17777:1;17770:15;17796:175;17833:3;17877:4;17870:5;17866:16;17906:4;17897:7;17894:17;17891:43;;17914:18;;:::i;:::-;17963:1;17950:15;;17796:175;-1:-1:-1;;17796:175:29:o;17976:135::-;18015:3;18036:17;;;18033:43;;18056:18;;:::i;:::-;-1:-1:-1;18103:1:29;18092:13;;17976:135::o;18116:380::-;18195:1;18191:12;;;;18238;;;18259:61;;18313:4;18305:6;18301:17;18291:27;;18259:61;18366:2;18358:6;18355:14;18335:18;18332:38;18329:161;;18412:10;18407:3;18403:20;18400:1;18393:31;18447:4;18444:1;18437:15;18475:4;18472:1;18465:15;18811:1099;-1:-1:-1;;;;;19148:32:29;;19130:51;;19200:2;19218:18;;;19211:34;;;19117:3;19276:2;19261:18;;19254:31;;;19334:13;;19102:19;;;19356:22;;;19069:4;;19436:15;;;;19168:3;19394:19;;;19069:4;19479:180;19493:6;19490:1;19487:13;19479:180;;;19558:13;;19573:4;19554:24;19542:37;;19634:15;;;;19599:12;;;;19515:1;19508:9;19479:180;;;19483:3;;19704:9;19699:3;19695:19;19690:2;19679:9;19675:18;19668:47;19736:6;19731:3;19724:19;19787:6;19779;19774:2;19769:3;19765:12;19752:42;19837:1;19814:16;;;19810:25;;19803:36;19894:2;19873:15;;;-1:-1:-1;;19869:29:29;19860:39;;;19856:48;;;;18811:1099;-1:-1:-1;;;;;;;18811:1099:29:o;19915:251::-;19985:6;20038:2;20026:9;20017:7;20013:23;20009:32;20006:52;;;20054:1;20051;20044:12;20006:52;20086:9;20080:16;20105:31;20130:5;20105:31;:::i;20171:521::-;20248:4;20254:6;20314:11;20301:25;20408:2;20404:7;20393:8;20377:14;20373:29;20369:43;20349:18;20345:68;20335:96;;20427:1;20424;20417:12;20335:96;20454:33;;20506:20;;;-1:-1:-1;;;;;;20538:30:29;;20535:50;;;20581:1;20578;20571:12;20535:50;20614:4;20602:17;;-1:-1:-1;20645:14:29;20641:27;;;20631:38;;20628:58;;;20682:1;20679;20672:12;20697:125;20762:9;;;20783:10;;;20780:36;;;20796:18;;:::i;20827:184::-;20897:6;20950:2;20938:9;20929:7;20925:23;20921:32;20918:52;;;20966:1;20963;20956:12;20918:52;-1:-1:-1;20989:16:29;;20827:184;-1:-1:-1;20827:184:29:o;21016:178::-;21053:3;21097:4;21090:5;21086:16;21121:7;21111:41;;21132:18;;:::i;:::-;-1:-1:-1;;21168:20:29;;21016:178;-1:-1:-1;;21016:178:29:o;21199:530::-;21366:3;21397;21444:6;21366:3;21478:224;21492:6;21489:1;21486:13;21478:224;;;21585:4;21559:24;21576:6;21559:24;:::i;:::-;21555:35;21541:50;;21614:4;21640:14;;;;21677:15;;;;;21514:1;21507:9;21478:224;;;-1:-1:-1;21718:5:29;;21199:530;-1:-1:-1;;;;;21199:530:29:o;21734:128::-;21801:9;;;21822:11;;;21819:37;;;21836:18;;:::i;22526:347::-;22728:2;22710:21;;;22767:2;22747:18;;;22740:30;22806:25;22801:2;22786:18;;22779:53;22864:2;22849:18;;22526:347::o;23289:217::-;23329:1;23355;23345:132;;23399:10;23394:3;23390:20;23387:1;23380:31;23434:4;23431:1;23424:15;23462:4;23459:1;23452:15;23345:132;-1:-1:-1;23491:9:29;;23289:217::o;23996:545::-;24098:2;24093:3;24090:11;24087:448;;;24134:1;24159:5;24155:2;24148:17;24204:4;24200:2;24190:19;24274:2;24262:10;24258:19;24255:1;24251:27;24245:4;24241:38;24310:4;24298:10;24295:20;24292:47;;;-1:-1:-1;24333:4:29;24292:47;24388:2;24383:3;24379:12;24376:1;24372:20;24366:4;24362:31;24352:41;;24443:82;24461:2;24454:5;24451:13;24443:82;;;24506:17;;;24487:1;24476:13;24443:82;;24717:1352;24843:3;24837:10;-1:-1:-1;;;;;24862:6:29;24859:30;24856:56;;;24892:18;;:::i;:::-;24921:97;25011:6;24971:38;25003:4;24997:11;24971:38;:::i;:::-;24965:4;24921:97;:::i;:::-;25073:4;;25137:2;25126:14;;25154:1;25149:663;;;;25856:1;25873:6;25870:89;;;-1:-1:-1;25925:19:29;;;25919:26;25870:89;-1:-1:-1;;24674:1:29;24670:11;;;24666:24;24662:29;24652:40;24698:1;24694:11;;;24649:57;25972:81;;25119:944;;25149:663;23943:1;23936:14;;;23980:4;23967:18;;-1:-1:-1;;25185:20:29;;;25303:236;25317:7;25314:1;25311:14;25303:236;;;25406:19;;;25400:26;25385:42;;25498:27;;;;25466:1;25454:14;;;;25333:19;;25303:236;;;25307:3;25567:6;25558:7;25555:19;25552:201;;;25628:19;;;25622:26;-1:-1:-1;;25711:1:29;25707:14;;;25723:3;25703:24;25699:37;25695:42;25680:58;25665:74;;25552:201;-1:-1:-1;;;;;25799:1:29;25783:14;;;25779:22;25766:36;;-1:-1:-1;24717:1352:29:o;26074:289::-;26205:3;26243:6;26237:13;26259:66;26318:6;26313:3;26306:4;26298:6;26294:17;26259:66;:::i;:::-;26341:16;;;;;26074:289;-1:-1:-1;;26074:289:29:o;26825:649::-;26905:6;26958:2;26946:9;26937:7;26933:23;26929:32;26926:52;;;26974:1;26971;26964:12;26926:52;27007:9;27001:16;-1:-1:-1;;;;;27032:6:29;27029:30;27026:50;;;27072:1;27069;27062:12;27026:50;27095:22;;27148:4;27140:13;;27136:27;-1:-1:-1;27126:55:29;;27177:1;27174;27167:12;27126:55;27206:2;27200:9;27231:49;27247:32;27276:2;27247:32;:::i;27231:49::-;27303:2;27296:5;27289:17;27343:7;27338:2;27333;27329;27325:11;27321:20;27318:33;27315:53;;;27364:1;27361;27354:12;27315:53;27377:67;27441:2;27436;27429:5;27425:14;27420:2;27416;27412:11;27377:67;:::i;27479:1421::-;27747:3;27776:1;27809:6;27803:13;27839:36;27865:9;27839:36;:::i;:::-;27894:1;27911:18;;;27938:133;;;;28085:1;28080:356;;;;27904:532;;27938:133;-1:-1:-1;;27971:24:29;;27959:37;;28044:14;;28037:22;28025:35;;28016:45;;;-1:-1:-1;27938:133:29;;28080:356;28111:6;28108:1;28101:17;28141:4;28186:2;28183:1;28173:16;28211:1;28225:165;28239:6;28236:1;28233:13;28225:165;;;28317:14;;28304:11;;;28297:35;28360:16;;;;28254:10;;28225:165;;;28229:3;;;28419:6;28414:3;28410:16;28403:23;;27904:532;;;;;28467:6;28461:13;28483:68;28542:8;28537:3;28530:4;28522:6;28518:17;28483:68;:::i;:::-;28616:13;;28573:18;;;28638:70;28616:13;28573:18;28685:4;28673:17;;28638:70;:::i;:::-;28772:13;;28727:20;;;28794:67;28772:13;28727:20;28841:4;28829:17;;28794:67;:::i;:::-;28877:17;;27479:1421;-1:-1:-1;;;;;;27479:1421:29:o;28905:168::-;28978:9;;;29009;;29026:15;;;29020:22;;29006:37;28996:71;;29047:18;;:::i;29078:550::-;29292:13;;29235:3;;29266;;29345:4;29372:15;;;29235:3;29415:186;29429:6;29426:1;29423:13;29415:186;;;29496:13;;29511:4;29492:24;29478:39;;29539:14;;;;29576:15;;;;29451:1;29444:9;29415:186;;;-1:-1:-1;29617:5:29;;29078:550;-1:-1:-1;;;;;;29078:550:29:o;29633:489::-;-1:-1:-1;;;;;29902:15:29;;;29884:34;;29954:15;;29949:2;29934:18;;29927:43;30001:2;29986:18;;29979:34;;;30049:3;30044:2;30029:18;;30022:31;;;29827:4;;30070:46;;30096:19;;30088:6;30070:46;:::i;:::-;30062:54;29633:489;-1:-1:-1;;;;;;29633:489:29:o;30127:249::-;30196:6;30249:2;30237:9;30228:7;30224:23;30220:32;30217:52;;;30265:1;30262;30255:12;30217:52;30297:9;30291:16;30316:30;30340:5;30316:30;:::i;30381:496::-;30560:3;30598:6;30592:13;30614:66;30673:6;30668:3;30661:4;30653:6;30649:17;30614:66;:::i;:::-;30743:13;;30702:16;;;;30765:70;30743:13;30702:16;30812:4;30800:17;;30765:70;:::i;:::-;30851:20;;30381:496;-1:-1:-1;;;;30381:496:29:o"},"methodIdentifiers":{"DAI_TOKEN()":"e606df87","addOwner(address)":"7065cb48","addSigner(address)":"eb12d61e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnCards(uint8[])":"20965a5f","changeMaxPacksToOpenAtOnce(uint8)":"241a08fe","changePackPrice(uint256)":"e1883c6e","changeRequireOfferValidationInMint(bool)":"f98fd283","changeRequireOfferValidationInTransfer(bool)":"68cc5bc1","changeRequireOpenPackSignerValidation(bool)":"dbfc05cf","emergencyWithdraw(uint256)":"5312ea8e","exchangeCardsOffer(address,uint8,address,uint8)":"ad1684fa","finishAlbum()":"9038f414","gammaOffersContract()":"d322b563","gammaPacksContract()":"2f9e026a","gammaTicketsContract()":"14cca36a","getApproved(uint256)":"081812fc","getBurnedCardQttyByUser(address)":"7cf86b72","getCardQuantityByUser(address,uint8)":"1585cc4e","getCardsByUser(address)":"0435dcaf","getLotteryPrize()":"d780c477","hasCard(address,uint8)":"886eb60f","hasCardByOffer(address,uint8)":"8bf670c8","isApprovedForAll(address,address)":"e985e9c5","isOwner(address)":"2f54bf6e","isSigner(address)":"7df73e27","mintCard(uint8)":"bf400a6a","name()":"06fdde03","openPack(uint256,uint8[],bytes)":"267b841d","openPacks(uint8,uint256[],uint8[][],bytes[])":"203335f6","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","removeCardByOffer(address,uint8)":"7155a3ac","removeOwner(address)":"173825d9","removeSigner(address)":"0e316ab7","renounceOwnership()":"715018a6","restoreCardByOffer(address,uint8)":"155e2f92","s_baseUri()":"e8a7e31d","s_burnedCards(address)":"07b2e246","s_cards(uint256)":"4c03cd0b","s_cardsByUser(address,uint8)":"9ff26efd","s_cardsInventory(uint256)":"88e0ef80","s_lotteryPrizePercentage()":"6d0af178","s_mainAlbumPrize()":"21a7c6b0","s_mainUri()":"79e8dadc","s_maxPacksToOpenAtOnce()":"ab535160","s_packPrice()":"656bd0ad","s_prizesBalance()":"d7093f40","s_requireOfferValidationInMint()":"147baac7","s_requireOfferValidationInTransfer()":"9a5613ad","s_requireOpenPackSignerValidation()":"e4ae0b9b","s_secondaryAlbumPrize()":"b3526185","s_secondaryUri()":"4039327e","s_tokenIdCounter()":"82d8a118","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setGammaOffersContract(address)":"128916dc","setGammaPacksContract(address)":"cafaa473","setGammaTicketsContract(address)":"ddb975e8","setLotteryPrizePercentage(uint8)":"7ce65f7b","setMainAlbumPrize(uint256)":"7232d7d4","setPrizesBalance(uint256)":"5e31ce48","setSecondaryAlbumPrize(uint256)":"ba6c0fbc","setUris(string,string)":"9c7f707f","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","testAddCards(address)":"a419811d","testOpenPack(address,uint256,uint8[])":"30f5cc58","tokenURI(uint256)":"c87b56dd","transferCard(address,uint8)":"2ca699e7","transferCards(address,uint8[])":"a1af8ad4","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","verifyPackSigner(uint256,uint8[],bytes)":"1306952c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daiTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaPacksContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaOffersContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_baseUri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_signer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CannotRemoveUserOffers\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CardLimitExceeded\",\"type\":\"error\"},{\"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\"},{\"inputs\":[],\"name\":\"IncorrectPrizeAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientCards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCardNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustCompleteAlbum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotYourPack\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyGammaPacksContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOffersContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserDoesNotHaveCardOrAlbum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongPacksQuantity\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"albumClass\",\"type\":\"uint8\"}],\"name\":\"AlbumCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"cardTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"albumTokenId\",\"type\":\"uint256\"}],\"name\":\"CardPasted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"CardTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8[]\",\"name\":\"cardsNumber\",\"type\":\"uint8[]\"}],\"name\":\"CardsBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8[]\",\"name\":\"cardNumber\",\"type\":\"uint8[]\"}],\"name\":\"CardsTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EmergencyWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaOffersContract\",\"type\":\"address\"}],\"name\":\"NewGammaOffersContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaPacksContract\",\"type\":\"address\"}],\"name\":\"NewGammaPacksContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaTicketContract\",\"type\":\"address\"}],\"name\":\"NewGammaTicketsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"}],\"name\":\"NewSigner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"newMainUri\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"newSecondaryUri\",\"type\":\"string\"}],\"name\":\"NewUris\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumberFrom\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumberTo\",\"type\":\"uint8\"}],\"name\":\"OfferCardsExchanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"}],\"name\":\"PackOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DAI_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newSigner\",\"type\":\"address\"}],\"name\":\"addSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8[]\",\"name\":\"cardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"burnCards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_maxPacksToOpenAtOnce\",\"type\":\"uint8\"}],\"name\":\"changeMaxPacksToOpenAtOnce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPackPrice\",\"type\":\"uint256\"}],\"name\":\"changePackPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"changeRequireOfferValidationInMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"changeRequireOfferValidationInTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"required\",\"type\":\"bool\"}],\"name\":\"changeRequireOpenPackSignerValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberFrom\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberTo\",\"type\":\"uint8\"}],\"name\":\"exchangeCardsOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finishAlbum\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaOffersContract\",\"outputs\":[{\"internalType\":\"contract IgammaOffersContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaPacksContract\",\"outputs\":[{\"internalType\":\"contract IgammaPacksContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaTicketsContract\",\"outputs\":[{\"internalType\":\"contract IgammaTicketsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getBurnedCardQttyByUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNum\",\"type\":\"uint8\"}],\"name\":\"getCardQuantityByUser\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getCardsByUser\",\"outputs\":[{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"uint8[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLotteryPrize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNum\",\"type\":\"uint8\"}],\"name\":\"hasCard\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"has\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasCardByOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"has\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isSigner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNum\",\"type\":\"uint8\"}],\"name\":\"mintCard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"openPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"packsQuantity\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"packsNumber\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[][]\",\"name\":\"packsData\",\"type\":\"uint8[][]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"openPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerToRemove\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_signerToRemove\",\"type\":\"address\"}],\"name\":\"removeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"restoreCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_baseUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"s_burnedCards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"s_cards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"pasted\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"completion\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"s_cardsByUser\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"amount\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cardNumber\",\"type\":\"uint256\"}],\"name\":\"s_cardsInventory\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_lotteryPrizePercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_mainAlbumPrize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_mainUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_maxPacksToOpenAtOnce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_packPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_prizesBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_requireOfferValidationInMint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_requireOfferValidationInTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_requireOpenPackSignerValidation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_secondaryAlbumPrize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_secondaryUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_tokenIdCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaOffersContract\",\"type\":\"address\"}],\"name\":\"setGammaOffersContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaPacksContract\",\"type\":\"address\"}],\"name\":\"setGammaPacksContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"}],\"name\":\"setGammaTicketsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"amount\",\"type\":\"uint8\"}],\"name\":\"setLotteryPrizePercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setMainAlbumPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setPrizesBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setSecondaryAlbumPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newMainUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"newSecondaryUri\",\"type\":\"string\"}],\"name\":\"setUris\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"testAddCards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"}],\"name\":\"testOpenPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"transferCard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8[]\",\"name\":\"cardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"transferCards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verifyPackSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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 EIP-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.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCards.v5.sol\":\"NofGammaCardsV5\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCards.v5.sol\":{\"keccak256\":\"0x56c049ce66af97614592273fb99d70674ca95fca1517e2182c8bb35b7350114f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10b2468ecba15bd10a1c4f26779d2c4818bae97a9af8b6b64bb7baa71a3875fc\",\"dweb:/ipfs/QmYKJPoM4kLuMu4ccUM1s8BYYn2iuvVN14WtoVh6BBeNUz\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]},\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/gamma/GammaCardsNFT.v1.sol":{"NofGammaCardsNFTV1":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_464":{"entryPoint":null,"id":464,"parameterSlots":2,"returnSlots":0},"@_5830":{"entryPoint":null,"id":5830,"parameterSlots":0,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":207,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":290,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":147,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":125,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"201:325:29","statements":[{"nodeType":"YulAssignment","src":"211:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:29"},"nodeType":"YulFunctionCall","src":"221:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:29"},"nodeType":"YulFunctionCall","src":"268:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:29","statements":[{"nodeType":"YulAssignment","src":"321:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:29"},"nodeType":"YulFunctionCall","src":"331:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:29"},"nodeType":"YulFunctionCall","src":"292:26:29"},"nodeType":"YulIf","src":"289:61:29"},{"body":{"nodeType":"YulBlock","src":"409:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:29"},"nodeType":"YulFunctionCall","src":"467:15:29"},"nodeType":"YulExpressionStatement","src":"467:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:29"},"nodeType":"YulFunctionCall","src":"495:15:29"},"nodeType":"YulExpressionStatement","src":"495:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:29"},"nodeType":"YulFunctionCall","src":"385:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:29"},"nodeType":"YulFunctionCall","src":"362:38:29"},"nodeType":"YulIf","src":"359:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:29","type":""}],"src":"146:380:29"},{"body":{"nodeType":"YulBlock","src":"587:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:29"},"nodeType":"YulFunctionCall","src":"597:14:29"},"nodeType":"YulExpressionStatement","src":"597:14:29"},{"nodeType":"YulAssignment","src":"620:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:29"},"nodeType":"YulFunctionCall","src":"628:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:29","type":""}],"src":"531:121:29"},{"body":{"nodeType":"YulBlock","src":"738:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:17:29"},"nodeType":"YulExpressionStatement","src":"809:17:29"},{"nodeType":"YulVariableDeclaration","src":"839:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:29"},"nodeType":"YulFunctionCall","src":"851:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:29"},"nodeType":"YulFunctionCall","src":"919:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:29"},"nodeType":"YulFunctionCall","src":"912:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:29","statements":[{"nodeType":"YulAssignment","src":"979:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:29"},"nodeType":"YulFunctionCall","src":"956:20:29"},"nodeType":"YulIf","src":"953:47:29"},{"nodeType":"YulVariableDeclaration","src":"1013:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:29"},"nodeType":"YulFunctionCall","src":"1040:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:29"},"nodeType":"YulFunctionCall","src":"1033:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:29"},"nodeType":"YulFunctionCall","src":"1167:17:29"},"nodeType":"YulExpressionStatement","src":"1167:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:29"},"nodeType":"YulFunctionCall","src":"1112:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:29","statements":[{"nodeType":"YulAssignment","src":"1128:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:29"},"nodeType":"YulFunctionCall","src":"1137:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:29","statements":[]},"src":"1104:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:29"},"nodeType":"YulFunctionCall","src":"751:11:29"},"nodeType":"YulIf","src":"748:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:29","type":""}],"src":"657:545:29"},{"body":{"nodeType":"YulBlock","src":"1292:81:29","statements":[{"nodeType":"YulAssignment","src":"1302:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:29"},"nodeType":"YulFunctionCall","src":"1331:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:29"},"nodeType":"YulFunctionCall","src":"1344:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:29"},"nodeType":"YulFunctionCall","src":"1327:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:29"},"nodeType":"YulFunctionCall","src":"1323:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:29"},"nodeType":"YulFunctionCall","src":"1313:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:29"},"nodeType":"YulFunctionCall","src":"1355:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:29"},"nodeType":"YulFunctionCall","src":"1310:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:29","type":""}],"src":"1207:166:29"},{"body":{"nodeType":"YulBlock","src":"1474:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:29"},"nodeType":"YulFunctionCall","src":"1498:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:29"},"nodeType":"YulFunctionCall","src":"1553:18:29"},"nodeType":"YulExpressionStatement","src":"1553:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:29"},"nodeType":"YulFunctionCall","src":"1535:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:29"},"nodeType":"YulFunctionCall","src":"1531:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulIf","src":"1517:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:29"},"nodeType":"YulFunctionCall","src":"1658:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:29"},"nodeType":"YulFunctionCall","src":"1632:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:29"},"nodeType":"YulFunctionCall","src":"1582:97:29"},"nodeType":"YulExpressionStatement","src":"1582:97:29"},{"nodeType":"YulVariableDeclaration","src":"1688:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:29","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:29"},"nodeType":"YulFunctionCall","src":"1846:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:29"},"nodeType":"YulFunctionCall","src":"1893:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:29"},"nodeType":"YulFunctionCall","src":"2067:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:29"},"nodeType":"YulFunctionCall","src":"2061:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:29"},"nodeType":"YulFunctionCall","src":"2046:42:29"},"nodeType":"YulExpressionStatement","src":"2046:42:29"},{"nodeType":"YulAssignment","src":"2105:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:29"},"nodeType":"YulFunctionCall","src":"2115:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:29"}]},{"nodeType":"YulAssignment","src":"2146:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:29"},"nodeType":"YulFunctionCall","src":"2159:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:29"},"nodeType":"YulFunctionCall","src":"1972:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:29","statements":[{"nodeType":"YulAssignment","src":"1989:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:29"},"nodeType":"YulFunctionCall","src":"1994:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:29","statements":[]},"src":"1964:236:29"},{"body":{"nodeType":"YulBlock","src":"2248:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:29"},"nodeType":"YulFunctionCall","src":"2289:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:29"},"nodeType":"YulFunctionCall","src":"2283:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:29"},"nodeType":"YulFunctionCall","src":"2368:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:29"},"nodeType":"YulFunctionCall","src":"2364:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:29"},"nodeType":"YulFunctionCall","src":"2390:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:29"},"nodeType":"YulFunctionCall","src":"2360:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:29"},"nodeType":"YulFunctionCall","src":"2356:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:29"},"nodeType":"YulFunctionCall","src":"2341:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:29"},"nodeType":"YulFunctionCall","src":"2326:74:29"},"nodeType":"YulExpressionStatement","src":"2326:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:29"},"nodeType":"YulFunctionCall","src":"2216:19:29"},"nodeType":"YulIf","src":"2213:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:29"},"nodeType":"YulFunctionCall","src":"2444:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:29"},"nodeType":"YulFunctionCall","src":"2440:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:29"},"nodeType":"YulFunctionCall","src":"2427:36:29"},"nodeType":"YulExpressionStatement","src":"2427:36:29"}]},"nodeType":"YulCase","src":"1810:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:29","statements":[{"nodeType":"YulAssignment","src":"2571:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:29"},"nodeType":"YulFunctionCall","src":"2586:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:29"},"nodeType":"YulFunctionCall","src":"2580:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:29"},"nodeType":"YulIf","src":"2531:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:29"},"nodeType":"YulFunctionCall","src":"2646:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:81:29"},"nodeType":"YulExpressionStatement","src":"2633:81:29"}]},"nodeType":"YulCase","src":"2482:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:29"},"nodeType":"YulFunctionCall","src":"1787:14:29"},"nodeType":"YulSwitch","src":"1780:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:29","type":""}],"src":"1378:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61106480620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x47616D6D614361726473 PUSH1 0xB0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x4E4F465F4743 PUSH1 0xD0 SHL DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x65 SWAP2 SWAP1 PUSH3 0x122 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x74 DUP3 DUP3 PUSH3 0x122 JUMP JUMPDEST POP POP POP PUSH3 0x1EE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0xA8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xC9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x11D JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xF8 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x119 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x104 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x13E JUMPI PUSH3 0x13E PUSH3 0x7D JUMP JUMPDEST PUSH3 0x156 DUP2 PUSH3 0x14F DUP5 SLOAD PUSH3 0x93 JUMP JUMPDEST DUP5 PUSH3 0xCF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x18E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x175 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x119 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1BF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x19E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x1DE JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1064 DUP1 PUSH3 0x1FE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0xCD4 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11F PUSH2 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xD41 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0xD89 JUMP JUMPDEST PUSH2 0x2F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x11F PUSH2 0x417 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x228 CALLDATASIZE PUSH1 0x4 PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x481 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B 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 0x279 SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x29B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2A9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DB DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x238 JUMP JUMPDEST PUSH2 0x304 DUP3 DUP3 CALLER PUSH2 0x4DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x344 DUP4 DUP4 CALLER PUSH2 0x4EC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x431 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x304 PUSH1 0x0 DUP3 CALLER PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B JUMP JUMPDEST PUSH2 0x304 CALLER DUP4 DUP4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x43C DUP5 DUP5 DUP5 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x392 DUP5 DUP5 DUP5 DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x238 DUP3 PUSH2 0x7AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0x238 JUMPI POP PUSH2 0x238 DUP3 PUSH2 0x8BE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x519 JUMPI PUSH2 0x519 DUP2 DUP5 DUP7 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x557 JUMPI PUSH2 0x536 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x6C6 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x701 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x6FE SWAP2 DUP2 ADD SWAP1 PUSH2 0xFE2 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x76A JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x734 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x762 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x7A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7B8 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x7D2 SWAP1 PUSH2 0xF6B 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 0x7FE SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x820 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x82E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x869 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x87B JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x8AD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x895 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8B6 DUP5 PUSH2 0xA78 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8EF JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x238 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x238 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x922 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 PUSH2 0x932 DUP5 PUSH2 0x4A6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x95E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x971 JUMPI POP PUSH2 0x96F DUP2 DUP5 PUSH2 0x453 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x9E2 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA1F DUP4 DUP4 DUP4 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x3B3 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA83 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xA9B PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xABB JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xAE6 JUMP JUMPDEST DUP1 PUSH2 0xAC5 DUP5 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD6 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x8B6 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xB27 JUMPI POP PUSH2 0xB27 DUP5 DUP5 PUSH2 0x453 JUMP JUMPDEST DUP1 PUSH2 0x8B6 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB5D DUP4 PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB7D JUMPI PUSH2 0xB7D PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xBB1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC22 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC4E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC6C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC84 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC98 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCAA JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x238 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD0C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xCF4 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD2D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xCF1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAE6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD1 DUP5 PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF PUSH1 0x20 DUP6 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE6 DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE26 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7B DUP6 PUSH2 0xD6D JUMP JUMPDEST SWAP4 POP PUSH2 0xE89 PUSH1 0x20 DUP7 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xED3 JUMPI PUSH2 0xED3 PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xEFB JUMPI PUSH2 0xEFB PUSH2 0xE46 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF54 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH2 0xF62 PUSH1 0x20 DUP5 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xF7F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF9F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xFD8 SWAP1 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1011 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1025 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD LOG0 0x2D 0xC7 LOG1 0xC6 MUL 0xE1 0x49 JUMP GT 0xEA KECCAK256 PUSH2 0x595E DUP9 0xB0 0xD5 SWAP13 0xBD DUP15 0xCB SWAP14 CODESIZE XOR 0xC7 CHAINID INVALID 0xC8 0xB7 ISZERO PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"333:588:21:-:0;;;412:47;;;;;;;;;;1381:113:6;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;;;;;;;;;;;;;;-1:-1:-1;;;1381:113:6;;;1455:5;1447;:13;;;;;;:::i;:::-;-1:-1:-1;1470:7:6;:17;1480:7;1470;:17;:::i;:::-;;1381:113;;333:588:21;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:29;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:29;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:29;;;2580:26;2531:89;-1:-1:-1;;1335:1:29;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:29;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:29;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:29;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:29:o;:::-;333:588:21;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_1206":{"entryPoint":1247,"id":1206,"parameterSlots":3,"returnSlots":0},"@_approve_1272":{"entryPoint":2318,"id":1272,"parameterSlots":4,"returnSlots":0},"@_baseURI_599":{"entryPoint":null,"id":599,"parameterSlots":0,"returnSlots":1},"@_checkAuthorized_854":{"entryPoint":2580,"id":854,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_1402":{"entryPoint":1668,"id":1402,"parameterSlots":4,"returnSlots":0},"@_getApproved_781":{"entryPoint":null,"id":781,"parameterSlots":1,"returnSlots":1},"@_isAuthorized_817":{"entryPoint":2797,"id":817,"parameterSlots":3,"returnSlots":1},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_ownerOf_768":{"entryPoint":null,"id":768,"parameterSlots":1,"returnSlots":1},"@_requireOwned_1338":{"entryPoint":1190,"id":1338,"parameterSlots":1,"returnSlots":1},"@_setApprovalForAll_1309":{"entryPoint":1509,"id":1309,"parameterSlots":3,"returnSlots":0},"@_update_960":{"entryPoint":1260,"id":960,"parameterSlots":3,"returnSlots":1},"@approve_615":{"entryPoint":761,"id":615,"parameterSlots":2,"returnSlots":0},"@balanceOf_523":{"entryPoint":975,"id":523,"parameterSlots":1,"returnSlots":1},"@burn_1566":{"entryPoint":952,"id":1566,"parameterSlots":1,"returnSlots":0},"@getApproved_632":{"entryPoint":720,"id":632,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_665":{"entryPoint":1107,"id":665,"parameterSlots":2,"returnSlots":1},"@log10_3338":{"entryPoint":3043,"id":3338,"parameterSlots":1,"returnSlots":1},"@name_545":{"entryPoint":574,"id":545,"parameterSlots":0,"returnSlots":1},"@ownerOf_536":{"entryPoint":964,"id":536,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_729":{"entryPoint":920,"id":729,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_755":{"entryPoint":1073,"id":755,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_648":{"entryPoint":1062,"id":648,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1616":{"entryPoint":1153,"id":1616,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2451":{"entryPoint":null,"id":2451,"parameterSlots":1,"returnSlots":1},"@supportsInterface_495":{"entryPoint":2238,"id":495,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5876":{"entryPoint":557,"id":5876,"parameterSlots":1,"returnSlots":1},"@symbol_554":{"entryPoint":1047,"id":554,"parameterSlots":0,"returnSlots":1},"@toString_1819":{"entryPoint":2896,"id":1819,"parameterSlots":1,"returnSlots":1},"@tokenURI_1673":{"entryPoint":1965,"id":1673,"parameterSlots":1,"returnSlots":1},"@tokenURI_5860":{"entryPoint":1096,"id":5860,"parameterSlots":1,"returnSlots":1},"@tokenURI_590":{"entryPoint":2680,"id":590,"parameterSlots":1,"returnSlots":1},"@transferFrom_711":{"entryPoint":776,"id":711,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":3437,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3896,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3507,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":3676,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3594,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3465,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3284,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":4066,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3412,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":3349,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4095,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4005,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3393,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3313,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3947,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3654,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":3259,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7198:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:29","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:29"},"nodeType":"YulFunctionCall","src":"125:12:29"},"nodeType":"YulExpressionStatement","src":"125:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:29","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:29"},"nodeType":"YulFunctionCall","src":"99:20:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:29"},"nodeType":"YulFunctionCall","src":"88:32:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:29"},"nodeType":"YulFunctionCall","src":"78:43:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:29"},"nodeType":"YulFunctionCall","src":"71:51:29"},"nodeType":"YulIf","src":"68:71:29"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:29","type":""}],"src":"14:131:29"},{"body":{"nodeType":"YulBlock","src":"219:176:29","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:29"},"nodeType":"YulFunctionCall","src":"267:12:29"},"nodeType":"YulExpressionStatement","src":"267:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:29"},"nodeType":"YulFunctionCall","src":"236:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:29"},"nodeType":"YulFunctionCall","src":"232:32:29"},"nodeType":"YulIf","src":"229:52:29"},{"nodeType":"YulVariableDeclaration","src":"290:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:29"},"nodeType":"YulFunctionCall","src":"303:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:29"},"nodeType":"YulFunctionCall","src":"335:30:29"},"nodeType":"YulExpressionStatement","src":"335:30:29"},{"nodeType":"YulAssignment","src":"374:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:29","type":""}],"src":"150:245:29"},{"body":{"nodeType":"YulBlock","src":"495:92:29","statements":[{"nodeType":"YulAssignment","src":"505:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:29"},"nodeType":"YulFunctionCall","src":"513:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:29"},"nodeType":"YulFunctionCall","src":"565:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:29"},"nodeType":"YulFunctionCall","src":"558:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:29"},"nodeType":"YulFunctionCall","src":"540:41:29"},"nodeType":"YulExpressionStatement","src":"540:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:29","type":""}],"src":"400:187:29"},{"body":{"nodeType":"YulBlock","src":"658:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"668:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"677:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"672:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"737:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"767:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"758:3:29"},"nodeType":"YulFunctionCall","src":"758:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"781:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"786:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:29"},"nodeType":"YulFunctionCall","src":"777:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"771:5:29"},"nodeType":"YulFunctionCall","src":"771:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"751:6:29"},"nodeType":"YulFunctionCall","src":"751:39:29"},"nodeType":"YulExpressionStatement","src":"751:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"698:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"701:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"695:2:29"},"nodeType":"YulFunctionCall","src":"695:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"709:19:29","statements":[{"nodeType":"YulAssignment","src":"711:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"720:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"723:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:29"},"nodeType":"YulFunctionCall","src":"716:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"711:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"691:3:29","statements":[]},"src":"687:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"820:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"825:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"816:3:29"},"nodeType":"YulFunctionCall","src":"816:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:27:29"},"nodeType":"YulExpressionStatement","src":"809:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"636:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"641:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"646:6:29","type":""}],"src":"592:250:29"},{"body":{"nodeType":"YulBlock","src":"897:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"907:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"927:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"921:5:29"},"nodeType":"YulFunctionCall","src":"921:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"911:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"949:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"954:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"942:6:29"},"nodeType":"YulFunctionCall","src":"942:19:29"},"nodeType":"YulExpressionStatement","src":"942:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1009:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1016:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1005:3:29"},"nodeType":"YulFunctionCall","src":"1005:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1027:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1032:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"1039:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"970:34:29"},"nodeType":"YulFunctionCall","src":"970:76:29"},"nodeType":"YulExpressionStatement","src":"970:76:29"},{"nodeType":"YulAssignment","src":"1055:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1070:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1083:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1091:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1079:3:29"},"nodeType":"YulFunctionCall","src":"1079:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1100:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1096:3:29"},"nodeType":"YulFunctionCall","src":"1096:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1075:3:29"},"nodeType":"YulFunctionCall","src":"1075:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:29"},"nodeType":"YulFunctionCall","src":"1066:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"1107:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1062:3:29"},"nodeType":"YulFunctionCall","src":"1062:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1055:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"874:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"881:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"889:3:29","type":""}],"src":"847:271:29"},{"body":{"nodeType":"YulBlock","src":"1244:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1261:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1272:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1254:6:29"},"nodeType":"YulFunctionCall","src":"1254:21:29"},"nodeType":"YulExpressionStatement","src":"1254:21:29"},{"nodeType":"YulAssignment","src":"1284:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1322:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1333:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:29"},"nodeType":"YulFunctionCall","src":"1318:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1292:17:29"},"nodeType":"YulFunctionCall","src":"1292:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1284:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1213:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1224:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1235:4:29","type":""}],"src":"1123:220:29"},{"body":{"nodeType":"YulBlock","src":"1418:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"1464:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1473:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1476:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1466:6:29"},"nodeType":"YulFunctionCall","src":"1466:12:29"},"nodeType":"YulExpressionStatement","src":"1466:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1439:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1448:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1435:3:29"},"nodeType":"YulFunctionCall","src":"1435:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1460:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1431:3:29"},"nodeType":"YulFunctionCall","src":"1431:32:29"},"nodeType":"YulIf","src":"1428:52:29"},{"nodeType":"YulAssignment","src":"1489:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1499:12:29"},"nodeType":"YulFunctionCall","src":"1499:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1489:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1384:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1395:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1407:6:29","type":""}],"src":"1348:180:29"},{"body":{"nodeType":"YulBlock","src":"1634:102:29","statements":[{"nodeType":"YulAssignment","src":"1644:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1656:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1667:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1652:3:29"},"nodeType":"YulFunctionCall","src":"1652:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1644:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1686:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1701:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1717:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1722:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1713:3:29"},"nodeType":"YulFunctionCall","src":"1713:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1726:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1709:3:29"},"nodeType":"YulFunctionCall","src":"1709:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1697:3:29"},"nodeType":"YulFunctionCall","src":"1697:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1679:6:29"},"nodeType":"YulFunctionCall","src":"1679:51:29"},"nodeType":"YulExpressionStatement","src":"1679:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1614:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1625:4:29","type":""}],"src":"1533:203:29"},{"body":{"nodeType":"YulBlock","src":"1790:124:29","statements":[{"nodeType":"YulAssignment","src":"1800:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1822:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1809:12:29"},"nodeType":"YulFunctionCall","src":"1809:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1800:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1892:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1901:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1894:6:29"},"nodeType":"YulFunctionCall","src":"1894:12:29"},"nodeType":"YulExpressionStatement","src":"1894:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1877:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1882:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1873:3:29"},"nodeType":"YulFunctionCall","src":"1873:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1886:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1869:3:29"},"nodeType":"YulFunctionCall","src":"1869:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1848:2:29"},"nodeType":"YulFunctionCall","src":"1848:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1841:6:29"},"nodeType":"YulFunctionCall","src":"1841:50:29"},"nodeType":"YulIf","src":"1838:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1769:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1780:5:29","type":""}],"src":"1741:173:29"},{"body":{"nodeType":"YulBlock","src":"2006:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"2052:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2064:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2054:6:29"},"nodeType":"YulFunctionCall","src":"2054:12:29"},"nodeType":"YulExpressionStatement","src":"2054:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2027:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2023:3:29"},"nodeType":"YulFunctionCall","src":"2023:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2048:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2019:3:29"},"nodeType":"YulFunctionCall","src":"2019:32:29"},"nodeType":"YulIf","src":"2016:52:29"},{"nodeType":"YulAssignment","src":"2077:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2106:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2087:18:29"},"nodeType":"YulFunctionCall","src":"2087:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2077:6:29"}]},{"nodeType":"YulAssignment","src":"2125:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2152:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2148:3:29"},"nodeType":"YulFunctionCall","src":"2148:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2135:12:29"},"nodeType":"YulFunctionCall","src":"2135:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2125:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1964:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1975:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1987:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1995:6:29","type":""}],"src":"1919:254:29"},{"body":{"nodeType":"YulBlock","src":"2282:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"2328:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2337:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2340:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2330:6:29"},"nodeType":"YulFunctionCall","src":"2330:12:29"},"nodeType":"YulExpressionStatement","src":"2330:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2303:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2312:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2299:3:29"},"nodeType":"YulFunctionCall","src":"2299:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2324:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2295:3:29"},"nodeType":"YulFunctionCall","src":"2295:32:29"},"nodeType":"YulIf","src":"2292:52:29"},{"nodeType":"YulAssignment","src":"2353:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2382:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2363:18:29"},"nodeType":"YulFunctionCall","src":"2363:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2353:6:29"}]},{"nodeType":"YulAssignment","src":"2401:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2434:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2445:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:29"},"nodeType":"YulFunctionCall","src":"2430:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2411:18:29"},"nodeType":"YulFunctionCall","src":"2411:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2401:6:29"}]},{"nodeType":"YulAssignment","src":"2458:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2485:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2496:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:29"},"nodeType":"YulFunctionCall","src":"2481:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2468:12:29"},"nodeType":"YulFunctionCall","src":"2468:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2458:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2232:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2243:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2255:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2263:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2271:6:29","type":""}],"src":"2178:328:29"},{"body":{"nodeType":"YulBlock","src":"2581:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2627:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2636:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2639:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2629:6:29"},"nodeType":"YulFunctionCall","src":"2629:12:29"},"nodeType":"YulExpressionStatement","src":"2629:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2602:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2611:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2598:3:29"},"nodeType":"YulFunctionCall","src":"2598:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2623:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2594:3:29"},"nodeType":"YulFunctionCall","src":"2594:32:29"},"nodeType":"YulIf","src":"2591:52:29"},{"nodeType":"YulAssignment","src":"2652:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2662:18:29"},"nodeType":"YulFunctionCall","src":"2662:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2547:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2558:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2570:6:29","type":""}],"src":"2511:186:29"},{"body":{"nodeType":"YulBlock","src":"2803:76:29","statements":[{"nodeType":"YulAssignment","src":"2813:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2825:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2836:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2821:3:29"},"nodeType":"YulFunctionCall","src":"2821:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2813:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2855:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"2866:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2848:6:29"},"nodeType":"YulFunctionCall","src":"2848:25:29"},"nodeType":"YulExpressionStatement","src":"2848:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2772:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2783:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2794:4:29","type":""}],"src":"2702:177:29"},{"body":{"nodeType":"YulBlock","src":"2968:263:29","statements":[{"body":{"nodeType":"YulBlock","src":"3014:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3023:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3026:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3016:6:29"},"nodeType":"YulFunctionCall","src":"3016:12:29"},"nodeType":"YulExpressionStatement","src":"3016:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2989:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2998:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2985:3:29"},"nodeType":"YulFunctionCall","src":"2985:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3010:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2981:3:29"},"nodeType":"YulFunctionCall","src":"2981:32:29"},"nodeType":"YulIf","src":"2978:52:29"},{"nodeType":"YulAssignment","src":"3039:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3068:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3049:18:29"},"nodeType":"YulFunctionCall","src":"3049:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"3087:45:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:29"},"nodeType":"YulFunctionCall","src":"3113:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3100:12:29"},"nodeType":"YulFunctionCall","src":"3100:32:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3091:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3185:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3194:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3197:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3187:6:29"},"nodeType":"YulFunctionCall","src":"3187:12:29"},"nodeType":"YulExpressionStatement","src":"3187:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3154:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3168:6:29"},"nodeType":"YulFunctionCall","src":"3168:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3161:6:29"},"nodeType":"YulFunctionCall","src":"3161:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3151:2:29"},"nodeType":"YulFunctionCall","src":"3151:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3144:6:29"},"nodeType":"YulFunctionCall","src":"3144:40:29"},"nodeType":"YulIf","src":"3141:60:29"},{"nodeType":"YulAssignment","src":"3210:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"3220:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3210:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2926:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2937:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2949:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2957:6:29","type":""}],"src":"2884:347:29"},{"body":{"nodeType":"YulBlock","src":"3268:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3285:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3292:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3297:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3288:3:29"},"nodeType":"YulFunctionCall","src":"3288:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3278:6:29"},"nodeType":"YulFunctionCall","src":"3278:31:29"},"nodeType":"YulExpressionStatement","src":"3278:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3325:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3318:6:29"},"nodeType":"YulFunctionCall","src":"3318:15:29"},"nodeType":"YulExpressionStatement","src":"3318:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:29"},"nodeType":"YulFunctionCall","src":"3342:15:29"},"nodeType":"YulExpressionStatement","src":"3342:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3236:127:29"},{"body":{"nodeType":"YulBlock","src":"3498:1008:29","statements":[{"body":{"nodeType":"YulBlock","src":"3545:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3554:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3557:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3547:6:29"},"nodeType":"YulFunctionCall","src":"3547:12:29"},"nodeType":"YulExpressionStatement","src":"3547:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3519:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3515:3:29"},"nodeType":"YulFunctionCall","src":"3515:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3540:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3511:3:29"},"nodeType":"YulFunctionCall","src":"3511:33:29"},"nodeType":"YulIf","src":"3508:53:29"},{"nodeType":"YulAssignment","src":"3570:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3599:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3580:18:29"},"nodeType":"YulFunctionCall","src":"3580:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3570:6:29"}]},{"nodeType":"YulAssignment","src":"3618:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:29"},"nodeType":"YulFunctionCall","src":"3647:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3628:18:29"},"nodeType":"YulFunctionCall","src":"3628:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3618:6:29"}]},{"nodeType":"YulAssignment","src":"3675:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3702:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3713:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:29"},"nodeType":"YulFunctionCall","src":"3698:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3685:12:29"},"nodeType":"YulFunctionCall","src":"3685:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3675:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"3726:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3757:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3753:3:29"},"nodeType":"YulFunctionCall","src":"3753:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3740:12:29"},"nodeType":"YulFunctionCall","src":"3740:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3730:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3781:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3791:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3785:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3836:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3845:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3848:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3838:6:29"},"nodeType":"YulFunctionCall","src":"3838:12:29"},"nodeType":"YulExpressionStatement","src":"3838:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3824:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3832:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3821:2:29"},"nodeType":"YulFunctionCall","src":"3821:14:29"},"nodeType":"YulIf","src":"3818:34:29"},{"nodeType":"YulVariableDeclaration","src":"3861:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3875:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"3886:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3871:3:29"},"nodeType":"YulFunctionCall","src":"3871:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3865:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3941:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3950:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3953:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3943:6:29"},"nodeType":"YulFunctionCall","src":"3943:12:29"},"nodeType":"YulExpressionStatement","src":"3943:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3920:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"3924:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3916:3:29"},"nodeType":"YulFunctionCall","src":"3916:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3931:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3912:3:29"},"nodeType":"YulFunctionCall","src":"3912:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3905:6:29"},"nodeType":"YulFunctionCall","src":"3905:35:29"},"nodeType":"YulIf","src":"3902:55:29"},{"nodeType":"YulVariableDeclaration","src":"3966:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3989:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3976:12:29"},"nodeType":"YulFunctionCall","src":"3976:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3970:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4015:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4017:16:29"},"nodeType":"YulFunctionCall","src":"4017:18:29"},"nodeType":"YulExpressionStatement","src":"4017:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4007:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4011:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4004:2:29"},"nodeType":"YulFunctionCall","src":"4004:10:29"},"nodeType":"YulIf","src":"4001:36:29"},{"nodeType":"YulVariableDeclaration","src":"4046:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4060:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4056:3:29"},"nodeType":"YulFunctionCall","src":"4056:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4050:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4072:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4092:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4086:5:29"},"nodeType":"YulFunctionCall","src":"4086:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4076:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4104:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4126:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4150:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"4154:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4146:3:29"},"nodeType":"YulFunctionCall","src":"4146:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"4161:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4142:3:29"},"nodeType":"YulFunctionCall","src":"4142:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"4166:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4138:3:29"},"nodeType":"YulFunctionCall","src":"4138:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"4171:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4134:3:29"},"nodeType":"YulFunctionCall","src":"4134:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4122:3:29"},"nodeType":"YulFunctionCall","src":"4122:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4108:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4234:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4236:16:29"},"nodeType":"YulFunctionCall","src":"4236:18:29"},"nodeType":"YulExpressionStatement","src":"4236:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4193:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4205:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4190:2:29"},"nodeType":"YulFunctionCall","src":"4190:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4213:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4225:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4210:2:29"},"nodeType":"YulFunctionCall","src":"4210:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4187:2:29"},"nodeType":"YulFunctionCall","src":"4187:46:29"},"nodeType":"YulIf","src":"4184:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4276:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4265:6:29"},"nodeType":"YulFunctionCall","src":"4265:22:29"},"nodeType":"YulExpressionStatement","src":"4265:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4303:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4311:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4296:6:29"},"nodeType":"YulFunctionCall","src":"4296:18:29"},"nodeType":"YulExpressionStatement","src":"4296:18:29"},{"body":{"nodeType":"YulBlock","src":"4360:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4369:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4372:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4362:6:29"},"nodeType":"YulFunctionCall","src":"4362:12:29"},"nodeType":"YulExpressionStatement","src":"4362:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4337:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4341:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4333:3:29"},"nodeType":"YulFunctionCall","src":"4333:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"4346:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4329:3:29"},"nodeType":"YulFunctionCall","src":"4329:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4351:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4326:2:29"},"nodeType":"YulFunctionCall","src":"4326:33:29"},"nodeType":"YulIf","src":"4323:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4402:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4410:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4398:3:29"},"nodeType":"YulFunctionCall","src":"4398:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4419:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:29"},"nodeType":"YulFunctionCall","src":"4415:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4428:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4385:12:29"},"nodeType":"YulFunctionCall","src":"4385:46:29"},"nodeType":"YulExpressionStatement","src":"4385:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4455:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"4463:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4451:3:29"},"nodeType":"YulFunctionCall","src":"4451:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"4468:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4447:3:29"},"nodeType":"YulFunctionCall","src":"4447:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"4473:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4440:6:29"},"nodeType":"YulFunctionCall","src":"4440:35:29"},"nodeType":"YulExpressionStatement","src":"4440:35:29"},{"nodeType":"YulAssignment","src":"4484:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4494:6:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4484:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3440:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3451:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3463:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3471:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3479:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3487:6:29","type":""}],"src":"3368:1138:29"},{"body":{"nodeType":"YulBlock","src":"4598:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"4644:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4653:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4656:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4646:6:29"},"nodeType":"YulFunctionCall","src":"4646:12:29"},"nodeType":"YulExpressionStatement","src":"4646:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4619:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4628:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4615:3:29"},"nodeType":"YulFunctionCall","src":"4615:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4640:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4611:3:29"},"nodeType":"YulFunctionCall","src":"4611:32:29"},"nodeType":"YulIf","src":"4608:52:29"},{"nodeType":"YulAssignment","src":"4669:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4698:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4679:18:29"},"nodeType":"YulFunctionCall","src":"4679:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4669:6:29"}]},{"nodeType":"YulAssignment","src":"4717:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4750:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4761:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4746:3:29"},"nodeType":"YulFunctionCall","src":"4746:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4727:18:29"},"nodeType":"YulFunctionCall","src":"4727:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4717:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4556:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4567:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4579:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4587:6:29","type":""}],"src":"4511:260:29"},{"body":{"nodeType":"YulBlock","src":"4831:325:29","statements":[{"nodeType":"YulAssignment","src":"4841:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4855:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"4858:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4851:3:29"},"nodeType":"YulFunctionCall","src":"4851:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4841:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4872:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4902:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"4908:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4898:3:29"},"nodeType":"YulFunctionCall","src":"4898:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"4876:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4949:31:29","statements":[{"nodeType":"YulAssignment","src":"4951:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4965:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4973:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4961:3:29"},"nodeType":"YulFunctionCall","src":"4961:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4951:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4929:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4922:6:29"},"nodeType":"YulFunctionCall","src":"4922:26:29"},"nodeType":"YulIf","src":"4919:61:29"},{"body":{"nodeType":"YulBlock","src":"5039:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5060:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5067:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5072:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5063:3:29"},"nodeType":"YulFunctionCall","src":"5063:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:29"},"nodeType":"YulFunctionCall","src":"5053:31:29"},"nodeType":"YulExpressionStatement","src":"5053:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5104:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5107:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5097:6:29"},"nodeType":"YulFunctionCall","src":"5097:15:29"},"nodeType":"YulExpressionStatement","src":"5097:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5132:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5135:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5125:6:29"},"nodeType":"YulFunctionCall","src":"5125:15:29"},"nodeType":"YulExpressionStatement","src":"5125:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4995:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5018:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5026:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5015:2:29"},"nodeType":"YulFunctionCall","src":"5015:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4992:2:29"},"nodeType":"YulFunctionCall","src":"4992:38:29"},"nodeType":"YulIf","src":"4989:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"4811:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"4820:6:29","type":""}],"src":"4776:380:29"},{"body":{"nodeType":"YulBlock","src":"5318:218:29","statements":[{"nodeType":"YulAssignment","src":"5328:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5340:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5351:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5336:3:29"},"nodeType":"YulFunctionCall","src":"5336:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5328:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"5363:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5381:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5386:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5377:3:29"},"nodeType":"YulFunctionCall","src":"5377:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"5390:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5373:3:29"},"nodeType":"YulFunctionCall","src":"5373:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5367:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5408:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5423:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5431:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5419:3:29"},"nodeType":"YulFunctionCall","src":"5419:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5401:6:29"},"nodeType":"YulFunctionCall","src":"5401:34:29"},"nodeType":"YulExpressionStatement","src":"5401:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5455:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5466:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5451:3:29"},"nodeType":"YulFunctionCall","src":"5451:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"5471:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5444:6:29"},"nodeType":"YulFunctionCall","src":"5444:34:29"},"nodeType":"YulExpressionStatement","src":"5444:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5498:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5509:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5494:3:29"},"nodeType":"YulFunctionCall","src":"5494:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5518:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5526:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5514:3:29"},"nodeType":"YulFunctionCall","src":"5514:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5487:6:29"},"nodeType":"YulFunctionCall","src":"5487:43:29"},"nodeType":"YulExpressionStatement","src":"5487:43:29"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5271:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5282:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5290:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5298:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5309:4:29","type":""}],"src":"5161:375:29"},{"body":{"nodeType":"YulBlock","src":"5744:286:29","statements":[{"nodeType":"YulVariableDeclaration","src":"5754:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5772:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5777:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5768:3:29"},"nodeType":"YulFunctionCall","src":"5768:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"5781:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5764:3:29"},"nodeType":"YulFunctionCall","src":"5764:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5758:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5799:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5814:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5822:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5810:3:29"},"nodeType":"YulFunctionCall","src":"5810:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5792:6:29"},"nodeType":"YulFunctionCall","src":"5792:34:29"},"nodeType":"YulExpressionStatement","src":"5792:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5846:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5857:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5842:3:29"},"nodeType":"YulFunctionCall","src":"5842:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5866:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5874:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5862:3:29"},"nodeType":"YulFunctionCall","src":"5862:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5835:6:29"},"nodeType":"YulFunctionCall","src":"5835:43:29"},"nodeType":"YulExpressionStatement","src":"5835:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5898:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5909:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5894:3:29"},"nodeType":"YulFunctionCall","src":"5894:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"5914:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5887:6:29"},"nodeType":"YulFunctionCall","src":"5887:34:29"},"nodeType":"YulExpressionStatement","src":"5887:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5952:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5937:3:29"},"nodeType":"YulFunctionCall","src":"5937:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"5957:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5930:6:29"},"nodeType":"YulFunctionCall","src":"5930:31:29"},"nodeType":"YulExpressionStatement","src":"5930:31:29"},{"nodeType":"YulAssignment","src":"5970:54:29","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5996:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6008:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6019:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6004:3:29"},"nodeType":"YulFunctionCall","src":"6004:19:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"5978:17:29"},"nodeType":"YulFunctionCall","src":"5978:46:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5970:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5689:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5700:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5708:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5716:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5724:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5735:4:29","type":""}],"src":"5541:489:29"},{"body":{"nodeType":"YulBlock","src":"6115:169:29","statements":[{"body":{"nodeType":"YulBlock","src":"6161:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6170:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6173:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6163:6:29"},"nodeType":"YulFunctionCall","src":"6163:12:29"},"nodeType":"YulExpressionStatement","src":"6163:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6136:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6145:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6132:3:29"},"nodeType":"YulFunctionCall","src":"6132:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6128:3:29"},"nodeType":"YulFunctionCall","src":"6128:32:29"},"nodeType":"YulIf","src":"6125:52:29"},{"nodeType":"YulVariableDeclaration","src":"6186:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6205:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6199:5:29"},"nodeType":"YulFunctionCall","src":"6199:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6190:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6248:5:29"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"6224:23:29"},"nodeType":"YulFunctionCall","src":"6224:30:29"},"nodeType":"YulExpressionStatement","src":"6224:30:29"},{"nodeType":"YulAssignment","src":"6263:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"6273:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6263:6:29"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6081:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6092:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6104:6:29","type":""}],"src":"6035:249:29"},{"body":{"nodeType":"YulBlock","src":"6476:309:29","statements":[{"nodeType":"YulVariableDeclaration","src":"6486:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6506:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6500:5:29"},"nodeType":"YulFunctionCall","src":"6500:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6490:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6561:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6569:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6557:3:29"},"nodeType":"YulFunctionCall","src":"6557:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"6576:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"6581:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6522:34:29"},"nodeType":"YulFunctionCall","src":"6522:66:29"},"nodeType":"YulExpressionStatement","src":"6522:66:29"},{"nodeType":"YulVariableDeclaration","src":"6597:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6614:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"6619:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6610:3:29"},"nodeType":"YulFunctionCall","src":"6610:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"6601:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6635:29:29","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6657:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6651:5:29"},"nodeType":"YulFunctionCall","src":"6651:13:29"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"6639:8:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6712:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6720:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6708:3:29"},"nodeType":"YulFunctionCall","src":"6708:17:29"},{"name":"end_1","nodeType":"YulIdentifier","src":"6727:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"6734:8:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6673:34:29"},"nodeType":"YulFunctionCall","src":"6673:70:29"},"nodeType":"YulExpressionStatement","src":"6673:70:29"},{"nodeType":"YulAssignment","src":"6752:27:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"6763:5:29"},{"name":"length_1","nodeType":"YulIdentifier","src":"6770:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6759:3:29"},"nodeType":"YulFunctionCall","src":"6759:20:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6752:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6444:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6449:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6457:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6468:3:29","type":""}],"src":"6289:496:29"},{"body":{"nodeType":"YulBlock","src":"6919:145:29","statements":[{"nodeType":"YulAssignment","src":"6929:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6952:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6937:3:29"},"nodeType":"YulFunctionCall","src":"6937:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6929:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6971:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6986:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7002:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7007:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6998:3:29"},"nodeType":"YulFunctionCall","src":"6998:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7011:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6994:3:29"},"nodeType":"YulFunctionCall","src":"6994:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6982:3:29"},"nodeType":"YulFunctionCall","src":"6982:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6964:6:29"},"nodeType":"YulFunctionCall","src":"6964:51:29"},"nodeType":"YulExpressionStatement","src":"6964:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7035:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7046:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7031:3:29"},"nodeType":"YulFunctionCall","src":"7031:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"7051:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7024:6:29"},"nodeType":"YulFunctionCall","src":"7024:34:29"},"nodeType":"YulExpressionStatement","src":"7024:34:29"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6880:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6891:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6899:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6910:4:29","type":""}],"src":"6790:274:29"},{"body":{"nodeType":"YulBlock","src":"7101:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7118:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7125:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7130:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7121:3:29"},"nodeType":"YulFunctionCall","src":"7121:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7111:6:29"},"nodeType":"YulFunctionCall","src":"7111:31:29"},"nodeType":"YulExpressionStatement","src":"7111:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7158:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7161:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7151:6:29"},"nodeType":"YulFunctionCall","src":"7151:15:29"},"nodeType":"YulExpressionStatement","src":"7151:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7182:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7185:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7175:6:29"},"nodeType":"YulFunctionCall","src":"7175:15:29"},"nodeType":"YulExpressionStatement","src":"7175:15:29"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"7069:127:29"}]},"contents":"{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value1 := value\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value3 := memPtr\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x12C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0xCD4 JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11F PUSH2 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10E SWAP2 SWAP1 PUSH2 0xD41 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x2D0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x16A PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0xD89 JUMP JUMPDEST PUSH2 0x2F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16A PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x308 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x398 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0x13F PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x3CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST PUSH2 0x11F PUSH2 0x417 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0x16A PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH2 0x11F PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x448 JUMP JUMPDEST PUSH2 0x102 PUSH2 0x228 CALLDATASIZE PUSH1 0x4 PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x481 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B 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 0x279 SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2C6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x29B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2C6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2A9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DB DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x238 JUMP JUMPDEST PUSH2 0x304 DUP3 DUP3 CALLER PUSH2 0x4DF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x344 DUP4 DUP4 CALLER PUSH2 0x4EC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x431 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x304 PUSH1 0x0 DUP3 CALLER PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x238 DUP3 PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x24D SWAP1 PUSH2 0xF6B JUMP JUMPDEST PUSH2 0x304 CALLER DUP4 DUP4 PUSH2 0x5E5 JUMP JUMPDEST PUSH2 0x43C DUP5 DUP5 DUP5 PUSH2 0x308 JUMP JUMPDEST PUSH2 0x392 DUP5 DUP5 DUP5 DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x238 DUP3 PUSH2 0x7AD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x24832483 PUSH1 0xE1 SHL EQ DUP1 PUSH2 0x238 JUMPI POP PUSH2 0x238 DUP3 PUSH2 0x8BE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x238 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3B3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP1 DUP4 AND ISZERO PUSH2 0x519 JUMPI PUSH2 0x519 DUP2 DUP5 DUP7 PUSH2 0xA14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x557 JUMPI PUSH2 0x536 PUSH1 0x0 DUP6 PUSH1 0x0 DUP1 PUSH2 0x90E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO PUSH2 0x586 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP8 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x617 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x392 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x6C6 SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x701 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x6FE SWAP2 DUP2 ADD SWAP1 PUSH2 0xFE2 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x76A JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x734 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x762 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x7A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7B8 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x7D2 SWAP1 PUSH2 0xF6B 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 0x7FE SWAP1 PUSH2 0xF6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x820 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x82E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x869 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x87B JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x8AD JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x895 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8B6 DUP5 PUSH2 0xA78 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8EF JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x238 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x238 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x922 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x9E4 JUMPI PUSH1 0x0 PUSH2 0x932 DUP5 PUSH2 0x4A6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x95E JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x971 JUMPI POP PUSH2 0x96F DUP2 DUP5 PUSH2 0x453 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x99A JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x9E2 JUMPI DUP4 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xA1F DUP4 DUP4 DUP4 PUSH2 0xAED JUMP JUMPDEST PUSH2 0x3B3 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xA4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA83 DUP3 PUSH2 0x4A6 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xA9B PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xABB JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xAE6 JUMP JUMPDEST DUP1 PUSH2 0xAC5 DUP5 PUSH2 0xB50 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAD6 SWAP3 SWAP2 SWAP1 PUSH2 0xFFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x8B6 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xB27 JUMPI POP PUSH2 0xB27 DUP5 DUP5 PUSH2 0x453 JUMP JUMPDEST DUP1 PUSH2 0x8B6 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB5D DUP4 PUSH2 0xBE3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB7D JUMPI PUSH2 0xB7D PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBA7 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xBB1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC22 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC4E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC6C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xC84 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xC98 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCAA JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x238 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD0C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xCF4 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD2D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xCF1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xAE6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDA5 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD1 DUP5 PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF PUSH1 0x20 DUP6 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE01 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE6 DUP3 PUSH2 0xD6D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE26 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7B DUP6 PUSH2 0xD6D JUMP JUMPDEST SWAP4 POP PUSH2 0xE89 PUSH1 0x20 DUP7 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xEAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xED3 JUMPI PUSH2 0xED3 PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xEFB JUMPI PUSH2 0xEFB PUSH2 0xE46 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF54 DUP4 PUSH2 0xD6D JUMP JUMPDEST SWAP2 POP PUSH2 0xF62 PUSH1 0x20 DUP5 ADD PUSH2 0xD6D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xF7F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xF9F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xFD8 SWAP1 DUP4 ADD DUP5 PUSH2 0xD15 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xAE6 DUP2 PUSH2 0xCBB JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1011 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1025 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xCF1 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD LOG0 0x2D 0xC7 LOG1 0xC6 MUL 0xE1 0x49 JUMP GT 0xEA KECCAK256 PUSH2 0x595E DUP9 0xB0 0xD5 SWAP13 0xBD DUP15 0xCB SWAP14 CODESIZE XOR 0xC7 CHAINID INVALID 0xC8 0xB7 ISZERO PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"333:588:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;737:181;;;;;;:::i;:::-;;:::i;:::-;;;565:14:29;;558:22;540:41;;528:2;513:18;737:181:21;;;;;;;;2365:89:6;;;:::i;:::-;;;;;;;:::i;3497:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:29;;;1679:51;;1667:2;1652:18;3497:154:6;1533:203:29;3323:113:6;;;;;;:::i;:::-;;:::i;:::-;;4143:578;;;;;;:::i;:::-;;:::i;4787:132::-;;;;;;:::i;:::-;;:::i;561:314:9:-;;;;;;:::i;:::-;;:::i;2185:118:6:-;;;;;;:::i;:::-;;:::i;1920:208::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:29;;;2836:2;2821:18;1920:208:6;2702:177:29;2518:93:6;;;:::i;3718:144::-;;;;;;:::i;:::-;;:::i;4985:208::-;;;;;;:::i;:::-;;:::i;566:165:21:-;;;;;;:::i;:::-;;:::i;3928:153:6:-;;;;;;:::i;:::-;;:::i;737:181:21:-;848:4;875:36;899:11;875:23;:36::i;:::-;868:43;737:181;-1:-1:-1;;737:181:21:o;2365:89:6:-;2410:13;2442:5;2435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:89;:::o;3497:154::-;3564:7;3583:22;3597:7;3583:13;:22::i;:::-;-1:-1:-1;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;3623:21;5938:127;3323:113;3394:35;3403:2;3407:7;735:10:12;3394:8:6;:35::i;:::-;3323:113;;:::o;4143:578::-;-1:-1:-1;;;;;4237:16:6;;4233:87;;4276:33;;-1:-1:-1;;;4276:33:6;;4306:1;4276:33;;;1679:51:29;1652:18;;4276:33:6;;;;;;;;4233:87;4538:21;4562:34;4570:2;4574:7;735:10:12;4562:7:6;:34::i;:::-;4538:58;;4627:4;-1:-1:-1;;;;;4610:21:6;:13;-1:-1:-1;;;;;4610:21:6;;4606:109;;4654:50;;-1:-1:-1;;;4654:50:6;;-1:-1:-1;;;;;5419:15:29;;;4654:50:6;;;5401:34:29;5451:18;;;5444:34;;;5514:15;;5494:18;;;5487:43;5336:18;;4654:50:6;5161:375:29;4606:109:6;4223:498;4143:578;;;:::o;4787:132::-;4873:39;4890:4;4896:2;4900:7;4873:39;;;;;;;;;;;;:16;:39::i;:::-;4787:132;;;:::o;561:314:9:-;826:42;842:1;846:7;735:10:12;4562:7:6;:34::i;2185:118::-;2248:7;2274:22;2288:7;2274:13;:22::i;1920:208::-;1983:7;-1:-1:-1;;;;;2006:19:6;;2002:87;;2048:30;;-1:-1:-1;;;2048:30:6;;2075:1;2048:30;;;1679:51:29;1652:18;;2048:30:6;1533:203:29;2002:87:6;-1:-1:-1;;;;;;2105:16:6;;;;;:9;:16;;;;;;;1920:208::o;2518:93::-;2565:13;2597:7;2590:14;;;;;:::i;3718:144::-;3803:52;735:10:12;3836:8:6;3846;3803:18;:52::i;4985:208::-;5098:31;5111:4;5117:2;5121:7;5098:12;:31::i;:::-;5139:47;5162:4;5168:2;5172:7;5181:4;5139:22;:47::i;566:165:21:-;665:13;701:23;716:7;701:14;:23::i;3928:153:6:-;-1:-1:-1;;;;;4039:25:6;;;4016:4;4039:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;3928:153::o;937:207:10:-;1039:4;-1:-1:-1;;;;;;1062:35:10;;-1:-1:-1;;;1062:35:10;;:75;;;1101:36;1125:11;1101:23;:36::i;16146:241:6:-;16209:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;16271:88;;16317:31;;-1:-1:-1;;;16317:31:6;;;;;2848:25:29;;;2821:18;;16317:31:6;2702:177:29;14426:120:6;14506:33;14515:2;14519:7;14528:4;14534;14506:8;:33::i;8838:795::-;8924:7;5799:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5799:16:6;;;;9035:18;;;9031:86;;9069:37;9086:4;9092;9098:7;9069:16;:37::i;:::-;-1:-1:-1;;;;;9161:18:6;;;9157:256;;9277:48;9294:1;9298:7;9315:1;9319:5;9277:8;:48::i;:::-;-1:-1:-1;;;;;9368:15:6;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;9368:20:6;;;9157:256;-1:-1:-1;;;;;9427:16:6;;;9423:107;;-1:-1:-1;;;;;9487:13:6;;;;;;:9;:13;;;;;:18;;9504:1;9487:18;;;9423:107;9540:16;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9540:21:6;-1:-1:-1;;;;;9540:21:6;;;;;;;;;9577:27;;9540:16;;9577:27;;;;;;;9622:4;8838:795;-1:-1:-1;;;;8838:795:6:o;15599:312::-;-1:-1:-1;;;;;15706:22:6;;15702:91;;15751:31;;-1:-1:-1;;;15751:31:6;;-1:-1:-1;;;;;1697:32:29;;15751:31:6;;;1679:51:29;1652:18;;15751:31:6;1533:203:29;15702:91:6;-1:-1:-1;;;;;15802:25:6;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;15802:46:6;;;;;;;;;;15863:41;;540::29;;;15863::6;;513:18:29;15863:41:6;;;;;;;15599:312;;;:::o;16926:782::-;-1:-1:-1;;;;;17042:14:6;;;:18;17038:664;;17080:71;;-1:-1:-1;;;17080:71:6;;-1:-1:-1;;;;;17080:36:6;;;;;:71;;735:10:12;;17131:4:6;;17137:7;;17146:4;;17080:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17080:71:6;;;;;;;;-1:-1:-1;;17080:71:6;;;;;;;;;;;;:::i;:::-;;;17076:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17389:6;:13;17406:1;17389:18;17385:293;;17438:25;;-1:-1:-1;;;17438:25:6;;-1:-1:-1;;;;;1697:32:29;;17438:25:6;;;1679:51:29;1652:18;;17438:25:6;1533:203:29;17385:293:6;17630:6;17624:13;17615:6;17611:2;17607:15;17600:38;17076:616;-1:-1:-1;;;;;;17198:51:6;;-1:-1:-1;;;17198:51:6;17194:130;;17280:25;;-1:-1:-1;;;17280:25:6;;-1:-1:-1;;;;;1697:32:29;;17280:25:6;;;1679:51:29;1652:18;;17280:25:6;1533:203:29;17194:130:6;17152:186;16926:782;;;;:::o;1210:593:10:-;1283:13;1308:22;1322:7;1308:13;:22::i;:::-;-1:-1:-1;1341:23:10;1367:19;;;:10;:19;;;;;1341:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1396:18;1417:10;3250:9:6;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;1417:10:10;1396:31;;1506:4;1500:18;1522:1;1500:23;1496:70;;-1:-1:-1;1546:9:10;1210:593;-1:-1:-1;;1210:593:10:o;1496:70::-;1665:23;;:27;1661:95;;1729:4;1735:9;1715:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1708:37;;;;1210:593;;;:::o;1661:95::-;1773:23;1788:7;1773:14;:23::i;:::-;1766:30;1210:593;-1:-1:-1;;;;1210:593:10:o;1561:300:6:-;1663:4;-1:-1:-1;;;;;;1698:40:6;;-1:-1:-1;;;1698:40:6;;:104;;-1:-1:-1;;;;;;;1754:48:6;;-1:-1:-1;;;1754:48:6;1698:104;:156;;;-1:-1:-1;;;;;;;;;;861:40:16;;;1818:36:6;762:146:16;14728:662:6;14888:9;:31;;;-1:-1:-1;;;;;;14901:18:6;;;;14888:31;14884:460;;;14935:13;14951:22;14965:7;14951:13;:22::i;:::-;14935:38;-1:-1:-1;;;;;;15101:18:6;;;;;;:35;;;15132:4;-1:-1:-1;;;;;15123:13:6;:5;-1:-1:-1;;;;;15123:13:6;;;15101:35;:69;;;;;15141:29;15158:5;15165:4;15141:16;:29::i;:::-;15140:30;15101:69;15097:142;;;15197:27;;-1:-1:-1;;;15197:27:6;;-1:-1:-1;;;;;1697:32:29;;15197:27:6;;;1679:51:29;1652:18;;15197:27:6;1533:203:29;15097:142:6;15257:9;15253:81;;;15311:7;15307:2;-1:-1:-1;;;;;15291:28:6;15300:5;-1:-1:-1;;;;;15291:28:6;;;;;;;;;;;15253:81;14921:423;14884:460;-1:-1:-1;;15354:24:6;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15354:29:6;-1:-1:-1;;;;;15354:29:6;;;;;;;;;;14728:662::o;7082:368::-;7194:38;7208:5;7215:7;7224;7194:13;:38::i;:::-;7189:255;;-1:-1:-1;;;;;7252:19:6;;7248:186;;7298:31;;-1:-1:-1;;;7298:31:6;;;;;2848:25:29;;;2821:18;;7298:31:6;2702:177:29;7248:186:6;7375:44;;-1:-1:-1;;;7375:44:6;;-1:-1:-1;;;;;6982:32:29;;7375:44:6;;;6964:51:29;7031:18;;;7024:34;;;6937:18;;7375:44:6;6790:274:29;2677:255:6;2741:13;2766:22;2780:7;2766:13;:22::i;:::-;;2799:21;2823:10;3250:9;;;;;;;;;-1:-1:-1;3250:9:6;;;3174:92;2823:10;2799:34;;2874:1;2856:7;2850:21;:25;:75;;;;;;;;;;;;;;;;;2892:7;2901:18;:7;:16;:18::i;:::-;2878:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2850:75;2843:82;2677:255;-1:-1:-1;;;2677:255:6:o;6376:272::-;6479:4;-1:-1:-1;;;;;6514:21:6;;;;;;:127;;;6561:7;-1:-1:-1;;;;;6552:16:6;:5;-1:-1:-1;;;;;6552:16:6;;:52;;;;6572:32;6589:5;6596:7;6572:16;:32::i;:::-;6552:88;;;-1:-1:-1;;6008:7:6;6034:24;;;:15;:24;;;;;;-1:-1:-1;;;;;6034:24:6;;;6608:32;;;;6495:146;-1:-1:-1;6376:272:6:o;637:698:13:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:13;-1:-1:-1;794:41:13;-1:-1:-1;955:28:13;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:13;-1:-1:-1;;;1175:2:13;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:13;1010:282;1256:21;-1:-1:-1;1312:6:13;637:698;-1:-1:-1;;;637:698:13:o;12214:916:18:-;12267:7;;-1:-1:-1;;;12342:17:18;;12338:103;;-1:-1:-1;;;12379:17:18;;;-1:-1:-1;12424:2:18;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:18;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:18;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:18;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:18;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:18;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:18:o;14:131:29:-;-1:-1:-1;;;;;;88:32:29;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:29;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:29;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:29:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:29;;1348:180;-1:-1:-1;1348:180:29:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:29;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:29:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:29;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5541:489::-;-1:-1:-1;;;;;5810:15:29;;;5792:34;;5862:15;;5857:2;5842:18;;5835:43;5909:2;5894:18;;5887:34;;;5957:3;5952:2;5937:18;;5930:31;;;5735:4;;5978:46;;6004:19;;5996:6;5978:46;:::i;:::-;5970:54;5541:489;-1:-1:-1;;;;;;5541:489:29:o;6035:249::-;6104:6;6157:2;6145:9;6136:7;6132:23;6128:32;6125:52;;;6173:1;6170;6163:12;6125:52;6205:9;6199:16;6224:30;6248:5;6224:30;:::i;6289:496::-;6468:3;6506:6;6500:13;6522:66;6581:6;6576:3;6569:4;6561:6;6557:17;6522:66;:::i;:::-;6651:13;;6610:16;;;;6673:70;6651:13;6610:16;6720:4;6708:17;;6673:70;:::i;:::-;6759:20;;6289:496;-1:-1:-1;;;;6289:496:29:o"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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 EIP-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.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaCardsNFT.v1.sol\":\"NofGammaCardsNFTV1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xebe87f022ffc3fe51a90a26b9a45ad7f8210d9c5ad4f97e7bb91b4173370f11d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://129575a27c663ed33559df5cbe5e1d779bb58bce09394ee73669e7be728e57b7\",\"dweb:/ipfs/QmU9LQfrZ6m5w4fi1qjm3bMz4y7nH5QwdYGzEWtBKbZMen\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol\":{\"keccak256\":\"0xc48434419baa510862ba4b4802bc0500ccddadd02ae2f195548af748c3206b20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ae0bacd8623ce1cfad08c70ed111e995d23c66ad057b779b838ad2e5598681\",\"dweb:/ipfs/QmWZGSEjZ9DmbQmHjjsdkRbJtU25Ai65VScDnEziRCkPRB\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\":{\"keccak256\":\"0xcc6f49e0c57072d6a18eef0d5fc22a4cc20462c18f0c365d2dd9a2c732fde670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24915e61c7896c336b60788408cd5792b97b782e98e392920a2c55eb1803fe96\",\"dweb:/ipfs/QmVHhcmFnMYZBCjnVUk6f5quMCDsBR2j669a1nuMiGWY9Z\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/GammaCardsNFT.v1.sol\":{\"keccak256\":\"0xbdbb762093687997188b2187908475926e70e369902a1d760edc1448cd4b919f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94260ed13cc49644a86ee1dbd860d0bd2a41da8bcd1fdf188bb6da6c746457e4\",\"dweb:/ipfs/QmaWSL4TPK15F5sxFLbeb53yqCaG6Vbv6SqjWES9Vz4tez\"]}},\"version\":1}"}},"contracts/gamma/GammaOffers.v4.sol":{"IGammaCardsContract":{"abi":[{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint8","name":"cardNumberFrom","type":"uint8"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint8","name":"cardNumberTo","type":"uint8"}],"name":"exchangeCardsOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasCardByOffer","outputs":[{"internalType":"bool","name":"has","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"restoreCardByOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"exchangeCardsOffer(address,uint8,address,uint8)":"ad1684fa","hasCardByOffer(address,uint8)":"8bf670c8","removeCardByOffer(address,uint8)":"7155a3ac","restoreCardByOffer(address,uint8)":"155e2f92"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberFrom\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberTo\",\"type\":\"uint8\"}],\"name\":\"exchangeCardsOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasCardByOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"has\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"restoreCardByOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaOffers.v4.sol\":\"IGammaCardsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaOffers.v4.sol\":{\"keccak256\":\"0xa02506a051d4db4e86b1525dcf5211a11568b325e87dd461fffa774a46386a24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67b3fa48a581414f470af31f1727e436634b2f5c1bd7ccef8fa9e8fbcc02fbd9\",\"dweb:/ipfs/QmZFzedTdF9zZ9EvFDR9yaesETwBXm1DQ89gWun2B9gd17\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"NofGammaOffersV4":{"abi":[{"inputs":[{"internalType":"address","name":"_cardsContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExchangeError","type":"error"},{"inputs":[],"name":"GammaCardsContractNotSet","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidCard","type":"error"},{"inputs":[],"name":"InvalidCardNumber","type":"error"},{"inputs":[],"name":"InvalidOfferId","type":"error"},{"inputs":[],"name":"OfferAlreadyExists","type":"error"},{"inputs":[],"name":"OfferDoesNotExists","type":"error"},{"inputs":[],"name":"OfferNotDeleted","type":"error"},{"inputs":[],"name":"OffersMaximumAllowed","type":"error"},{"inputs":[],"name":"OnlyCardsContract","type":"error"},{"inputs":[],"name":"OnlyOwners","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"RemoveOfferFromCardNumberMapping_DoNotMatch","type":"error"},{"inputs":[],"name":"RemoveOfferFromUserMapping_DoNotMatch","type":"error"},{"inputs":[],"name":"UserAlreadyHasCard","type":"error"},{"inputs":[],"name":"UserDoesNotHaveCard","type":"error"},{"anonymous":false,"inputs":[],"name":"AllOffersRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newGammaCardsContract","type":"address"}],"name":"NewGammaCardsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumber","type":"uint8"},{"indexed":false,"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"}],"name":"OfferCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"OfferRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"UserOffersRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"canAnyUserPublishOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"canUserPublishOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"changeRemoveCardinInventoryWhenOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint8","name":"cardNumberWanted","type":"uint8"},{"internalType":"address","name":"offerWallet","type":"address"},{"internalType":"uint8","name":"offerCardNumber","type":"uint8"}],"name":"confirmOfferExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"}],"name":"createOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"}],"name":"createOfferWithoUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deleteAllOffers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gammaCardsContract","outputs":[{"internalType":"contract IGammaCardsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxOffersAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxOffersByUserAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getOfferByIndex","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"offerId","type":"string"}],"name":"getOfferByOfferId","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOfferByUserAndCardNumber","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOffers","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOffersByCardNumber","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"getOffersByCardNumberCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOffersByUser","outputs":[{"components":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"uint8[]","name":"wantedCardNumbers","type":"uint8[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct NofGammaOffersV4.Offer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getOffersByUserCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOffersCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"hasOffer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"offers","outputs":[{"internalType":"string","name":"offerId","type":"string"},{"internalType":"uint8","name":"cardNumber","type":"uint8"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"offersByCardNumberCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"offersByUserCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offersTotalCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeOfferByCardNumber","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"cardNumber","type":"uint8"}],"name":"removeOfferByUserAndCardNumber","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeOffersByUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ownerToRemove","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaCardsContract","type":"address"}],"name":"setGammaCardsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxCardNumbersAllowed","type":"uint256"}],"name":"setMaxCardNumbersAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxOffersAllowed","type":"uint256"}],"name":"setMaxOffersAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxOffersByUserAllowed","type":"uint256"}],"name":"setMaxOffersByUserAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_6112":{"entryPoint":null,"id":6112,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":232,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:514:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:29","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:29"},"nodeType":"YulFunctionCall","src":"143:12:29"},"nodeType":"YulExpressionStatement","src":"143:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:29"},"nodeType":"YulFunctionCall","src":"112:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:29"},"nodeType":"YulFunctionCall","src":"108:32:29"},"nodeType":"YulIf","src":"105:52:29"},{"nodeType":"YulVariableDeclaration","src":"166:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:29"},"nodeType":"YulFunctionCall","src":"179:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:29"},"nodeType":"YulFunctionCall","src":"260:12:29"},"nodeType":"YulExpressionStatement","src":"260:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:29"},"nodeType":"YulFunctionCall","src":"239:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:29"},"nodeType":"YulFunctionCall","src":"235:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:29"},"nodeType":"YulFunctionCall","src":"224:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:29"},"nodeType":"YulFunctionCall","src":"214:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:29"},"nodeType":"YulFunctionCall","src":"207:50:29"},"nodeType":"YulIf","src":"204:70:29"},{"nodeType":"YulAssignment","src":"283:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:29"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:29","type":""}],"src":"14:290:29"},{"body":{"nodeType":"YulBlock","src":"410:102:29","statements":[{"nodeType":"YulAssignment","src":"420:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"432:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"443:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"428:3:29"},"nodeType":"YulFunctionCall","src":"428:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"420:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"462:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"477:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"493:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"498:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"489:3:29"},"nodeType":"YulFunctionCall","src":"489:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"485:3:29"},"nodeType":"YulFunctionCall","src":"485:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"473:3:29"},"nodeType":"YulFunctionCall","src":"473:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"455:6:29"},"nodeType":"YulFunctionCall","src":"455:51:29"},"nodeType":"YulExpressionStatement","src":"455:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"379:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"390:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"401:4:29","type":""}],"src":"309:203:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":1898},{"length":20,"start":3666}]}},"object":"60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b506040516200379b3803806200379b8339810160408190526200004d9162000138565b33806200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f81620000e8565b506001600160a01b038116620000a85760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff191690911790556200016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014b57600080fd5b81516001600160a01b03811681146200016357600080fd5b9392505050565b613621806200017a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0x1388 PUSH1 0x4 SSTORE PUSH1 0x5 DUP1 SSTORE PUSH1 0x78 PUSH1 0x6 SSTORE PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x379B CODESIZE SUB DUP1 PUSH3 0x379B DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x4D SWAP2 PUSH3 0x138 JUMP JUMPDEST CALLER DUP1 PUSH3 0x74 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x7F DUP2 PUSH3 0xE8 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x16A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x3621 DUP1 PUSH3 0x17A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x227 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7594A6ED GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xCE7483D5 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xE2B36596 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE2B36596 EQ PUSH2 0x4F7 JUMPI DUP1 PUSH4 0xE359A0A1 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xE5E5F732 EQ PUSH2 0x51D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xFC9E80FC EQ PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCE7483D5 EQ PUSH2 0x486 JUMPI DUP1 PUSH4 0xCF86F8E5 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xD250F03A EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xD827A8F4 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xE02F9723 EQ PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90222AA1 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x90222AA1 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x9618B333 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x9F915069 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0xBA79B77B EQ PUSH2 0x46B JUMPI DUP1 PUSH4 0xC08029E7 EQ PUSH2 0x473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7594A6ED EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x8400A189 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x8A72EA6A EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 GT PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x5A919AEB GT PUSH2 0x182 JUMPI DUP1 PUSH4 0x5A919AEB EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x5BBFBFD6 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x619980DC EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x3EE992EE EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x58E57EBB EQ PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EDB5FCF GT PUSH2 0x1FA JUMPI DUP1 PUSH4 0x2EDB5FCF EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x322FBA27 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x3808DFE7 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3A027073 EQ PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCDB3117 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x17A1FED9 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x29D3F60B EQ PUSH2 0x27A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23F PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x556 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x59B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E82 JUMP JUMPDEST PUSH2 0x641 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x5 SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x683 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x743 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x30C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x332 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F6E JUMP JUMPDEST PUSH2 0x96F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x980 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x35A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x36D CALLDATASIZE PUSH1 0x4 PUSH2 0x3144 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x23F PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0xC02 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x4 SLOAD GT PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xC83 JUMP JUMPDEST PUSH2 0x265 PUSH2 0xCFA JUMP JUMPDEST PUSH2 0x23F PUSH2 0x3C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x33F PUSH2 0x3E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0xD0E JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3161 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xF8A JUMP JUMPDEST PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x114D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x319C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x265 PUSH2 0x481 CALLDATASIZE PUSH1 0x4 PUSH2 0x31AF JUMP JUMPDEST PUSH2 0x135D JUMP JUMPDEST PUSH2 0x23F PUSH2 0x494 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x418 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x23F PUSH2 0x4D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x4F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1681 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x3203 JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x518 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x18BF JUMP JUMPDEST PUSH2 0x265 PUSH2 0x52B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1A4B JUMP JUMPDEST PUSH2 0x265 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1A80 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x63A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67D DUP5 DUP5 DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6AC JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP6 AND SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x725 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST DUP1 PUSH2 0x72F DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6AF JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x773 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x8B3 JUMPI PUSH1 0x9 PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x797 JUMPI PUSH2 0x797 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x7CD SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x7E6 JUMPI PUSH2 0x7E6 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xA SWAP3 SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x830 JUMPI PUSH2 0x830 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x860 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x879 JUMPI PUSH2 0x879 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE DUP1 PUSH2 0x8AB DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x776 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xD DUP2 SWAP1 SSTORE PUSH2 0x8C7 SWAP1 PUSH1 0x8 SWAP1 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x47E81EFC038E27BB296DEC5D44262943D2C2BBEC28F461787A9CC53885694CB0 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x922 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x934 CALLER DUP5 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x954 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x967 CALLER DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x97B DUP4 CALLER DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xB0B JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x9D7 SWAP1 PUSH2 0x327D 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 0xA03 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA50 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA25 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA50 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA33 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xAD0 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xAA1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x9A4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB6B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xBEF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC3E DUP5 DUP5 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC67 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7A DUP6 DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x60E JUMP JUMPDEST PUSH2 0xD02 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xD0C PUSH1 0x0 PUSH2 0x23E5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE PUSH1 0x60 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0xD73 SWAP1 PUSH2 0x327D 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 0xD9F SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xE3D JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xD40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xEC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0xEE5 SWAP1 PUSH2 0x327D 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 0xF11 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0xFF SWAP1 SWAP2 AND SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP4 SWAP1 SWAP3 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1019 SWAP1 PUSH2 0x327D 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 0x1045 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1092 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1067 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1092 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1075 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1112 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x10E3 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xFE6 JUMP JUMPDEST PUSH2 0x1155 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x117C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1354 JUMPI DUP5 PUSH1 0xFF AND DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x11C0 JUMPI PUSH2 0x11C0 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x1342 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x11EE JUMPI PUSH2 0x11EE PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1217 SWAP1 PUSH2 0x327D 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 0x1243 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1265 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1290 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1310 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x12E1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 POP PUSH2 0x73D SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x134C DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11A2 JUMP JUMPDEST POP PUSH2 0xC7A PUSH2 0x2435 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1369 DUP4 DUP4 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DED2293 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1447 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x13E1 SWAP1 DUP8 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1400 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1424 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1177B295 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14BC JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x149B JUMPI DUP7 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1470 JUMPI PUSH2 0x1470 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1489 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x149B JUMP JUMPDEST DUP1 PUSH2 0x1493 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x144B JUMP JUMPDEST POP DUP1 PUSH2 0x14BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEFA237 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x14CF DUP6 DUP6 DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH2 0x2241 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x14EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B440351 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x568B427D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF DUP1 DUP11 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP3 AND PUSH1 0x44 DUP5 ADD MSTORE DUP8 AND PUSH1 0x64 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xAD1684FA SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1563 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x8BF670C8 SWAP2 POP PUSH2 0x1599 SWAP1 DUP11 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15DC SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x165A JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1615 SWAP1 DUP9 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFC9716B9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x16B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH2 0x16BE PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x18B6 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16DC SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1705 JUMPI PUSH2 0x1705 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1726 SWAP2 SWAP1 PUSH2 0x332B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH2 0x18A4 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1754 JUMPI PUSH2 0x1754 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x177D SWAP1 PUSH2 0x327D 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 0x17A9 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x17F6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17CB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x17F6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17D9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1876 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x1847 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x18AE DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x16C1 JUMP JUMPDEST POP PUSH2 0x73D PUSH2 0x2435 JUMP JUMPDEST PUSH2 0x18C7 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 LT PUSH2 0x18E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5129CAB1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18FC JUMPI PUSH2 0x18FC PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1925 SWAP1 PUSH2 0x327D 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 0x1951 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x199E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x199E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1A1E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x19EF JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A7B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x1A88 PUSH2 0x23B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1AB7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AC0 DUP2 PUSH2 0x23E5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1AF1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA71ED6C7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B18 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5A JUMPI PUSH2 0x1B5A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x1B76 SWAP1 PUSH2 0x327D 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 0x1BA2 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1BEF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1BC4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1BEF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1BD2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1C0A JUMPI PUSH2 0x1C0A PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SWAP1 POP PUSH2 0x1C2E DUP8 DUP3 DUP5 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x1C37 DUP3 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1C5B SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C75 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP DUP1 DUP1 PUSH2 0x1C89 SWAP1 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1B3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1CB3 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x65419C67E554142D50C59ABD004485123CA498611A223F842E75DD96225BA4C8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D37 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCFDF3505 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD LT PUSH2 0x1D71 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xD SLOAD LT PUSH2 0x1D95 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1DC8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E0B SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1E2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x142D47A1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1E8E JUMPI DUP4 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1E53 JUMPI PUSH2 0x1E53 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1E7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1E86 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E2E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1E9B DUP6 DUP6 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1ECA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEEE5C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1EF3 SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1F1B SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1F35 SWAP2 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE TIMESTAMP PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH1 0x5 SWAP1 SWAP2 MUL PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 ADD SWAP1 DUP2 SWAP1 PUSH2 0x1FB1 SWAP1 DUP3 PUSH2 0x3415 JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD PUSH2 0x1FE4 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2B42 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x80 SWAP1 SWAP3 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x2034 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2044 JUMPI PUSH2 0x2044 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x2071 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x20A0 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x20F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2102 JUMPI PUSH2 0x2102 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x212F DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x215E SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x21FE JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C5568EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7155A3AC SWAP1 PUSH2 0x21CB SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0xED750964F1F81F105E56DFD1121427E0898E7BC23D6C10E92D851A2D35E0CFC5 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2231 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x226A JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2275 DUP6 DUP6 DUP6 PUSH2 0x29AF JUMP JUMPDEST PUSH2 0x2280 DUP6 DUP6 DUP6 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x2289 DUP4 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22B3 SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22DB SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x22F5 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x7 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x230A JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x2374 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xAAF17C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x155E2F92 SWAP1 PUSH2 0x2341 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x235B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x236F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0x7911E34642EAE38762395A3DD0FA3308D0F8908B92FE36C41543D635AB7CB8F5 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x23A5 SWAP3 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD0C JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1AAE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x243D PUSH2 0x2B07 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP3 ADD DUP2 DUP2 MSTORE DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP3 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 MSTORE SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x2550 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x24CC SWAP1 PUSH2 0x327D 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 0x24F8 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2545 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x251A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2545 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2528 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP5 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2720 JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2571 JUMPI PUSH2 0x2571 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x25C6 JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x25AC JUMPI PUSH2 0x25AC PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x57AEB863 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH2 0x25F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26B4 JUMPI DUP2 SLOAD DUP3 SWAP1 PUSH2 0x2609 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2619 JUMPI PUSH2 0x2619 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2639 JUMPI PUSH2 0x2639 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x2654 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x2683 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE JUMPDEST DUP2 DUP1 SLOAD DUP1 PUSH2 0x26C4 JUMPI PUSH2 0x26C4 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x26E4 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x26FE PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH2 0x63A JUMP JUMPDEST DUP1 PUSH2 0x272A DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2492 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x29A8 JUMPI PUSH1 0x8 SLOAD DUP2 LT DUP1 ISZERO PUSH2 0x2803 JUMPI POP PUSH2 0x2803 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2763 JUMPI PUSH2 0x2763 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x277F SWAP1 PUSH2 0x327D 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 0x27AB SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP6 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2996 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x281B JUMPI PUSH2 0x281B PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x2835 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x284F PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD PUSH2 0x287A SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x288A JUMPI PUSH2 0x288A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28AB JUMPI PUSH2 0x28AB PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x28C6 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x28F5 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x2936 JUMPI PUSH2 0x2936 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x2956 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2970 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x29A8 JUMP JUMPDEST DUP1 PUSH2 0x29A0 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2737 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x29E7 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST ISZERO PUSH2 0x2A7B JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A08 JUMPI PUSH2 0x2A08 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x2A5D JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A43 JUMPI PUSH2 0x2A43 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB7F2D833 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A85 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AA0 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AC7 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x5 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2C95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x2BA9 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2B6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BD6 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2BA9 JUMP JUMPDEST POP JUMPDEST POP PUSH2 0x2BE4 SWAP3 SWAP2 POP PUSH2 0x2CE5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2C1B JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x2C42 SWAP1 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x2C52 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 PUSH2 0x2CA9 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2CC3 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0x5 ADD PUSH2 0x2C95 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2CE6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D72 JUMPI PUSH2 0x2D72 PUSH2 0x2D33 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DA5 JUMPI PUSH2 0x2DA5 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x2DB8 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D49 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2DCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2E28 JUMPI PUSH2 0x2E28 PUSH2 0x2D33 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x2E37 DUP3 DUP3 ADD PUSH2 0x2D49 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x2E77 JUMPI PUSH2 0x2E68 DUP4 PUSH2 0x2DEA JUMP JUMPDEST DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x2E57 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EBC DUP9 DUP4 DUP10 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP6 POP PUSH2 0x2ECA PUSH1 0x20 DUP9 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP5 POP PUSH2 0x2ED8 PUSH1 0x40 DUP9 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EFB DUP8 DUP3 DUP9 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F23 DUP4 PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x2F31 PUSH1 0x20 DUP5 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FA7 DUP8 DUP4 DUP9 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP5 POP PUSH2 0x2FB5 PUSH1 0x20 DUP8 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2FFD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2FE5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x301E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2FE2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3065 JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3046 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0xA0 DUP5 MSTORE PUSH2 0x3085 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3006 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x30AB DUP3 DUP3 PUSH2 0x3032 JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP8 ADD MSTORE PUSH1 0x80 SWAP5 DUP6 ADD MLOAD SWAP5 SWAP1 SWAP6 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP4 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3129 JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x3117 DUP6 DUP4 MLOAD PUSH2 0x3070 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x30FB JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3174 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3006 JUMP JUMPDEST PUSH1 0xFF SWAP6 SWAP1 SWAP6 AND PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2D2C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3070 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31CE DUP6 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x31DC PUSH1 0x20 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP3 POP PUSH2 0x31EA PUSH1 0x40 DUP7 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x31F8 PUSH1 0x60 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x322C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x967 DUP5 DUP3 DUP6 ADD PUSH2 0x2D7A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x3276 JUMPI PUSH2 0x3276 PUSH2 0x324E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3291 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x32B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x3306 JUMPI PUSH2 0x3306 PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3321 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x3339 DUP2 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x3351 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3366 JUMPI PUSH2 0x3395 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x3395 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x338C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x3373 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x33EE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x340D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x33FA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x342F JUMPI PUSH2 0x342F PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3443 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST DUP5 PUSH2 0x33C7 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3478 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3460 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x340D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x34A7 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3488 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x34C5 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x34E0 JUMPI POP POP JUMP JUMPDEST PUSH2 0x34EA DUP3 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3502 JUMPI PUSH2 0x3502 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3510 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3544 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x352C JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x63A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x357E JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x355E JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x34C5 JUMPI SWAP4 ADD SLOAD PUSH1 0x0 NOT PUSH1 0xF8 PUSH1 0x3 DUP8 SWAP1 SHL AND SHR NOT AND SWAP1 SWAP3 SSTORE POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xC7A SWAP1 DUP4 ADD DUP5 PUSH2 0x3032 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x49 LOG3 PUSH1 0xA 0x28 0x49 LOG0 0x4D SWAP12 0xCE SWAP11 NOT SWAP9 SAR EXTCODEHASH PUSH8 0x80407816218C7190 0xE5 SUB 0xAF GAS 0xDC 0xB5 0xD7 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"1095:12929:22:-:0;;;1312:4;1277:40;;1362:1;1321:43;;1408:3;1368:44;;1416:43;;;-1:-1:-1;;1416:43:22;;;2382:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2427:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;455:51:29;428:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;2449:28:22;::::1;2445:57;;2486:16;;-1:-1:-1::0;;;2486:16:22::1;;;;;;;;;;;2445:57;2508:18;:56:::0;;-1:-1:-1;;;;;;2508:56:22::1;-1:-1:-1::0;;;;;2508:56:22;;;::::1;::::0;;;::::1;::::0;;2588:10:::1;-1:-1:-1::0;2570:29:22;;;:10:::1;:29;::::0;;;;:36;;-1:-1:-1;;2570:36:22::1;::::0;;::::1;::::0;;1095:12929;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:29:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:29;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:29:o;309:203::-;1095:12929:22;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_84":{"entryPoint":9144,"id":84,"parameterSlots":0,"returnSlots":0},"@_createOfferWithUser_6423":{"entryPoint":7438,"id":6423,"parameterSlots":4,"returnSlots":0},"@_emptyOffer_7447":{"entryPoint":9269,"id":7447,"parameterSlots":0,"returnSlots":1},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_removeOfferByOfferId_7425":{"entryPoint":10034,"id":7425,"parameterSlots":1,"returnSlots":1},"@_removeOfferByUserAndCardNumber_7191":{"entryPoint":8769,"id":7191,"parameterSlots":4,"returnSlots":1},"@_removeOfferFromCardNumberMapping_7358":{"entryPoint":9342,"id":7358,"parameterSlots":3,"returnSlots":0},"@_removeOfferFromUserMapping_7275":{"entryPoint":10671,"id":7275,"parameterSlots":3,"returnSlots":0},"@_sameOfferId_7471":{"entryPoint":10893,"id":7471,"parameterSlots":2,"returnSlots":1},"@_transferOwnership_146":{"entryPoint":9189,"id":146,"parameterSlots":1,"returnSlots":0},"@addOwner_6126":{"entryPoint":3203,"id":6126,"parameterSlots":1,"returnSlots":0},"@canAnyUserPublishOffer_6698":{"entryPoint":null,"id":6698,"parameterSlots":0,"returnSlots":1},"@canUserPublishOffer_6688":{"entryPoint":null,"id":6688,"parameterSlots":1,"returnSlots":1},"@changeRemoveCardinInventoryWhenOffer_6216":{"entryPoint":3007,"id":6216,"parameterSlots":1,"returnSlots":0},"@confirmOfferExchange_6875":{"entryPoint":4957,"id":6875,"parameterSlots":4,"returnSlots":0},"@createOfferWithoUser_6257":{"entryPoint":1601,"id":6257,"parameterSlots":4,"returnSlots":0},"@createOffer_6235":{"entryPoint":2415,"id":6235,"parameterSlots":3,"returnSlots":0},"@deleteAllOffers_6938":{"entryPoint":1859,"id":6938,"parameterSlots":0,"returnSlots":0},"@gammaCardsContract_5961":{"entryPoint":null,"id":5961,"parameterSlots":0,"returnSlots":0},"@getMaxOffersAllowed_6486":{"entryPoint":null,"id":6486,"parameterSlots":0,"returnSlots":1},"@getMaxOffersByUserAllowed_6494":{"entryPoint":null,"id":6494,"parameterSlots":0,"returnSlots":1},"@getOfferByIndex_6525":{"entryPoint":6335,"id":6525,"parameterSlots":1,"returnSlots":1},"@getOfferByOfferId_6573":{"entryPoint":5814,"id":6573,"parameterSlots":1,"returnSlots":1},"@getOfferByUserAndCardNumber_6674":{"entryPoint":4429,"id":6674,"parameterSlots":2,"returnSlots":1},"@getOffersByCardNumberCounter_6470":{"entryPoint":null,"id":6470,"parameterSlots":1,"returnSlots":1},"@getOffersByCardNumber_6611":{"entryPoint":3342,"id":6611,"parameterSlots":1,"returnSlots":1},"@getOffersByUserCounter_6458":{"entryPoint":1366,"id":6458,"parameterSlots":1,"returnSlots":1},"@getOffersByUser_6597":{"entryPoint":3978,"id":6597,"parameterSlots":1,"returnSlots":1},"@getOffersCounter_6478":{"entryPoint":null,"id":6478,"parameterSlots":0,"returnSlots":1},"@getOffers_6504":{"entryPoint":2432,"id":6504,"parameterSlots":0,"returnSlots":1},"@hasOffer_6746":{"entryPoint":1667,"id":6746,"parameterSlots":2,"returnSlots":1},"@isOwner_6436":{"entryPoint":null,"id":6436,"parameterSlots":1,"returnSlots":1},"@offersByCardNumberCounter_6021":{"entryPoint":null,"id":6021,"parameterSlots":0,"returnSlots":0},"@offersByUserCounter_6017":{"entryPoint":null,"id":6017,"parameterSlots":0,"returnSlots":0},"@offersTotalCounter_6023":{"entryPoint":null,"id":6023,"parameterSlots":0,"returnSlots":0},"@offers_6001":{"entryPoint":3762,"id":6001,"parameterSlots":0,"returnSlots":0},"@owner_67":{"entryPoint":null,"id":67,"parameterSlots":0,"returnSlots":1},"@removeOfferByCardNumber_6977":{"entryPoint":2343,"id":6977,"parameterSlots":1,"returnSlots":1},"@removeOfferByUserAndCardNumber_7017":{"entryPoint":3074,"id":7017,"parameterSlots":2,"returnSlots":1},"@removeOffersByUser_7115":{"entryPoint":6851,"id":7115,"parameterSlots":1,"returnSlots":1},"@removeOwner_6140":{"entryPoint":1435,"id":6140,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":3322,"id":98,"parameterSlots":0,"returnSlots":0},"@setGammaCardsContract_6168":{"entryPoint":2836,"id":6168,"parameterSlots":1,"returnSlots":0},"@setMaxCardNumbersAllowed_6204":{"entryPoint":5761,"id":6204,"parameterSlots":1,"returnSlots":0},"@setMaxOffersAllowed_6180":{"entryPoint":6731,"id":6180,"parameterSlots":1,"returnSlots":0},"@setMaxOffersByUserAllowed_6192":{"entryPoint":2290,"id":6192,"parameterSlots":1,"returnSlots":0},"@transferOwnership_126":{"entryPoint":6784,"id":126,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":11514,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_uint8_dyn":{"entryPoint":11771,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_string":{"entryPoint":11642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint8":{"entryPoint":12039,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint8t_addresst_uint8":{"entryPoint":12719,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":12612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":13011,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":12803,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_addresst_uint8t_array$_t_uint8_$dyn_memory_ptr":{"entryPoint":11906,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_string_memory_ptrt_uint8t_array$_t_uint8_$dyn_memory_ptr":{"entryPoint":12142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":12090,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8":{"entryPoint":12115,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":11754,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_uint8_dyn":{"entryPoint":12338,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":12294,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_Offer":{"entryPoint":12400,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13099,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed":{"entryPoint":12983,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8_t_address_t_uint8__to_t_address_t_uint8_t_address_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__to_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":13736,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":12500,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IGammaCardsContract_$5952__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint8_t_address_t_uint256__to_t_string_memory_ptr_t_uint8_t_address_t_uint256__fromStack_reversed":{"entryPoint":12641,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_Offer_$5997_memory_ptr__to_t_struct$_Offer_$5997_memory_ptr__fromStack_reversed":{"entryPoint":12700,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":11593,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":13236,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":13217,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":13255,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":13333,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_storage_to_t_string_storage":{"entryPoint":13525,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":12258,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":12925,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":12900,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint8":{"entryPoint":13040,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":12878,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":13781,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":12856,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":11571,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":12598,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17160:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:29","statements":[{"nodeType":"YulAssignment","src":"73:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:29"},"nodeType":"YulFunctionCall","src":"82:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:29"}]},{"body":{"nodeType":"YulBlock","src":"165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:29"},"nodeType":"YulFunctionCall","src":"167:12:29"},"nodeType":"YulExpressionStatement","src":"167:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:29"},"nodeType":"YulFunctionCall","src":"142:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:29"},"nodeType":"YulFunctionCall","src":"131:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:29"},"nodeType":"YulFunctionCall","src":"121:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:29"},"nodeType":"YulFunctionCall","src":"114:50:29"},"nodeType":"YulIf","src":"111:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:29","type":""}],"src":"14:173:29"},{"body":{"nodeType":"YulBlock","src":"262:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"308:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:29"},"nodeType":"YulFunctionCall","src":"310:12:29"},"nodeType":"YulExpressionStatement","src":"310:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:29"},"nodeType":"YulFunctionCall","src":"279:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:29"},"nodeType":"YulFunctionCall","src":"275:32:29"},"nodeType":"YulIf","src":"272:52:29"},{"nodeType":"YulAssignment","src":"333:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"362:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"343:18:29"},"nodeType":"YulFunctionCall","src":"343:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"333:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:29","type":""}],"src":"192:186:29"},{"body":{"nodeType":"YulBlock","src":"484:76:29","statements":[{"nodeType":"YulAssignment","src":"494:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"506:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:29"},"nodeType":"YulFunctionCall","src":"502:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"536:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"547:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:29"},"nodeType":"YulFunctionCall","src":"529:25:29"},"nodeType":"YulExpressionStatement","src":"529:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"453:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"464:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"475:4:29","type":""}],"src":"383:177:29"},{"body":{"nodeType":"YulBlock","src":"597:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"614:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"621:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"626:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"617:3:29"},"nodeType":"YulFunctionCall","src":"617:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"607:6:29"},"nodeType":"YulFunctionCall","src":"607:31:29"},"nodeType":"YulExpressionStatement","src":"607:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"654:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"657:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"647:6:29"},"nodeType":"YulFunctionCall","src":"647:15:29"},"nodeType":"YulExpressionStatement","src":"647:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"678:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"681:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"671:6:29"},"nodeType":"YulFunctionCall","src":"671:15:29"},"nodeType":"YulExpressionStatement","src":"671:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:127:29"},{"body":{"nodeType":"YulBlock","src":"742:230:29","statements":[{"nodeType":"YulAssignment","src":"752:19:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"768:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"762:5:29"},"nodeType":"YulFunctionCall","src":"762:9:29"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"752:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"780:58:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"802:6:29"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"818:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"824:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"814:3:29"},"nodeType":"YulFunctionCall","src":"814:13:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"833:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"829:3:29"},"nodeType":"YulFunctionCall","src":"829:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"810:3:29"},"nodeType":"YulFunctionCall","src":"810:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"798:3:29"},"nodeType":"YulFunctionCall","src":"798:40:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"784:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"913:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"915:16:29"},"nodeType":"YulFunctionCall","src":"915:18:29"},"nodeType":"YulExpressionStatement","src":"915:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"856:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"868:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"853:2:29"},"nodeType":"YulFunctionCall","src":"853:34:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"892:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"904:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"889:2:29"},"nodeType":"YulFunctionCall","src":"889:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"850:2:29"},"nodeType":"YulFunctionCall","src":"850:62:29"},"nodeType":"YulIf","src":"847:88:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"951:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"955:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"944:6:29"},"nodeType":"YulFunctionCall","src":"944:22:29"},"nodeType":"YulExpressionStatement","src":"944:22:29"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"722:4:29","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"731:6:29","type":""}],"src":"697:275:29"},{"body":{"nodeType":"YulBlock","src":"1030:478:29","statements":[{"body":{"nodeType":"YulBlock","src":"1079:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1091:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1081:6:29"},"nodeType":"YulFunctionCall","src":"1081:12:29"},"nodeType":"YulExpressionStatement","src":"1081:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1058:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1066:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1054:3:29"},"nodeType":"YulFunctionCall","src":"1054:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"1073:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1050:3:29"},"nodeType":"YulFunctionCall","src":"1050:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1043:6:29"},"nodeType":"YulFunctionCall","src":"1043:35:29"},"nodeType":"YulIf","src":"1040:55:29"},{"nodeType":"YulVariableDeclaration","src":"1104:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1127:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1114:12:29"},"nodeType":"YulFunctionCall","src":"1114:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1108:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1173:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1175:16:29"},"nodeType":"YulFunctionCall","src":"1175:18:29"},"nodeType":"YulExpressionStatement","src":"1175:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1149:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1153:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1146:2:29"},"nodeType":"YulFunctionCall","src":"1146:26:29"},"nodeType":"YulIf","src":"1143:52:29"},{"nodeType":"YulVariableDeclaration","src":"1204:70:29","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1247:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1251:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1243:3:29"},"nodeType":"YulFunctionCall","src":"1243:13:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1262:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1258:3:29"},"nodeType":"YulFunctionCall","src":"1258:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1239:3:29"},"nodeType":"YulFunctionCall","src":"1239:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"1268:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1235:3:29"},"nodeType":"YulFunctionCall","src":"1235:38:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1219:15:29"},"nodeType":"YulFunctionCall","src":"1219:55:29"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1208:7:29","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1290:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1299:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1283:6:29"},"nodeType":"YulFunctionCall","src":"1283:19:29"},"nodeType":"YulExpressionStatement","src":"1283:19:29"},{"body":{"nodeType":"YulBlock","src":"1350:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1362:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1352:6:29"},"nodeType":"YulFunctionCall","src":"1352:12:29"},"nodeType":"YulExpressionStatement","src":"1352:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1325:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1333:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1321:3:29"},"nodeType":"YulFunctionCall","src":"1321:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"1338:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1317:3:29"},"nodeType":"YulFunctionCall","src":"1317:26:29"},{"name":"end","nodeType":"YulIdentifier","src":"1345:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1314:2:29"},"nodeType":"YulFunctionCall","src":"1314:35:29"},"nodeType":"YulIf","src":"1311:55:29"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1392:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"1401:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1388:3:29"},"nodeType":"YulFunctionCall","src":"1388:18:29"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1412:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1420:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1408:3:29"},"nodeType":"YulFunctionCall","src":"1408:17:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1427:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1375:12:29"},"nodeType":"YulFunctionCall","src":"1375:55:29"},"nodeType":"YulExpressionStatement","src":"1375:55:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1454:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1463:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1450:3:29"},"nodeType":"YulFunctionCall","src":"1450:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"1468:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:29"},"nodeType":"YulFunctionCall","src":"1446:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"1475:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1439:6:29"},"nodeType":"YulFunctionCall","src":"1439:38:29"},"nodeType":"YulExpressionStatement","src":"1439:38:29"},{"nodeType":"YulAssignment","src":"1486:16:29","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1495:7:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1486:5:29"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1004:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"1012:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1020:5:29","type":""}],"src":"977:531:29"},{"body":{"nodeType":"YulBlock","src":"1560:109:29","statements":[{"nodeType":"YulAssignment","src":"1570:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1592:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1579:12:29"},"nodeType":"YulFunctionCall","src":"1579:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1570:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1647:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1656:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1659:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1649:6:29"},"nodeType":"YulFunctionCall","src":"1649:12:29"},"nodeType":"YulExpressionStatement","src":"1649:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1621:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1632:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1639:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1628:3:29"},"nodeType":"YulFunctionCall","src":"1628:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1618:2:29"},"nodeType":"YulFunctionCall","src":"1618:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1611:6:29"},"nodeType":"YulFunctionCall","src":"1611:35:29"},"nodeType":"YulIf","src":"1608:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1539:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1550:5:29","type":""}],"src":"1513:156:29"},{"body":{"nodeType":"YulBlock","src":"1736:652:29","statements":[{"body":{"nodeType":"YulBlock","src":"1785:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1794:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1797:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1787:6:29"},"nodeType":"YulFunctionCall","src":"1787:12:29"},"nodeType":"YulExpressionStatement","src":"1787:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1764:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1772:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1760:3:29"},"nodeType":"YulFunctionCall","src":"1760:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"1779:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1756:3:29"},"nodeType":"YulFunctionCall","src":"1756:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:29"},"nodeType":"YulFunctionCall","src":"1749:35:29"},"nodeType":"YulIf","src":"1746:55:29"},{"nodeType":"YulVariableDeclaration","src":"1810:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1820:12:29"},"nodeType":"YulFunctionCall","src":"1820:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1814:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1849:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1859:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1853:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1902:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1904:16:29"},"nodeType":"YulFunctionCall","src":"1904:18:29"},"nodeType":"YulExpressionStatement","src":"1904:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1882:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1875:2:29"},"nodeType":"YulFunctionCall","src":"1875:26:29"},"nodeType":"YulIf","src":"1872:52:29"},{"nodeType":"YulVariableDeclaration","src":"1933:20:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1947:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1950:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1943:3:29"},"nodeType":"YulFunctionCall","src":"1943:10:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1937:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1962:39:29","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1993:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1997:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1989:3:29"},"nodeType":"YulFunctionCall","src":"1989:11:29"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1973:15:29"},"nodeType":"YulFunctionCall","src":"1973:28:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1966:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2010:16:29","value":{"name":"dst","nodeType":"YulIdentifier","src":"2023:3:29"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2014:5:29","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2042:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2047:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2035:6:29"},"nodeType":"YulFunctionCall","src":"2035:15:29"},"nodeType":"YulExpressionStatement","src":"2035:15:29"},{"nodeType":"YulAssignment","src":"2059:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2070:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2075:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2066:3:29"},"nodeType":"YulFunctionCall","src":"2066:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2059:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"2087:38:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2109:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2117:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2105:3:29"},"nodeType":"YulFunctionCall","src":"2105:15:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2122:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2101:3:29"},"nodeType":"YulFunctionCall","src":"2101:24:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2091:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2153:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2162:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2165:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2155:6:29"},"nodeType":"YulFunctionCall","src":"2155:12:29"},"nodeType":"YulExpressionStatement","src":"2155:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2140:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"2148:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2137:2:29"},"nodeType":"YulFunctionCall","src":"2137:15:29"},"nodeType":"YulIf","src":"2134:35:29"},{"nodeType":"YulVariableDeclaration","src":"2178:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2193:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2201:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2189:3:29"},"nodeType":"YulFunctionCall","src":"2189:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2182:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2269:90:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2290:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2312:3:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"2295:16:29"},"nodeType":"YulFunctionCall","src":"2295:21:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2283:6:29"},"nodeType":"YulFunctionCall","src":"2283:34:29"},"nodeType":"YulExpressionStatement","src":"2283:34:29"},{"nodeType":"YulAssignment","src":"2330:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2341:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2346:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2337:3:29"},"nodeType":"YulFunctionCall","src":"2337:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2330:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2224:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2229:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2221:2:29"},"nodeType":"YulFunctionCall","src":"2221:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2237:23:29","statements":[{"nodeType":"YulAssignment","src":"2239:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2250:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2255:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2246:3:29"},"nodeType":"YulFunctionCall","src":"2246:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2239:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2217:3:29","statements":[]},"src":"2213:146:29"},{"nodeType":"YulAssignment","src":"2368:14:29","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2377:5:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2368:5:29"}]}]},"name":"abi_decode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1710:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"1718:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1726:5:29","type":""}],"src":"1674:714:29"},{"body":{"nodeType":"YulBlock","src":"2545:558:29","statements":[{"body":{"nodeType":"YulBlock","src":"2592:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2601:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2604:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2594:6:29"},"nodeType":"YulFunctionCall","src":"2594:12:29"},"nodeType":"YulExpressionStatement","src":"2594:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2566:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2575:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2562:3:29"},"nodeType":"YulFunctionCall","src":"2562:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2587:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2558:3:29"},"nodeType":"YulFunctionCall","src":"2558:33:29"},"nodeType":"YulIf","src":"2555:53:29"},{"nodeType":"YulVariableDeclaration","src":"2617:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2631:12:29"},"nodeType":"YulFunctionCall","src":"2631:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2621:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2663:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2673:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2667:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2718:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2727:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2730:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2720:6:29"},"nodeType":"YulFunctionCall","src":"2720:12:29"},"nodeType":"YulExpressionStatement","src":"2720:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2706:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2714:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2703:2:29"},"nodeType":"YulFunctionCall","src":"2703:14:29"},"nodeType":"YulIf","src":"2700:34:29"},{"nodeType":"YulAssignment","src":"2743:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2775:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"2786:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2771:3:29"},"nodeType":"YulFunctionCall","src":"2771:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2795:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"2753:17:29"},"nodeType":"YulFunctionCall","src":"2753:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2743:6:29"}]},{"nodeType":"YulAssignment","src":"2812:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2845:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2856:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2841:3:29"},"nodeType":"YulFunctionCall","src":"2841:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2822:18:29"},"nodeType":"YulFunctionCall","src":"2822:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2812:6:29"}]},{"nodeType":"YulAssignment","src":"2869:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2900:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2911:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2896:3:29"},"nodeType":"YulFunctionCall","src":"2896:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"2879:16:29"},"nodeType":"YulFunctionCall","src":"2879:36:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2869:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2924:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2957:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2968:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2953:3:29"},"nodeType":"YulFunctionCall","src":"2953:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2940:12:29"},"nodeType":"YulFunctionCall","src":"2940:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2928:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3001:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3010:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3013:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3003:6:29"},"nodeType":"YulFunctionCall","src":"3003:12:29"},"nodeType":"YulExpressionStatement","src":"3003:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2987:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2997:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2984:2:29"},"nodeType":"YulFunctionCall","src":"2984:16:29"},"nodeType":"YulIf","src":"2981:36:29"},{"nodeType":"YulAssignment","src":"3026:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3067:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3078:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3063:3:29"},"nodeType":"YulFunctionCall","src":"3063:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3089:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"3036:26:29"},"nodeType":"YulFunctionCall","src":"3036:61:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3026:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_addresst_uint8t_array$_t_uint8_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2487:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2498:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2510:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2518:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2526:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2534:6:29","type":""}],"src":"2393:710:29"},{"body":{"nodeType":"YulBlock","src":"3203:92:29","statements":[{"nodeType":"YulAssignment","src":"3213:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3225:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3221:3:29"},"nodeType":"YulFunctionCall","src":"3221:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3213:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3255:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3280:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3273:6:29"},"nodeType":"YulFunctionCall","src":"3273:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3266:6:29"},"nodeType":"YulFunctionCall","src":"3266:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3248:6:29"},"nodeType":"YulFunctionCall","src":"3248:41:29"},"nodeType":"YulExpressionStatement","src":"3248:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3172:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3183:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3194:4:29","type":""}],"src":"3108:187:29"},{"body":{"nodeType":"YulBlock","src":"3385:171:29","statements":[{"body":{"nodeType":"YulBlock","src":"3431:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3440:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3443:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3433:6:29"},"nodeType":"YulFunctionCall","src":"3433:12:29"},"nodeType":"YulExpressionStatement","src":"3433:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3406:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3415:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3402:3:29"},"nodeType":"YulFunctionCall","src":"3402:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3427:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3398:3:29"},"nodeType":"YulFunctionCall","src":"3398:32:29"},"nodeType":"YulIf","src":"3395:52:29"},{"nodeType":"YulAssignment","src":"3456:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3485:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3466:18:29"},"nodeType":"YulFunctionCall","src":"3466:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3456:6:29"}]},{"nodeType":"YulAssignment","src":"3504:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3535:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3546:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3531:3:29"},"nodeType":"YulFunctionCall","src":"3531:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3514:16:29"},"nodeType":"YulFunctionCall","src":"3514:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3504:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3343:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3354:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3366:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3374:6:29","type":""}],"src":"3300:256:29"},{"body":{"nodeType":"YulBlock","src":"3631:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3677:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3686:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3689:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3679:6:29"},"nodeType":"YulFunctionCall","src":"3679:12:29"},"nodeType":"YulExpressionStatement","src":"3679:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3652:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3661:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3648:3:29"},"nodeType":"YulFunctionCall","src":"3648:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3673:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3644:3:29"},"nodeType":"YulFunctionCall","src":"3644:32:29"},"nodeType":"YulIf","src":"3641:52:29"},{"nodeType":"YulAssignment","src":"3702:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3725:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3712:12:29"},"nodeType":"YulFunctionCall","src":"3712:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3702:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3597:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3608:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3620:6:29","type":""}],"src":"3561:180:29"},{"body":{"nodeType":"YulBlock","src":"3814:114:29","statements":[{"body":{"nodeType":"YulBlock","src":"3860:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3869:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3872:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3862:6:29"},"nodeType":"YulFunctionCall","src":"3862:12:29"},"nodeType":"YulExpressionStatement","src":"3862:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3835:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3844:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3831:3:29"},"nodeType":"YulFunctionCall","src":"3831:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3856:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3827:3:29"},"nodeType":"YulFunctionCall","src":"3827:32:29"},"nodeType":"YulIf","src":"3824:52:29"},{"nodeType":"YulAssignment","src":"3885:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3912:9:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3895:16:29"},"nodeType":"YulFunctionCall","src":"3895:27:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3885:6:29"}]}]},"name":"abi_decode_tuple_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3780:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3791:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3803:6:29","type":""}],"src":"3746:182:29"},{"body":{"nodeType":"YulBlock","src":"4068:500:29","statements":[{"body":{"nodeType":"YulBlock","src":"4114:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4123:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4126:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4116:6:29"},"nodeType":"YulFunctionCall","src":"4116:12:29"},"nodeType":"YulExpressionStatement","src":"4116:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4089:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4098:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4085:3:29"},"nodeType":"YulFunctionCall","src":"4085:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4110:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4081:3:29"},"nodeType":"YulFunctionCall","src":"4081:32:29"},"nodeType":"YulIf","src":"4078:52:29"},{"nodeType":"YulVariableDeclaration","src":"4139:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4153:12:29"},"nodeType":"YulFunctionCall","src":"4153:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4143:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4185:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"4195:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4189:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4240:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4249:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4252:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4242:6:29"},"nodeType":"YulFunctionCall","src":"4242:12:29"},"nodeType":"YulExpressionStatement","src":"4242:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4228:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4236:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4225:2:29"},"nodeType":"YulFunctionCall","src":"4225:14:29"},"nodeType":"YulIf","src":"4222:34:29"},{"nodeType":"YulAssignment","src":"4265:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4297:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"4308:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4293:3:29"},"nodeType":"YulFunctionCall","src":"4293:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4317:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"4275:17:29"},"nodeType":"YulFunctionCall","src":"4275:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4265:6:29"}]},{"nodeType":"YulAssignment","src":"4334:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4365:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4376:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4361:3:29"},"nodeType":"YulFunctionCall","src":"4361:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"4344:16:29"},"nodeType":"YulFunctionCall","src":"4344:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4334:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4389:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4422:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4433:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4418:3:29"},"nodeType":"YulFunctionCall","src":"4418:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4405:12:29"},"nodeType":"YulFunctionCall","src":"4405:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4393:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4466:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4475:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4478:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4468:6:29"},"nodeType":"YulFunctionCall","src":"4468:12:29"},"nodeType":"YulExpressionStatement","src":"4468:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4452:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"4462:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4449:2:29"},"nodeType":"YulFunctionCall","src":"4449:16:29"},"nodeType":"YulIf","src":"4446:36:29"},{"nodeType":"YulAssignment","src":"4491:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4532:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4543:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4528:3:29"},"nodeType":"YulFunctionCall","src":"4528:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4554:7:29"}],"functionName":{"name":"abi_decode_array_uint8_dyn","nodeType":"YulIdentifier","src":"4501:26:29"},"nodeType":"YulFunctionCall","src":"4501:61:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4491:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_uint8t_array$_t_uint8_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4018:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4029:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4041:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4049:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4057:6:29","type":""}],"src":"3933:635:29"},{"body":{"nodeType":"YulBlock","src":"4639:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4649:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"4658:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4653:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4718:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4743:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"4748:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4739:3:29"},"nodeType":"YulFunctionCall","src":"4739:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4762:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"4767:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4758:3:29"},"nodeType":"YulFunctionCall","src":"4758:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4752:5:29"},"nodeType":"YulFunctionCall","src":"4752:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4732:6:29"},"nodeType":"YulFunctionCall","src":"4732:39:29"},"nodeType":"YulExpressionStatement","src":"4732:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4679:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"4682:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4676:2:29"},"nodeType":"YulFunctionCall","src":"4676:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4690:19:29","statements":[{"nodeType":"YulAssignment","src":"4692:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4701:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4697:3:29"},"nodeType":"YulFunctionCall","src":"4697:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4692:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"4672:3:29","statements":[]},"src":"4668:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4801:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4806:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4797:3:29"},"nodeType":"YulFunctionCall","src":"4797:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"4815:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4790:6:29"},"nodeType":"YulFunctionCall","src":"4790:27:29"},"nodeType":"YulExpressionStatement","src":"4790:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"4617:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"4622:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"4627:6:29","type":""}],"src":"4573:250:29"},{"body":{"nodeType":"YulBlock","src":"4878:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4888:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4908:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4902:5:29"},"nodeType":"YulFunctionCall","src":"4902:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4892:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4930:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4935:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4923:6:29"},"nodeType":"YulFunctionCall","src":"4923:19:29"},"nodeType":"YulExpressionStatement","src":"4923:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4990:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"4997:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4986:3:29"},"nodeType":"YulFunctionCall","src":"4986:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5008:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5013:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5004:3:29"},"nodeType":"YulFunctionCall","src":"5004:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"5020:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4951:34:29"},"nodeType":"YulFunctionCall","src":"4951:76:29"},"nodeType":"YulExpressionStatement","src":"4951:76:29"},{"nodeType":"YulAssignment","src":"5036:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5051:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5064:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5072:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5060:3:29"},"nodeType":"YulFunctionCall","src":"5060:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5081:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5077:3:29"},"nodeType":"YulFunctionCall","src":"5077:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5056:3:29"},"nodeType":"YulFunctionCall","src":"5056:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5047:3:29"},"nodeType":"YulFunctionCall","src":"5047:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"5088:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5043:3:29"},"nodeType":"YulFunctionCall","src":"5043:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5036:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4855:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4862:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4870:3:29","type":""}],"src":"4828:271:29"},{"body":{"nodeType":"YulBlock","src":"5163:385:29","statements":[{"nodeType":"YulVariableDeclaration","src":"5173:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5193:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5187:5:29"},"nodeType":"YulFunctionCall","src":"5187:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5177:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5215:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"5220:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5208:6:29"},"nodeType":"YulFunctionCall","src":"5208:19:29"},"nodeType":"YulExpressionStatement","src":"5208:19:29"},{"nodeType":"YulVariableDeclaration","src":"5236:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5246:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5240:2:29","type":""}]},{"nodeType":"YulAssignment","src":"5259:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5270:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5275:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5266:3:29"},"nodeType":"YulFunctionCall","src":"5266:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5259:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"5287:28:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5305:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5312:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5301:3:29"},"nodeType":"YulFunctionCall","src":"5301:14:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"5291:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5324:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"5333:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5328:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5392:131:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5413:3:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5428:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5422:5:29"},"nodeType":"YulFunctionCall","src":"5422:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"5437:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5418:3:29"},"nodeType":"YulFunctionCall","src":"5418:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5406:6:29"},"nodeType":"YulFunctionCall","src":"5406:37:29"},"nodeType":"YulExpressionStatement","src":"5406:37:29"},{"nodeType":"YulAssignment","src":"5456:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5467:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5472:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5463:3:29"},"nodeType":"YulFunctionCall","src":"5463:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5456:3:29"}]},{"nodeType":"YulAssignment","src":"5488:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5502:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"5510:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5498:3:29"},"nodeType":"YulFunctionCall","src":"5498:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5488:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5354:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"5357:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5351:2:29"},"nodeType":"YulFunctionCall","src":"5351:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5365:18:29","statements":[{"nodeType":"YulAssignment","src":"5367:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5376:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"5379:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5372:3:29"},"nodeType":"YulFunctionCall","src":"5372:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5367:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"5347:3:29","statements":[]},"src":"5343:180:29"},{"nodeType":"YulAssignment","src":"5532:10:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"5539:3:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5532:3:29"}]}]},"name":"abi_encode_array_uint8_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5140:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5147:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5155:3:29","type":""}],"src":"5104:444:29"},{"body":{"nodeType":"YulBlock","src":"5609:541:29","statements":[{"nodeType":"YulVariableDeclaration","src":"5619:32:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5645:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5639:5:29"},"nodeType":"YulFunctionCall","src":"5639:12:29"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"5623:12:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5667:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5672:4:29","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5660:6:29"},"nodeType":"YulFunctionCall","src":"5660:17:29"},"nodeType":"YulExpressionStatement","src":"5660:17:29"},{"nodeType":"YulVariableDeclaration","src":"5686:59:29","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"5716:12:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5734:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5739:4:29","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5730:3:29"},"nodeType":"YulFunctionCall","src":"5730:14:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"5698:17:29"},"nodeType":"YulFunctionCall","src":"5698:47:29"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"5690:4:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5765:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5770:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5761:3:29"},"nodeType":"YulFunctionCall","src":"5761:14:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5791:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"5798:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5787:3:29"},"nodeType":"YulFunctionCall","src":"5787:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5781:5:29"},"nodeType":"YulFunctionCall","src":"5781:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5806:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5777:3:29"},"nodeType":"YulFunctionCall","src":"5777:34:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5754:6:29"},"nodeType":"YulFunctionCall","src":"5754:58:29"},"nodeType":"YulExpressionStatement","src":"5754:58:29"},{"nodeType":"YulVariableDeclaration","src":"5821:45:29","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5853:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"5860:4:29","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5849:3:29"},"nodeType":"YulFunctionCall","src":"5849:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5843:5:29"},"nodeType":"YulFunctionCall","src":"5843:23:29"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"5825:14:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5886:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"5891:4:29","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5882:3:29"},"nodeType":"YulFunctionCall","src":"5882:14:29"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"5902:4:29"},{"name":"pos","nodeType":"YulIdentifier","src":"5908:3:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5898:3:29"},"nodeType":"YulFunctionCall","src":"5898:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5875:6:29"},"nodeType":"YulFunctionCall","src":"5875:38:29"},"nodeType":"YulExpressionStatement","src":"5875:38:29"},{"nodeType":"YulVariableDeclaration","src":"5922:62:29","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"5963:14:29"},{"name":"tail","nodeType":"YulIdentifier","src":"5979:4:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"5936:26:29"},"nodeType":"YulFunctionCall","src":"5936:48:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"5926:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6004:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"6009:4:29","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6000:3:29"},"nodeType":"YulFunctionCall","src":"6000:14:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6030:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"6037:4:29","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6026:3:29"},"nodeType":"YulFunctionCall","src":"6026:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6020:5:29"},"nodeType":"YulFunctionCall","src":"6020:23:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6053:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6058:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6049:3:29"},"nodeType":"YulFunctionCall","src":"6049:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6062:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6045:3:29"},"nodeType":"YulFunctionCall","src":"6045:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6016:3:29"},"nodeType":"YulFunctionCall","src":"6016:49:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:29"},"nodeType":"YulFunctionCall","src":"5993:73:29"},"nodeType":"YulExpressionStatement","src":"5993:73:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6086:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"6091:4:29","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6082:3:29"},"nodeType":"YulFunctionCall","src":"6082:14:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6108:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"6115:4:29","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6104:3:29"},"nodeType":"YulFunctionCall","src":"6104:16:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6098:5:29"},"nodeType":"YulFunctionCall","src":"6098:23:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6075:6:29"},"nodeType":"YulFunctionCall","src":"6075:47:29"},"nodeType":"YulExpressionStatement","src":"6075:47:29"},{"nodeType":"YulAssignment","src":"6131:13:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6138:6:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6131:3:29"}]}]},"name":"abi_encode_struct_Offer","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5586:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5593:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5601:3:29","type":""}],"src":"5553:597:29"},{"body":{"nodeType":"YulBlock","src":"6352:638:29","statements":[{"nodeType":"YulVariableDeclaration","src":"6362:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6372:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6366:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6383:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6401:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6412:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6397:3:29"},"nodeType":"YulFunctionCall","src":"6397:18:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"6387:6:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6431:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6442:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6424:6:29"},"nodeType":"YulFunctionCall","src":"6424:21:29"},"nodeType":"YulExpressionStatement","src":"6424:21:29"},{"nodeType":"YulVariableDeclaration","src":"6454:17:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6465:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"6458:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6480:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6500:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6494:5:29"},"nodeType":"YulFunctionCall","src":"6494:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6484:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"6523:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"6531:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6516:6:29"},"nodeType":"YulFunctionCall","src":"6516:22:29"},"nodeType":"YulExpressionStatement","src":"6516:22:29"},{"nodeType":"YulAssignment","src":"6547:25:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6558:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6569:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6554:3:29"},"nodeType":"YulFunctionCall","src":"6554:18:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6547:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"6581:53:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6603:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6618:1:29","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"6621:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6614:3:29"},"nodeType":"YulFunctionCall","src":"6614:14:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6599:3:29"},"nodeType":"YulFunctionCall","src":"6599:30:29"},{"kind":"number","nodeType":"YulLiteral","src":"6631:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6595:3:29"},"nodeType":"YulFunctionCall","src":"6595:39:29"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"6585:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6643:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6661:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6669:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6657:3:29"},"nodeType":"YulFunctionCall","src":"6657:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"6647:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6681:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6690:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6685:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6749:212:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6770:3:29"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"6783:6:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6791:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6779:3:29"},"nodeType":"YulFunctionCall","src":"6779:22:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6807:2:29","type":"","value":"63"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6803:3:29"},"nodeType":"YulFunctionCall","src":"6803:7:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6775:3:29"},"nodeType":"YulFunctionCall","src":"6775:36:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6763:6:29"},"nodeType":"YulFunctionCall","src":"6763:49:29"},"nodeType":"YulExpressionStatement","src":"6763:49:29"},{"nodeType":"YulAssignment","src":"6825:56:29","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6865:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6859:5:29"},"nodeType":"YulFunctionCall","src":"6859:13:29"},{"name":"tail_2","nodeType":"YulIdentifier","src":"6874:6:29"}],"functionName":{"name":"abi_encode_struct_Offer","nodeType":"YulIdentifier","src":"6835:23:29"},"nodeType":"YulFunctionCall","src":"6835:46:29"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"6825:6:29"}]},{"nodeType":"YulAssignment","src":"6894:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6908:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6916:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6904:3:29"},"nodeType":"YulFunctionCall","src":"6904:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6894:6:29"}]},{"nodeType":"YulAssignment","src":"6932:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6943:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6948:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6939:3:29"},"nodeType":"YulFunctionCall","src":"6939:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6932:3:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6711:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"6714:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6708:2:29"},"nodeType":"YulFunctionCall","src":"6708:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6722:18:29","statements":[{"nodeType":"YulAssignment","src":"6724:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6733:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"6736:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6729:3:29"},"nodeType":"YulFunctionCall","src":"6729:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6724:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"6704:3:29","statements":[]},"src":"6700:261:29"},{"nodeType":"YulAssignment","src":"6970:14:29","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"6978:6:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6970:4:29"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6321:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6332:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6343:4:29","type":""}],"src":"6155:835:29"},{"body":{"nodeType":"YulBlock","src":"7037:76:29","statements":[{"body":{"nodeType":"YulBlock","src":"7091:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7100:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7103:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7093:6:29"},"nodeType":"YulFunctionCall","src":"7093:12:29"},"nodeType":"YulExpressionStatement","src":"7093:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7060:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7081:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7074:6:29"},"nodeType":"YulFunctionCall","src":"7074:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7067:6:29"},"nodeType":"YulFunctionCall","src":"7067:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7057:2:29"},"nodeType":"YulFunctionCall","src":"7057:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7050:6:29"},"nodeType":"YulFunctionCall","src":"7050:40:29"},"nodeType":"YulIf","src":"7047:60:29"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7026:5:29","type":""}],"src":"6995:118:29"},{"body":{"nodeType":"YulBlock","src":"7185:174:29","statements":[{"body":{"nodeType":"YulBlock","src":"7231:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7240:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7243:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7233:6:29"},"nodeType":"YulFunctionCall","src":"7233:12:29"},"nodeType":"YulExpressionStatement","src":"7233:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7206:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7215:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7202:3:29"},"nodeType":"YulFunctionCall","src":"7202:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7227:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7198:3:29"},"nodeType":"YulFunctionCall","src":"7198:32:29"},"nodeType":"YulIf","src":"7195:52:29"},{"nodeType":"YulVariableDeclaration","src":"7256:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7282:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7269:12:29"},"nodeType":"YulFunctionCall","src":"7269:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7260:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7323:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"7301:21:29"},"nodeType":"YulFunctionCall","src":"7301:28:29"},"nodeType":"YulExpressionStatement","src":"7301:28:29"},{"nodeType":"YulAssignment","src":"7338:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"7348:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7338:6:29"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7151:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7162:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7174:6:29","type":""}],"src":"7118:241:29"},{"body":{"nodeType":"YulBlock","src":"7565:267:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7582:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7593:3:29","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7575:6:29"},"nodeType":"YulFunctionCall","src":"7575:22:29"},"nodeType":"YulExpressionStatement","src":"7575:22:29"},{"nodeType":"YulAssignment","src":"7606:54:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7632:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7644:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7655:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:29"},"nodeType":"YulFunctionCall","src":"7640:19:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"7614:17:29"},"nodeType":"YulFunctionCall","src":"7614:46:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7606:4:29"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7680:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7691:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7676:3:29"},"nodeType":"YulFunctionCall","src":"7676:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7700:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7708:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7696:3:29"},"nodeType":"YulFunctionCall","src":"7696:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7669:6:29"},"nodeType":"YulFunctionCall","src":"7669:45:29"},"nodeType":"YulExpressionStatement","src":"7669:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7734:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7745:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7730:3:29"},"nodeType":"YulFunctionCall","src":"7730:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7754:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7770:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7775:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7766:3:29"},"nodeType":"YulFunctionCall","src":"7766:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7779:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7762:3:29"},"nodeType":"YulFunctionCall","src":"7762:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7750:3:29"},"nodeType":"YulFunctionCall","src":"7750:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7723:6:29"},"nodeType":"YulFunctionCall","src":"7723:60:29"},"nodeType":"YulExpressionStatement","src":"7723:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7803:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7814:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7799:3:29"},"nodeType":"YulFunctionCall","src":"7799:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"7819:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7792:6:29"},"nodeType":"YulFunctionCall","src":"7792:34:29"},"nodeType":"YulExpressionStatement","src":"7792:34:29"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint8_t_address_t_uint256__to_t_string_memory_ptr_t_uint8_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7510:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7521:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7529:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7537:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7545:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7556:4:29","type":""}],"src":"7364:468:29"},{"body":{"nodeType":"YulBlock","src":"7938:102:29","statements":[{"nodeType":"YulAssignment","src":"7948:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7960:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7971:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7956:3:29"},"nodeType":"YulFunctionCall","src":"7956:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7948:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7990:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8005:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8021:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8026:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8017:3:29"},"nodeType":"YulFunctionCall","src":"8017:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"8030:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8013:3:29"},"nodeType":"YulFunctionCall","src":"8013:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8001:3:29"},"nodeType":"YulFunctionCall","src":"8001:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7983:6:29"},"nodeType":"YulFunctionCall","src":"7983:51:29"},"nodeType":"YulExpressionStatement","src":"7983:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7907:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7918:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7929:4:29","type":""}],"src":"7837:203:29"},{"body":{"nodeType":"YulBlock","src":"8192:105:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8209:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8220:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8202:6:29"},"nodeType":"YulFunctionCall","src":"8202:21:29"},"nodeType":"YulExpressionStatement","src":"8202:21:29"},{"nodeType":"YulAssignment","src":"8232:59:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8264:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8276:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8287:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8272:3:29"},"nodeType":"YulFunctionCall","src":"8272:18:29"}],"functionName":{"name":"abi_encode_struct_Offer","nodeType":"YulIdentifier","src":"8240:23:29"},"nodeType":"YulFunctionCall","src":"8240:51:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8232:4:29"}]}]},"name":"abi_encode_tuple_t_struct$_Offer_$5997_memory_ptr__to_t_struct$_Offer_$5997_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8161:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8172:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8183:4:29","type":""}],"src":"8045:252:29"},{"body":{"nodeType":"YulBlock","src":"8419:284:29","statements":[{"body":{"nodeType":"YulBlock","src":"8466:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8475:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8478:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8468:6:29"},"nodeType":"YulFunctionCall","src":"8468:12:29"},"nodeType":"YulExpressionStatement","src":"8468:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8440:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"8449:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8436:3:29"},"nodeType":"YulFunctionCall","src":"8436:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"8461:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8432:3:29"},"nodeType":"YulFunctionCall","src":"8432:33:29"},"nodeType":"YulIf","src":"8429:53:29"},{"nodeType":"YulAssignment","src":"8491:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8520:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8501:18:29"},"nodeType":"YulFunctionCall","src":"8501:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8491:6:29"}]},{"nodeType":"YulAssignment","src":"8539:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8570:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8581:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8566:3:29"},"nodeType":"YulFunctionCall","src":"8566:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8549:16:29"},"nodeType":"YulFunctionCall","src":"8549:36:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8539:6:29"}]},{"nodeType":"YulAssignment","src":"8594:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8627:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8638:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8623:3:29"},"nodeType":"YulFunctionCall","src":"8623:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8604:18:29"},"nodeType":"YulFunctionCall","src":"8604:38:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8594:6:29"}]},{"nodeType":"YulAssignment","src":"8651:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8682:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8693:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8678:3:29"},"nodeType":"YulFunctionCall","src":"8678:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8661:16:29"},"nodeType":"YulFunctionCall","src":"8661:36:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8651:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint8t_addresst_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8361:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8372:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8384:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8392:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8400:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8408:6:29","type":""}],"src":"8302:401:29"},{"body":{"nodeType":"YulBlock","src":"8837:102:29","statements":[{"nodeType":"YulAssignment","src":"8847:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8859:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8870:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8855:3:29"},"nodeType":"YulFunctionCall","src":"8855:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8847:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8889:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8904:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8920:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8925:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8916:3:29"},"nodeType":"YulFunctionCall","src":"8916:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"8929:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8912:3:29"},"nodeType":"YulFunctionCall","src":"8912:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8900:3:29"},"nodeType":"YulFunctionCall","src":"8900:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8882:6:29"},"nodeType":"YulFunctionCall","src":"8882:51:29"},"nodeType":"YulExpressionStatement","src":"8882:51:29"}]},"name":"abi_encode_tuple_t_contract$_IGammaCardsContract_$5952__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8806:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8817:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8828:4:29","type":""}],"src":"8708:231:29"},{"body":{"nodeType":"YulBlock","src":"9024:242:29","statements":[{"body":{"nodeType":"YulBlock","src":"9070:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9079:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9082:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9072:6:29"},"nodeType":"YulFunctionCall","src":"9072:12:29"},"nodeType":"YulExpressionStatement","src":"9072:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9045:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"9054:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9041:3:29"},"nodeType":"YulFunctionCall","src":"9041:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"9066:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9037:3:29"},"nodeType":"YulFunctionCall","src":"9037:32:29"},"nodeType":"YulIf","src":"9034:52:29"},{"nodeType":"YulVariableDeclaration","src":"9095:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9122:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9109:12:29"},"nodeType":"YulFunctionCall","src":"9109:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9099:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"9175:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9184:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9187:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9177:6:29"},"nodeType":"YulFunctionCall","src":"9177:12:29"},"nodeType":"YulExpressionStatement","src":"9177:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9147:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9155:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9144:2:29"},"nodeType":"YulFunctionCall","src":"9144:30:29"},"nodeType":"YulIf","src":"9141:50:29"},{"nodeType":"YulAssignment","src":"9200:60:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"9243:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:29"},"nodeType":"YulFunctionCall","src":"9228:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9252:7:29"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"9210:17:29"},"nodeType":"YulFunctionCall","src":"9210:50:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9200:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8990:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9001:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9013:6:29","type":""}],"src":"8944:322:29"},{"body":{"nodeType":"YulBlock","src":"9431:145:29","statements":[{"nodeType":"YulAssignment","src":"9441:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9453:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9464:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9449:3:29"},"nodeType":"YulFunctionCall","src":"9449:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9441:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9483:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"9494:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9476:6:29"},"nodeType":"YulFunctionCall","src":"9476:25:29"},"nodeType":"YulExpressionStatement","src":"9476:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9521:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9532:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9517:3:29"},"nodeType":"YulFunctionCall","src":"9517:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9541:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9557:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9562:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9553:3:29"},"nodeType":"YulFunctionCall","src":"9553:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"9566:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9549:3:29"},"nodeType":"YulFunctionCall","src":"9549:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9537:3:29"},"nodeType":"YulFunctionCall","src":"9537:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9510:6:29"},"nodeType":"YulFunctionCall","src":"9510:60:29"},"nodeType":"YulExpressionStatement","src":"9510:60:29"}]},"name":"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9392:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9403:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9411:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9422:4:29","type":""}],"src":"9271:305:29"},{"body":{"nodeType":"YulBlock","src":"9613:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9630:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9637:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9642:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9633:3:29"},"nodeType":"YulFunctionCall","src":"9633:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9623:6:29"},"nodeType":"YulFunctionCall","src":"9623:31:29"},"nodeType":"YulExpressionStatement","src":"9623:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9670:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9673:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9663:6:29"},"nodeType":"YulFunctionCall","src":"9663:15:29"},"nodeType":"YulExpressionStatement","src":"9663:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9694:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9697:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9687:6:29"},"nodeType":"YulFunctionCall","src":"9687:15:29"},"nodeType":"YulExpressionStatement","src":"9687:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"9581:127:29"},{"body":{"nodeType":"YulBlock","src":"9745:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9762:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9769:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9774:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9765:3:29"},"nodeType":"YulFunctionCall","src":"9765:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9755:6:29"},"nodeType":"YulFunctionCall","src":"9755:31:29"},"nodeType":"YulExpressionStatement","src":"9755:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9802:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9805:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9795:6:29"},"nodeType":"YulFunctionCall","src":"9795:15:29"},"nodeType":"YulExpressionStatement","src":"9795:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9826:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9829:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9819:6:29"},"nodeType":"YulFunctionCall","src":"9819:15:29"},"nodeType":"YulExpressionStatement","src":"9819:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9713:127:29"},{"body":{"nodeType":"YulBlock","src":"9892:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"9923:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9925:16:29"},"nodeType":"YulFunctionCall","src":"9925:18:29"},"nodeType":"YulExpressionStatement","src":"9925:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9908:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9919:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9915:3:29"},"nodeType":"YulFunctionCall","src":"9915:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9905:2:29"},"nodeType":"YulFunctionCall","src":"9905:17:29"},"nodeType":"YulIf","src":"9902:43:29"},{"nodeType":"YulAssignment","src":"9954:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9965:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"9972:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9961:3:29"},"nodeType":"YulFunctionCall","src":"9961:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9954:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9874:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9884:3:29","type":""}],"src":"9845:135:29"},{"body":{"nodeType":"YulBlock","src":"10040:325:29","statements":[{"nodeType":"YulAssignment","src":"10050:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10064:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"10067:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10060:3:29"},"nodeType":"YulFunctionCall","src":"10060:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10050:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"10081:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10111:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"10117:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10107:3:29"},"nodeType":"YulFunctionCall","src":"10107:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"10085:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"10158:31:29","statements":[{"nodeType":"YulAssignment","src":"10160:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10174:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10182:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10170:3:29"},"nodeType":"YulFunctionCall","src":"10170:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10160:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10138:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10131:6:29"},"nodeType":"YulFunctionCall","src":"10131:26:29"},"nodeType":"YulIf","src":"10128:61:29"},{"body":{"nodeType":"YulBlock","src":"10248:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10269:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10276:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10281:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10272:3:29"},"nodeType":"YulFunctionCall","src":"10272:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10262:6:29"},"nodeType":"YulFunctionCall","src":"10262:31:29"},"nodeType":"YulExpressionStatement","src":"10262:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10313:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10316:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10306:6:29"},"nodeType":"YulFunctionCall","src":"10306:15:29"},"nodeType":"YulExpressionStatement","src":"10306:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10341:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10344:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10334:6:29"},"nodeType":"YulFunctionCall","src":"10334:15:29"},"nodeType":"YulExpressionStatement","src":"10334:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10204:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10227:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10235:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10224:2:29"},"nodeType":"YulFunctionCall","src":"10224:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10201:2:29"},"nodeType":"YulFunctionCall","src":"10201:38:29"},"nodeType":"YulIf","src":"10198:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10020:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"10029:6:29","type":""}],"src":"9985:380:29"},{"body":{"nodeType":"YulBlock","src":"10495:156:29","statements":[{"nodeType":"YulAssignment","src":"10505:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10528:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10513:3:29"},"nodeType":"YulFunctionCall","src":"10513:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10505:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10547:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10562:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10578:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10583:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10574:3:29"},"nodeType":"YulFunctionCall","src":"10574:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"10587:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10570:3:29"},"nodeType":"YulFunctionCall","src":"10570:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10558:3:29"},"nodeType":"YulFunctionCall","src":"10558:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10540:6:29"},"nodeType":"YulFunctionCall","src":"10540:51:29"},"nodeType":"YulExpressionStatement","src":"10540:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10622:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10607:3:29"},"nodeType":"YulFunctionCall","src":"10607:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10631:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10639:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10627:3:29"},"nodeType":"YulFunctionCall","src":"10627:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10600:6:29"},"nodeType":"YulFunctionCall","src":"10600:45:29"},"nodeType":"YulExpressionStatement","src":"10600:45:29"}]},"name":"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10456:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10467:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10475:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10486:4:29","type":""}],"src":"10370:281:29"},{"body":{"nodeType":"YulBlock","src":"10734:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"10780:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10789:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10792:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10782:6:29"},"nodeType":"YulFunctionCall","src":"10782:12:29"},"nodeType":"YulExpressionStatement","src":"10782:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10755:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"10764:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10751:3:29"},"nodeType":"YulFunctionCall","src":"10751:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"10776:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10747:3:29"},"nodeType":"YulFunctionCall","src":"10747:32:29"},"nodeType":"YulIf","src":"10744:52:29"},{"nodeType":"YulVariableDeclaration","src":"10805:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10824:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10818:5:29"},"nodeType":"YulFunctionCall","src":"10818:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10809:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10865:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"10843:21:29"},"nodeType":"YulFunctionCall","src":"10843:28:29"},"nodeType":"YulExpressionStatement","src":"10843:28:29"},{"nodeType":"YulAssignment","src":"10880:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"10890:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10880:6:29"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10700:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10711:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10723:6:29","type":""}],"src":"10656:245:29"},{"body":{"nodeType":"YulBlock","src":"10951:130:29","statements":[{"nodeType":"YulVariableDeclaration","src":"10961:31:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10980:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"10987:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10976:3:29"},"nodeType":"YulFunctionCall","src":"10976:16:29"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10965:7:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"11022:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11024:16:29"},"nodeType":"YulFunctionCall","src":"11024:18:29"},"nodeType":"YulExpressionStatement","src":"11024:18:29"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11007:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"11016:4:29","type":"","value":"0xff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11004:2:29"},"nodeType":"YulFunctionCall","src":"11004:17:29"},"nodeType":"YulIf","src":"11001:43:29"},{"nodeType":"YulAssignment","src":"11053:22:29","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11064:7:29"},{"kind":"number","nodeType":"YulLiteral","src":"11073:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11060:3:29"},"nodeType":"YulFunctionCall","src":"11060:15:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11053:3:29"}]}]},"name":"increment_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10933:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10943:3:29","type":""}],"src":"10906:175:29"},{"body":{"nodeType":"YulBlock","src":"11263:284:29","statements":[{"nodeType":"YulAssignment","src":"11273:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11285:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11296:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11281:3:29"},"nodeType":"YulFunctionCall","src":"11281:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11273:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"11309:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11327:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11332:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11323:3:29"},"nodeType":"YulFunctionCall","src":"11323:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"11336:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11319:3:29"},"nodeType":"YulFunctionCall","src":"11319:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11313:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11354:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11369:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11377:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11365:3:29"},"nodeType":"YulFunctionCall","src":"11365:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11347:6:29"},"nodeType":"YulFunctionCall","src":"11347:34:29"},"nodeType":"YulExpressionStatement","src":"11347:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11401:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11412:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11397:3:29"},"nodeType":"YulFunctionCall","src":"11397:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11421:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11429:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11417:3:29"},"nodeType":"YulFunctionCall","src":"11417:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11390:6:29"},"nodeType":"YulFunctionCall","src":"11390:45:29"},"nodeType":"YulExpressionStatement","src":"11390:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11455:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11466:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11451:3:29"},"nodeType":"YulFunctionCall","src":"11451:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11475:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11483:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11471:3:29"},"nodeType":"YulFunctionCall","src":"11471:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11444:6:29"},"nodeType":"YulFunctionCall","src":"11444:43:29"},"nodeType":"YulExpressionStatement","src":"11444:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11507:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11518:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11503:3:29"},"nodeType":"YulFunctionCall","src":"11503:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11527:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11535:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11523:3:29"},"nodeType":"YulFunctionCall","src":"11523:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11496:6:29"},"nodeType":"YulFunctionCall","src":"11496:45:29"},"nodeType":"YulExpressionStatement","src":"11496:45:29"}]},"name":"abi_encode_tuple_t_address_t_uint8_t_address_t_uint8__to_t_address_t_uint8_t_address_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11208:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11219:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11227:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11235:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11243:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11254:4:29","type":""}],"src":"11086:461:29"},{"body":{"nodeType":"YulBlock","src":"11691:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"11701:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11721:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11715:5:29"},"nodeType":"YulFunctionCall","src":"11715:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11705:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11776:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"11784:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11772:3:29"},"nodeType":"YulFunctionCall","src":"11772:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"11791:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"11796:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11737:34:29"},"nodeType":"YulFunctionCall","src":"11737:66:29"},"nodeType":"YulExpressionStatement","src":"11737:66:29"},{"nodeType":"YulAssignment","src":"11812:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11823:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"11828:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11819:3:29"},"nodeType":"YulFunctionCall","src":"11819:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11812:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11667:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11672:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11683:3:29","type":""}],"src":"11552:289:29"},{"body":{"nodeType":"YulBlock","src":"11902:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11919:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"11922:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11912:6:29"},"nodeType":"YulFunctionCall","src":"11912:14:29"},"nodeType":"YulExpressionStatement","src":"11912:14:29"},{"nodeType":"YulAssignment","src":"11935:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11953:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11956:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"11943:9:29"},"nodeType":"YulFunctionCall","src":"11943:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"11935:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11885:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"11893:4:29","type":""}],"src":"11846:121:29"},{"body":{"nodeType":"YulBlock","src":"12108:706:29","statements":[{"nodeType":"YulVariableDeclaration","src":"12118:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12129:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"12122:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12139:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12162:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12156:5:29"},"nodeType":"YulFunctionCall","src":"12156:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"12143:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12178:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12218:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"12192:25:29"},"nodeType":"YulFunctionCall","src":"12192:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12182:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12237:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12247:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12241:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"12298:126:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12319:3:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12328:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12343:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12339:3:29"},"nodeType":"YulFunctionCall","src":"12339:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12324:3:29"},"nodeType":"YulFunctionCall","src":"12324:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12312:6:29"},"nodeType":"YulFunctionCall","src":"12312:37:29"},"nodeType":"YulExpressionStatement","src":"12312:37:29"},{"nodeType":"YulAssignment","src":"12362:52:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12373:3:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12382:6:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12404:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12397:6:29"},"nodeType":"YulFunctionCall","src":"12397:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12390:6:29"},"nodeType":"YulFunctionCall","src":"12390:22:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12378:3:29"},"nodeType":"YulFunctionCall","src":"12378:35:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12369:3:29"},"nodeType":"YulFunctionCall","src":"12369:45:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12362:3:29"}]}]},"nodeType":"YulCase","src":"12291:133:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12296:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"12440:349:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12461:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"12464:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12454:6:29"},"nodeType":"YulFunctionCall","src":"12454:17:29"},"nodeType":"YulExpressionStatement","src":"12454:17:29"},{"nodeType":"YulVariableDeclaration","src":"12484:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12494:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12488:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12511:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12536:1:29","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"12539:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12526:9:29"},"nodeType":"YulFunctionCall","src":"12526:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"12515:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12555:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12564:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12559:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"12632:111:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12661:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"12666:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12657:3:29"},"nodeType":"YulFunctionCall","src":"12657:11:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12676:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12670:5:29"},"nodeType":"YulFunctionCall","src":"12670:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12650:6:29"},"nodeType":"YulFunctionCall","src":"12650:35:29"},"nodeType":"YulExpressionStatement","src":"12650:35:29"},{"nodeType":"YulAssignment","src":"12702:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12717:7:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12726:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12713:3:29"},"nodeType":"YulFunctionCall","src":"12713:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12702:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12589:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"12592:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12586:2:29"},"nodeType":"YulFunctionCall","src":"12586:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12600:19:29","statements":[{"nodeType":"YulAssignment","src":"12602:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12611:1:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12614:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12607:3:29"},"nodeType":"YulFunctionCall","src":"12607:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12602:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"12582:3:29","statements":[]},"src":"12578:165:29"},{"nodeType":"YulAssignment","src":"12756:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12767:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"12772:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12763:3:29"},"nodeType":"YulFunctionCall","src":"12763:16:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12756:3:29"}]}]},"nodeType":"YulCase","src":"12433:356:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12438:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12268:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12279:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12264:3:29"},"nodeType":"YulFunctionCall","src":"12264:18:29"},"nodeType":"YulSwitch","src":"12257:532:29"},{"nodeType":"YulAssignment","src":"12798:10:29","value":{"name":"ret","nodeType":"YulIdentifier","src":"12805:3:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12798:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12084:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12089:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12100:3:29","type":""}],"src":"11972:842:29"},{"body":{"nodeType":"YulBlock","src":"12868:79:29","statements":[{"nodeType":"YulAssignment","src":"12878:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12890:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"12893:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12886:3:29"},"nodeType":"YulFunctionCall","src":"12886:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12878:4:29"}]},{"body":{"nodeType":"YulBlock","src":"12919:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12921:16:29"},"nodeType":"YulFunctionCall","src":"12921:18:29"},"nodeType":"YulExpressionStatement","src":"12921:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"12910:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"12916:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12907:2:29"},"nodeType":"YulFunctionCall","src":"12907:11:29"},"nodeType":"YulIf","src":"12904:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12850:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"12853:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12859:4:29","type":""}],"src":"12819:128:29"},{"body":{"nodeType":"YulBlock","src":"13000:77:29","statements":[{"nodeType":"YulAssignment","src":"13010:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13021:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"13024:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13017:3:29"},"nodeType":"YulFunctionCall","src":"13017:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13010:3:29"}]},{"body":{"nodeType":"YulBlock","src":"13049:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13051:16:29"},"nodeType":"YulFunctionCall","src":"13051:18:29"},"nodeType":"YulExpressionStatement","src":"13051:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13041:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"13044:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13038:2:29"},"nodeType":"YulFunctionCall","src":"13038:10:29"},"nodeType":"YulIf","src":"13035:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12983:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"12986:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12992:3:29","type":""}],"src":"12952:125:29"},{"body":{"nodeType":"YulBlock","src":"13163:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"13196:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"13210:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"13220:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13214:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13241:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"13245:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13234:6:29"},"nodeType":"YulFunctionCall","src":"13234:17:29"},"nodeType":"YulExpressionStatement","src":"13234:17:29"},{"nodeType":"YulVariableDeclaration","src":"13264:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13286:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"13290:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"13276:9:29"},"nodeType":"YulFunctionCall","src":"13276:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"13268:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13308:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13331:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13341:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"13348:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"13360:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13344:3:29"},"nodeType":"YulFunctionCall","src":"13344:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13337:3:29"},"nodeType":"YulFunctionCall","src":"13337:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13327:3:29"},"nodeType":"YulFunctionCall","src":"13327:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"13312:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13402:23:29","statements":[{"nodeType":"YulAssignment","src":"13404:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"13419:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"13404:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"13384:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"13396:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13381:2:29"},"nodeType":"YulFunctionCall","src":"13381:20:29"},"nodeType":"YulIf","src":"13378:47:29"},{"nodeType":"YulVariableDeclaration","src":"13438:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13452:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13462:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13469:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13474:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13465:3:29"},"nodeType":"YulFunctionCall","src":"13465:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13458:3:29"},"nodeType":"YulFunctionCall","src":"13458:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13448:3:29"},"nodeType":"YulFunctionCall","src":"13448:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"13442:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13492:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"13505:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"13496:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13590:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13599:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13606:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13592:6:29"},"nodeType":"YulFunctionCall","src":"13592:17:29"},"nodeType":"YulExpressionStatement","src":"13592:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13540:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"13547:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13537:2:29"},"nodeType":"YulFunctionCall","src":"13537:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13551:26:29","statements":[{"nodeType":"YulAssignment","src":"13553:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13566:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"13573:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13562:3:29"},"nodeType":"YulFunctionCall","src":"13562:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"13553:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"13533:3:29","statements":[]},"src":"13529:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13179:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13184:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13176:2:29"},"nodeType":"YulFunctionCall","src":"13176:11:29"},"nodeType":"YulIf","src":"13173:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"13135:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"13142:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"13147:10:29","type":""}],"src":"13082:545:29"},{"body":{"nodeType":"YulBlock","src":"13717:81:29","statements":[{"nodeType":"YulAssignment","src":"13727:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13742:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13760:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"13763:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13756:3:29"},"nodeType":"YulFunctionCall","src":"13756:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13773:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13769:3:29"},"nodeType":"YulFunctionCall","src":"13769:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13752:3:29"},"nodeType":"YulFunctionCall","src":"13752:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13748:3:29"},"nodeType":"YulFunctionCall","src":"13748:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13738:3:29"},"nodeType":"YulFunctionCall","src":"13738:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13784:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"13787:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13780:3:29"},"nodeType":"YulFunctionCall","src":"13780:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"13735:2:29"},"nodeType":"YulFunctionCall","src":"13735:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"13727:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"13694:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"13700:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"13708:4:29","type":""}],"src":"13632:166:29"},{"body":{"nodeType":"YulBlock","src":"13899:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"13909:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13929:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13923:5:29"},"nodeType":"YulFunctionCall","src":"13923:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"13913:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"13976:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"13978:16:29"},"nodeType":"YulFunctionCall","src":"13978:18:29"},"nodeType":"YulExpressionStatement","src":"13978:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13948:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"13956:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13945:2:29"},"nodeType":"YulFunctionCall","src":"13945:30:29"},"nodeType":"YulIf","src":"13942:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14051:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14089:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"14083:5:29"},"nodeType":"YulFunctionCall","src":"14083:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"14057:25:29"},"nodeType":"YulFunctionCall","src":"14057:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"14097:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"14007:43:29"},"nodeType":"YulFunctionCall","src":"14007:97:29"},"nodeType":"YulExpressionStatement","src":"14007:97:29"},{"nodeType":"YulVariableDeclaration","src":"14113:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14130:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"14117:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14140:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14159:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"14144:11:29","type":""}]},{"nodeType":"YulAssignment","src":"14172:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14185:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14172:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"14242:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"14256:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"14275:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14287:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14283:3:29"},"nodeType":"YulFunctionCall","src":"14283:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14271:3:29"},"nodeType":"YulFunctionCall","src":"14271:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"14260:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14304:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14348:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"14318:29:29"},"nodeType":"YulFunctionCall","src":"14318:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"14308:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14366:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14375:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14370:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"14453:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14478:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14496:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14501:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14492:3:29"},"nodeType":"YulFunctionCall","src":"14492:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14486:5:29"},"nodeType":"YulFunctionCall","src":"14486:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14471:6:29"},"nodeType":"YulFunctionCall","src":"14471:42:29"},"nodeType":"YulExpressionStatement","src":"14471:42:29"},{"nodeType":"YulAssignment","src":"14530:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14544:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14552:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14540:3:29"},"nodeType":"YulFunctionCall","src":"14540:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14530:6:29"}]},{"nodeType":"YulAssignment","src":"14571:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14588:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14599:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14584:3:29"},"nodeType":"YulFunctionCall","src":"14584:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14571:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14400:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"14403:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14397:2:29"},"nodeType":"YulFunctionCall","src":"14397:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14412:28:29","statements":[{"nodeType":"YulAssignment","src":"14414:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14423:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14426:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14419:3:29"},"nodeType":"YulFunctionCall","src":"14419:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14414:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"14393:3:29","statements":[]},"src":"14389:236:29"},{"body":{"nodeType":"YulBlock","src":"14673:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"14691:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14718:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14723:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14714:3:29"},"nodeType":"YulFunctionCall","src":"14714:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14708:5:29"},"nodeType":"YulFunctionCall","src":"14708:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"14695:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14758:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"14770:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14797:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"14800:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14793:3:29"},"nodeType":"YulFunctionCall","src":"14793:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"14809:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14789:3:29"},"nodeType":"YulFunctionCall","src":"14789:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14819:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14815:3:29"},"nodeType":"YulFunctionCall","src":"14815:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14785:3:29"},"nodeType":"YulFunctionCall","src":"14785:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14781:3:29"},"nodeType":"YulFunctionCall","src":"14781:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14766:3:29"},"nodeType":"YulFunctionCall","src":"14766:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14751:6:29"},"nodeType":"YulFunctionCall","src":"14751:74:29"},"nodeType":"YulExpressionStatement","src":"14751:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"14644:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"14653:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14641:2:29"},"nodeType":"YulFunctionCall","src":"14641:19:29"},"nodeType":"YulIf","src":"14638:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14859:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14873:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"14876:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14869:3:29"},"nodeType":"YulFunctionCall","src":"14869:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"14885:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14865:3:29"},"nodeType":"YulFunctionCall","src":"14865:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14852:6:29"},"nodeType":"YulFunctionCall","src":"14852:36:29"},"nodeType":"YulExpressionStatement","src":"14852:36:29"}]},"nodeType":"YulCase","src":"14235:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14240:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"14915:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"14929:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"14942:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14933:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"14978:67:29","statements":[{"nodeType":"YulAssignment","src":"14996:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15015:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"15020:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15011:3:29"},"nodeType":"YulFunctionCall","src":"15011:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15005:5:29"},"nodeType":"YulFunctionCall","src":"15005:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14996:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"14959:6:29"},"nodeType":"YulIf","src":"14956:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15065:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15124:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"15131:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"15071:52:29"},"nodeType":"YulFunctionCall","src":"15071:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"15058:6:29"},"nodeType":"YulFunctionCall","src":"15058:81:29"},"nodeType":"YulExpressionStatement","src":"15058:81:29"}]},"nodeType":"YulCase","src":"14907:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"14215:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14223:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14212:2:29"},"nodeType":"YulFunctionCall","src":"14212:14:29"},"nodeType":"YulSwitch","src":"14205:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"13884:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"13890:3:29","type":""}],"src":"13803:1352:29"},{"body":{"nodeType":"YulBlock","src":"15253:1338:29","statements":[{"body":{"nodeType":"YulBlock","src":"15280:9:29","statements":[{"nodeType":"YulLeave","src":"15282:5:29"}]},"condition":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15269:4:29"},{"name":"src","nodeType":"YulIdentifier","src":"15275:3:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15266:2:29"},"nodeType":"YulFunctionCall","src":"15266:13:29"},"nodeType":"YulIf","src":"15263:26:29"},{"nodeType":"YulVariableDeclaration","src":"15298:51:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15344:3:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15338:5:29"},"nodeType":"YulFunctionCall","src":"15338:10:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"15312:25:29"},"nodeType":"YulFunctionCall","src":"15312:37:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"15302:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"15392:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15394:16:29"},"nodeType":"YulFunctionCall","src":"15394:18:29"},"nodeType":"YulExpressionStatement","src":"15394:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"15364:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"15372:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15361:2:29"},"nodeType":"YulFunctionCall","src":"15361:30:29"},"nodeType":"YulIf","src":"15358:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15467:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15505:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15499:5:29"},"nodeType":"YulFunctionCall","src":"15499:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"15473:25:29"},"nodeType":"YulFunctionCall","src":"15473:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"15513:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"15423:43:29"},"nodeType":"YulFunctionCall","src":"15423:97:29"},"nodeType":"YulExpressionStatement","src":"15423:97:29"},{"nodeType":"YulVariableDeclaration","src":"15529:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"15546:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"15533:9:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"15593:741:29","statements":[{"nodeType":"YulVariableDeclaration","src":"15607:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"15626:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15638:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15634:3:29"},"nodeType":"YulFunctionCall","src":"15634:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15622:3:29"},"nodeType":"YulFunctionCall","src":"15622:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"15611:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15655:47:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15698:3:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"15668:29:29"},"nodeType":"YulFunctionCall","src":"15668:34:29"},"variables":[{"name":"src_1","nodeType":"YulTypedName","src":"15659:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15715:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"15759:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"15729:29:29"},"nodeType":"YulFunctionCall","src":"15729:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"15719:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15777:18:29","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"15786:9:29"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15781:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"15865:194:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"15890:6:29"},{"arguments":[{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"15908:5:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"15915:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15904:3:29"},"nodeType":"YulFunctionCall","src":"15904:21:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"15898:5:29"},"nodeType":"YulFunctionCall","src":"15898:28:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"15883:6:29"},"nodeType":"YulFunctionCall","src":"15883:44:29"},"nodeType":"YulExpressionStatement","src":"15883:44:29"},{"nodeType":"YulVariableDeclaration","src":"15944:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"15954:1:29","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15948:2:29","type":""}]},{"nodeType":"YulAssignment","src":"15972:25:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"15986:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"15994:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15982:3:29"},"nodeType":"YulFunctionCall","src":"15982:15:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"15972:6:29"}]},{"nodeType":"YulAssignment","src":"16014:31:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"16031:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"16042:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16027:3:29"},"nodeType":"YulFunctionCall","src":"16027:18:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"16014:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15819:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"15822:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15816:2:29"},"nodeType":"YulFunctionCall","src":"15816:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15831:21:29","statements":[{"nodeType":"YulAssignment","src":"15833:17:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15842:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"15845:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15838:3:29"},"nodeType":"YulFunctionCall","src":"15838:12:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15833:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"15812:3:29","statements":[]},"src":"15808:251:29"},{"body":{"nodeType":"YulBlock","src":"16107:168:29","statements":[{"nodeType":"YulVariableDeclaration","src":"16125:45:29","value":{"arguments":[{"arguments":[{"name":"src_1","nodeType":"YulIdentifier","src":"16152:5:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"16159:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16148:3:29"},"nodeType":"YulFunctionCall","src":"16148:21:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16142:5:29"},"nodeType":"YulFunctionCall","src":"16142:28:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"16129:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"16194:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"16206:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16233:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"16236:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16229:3:29"},"nodeType":"YulFunctionCall","src":"16229:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"16245:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16225:3:29"},"nodeType":"YulFunctionCall","src":"16225:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16255:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16251:3:29"},"nodeType":"YulFunctionCall","src":"16251:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"16221:3:29"},"nodeType":"YulFunctionCall","src":"16221:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"16217:3:29"},"nodeType":"YulFunctionCall","src":"16217:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16202:3:29"},"nodeType":"YulFunctionCall","src":"16202:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"16187:6:29"},"nodeType":"YulFunctionCall","src":"16187:74:29"},"nodeType":"YulExpressionStatement","src":"16187:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"16078:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"16087:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16075:2:29"},"nodeType":"YulFunctionCall","src":"16075:19:29"},"nodeType":"YulIf","src":"16072:203:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"16295:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16309:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"16312:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16305:3:29"},"nodeType":"YulFunctionCall","src":"16305:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"16321:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16301:3:29"},"nodeType":"YulFunctionCall","src":"16301:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"16288:6:29"},"nodeType":"YulFunctionCall","src":"16288:36:29"},"nodeType":"YulExpressionStatement","src":"16288:36:29"}]},"nodeType":"YulCase","src":"15586:748:29","value":{"kind":"number","nodeType":"YulLiteral","src":"15591:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"16351:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"16365:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"16378:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16369:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"16414:67:29","statements":[{"nodeType":"YulAssignment","src":"16432:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"16451:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"16456:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16447:3:29"},"nodeType":"YulFunctionCall","src":"16447:19:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"16441:5:29"},"nodeType":"YulFunctionCall","src":"16441:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"16432:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"16395:6:29"},"nodeType":"YulIf","src":"16392:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"16501:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16560:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"16567:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"16507:52:29"},"nodeType":"YulFunctionCall","src":"16507:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"16494:6:29"},"nodeType":"YulFunctionCall","src":"16494:81:29"},"nodeType":"YulExpressionStatement","src":"16494:81:29"}]},"nodeType":"YulCase","src":"16343:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"15566:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"15574:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15563:2:29"},"nodeType":"YulFunctionCall","src":"15563:14:29"},"nodeType":"YulSwitch","src":"15556:1029:29"}]},"name":"copy_byte_array_to_storage_from_t_string_storage_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"15238:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"15244:3:29","type":""}],"src":"15160:1431:29"},{"body":{"nodeType":"YulBlock","src":"16795:231:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16812:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16827:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16843:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16848:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16839:3:29"},"nodeType":"YulFunctionCall","src":"16839:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"16852:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16835:3:29"},"nodeType":"YulFunctionCall","src":"16835:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16823:3:29"},"nodeType":"YulFunctionCall","src":"16823:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16805:6:29"},"nodeType":"YulFunctionCall","src":"16805:51:29"},"nodeType":"YulExpressionStatement","src":"16805:51:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16876:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16887:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16872:3:29"},"nodeType":"YulFunctionCall","src":"16872:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16896:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"16904:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16892:3:29"},"nodeType":"YulFunctionCall","src":"16892:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16865:6:29"},"nodeType":"YulFunctionCall","src":"16865:45:29"},"nodeType":"YulExpressionStatement","src":"16865:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16930:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16941:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16926:3:29"},"nodeType":"YulFunctionCall","src":"16926:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16946:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16919:6:29"},"nodeType":"YulFunctionCall","src":"16919:30:29"},"nodeType":"YulExpressionStatement","src":"16919:30:29"},{"nodeType":"YulAssignment","src":"16958:62:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16993:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17016:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:29"},"nodeType":"YulFunctionCall","src":"17001:18:29"}],"functionName":{"name":"abi_encode_array_uint8_dyn","nodeType":"YulIdentifier","src":"16966:26:29"},"nodeType":"YulFunctionCall","src":"16966:54:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16958:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__to_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16748:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16759:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16767:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16775:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16786:4:29","type":""}],"src":"16596:430:29"},{"body":{"nodeType":"YulBlock","src":"17063:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17080:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17087:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17092:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17083:3:29"},"nodeType":"YulFunctionCall","src":"17083:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17073:6:29"},"nodeType":"YulFunctionCall","src":"17073:31:29"},"nodeType":"YulExpressionStatement","src":"17073:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17120:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17123:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17113:6:29"},"nodeType":"YulFunctionCall","src":"17113:15:29"},"nodeType":"YulExpressionStatement","src":"17113:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17144:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17147:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17137:6:29"},"nodeType":"YulFunctionCall","src":"17137:15:29"},"nodeType":"YulExpressionStatement","src":"17137:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"17031:127:29"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_array_uint8_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let _3 := shl(5, _1)\n let dst := allocate_memory(add(_3, _2))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, _3), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n mstore(dst, abi_decode_uint8(src))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_string_memory_ptrt_addresst_uint8t_array$_t_uint8_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := abi_decode_uint8(add(headStart, 64))\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(0, 0) }\n value3 := abi_decode_array_uint8_dyn(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint8(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint8(headStart)\n }\n function abi_decode_tuple_t_string_memory_ptrt_uint8t_array$_t_uint8_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n value1 := abi_decode_uint8(add(headStart, 32))\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(0, 0) }\n value2 := abi_decode_array_uint8_dyn(add(headStart, offset_1), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_array_uint8_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_struct_Offer(value, pos) -> end\n {\n let memberValue0 := mload(value)\n mstore(pos, 0xa0)\n let tail := abi_encode_string(memberValue0, add(pos, 0xa0))\n mstore(add(pos, 0x20), and(mload(add(value, 0x20)), 0xff))\n let memberValue0_1 := mload(add(value, 0x40))\n mstore(add(pos, 0x40), sub(tail, pos))\n let tail_1 := abi_encode_array_uint8_dyn(memberValue0_1, tail)\n mstore(add(pos, 0x60), and(mload(add(value, 0x60)), sub(shl(160, 1), 1)))\n mstore(add(pos, 0x80), mload(add(value, 0x80)))\n end := tail_1\n }\n function abi_encode_tuple_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Offer_$5997_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let tail_2 := add(add(headStart, shl(5, length)), 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n tail_2 := abi_encode_struct_Offer(mload(srcPtr), tail_2)\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint8_t_address_t_uint256__to_t_string_memory_ptr_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n tail := abi_encode_string(value0, add(headStart, 128))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_struct$_Offer_$5997_memory_ptr__to_t_struct$_Offer_$5997_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_Offer(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_uint8t_addresst_uint8(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_uint8(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n value3 := abi_decode_uint8(add(headStart, 96))\n }\n function abi_encode_tuple_t_contract$_IGammaCardsContract_$5952__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function abi_encode_tuple_t_address_t_uint8_t_address_t_uint8__to_t_address_t_uint8_t_address_t_uint8__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, 0xff))\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_packed_t_string_storage__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _1 := 1\n switch and(slotValue, _1)\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n mstore(0, value0)\n let _2 := 0x20\n let dataPos := keccak256(0, _2)\n let i := 0\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n end := ret\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function copy_byte_array_to_storage_from_t_string_storage_to_t_string_storage(slot, src)\n {\n if eq(slot, src) { leave }\n let newLen := extract_byte_array_length(sload(src))\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let src_1 := array_dataslot_string_storage(src)\n let dstPtr := array_dataslot_string_storage(slot)\n let i := srcOffset\n for { } lt(i, loopEnd) { i := add(i, 0x20) }\n {\n sstore(dstPtr, sload(add(src_1, srcOffset)))\n let _1 := 1\n dstPtr := add(dstPtr, _1)\n srcOffset := add(srcOffset, _1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := sload(add(src_1, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := sload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__to_t_address_t_uint8_t_array$_t_uint8_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_array_uint8_dyn(value2, add(headStart, 96))\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":1520},{"length":20,"start":3288}]}},"object":"608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x227 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7594A6ED GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xCE7483D5 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xE2B36596 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE2B36596 EQ PUSH2 0x4F7 JUMPI DUP1 PUSH4 0xE359A0A1 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xE5E5F732 EQ PUSH2 0x51D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xFC9E80FC EQ PUSH2 0x543 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCE7483D5 EQ PUSH2 0x486 JUMPI DUP1 PUSH4 0xCF86F8E5 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xD250F03A EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xD827A8F4 EQ PUSH2 0x4C4 JUMPI DUP1 PUSH4 0xE02F9723 EQ PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x90222AA1 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x90222AA1 EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x9618B333 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x9F915069 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0xBA79B77B EQ PUSH2 0x46B JUMPI DUP1 PUSH4 0xC08029E7 EQ PUSH2 0x473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7594A6ED EQ PUSH2 0x3B5 JUMPI DUP1 PUSH4 0x8400A189 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x8A72EA6A EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 GT PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x5A919AEB GT PUSH2 0x182 JUMPI DUP1 PUSH4 0x5A919AEB EQ PUSH2 0x372 JUMPI DUP1 PUSH4 0x5BBFBFD6 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x619980DC EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3E293E16 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0x3EE992EE EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x34C JUMPI DUP1 PUSH4 0x58E57EBB EQ PUSH2 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EDB5FCF GT PUSH2 0x1FA JUMPI DUP1 PUSH4 0x2EDB5FCF EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x322FBA27 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x3808DFE7 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3A027073 EQ PUSH2 0x311 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCDB3117 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x17A1FED9 EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x29D3F60B EQ PUSH2 0x27A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23F PUSH2 0x23A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x556 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x265 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x59B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x275 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E82 JUMP JUMPDEST PUSH2 0x641 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x5 SLOAD GT SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x683 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x743 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x30C CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0x927 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x332 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F6E JUMP JUMPDEST PUSH2 0x96F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x980 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x30D4 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x35A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x36D CALLDATASIZE PUSH1 0x4 PUSH2 0x3144 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x23F PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0xC02 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x4 SLOAD GT PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xC83 JUMP JUMPDEST PUSH2 0x265 PUSH2 0xCFA JUMP JUMPDEST PUSH2 0x23F PUSH2 0x3C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x33F PUSH2 0x3E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH2 0xD0E JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3161 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x249 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x33F PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0xF8A JUMP JUMPDEST PUSH2 0x45E PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F07 JUMP JUMPDEST PUSH2 0x114D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0x319C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH2 0x265 PUSH2 0x481 CALLDATASIZE PUSH1 0x4 PUSH2 0x31AF JUMP JUMPDEST PUSH2 0x135D JUMP JUMPDEST PUSH2 0x23F PUSH2 0x494 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x23F JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x418 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x23F PUSH2 0x4D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F53 JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x265 PUSH2 0x4F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1681 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x3203 JUMP JUMPDEST PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x45E PUSH2 0x518 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x18BF JUMP JUMPDEST PUSH2 0x265 PUSH2 0x52B CALLDATASIZE PUSH1 0x4 PUSH2 0x2F3A JUMP JUMPDEST PUSH2 0x1A4B JUMP JUMPDEST PUSH2 0x265 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1A80 JUMP JUMPDEST PUSH2 0x2A7 PUSH2 0x551 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5CB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x63A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67D DUP5 DUP5 DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x6AC JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 LT ISZERO PUSH2 0x737 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF DUP6 AND SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x725 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST DUP1 PUSH2 0x72F DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6AF JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x773 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x8B3 JUMPI PUSH1 0x9 PUSH1 0x0 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x797 JUMPI PUSH2 0x797 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x7CD SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x7E6 JUMPI PUSH2 0x7E6 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xA SWAP3 SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x830 JUMPI PUSH2 0x830 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD DUP2 KECCAK256 PUSH2 0x860 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x879 JUMPI PUSH2 0x879 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0xFF AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 SSTORE DUP1 PUSH2 0x8AB DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x776 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xD DUP2 SWAP1 SSTORE PUSH2 0x8C7 SWAP1 PUSH1 0x8 SWAP1 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x47E81EFC038E27BB296DEC5D44262943D2C2BBEC28F461787A9CC53885694CB0 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x922 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x934 CALLER DUP5 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x954 JUMPI POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x967 CALLER DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x97B DUP4 CALLER DUP5 DUP5 PUSH2 0x1D0E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xB0B JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x9D7 SWAP1 PUSH2 0x327D 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 0xA03 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA50 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA25 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xA50 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xA33 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xAD0 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xAA1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x9A4 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB6B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xBEF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC32 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC3E DUP5 DUP5 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC67 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x73D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7A DUP6 DUP6 DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 PUSH2 0x2241 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x2 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x60E JUMP JUMPDEST PUSH2 0xD02 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xD0C PUSH1 0x0 PUSH2 0x23E5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE PUSH1 0x60 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0xD73 SWAP1 PUSH2 0x327D 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 0xD9F SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xDEC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xDC1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDEC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xDCF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0xE3D JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xD40 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xEC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0xEE5 SWAP1 PUSH2 0x327D 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 0xF11 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF5E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF33 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF5E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF41 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD SWAP3 SWAP4 PUSH1 0xFF SWAP1 SWAP2 AND SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP3 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP4 MSTORE DUP1 DUP4 MSTORE SWAP2 SWAP4 SWAP1 SWAP3 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xEA7 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1019 SWAP1 PUSH2 0x327D 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 0x1045 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1092 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1067 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1092 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1075 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1112 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x10E3 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x4 SWAP1 SWAP3 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP1 DUP3 MSTORE PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xFE6 JUMP JUMPDEST PUSH2 0x1155 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x117C JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1354 JUMPI DUP5 PUSH1 0xFF AND DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x11C0 JUMPI PUSH2 0x11C0 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SUB PUSH2 0x1342 JUMPI DUP3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x11EE JUMPI PUSH2 0x11EE PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1217 SWAP1 PUSH2 0x327D 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 0x1243 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1265 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1290 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1310 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x12E1 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 POP PUSH2 0x73D SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x134C DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11A2 JUMP JUMPDEST POP PUSH2 0xC7A PUSH2 0x2435 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1369 DUP4 DUP4 PUSH2 0x114D JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DED2293 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1447 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x13E1 SWAP1 DUP8 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1400 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1424 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1177B295 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14BC JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x149B JUMPI DUP7 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1470 JUMPI PUSH2 0x1470 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1489 JUMPI PUSH1 0x1 SWAP2 POP PUSH2 0x149B JUMP JUMPDEST DUP1 PUSH2 0x1493 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x144B JUMP JUMPDEST POP DUP1 PUSH2 0x14BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEFA237 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x14CF DUP6 DUP6 DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH2 0x2241 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x14EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B440351 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x568B427D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0xFF DUP1 DUP11 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP3 AND PUSH1 0x44 DUP5 ADD MSTORE DUP8 AND PUSH1 0x64 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xAD1684FA SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x154F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1563 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x8BF670C8 SWAP2 POP PUSH2 0x1599 SWAP1 DUP11 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15DC SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x165A JUMPI POP PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1615 SWAP1 DUP9 SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFC9716B9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x16B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH2 0x16BE PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x18B6 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16DC SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1705 JUMPI PUSH2 0x1705 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1726 SWAP2 SWAP1 PUSH2 0x332B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SUB PUSH2 0x18A4 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1754 JUMPI PUSH2 0x1754 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x177D SWAP1 PUSH2 0x327D 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 0x17A9 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x17F6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17CB JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x17F6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x17D9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1876 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x1847 JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 PUSH2 0x18AE DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x16C1 JUMP JUMPDEST POP PUSH2 0x73D PUSH2 0x2435 JUMP JUMPDEST PUSH2 0x18C7 PUSH2 0x2B07 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 LT PUSH2 0x18E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5129CAB1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18FC JUMPI PUSH2 0x18FC PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x1925 SWAP1 PUSH2 0x327D 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 0x1951 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x199E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1973 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x199E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1981 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD DUP3 DUP6 MUL DUP2 ADD DUP6 ADD DUP3 MSTORE DUP3 DUP2 MSTORE SWAP5 ADD SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1A1E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x0 SWAP1 JUMPDEST DUP3 SLOAD PUSH2 0x100 DUP4 SWAP1 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 PUSH1 0x1 SWAP3 DUP4 ADD DUP2 DUP2 DIV SWAP5 DUP6 ADD SWAP5 SWAP1 SWAP4 SUB SWAP1 SWAP3 MUL SWAP2 ADD DUP1 DUP5 GT PUSH2 0x19EF JUMPI SWAP1 POP JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1A7B JUMPI PUSH1 0x40 MLOAD PUSH4 0x4289C493 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH2 0x1A88 PUSH2 0x23B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1AB7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AC0 DUP2 PUSH2 0x23E5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1AF1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA71ED6C7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1B18 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xB SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1B5A JUMPI PUSH2 0x1B5A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x1B76 SWAP1 PUSH2 0x327D 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 0x1BA2 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1BEF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1BC4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1BEF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1BD2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1C0A JUMPI PUSH2 0x1C0A PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND SWAP1 POP PUSH2 0x1C2E DUP8 DUP3 DUP5 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x1C37 DUP3 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1C5B SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C75 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP DUP1 DUP1 PUSH2 0x1C89 SWAP1 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1B3E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1CB3 SWAP2 PUSH2 0x2AE6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x65419C67E554142D50C59ABD004485123CA498611A223F842E75DD96225BA4C8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D37 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCFDF3505 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD LT PUSH2 0x1D71 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xD SLOAD LT PUSH2 0x1D95 JUMPI PUSH1 0x40 MLOAD PUSH4 0x182A7D77 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x117ECE19 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8BF670C8 SWAP1 PUSH2 0x1DC8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E0B SWAP2 SWAP1 PUSH2 0x32D3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1E2B JUMPI PUSH1 0x40 MLOAD PUSH4 0x142D47A1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1E8E JUMPI DUP4 PUSH1 0xFF AND DUP4 DUP3 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1E53 JUMPI PUSH2 0x1E53 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0xFF AND SUB PUSH2 0x1E7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xD1ECF17 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x1E86 DUP2 PUSH2 0x32F0 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1E2E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1E9B DUP6 DUP6 PUSH2 0x114D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1ECA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEEEE5C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1EF3 SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x1F1B SWAP1 DUP5 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1F35 SWAP2 SWAP1 PUSH2 0x33B4 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE DUP8 DUP2 MSTORE PUSH1 0xFF DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE TIMESTAMP PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH1 0x5 SWAP1 SWAP2 MUL PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 ADD SWAP1 DUP2 SWAP1 PUSH2 0x1FB1 SWAP1 DUP3 PUSH2 0x3415 JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP1 MLOAD PUSH2 0x1FE4 SWAP3 PUSH1 0x2 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2B42 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x80 SWAP1 SWAP3 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x2034 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2044 JUMPI PUSH2 0x2044 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x2071 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x20A0 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP1 SLOAD PUSH2 0x20F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2102 JUMPI PUSH2 0x2102 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 DUP5 SLOAD PUSH1 0x1 DUP2 ADD DUP7 SSTORE SWAP5 DUP5 MSTORE SWAP3 KECCAK256 PUSH1 0x5 SWAP2 DUP3 MUL SWAP1 SWAP3 ADD SWAP3 MUL ADD DUP1 PUSH2 0x212F DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x215E SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x7 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x21FE JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C5568EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7155A3AC SWAP1 PUSH2 0x21CB SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0xED750964F1F81F105E56DFD1121427E0898E7BC23D6C10E92D851A2D35E0CFC5 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2231 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x35A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x226A JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2275 DUP6 DUP6 DUP6 PUSH2 0x29AF JUMP JUMPDEST PUSH2 0x2280 DUP6 DUP6 DUP6 PUSH2 0x247E JUMP JUMPDEST PUSH2 0x2289 DUP4 PUSH2 0x2732 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22B3 SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x22DB SWAP1 DUP5 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0xD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x22F5 SWAP2 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x7 SLOAD PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x230A JUMPI POP DUP2 ISZERO JUMPDEST ISZERO PUSH2 0x2374 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xAAF17C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x155E2F92 SWAP1 PUSH2 0x2341 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x235B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x236F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH32 0x7911E34642EAE38762395A3DD0FA3308D0F8908B92FE36C41543D635AB7CB8F5 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x23A5 SWAP3 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD0C JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1AAE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x243D PUSH2 0x2B07 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP3 ADD DUP2 DUP2 MSTORE DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP3 DUP2 MSTORE SWAP1 DUP2 ADD DUP5 MSTORE SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0xFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x2550 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x24CC SWAP1 PUSH2 0x327D 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 0x24F8 SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2545 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x251A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2545 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2528 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP5 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2720 JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2571 JUMPI PUSH2 0x2571 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x25C6 JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x25AC JUMPI PUSH2 0x25AC PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x57AEB863 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SLOAD PUSH2 0x25F2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x26B4 JUMPI DUP2 SLOAD DUP3 SWAP1 PUSH2 0x2609 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x2619 JUMPI PUSH2 0x2619 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2639 JUMPI PUSH2 0x2639 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x2654 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x2683 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE JUMPDEST DUP2 DUP1 SLOAD DUP1 PUSH2 0x26C4 JUMPI PUSH2 0x26C4 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x26E4 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x26FE PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH2 0x63A JUMP JUMPDEST DUP1 PUSH2 0x272A DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2492 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST PUSH1 0x8 SLOAD DUP2 LT ISZERO PUSH2 0x29A8 JUMPI PUSH1 0x8 SLOAD DUP2 LT DUP1 ISZERO PUSH2 0x2803 JUMPI POP PUSH2 0x2803 PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2763 JUMPI PUSH2 0x2763 PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x277F SWAP1 PUSH2 0x327D 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 0x27AB SWAP1 PUSH2 0x327D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x27F8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27CD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x27F8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x27DB JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP6 PUSH2 0x2A8D JUMP JUMPDEST ISZERO PUSH2 0x2996 JUMPI PUSH1 0x8 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x281B JUMPI PUSH2 0x281B PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD SWAP1 PUSH2 0x2835 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x284F PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD PUSH2 0x287A SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x33A1 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x288A JUMPI PUSH2 0x288A PUSH2 0x3238 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28AB JUMPI PUSH2 0x28AB PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 SWAP1 SWAP2 MUL ADD DUP1 PUSH2 0x28C6 DUP4 DUP3 PUSH2 0x34D5 JUMP JUMPDEST POP PUSH1 0x1 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x2 DUP1 DUP4 ADD DUP1 SLOAD PUSH2 0x28F5 SWAP3 DUP5 ADD SWAP2 SWAP1 PUSH2 0x2BE8 JUMP JUMPDEST POP PUSH1 0x3 DUP3 DUP2 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x4 SWAP2 DUP3 ADD SLOAD SWAP2 ADD SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x2936 JUMPI PUSH2 0x2936 PUSH2 0x35D5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x5 DUP4 MUL ADD SWAP1 PUSH2 0x2956 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2970 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP1 SSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x29A8 JUMP JUMPDEST DUP1 PUSH2 0x29A0 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2737 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x63A JUMPI PUSH2 0x29E7 DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x24B0 JUMPI PUSH2 0x24B0 PUSH2 0x3238 JUMP JUMPDEST ISZERO PUSH2 0x2A7B JUMPI DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A08 JUMPI PUSH2 0x2A08 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 PUSH2 0x2A5D JUMPI POP DUP4 PUSH1 0xFF AND DUP3 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2A43 JUMPI PUSH2 0x2A43 PUSH2 0x3238 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 PUSH1 0x5 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x25E4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB7F2D833 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A85 DUP2 PUSH2 0x3264 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AA0 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2AC7 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x5 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2C95 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD PUSH1 0x0 JUMPDEST DUP4 DUP3 GT ISZERO PUSH2 0x2BA9 JUMPI DUP4 MLOAD DUP4 DUP3 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP SWAP3 PUSH1 0x20 ADD SWAP3 PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2B6B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BD6 JUMPI DUP3 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 ADD PUSH1 0x20 DUP2 PUSH1 0x0 ADD DIV SWAP3 DUP4 ADD SWAP3 PUSH1 0x1 SUB MUL PUSH2 0x2BA9 JUMP JUMPDEST POP JUMPDEST POP PUSH2 0x2BE4 SWAP3 SWAP2 POP PUSH2 0x2CE5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2BD8 JUMPI PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP2 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP3 SLOAD DUP3 SSTORE SWAP2 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2C1B JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x2C42 SWAP1 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x2C52 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AC0 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 PUSH2 0x2CA9 DUP3 DUP3 PUSH2 0x2C36 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x2CC3 PUSH1 0x2 DUP4 ADD PUSH1 0x0 PUSH2 0x2C70 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0x5 ADD PUSH2 0x2C95 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2BE4 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2CE6 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D72 JUMPI PUSH2 0x2D72 PUSH2 0x2D33 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DA5 JUMPI PUSH2 0x2DA5 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x2DB8 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D49 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2DCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1D09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2E28 JUMPI PUSH2 0x2E28 PUSH2 0x2D33 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x2E37 DUP3 DUP3 ADD PUSH2 0x2D49 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x2E51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x2E77 JUMPI PUSH2 0x2E68 DUP4 PUSH2 0x2DEA JUMP JUMPDEST DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x2E57 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EBC DUP9 DUP4 DUP10 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP6 POP PUSH2 0x2ECA PUSH1 0x20 DUP9 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP5 POP PUSH2 0x2ED8 PUSH1 0x40 DUP9 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2EFB DUP8 DUP3 DUP9 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F23 DUP4 PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x2F31 PUSH1 0x20 DUP5 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2C DUP3 PUSH2 0x2DEA JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2F83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FA7 DUP8 DUP4 DUP9 ADD PUSH2 0x2D7A JUMP JUMPDEST SWAP5 POP PUSH2 0x2FB5 PUSH1 0x20 DUP8 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2FCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FD8 DUP7 DUP3 DUP8 ADD PUSH2 0x2DFB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2FFD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2FE5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x301E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2FE2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3065 JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3046 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0xA0 DUP5 MSTORE PUSH2 0x3085 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3006 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x30AB DUP3 DUP3 PUSH2 0x3032 JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP8 ADD MSTORE PUSH1 0x80 SWAP5 DUP6 ADD MLOAD SWAP5 SWAP1 SWAP6 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP2 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP DUP4 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3129 JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x3117 DUP6 DUP4 MLOAD PUSH2 0x3070 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x30FB JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3174 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3006 JUMP JUMPDEST PUSH1 0xFF SWAP6 SWAP1 SWAP6 AND PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2D2C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3070 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31CE DUP6 PUSH2 0x2CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x31DC PUSH1 0x20 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP3 POP PUSH2 0x31EA PUSH1 0x40 DUP7 ADD PUSH2 0x2CFA JUMP JUMPDEST SWAP2 POP PUSH2 0x31F8 PUSH1 0x60 DUP7 ADD PUSH2 0x2DEA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x322C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x967 DUP5 DUP3 DUP6 ADD PUSH2 0x2D7A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x3276 JUMPI PUSH2 0x3276 PUSH2 0x324E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3291 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x32B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2D2C DUP2 PUSH2 0x3136 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0xFF DUP2 SUB PUSH2 0x3306 JUMPI PUSH2 0x3306 PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3321 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SLOAD PUSH2 0x3339 DUP2 PUSH2 0x327D JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x3351 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3366 JUMPI PUSH2 0x3395 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x3395 JUMP JUMPDEST DUP8 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x338C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x3373 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x73D JUMPI PUSH2 0x73D PUSH2 0x324E JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x97B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x33EE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x340D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x33FA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x342F JUMPI PUSH2 0x342F PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3443 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST DUP5 PUSH2 0x33C7 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3478 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3460 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x340D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x34A7 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3488 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x34C5 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x34E0 JUMPI POP POP JUMP JUMPDEST PUSH2 0x34EA DUP3 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3502 JUMPI PUSH2 0x3502 PUSH2 0x2D33 JUMP JUMPDEST PUSH2 0x3510 DUP2 PUSH2 0x343D DUP5 SLOAD PUSH2 0x327D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3544 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x352C JUMPI POP DUP5 DUP3 ADD SLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x63A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP5 AND SWAP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x357E JUMPI DUP3 DUP7 ADD SLOAD DUP3 SSTORE PUSH1 0x1 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x355E JUMP JUMPDEST POP DUP6 DUP4 LT ISZERO PUSH2 0x34C5 JUMPI SWAP4 ADD SLOAD PUSH1 0x0 NOT PUSH1 0xF8 PUSH1 0x3 DUP8 SWAP1 SHL AND SHR NOT AND SWAP1 SWAP3 SSTORE POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0xFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xC7A SWAP1 DUP4 ADD DUP5 PUSH2 0x3032 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH1 0x49 LOG3 PUSH1 0xA 0x28 0x49 LOG0 0x4D SWAP12 0xCE SWAP11 NOT SWAP9 SAR EXTCODEHASH PUSH8 0x80407816218C7190 0xE5 SUB 0xAF GAS 0xDC 0xB5 0xD7 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"1095:12929:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:174;;;;;;:::i;:::-;;:::i;:::-;;;529:25:29;;;517:2;502:18;5550:174:22;;;;;;;;2717:114;;;;;;:::i;:::-;;:::i;:::-;;3874:234;;;;;;:::i;:::-;;:::i;7550:138::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7658:25:22;7614:4;7658:25;;;:19;:25;;;;;;7633:22;;:50;;7550:138;;;;3273:14:29;;3266:22;3248:41;;3236:2;3221:18;7550:138:22;3108:187:29;7812:310:22;;;;;;:::i;:::-;;:::i;5445:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5518:23:22;5499:4;5518:23;;;:10;:23;;;;;;;;;5445:101;9507:392;;;:::i;3237:147::-;;;;;;:::i;:::-;;:::i;9903:337::-;;;;;;:::i;:::-;;:::i;3668:202::-;;;;;;:::i;:::-;;:::i;6189:84::-;;;:::i;:::-;;;;;;;:::i;2835:271::-;;;;;;:::i;:::-;;:::i;3535:129::-;;;;;;:::i;:::-;;:::i;1854:33::-;;;;;;10244:361;;;;;;:::i;:::-;;:::i;7692:116::-;7785:18;;7766:16;;:37;7692:116;;2615:98;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;1734:54:22:-;;;;;;:::i;:::-;;;;;;;;;;;;;;6929:136;;;;;;:::i;:::-;;:::i;1601:21::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;1638:85:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;;-1:-1:-1;;;;;8001:32:29;;;7983:51;;7971:2;7956:18;1638:85:0;7837:203:29;5975:97:22;6051:16;;5975:97;;6758:167;;;;;;:::i;:::-;;:::i;7069:477::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6076:109::-;6158:22;;6076:109;;8126:1377;;;;;;:::i;:::-;;:::i;5728:143::-;;;;;;:::i;:::-;5829:37;;5807:7;5829:37;;;:25;:37;;;;;;;5728:143;5875:96;5948:18;;5875:96;;1185:45;;;;;-1:-1:-1;;;;;1185:45:22;;;1792:58;;;;;;:::i;:::-;;;;;;;;;;;;;;3388:143;;;;;;:::i;:::-;;:::i;6444:310::-;;;;;;:::i;:::-;;:::i;6277:163::-;;;;;;:::i;:::-;;:::i;3110:123::-;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;10609:740:22:-;;;;;;:::i;:::-;;:::i;5550:174::-;5619:7;-1:-1:-1;;;;;5638:18:22;;5634:47;;5665:16;;-1:-1:-1;;;5665:16:22;;;;;;;;;;;5634:47;-1:-1:-1;;;;;;5694:25:22;;;;;:19;:25;;;;;;;5550:174::o;2717:114::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;2788:38:::1;::::0;-1:-1:-1;;;2788:38:22;;:10:::1;:38;::::0;::::1;9476:25:29::0;-1:-1:-1;;;;;9537:32:29;;9517:18;;;9510:60;2788:22:22::1;::::0;::::1;::::0;9449:18:29;;2788:38:22::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2717:114:::0;:::o;3874:234::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;4037:66:::1;4058:7;4067:4;4073:10;4085:17;4037:20;:66::i;:::-;3874:234:::0;;;;:::o;7812:310::-;7883:4;-1:-1:-1;;;;;7899:18:22;;7895:47;;7926:16;;-1:-1:-1;;;7926:16:22;;;;;;;;;;;7895:47;7953:9;7948:152;-1:-1:-1;;;;;7972:25:22;;;;;;:19;:25;;;;;;7968:29;;7948:152;;;-1:-1:-1;;;;;8016:18:22;;;;;;:12;:18;;;;;:21;;:46;;;;:18;8035:1;;8016:21;;;;;;:::i;:::-;;;;;;;;;:32;:21;;;;;:32;;;;:46;8012:82;;8081:4;8074:11;;;;;8012:82;7999:3;;;;:::i;:::-;;;;7948:152;;;;8112:5;8105:12;;7812:310;;;;;:::o;9507:392::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;9565:9:::1;9560:258;9584:6;:13:::0;9580:17;::::1;9560:258;;;9619:12;:29;9632:6;9639:1;9632:9;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:15:::1;:9;::::0;;::::1;;:15:::0;;;::::1;::::0;-1:-1:-1;;;;;9632:15:22::1;9619:29:::0;;;::::1;::::0;;;;;;;;9612:36:::1;::::0;::::1;:::i;:::-;9695:1;9656:19;:36;9676:6;9683:1;9676:9;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:15:::1;:9;::::0;;::::1;;:15:::0;;;::::1;::::0;-1:-1:-1;;;;;9676:15:22::1;9656:36:::0;;;::::1;::::0;;;;;;;;:40;;;;9731:6:::1;:9:::0;;9712:18:::1;::::0;9676:9;9731:6;9738:1;;9731:9;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:20:::1;:9;::::0;;::::1;;:20:::0;;;::::1;::::0;::::1;;9712:40:::0;;;::::1;::::0;;;;;;;;9705:47:::1;::::0;::::1;:::i;:::-;9810:1;9760:25;:47;9786:6;9793:1;9786:9;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:20:::1;:9;::::0;;::::1;;:20:::0;;;::::1;::::0;::::1;;9760:47:::0;;;::::1;::::0;;;;;;;;:51;9599:3;::::1;::::0;::::1;:::i;:::-;;;;9560:258;;;-1:-1:-1::0;9844:1:22::1;9823:18;:22:::0;;;9851:13:::1;::::0;9858:6:::1;::::0;9851:13:::1;:::i;:::-;9876:18;::::0;::::1;::::0;;;::::1;9507:392::o:0;3237:147::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3331:22:::1;:48:::0;3237:147::o;9903:337::-;9972:4;9984:18;10005:51;10033:10;10045;10005:27;:51::i;:::-;10066:11;;;;9984:72;;-1:-1:-1;;;;;;10066:25:22;10081:10;10066:25;10062:58;;-1:-1:-1;10108:5:22;;9903:337;-1:-1:-1;;9903:337:22:o;10062:58::-;10125:11;10139:77;10171:10;10183;10195:5;:13;;;10210:5;10139:31;:77::i;:::-;10125:91;9903:337;-1:-1:-1;;;;9903:337:22:o;3668:202::-;3793:72;3814:7;3823:10;3835;3847:17;3793:20;:72::i;:::-;3668:202;;;:::o;6189:84::-;6233:14;6262:6;6255:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6255:13:22;;;-1:-1:-1;;6255:13:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6255:13:22;;;-1:-1:-1;;6255:13:22;;;;-1:-1:-1;;;;;6255:13:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:84;:::o;2835:271::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;-1:-1:-1;;;;;2923:33:22;::::1;2919:62;;2965:16;;-1:-1:-1::0;;;2965:16:22::1;;;;;;;;;;;2919:62;2987:18;:61:::0;;-1:-1:-1;;;;;;2987:61:22::1;-1:-1:-1::0;;;;;2987:61:22;::::1;::::0;;::::1;::::0;;;3059:42:::1;::::0;7983:51:29;;;3059:42:22::1;::::0;7971:2:29;7956:18;3059:42:22::1;;;;;;;2835:271:::0;:::o;3535:129::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3620:30:::1;:39:::0;;-1:-1:-1;;3620:39:22::1;::::0;::::1;;::::0;;;::::1;::::0;;3535:129::o;10244:361::-;2334:10;10355:4;2316:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;10367:18:::1;10388:45;10416:4;10422:10;10388:27;:45::i;:::-;10367:66;;10458:4;-1:-1:-1::0;;;;;10443:19:22::1;:5;:11;;;-1:-1:-1::0;;;;;10443:19:22::1;;10439:52;;10479:5;10472:12;;;;;10439:52;10496:11;10510:71;10542:4;10548:10;10560:5;:13;;;10575:5;10510:31;:71::i;:::-;10496:85:::0;10244:361;-1:-1:-1;;;;;10244:361:22:o;2615:98::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;2678:30:::1;::::0;-1:-1:-1;;;2678:30:22;;:10:::1;:30;::::0;::::1;9476:25:29::0;-1:-1:-1;;;;;9537:32:29;;9517:18;;;9510:60;2678:19:22::1;::::0;::::1;::::0;9449:18:29;;2678:30:22::1;9271:305:29::0;2293:101:0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;6929:136:22:-;7030:30;;;;;;;:18;:30;;;;;;;;7023:37;;;;;;;;;;;;;;;;;7001:14;;7023:37;;7030:30;;7023:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7023:37:22;;;-1:-1:-1;;7023:37:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7023:37:22;;;-1:-1:-1;;7023:37:22;;;;-1:-1:-1;;;;;7023:37:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6929:136;;;:::o;1601:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1601:21:22;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1601:21:22;;;;-1:-1:-1;1601:21:22;:::o;6758:167::-;6820:14;-1:-1:-1;;;;;6846:18:22;;6842:47;;6873:16;;-1:-1:-1;;;6873:16:22;;;;;;;;;;;6842:47;-1:-1:-1;;;;;6902:18:22;;;;;;:12;:18;;;;;;;;6895:25;;;;;;;;;;;;;;;;;;;6902:18;;6895:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6895:25:22;;;-1:-1:-1;;6895:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6895:25:22;;;-1:-1:-1;;6895:25:22;;;;-1:-1:-1;;;;;6895:25:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7069:477;7171:12;;:::i;:::-;-1:-1:-1;;;;;7195:18:22;;7191:47;;7222:16;;-1:-1:-1;;;7222:16:22;;;;;;;;;;;7191:47;-1:-1:-1;;;;;7274:18:22;;7245:26;7274:18;;;:12;:18;;;;;;;;7333:19;:25;;;;;;7274:18;;7364:152;7388:24;7384:1;:28;7364:152;;;7459:10;7431:38;;:10;7442:1;7431:13;;;;;;;;:::i;:::-;;;;;;;;;:24;:13;;;;;:24;;;;:38;7427:83;;7488:10;7499:1;7488:13;;;;;;;;:::i;:::-;;;;;;;;;;;7481:20;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7481:20:22;;;-1:-1:-1;;7481:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7481:20:22;;;-1:-1:-1;;7481:20:22;;;;-1:-1:-1;;;;;7481:20:22;;;;;;;;;;;;;;;;-1:-1:-1;7481:20:22;;-1:-1:-1;;;7481:20:22;7427:83;7414:3;;;;:::i;:::-;;;;7364:152;;;;7528:13;:11;:13::i;8126:1377::-;8273:18;8294:57;8322:11;8335:15;8294:27;:57::i;:::-;8273:78;;8376:11;-1:-1:-1;;;;;8361:26:22;:5;:11;;;-1:-1:-1;;;;;8361:26:22;;8357:59;;8396:20;;-1:-1:-1;;;8396:20:22;;;;;;;;;;;8357:59;8458:23;;;;8491:24;;8423:32;8491:29;8487:548;;8584:18;;:64;;-1:-1:-1;;;8584:64:22;;-1:-1:-1;;;;;8584:18:22;;;;:33;;:64;;8618:11;;8631:16;;8584:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8580:105;;;8665:20;;-1:-1:-1;;;8665:20:22;;;;;;;;;;;8580:105;8487:548;;;8764:20;8805:7;8800:179;8822:17;:24;8818:1;:28;;;8800:179;;;8891:16;8867:40;;:17;8885:1;8867:20;;;;;;;;;;:::i;:::-;;;;;;;:40;;;8863:108;;8939:4;8921:22;;8955:5;;8863:108;8848:3;;;;:::i;:::-;;;;8800:179;;;;8991:15;8986:42;;9015:13;;-1:-1:-1;;;9015:13:22;;;;;;;;;;;8986:42;8698:337;8487:548;9041:17;9061:112;9100:11;9119:15;9142:5;:13;;;9163:4;9061:31;:112::i;:::-;9041:132;;9184:12;9179:43;;9205:17;;-1:-1:-1;;;9205:17:22;;;;;;;;;;;9179:43;9229:18;;:91;;-1:-1:-1;;;9229:91:22;;-1:-1:-1;;;;;11365:15:29;;;9229:91:22;;;11347:34:29;11429:4;11417:17;;;11397:18;;;11390:45;11471:15;;;11451:18;;;11444:43;11523:17;;11503:18;;;11496:45;9229:18:22;;;;:37;;11281:19:29;;9229:91:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9338:18:22;;:56;;-1:-1:-1;;;9338:56:22;;-1:-1:-1;;;;;9338:18:22;;;;-1:-1:-1;9338:33:22;;-1:-1:-1;9338:56:22;;9372:4;;9378:15;;9338:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9337:57;:132;;;-1:-1:-1;9405:18:22;;:64;;-1:-1:-1;;;9405:64:22;;-1:-1:-1;;;;;9405:18:22;;;;:33;;:64;;9439:11;;9452:16;;9405:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9404:65;9337:132;9326:172;;;9483:15;;-1:-1:-1;;;9483:15:22;;;;;;;;;;;9326:172;8267:1236;;;8126:1377;;;;:::o;3388:143::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3480:21:::1;:46:::0;3388:143::o;6444:310::-;6517:12;;:::i;:::-;6542:9;6537:187;6561:6;:13;6557:17;;6537:187;;;6670:7;6653:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;6643:36;;;;;;6620:6;6627:1;6620:9;;;;;;;;:::i;:::-;;;;;;;;;;;:17;;6603:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;6593:46;;;;;;:86;6589:129;;6699:6;6706:1;6699:9;;;;;;;;:::i;:::-;;;;;;;;;;;6691:18;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6691:18:22;;;-1:-1:-1;;6691:18:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6691:18:22;;;-1:-1:-1;;6691:18:22;;;;-1:-1:-1;;;;;6691:18:22;;;;;;;;;;;;;;;;6444:310;-1:-1:-1;;;6444:310:22:o;6589:129::-;6576:3;;;;:::i;:::-;;;;6537:187;;;;6736:13;:11;:13::i;6277:163::-;6338:12;;:::i;:::-;6371:6;:13;6362:22;;6358:51;;6393:16;;-1:-1:-1;;;6393:16:22;;;;;;;;;;;6358:51;6422:6;6429:5;6422:13;;;;;;;;:::i;:::-;;;;;;;;;;;6415:20;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6415:20:22;;;-1:-1:-1;;6415:20:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6415:20:22;;;-1:-1:-1;;6415:20:22;;;;-1:-1:-1;;;;;6415:20:22;;;;;;;;;;;;;;;;6277:163;-1:-1:-1;;6277:163:22:o;3110:123::-;2334:10;2316:17;:29;;;:10;:29;;;;;;;;2311:55;;2354:12;;-1:-1:-1;;;2354:12:22;;;;;;;;;;;2311:55;3192:16:::1;:36:::0;3110:123::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;7983:51:29::0;7956:18;;2672:31:0::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;10609:740:22:-;2220:18;;10687:4;;-1:-1:-1;;;;;2220:18:22;2198:10;:41;2194:73;;2248:19;;-1:-1:-1;;;2248:19:22;;;;;;;;;;;2194:73;-1:-1:-1;;;;;10703:18:22;::::1;10699:47;;10730:16;;-1:-1:-1::0;;;10730:16:22::1;;;;;;;;;;;10699:47;-1:-1:-1::0;;;;;10782:18:22;::::1;10753:26;10782:18:::0;;;:12:::1;:18;::::0;;;;;;;10841:19:::1;:25:::0;;;;;;10782:18;;10873:353:::1;10897:24;10893:1;:28;10873:353;;;10936:21;10960:10;10971:1;10960:13;;;;;;;;:::i;:::-;;;;;;;;;;;:21;;10936:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10989:16;11008:10;11019:1;11008:13;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:24:::1;:13;::::0;;::::1;;:24;::::0;::::1;;::::0;-1:-1:-1;11040:60:22::1;11074:4:::0;11008:24;11092:7;11040:33:::1;:60::i;:::-;11108:30;11130:7;11108:21;:30::i;:::-;-1:-1:-1::0;11146:37:22::1;::::0;::::1;;::::0;;;:25:::1;:37;::::0;;;;:42;;11187:1:::1;::::0;11146:37;:42:::1;::::0;11187:1;;11146:42:::1;:::i;:::-;;;;;;;;11218:1;11196:18;;:23;;;;;;;:::i;:::-;;;;;;;;10928:298;;10923:3;;;;;:::i;:::-;;;;10873:353;;;-1:-1:-1::0;;;;;;11239:18:22;::::1;;::::0;;;:12:::1;:18;::::0;;;;11232:25:::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;;;11263:25:22;::::1;11291:1;11263:25:::0;;;:19:::1;:25;::::0;;;;;;;:29;;;;11304:23;;7983:51:29;;;11304:23:22::1;::::0;7956:18:29;11304:23:22::1;;;;;;;11340:4;11333:11;;;;2273:1;10609:740:::0;;;:::o;4112:1329::-;4277:18;;-1:-1:-1;;;;;4277:18:22;4265:80;;4319:26;;-1:-1:-1;;;4319:26:22;;;;;;;;;;;4265:80;4384:22;;-1:-1:-1;;;;;4355:25:22;;;;;;:19;:25;;;;;;:51;4351:86;;4415:22;;-1:-1:-1;;;4415:22:22;;;;;;;;;;;4351:86;4469:16;;4447:18;;:38;4443:73;;4494:22;;-1:-1:-1;;;4494:22:22;;;;;;;;;;;4443:73;4542:18;;:51;;-1:-1:-1;;;4542:51:22;;4523:16;;-1:-1:-1;;;;;4542:18:22;;:33;;:51;;4576:4;;4582:10;;4542:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4523:70;;4604:11;4599:46;;4624:21;;-1:-1:-1;;;4624:21:22;;;;;;;;;;;4599:46;4657:7;4652:134;4674:17;:24;4670:1;:28;;;4652:134;;;4741:10;4717:34;;:17;4735:1;4717:20;;;;;;;;;;:::i;:::-;;;;;;;:34;;;4713:66;;4760:19;;-1:-1:-1;;;4760:19:22;;;;;;;;;;;4713:66;4700:3;;;;:::i;:::-;;;;4652:134;;;;4792:26;4821:45;4849:4;4855:10;4821:27;:45::i;:::-;4876:19;;;;4792:74;;-1:-1:-1;;;;;;4876:33:22;;4872:66;;4918:20;;-1:-1:-1;;;4918:20:22;;;;;;;;;;;4872:66;-1:-1:-1;;;;;4945:25:22;;;;;;:19;:25;;;;;:30;;4974:1;;4945:25;:30;;4974:1;;4945:30;:::i;:::-;;;;-1:-1:-1;;4981:37:22;;;;;;;:25;:37;;;;;:42;;5022:1;;4981:37;:42;;5022:1;;4981:42;:::i;:::-;;;;;;;;5051:1;5029:18;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;5071:68:22;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5071:68:22;;;;;;5123:15;5071:68;;;;5059:6;:81;;;;;;;-1:-1:-1;5059:81:22;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5059:81:22;;;;;;;;;;-1:-1:-1;;5059:81:22;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5059:81:22;;;;;;;;;-1:-1:-1;;;;;;5059:81:22;-1:-1:-1;;;;;5059:81:22;;;;;;;;;;;;;;;;5146:18;;-1:-1:-1;5146:18:22;;;:12;:18;;;;;5170:6;5177:13;;:17;;-1:-1:-1;;5177:17:22;:::i;:::-;5170:25;;;;;;;;:::i;:::-;;;;;;;;;5146:50;;;;;;;;;;;;5170:25;;;;;;;;5146:50;;;;5170:25;5146:50;;:::i;:::-;-1:-1:-1;5146:50:22;;;;;;;;;;-1:-1:-1;;5146:50:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5146:50:22;;;;;;;;;;-1:-1:-1;;;;;;5146:50:22;-1:-1:-1;;;;;5146:50:22;;;;;;;;;;;;;;;;;5202:30;;;5146:50;5202:30;;;:18;:30;;;;;5238:6;5245:13;;:17;;5146:50;;5245:17;:::i;:::-;5238:25;;;;;;;;:::i;:::-;;;;;;;;;5202:62;;;;;;;;;;;;5238:25;;;;;;;;5202:62;;;;5238:25;5202:62;;:::i;:::-;-1:-1:-1;5202:62:22;;;;;;;;;;-1:-1:-1;;5202:62:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5202:62:22;;;;;;;;;;-1:-1:-1;;;;;;5202:62:22;-1:-1:-1;;;;;5202:62:22;;;;;;;;;;;;;;;;;5275:30;;;;5271:105;;;5315:18;;:54;;-1:-1:-1;;;5315:54:22;;-1:-1:-1;;;;;5315:18:22;;;;:36;;:54;;5352:4;;5358:10;;5315:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:105;5387:49;5400:4;5406:10;5418:17;5387:49;;;;;;;;:::i;:::-;;;;;;;;4259:1182;;4112:1329;;;;:::o;11353:704::-;11517:4;-1:-1:-1;;;;;11533:18:22;;11529:47;;11560:16;;-1:-1:-1;;;11560:16:22;;;;;;;;;;;11529:47;11583:54;11611:4;11617:10;11629:7;11583:27;:54::i;:::-;11643:60;11677:4;11683:10;11695:7;11643:33;:60::i;:::-;11709:30;11731:7;11709:21;:30::i;:::-;-1:-1:-1;;;;;;11745:25:22;;;;;;:19;:25;;;;;:30;;11774:1;;11745:25;:30;;11774:1;;11745:30;:::i;:::-;;;;-1:-1:-1;;11781:37:22;;;;;;;:25;:37;;;;;:42;;11822:1;;11781:37;:42;;11822:1;;11781:42;:::i;:::-;;;;;;;;11851:1;11829:18;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;11863:30:22;;;;:59;;;;;11898:24;11897:25;11863:59;11859:135;;;11932:18;;:55;;-1:-1:-1;;;11932:55:22;;-1:-1:-1;;;;;11932:18:22;;;;:37;;:55;;11970:4;;11976:10;;11932:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11859:135;12005:30;12018:4;12024:10;12005:30;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;12048:4:22;11353:704;;;;;;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:12;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:12;1901:40:0;;;7983:51:29;7956:18;;1901:40:0;7837:203:29;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;13690:121:22:-;13736:12;;:::i;:::-;-1:-1:-1;13763:43:22;;;;;;;;-1:-1:-1;13763:43:22;;;;;;;;;;;;;;;13776:14;;;;;;;;;;13763:43;;;;;;;;;;;;;-1:-1:-1;13763:43:22;;;;;;;13690:121::o;12661:620::-;12818:30;;;12789:26;12818:30;;;:18;:30;;;;;;12855:422;12879:17;;12875:21;;12855:422;;;12915:44;12928:10;12939:1;12928:13;;;;;;;;:::i;:::-;;;;;;;;;;;:21;;12915:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12951:7;12915:12;:44::i;:::-;12911:360;;;12998:4;-1:-1:-1;;;;;12975:27:22;:10;12986:1;12975:13;;;;;;;;:::i;:::-;;;;;;;;;:19;:13;;;;;:19;;-1:-1:-1;;;;;12975:19:22;:27;;;:69;;;13034:10;13006:38;;:10;13017:1;13006:13;;;;;;;;:::i;:::-;;;;;;;;;:24;:13;;;;;:24;;;;:38;;12975:69;12971:137;;;13063:45;;-1:-1:-1;;;13063:45:22;;;;;;;;;;;12971:137;13127:17;;:21;;13147:1;;13127:21;:::i;:::-;13123:1;:25;13119:103;;;13189:17;;13178:10;;13189:21;;13209:1;;13189:21;:::i;:::-;13178:33;;;;;;;;:::i;:::-;;;;;;;;;;;13162:10;13173:1;13162:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:49;;:13;:49;:::i;:::-;-1:-1:-1;13162:49:22;;;;;;;;;;-1:-1:-1;;13162:49:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13162:49:22;;;;;;;;;;-1:-1:-1;;;;;;13162:49:22;-1:-1:-1;;;;;13162:49:22;;;;;;;;;;;;;;;;;13119:103;13231:10;:16;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;13231:16:22;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13231:16:22;;;;;;;;;:::i;:::-;-1:-1:-1;13231:16:22;;;;;-1:-1:-1;;;;;;13231:16:22;;;;;;;;;;;13257:5;;12911:360;12898:3;;;;:::i;:::-;;;;12855:422;;13285:401;13356:4;;;13394:268;13418:6;:13;13414:17;;13394:268;;;13454:6;:13;13450:17;;:61;;;;;13471:40;13484:6;13491:1;13484:9;;;;;;;;:::i;:::-;;;;;;;;;;;:17;;13471:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13503:7;13471:12;:40::i;:::-;13446:210;;;13530:6;13537:1;13530:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;13523:16;13530:9;;13523:16;:::i;:::-;;;;;;-1:-1:-1;;13523:16:22;;;;;;;;;:::i;:::-;-1:-1:-1;13523:16:22;;;;;-1:-1:-1;;;;;;13523:16:22;;;;;;;;;13561:6;13568:13;;:17;;13523:16;;13568:17;:::i;:::-;13561:25;;;;;;;;:::i;:::-;;;;;;;;;;;13549:6;13556:1;13549:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:37;;:9;:37;:::i;:::-;-1:-1:-1;13549:37:22;;;;;;;;;;-1:-1:-1;;13549:37:22;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13549:37:22;;;;;;;;;;-1:-1:-1;;;;;;13549:37:22;-1:-1:-1;;;;;13549:37:22;;;;;;;;;;;;;;;;;13596:6;:12;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;13596:12:22;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;13596:12:22;;;;;;;;;:::i;:::-;-1:-1:-1;13596:12:22;;;;;-1:-1:-1;;;;;;13596:12:22;;;;;;;;;;;;;-1:-1:-1;13642:5:22;;13446:210;13433:3;;;;:::i;:::-;;;;13394:268;;;-1:-1:-1;13674:7:22;13285:401;-1:-1:-1;;13285:401:22:o;12061:596::-;-1:-1:-1;;;;;12212:18:22;;12183:26;12212:18;;;:12;:18;;;;;;12236:417;12260:17;;12256:21;;12236:417;;;12296:44;12309:10;12320:1;12309:13;;;;;;;;:::i;12296:44::-;12292:355;;;12379:4;-1:-1:-1;;;;;12356:27:22;:10;12367:1;12356:13;;;;;;;;:::i;:::-;;;;;;;;;:19;:13;;;;;:19;;-1:-1:-1;;;;;12356:19:22;:27;;;:69;;;12415:10;12387:38;;:10;12398:1;12387:13;;;;;;;;:::i;:::-;;;;;;;;;:24;:13;;;;;:24;;;;:38;;12356:69;12352:131;;;12444:39;;-1:-1:-1;;;12444:39:22;;;;;;;;;;;12292:355;12279:3;;;;:::i;:::-;;;;12236:417;;13815:207;13920:4;14007:8;13990:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;13980:37;;;;;;13966:8;13949:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;13939:37;;;;;;:78;13932:85;;13815:207;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:173:29;82:20;;-1:-1:-1;;;;;131:31:29;;121:42;;111:70;;177:1;174;167:12;192:186;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:29:o;565:127::-;626:10;621:3;617:20;614:1;607:31;657:4;654:1;647:15;681:4;678:1;671:15;697:275;768:2;762:9;833:2;814:13;;-1:-1:-1;;810:27:29;798:40;;868:18;853:34;;889:22;;;850:62;847:88;;;915:18;;:::i;:::-;951:2;944:22;697:275;;-1:-1:-1;697:275:29:o;977:531::-;1020:5;1073:3;1066:4;1058:6;1054:17;1050:27;1040:55;;1091:1;1088;1081:12;1040:55;1127:6;1114:20;1153:18;1149:2;1146:26;1143:52;;;1175:18;;:::i;:::-;1219:55;1262:2;1243:13;;-1:-1:-1;;1239:27:29;1268:4;1235:38;1219:55;:::i;:::-;1299:2;1290:7;1283:19;1345:3;1338:4;1333:2;1325:6;1321:15;1317:26;1314:35;1311:55;;;1362:1;1359;1352:12;1311:55;1427:2;1420:4;1412:6;1408:17;1401:4;1392:7;1388:18;1375:55;1475:1;1450:16;;;1468:4;1446:27;1439:38;;;;1454:7;977:531;-1:-1:-1;;;977:531:29:o;1513:156::-;1579:20;;1639:4;1628:16;;1618:27;;1608:55;;1659:1;1656;1649:12;1674:714;1726:5;1779:3;1772:4;1764:6;1760:17;1756:27;1746:55;;1797:1;1794;1787:12;1746:55;1833:6;1820:20;1859:4;1882:18;1878:2;1875:26;1872:52;;;1904:18;;:::i;:::-;1950:2;1947:1;1943:10;1973:28;1997:2;1993;1989:11;1973:28;:::i;:::-;2035:15;;;2105;;;2101:24;;;2066:12;;;;2137:15;;;2134:35;;;2165:1;2162;2155:12;2134:35;2201:2;2193:6;2189:15;2178:26;;2213:146;2229:6;2224:3;2221:15;2213:146;;;2295:21;2312:3;2295:21;:::i;:::-;2283:34;;2246:12;;;;2337;;;;2213:146;;;2377:5;1674:714;-1:-1:-1;;;;;;;1674:714:29:o;2393:710::-;2510:6;2518;2526;2534;2587:3;2575:9;2566:7;2562:23;2558:33;2555:53;;;2604:1;2601;2594:12;2555:53;2644:9;2631:23;2673:18;2714:2;2706:6;2703:14;2700:34;;;2730:1;2727;2720:12;2700:34;2753:50;2795:7;2786:6;2775:9;2771:22;2753:50;:::i;:::-;2743:60;;2822:38;2856:2;2845:9;2841:18;2822:38;:::i;:::-;2812:48;;2879:36;2911:2;2900:9;2896:18;2879:36;:::i;:::-;2869:46;;2968:2;2957:9;2953:18;2940:32;2924:48;;2997:2;2987:8;2984:16;2981:36;;;3013:1;3010;3003:12;2981:36;;3036:61;3089:7;3078:8;3067:9;3063:24;3036:61;:::i;:::-;3026:71;;;2393:710;;;;;;;:::o;3300:256::-;3366:6;3374;3427:2;3415:9;3406:7;3402:23;3398:32;3395:52;;;3443:1;3440;3433:12;3395:52;3466:29;3485:9;3466:29;:::i;:::-;3456:39;;3514:36;3546:2;3535:9;3531:18;3514:36;:::i;:::-;3504:46;;3300:256;;;;;:::o;3561:180::-;3620:6;3673:2;3661:9;3652:7;3648:23;3644:32;3641:52;;;3689:1;3686;3679:12;3641:52;-1:-1:-1;3712:23:29;;3561:180;-1:-1:-1;3561:180:29:o;3746:182::-;3803:6;3856:2;3844:9;3835:7;3831:23;3827:32;3824:52;;;3872:1;3869;3862:12;3824:52;3895:27;3912:9;3895:27;:::i;3933:635::-;4041:6;4049;4057;4110:2;4098:9;4089:7;4085:23;4081:32;4078:52;;;4126:1;4123;4116:12;4078:52;4166:9;4153:23;4195:18;4236:2;4228:6;4225:14;4222:34;;;4252:1;4249;4242:12;4222:34;4275:50;4317:7;4308:6;4297:9;4293:22;4275:50;:::i;:::-;4265:60;;4344:36;4376:2;4365:9;4361:18;4344:36;:::i;:::-;4334:46;;4433:2;4422:9;4418:18;4405:32;4389:48;;4462:2;4452:8;4449:16;4446:36;;;4478:1;4475;4468:12;4446:36;;4501:61;4554:7;4543:8;4532:9;4528:24;4501:61;:::i;:::-;4491:71;;;3933:635;;;;;:::o;4573:250::-;4658:1;4668:113;4682:6;4679:1;4676:13;4668:113;;;4758:11;;;4752:18;4739:11;;;4732:39;4704:2;4697:10;4668:113;;;-1:-1:-1;;4815:1:29;4797:16;;4790:27;4573:250::o;4828:271::-;4870:3;4908:5;4902:12;4935:6;4930:3;4923:19;4951:76;5020:6;5013:4;5008:3;5004:14;4997:4;4990:5;4986:16;4951:76;:::i;:::-;5081:2;5060:15;-1:-1:-1;;5056:29:29;5047:39;;;;5088:4;5043:50;;4828:271;-1:-1:-1;;4828:271:29:o;5104:444::-;5155:3;5193:5;5187:12;5220:6;5215:3;5208:19;5246:4;5275:2;5270:3;5266:12;5259:19;;5312:2;5305:5;5301:14;5333:1;5343:180;5357:6;5354:1;5351:13;5343:180;;;5422:13;;5437:4;5418:24;5406:37;;5463:12;;;;5498:15;;;;5379:1;5372:9;5343:180;;;-1:-1:-1;5539:3:29;;5104:444;-1:-1:-1;;;;;5104:444:29:o;5553:597::-;5601:3;5645:5;5639:12;5672:4;5667:3;5660:17;5698:47;5739:4;5734:3;5730:14;5716:12;5698:47;:::i;:::-;5686:59;;5806:4;5798;5791:5;5787:16;5781:23;5777:34;5770:4;5765:3;5761:14;5754:58;5860:4;5853:5;5849:16;5843:23;5908:3;5902:4;5898:14;5891:4;5886:3;5882:14;5875:38;5936:48;5979:4;5963:14;5936:48;:::i;:::-;6037:4;6026:16;;;6020:23;-1:-1:-1;;;;;6016:49:29;6000:14;;;5993:73;6115:4;6104:16;;;6098:23;6082:14;;;;6075:47;;;;-1:-1:-1;5922:62:29;;5553:597;-1:-1:-1;;5553:597:29:o;6155:835::-;6343:4;6372:2;6412;6401:9;6397:18;6442:2;6431:9;6424:21;6465:6;6500;6494:13;6531:6;6523;6516:22;6569:2;6558:9;6554:18;6547:25;;6631:2;6621:6;6618:1;6614:14;6603:9;6599:30;6595:39;6581:53;;6669:2;6661:6;6657:15;6690:1;6700:261;6714:6;6711:1;6708:13;6700:261;;;6807:2;6803:7;6791:9;6783:6;6779:22;6775:36;6770:3;6763:49;6835:46;6874:6;6865;6859:13;6835:46;:::i;:::-;6825:56;-1:-1:-1;6939:12:29;;;;6904:15;;;;6736:1;6729:9;6700:261;;;-1:-1:-1;6978:6:29;;6155:835;-1:-1:-1;;;;;;;6155:835:29:o;6995:118::-;7081:5;7074:13;7067:21;7060:5;7057:32;7047:60;;7103:1;7100;7093:12;7118:241;7174:6;7227:2;7215:9;7206:7;7202:23;7198:32;7195:52;;;7243:1;7240;7233:12;7195:52;7282:9;7269:23;7301:28;7323:5;7301:28;:::i;7364:468::-;7593:3;7582:9;7575:22;7556:4;7614:46;7655:3;7644:9;7640:19;7632:6;7614:46;:::i;:::-;7708:4;7696:17;;;;7691:2;7676:18;;7669:45;-1:-1:-1;;;;;;7750:32:29;;;;7745:2;7730:18;;7723:60;7814:2;7799:18;;;7792:34;7606:54;7364:468;-1:-1:-1;7364:468:29:o;8045:252::-;8220:2;8209:9;8202:21;8183:4;8240:51;8287:2;8276:9;8272:18;8264:6;8240:51;:::i;8302:401::-;8384:6;8392;8400;8408;8461:3;8449:9;8440:7;8436:23;8432:33;8429:53;;;8478:1;8475;8468:12;8429:53;8501:29;8520:9;8501:29;:::i;:::-;8491:39;;8549:36;8581:2;8570:9;8566:18;8549:36;:::i;:::-;8539:46;;8604:38;8638:2;8627:9;8623:18;8604:38;:::i;:::-;8594:48;;8661:36;8693:2;8682:9;8678:18;8661:36;:::i;:::-;8651:46;;8302:401;;;;;;;:::o;8944:322::-;9013:6;9066:2;9054:9;9045:7;9041:23;9037:32;9034:52;;;9082:1;9079;9072:12;9034:52;9122:9;9109:23;9155:18;9147:6;9144:30;9141:50;;;9187:1;9184;9177:12;9141:50;9210;9252:7;9243:6;9232:9;9228:22;9210:50;:::i;9581:127::-;9642:10;9637:3;9633:20;9630:1;9623:31;9673:4;9670:1;9663:15;9697:4;9694:1;9687:15;9713:127;9774:10;9769:3;9765:20;9762:1;9755:31;9805:4;9802:1;9795:15;9829:4;9826:1;9819:15;9845:135;9884:3;9905:17;;;9902:43;;9925:18;;:::i;:::-;-1:-1:-1;9972:1:29;9961:13;;9845:135::o;9985:380::-;10064:1;10060:12;;;;10107;;;10128:61;;10182:4;10174:6;10170:17;10160:27;;10128:61;10235:2;10227:6;10224:14;10204:18;10201:38;10198:161;;10281:10;10276:3;10272:20;10269:1;10262:31;10316:4;10313:1;10306:15;10344:4;10341:1;10334:15;10198:161;;9985:380;;;:::o;10370:281::-;-1:-1:-1;;;;;10558:32:29;;;;10540:51;;10639:4;10627:17;10622:2;10607:18;;10600:45;10528:2;10513:18;;10370:281::o;10656:245::-;10723:6;10776:2;10764:9;10755:7;10751:23;10747:32;10744:52;;;10792:1;10789;10782:12;10744:52;10824:9;10818:16;10843:28;10865:5;10843:28;:::i;10906:175::-;10943:3;10987:4;10980:5;10976:16;11016:4;11007:7;11004:17;11001:43;;11024:18;;:::i;:::-;11073:1;11060:15;;10906:175;-1:-1:-1;;10906:175:29:o;11552:289::-;11683:3;11721:6;11715:13;11737:66;11796:6;11791:3;11784:4;11776:6;11772:17;11737:66;:::i;:::-;11819:16;;;;;11552:289;-1:-1:-1;;11552:289:29:o;11972:842::-;12100:3;12129:1;12162:6;12156:13;12192:36;12218:9;12192:36;:::i;:::-;12247:1;12264:18;;;12291:133;;;;12438:1;12433:356;;;;12257:532;;12291:133;-1:-1:-1;;12324:24:29;;12312:37;;12397:14;;12390:22;12378:35;;12369:45;;;-1:-1:-1;12291:133:29;;12433:356;12464:6;12461:1;12454:17;12494:4;12539:2;12536:1;12526:16;12564:1;12578:165;12592:6;12589:1;12586:13;12578:165;;;12670:14;;12657:11;;;12650:35;12713:16;;;;12607:10;;12578:165;;;12582:3;;;12772:6;12767:3;12763:16;12756:23;;12257:532;-1:-1:-1;12805:3:29;;11972:842;-1:-1:-1;;;;;;11972:842:29:o;12819:128::-;12886:9;;;12907:11;;;12904:37;;;12921:18;;:::i;12952:125::-;13017:9;;;13038:10;;;13035:36;;;13051:18;;:::i;13082:545::-;13184:2;13179:3;13176:11;13173:448;;;13220:1;13245:5;13241:2;13234:17;13290:4;13286:2;13276:19;13360:2;13348:10;13344:19;13341:1;13337:27;13331:4;13327:38;13396:4;13384:10;13381:20;13378:47;;;-1:-1:-1;13419:4:29;13378:47;13474:2;13469:3;13465:12;13462:1;13458:20;13452:4;13448:31;13438:41;;13529:82;13547:2;13540:5;13537:13;13529:82;;;13592:17;;;13573:1;13562:13;13529:82;;;13533:3;;;13082:545;;;:::o;13803:1352::-;13929:3;13923:10;13956:18;13948:6;13945:30;13942:56;;;13978:18;;:::i;:::-;14007:97;14097:6;14057:38;14089:4;14083:11;14057:38;:::i;:::-;14051:4;14007:97;:::i;:::-;14159:4;;14223:2;14212:14;;14240:1;14235:663;;;;14942:1;14959:6;14956:89;;;-1:-1:-1;15011:19:29;;;15005:26;14956:89;-1:-1:-1;;13760:1:29;13756:11;;;13752:24;13748:29;13738:40;13784:1;13780:11;;;13735:57;15058:81;;14205:944;;14235:663;11919:1;11912:14;;;11956:4;11943:18;;-1:-1:-1;;14271:20:29;;;14389:236;14403:7;14400:1;14397:14;14389:236;;;14492:19;;;14486:26;14471:42;;14584:27;;;;14552:1;14540:14;;;;14419:19;;14389:236;;;14393:3;14653:6;14644:7;14641:19;14638:201;;;14714:19;;;14708:26;-1:-1:-1;;14797:1:29;14793:14;;;14809:3;14789:24;14785:37;14781:42;14766:58;14751:74;;14638:201;-1:-1:-1;;;;;14885:1:29;14869:14;;;14865:22;14852:36;;-1:-1:-1;13803:1352:29:o;15160:1431::-;15275:3;15269:4;15266:13;15263:26;;15282:5;;15160:1431::o;15263:26::-;15312:37;15344:3;15338:10;15312:37;:::i;:::-;15372:18;15364:6;15361:30;15358:56;;;15394:18;;:::i;:::-;15423:97;15513:6;15473:38;15505:4;15499:11;15473:38;:::i;15423:97::-;15546:1;15574:2;15566:6;15563:14;15591:1;15586:748;;;;16378:1;16395:6;16392:89;;;-1:-1:-1;16447:19:29;;;16441:26;16392:89;-1:-1:-1;;13760:1:29;13756:11;;;13752:24;13748:29;13738:40;13784:1;13780:11;;;13735:57;16494:81;;15556:1029;;15586:748;11919:1;11912:14;;;11956:4;11943:18;;-1:-1:-1;;15622:20:29;;;11919:1;11912:14;;;11956:4;11943:18;;15786:9;15808:251;15822:7;15819:1;15816:14;15808:251;;;15904:21;;;15898:28;15883:44;;15954:1;16027:18;;;;15982:15;;;;15845:4;15838:12;15808:251;;;15812:3;16087:6;16078:7;16075:19;16072:203;;;16148:21;;16142:28;-1:-1:-1;;16245:3:29;16233:1;16229:14;;;16225:24;16221:37;16217:42;16202:58;16187:74;;;-1:-1:-1;;16321:1:29;16305:14;;;16301:22;16288:36;;-1:-1:-1;15160:1431:29:o;16596:430::-;-1:-1:-1;;;;;16823:32:29;;16805:51;;16904:4;16892:17;;16887:2;16872:18;;16865:45;16946:2;16941;16926:18;;16919:30;;;-1:-1:-1;;16966:54:29;;17001:18;;16993:6;16966:54;:::i;17031:127::-;17092:10;17087:3;17083:20;17080:1;17073:31;17123:4;17120:1;17113:15;17147:4;17144:1;17137:15"},"methodIdentifiers":{"addOwner(address)":"7065cb48","canAnyUserPublishOffer()":"619980dc","canUserPublishOffer(address)":"29d3f60b","changeRemoveCardinInventoryWhenOffer(bool)":"58e57ebb","confirmOfferExchange(address,uint8,address,uint8)":"c08029e7","createOffer(string,uint8,uint8[])":"3e293e16","createOfferWithoUser(string,address,uint8,uint8[])":"17a1fed9","deleteAllOffers()":"322fba27","gammaCardsContract()":"d250f03a","getMaxOffersAllowed()":"90222aa1","getMaxOffersByUserAllowed()":"ba79b77b","getOfferByIndex(uint256)":"e359a0a1","getOfferByOfferId(string)":"e2b36596","getOfferByUserAndCardNumber(address,uint8)":"9f915069","getOffers()":"3ee992ee","getOffersByCardNumber(uint8)":"8400a189","getOffersByCardNumberCounter(uint8)":"ce7483d5","getOffersByUser(address)":"9618b333","getOffersByUserCounter(address)":"0cdb3117","getOffersCounter()":"cf86f8e5","hasOffer(address,uint8)":"2edb5fcf","isOwner(address)":"2f54bf6e","offers(uint256)":"8a72ea6a","offersByCardNumberCounter(uint8)":"d827a8f4","offersByUserCounter(address)":"7594a6ed","offersTotalCounter()":"5a919aeb","owner()":"8da5cb5b","removeOfferByCardNumber(uint8)":"3a027073","removeOfferByUserAndCardNumber(address,uint8)":"5bbfbfd6","removeOffersByUser(address)":"fc9e80fc","removeOwner(address)":"173825d9","renounceOwnership()":"715018a6","setGammaCardsContract(address)":"4c7a7ad3","setMaxCardNumbersAllowed(uint256)":"e02f9723","setMaxOffersAllowed(uint256)":"e5e5f732","setMaxOffersByUserAllowed(uint256)":"3808dfe7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_cardsContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExchangeError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GammaCardsContractNotSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCard\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCardNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOfferId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfferAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfferDoesNotExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OfferNotDeleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OffersMaximumAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCardsContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoveOfferFromCardNumberMapping_DoNotMatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RemoveOfferFromUserMapping_DoNotMatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyHasCard\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserDoesNotHaveCard\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"AllOffersRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGammaCardsContract\",\"type\":\"address\"}],\"name\":\"NewGammaCardsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"OfferCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"OfferRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"UserOffersRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"canAnyUserPublishOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"canUserPublishOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_value\",\"type\":\"bool\"}],\"name\":\"changeRemoveCardinInventoryWhenOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumberWanted\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"offerWallet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"offerCardNumber\",\"type\":\"uint8\"}],\"name\":\"confirmOfferExchange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"createOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"}],\"name\":\"createOfferWithoUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteAllOffers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaCardsContract\",\"outputs\":[{\"internalType\":\"contract IGammaCardsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxOffersAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxOffersByUserAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getOfferByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"}],\"name\":\"getOfferByOfferId\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOfferByUserAndCardNumber\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOffers\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOffersByCardNumber\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"getOffersByCardNumberCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getOffersByUser\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"uint8[]\",\"name\":\"wantedCardNumbers\",\"type\":\"uint8[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct NofGammaOffersV4.Offer[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getOffersByUserCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOffersCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"hasOffer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"offers\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"offerId\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"offersByCardNumberCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"offersByUserCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"offersTotalCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeOfferByCardNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"cardNumber\",\"type\":\"uint8\"}],\"name\":\"removeOfferByUserAndCardNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeOffersByUser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerToRemove\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaCardsContract\",\"type\":\"address\"}],\"name\":\"setGammaCardsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxCardNumbersAllowed\",\"type\":\"uint256\"}],\"name\":\"setMaxCardNumbersAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxOffersAllowed\",\"type\":\"uint256\"}],\"name\":\"setMaxOffersAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxOffersByUserAllowed\",\"type\":\"uint256\"}],\"name\":\"setMaxOffersByUserAllowed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaOffers.v4.sol\":\"NofGammaOffersV4\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaOffers.v4.sol\":{\"keccak256\":\"0xa02506a051d4db4e86b1525dcf5211a11568b325e87dd461fffa774a46386a24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67b3fa48a581414f470af31f1727e436634b2f5c1bd7ccef8fa9e8fbcc02fbd9\",\"dweb:/ipfs/QmZFzedTdF9zZ9EvFDR9yaesETwBXm1DQ89gWun2B9gd17\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/gamma/GammaPacks.v3.sol":{"IGammaCardsContract":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changePackPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPrizesBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"changePackPrice(uint256)":"e1883c6e","setPrizesBalance(uint256)":"5e31ce48"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"changePackPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"setPrizesBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaPacks.v3.sol\":\"IGammaCardsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaPacks.v3.sol\":{\"keccak256\":\"0x8b91107b9934ac7de1ce2ef9b9d6ef5c5647879fe7fe0c771663736d822b5318\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde64143305e717e6a5d0117c28c584c4205921c9dbd8ca9e9b8166ad07b7104\",\"dweb:/ipfs/Qmew2Bukovwc2qfM1h5WwbvBQ21dpFiLLF7vCyawrgsts7\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"IgammaTicketsContract":{"abi":[{"inputs":[],"name":"deleteAllTickets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLotteryWinner","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bytes32","name":"ticketId","type":"bytes32"},{"internalType":"uint256","name":"ticketCounter","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deleteAllTickets()":"306e4118","getLotteryWinner()":"b2d55c1c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deleteAllTickets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLotteryWinner\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ticketId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"ticketCounter\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaPacks.v3.sol\":\"IgammaTicketsContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaPacks.v3.sol\":{\"keccak256\":\"0x8b91107b9934ac7de1ce2ef9b9d6ef5c5647879fe7fe0c771663736d822b5318\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde64143305e717e6a5d0117c28c584c4205921c9dbd8ca9e9b8166ad07b7104\",\"dweb:/ipfs/Qmew2Bukovwc2qfM1h5WwbvBQ21dpFiLLF7vCyawrgsts7\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"NofGammaPacksV3":{"abi":[{"inputs":[{"internalType":"address","name":"_daiTokenAddress","type":"address"},{"internalType":"address","name":"_balanceReceiver","type":"address"},{"internalType":"address","name":"_gammaCardsContract","type":"address"},{"internalType":"address","name":"_gammaTicketsContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InsufficientPacksAvailable","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidNumberOfPacks","type":"error"},{"inputs":[],"name":"NotGammaCardsContract","type":"error"},{"inputs":[],"name":"NotYourPack","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"OwnlyOwners","type":"error"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"TransferPrizeError","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"balanceReceiver","type":"address"}],"name":"NewBalanceReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newCardsContract","type":"address"}],"name":"NewGammaCardsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newGammaTicketContract","type":"address"}],"name":"NewGammaTicketsContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"NewPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PackOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PackPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"PackTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"PacksPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256[]","name":"tokenId","type":"uint256[]"}],"name":"PacksTransfered","type":"event"},{"inputs":[],"name":"DAI_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTALSUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyPack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"buyPackByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"buyPacks","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"buyPacksByUser","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newBalanceReceiver","type":"address"}],"name":"changeBalanceReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"changePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_transferDai","type":"bool"}],"name":"changeTransferDaiFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gammaCardsContract","outputs":[{"internalType":"contract IGammaCardsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gammaTicketsContract","outputs":[{"internalType":"contract IgammaTicketsContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"getAmountRequiredToBuyPacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPackOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getPacksByUser","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"getPrizeAmountToBuyPacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"getPrizeNoFAccountAmountToBuyPacks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfPacks","type":"uint256"}],"name":"meetQuantityConditionsToBuy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"openPacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_ownerToRemove","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"s_balanceReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"s_packPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"s_packs","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"s_packsByUser","outputs":[{"internalType":"uint256","name":"tokenIds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaCardsContract","type":"address"}],"name":"setGammaCardsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gammaTicketsContract","type":"address"}],"name":"setGammaTicketsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"testOpenPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address","name":"owner","type":"address"}],"name":"testOpenPacks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferPack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"transferPacks","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_50":{"entryPoint":null,"id":50,"parameterSlots":1,"returnSlots":0},"@_7720":{"entryPoint":null,"id":7720,"parameterSlots":4,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":322,"id":146,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory":{"entryPoint":431,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:870:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:29","statements":[{"nodeType":"YulAssignment","src":"84:22:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:29"},"nodeType":"YulFunctionCall","src":"93:13:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:29"}]},{"body":{"nodeType":"YulBlock","src":"169:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:29"},"nodeType":"YulFunctionCall","src":"171:12:29"},"nodeType":"YulExpressionStatement","src":"171:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:29"},"nodeType":"YulFunctionCall","src":"150:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:29"},"nodeType":"YulFunctionCall","src":"135:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:29"},"nodeType":"YulFunctionCall","src":"125:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:29"},"nodeType":"YulFunctionCall","src":"118:50:29"},"nodeType":"YulIf","src":"115:70:29"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:29","type":""}],"src":"14:177:29"},{"body":{"nodeType":"YulBlock","src":"328:332:29","statements":[{"body":{"nodeType":"YulBlock","src":"375:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"384:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"387:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"377:6:29"},"nodeType":"YulFunctionCall","src":"377:12:29"},"nodeType":"YulExpressionStatement","src":"377:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"349:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"358:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"345:3:29"},"nodeType":"YulFunctionCall","src":"345:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"370:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"341:3:29"},"nodeType":"YulFunctionCall","src":"341:33:29"},"nodeType":"YulIf","src":"338:53:29"},{"nodeType":"YulAssignment","src":"400:50:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"440:9:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"410:29:29"},"nodeType":"YulFunctionCall","src":"410:40:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"400:6:29"}]},{"nodeType":"YulAssignment","src":"459:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"503:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"514:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"499:3:29"},"nodeType":"YulFunctionCall","src":"499:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"469:29:29"},"nodeType":"YulFunctionCall","src":"469:49:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"459:6:29"}]},{"nodeType":"YulAssignment","src":"527:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"582:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"567:3:29"},"nodeType":"YulFunctionCall","src":"567:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"537:29:29"},"nodeType":"YulFunctionCall","src":"537:49:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"527:6:29"}]},{"nodeType":"YulAssignment","src":"595:59:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"639:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"650:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"635:3:29"},"nodeType":"YulFunctionCall","src":"635:18:29"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"605:29:29"},"nodeType":"YulFunctionCall","src":"605:49:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"595:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"270:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"281:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"293:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"301:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"309:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"317:6:29","type":""}],"src":"196:464:29"},{"body":{"nodeType":"YulBlock","src":"766:102:29","statements":[{"nodeType":"YulAssignment","src":"776:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"788:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"799:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"784:3:29"},"nodeType":"YulFunctionCall","src":"784:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"776:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"818:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"833:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"849:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"854:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"845:3:29"},"nodeType":"YulFunctionCall","src":"845:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"858:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"841:3:29"},"nodeType":"YulFunctionCall","src":"841:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"829:3:29"},"nodeType":"YulFunctionCall","src":"829:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"811:6:29"},"nodeType":"YulFunctionCall","src":"811:51:29"},"nodeType":"YulExpressionStatement","src":"811:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"735:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"746:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"757:4:29","type":""}],"src":"665:203:29"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":2093},{"length":20,"start":2602}]}},"object":"60806040526710a741a46278000060075560006008556009805460ff191660011790553480156200002f57600080fd5b5060405162001c6238038062001c628339810160408190526200005291620001af565b33806200007957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000848162000142565b506001600160a01b0383161580620000a357506001600160a01b038216155b80620000b657506001600160a01b038116155b15620000d55760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff191690911790556200020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001aa57600080fd5b919050565b60008060008060808587031215620001c657600080fd5b620001d18562000192565b9350620001e16020860162000192565b9250620001f16040860162000192565b9150620002016060860162000192565b905092959194509250565b611a46806200021c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0x10A741A462780000 PUSH1 0x7 SSTORE PUSH1 0x0 PUSH1 0x8 SSTORE PUSH1 0x9 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1C62 CODESIZE SUB DUP1 PUSH3 0x1C62 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x52 SWAP2 PUSH3 0x1AF JUMP JUMPDEST CALLER DUP1 PUSH3 0x79 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x84 DUP2 PUSH3 0x142 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 PUSH3 0xA3 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO JUMPDEST DUP1 PUSH3 0xB6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO JUMPDEST ISZERO PUSH3 0xD5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x6 DUP1 SLOAD DUP3 AND SWAP5 DUP7 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE PUSH1 0x1 DUP1 SLOAD DUP5 AND SWAP3 DUP6 AND SWAP3 SWAP1 SWAP3 OR DUP3 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP1 SWAP4 AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x20C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x1AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1D1 DUP6 PUSH3 0x192 JUMP JUMPDEST SWAP4 POP PUSH3 0x1E1 PUSH1 0x20 DUP7 ADD PUSH3 0x192 JUMP JUMPDEST SWAP3 POP PUSH3 0x1F1 PUSH1 0x40 DUP7 ADD PUSH3 0x192 JUMP JUMPDEST SWAP2 POP PUSH3 0x201 PUSH1 0x60 DUP7 ADD PUSH3 0x192 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1A46 DUP1 PUSH3 0x21C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x211 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x94A08C69 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xD250F03A GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD9E8221E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD9E8221E EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0x4C6 JUMPI DUP1 PUSH4 0xE0F78307 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD250F03A EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xD3E6A7AD EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xD611713E EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xD6A4C3E4 EQ PUSH2 0x4A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA2B40D19 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xA2B40D19 EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xAB4BDBC8 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xB48CE653 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xC34E8AF4 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xC37B9BCD EQ PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x94A08C69 EQ PUSH2 0x3BB JUMPI DUP1 PUSH4 0x967ED63D EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x97F8B3D3 EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0x99E5F896 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x7065CB48 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x80F2540B EQ PUSH2 0x384 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x8FD5BAF7 EQ PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x62E21878 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x6ADBAF75 EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F54BF6E GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x39E8D3EC EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x3CD626FD EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x3F6ECD48 EQ PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1321C4D EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xC3E5C00 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x2D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x662 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x6A0 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x6CF JUMP JUMPDEST PUSH2 0x340 PUSH2 0x33B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x233 SWAP2 SWAP1 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x229 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST PUSH2 0x24F PUSH2 0x377 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x830 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x844 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x264 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x3B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x86F JUMP JUMPDEST PUSH2 0x229 PUSH2 0xC350 DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x8DB JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x187F JUMP JUMPDEST PUSH2 0x98B JUMP JUMPDEST PUSH2 0x24F PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x9CE JUMP JUMPDEST PUSH2 0x24F PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x189C JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH2 0x229 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0xB53 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB6D JUMP JUMPDEST PUSH2 0x229 PUSH2 0x4C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBA8 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xBD9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51E DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x7 SLOAD PUSH2 0x52F SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x539 SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x590 JUMPI PUSH2 0x590 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x5A4 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x5AF DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x573 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5EC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x65B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0xD5E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x6 PUSH1 0x7 SLOAD PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x1959 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST PUSH2 0x6C9 SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x6FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x726 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x539 DUP4 DUP4 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6C9 CALLER DUP4 PUSH2 0xDBB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x62F JUMP JUMPDEST PUSH2 0x838 PUSH2 0x1021 JUMP JUMPDEST PUSH2 0x842 PUSH1 0x0 PUSH2 0x104E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8CF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x8BB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x90B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6C9 DUP3 PUSH2 0x109E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x944 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x964 JUMPI PUSH2 0x964 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x978 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x983 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x947 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70C41E37 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE1883C6E SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA5D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 SWAP3 POP PUSH32 0x270B316B51AB2CF3A3BB8CA4D22E76A327D05E762FCAA8BD6AFAF8CFDE9270B7 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xAAF JUMPI PUSH2 0xAAF PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0xAC3 DUP5 DUP3 PUSH2 0x10D1 JUMP JUMPDEST POP DUP1 PUSH2 0xACE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA92 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0xAE5 SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0x1AFFAE2FD35738EC8F6A4212F337C673B41AA2231F1BD5CFEB94463A93ACE1F1 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB32 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB3F DUP5 PUSH2 0x512 JUMP JUMPDEST SWAP1 POP PUSH2 0xB4B DUP2 DUP4 PUSH2 0x19B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E CALLER PUSH2 0x109E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0x10D1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC09 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC30 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCAA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7161C7A7090D78E8031FCA87E845A86B39E0EB9C15436933D2D4CE7F4520C4A5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0xD23 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD52 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD5B DUP2 PUSH2 0x104E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD68 DUP3 DUP3 PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH32 0x459BDAA71B6C253B49D34A7622DC4C6C1C416C0567571C068B392BA7172DDD4C SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO DUP1 PUSH2 0xDF1 JUMPI POP PUSH1 0x64 DUP3 GT JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xE20 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT PUSH2 0xE3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE59 JUMPI PUSH2 0xE59 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE82 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xF32 JUMPI PUSH2 0xC350 DUP3 LT PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP4 MSTORE PUSH1 0xB DUP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE DUP3 MLOAD DUP3 SWAP1 DUP5 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xF12 JUMPI PUSH2 0xF12 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 PUSH2 0xF27 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0xE8C JUMP JUMPDEST POP PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH1 0x0 PUSH2 0xF44 DUP7 DUP7 PUSH2 0x12FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xF6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST DUP5 PUSH1 0x1 SUB PUSH2 0xFCD JUMPI DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xF8A JUMPI PUSH2 0xF8A PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xC79CAD949A408373456DA7A9E88E8114102AA00E03A69733C70E3A0D95944CA7 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x1017 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0xFDB SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0x8AE8B18ED6D499EC84F68235BF3512B3DB155F7911789805D36093467E5971C9 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10AC DUP4 PUSH1 0x1 PUSH2 0xDBB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x10C1 JUMPI PUSH2 0x10C1 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10F8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x112F JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x1160 DUP2 CALLER PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE SWAP2 DUP4 KECCAK256 SWAP1 SWAP2 ADD DUP5 SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 CALLER SWAP2 PUSH32 0x16E5698E3D85C69C8D8CDB9A21893B33518E24D8CB69D9944D4BFD233464C3A2 SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x12F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP6 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x120D JUMPI PUSH2 0x120D PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SUB PUSH2 0x12E4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1243 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1917 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1253 JUMPI PUSH2 0x1253 PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0xB PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1294 JUMPI PUSH2 0x1294 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0xB SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP1 PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH2 0x12EE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11D8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1308 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1315 DUP5 PUSH2 0x512 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBC639C9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E31CE48 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x135C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1370 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0xFF AND ISZERO SWAP2 POP PUSH2 0x168B SWAP1 POP JUMPI PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1397 DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1407 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT ISZERO PUSH2 0x1426 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BE252B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x146F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1493 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT DUP1 PUSH2 0x1509 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1507 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E9ACF17 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1584 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A8 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x15D7 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1687 JUMPI PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST POP POP POP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x16F3 JUMPI PUSH2 0x16F3 PUSH2 0x16AF JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x1718 JUMPI PUSH2 0x1718 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP3 POP DUP8 DUP6 GT ISZERO PUSH2 0x1736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1755 JUMPI DUP2 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x173C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x914 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17AD DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x539 DUP3 PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181F DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1865 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1849 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B8 DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E0 DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1952 JUMPI PUSH2 0x1952 PUSH2 0x18EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1976 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x19A5 JUMPI DUP2 MLOAD DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1989 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xD368DA8617071CE17AA8AB9104EF PC CREATE 0x4A PUSH0 DUP6 CALLDATASIZE 0xBA 0x22 0xAA LOG0 0xDE 0xE3 0xE1 SLT 0xCD DIV 0xEF PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"947:9996:23:-:0;;;1322:5;1293:34;;1375:1;1342:34;;1380:25;;;-1:-1:-1;;1380:25:23;1401:4;1380:25;;;2415:594;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2567:10;;1269:95:0;;1322:31;;-1:-1:-1;;;1322:31:0;;1350:1;1322:31;;;811:51:29;784:18;;1322:31:0;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;2596:30:23;::::1;::::0;;:73:::1;;-1:-1:-1::0;;;;;;2636:33:23;::::1;::::0;2596:73:::1;:118;;;-1:-1:-1::0;;;;;;2679:35:23;::::1;::::0;2596:118:::1;2585:159;;;2728:16;;-1:-1:-1::0;;;2728:16:23::1;;;;;;;;;;;2585:159;2751:9;:28:::0;;-1:-1:-1;;;;;;2751:28:23;;::::1;-1:-1:-1::0;;;;;2751:28:23;;::::1;;::::0;;;2785:17:::1;:36:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;2827:61:23;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;2894:20:::1;:67:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;2986:10:::1;-1:-1:-1::0;2968:29:23;;;-1:-1:-1;2968:29:23::1;::::0;;;;:36;;-1:-1:-1;;2968:36:23::1;::::0;;::::1;::::0;;947:9996;;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:177:29:-;93:13;;-1:-1:-1;;;;;135:31:29;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:464::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;537:49;582:2;571:9;567:18;537:49;:::i;:::-;527:59;;605:49;650:2;639:9;635:18;605:49;:::i;:::-;595:59;;196:464;;;;;;;:::o;665:203::-;947:9996:23;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DAI_TOKEN_7547":{"entryPoint":null,"id":7547,"parameterSlots":0,"returnSlots":0},"@TOTALSUPPLY_7552":{"entryPoint":null,"id":7552,"parameterSlots":0,"returnSlots":0},"@_buyPack_8067":{"entryPoint":4254,"id":8067,"parameterSlots":1,"returnSlots":1},"@_buyPacks_8203":{"entryPoint":3515,"id":8203,"parameterSlots":2,"returnSlots":1},"@_checkOwner_84":{"entryPoint":4129,"id":84,"parameterSlots":0,"returnSlots":0},"@_msgSender_1733":{"entryPoint":null,"id":1733,"parameterSlots":0,"returnSlots":1},"@_openPack_8554":{"entryPoint":3422,"id":8554,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_146":{"entryPoint":4174,"id":146,"parameterSlots":1,"returnSlots":0},"@_transferPack_8481":{"entryPoint":4305,"id":8481,"parameterSlots":2,"returnSlots":0},"@_transferPrizesAmounts_8315":{"entryPoint":4860,"id":8315,"parameterSlots":2,"returnSlots":1},"@addOwner_7734":{"entryPoint":1977,"id":7734,"parameterSlots":1,"returnSlots":0},"@buyPackByUser_8027":{"entryPoint":2267,"id":8027,"parameterSlots":1,"returnSlots":1},"@buyPack_7998":{"entryPoint":2899,"id":7998,"parameterSlots":0,"returnSlots":1},"@buyPacksByUser_8045":{"entryPoint":1904,"id":8045,"parameterSlots":2,"returnSlots":1},"@buyPacks_8013":{"entryPoint":1965,"id":8013,"parameterSlots":1,"returnSlots":1},"@changeBalanceReceiver_7774":{"entryPoint":3194,"id":7774,"parameterSlots":1,"returnSlots":0},"@changePrice_7796":{"entryPoint":2510,"id":7796,"parameterSlots":1,"returnSlots":0},"@changeTransferDaiFlag_7808":{"entryPoint":2443,"id":7808,"parameterSlots":1,"returnSlots":0},"@deleteTokenId_8374":{"entryPoint":4541,"id":8374,"parameterSlots":2,"returnSlots":0},"@gammaCardsContract_7539":{"entryPoint":null,"id":7539,"parameterSlots":0,"returnSlots":0},"@gammaTicketsContract_7542":{"entryPoint":null,"id":7542,"parameterSlots":0,"returnSlots":0},"@getAmountRequiredToBuyPacks_7940":{"entryPoint":2854,"id":7940,"parameterSlots":1,"returnSlots":1},"@getPackOwner_7965":{"entryPoint":null,"id":7965,"parameterSlots":1,"returnSlots":1},"@getPacksByUser_7953":{"entryPoint":2159,"id":7953,"parameterSlots":1,"returnSlots":1},"@getPrizeAmountToBuyPacks_7895":{"entryPoint":1696,"id":7895,"parameterSlots":1,"returnSlots":1},"@getPrizeNoFAccountAmountToBuyPacks_7916":{"entryPoint":1298,"id":7916,"parameterSlots":1,"returnSlots":1},"@isOwner_7877":{"entryPoint":null,"id":7877,"parameterSlots":1,"returnSlots":1},"@meetQuantityConditionsToBuy_7987":{"entryPoint":2925,"id":7987,"parameterSlots":1,"returnSlots":1},"@openPack_8496":{"entryPoint":2116,"id":8496,"parameterSlots":2,"returnSlots":0},"@openPacks_8531":{"entryPoint":2329,"id":8531,"parameterSlots":2,"returnSlots":0},"@owner_67":{"entryPoint":null,"id":67,"parameterSlots":0,"returnSlots":1},"@removeOwner_7748":{"entryPoint":1468,"id":7748,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_98":{"entryPoint":2096,"id":98,"parameterSlots":0,"returnSlots":0},"@s_balanceReceiver_7549":{"entryPoint":null,"id":7549,"parameterSlots":0,"returnSlots":0},"@s_packPrice_7555":{"entryPoint":null,"id":7555,"parameterSlots":0,"returnSlots":0},"@s_packsByUser_7570":{"entryPoint":2984,"id":7570,"parameterSlots":0,"returnSlots":0},"@s_packs_7565":{"entryPoint":null,"id":7565,"parameterSlots":0,"returnSlots":0},"@setGammaCardsContract_7836":{"entryPoint":1743,"id":7836,"parameterSlots":1,"returnSlots":0},"@setGammaTicketsContract_7864":{"entryPoint":3033,"id":7864,"parameterSlots":1,"returnSlots":0},"@testOpenPack_8594":{"entryPoint":1634,"id":8594,"parameterSlots":2,"returnSlots":0},"@testOpenPacks_8629":{"entryPoint":1344,"id":8629,"parameterSlots":2,"returnSlots":0},"@transferOwnership_126":{"entryPoint":3355,"id":126,"parameterSlots":1,"returnSlots":0},"@transferPack_8387":{"entryPoint":2915,"id":8387,"parameterSlots":2,"returnSlots":0},"@transferPacks_8427":{"entryPoint":2703,"id":8427,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":5984,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_uint256_dyn":{"entryPoint":5829,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6085,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6300,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":6147,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address":{"entryPoint":6007,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":6271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":6643,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5782,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":6618,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":6112,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_packed_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":6523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":6189,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IGammaCardsContract_$7515__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IgammaTicketsContract_$7530__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":6577,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":6489,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":6400,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":6423,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":6464,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6378,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":6596,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6442,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5807,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":6257,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8218:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:29"},"nodeType":"YulFunctionCall","src":"132:12:29"},"nodeType":"YulExpressionStatement","src":"132:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:29"},"nodeType":"YulFunctionCall","src":"101:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:29"},"nodeType":"YulFunctionCall","src":"97:32:29"},"nodeType":"YulIf","src":"94:52:29"},{"nodeType":"YulAssignment","src":"155:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:29"},"nodeType":"YulFunctionCall","src":"165:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:29","type":""}],"src":"14:180:29"},{"body":{"nodeType":"YulBlock","src":"300:76:29","statements":[{"nodeType":"YulAssignment","src":"310:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:29"},"nodeType":"YulFunctionCall","src":"318:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"363:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:29"},"nodeType":"YulFunctionCall","src":"345:25:29"},"nodeType":"YulExpressionStatement","src":"345:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:29","type":""}],"src":"199:177:29"},{"body":{"nodeType":"YulBlock","src":"413:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"470:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"473:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"463:6:29"},"nodeType":"YulFunctionCall","src":"463:15:29"},"nodeType":"YulExpressionStatement","src":"463:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"494:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"497:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"487:6:29"},"nodeType":"YulFunctionCall","src":"487:15:29"},"nodeType":"YulExpressionStatement","src":"487:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"381:127:29"},{"body":{"nodeType":"YulBlock","src":"577:838:29","statements":[{"body":{"nodeType":"YulBlock","src":"626:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"635:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"628:6:29"},"nodeType":"YulFunctionCall","src":"628:12:29"},"nodeType":"YulExpressionStatement","src":"628:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"605:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"613:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"601:3:29"},"nodeType":"YulFunctionCall","src":"601:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"620:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"597:3:29"},"nodeType":"YulFunctionCall","src":"597:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"590:6:29"},"nodeType":"YulFunctionCall","src":"590:35:29"},"nodeType":"YulIf","src":"587:55:29"},{"nodeType":"YulVariableDeclaration","src":"651:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"674:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"661:12:29"},"nodeType":"YulFunctionCall","src":"661:20:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"655:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"690:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"700:4:29","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"694:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"713:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"723:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"717:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"764:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"766:16:29"},"nodeType":"YulFunctionCall","src":"766:18:29"},"nodeType":"YulExpressionStatement","src":"766:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"756:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"760:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"753:2:29"},"nodeType":"YulFunctionCall","src":"753:10:29"},"nodeType":"YulIf","src":"750:36:29"},{"nodeType":"YulVariableDeclaration","src":"795:20:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"809:1:29","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"812:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"805:3:29"},"nodeType":"YulFunctionCall","src":"805:10:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"799:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"824:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"844:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"838:5:29"},"nodeType":"YulFunctionCall","src":"838:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"828:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"856:56:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"878:6:29"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"894:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"890:3:29"},"nodeType":"YulFunctionCall","src":"890:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"907:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"903:3:29"},"nodeType":"YulFunctionCall","src":"903:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"886:3:29"},"nodeType":"YulFunctionCall","src":"886:25:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"874:3:29"},"nodeType":"YulFunctionCall","src":"874:38:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"860:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"971:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"973:16:29"},"nodeType":"YulFunctionCall","src":"973:18:29"},"nodeType":"YulExpressionStatement","src":"973:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"930:10:29"},{"name":"_3","nodeType":"YulIdentifier","src":"942:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"927:2:29"},"nodeType":"YulFunctionCall","src":"927:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"950:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"962:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"947:2:29"},"nodeType":"YulFunctionCall","src":"947:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"924:2:29"},"nodeType":"YulFunctionCall","src":"924:46:29"},"nodeType":"YulIf","src":"921:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1009:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1013:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1002:6:29"},"nodeType":"YulFunctionCall","src":"1002:22:29"},"nodeType":"YulExpressionStatement","src":"1002:22:29"},{"nodeType":"YulVariableDeclaration","src":"1033:17:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1044:6:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1037:3:29","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1066:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1074:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1059:6:29"},"nodeType":"YulFunctionCall","src":"1059:18:29"},"nodeType":"YulExpressionStatement","src":"1059:18:29"},{"nodeType":"YulAssignment","src":"1086:22:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1097:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1105:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1093:3:29"},"nodeType":"YulFunctionCall","src":"1093:15:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1086:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"1117:38:29","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1139:6:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1147:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1135:3:29"},"nodeType":"YulFunctionCall","src":"1135:15:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1152:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1131:3:29"},"nodeType":"YulFunctionCall","src":"1131:24:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1121:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1183:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1192:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1195:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1185:6:29"},"nodeType":"YulFunctionCall","src":"1185:12:29"},"nodeType":"YulExpressionStatement","src":"1185:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1170:6:29"},{"name":"end","nodeType":"YulIdentifier","src":"1178:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1167:2:29"},"nodeType":"YulFunctionCall","src":"1167:15:29"},"nodeType":"YulIf","src":"1164:35:29"},{"nodeType":"YulVariableDeclaration","src":"1208:26:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1223:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1231:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1219:3:29"},"nodeType":"YulFunctionCall","src":"1219:15:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1212:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1299:86:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1320:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1325:12:29"},"nodeType":"YulFunctionCall","src":"1325:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1313:6:29"},"nodeType":"YulFunctionCall","src":"1313:30:29"},"nodeType":"YulExpressionStatement","src":"1313:30:29"},{"nodeType":"YulAssignment","src":"1356:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1367:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1372:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1363:3:29"},"nodeType":"YulFunctionCall","src":"1363:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1356:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1254:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1259:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1251:2:29"},"nodeType":"YulFunctionCall","src":"1251:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1267:23:29","statements":[{"nodeType":"YulAssignment","src":"1269:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1280:3:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1285:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1276:3:29"},"nodeType":"YulFunctionCall","src":"1276:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1269:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1247:3:29","statements":[]},"src":"1243:142:29"},{"nodeType":"YulAssignment","src":"1394:15:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1403:6:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1394:5:29"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"551:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"559:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"567:5:29","type":""}],"src":"513:902:29"},{"body":{"nodeType":"YulBlock","src":"1469:124:29","statements":[{"nodeType":"YulAssignment","src":"1479:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1501:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1488:12:29"},"nodeType":"YulFunctionCall","src":"1488:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1479:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1571:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1580:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1583:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1573:6:29"},"nodeType":"YulFunctionCall","src":"1573:12:29"},"nodeType":"YulExpressionStatement","src":"1573:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1530:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1541:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1556:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1561:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1552:3:29"},"nodeType":"YulFunctionCall","src":"1552:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1565:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1548:3:29"},"nodeType":"YulFunctionCall","src":"1548:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1537:3:29"},"nodeType":"YulFunctionCall","src":"1537:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1527:2:29"},"nodeType":"YulFunctionCall","src":"1527:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1520:6:29"},"nodeType":"YulFunctionCall","src":"1520:50:29"},"nodeType":"YulIf","src":"1517:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1448:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1459:5:29","type":""}],"src":"1420:173:29"},{"body":{"nodeType":"YulBlock","src":"1710:310:29","statements":[{"body":{"nodeType":"YulBlock","src":"1756:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1768:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1758:6:29"},"nodeType":"YulFunctionCall","src":"1758:12:29"},"nodeType":"YulExpressionStatement","src":"1758:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1731:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1740:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1727:3:29"},"nodeType":"YulFunctionCall","src":"1727:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1752:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1723:3:29"},"nodeType":"YulFunctionCall","src":"1723:32:29"},"nodeType":"YulIf","src":"1720:52:29"},{"nodeType":"YulVariableDeclaration","src":"1781:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1808:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1795:12:29"},"nodeType":"YulFunctionCall","src":"1795:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1785:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1861:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1870:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1873:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1863:6:29"},"nodeType":"YulFunctionCall","src":"1863:12:29"},"nodeType":"YulExpressionStatement","src":"1863:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1841:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1830:2:29"},"nodeType":"YulFunctionCall","src":"1830:30:29"},"nodeType":"YulIf","src":"1827:50:29"},{"nodeType":"YulAssignment","src":"1886:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1929:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1940:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1925:3:29"},"nodeType":"YulFunctionCall","src":"1925:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1949:7:29"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"1896:28:29"},"nodeType":"YulFunctionCall","src":"1896:61:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1886:6:29"}]},{"nodeType":"YulAssignment","src":"1966:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1999:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2010:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1995:3:29"},"nodeType":"YulFunctionCall","src":"1995:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1976:18:29"},"nodeType":"YulFunctionCall","src":"1976:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1966:6:29"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1668:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1679:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1691:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1699:6:29","type":""}],"src":"1598:422:29"},{"body":{"nodeType":"YulBlock","src":"2156:102:29","statements":[{"nodeType":"YulAssignment","src":"2166:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2178:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2189:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2174:3:29"},"nodeType":"YulFunctionCall","src":"2174:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2166:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2223:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2239:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2244:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2235:3:29"},"nodeType":"YulFunctionCall","src":"2235:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2248:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2231:3:29"},"nodeType":"YulFunctionCall","src":"2231:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2219:3:29"},"nodeType":"YulFunctionCall","src":"2219:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2201:6:29"},"nodeType":"YulFunctionCall","src":"2201:51:29"},"nodeType":"YulExpressionStatement","src":"2201:51:29"}]},"name":"abi_encode_tuple_t_contract$_IgammaTicketsContract_$7530__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2125:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2136:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2147:4:29","type":""}],"src":"2025:233:29"},{"body":{"nodeType":"YulBlock","src":"2333:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2379:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2388:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2391:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2381:6:29"},"nodeType":"YulFunctionCall","src":"2381:12:29"},"nodeType":"YulExpressionStatement","src":"2381:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2354:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2363:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2350:3:29"},"nodeType":"YulFunctionCall","src":"2350:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2375:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2346:3:29"},"nodeType":"YulFunctionCall","src":"2346:32:29"},"nodeType":"YulIf","src":"2343:52:29"},{"nodeType":"YulAssignment","src":"2404:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2433:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2414:18:29"},"nodeType":"YulFunctionCall","src":"2414:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2404:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2299:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2310:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2322:6:29","type":""}],"src":"2263:186:29"},{"body":{"nodeType":"YulBlock","src":"2549:92:29","statements":[{"nodeType":"YulAssignment","src":"2559:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2571:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2582:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2567:3:29"},"nodeType":"YulFunctionCall","src":"2567:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2559:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2601:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2626:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2619:6:29"},"nodeType":"YulFunctionCall","src":"2619:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2612:6:29"},"nodeType":"YulFunctionCall","src":"2612:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2594:6:29"},"nodeType":"YulFunctionCall","src":"2594:41:29"},"nodeType":"YulExpressionStatement","src":"2594:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2518:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2529:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2540:4:29","type":""}],"src":"2454:187:29"},{"body":{"nodeType":"YulBlock","src":"2733:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"2779:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2788:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2791:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2781:6:29"},"nodeType":"YulFunctionCall","src":"2781:12:29"},"nodeType":"YulExpressionStatement","src":"2781:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2754:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2763:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2750:3:29"},"nodeType":"YulFunctionCall","src":"2750:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2775:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2746:3:29"},"nodeType":"YulFunctionCall","src":"2746:32:29"},"nodeType":"YulIf","src":"2743:52:29"},{"nodeType":"YulAssignment","src":"2804:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2827:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2814:12:29"},"nodeType":"YulFunctionCall","src":"2814:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2804:6:29"}]},{"nodeType":"YulAssignment","src":"2846:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2879:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2890:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2875:3:29"},"nodeType":"YulFunctionCall","src":"2875:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2856:18:29"},"nodeType":"YulFunctionCall","src":"2856:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2846:6:29"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2691:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2702:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2714:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2722:6:29","type":""}],"src":"2646:254:29"},{"body":{"nodeType":"YulBlock","src":"3006:102:29","statements":[{"nodeType":"YulAssignment","src":"3016:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3028:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3039:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3024:3:29"},"nodeType":"YulFunctionCall","src":"3024:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3016:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3058:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3073:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3089:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3094:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3085:3:29"},"nodeType":"YulFunctionCall","src":"3085:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"3098:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3081:3:29"},"nodeType":"YulFunctionCall","src":"3081:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3069:3:29"},"nodeType":"YulFunctionCall","src":"3069:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3051:6:29"},"nodeType":"YulFunctionCall","src":"3051:51:29"},"nodeType":"YulExpressionStatement","src":"3051:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2975:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2986:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2997:4:29","type":""}],"src":"2905:203:29"},{"body":{"nodeType":"YulBlock","src":"3200:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"3246:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3255:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3258:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3248:6:29"},"nodeType":"YulFunctionCall","src":"3248:12:29"},"nodeType":"YulExpressionStatement","src":"3248:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3221:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3230:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3217:3:29"},"nodeType":"YulFunctionCall","src":"3217:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3242:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3213:3:29"},"nodeType":"YulFunctionCall","src":"3213:32:29"},"nodeType":"YulIf","src":"3210:52:29"},{"nodeType":"YulAssignment","src":"3271:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3300:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3281:18:29"},"nodeType":"YulFunctionCall","src":"3281:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3271:6:29"}]},{"nodeType":"YulAssignment","src":"3319:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3346:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3357:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3342:3:29"},"nodeType":"YulFunctionCall","src":"3342:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3329:12:29"},"nodeType":"YulFunctionCall","src":"3329:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3319:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3158:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3169:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3181:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3189:6:29","type":""}],"src":"3113:254:29"},{"body":{"nodeType":"YulBlock","src":"3523:481:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3533:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3543:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3537:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3554:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3572:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3583:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3568:3:29"},"nodeType":"YulFunctionCall","src":"3568:18:29"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3558:6:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3602:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3613:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3595:6:29"},"nodeType":"YulFunctionCall","src":"3595:21:29"},"nodeType":"YulExpressionStatement","src":"3595:21:29"},{"nodeType":"YulVariableDeclaration","src":"3625:17:29","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"3636:6:29"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"3629:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3651:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3671:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3665:5:29"},"nodeType":"YulFunctionCall","src":"3665:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3655:6:29","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"3694:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"3702:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3687:6:29"},"nodeType":"YulFunctionCall","src":"3687:22:29"},"nodeType":"YulExpressionStatement","src":"3687:22:29"},{"nodeType":"YulAssignment","src":"3718:25:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3729:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3740:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3725:3:29"},"nodeType":"YulFunctionCall","src":"3725:18:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3718:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"3752:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3778:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:29"},"nodeType":"YulFunctionCall","src":"3766:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3756:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3790:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3799:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3794:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3858:120:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3879:3:29"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3890:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3884:5:29"},"nodeType":"YulFunctionCall","src":"3884:13:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3872:6:29"},"nodeType":"YulFunctionCall","src":"3872:26:29"},"nodeType":"YulExpressionStatement","src":"3872:26:29"},{"nodeType":"YulAssignment","src":"3911:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3922:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3927:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3918:3:29"},"nodeType":"YulFunctionCall","src":"3918:12:29"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3911:3:29"}]},{"nodeType":"YulAssignment","src":"3943:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3957:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3965:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3953:3:29"},"nodeType":"YulFunctionCall","src":"3953:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3943:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3820:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"3823:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3817:2:29"},"nodeType":"YulFunctionCall","src":"3817:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3831:18:29","statements":[{"nodeType":"YulAssignment","src":"3833:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3842:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"3845:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3838:3:29"},"nodeType":"YulFunctionCall","src":"3838:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3833:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3813:3:29","statements":[]},"src":"3809:169:29"},{"nodeType":"YulAssignment","src":"3987:11:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"3995:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3987:4:29"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3492:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3503:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3514:4:29","type":""}],"src":"3372:632:29"},{"body":{"nodeType":"YulBlock","src":"4051:76:29","statements":[{"body":{"nodeType":"YulBlock","src":"4105:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4114:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4117:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4107:6:29"},"nodeType":"YulFunctionCall","src":"4107:12:29"},"nodeType":"YulExpressionStatement","src":"4107:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4074:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4095:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4088:6:29"},"nodeType":"YulFunctionCall","src":"4088:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4081:6:29"},"nodeType":"YulFunctionCall","src":"4081:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4071:2:29"},"nodeType":"YulFunctionCall","src":"4071:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4064:6:29"},"nodeType":"YulFunctionCall","src":"4064:40:29"},"nodeType":"YulIf","src":"4061:60:29"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4040:5:29","type":""}],"src":"4009:118:29"},{"body":{"nodeType":"YulBlock","src":"4199:174:29","statements":[{"body":{"nodeType":"YulBlock","src":"4245:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4254:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4247:6:29"},"nodeType":"YulFunctionCall","src":"4247:12:29"},"nodeType":"YulExpressionStatement","src":"4247:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4220:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4229:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4216:3:29"},"nodeType":"YulFunctionCall","src":"4216:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4241:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4212:3:29"},"nodeType":"YulFunctionCall","src":"4212:32:29"},"nodeType":"YulIf","src":"4209:52:29"},{"nodeType":"YulVariableDeclaration","src":"4270:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4283:12:29"},"nodeType":"YulFunctionCall","src":"4283:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4274:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4337:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"4315:21:29"},"nodeType":"YulFunctionCall","src":"4315:28:29"},"nodeType":"YulExpressionStatement","src":"4315:28:29"},{"nodeType":"YulAssignment","src":"4352:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"4362:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4352:6:29"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4165:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4176:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4188:6:29","type":""}],"src":"4132:241:29"},{"body":{"nodeType":"YulBlock","src":"4490:310:29","statements":[{"body":{"nodeType":"YulBlock","src":"4536:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4545:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4548:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4538:6:29"},"nodeType":"YulFunctionCall","src":"4538:12:29"},"nodeType":"YulExpressionStatement","src":"4538:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4511:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4520:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4507:3:29"},"nodeType":"YulFunctionCall","src":"4507:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4532:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4503:3:29"},"nodeType":"YulFunctionCall","src":"4503:32:29"},"nodeType":"YulIf","src":"4500:52:29"},{"nodeType":"YulAssignment","src":"4561:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4590:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4571:18:29"},"nodeType":"YulFunctionCall","src":"4571:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4561:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"4609:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4640:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4651:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4636:3:29"},"nodeType":"YulFunctionCall","src":"4636:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4623:12:29"},"nodeType":"YulFunctionCall","src":"4623:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4613:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"4698:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4707:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4710:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4700:6:29"},"nodeType":"YulFunctionCall","src":"4700:12:29"},"nodeType":"YulExpressionStatement","src":"4700:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4670:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4678:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4667:2:29"},"nodeType":"YulFunctionCall","src":"4667:30:29"},"nodeType":"YulIf","src":"4664:50:29"},{"nodeType":"YulAssignment","src":"4723:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4766:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"4777:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4762:3:29"},"nodeType":"YulFunctionCall","src":"4762:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4786:7:29"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"4733:28:29"},"nodeType":"YulFunctionCall","src":"4733:61:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4723:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4448:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4459:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4471:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4479:6:29","type":""}],"src":"4378:422:29"},{"body":{"nodeType":"YulBlock","src":"4934:102:29","statements":[{"nodeType":"YulAssignment","src":"4944:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4956:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4967:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4952:3:29"},"nodeType":"YulFunctionCall","src":"4952:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4944:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4986:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5001:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5017:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5022:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5013:3:29"},"nodeType":"YulFunctionCall","src":"5013:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"5026:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5009:3:29"},"nodeType":"YulFunctionCall","src":"5009:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4997:3:29"},"nodeType":"YulFunctionCall","src":"4997:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4979:6:29"},"nodeType":"YulFunctionCall","src":"4979:51:29"},"nodeType":"YulExpressionStatement","src":"4979:51:29"}]},"name":"abi_encode_tuple_t_contract$_IGammaCardsContract_$7515__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4903:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4914:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4925:4:29","type":""}],"src":"4805:231:29"},{"body":{"nodeType":"YulBlock","src":"5073:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5090:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5097:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5102:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5093:3:29"},"nodeType":"YulFunctionCall","src":"5093:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5083:6:29"},"nodeType":"YulFunctionCall","src":"5083:31:29"},"nodeType":"YulExpressionStatement","src":"5083:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5130:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5133:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5123:6:29"},"nodeType":"YulFunctionCall","src":"5123:15:29"},"nodeType":"YulExpressionStatement","src":"5123:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5154:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5157:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5147:6:29"},"nodeType":"YulFunctionCall","src":"5147:15:29"},"nodeType":"YulExpressionStatement","src":"5147:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5041:127:29"},{"body":{"nodeType":"YulBlock","src":"5225:116:29","statements":[{"nodeType":"YulAssignment","src":"5235:20:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5250:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5253:1:29"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5246:3:29"},"nodeType":"YulFunctionCall","src":"5246:9:29"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"5235:7:29"}]},{"body":{"nodeType":"YulBlock","src":"5313:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5315:16:29"},"nodeType":"YulFunctionCall","src":"5315:18:29"},"nodeType":"YulExpressionStatement","src":"5315:18:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5284:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5277:6:29"},"nodeType":"YulFunctionCall","src":"5277:9:29"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5291:1:29"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"5298:7:29"},{"name":"x","nodeType":"YulIdentifier","src":"5307:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5294:3:29"},"nodeType":"YulFunctionCall","src":"5294:15:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5288:2:29"},"nodeType":"YulFunctionCall","src":"5288:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5274:2:29"},"nodeType":"YulFunctionCall","src":"5274:37:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5267:6:29"},"nodeType":"YulFunctionCall","src":"5267:45:29"},"nodeType":"YulIf","src":"5264:71:29"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5204:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5207:1:29","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"5213:7:29","type":""}],"src":"5173:168:29"},{"body":{"nodeType":"YulBlock","src":"5395:79:29","statements":[{"nodeType":"YulAssignment","src":"5405:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5417:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5420:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5413:3:29"},"nodeType":"YulFunctionCall","src":"5413:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5405:4:29"}]},{"body":{"nodeType":"YulBlock","src":"5446:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5448:16:29"},"nodeType":"YulFunctionCall","src":"5448:18:29"},"nodeType":"YulExpressionStatement","src":"5448:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"5437:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"5443:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5434:2:29"},"nodeType":"YulFunctionCall","src":"5434:11:29"},"nodeType":"YulIf","src":"5431:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5377:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5380:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5386:4:29","type":""}],"src":"5346:128:29"},{"body":{"nodeType":"YulBlock","src":"5511:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5528:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5535:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5540:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5531:3:29"},"nodeType":"YulFunctionCall","src":"5531:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5521:6:29"},"nodeType":"YulFunctionCall","src":"5521:31:29"},"nodeType":"YulExpressionStatement","src":"5521:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5568:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5571:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5561:6:29"},"nodeType":"YulFunctionCall","src":"5561:15:29"},"nodeType":"YulExpressionStatement","src":"5561:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5592:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5595:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5585:6:29"},"nodeType":"YulFunctionCall","src":"5585:15:29"},"nodeType":"YulExpressionStatement","src":"5585:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"5479:127:29"},{"body":{"nodeType":"YulBlock","src":"5658:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"5689:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5691:16:29"},"nodeType":"YulFunctionCall","src":"5691:18:29"},"nodeType":"YulExpressionStatement","src":"5691:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5674:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5685:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5681:3:29"},"nodeType":"YulFunctionCall","src":"5681:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5671:2:29"},"nodeType":"YulFunctionCall","src":"5671:17:29"},"nodeType":"YulIf","src":"5668:43:29"},{"nodeType":"YulAssignment","src":"5720:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5731:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"5738:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5727:3:29"},"nodeType":"YulFunctionCall","src":"5727:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5720:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5640:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"5650:3:29","type":""}],"src":"5611:135:29"},{"body":{"nodeType":"YulBlock","src":"5911:145:29","statements":[{"nodeType":"YulAssignment","src":"5921:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5933:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5944:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5929:3:29"},"nodeType":"YulFunctionCall","src":"5929:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5921:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5963:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"5974:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5956:6:29"},"nodeType":"YulFunctionCall","src":"5956:25:29"},"nodeType":"YulExpressionStatement","src":"5956:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6001:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6012:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5997:3:29"},"nodeType":"YulFunctionCall","src":"5997:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6021:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6037:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6042:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6033:3:29"},"nodeType":"YulFunctionCall","src":"6033:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6046:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6029:3:29"},"nodeType":"YulFunctionCall","src":"6029:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6017:3:29"},"nodeType":"YulFunctionCall","src":"6017:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5990:6:29"},"nodeType":"YulFunctionCall","src":"5990:60:29"},"nodeType":"YulExpressionStatement","src":"5990:60:29"}]},"name":"abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5872:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5883:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5891:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5902:4:29","type":""}],"src":"5751:305:29"},{"body":{"nodeType":"YulBlock","src":"6107:171:29","statements":[{"body":{"nodeType":"YulBlock","src":"6138:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6159:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6166:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6171:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6162:3:29"},"nodeType":"YulFunctionCall","src":"6162:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6152:6:29"},"nodeType":"YulFunctionCall","src":"6152:31:29"},"nodeType":"YulExpressionStatement","src":"6152:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6203:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6206:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6196:6:29"},"nodeType":"YulFunctionCall","src":"6196:15:29"},"nodeType":"YulExpressionStatement","src":"6196:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6231:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6234:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6224:6:29"},"nodeType":"YulFunctionCall","src":"6224:15:29"},"nodeType":"YulExpressionStatement","src":"6224:15:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6127:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6120:6:29"},"nodeType":"YulFunctionCall","src":"6120:9:29"},"nodeType":"YulIf","src":"6117:132:29"},{"nodeType":"YulAssignment","src":"6258:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6267:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"6270:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6263:3:29"},"nodeType":"YulFunctionCall","src":"6263:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6258:1:29"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6092:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"6095:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"6101:1:29","type":""}],"src":"6061:217:29"},{"body":{"nodeType":"YulBlock","src":"6452:374:29","statements":[{"nodeType":"YulVariableDeclaration","src":"6462:16:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"6475:3:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"6466:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6487:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6507:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6501:5:29"},"nodeType":"YulFunctionCall","src":"6501:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6491:6:29","type":""}]},{"nodeType":"YulAssignment","src":"6523:12:29","value":{"name":"pos","nodeType":"YulIdentifier","src":"6532:3:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6523:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"6544:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6554:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6548:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6567:29:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6585:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6593:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6581:3:29"},"nodeType":"YulFunctionCall","src":"6581:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"6571:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6605:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"6614:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6609:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6673:126:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6694:5:29"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6707:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6701:5:29"},"nodeType":"YulFunctionCall","src":"6701:13:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6687:6:29"},"nodeType":"YulFunctionCall","src":"6687:28:29"},"nodeType":"YulExpressionStatement","src":"6687:28:29"},{"nodeType":"YulAssignment","src":"6728:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6741:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6748:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6737:3:29"},"nodeType":"YulFunctionCall","src":"6737:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"6728:5:29"}]},{"nodeType":"YulAssignment","src":"6764:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6778:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"6786:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6774:3:29"},"nodeType":"YulFunctionCall","src":"6774:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6764:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6635:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"6638:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6632:2:29"},"nodeType":"YulFunctionCall","src":"6632:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6646:18:29","statements":[{"nodeType":"YulAssignment","src":"6648:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6657:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"6660:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6653:3:29"},"nodeType":"YulFunctionCall","src":"6653:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6648:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"6628:3:29","statements":[]},"src":"6624:175:29"},{"nodeType":"YulAssignment","src":"6808:12:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"6815:5:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6808:3:29"}]}]},"name":"abi_encode_tuple_packed_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6428:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6433:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6444:3:29","type":""}],"src":"6283:543:29"},{"body":{"nodeType":"YulBlock","src":"6879:77:29","statements":[{"nodeType":"YulAssignment","src":"6889:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6900:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"6903:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6896:3:29"},"nodeType":"YulFunctionCall","src":"6896:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6889:3:29"}]},{"body":{"nodeType":"YulBlock","src":"6928:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6930:16:29"},"nodeType":"YulFunctionCall","src":"6930:18:29"},"nodeType":"YulExpressionStatement","src":"6930:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6920:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"6923:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6917:2:29"},"nodeType":"YulFunctionCall","src":"6917:10:29"},"nodeType":"YulIf","src":"6914:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6862:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"6865:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6871:3:29","type":""}],"src":"6831:125:29"},{"body":{"nodeType":"YulBlock","src":"6993:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7010:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7017:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7022:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7013:3:29"},"nodeType":"YulFunctionCall","src":"7013:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7003:6:29"},"nodeType":"YulFunctionCall","src":"7003:31:29"},"nodeType":"YulExpressionStatement","src":"7003:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7050:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7053:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7043:6:29"},"nodeType":"YulFunctionCall","src":"7043:15:29"},"nodeType":"YulExpressionStatement","src":"7043:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7074:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7077:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7067:6:29"},"nodeType":"YulFunctionCall","src":"7067:15:29"},"nodeType":"YulExpressionStatement","src":"7067:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"6961:127:29"},{"body":{"nodeType":"YulBlock","src":"7222:175:29","statements":[{"nodeType":"YulAssignment","src":"7232:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7244:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7255:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7240:3:29"},"nodeType":"YulFunctionCall","src":"7240:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7232:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"7267:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7285:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7290:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7281:3:29"},"nodeType":"YulFunctionCall","src":"7281:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7294:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7277:3:29"},"nodeType":"YulFunctionCall","src":"7277:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7271:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7312:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7327:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7335:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7323:3:29"},"nodeType":"YulFunctionCall","src":"7323:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7305:6:29"},"nodeType":"YulFunctionCall","src":"7305:34:29"},"nodeType":"YulExpressionStatement","src":"7305:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7359:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7370:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7355:3:29"},"nodeType":"YulFunctionCall","src":"7355:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7379:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7387:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7375:3:29"},"nodeType":"YulFunctionCall","src":"7375:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7348:6:29"},"nodeType":"YulFunctionCall","src":"7348:43:29"},"nodeType":"YulExpressionStatement","src":"7348:43:29"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7183:9:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7194:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7202:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7213:4:29","type":""}],"src":"7093:304:29"},{"body":{"nodeType":"YulBlock","src":"7483:103:29","statements":[{"body":{"nodeType":"YulBlock","src":"7529:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7538:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7541:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7531:6:29"},"nodeType":"YulFunctionCall","src":"7531:12:29"},"nodeType":"YulExpressionStatement","src":"7531:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7504:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7513:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7500:3:29"},"nodeType":"YulFunctionCall","src":"7500:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7525:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7496:3:29"},"nodeType":"YulFunctionCall","src":"7496:32:29"},"nodeType":"YulIf","src":"7493:52:29"},{"nodeType":"YulAssignment","src":"7554:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7570:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7564:5:29"},"nodeType":"YulFunctionCall","src":"7564:16:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7554:6:29"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7449:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7460:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7472:6:29","type":""}],"src":"7402:184:29"},{"body":{"nodeType":"YulBlock","src":"7748:218:29","statements":[{"nodeType":"YulAssignment","src":"7758:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7770:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7781:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7766:3:29"},"nodeType":"YulFunctionCall","src":"7766:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7758:4:29"}]},{"nodeType":"YulVariableDeclaration","src":"7793:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7811:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7816:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7807:3:29"},"nodeType":"YulFunctionCall","src":"7807:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"7820:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7803:3:29"},"nodeType":"YulFunctionCall","src":"7803:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7797:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7838:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7853:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7861:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7849:3:29"},"nodeType":"YulFunctionCall","src":"7849:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7831:6:29"},"nodeType":"YulFunctionCall","src":"7831:34:29"},"nodeType":"YulExpressionStatement","src":"7831:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7885:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7896:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7881:3:29"},"nodeType":"YulFunctionCall","src":"7881:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7905:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7913:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7901:3:29"},"nodeType":"YulFunctionCall","src":"7901:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7874:6:29"},"nodeType":"YulFunctionCall","src":"7874:43:29"},"nodeType":"YulExpressionStatement","src":"7874:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7937:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7948:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7933:3:29"},"nodeType":"YulFunctionCall","src":"7933:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"7953:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7926:6:29"},"nodeType":"YulFunctionCall","src":"7926:34:29"},"nodeType":"YulExpressionStatement","src":"7926:34:29"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7701:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7712:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7720:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7728:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7739:4:29","type":""}],"src":"7591:375:29"},{"body":{"nodeType":"YulBlock","src":"8049:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"8095:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8104:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8107:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8097:6:29"},"nodeType":"YulFunctionCall","src":"8097:12:29"},"nodeType":"YulExpressionStatement","src":"8097:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8070:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"8079:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8066:3:29"},"nodeType":"YulFunctionCall","src":"8066:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"8091:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8062:3:29"},"nodeType":"YulFunctionCall","src":"8062:32:29"},"nodeType":"YulIf","src":"8059:52:29"},{"nodeType":"YulVariableDeclaration","src":"8120:29:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8139:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8133:5:29"},"nodeType":"YulFunctionCall","src":"8133:16:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8124:5:29","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8180:5:29"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"8158:21:29"},"nodeType":"YulFunctionCall","src":"8158:28:29"},"nodeType":"YulExpressionStatement","src":"8158:28:29"},{"nodeType":"YulAssignment","src":"8195:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"8205:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8195:6:29"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8015:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8026:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8038:6:29","type":""}],"src":"7971:245:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_array_uint256_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let _3 := 0xffffffffffffffff\n if gt(_1, _3) { panic_error_0x41() }\n let _4 := shl(5, _1)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _1)\n dst := add(memPtr, _2)\n let srcEnd := add(add(offset, _4), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, _2)\n }\n array := memPtr\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IgammaTicketsContract_$7530__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_contract$_IGammaCardsContract_$7515__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_struct$_Data_$8641_storage_ptr_t_address__to_t_uint256_t_address__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_packed_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let pos_1 := pos\n let length := mload(value0)\n pos_1 := pos\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, mload(srcPtr))\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos_1\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":[{"length":20,"start":1553},{"length":20,"start":2062}]}},"object":"608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x211 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x94A08C69 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xD250F03A GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD9E8221E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD9E8221E EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0xDDB975E8 EQ PUSH2 0x4C6 JUMPI DUP1 PUSH4 0xE0F78307 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0xE606DF87 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD250F03A EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xD3E6A7AD EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xD611713E EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xD6A4C3E4 EQ PUSH2 0x4A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA2B40D19 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xA2B40D19 EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0xAB4BDBC8 EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xB48CE653 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0xC34E8AF4 EQ PUSH2 0x436 JUMPI DUP1 PUSH4 0xC37B9BCD EQ PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x94A08C69 EQ PUSH2 0x3BB JUMPI DUP1 PUSH4 0x967ED63D EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x97F8B3D3 EQ PUSH2 0x3D7 JUMPI DUP1 PUSH4 0x99E5F896 EQ PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x7065CB48 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0x7065CB48 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x80F2540B EQ PUSH2 0x384 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x8FD5BAF7 EQ PUSH2 0x3A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4C7A7AD3 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x62E21878 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x656BD0AD EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0x6ADBAF75 EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F54BF6E GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x39E8D3EC EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x3CD626FD EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x3F6ECD48 EQ PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1321C4D EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xC3E5C00 EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x14CCA36A EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x173825D9 EQ PUSH2 0x27C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH2 0x24A CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x233 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x2D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x662 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x2EC CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x6A0 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x6CF JUMP JUMPDEST PUSH2 0x340 PUSH2 0x33B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x233 SWAP2 SWAP1 PUSH2 0x182D JUMP JUMPDEST PUSH2 0x229 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST PUSH2 0x24F PUSH2 0x377 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x7B9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x830 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x17E0 JUMP JUMPDEST PUSH2 0x844 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x264 JUMP JUMPDEST PUSH2 0x340 PUSH2 0x3B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x86F JUMP JUMPDEST PUSH2 0x229 PUSH2 0xC350 DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0x8DB JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1777 JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x3F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x187F JUMP JUMPDEST PUSH2 0x98B JUMP JUMPDEST PUSH2 0x24F PUSH2 0x40B CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x9CE JUMP JUMPDEST PUSH2 0x24F PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x189C JUMP JUMPDEST PUSH2 0xA8F JUMP JUMPDEST PUSH2 0x229 PUSH2 0x431 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0xB53 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xB63 JUMP JUMPDEST PUSH2 0x2BB PUSH2 0x4AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0xB6D JUMP JUMPDEST PUSH2 0x229 PUSH2 0x4C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1803 JUMP JUMPDEST PUSH2 0xBA8 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xBD9 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xC7A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x264 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x24F PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x17C5 JUMP JUMPDEST PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x51E DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x7 SLOAD PUSH2 0x52F SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x539 SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x590 JUMPI PUSH2 0x590 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x5A4 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x5AF DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x573 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5EC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2DD92C69 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB764B1A4 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x65B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0xD5E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x6 PUSH1 0x7 SLOAD PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x1959 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x1917 JUMP JUMPDEST PUSH2 0x6C9 SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x6FF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x726 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x45C9EBA39B5AE3E7A6650B0A57BCB8E5D135936D56D111983DBC5860AE6760FA SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 PUSH1 0xFF AND PUSH2 0x7A3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x539 DUP4 DUP4 PUSH2 0xDBB JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6C9 CALLER DUP4 PUSH2 0xDBB JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2D35E2B9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x3 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB4D78AE4 SWAP1 PUSH1 0x44 ADD PUSH2 0x62F JUMP JUMPDEST PUSH2 0x838 PUSH2 0x1021 JUMP JUMPDEST PUSH2 0x842 PUSH1 0x0 PUSH2 0x104E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD DUP2 DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8CF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x8BB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x90B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6C9 DUP3 PUSH2 0x109E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x944 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF8D39BD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x964 JUMPI PUSH2 0x964 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0x978 DUP2 DUP5 PUSH2 0xD5E JUMP JUMPDEST POP DUP1 PUSH2 0x983 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x947 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9BB JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x9FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x70C41E37 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE1883C6E SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA5D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP4 SWAP3 POP PUSH32 0x270B316B51AB2CF3A3BB8CA4D22E76A327D05E762FCAA8BD6AFAF8CFDE9270B7 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xAAF JUMPI PUSH2 0xAAF PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH2 0xAC3 DUP5 DUP3 PUSH2 0x10D1 JUMP JUMPDEST POP DUP1 PUSH2 0xACE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA92 JUMP JUMPDEST POP DUP1 PUSH1 0x40 MLOAD PUSH2 0xAE5 SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 CALLER SWAP1 PUSH32 0x1AFFAE2FD35738EC8F6A4212F337C673B41AA2231F1BD5CFEB94463A93ACE1F1 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB32 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB3F DUP5 PUSH2 0x512 JUMP JUMPDEST SWAP1 POP PUSH2 0xB4B DUP2 DUP4 PUSH2 0x19B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB5E CALLER PUSH2 0x109E JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x69C DUP3 DUP3 PUSH2 0x10D1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0xB90 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xBA1 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xBC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xC09 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC30 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x563F24D71E856F79BEC30E1AA96082A296CD13F0A71CEC730A72B719FA0FA202 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCAA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1833A1E9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7161C7A7090D78E8031FCA87E845A86B39E0EB9C15436933D2D4CE7F4520C4A5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0xD23 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xD52 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD5B DUP2 PUSH2 0x104E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD68 DUP3 DUP3 PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH32 0x459BDAA71B6C253B49D34A7622DC4C6C1C416C0567571C068B392BA7172DDD4C SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO DUP1 PUSH2 0xDF1 JUMPI POP PUSH1 0x64 DUP3 GT JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH4 0x2EC760A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC350 DUP3 PUSH1 0x8 SLOAD PUSH2 0xE20 SWAP2 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST LT PUSH2 0xE3E JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE59 JUMPI PUSH2 0xE59 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE82 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xF32 JUMPI PUSH2 0xC350 DUP3 LT PUSH2 0xEB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7C5A3C39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP4 MSTORE PUSH1 0xB DUP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE DUP3 MLOAD DUP3 SWAP1 DUP5 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xF12 JUMPI PUSH2 0xF12 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP2 PUSH2 0xF27 DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0xE8C JUMP JUMPDEST POP PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH1 0x0 PUSH2 0xF44 DUP7 DUP7 PUSH2 0x12FC JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0xF6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST DUP5 PUSH1 0x1 SUB PUSH2 0xFCD JUMPI DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xF8A JUMPI PUSH2 0xF8A PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xC79CAD949A408373456DA7A9E88E8114102AA00E03A69733C70E3A0D95944CA7 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x1017 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0xFDB SWAP2 SWAP1 PUSH2 0x197B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 PUSH32 0x8AE8B18ED6D499EC84F68235BF3512B3DB155F7911789805D36093467E5971C9 SWAP1 PUSH1 0x0 SWAP1 LOG3 JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x842 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10AC DUP4 PUSH1 0x1 PUSH2 0xDBB JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x10C1 JUMPI PUSH2 0x10C1 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10F8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xE6C4247B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x112F JUMPI PUSH1 0x40 MLOAD PUSH4 0x7F6ECDF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x1160 DUP2 CALLER PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP5 MSTORE SWAP2 DUP4 KECCAK256 SWAP1 SWAP2 ADD DUP5 SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 CALLER SWAP2 PUSH32 0x16E5698E3D85C69C8D8CDB9A21893B33518E24D8CB69D9944D4BFD233464C3A2 SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x12F6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP6 SWAP2 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x120D JUMPI PUSH2 0x120D PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SUB PUSH2 0x12E4 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1243 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1917 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1253 JUMPI PUSH2 0x1253 PUSH2 0x192A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0xB PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1294 JUMPI PUSH2 0x1294 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0xB SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP1 PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x19C4 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE PUSH2 0x12F6 JUMP JUMPDEST DUP1 PUSH2 0x12EE DUP2 PUSH2 0x1940 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11D8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1308 DUP4 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1315 DUP5 PUSH2 0x512 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBC639C9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E31CE48 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x135C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1370 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0xFF AND ISZERO SWAP2 POP PUSH2 0x168B SWAP1 POP JUMPI PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1397 DUP3 DUP5 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1407 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT ISZERO PUSH2 0x1426 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BE252B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP5 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x146F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1493 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT DUP1 PUSH2 0x1509 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1507 SWAP2 SWAP1 PUSH2 0x19DA JUMP JUMPDEST LT JUMPDEST ISZERO PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E9ACF17 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP4 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1584 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A8 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x15D7 JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1658 SWAP2 SWAP1 PUSH2 0x19F3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1687 JUMPI PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBD7E48F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xD49 JUMP JUMPDEST POP POP POP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0x16F3 JUMPI PUSH2 0x16F3 PUSH2 0x16AF JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH2 0x1718 JUMPI PUSH2 0x1718 PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP3 POP DUP8 DUP6 GT ISZERO PUSH2 0x1736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH2 0x1755 JUMPI DUP2 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x173C JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x914 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x178A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17AD DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x539 DUP3 PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x17BC PUSH1 0x20 DUP5 ADD PUSH2 0x1760 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x181F DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1865 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1849 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B8 DUP4 PUSH2 0x1760 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E0 DUP6 DUP3 DUP7 ADD PUSH2 0x16C5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1952 JUMPI PUSH2 0x1952 PUSH2 0x18EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1976 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 PUSH1 0x20 DUP1 DUP7 ADD DUP5 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x19A5 JUMPI DUP2 MLOAD DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1989 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6C9 JUMPI PUSH2 0x6C9 PUSH2 0x18EA JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x539 DUP2 PUSH2 0x1871 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xD368DA8617071CE17AA8AB9104EF PC CREATE 0x4A PUSH0 DUP6 CALLDATASIZE 0xBA 0x22 0xAA LOG0 0xDE 0xE3 0xE1 SLT 0xCD DIV 0xEF PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"947:9996:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4602:227;;;;;;:::i;:::-;;:::i;:::-;;;345:25:29;;;333:2;318:18;4602:227:23;;;;;;;;10665:216;;;;;;:::i;:::-;;:::i;:::-;;1085:49;;;;;-1:-1:-1;;;;;1085:49:23;;;;;;-1:-1:-1;;;;;2219:32:29;;;2201:51;;2189:2;2174:18;1085:49:23;2025:233:29;3115:114:23;;;;;;:::i;:::-;;:::i;4339:101::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4412:23:23;4393:4;4412:23;;;:10;:23;;;;;;;;;4339:101;;;;2619:14:29;;2612:22;2594:41;;2582:2;2567:18;4339:101:23;2454:187:29;10553:108:23;;;;;;:::i;:::-;;:::i;1410:56::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1410:56:23;;;4444:154;;;;;;:::i;:::-;;:::i;3773:271::-;;;;;;:::i;:::-;;:::i;5895:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1293:34::-;;;;;;5653:129;;;;;;:::i;:::-;;:::i;3013:98::-;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;9472:116:23:-;;;;;;:::i;:::-;;:::i;1638:85:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;5126:116:23;;;;;;:::i;:::-;;:::i;1246:43::-;;1284:5;1246:43;;5786:105;;;;;;:::i;:::-;;:::i;9592:224::-;;;;;;:::i;:::-;;:::i;3662:107::-;;;;;;:::i;:::-;;:::i;3485:173::-;;;;;;:::i;:::-;;:::i;8877:255::-;;;;;;:::i;:::-;;:::i;4833:289::-;;;;;;:::i;:::-;;:::i;1210:32::-;;;;;-1:-1:-1;;;;;1210:32:23;;;5567:82;;;:::i;1036:45::-;;;;;-1:-1:-1;;;;;1036:45:23;;;5246:103;;;;;;:::i;:::-;5306:7;5328:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5328:16:23;;5246:103;8778:95;;;;;;:::i;:::-;;:::i;5353:210::-;;;;;;:::i;:::-;;:::i;1470:65::-;;;;;;:::i;:::-;;:::i;4048:287::-;;;;;;:::i;:::-;;:::i;3233:248::-;;;;;;:::i;:::-;;:::i;1182:24::-;;;;;-1:-1:-1;;;;;1182:24:23;;;2543:215:0;;;;;;:::i;:::-;;:::i;4602:227:23:-;4690:7;4705:20;4728:39;4753:13;4728:24;:39::i;:::-;4705:62;;4812:12;4795:13;4781:11;;:27;;;;:::i;:::-;4780:44;;;;:::i;:::-;4773:51;4602:227;-1:-1:-1;;;4602:227:23:o;10665:216::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;10759:9:::1;10754:123;10778:8;:15;10774:1;:19;10754:123;;;10808:15;10826:8;10835:1;10826:11;;;;;;;;:::i;:::-;;;;;;;10808:29;;10845:25;10855:7;10864:5;10845:9;:25::i;:::-;-1:-1:-1::0;10795:3:23;::::1;::::0;::::1;:::i;:::-;;;;10754:123;;;;10665:216:::0;;:::o;3115:114::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3186:38:::1;::::0;-1:-1:-1;;;3186:38:23;;:10:::1;:38;::::0;::::1;5956:25:29::0;-1:-1:-1;;;;;6017:32:29;;5997:18;;;5990:60;3186:22:23::1;::::0;::::1;::::0;5929:18:29;;3186:38:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3115:114:::0;:::o;10553:108::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;10631:25:::1;10641:7;10650:5;10631:9;:25::i;:::-;10553:108:::0;;:::o;4444:154::-;4522:7;4580:13;4574:1;4560:11;;:15;;;;:::i;:::-;4545:11;;:31;;;;:::i;:::-;4544:49;;;;:::i;:::-;4537:56;4444:154;-1:-1:-1;;4444:154:23:o;3773:271::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;-1:-1:-1;;;;;3861:33:23;::::1;3857:62;;3903:16;;-1:-1:-1::0;;;3903:16:23::1;;;;;;;;;;;3857:62;3925:18;:61:::0;;-1:-1:-1;;;;;;3925:61:23::1;-1:-1:-1::0;;;;;3925:61:23;::::1;::::0;;::::1;::::0;;;3997:42:::1;::::0;::::1;::::0;-1:-1:-1;;3997:42:23::1;3773:271:::0;:::o;5895:166::-;2366:10;2348:17;:29;;;:10;:29;;;;;;5995:16;;2348:29;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;6026:30:::1;6036:4;6042:13;6026:9;:30::i;5653:129::-:0;5710:16;5741:36;5751:10;5763:13;5741:9;:36::i;3013:98::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3076:30:::1;::::0;-1:-1:-1;;;3076:30:23;;:10:::1;:30;::::0;::::1;5956:25:29::0;-1:-1:-1;;;;;6017:32:29;;5997:18;;;5990:60;3076:19:23::1;::::0;::::1;::::0;5929:18:29;;3076:30:23::1;5751:305:29::0;2293:101:0;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;9472:116:23:-;2248:18;;-1:-1:-1;;;;;2248:18:23;2226:10;:41;2222:77;;2276:23;;-1:-1:-1;;;2276:23:23;;;;;;;;;;;5126:116;-1:-1:-1;;;;;5217:20:23;;;;;;:13;:20;;;;;;;;;5210:27;;;;;;;;;;;;;;;;;5186:16;;5210:27;;;5217:20;5210:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:116;;;:::o;5786:105::-;2366:10;5850:7;2348:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;5872:14:::1;5881:4;5872:8;:14::i;2405:1::-;5786:105:::0;;;:::o;9592:224::-;2248:18;;-1:-1:-1;;;;;2248:18:23;2226:10;:41;2222:77;;2276:23;;-1:-1:-1;;;2276:23:23;;;;;;;;;;;2222:77;9694:9:::1;9689:123;9713:8;:15;9709:1;:19;9689:123;;;9743:15;9761:8;9770:1;9761:11;;;;;;;;:::i;:::-;;;;;;;9743:29;;9780:25;9790:7;9799:5;9780:9;:25::i;:::-;-1:-1:-1::0;9730:3:23;::::1;::::0;::::1;:::i;:::-;;;;9689:123;;3662:107:::0;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3736:13:::1;:28:::0;;-1:-1:-1;;3736:28:23::1;::::0;::::1;;::::0;;;::::1;::::0;;3662:107::o;3485:173::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;3549:11:::1;:23:::0;;;3578:18:::1;::::0;:45:::1;::::0;-1:-1:-1;;;3578:45:23;;::::1;::::0;::::1;345:25:29::0;;;-1:-1:-1;;;;;3578:18:23;;::::1;::::0;:34:::1;::::0;318:18:29;;3578:45:23::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3634:19:23::1;::::0;3643:9;;-1:-1:-1;3634:19:23::1;::::0;-1:-1:-1;3634:19:23;;::::1;3485:173:::0;:::o;8877:255::-;8957:9;8952:124;8976:8;:15;8972:1;:19;8952:124;;;9006:15;9024:8;9033:1;9024:11;;;;;;;;:::i;:::-;;;;;;;9006:29;;9043:26;9057:2;9061:7;9043:13;:26::i;:::-;-1:-1:-1;8993:3:23;;;;:::i;:::-;;;;8952:124;;;;9118:8;9086:41;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;9086:41:23;;;9102:10;;9086:41;;;;;8877:255;;:::o;4833:289::-;4914:7;4929:20;4952:39;4977:13;4952:24;:39::i;:::-;4929:62;;4997:24;5024:49;5059:13;5024:34;:49::i;:::-;4997:76;-1:-1:-1;5086:31:23;4997:76;5086:12;:31;:::i;:::-;5079:38;4833:289;-1:-1:-1;;;;4833:289:23:o;5567:82::-;5602:7;5624:20;5633:10;5624:8;:20::i;:::-;5617:27;;5567:82;:::o;8778:95::-;8842:26;8856:2;8860:7;8842:13;:26::i;5353:210::-;5434:4;5450:13;5467:1;5450:18;5446:53;;5477:22;;-1:-1:-1;;;5477:22:23;;;;;;;;;;;5446:53;1284:5;5530:13;5513:14;;:30;;;;:::i;:::-;5512:46;;5353:210;-1:-1:-1;;5353:210:23:o;1470:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4048:287::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;-1:-1:-1;;;;;4140:35:23;::::1;4136:64;;4184:16;;-1:-1:-1::0;;;4184:16:23::1;;;;;;;;;;;4136:64;4206:20;:67:::0;;-1:-1:-1;;;;;;4206:67:23::1;-1:-1:-1::0;;;;;4206:67:23;::::1;::::0;;::::1;::::0;;;4284:46:::1;::::0;::::1;::::0;-1:-1:-1;;4284:46:23::1;4048:287:::0;:::o;3233:248::-;2366:10;2348:17;:29;;;:10;:29;;;;;;;;2343:56;;2386:13;;-1:-1:-1;;;2386:13:23;;;;;;;;;;;2343:56;-1:-1:-1;;;;;3323:33:23;::::1;3319:62;;3365:16;;-1:-1:-1::0;;;3365:16:23::1;;;;;;;;;;;3319:62;3387:17;:39:::0;;-1:-1:-1;;;;;;3387:39:23::1;-1:-1:-1::0;;;;;3387:39:23;::::1;::::0;;::::1;::::0;;;3437::::1;::::0;::::1;::::0;-1:-1:-1;;3437:39:23::1;3233:248:::0;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;2201:51:29::0;2174:18;;2672:31:0::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;9820:165:23:-;9885:29;9899:7;9908:5;9885:13;:29::i;:::-;9927:16;;;;:7;:16;;;;;;9920:23;;-1:-1:-1;;;;;;9920:23:23;;;9954:26;9935:7;;-1:-1:-1;;;;;9954:26:23;;;;;9927:16;9954:26;9820:165;;:::o;6208:1091::-;6281:16;-1:-1:-1;;;;;6309:18:23;;6305:47;;6336:16;;-1:-1:-1;;;6336:16:23;;;;;;;;;;;6305:47;6362:18;;;:41;;;6400:3;6384:13;:19;6362:41;6358:76;;;6412:22;;-1:-1:-1;;;6412:22:23;;;;;;;;;;;6358:76;1284:5;6462:13;6445:14;;:30;;;;:::i;:::-;6444:47;6440:88;;6500:28;;-1:-1:-1;;;6500:28:23;;;;;;;;;;;6440:88;6534:25;6576:13;6562:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6562:28:23;-1:-1:-1;6621:14:23;;6534:56;;-1:-1:-1;6596:22:23;6642:307;6662:13;6658:1;:17;6642:307;;;1284:5;6690:14;:29;6686:70;;6728:28;;-1:-1:-1;;;6728:28:23;;;;;;;;;;;6686:70;6764:23;;;;:7;:23;;;;;;;;:30;;-1:-1:-1;;;;;;6764:30:23;-1:-1:-1;;;;;6764:30:23;;;;;;;;6802:19;;:13;:19;;;;:40;;-1:-1:-1;6802:40:23;;;;;;;;;;;;;6850:11;;6764:23;;6850:11;;6859:1;;6850:11;;;;;;:::i;:::-;;;;;;;;;;:28;6886:16;;;;:::i;:::-;;-1:-1:-1;;6931:3:23;;6642:307;;;-1:-1:-1;6959:14:23;:31;;;6997:24;7024:43;7047:4;7053:13;7024:22;:43::i;:::-;6997:70;;7078:19;7073:57;;7106:24;;-1:-1:-1;;;7106:24:23;;-1:-1:-1;;;;;2219:32:29;;7106:24:23;;;2201:51:29;2174:18;;7106:24:23;2025:233:29;7073:57:23;7141:13;7158:1;7141:18;7137:132;;7194:8;7203:1;7194:11;;;;;;;;:::i;:::-;;;;;;;7188:4;-1:-1:-1;;;;;7174:32:23;;;;;;;;;;;7137:132;;;7253:8;7232:30;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;7232:30:23;;;;;;;;7137:132;-1:-1:-1;7286:8:23;;6208:1091;-1:-1:-1;;;;6208:1091:23:o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:12;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:12;1901:40:0;;;2201:51:29;2174:18;;1901:40:0;2025:233:29;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;6065:139:23:-;6114:7;6129:25;6157:18;6167:4;6173:1;6157:9;:18::i;:::-;6129:46;;6188:8;6197:1;6188:11;;;;;;;;:::i;:::-;;;;;;;6181:18;;;6065:139;;;:::o;9136:332::-;-1:-1:-1;;;;;9206:16:23;;9202:45;;9231:16;;-1:-1:-1;;;9231:16:23;;;;;;;;;;;9202:45;9257:16;;;;:7;:16;;;;;;-1:-1:-1;;;;;9257:16:23;9277:10;9257:30;9253:56;;9296:13;;-1:-1:-1;;;9296:13:23;;;;;;;;;;;9253:56;9315:16;;;;:7;:16;;;;;:21;;-1:-1:-1;;;;;;9315:21:23;-1:-1:-1;;;;;9315:21:23;;;;;9342:34;9315:16;9365:10;9342:13;:34::i;:::-;-1:-1:-1;;;;;9382:17:23;;;;;;:13;:17;;;;;;;;:31;;;;;;;;;;;;;;;;;;;9424:39;9405:7;;9382:17;9439:10;;9424:39;;9382:17;9424:39;9136:332;;:::o;8392:382::-;-1:-1:-1;;;;;8490:20:23;;8462:25;8490:20;;;:13;:20;;;;;:27;;8523:247;8543:17;8539:1;:21;8523:247;;;-1:-1:-1;;;;;8579:20:23;;;;;;:13;:20;;;;;:23;;8606:7;;8579:20;8600:1;;8579:23;;;;;;:::i;:::-;;;;;;;;;:34;8575:189;;-1:-1:-1;;;;;8651:20:23;;;;;;:13;:20;;;;;8672:27;;:31;;8702:1;;8672:31;:::i;:::-;8651:53;;;;;;;;:::i;:::-;;;;;;;;;8625:13;:20;8639:5;-1:-1:-1;;;;;8625:20:23;-1:-1:-1;;;;;8625:20:23;;;;;;;;;;;;8646:1;8625:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:79;;;;-1:-1:-1;;;;;8714:20:23;;;;:13;:20;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8750:5;;8575:189;8562:3;;;;:::i;:::-;;;;8523:247;;;;8456:318;8392:382;;:::o;7303:1085::-;7389:4;7401:20;7424:39;7449:13;7424:24;:39::i;:::-;7401:62;;7469:23;7495:49;7530:13;7495:34;:49::i;:::-;7550:18;;:49;;-1:-1:-1;;;7550:49:23;;;;;345:25:29;;;7469:75:23;;-1:-1:-1;;;;;;7550:18:23;;:35;;318:18:29;;7550:49:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7610:13:23;;;;7606:761;;-1:-1:-1;7606:761:23;;-1:-1:-1;7606:761:23;7660:9;;-1:-1:-1;;;;;7660:9:23;7728:30;7743:15;7728:12;:30;:::i;:::-;7683:41;;-1:-1:-1;;;7683:41:23;;-1:-1:-1;;;;;7323:15:29;;;7683:41:23;;;7305:34:29;7718:4:23;7355:18:29;;;7348:43;7683:20:23;;;;;7240:18:29;;7683:41:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;7679:112;;;7768:23;;-1:-1:-1;;;7768:23:23;;;;;;;;;;;7679:112;7803:26;;-1:-1:-1;;;7803:26:23;;-1:-1:-1;;;;;2219:32:29;;;7803:26:23;;;2201:51:29;7832:12:23;;7803:20;;;;;;2174:18:29;;7803:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;:89;;;-1:-1:-1;7848:26:23;;-1:-1:-1;;;7848:26:23;;-1:-1:-1;;;;;2219:32:29;;;7848:26:23;;;2201:51:29;7877:15:23;;7848:20;;;;;;2174:18:29;;7848:26:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;7803:89;7799:131;;;7909:21;;-1:-1:-1;;;7909:21:23;;;;;;;;;;;7799:131;8043:18;;8005:72;;-1:-1:-1;;;8005:72:23;;-1:-1:-1;;;;;7849:15:29;;;8005:72:23;;;7831:34:29;8043:18:23;;;7881::29;;;7874:43;7933:18;;;7926:34;;;7987:15:23;;8005:23;;;;;7766:18:29;;8005:72:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7987:90;;8090:10;8085:71;;8136:18;;8109:47;;-1:-1:-1;;;8109:47:23;;-1:-1:-1;;;;;8136:18:23;;;8109:47;;;2201:51:29;2174:18;;8109:47:23;2025:233:29;8085:71:23;8256:17;;8226:65;;-1:-1:-1;;;8226:65:23;;-1:-1:-1;;;;;7849:15:29;;;8226:65:23;;;7831:34:29;8256:17:23;;;7881:18:29;;;7874:43;7933:18;;;7926:34;;;8208:15:23;;8226:23;;;;;7766:18:29;;8226:65:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8208:83;;8304:10;8299:61;;8342:17;;8323:37;;-1:-1:-1;;;8323:37:23;;-1:-1:-1;;;;;8342:17:23;;;8323:37;;;2201:51:29;2174:18;;8323:37:23;2025:233:29;8299:61:23;7625:742;;;7606:761;-1:-1:-1;8379:4:23;;7303:1085;-1:-1:-1;;;;7303:1085:23:o;14:180:29:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:29;;14:180;-1:-1:-1;14:180:29:o;381:127::-;442:10;437:3;433:20;430:1;423:31;473:4;470:1;463:15;497:4;494:1;487:15;513:902;567:5;620:3;613:4;605:6;601:17;597:27;587:55;;638:1;635;628:12;587:55;674:6;661:20;700:4;723:18;760:2;756;753:10;750:36;;;766:18;;:::i;:::-;812:2;809:1;805:10;844:2;838:9;907:2;903:7;898:2;894;890:11;886:25;878:6;874:38;962:6;950:10;947:22;942:2;930:10;927:18;924:46;921:72;;;973:18;;:::i;:::-;1009:2;1002:22;1059:18;;;1135:15;;;1131:24;;;1093:15;;;;-1:-1:-1;1167:15:29;;;1164:35;;;1195:1;1192;1185:12;1164:35;1231:2;1223:6;1219:15;1208:26;;1243:142;1259:6;1254:3;1251:15;1243:142;;;1325:17;;1313:30;;1363:12;;;;1276;;;;1243:142;;;1403:6;513:902;-1:-1:-1;;;;;;;513:902:29:o;1420:173::-;1488:20;;-1:-1:-1;;;;;1537:31:29;;1527:42;;1517:70;;1583:1;1580;1573:12;1598:422;1691:6;1699;1752:2;1740:9;1731:7;1727:23;1723:32;1720:52;;;1768:1;1765;1758:12;1720:52;1808:9;1795:23;1841:18;1833:6;1830:30;1827:50;;;1873:1;1870;1863:12;1827:50;1896:61;1949:7;1940:6;1929:9;1925:22;1896:61;:::i;:::-;1886:71;;;1976:38;2010:2;1999:9;1995:18;1976:38;:::i;:::-;1966:48;;1598:422;;;;;:::o;2263:186::-;2322:6;2375:2;2363:9;2354:7;2350:23;2346:32;2343:52;;;2391:1;2388;2381:12;2343:52;2414:29;2433:9;2414:29;:::i;2646:254::-;2714:6;2722;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2827:9;2814:23;2804:33;;2856:38;2890:2;2879:9;2875:18;2856:38;:::i;3113:254::-;3181:6;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3281:29;3300:9;3281:29;:::i;:::-;3271:39;3357:2;3342:18;;;;3329:32;;-1:-1:-1;;;3113:254:29:o;3372:632::-;3543:2;3595:21;;;3665:13;;3568:18;;;3687:22;;;3514:4;;3543:2;3766:15;;;;3740:2;3725:18;;;3514:4;3809:169;3823:6;3820:1;3817:13;3809:169;;;3884:13;;3872:26;;3953:15;;;;3918:12;;;;3845:1;3838:9;3809:169;;;-1:-1:-1;3995:3:29;;3372:632;-1:-1:-1;;;;;;3372:632:29:o;4009:118::-;4095:5;4088:13;4081:21;4074:5;4071:32;4061:60;;4117:1;4114;4107:12;4132:241;4188:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:52;;;4257:1;4254;4247:12;4209:52;4296:9;4283:23;4315:28;4337:5;4315:28;:::i;4378:422::-;4471:6;4479;4532:2;4520:9;4511:7;4507:23;4503:32;4500:52;;;4548:1;4545;4538:12;4500:52;4571:29;4590:9;4571:29;:::i;:::-;4561:39;;4651:2;4640:9;4636:18;4623:32;4678:18;4670:6;4667:30;4664:50;;;4710:1;4707;4700:12;4664:50;4733:61;4786:7;4777:6;4766:9;4762:22;4733:61;:::i;:::-;4723:71;;;4378:422;;;;;:::o;5041:127::-;5102:10;5097:3;5093:20;5090:1;5083:31;5133:4;5130:1;5123:15;5157:4;5154:1;5147:15;5173:168;5246:9;;;5277;;5294:15;;;5288:22;;5274:37;5264:71;;5315:18;;:::i;5346:128::-;5413:9;;;5434:11;;;5431:37;;;5448:18;;:::i;5479:127::-;5540:10;5535:3;5531:20;5528:1;5521:31;5571:4;5568:1;5561:15;5595:4;5592:1;5585:15;5611:135;5650:3;5671:17;;;5668:43;;5691:18;;:::i;:::-;-1:-1:-1;5738:1:29;5727:13;;5611:135::o;6061:217::-;6101:1;6127;6117:132;;6171:10;6166:3;6162:20;6159:1;6152:31;6206:4;6203:1;6196:15;6234:4;6231:1;6224:15;6117:132;-1:-1:-1;6263:9:29;;6061:217::o;6283:543::-;6501:13;;6444:3;;6475;;6554:4;6581:15;;;6444:3;6624:175;6638:6;6635:1;6632:13;6624:175;;;6701:13;;6687:28;;6737:14;;;;6774:15;;;;6660:1;6653:9;6624:175;;;-1:-1:-1;6815:5:29;;6283:543;-1:-1:-1;;;;;;6283:543:29:o;6831:125::-;6896:9;;;6917:10;;;6914:36;;;6930:18;;:::i;6961:127::-;7022:10;7017:3;7013:20;7010:1;7003:31;7053:4;7050:1;7043:15;7077:4;7074:1;7067:15;7402:184;7472:6;7525:2;7513:9;7504:7;7500:23;7496:32;7493:52;;;7541:1;7538;7531:12;7493:52;-1:-1:-1;7564:16:29;;7402:184;-1:-1:-1;7402:184:29:o;7971:245::-;8038:6;8091:2;8079:9;8070:7;8066:23;8062:32;8059:52;;;8107:1;8104;8097:12;8059:52;8139:9;8133:16;8158:28;8180:5;8158:28;:::i"},"methodIdentifiers":{"DAI_TOKEN()":"e606df87","TOTALSUPPLY()":"94a08c69","addOwner(address)":"7065cb48","buyPack()":"c37b9bcd","buyPackByUser(address)":"967ed63d","buyPacks(uint256)":"6adbaf75","buyPacksByUser(address,uint256)":"62e21878","changeBalanceReceiver(address)":"e0f78307","changePrice(uint256)":"a2b40d19","changeTransferDaiFlag(bool)":"99e5f896","gammaCardsContract()":"d250f03a","gammaTicketsContract()":"14cca36a","getAmountRequiredToBuyPacks(uint256)":"b48ce653","getPackOwner(uint256)":"d3e6a7ad","getPacksByUser(address)":"8fd5baf7","getPrizeAmountToBuyPacks(uint256)":"3f6ecd48","getPrizeNoFAccountAmountToBuyPacks(uint256)":"01321c4d","isOwner(address)":"2f54bf6e","meetQuantityConditionsToBuy(uint256)":"d6a4c3e4","openPack(uint256,address)":"80f2540b","openPacks(uint256[],address)":"97f8b3d3","owner()":"8da5cb5b","removeOwner(address)":"173825d9","renounceOwnership()":"715018a6","s_balanceReceiver()":"c34e8af4","s_packPrice()":"656bd0ad","s_packs(uint256)":"3cd626fd","s_packsByUser(address,uint256)":"d9e8221e","setGammaCardsContract(address)":"4c7a7ad3","setGammaTicketsContract(address)":"ddb975e8","testOpenPack(uint256,address)":"39e8d3ec","testOpenPacks(uint256[],address)":"0c3e5c00","transferOwnership(address)":"f2fde38b","transferPack(address,uint256)":"d611713e","transferPacks(address,uint256[])":"ab4bdbc8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_daiTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_balanceReceiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaCardsContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientPacksAvailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNumberOfPacks\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGammaCardsContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotYourPack\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnlyOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"TransferPrizeError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"balanceReceiver\",\"type\":\"address\"}],\"name\":\"NewBalanceReceiver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newCardsContract\",\"type\":\"address\"}],\"name\":\"NewGammaCardsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGammaTicketContract\",\"type\":\"address\"}],\"name\":\"NewGammaTicketsContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"NewPrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackOpened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackPurchased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"PackTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"PacksPurchased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256[]\",\"name\":\"tokenId\",\"type\":\"uint256[]\"}],\"name\":\"PacksTransfered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DAI_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOTALSUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buyPack\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"buyPackByUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"buyPacks\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"buyPacksByUser\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newBalanceReceiver\",\"type\":\"address\"}],\"name\":\"changeBalanceReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newPrice\",\"type\":\"uint256\"}],\"name\":\"changePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_transferDai\",\"type\":\"bool\"}],\"name\":\"changeTransferDaiFlag\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaCardsContract\",\"outputs\":[{\"internalType\":\"contract IGammaCardsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gammaTicketsContract\",\"outputs\":[{\"internalType\":\"contract IgammaTicketsContract\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"getAmountRequiredToBuyPacks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getPackOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getPacksByUser\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"getPrizeAmountToBuyPacks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"getPrizeNoFAccountAmountToBuyPacks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPacks\",\"type\":\"uint256\"}],\"name\":\"meetQuantityConditionsToBuy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"openPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerToRemove\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_balanceReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_packPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"s_packs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"s_packsByUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenIds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaCardsContract\",\"type\":\"address\"}],\"name\":\"setGammaCardsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gammaTicketsContract\",\"type\":\"address\"}],\"name\":\"setGammaTicketsContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"testOpenPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"testOpenPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferPack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"transferPacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/GammaPacks.v3.sol\":\"NofGammaPacksV3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/gamma/GammaPacks.v3.sol\":{\"keccak256\":\"0x8b91107b9934ac7de1ce2ef9b9d6ef5c5647879fe7fe0c771663736d822b5318\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cde64143305e717e6a5d0117c28c584c4205921c9dbd8ca9e9b8166ad07b7104\",\"dweb:/ipfs/Qmew2Bukovwc2qfM1h5WwbvBQ21dpFiLLF7vCyawrgsts7\"]},\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/gamma/libs/LibControlMgmt.sol":{"LibControlMgmt":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"NewOwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newSigner","type":"address"}],"name":"NewSignerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"SignerRemoved","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6105e461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033","opcodes":"PUSH2 0x5E4 PUSH2 0x3A PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x773B6D12 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x982088F0 EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB4D78AE4 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xB764B1A4 EQ PUSH2 0xBD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x98 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1D7 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xD8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x177 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C72656164792061207369676E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 DUP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x72D4003E8F1AD99F4F488C703A1D183DEE364A6337CB77F8FBA50088CB0FBFA3 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x267 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F742061207369676E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x2CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C66206173206120 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x39B4B3B732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x3525E22824A8A7DF2C9A6029941C824CF95B6447F1E13D5128FD3826D35AFE8B SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x348 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C726561647920616E206F776E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x6E4E2A7C0E1576D48AEABD633D094F622D4F046286FEC8B9045DD7F5C9FB087D SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F7420616E206F776E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x4F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C6620617320616E PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1037BBB732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x58619076ADF5BB0943D100EF88D52D7C3FD691B19D3A9071B555B651FBF418DA SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x579 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x10 SWAP1 DUP3 ADD MSTORE PUSH16 0x24B73B30B634B21030B2323932B9B997 PUSH1 0x81 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBD 0xC1 CHAINID 0xE 0xC0 GT 0xAE CALLVALUE LOG2 PC JUMP SLOAD 0xBD PUSH6 0xBEDDE11324FA LOG3 0x4E 0xE9 0xF 0x1E CALLVALUE 0xA9 PUSH32 0xE2FD3B764736F6C634300081400330000000000000000000000000000000000 ","sourceMap":"58:1693:24:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;58:1693:24;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@addOwner_8697":{"entryPoint":802,"id":8697,"parameterSlots":2,"returnSlots":0},"@addSigner_8784":{"entryPoint":221,"id":8784,"parameterSlots":2,"returnSlots":0},"@removeOwner_8744":{"entryPoint":1027,"id":8744,"parameterSlots":2,"returnSlots":0},"@removeSigner_8831":{"entryPoint":471,"id":8831,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_struct$_Data_$8641_storage_ptrt_address":{"entryPoint":1352,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1412,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3182:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"124:267:29","statements":[{"body":{"nodeType":"YulBlock","src":"170:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"179:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"182:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"172:6:29"},"nodeType":"YulFunctionCall","src":"172:12:29"},"nodeType":"YulExpressionStatement","src":"172:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"145:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"154:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"141:3:29"},"nodeType":"YulFunctionCall","src":"141:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"166:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"137:3:29"},"nodeType":"YulFunctionCall","src":"137:32:29"},"nodeType":"YulIf","src":"134:52:29"},{"nodeType":"YulAssignment","src":"195:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"218:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"205:12:29"},"nodeType":"YulFunctionCall","src":"205:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"195:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"237:45:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"267:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"263:3:29"},"nodeType":"YulFunctionCall","src":"263:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"250:12:29"},"nodeType":"YulFunctionCall","src":"250:32:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"241:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"345:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"354:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"357:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"347:6:29"},"nodeType":"YulFunctionCall","src":"347:12:29"},"nodeType":"YulExpressionStatement","src":"347:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"304:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"315:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"330:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"335:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"326:3:29"},"nodeType":"YulFunctionCall","src":"326:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"339:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"322:3:29"},"nodeType":"YulFunctionCall","src":"322:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"311:3:29"},"nodeType":"YulFunctionCall","src":"311:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"301:2:29"},"nodeType":"YulFunctionCall","src":"301:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"294:6:29"},"nodeType":"YulFunctionCall","src":"294:50:29"},"nodeType":"YulIf","src":"291:70:29"},{"nodeType":"YulAssignment","src":"370:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"380:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"370:6:29"}]}]},"name":"abi_decode_tuple_t_struct$_Data_$8641_storage_ptrt_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"82:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"93:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"105:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"113:6:29","type":""}],"src":"14:377:29"},{"body":{"nodeType":"YulBlock","src":"570:166:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"587:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"598:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"580:6:29"},"nodeType":"YulFunctionCall","src":"580:21:29"},"nodeType":"YulExpressionStatement","src":"580:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"621:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"632:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"617:3:29"},"nodeType":"YulFunctionCall","src":"617:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"637:2:29","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"610:6:29"},"nodeType":"YulFunctionCall","src":"610:30:29"},"nodeType":"YulExpressionStatement","src":"610:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"660:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"656:3:29"},"nodeType":"YulFunctionCall","src":"656:18:29"},{"hexValue":"496e76616c696420616464726573732e","kind":"string","nodeType":"YulLiteral","src":"676:18:29","type":"","value":"Invalid address."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"649:6:29"},"nodeType":"YulFunctionCall","src":"649:46:29"},"nodeType":"YulExpressionStatement","src":"649:46:29"},{"nodeType":"YulAssignment","src":"704:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"716:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"727:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"712:3:29"},"nodeType":"YulFunctionCall","src":"712:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"704:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"547:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"561:4:29","type":""}],"src":"396:340:29"},{"body":{"nodeType":"YulBlock","src":"915:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"943:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"925:6:29"},"nodeType":"YulFunctionCall","src":"925:21:29"},"nodeType":"YulExpressionStatement","src":"925:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"966:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"977:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:29"},"nodeType":"YulFunctionCall","src":"962:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"982:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"955:6:29"},"nodeType":"YulFunctionCall","src":"955:30:29"},"nodeType":"YulExpressionStatement","src":"955:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1016:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1001:3:29"},"nodeType":"YulFunctionCall","src":"1001:18:29"},{"hexValue":"4164647265737320697320616c72656164792061207369676e65722e","kind":"string","nodeType":"YulLiteral","src":"1021:30:29","type":"","value":"Address is already a signer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"994:6:29"},"nodeType":"YulFunctionCall","src":"994:58:29"},"nodeType":"YulExpressionStatement","src":"994:58:29"},{"nodeType":"YulAssignment","src":"1061:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1073:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1084:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1069:3:29"},"nodeType":"YulFunctionCall","src":"1069:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1061:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"892:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"906:4:29","type":""}],"src":"741:352:29"},{"body":{"nodeType":"YulBlock","src":"1199:102:29","statements":[{"nodeType":"YulAssignment","src":"1209:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1221:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1232:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1217:3:29"},"nodeType":"YulFunctionCall","src":"1217:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1209:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1251:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1266:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1287:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:29"},"nodeType":"YulFunctionCall","src":"1278:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1291:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:29"},"nodeType":"YulFunctionCall","src":"1274:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1262:3:29"},"nodeType":"YulFunctionCall","src":"1262:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1244:6:29"},"nodeType":"YulFunctionCall","src":"1244:51:29"},"nodeType":"YulExpressionStatement","src":"1244:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1168:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1179:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1190:4:29","type":""}],"src":"1098:203:29"},{"body":{"nodeType":"YulBlock","src":"1480:174:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1497:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1508:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1490:6:29"},"nodeType":"YulFunctionCall","src":"1490:21:29"},"nodeType":"YulExpressionStatement","src":"1490:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1531:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1542:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1527:3:29"},"nodeType":"YulFunctionCall","src":"1527:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:2:29","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1520:6:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulExpressionStatement","src":"1520:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1570:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1581:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1566:3:29"},"nodeType":"YulFunctionCall","src":"1566:18:29"},{"hexValue":"41646472657373206973206e6f742061207369676e65722e","kind":"string","nodeType":"YulLiteral","src":"1586:26:29","type":"","value":"Address is not a signer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1559:6:29"},"nodeType":"YulFunctionCall","src":"1559:54:29"},"nodeType":"YulExpressionStatement","src":"1559:54:29"},{"nodeType":"YulAssignment","src":"1622:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:29"},"nodeType":"YulFunctionCall","src":"1630:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1622:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1457:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1471:4:29","type":""}],"src":"1306:348:29"},{"body":{"nodeType":"YulBlock","src":"1833:229:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1850:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1861:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1843:6:29"},"nodeType":"YulFunctionCall","src":"1843:21:29"},"nodeType":"YulExpressionStatement","src":"1843:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1884:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1895:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1880:3:29"},"nodeType":"YulFunctionCall","src":"1880:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"1900:2:29","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1873:6:29"},"nodeType":"YulFunctionCall","src":"1873:30:29"},"nodeType":"YulExpressionStatement","src":"1873:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1923:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1934:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1919:3:29"},"nodeType":"YulFunctionCall","src":"1919:18:29"},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c66206173206120","kind":"string","nodeType":"YulLiteral","src":"1939:34:29","type":"","value":"You cannot remove yourself as a "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1912:6:29"},"nodeType":"YulFunctionCall","src":"1912:62:29"},"nodeType":"YulExpressionStatement","src":"1912:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1994:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2005:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1990:3:29"},"nodeType":"YulFunctionCall","src":"1990:18:29"},{"hexValue":"7369676e65722e","kind":"string","nodeType":"YulLiteral","src":"2010:9:29","type":"","value":"signer."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1983:6:29"},"nodeType":"YulFunctionCall","src":"1983:37:29"},"nodeType":"YulExpressionStatement","src":"1983:37:29"},{"nodeType":"YulAssignment","src":"2029:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2052:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2037:3:29"},"nodeType":"YulFunctionCall","src":"2037:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2029:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1810:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1824:4:29","type":""}],"src":"1659:403:29"},{"body":{"nodeType":"YulBlock","src":"2241:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2258:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2251:6:29"},"nodeType":"YulFunctionCall","src":"2251:21:29"},"nodeType":"YulExpressionStatement","src":"2251:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:29"},"nodeType":"YulFunctionCall","src":"2288:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2308:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:29"},"nodeType":"YulFunctionCall","src":"2281:30:29"},"nodeType":"YulExpressionStatement","src":"2281:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2331:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2342:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2327:3:29"},"nodeType":"YulFunctionCall","src":"2327:18:29"},{"hexValue":"4164647265737320697320616c726561647920616e206f776e65722e","kind":"string","nodeType":"YulLiteral","src":"2347:30:29","type":"","value":"Address is already an owner."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2320:6:29"},"nodeType":"YulFunctionCall","src":"2320:58:29"},"nodeType":"YulExpressionStatement","src":"2320:58:29"},{"nodeType":"YulAssignment","src":"2387:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2399:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2410:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2395:3:29"},"nodeType":"YulFunctionCall","src":"2395:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2387:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2218:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2232:4:29","type":""}],"src":"2067:352:29"},{"body":{"nodeType":"YulBlock","src":"2598:174:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2615:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2626:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2608:6:29"},"nodeType":"YulFunctionCall","src":"2608:21:29"},"nodeType":"YulExpressionStatement","src":"2608:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2649:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2660:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2645:3:29"},"nodeType":"YulFunctionCall","src":"2645:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2665:2:29","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2638:6:29"},"nodeType":"YulFunctionCall","src":"2638:30:29"},"nodeType":"YulExpressionStatement","src":"2638:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2699:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2684:3:29"},"nodeType":"YulFunctionCall","src":"2684:18:29"},{"hexValue":"41646472657373206973206e6f7420616e206f776e65722e","kind":"string","nodeType":"YulLiteral","src":"2704:26:29","type":"","value":"Address is not an owner."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2677:6:29"},"nodeType":"YulFunctionCall","src":"2677:54:29"},"nodeType":"YulExpressionStatement","src":"2677:54:29"},{"nodeType":"YulAssignment","src":"2740:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2752:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2763:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2748:3:29"},"nodeType":"YulFunctionCall","src":"2748:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2740:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2575:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2589:4:29","type":""}],"src":"2424:348:29"},{"body":{"nodeType":"YulBlock","src":"2951:229:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2968:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2979:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2961:6:29"},"nodeType":"YulFunctionCall","src":"2961:21:29"},"nodeType":"YulExpressionStatement","src":"2961:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3002:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3013:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2998:3:29"},"nodeType":"YulFunctionCall","src":"2998:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3018:2:29","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2991:6:29"},"nodeType":"YulFunctionCall","src":"2991:30:29"},"nodeType":"YulExpressionStatement","src":"2991:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:18:29"},{"hexValue":"596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e","kind":"string","nodeType":"YulLiteral","src":"3057:34:29","type":"","value":"You cannot remove yourself as an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3030:6:29"},"nodeType":"YulFunctionCall","src":"3030:62:29"},"nodeType":"YulExpressionStatement","src":"3030:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:29"},"nodeType":"YulFunctionCall","src":"3108:18:29"},{"hexValue":"206f776e65722e","kind":"string","nodeType":"YulLiteral","src":"3128:9:29","type":"","value":" owner."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:29"},"nodeType":"YulFunctionCall","src":"3101:37:29"},"nodeType":"YulExpressionStatement","src":"3101:37:29"},{"nodeType":"YulAssignment","src":"3147:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3159:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3170:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3155:3:29"},"nodeType":"YulFunctionCall","src":"3155:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3147:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2928:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2942:4:29","type":""}],"src":"2777:403:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_struct$_Data_$8641_storage_ptrt_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_stringliteral_59acb5750c30236105ee23a5a3223a770d00887da62c81b37662e3711045ad34__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Invalid address.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6fd29d050c723de0788b8370efbb9a0a3306647fddc33996abbb14189ac4ddb9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Address is already a signer.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_02d8e7d33342ccfb4378f37fe54acaf55de4fc1c0ee5b888b2a582caf8e1939d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Address is not a signer.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1a3e0da5061598a1dc7bb55dadee7574c0a867994fbb136e9f5d7d4c3dc1eaed__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"You cannot remove yourself as a \")\n mstore(add(headStart, 96), \"signer.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1da5ad01160e00aeaa0280245a6c66169f2d72012fef7f0adbb38e323363f91f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Address is already an owner.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_de152c000b3e38e9253f515720a7d5ce807069bca4e42a7c44abad1002501502__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Address is not an owner.\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d7cdd3c058c212eb8de288c8438e05f404fc8e2f797232aea7fd0620cd6a1a75__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"You cannot remove yourself as an\")\n mstore(add(headStart, 96), \" owner.\")\n tail := add(headStart, 128)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x56 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x773B6D12 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x982088F0 EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB4D78AE4 EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xB764B1A4 EQ PUSH2 0xBD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0xDD JUMP JUMPDEST STOP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x98 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1D7 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0xD8 CALLDATASIZE PUSH1 0x4 PUSH2 0x548 JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x177 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C72656164792061207369676E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 DUP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x72D4003E8F1AD99F4F488C703A1D183DEE364A6337CB77F8FBA50088CB0FBFA3 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x267 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F742061207369676E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x2CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C66206173206120 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x39B4B3B732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x3525E22824A8A7DF2C9A6029941C824CF95B6447F1E13D5128FD3826D35AFE8B SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x348 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4164647265737320697320616C726561647920616E206F776E65722E00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x6E4E2A7C0E1576D48AEABD633D094F622D4F046286FEC8B9045DD7F5C9FB087D SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x429 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x103 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x41646472657373206973206E6F7420616E206F776E65722E0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x103 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x4F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x596F752063616E6E6F742072656D6F766520796F757273656C6620617320616E PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1037BBB732B917 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x58619076ADF5BB0943D100EF88D52D7C3FD691B19D3A9071B555B651FBF418DA SWAP2 ADD PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x579 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x10 SWAP1 DUP3 ADD MSTORE PUSH16 0x24B73B30B634B21030B2323932B9B997 PUSH1 0x81 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBD 0xC1 CHAINID 0xE 0xC0 GT 0xAE CALLVALUE LOG2 PC JUMP SLOAD 0xBD PUSH6 0xBEDDE11324FA LOG3 0x4E 0xE9 0xF 0x1E CALLVALUE 0xA9 PUSH32 0xE2FD3B764736F6C634300081400330000000000000000000000000000000000 ","sourceMap":"58:1693:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:290;;;;;;;;;;-1:-1:-1;1050:290:24;;;;;:::i;:::-;;:::i;:::-;;1346:403;;;;;;;;;;-1:-1:-1;1346:403:24;;;;;:::i;:::-;;:::i;364:281::-;;;;;;;;;;-1:-1:-1;364:281:24;;;;;:::i;:::-;;:::i;651:393::-;;;;;;;;;;-1:-1:-1;651:393:24;;;;;:::i;:::-;;:::i;1050:290::-;-1:-1:-1;;;;;1134:23:24;;1126:52;;;;-1:-1:-1;;;1126:52:24;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1197:23:24;;;;;;:12;;;:23;;;;;;;;1196:24;1188:65;;;;-1:-1:-1;;;1188:65:24;;943:2:29;1188:65:24;;;925:21:29;982:2;962:18;;;955:30;1021;1001:18;;;994:58;1069:18;;1188:65:24;741:352:29;1188:65:24;-1:-1:-1;;;;;1263:23:24;;;;;;1289:4;1263:12;;;:23;;;;;;;;;:30;;-1:-1:-1;;1263:30:24;;;;;;;1308:25;;1244:51:29;;;1308:25:24;;1217:18:29;1308:25:24;;;;;;;;1050:290;;:::o;1346:403::-;-1:-1:-1;;;;;1438:28:24;;1430:57;;;;-1:-1:-1;;;1430:57:24;;;;;;;:::i;:::-;-1:-1:-1;;;;;1505:28:24;;;;;;:12;;;:28;;;;;;;;1497:65;;;;-1:-1:-1;;;1497:65:24;;1508:2:29;1497:65:24;;;1490:21:29;1547:2;1527:18;;;1520:30;1586:26;1566:18;;;1559:54;1630:18;;1497:65:24;1306:348:29;1497:65:24;1598:10;-1:-1:-1;;;;;1580:28:24;;;1572:80;;;;-1:-1:-1;;;1572:80:24;;1861:2:29;1572:80:24;;;1843:21:29;1900:2;1880:18;;;1873:30;1939:34;1919:18;;;1912:62;-1:-1:-1;;;1990:18:29;;;1983:37;2037:19;;1572:80:24;1659:403:29;1572:80:24;-1:-1:-1;;;;;1662:28:24;;1693:5;1662:28;;;:12;;;:28;;;;;;;;;:36;;-1:-1:-1;;1662:36:24;;;1713:29;;1244:51:29;;;1713:29:24;;1217:18:29;1713:29:24;1098:203:29;364:281:24;-1:-1:-1;;;;;446:22:24;;438:51;;;;-1:-1:-1;;;438:51:24;;;;;;;:::i;:::-;-1:-1:-1;;;;;508:21:24;;:11;:21;;;;;;;;;;;;;507:22;499:63;;;;-1:-1:-1;;;499:63:24;;2269:2:29;499:63:24;;;2251:21:29;2308:2;2288:18;;;2281:30;2347;2327:18;;;2320:58;2395:18;;499:63:24;2067:352:29;499:63:24;-1:-1:-1;;;;;572:21:24;;:11;:21;;;;;;;;;;;;:28;;-1:-1:-1;;572:28:24;596:4;572:28;;;615:23;;1244:51:29;;;615:23:24;;1217:18:29;615:23:24;1098:203:29;651:393:24;-1:-1:-1;;;;;741:27:24;;733:56;;;;-1:-1:-1;;;733:56:24;;;;;;;:::i;:::-;-1:-1:-1;;;;;807:26:24;;:11;:26;;;;;;;;;;;;;799:63;;;;-1:-1:-1;;;799:63:24;;2626:2:29;799:63:24;;;2608:21:29;2665:2;2645:18;;;2638:30;2704:26;2684:18;;;2677:54;2748:18;;799:63:24;2424:348:29;799:63:24;897:10;-1:-1:-1;;;;;880:27:24;;;872:79;;;;-1:-1:-1;;;872:79:24;;2979:2:29;872:79:24;;;2961:21:29;3018:2;2998:18;;;2991:30;3057:34;3037:18;;;3030:62;-1:-1:-1;;;3108:18:29;;;3101:37;3155:19;;872:79:24;2777:403:29;872:79:24;-1:-1:-1;;;;;961:26:24;;990:5;961:26;;;;;;;;;;;;:34;;-1:-1:-1;;961:34:24;;;1010:27;;1244:51:29;;;1010:27:24;;1217:18:29;1010:27:24;1098:203:29;14:377;105:6;113;166:2;154:9;145:7;141:23;137:32;134:52;;;182:1;179;172:12;134:52;205:23;;;-1:-1:-1;278:2:29;263:18;;250:32;-1:-1:-1;;;;;311:31:29;;301:42;;291:70;;357:1;354;347:12;291:70;380:5;370:15;;;14:377;;;;;:::o;396:340::-;598:2;580:21;;;637:2;617:18;;;610:30;-1:-1:-1;;;671:2:29;656:18;;649:46;727:2;712:18;;396:340::o"},"methodIdentifiers":{"addOwner(LibControlMgmt.Data storage,address)":"b4d78ae4","addSigner(LibControlMgmt.Data storage,address)":"773b6d12","removeOwner(LibControlMgmt.Data storage,address)":"b764b1a4","removeSigner(LibControlMgmt.Data storage,address)":"982088f0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"NewOwnerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"}],\"name\":\"NewSignerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerRemoved\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/libs/LibControlMgmt.sol\":\"LibControlMgmt\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/gamma/libs/LibControlMgmt.sol\":{\"keccak256\":\"0x9d7cba3051fd0c73feb36c4b138f3df629ef4039e88098984fbc325867dfb4ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fb9ce5b513feda45eb223e609c34d12003f9c36aa25fcd9446b526ac0c88ca0\",\"dweb:/ipfs/QmWqMjVA8pKEEUf7AeUcnRvj8NrvLvLHGMqF9j4w8nngyC\"]}},\"version\":1}"}},"contracts/gamma/libs/LibPackVerifier.sol":{"LibPackVerifier":{"abi":[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"packNumber","type":"uint256"},{"internalType":"uint8[]","name":"packData","type":"uint8[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verifyPackSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"61058c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033","opcodes":"PUSH2 0x58C PUSH2 0x3A PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38FB7D8B EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x39C JUMP JUMPDEST PUSH2 0x69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCD DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x84 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3C SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x113 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP7 SWAP4 SWAP3 POP POP PUSH2 0x11F SWAP1 POP JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x12F DUP7 DUP7 PUSH2 0x149 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x13F DUP3 DUP3 PUSH2 0x196 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x183 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x175 DUP9 DUP3 DUP6 DUP6 PUSH2 0x258 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x18F JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AA JUMPI PUSH2 0x1AA PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1B3 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI PUSH2 0x1C7 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1F9 JUMPI PUSH2 0x1F9 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x21F JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x233 JUMPI PUSH2 0x233 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x254 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x216 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x293 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x313 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x31D JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x416 JUMPI PUSH2 0x416 PUSH2 0x327 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x43B JUMPI PUSH2 0x43B PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD DUP14 DUP5 GT ISZERO PUSH2 0x457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP7 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x47A JUMPI PUSH2 0x46D DUP7 PUSH2 0x33D JUMP JUMPDEST DUP2 MSTORE SWAP5 DUP7 ADD SWAP5 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST POP SWAP8 POP POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x493 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4A1 DUP9 DUP3 DUP10 ADD PUSH2 0x353 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP3 PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x34 DUP3 ADD DUP4 MLOAD PUSH1 0x20 DUP1 DUP7 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4FC JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP POP PUSH32 0x3078663164443731383935653439623135363336393339363964653530383938 DUP4 MSTORE PUSH10 0x31393763444633343831 PUSH1 0xB0 SHL SWAP1 DUP4 ADD MSTORE POP PUSH1 0x2A ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SGT PUSH25 0x24AF166079DF823AF04362858A738D821388548F231F814AE4 0xE5 0xAC 0xCC 0xB3 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"197:571:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;197:571:25;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_throwError_2353":{"entryPoint":406,"id":2353,"parameterSlots":2,"returnSlots":0},"@recover_2110":{"entryPoint":287,"id":2110,"parameterSlots":2,"returnSlots":1},"@toEthSignedMessageHash_2369":{"entryPoint":null,"id":2369,"parameterSlots":1,"returnSlots":1},"@tryRecover_2080":{"entryPoint":329,"id":2080,"parameterSlots":2,"returnSlots":3},"@tryRecover_2268":{"entryPoint":600,"id":2268,"parameterSlots":4,"returnSlots":3},"@verifyPackSigner_8880":{"entryPoint":105,"id":8880,"parameterSlots":5,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":851,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr":{"entryPoint":924,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":829,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1202,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_library_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x21":{"entryPoint":1344,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":807,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4370:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"193:109:29","statements":[{"nodeType":"YulAssignment","src":"203:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"225:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"212:12:29"},"nodeType":"YulFunctionCall","src":"212:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"203:5:29"}]},{"body":{"nodeType":"YulBlock","src":"280:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"289:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"292:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"282:6:29"},"nodeType":"YulFunctionCall","src":"282:12:29"},"nodeType":"YulExpressionStatement","src":"282:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"254:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"265:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"272:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"261:3:29"},"nodeType":"YulFunctionCall","src":"261:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"251:2:29"},"nodeType":"YulFunctionCall","src":"251:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"244:6:29"},"nodeType":"YulFunctionCall","src":"244:35:29"},"nodeType":"YulIf","src":"241:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"172:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"183:5:29","type":""}],"src":"146:156:29"},{"body":{"nodeType":"YulBlock","src":"379:275:29","statements":[{"body":{"nodeType":"YulBlock","src":"428:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"440:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"430:6:29"},"nodeType":"YulFunctionCall","src":"430:12:29"},"nodeType":"YulExpressionStatement","src":"430:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"407:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"415:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:29"},"nodeType":"YulFunctionCall","src":"403:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"422:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"399:3:29"},"nodeType":"YulFunctionCall","src":"399:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"392:6:29"},"nodeType":"YulFunctionCall","src":"392:35:29"},"nodeType":"YulIf","src":"389:55:29"},{"nodeType":"YulAssignment","src":"453:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"476:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"463:12:29"},"nodeType":"YulFunctionCall","src":"463:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"453:6:29"}]},{"body":{"nodeType":"YulBlock","src":"526:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"535:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"538:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:29"},"nodeType":"YulFunctionCall","src":"528:12:29"},"nodeType":"YulExpressionStatement","src":"528:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"498:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"506:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"495:2:29"},"nodeType":"YulFunctionCall","src":"495:30:29"},"nodeType":"YulIf","src":"492:50:29"},{"nodeType":"YulAssignment","src":"551:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"567:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"575:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"563:3:29"},"nodeType":"YulFunctionCall","src":"563:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"551:8:29"}]},{"body":{"nodeType":"YulBlock","src":"632:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"641:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"644:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:29"},"nodeType":"YulFunctionCall","src":"634:12:29"},"nodeType":"YulExpressionStatement","src":"634:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"603:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"611:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"599:3:29"},"nodeType":"YulFunctionCall","src":"599:19:29"},{"kind":"number","nodeType":"YulLiteral","src":"620:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"595:3:29"},"nodeType":"YulFunctionCall","src":"595:30:29"},{"name":"end","nodeType":"YulIdentifier","src":"627:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"592:2:29"},"nodeType":"YulFunctionCall","src":"592:39:29"},"nodeType":"YulIf","src":"589:59:29"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"342:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"350:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"358:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"368:6:29","type":""}],"src":"307:347:29"},{"body":{"nodeType":"YulBlock","src":"822:1484:29","statements":[{"body":{"nodeType":"YulBlock","src":"869:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"878:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"881:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"871:6:29"},"nodeType":"YulFunctionCall","src":"871:12:29"},"nodeType":"YulExpressionStatement","src":"871:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"843:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"852:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"839:3:29"},"nodeType":"YulFunctionCall","src":"839:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"864:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"835:3:29"},"nodeType":"YulFunctionCall","src":"835:33:29"},"nodeType":"YulIf","src":"832:53:29"},{"nodeType":"YulVariableDeclaration","src":"894:36:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"920:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"907:12:29"},"nodeType":"YulFunctionCall","src":"907:23:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"898:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"993:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1002:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1005:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"995:6:29"},"nodeType":"YulFunctionCall","src":"995:12:29"},"nodeType":"YulExpressionStatement","src":"995:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"952:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"963:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"978:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"983:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"974:3:29"},"nodeType":"YulFunctionCall","src":"974:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"987:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"970:3:29"},"nodeType":"YulFunctionCall","src":"970:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"959:3:29"},"nodeType":"YulFunctionCall","src":"959:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"949:2:29"},"nodeType":"YulFunctionCall","src":"949:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"942:6:29"},"nodeType":"YulFunctionCall","src":"942:50:29"},"nodeType":"YulIf","src":"939:70:29"},{"nodeType":"YulAssignment","src":"1018:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"1028:5:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1018:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1042:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1052:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1046:2:29","type":""}]},{"nodeType":"YulAssignment","src":"1063:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1090:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1101:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1086:3:29"},"nodeType":"YulFunctionCall","src":"1086:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1073:12:29"},"nodeType":"YulFunctionCall","src":"1073:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1063:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1114:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1145:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1156:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1141:3:29"},"nodeType":"YulFunctionCall","src":"1141:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1128:12:29"},"nodeType":"YulFunctionCall","src":"1128:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1118:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1169:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1179:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1173:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1224:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1233:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1236:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1226:6:29"},"nodeType":"YulFunctionCall","src":"1226:12:29"},"nodeType":"YulExpressionStatement","src":"1226:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1212:6:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1220:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1209:2:29"},"nodeType":"YulFunctionCall","src":"1209:14:29"},"nodeType":"YulIf","src":"1206:34:29"},{"nodeType":"YulVariableDeclaration","src":"1249:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1263:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1274:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1259:3:29"},"nodeType":"YulFunctionCall","src":"1259:22:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1253:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1329:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1338:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1341:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1331:6:29"},"nodeType":"YulFunctionCall","src":"1331:12:29"},"nodeType":"YulExpressionStatement","src":"1331:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1308:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1312:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1304:3:29"},"nodeType":"YulFunctionCall","src":"1304:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1300:3:29"},"nodeType":"YulFunctionCall","src":"1300:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1293:6:29"},"nodeType":"YulFunctionCall","src":"1293:35:29"},"nodeType":"YulIf","src":"1290:55:29"},{"nodeType":"YulVariableDeclaration","src":"1354:26:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1377:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1364:12:29"},"nodeType":"YulFunctionCall","src":"1364:16:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1358:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1403:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1405:16:29"},"nodeType":"YulFunctionCall","src":"1405:18:29"},"nodeType":"YulExpressionStatement","src":"1405:18:29"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1395:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1399:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1392:2:29"},"nodeType":"YulFunctionCall","src":"1392:10:29"},"nodeType":"YulIf","src":"1389:36:29"},{"nodeType":"YulVariableDeclaration","src":"1434:20:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1448:1:29","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"1451:2:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1444:3:29"},"nodeType":"YulFunctionCall","src":"1444:10:29"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"1438:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1463:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1483:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1477:5:29"},"nodeType":"YulFunctionCall","src":"1477:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1467:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1495:56:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1517:6:29"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"1533:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1537:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1529:3:29"},"nodeType":"YulFunctionCall","src":"1529:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1546:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1542:3:29"},"nodeType":"YulFunctionCall","src":"1542:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1525:3:29"},"nodeType":"YulFunctionCall","src":"1525:25:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1513:3:29"},"nodeType":"YulFunctionCall","src":"1513:38:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1499:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1610:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1612:16:29"},"nodeType":"YulFunctionCall","src":"1612:18:29"},"nodeType":"YulExpressionStatement","src":"1612:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1569:10:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1581:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1566:2:29"},"nodeType":"YulFunctionCall","src":"1566:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1589:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1601:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1586:2:29"},"nodeType":"YulFunctionCall","src":"1586:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1563:2:29"},"nodeType":"YulFunctionCall","src":"1563:46:29"},"nodeType":"YulIf","src":"1560:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1648:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1652:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1641:6:29"},"nodeType":"YulFunctionCall","src":"1641:22:29"},"nodeType":"YulExpressionStatement","src":"1641:22:29"},{"nodeType":"YulVariableDeclaration","src":"1672:17:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1683:6:29"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1676:3:29","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1705:6:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1713:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1698:6:29"},"nodeType":"YulFunctionCall","src":"1698:18:29"},"nodeType":"YulExpressionStatement","src":"1698:18:29"},{"nodeType":"YulAssignment","src":"1725:22:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1736:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1744:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1732:3:29"},"nodeType":"YulFunctionCall","src":"1732:15:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1725:3:29"}]},{"nodeType":"YulVariableDeclaration","src":"1756:34:29","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1778:2:29"},{"name":"_5","nodeType":"YulIdentifier","src":"1782:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1774:3:29"},"nodeType":"YulFunctionCall","src":"1774:11:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1787:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1770:3:29"},"nodeType":"YulFunctionCall","src":"1770:20:29"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1760:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1822:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1831:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1834:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1824:6:29"},"nodeType":"YulFunctionCall","src":"1824:12:29"},"nodeType":"YulExpressionStatement","src":"1824:12:29"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1805:6:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1813:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1802:2:29"},"nodeType":"YulFunctionCall","src":"1802:19:29"},"nodeType":"YulIf","src":"1799:39:29"},{"nodeType":"YulVariableDeclaration","src":"1847:22:29","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1862:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1866:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:11:29"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1851:3:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1934:90:29","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1955:3:29"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1977:3:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"1960:16:29"},"nodeType":"YulFunctionCall","src":"1960:21:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1948:6:29"},"nodeType":"YulFunctionCall","src":"1948:34:29"},"nodeType":"YulExpressionStatement","src":"1948:34:29"},{"nodeType":"YulAssignment","src":"1995:19:29","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2006:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2011:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:29"},"nodeType":"YulFunctionCall","src":"2002:12:29"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1995:3:29"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1889:3:29"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1894:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1886:2:29"},"nodeType":"YulFunctionCall","src":"1886:15:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1902:23:29","statements":[{"nodeType":"YulAssignment","src":"1904:19:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1915:3:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1920:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1911:3:29"},"nodeType":"YulFunctionCall","src":"1911:12:29"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1904:3:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1882:3:29","statements":[]},"src":"1878:146:29"},{"nodeType":"YulAssignment","src":"2033:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2043:6:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2033:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2058:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2091:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2102:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2087:3:29"},"nodeType":"YulFunctionCall","src":"2087:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2074:12:29"},"nodeType":"YulFunctionCall","src":"2074:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2062:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2135:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2144:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2147:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2137:6:29"},"nodeType":"YulFunctionCall","src":"2137:12:29"},"nodeType":"YulExpressionStatement","src":"2137:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2121:8:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2131:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2118:2:29"},"nodeType":"YulFunctionCall","src":"2118:16:29"},"nodeType":"YulIf","src":"2115:36:29"},{"nodeType":"YulVariableDeclaration","src":"2160:86:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2227:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:29"},"nodeType":"YulFunctionCall","src":"2212:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2238:7:29"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2186:25:29"},"nodeType":"YulFunctionCall","src":"2186:60:29"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"2164:8:29","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"2174:8:29","type":""}]},{"nodeType":"YulAssignment","src":"2255:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2265:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2255:6:29"}]},{"nodeType":"YulAssignment","src":"2282:18:29","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2292:8:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2282:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"756:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"767:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"779:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"787:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"795:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"803:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"811:6:29","type":""}],"src":"659:1647:29"},{"body":{"nodeType":"YulBlock","src":"2420:102:29","statements":[{"nodeType":"YulAssignment","src":"2430:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:29"},"nodeType":"YulFunctionCall","src":"2438:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2430:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2472:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2487:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2503:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2508:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2499:3:29"},"nodeType":"YulFunctionCall","src":"2499:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2512:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2495:3:29"},"nodeType":"YulFunctionCall","src":"2495:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2483:3:29"},"nodeType":"YulFunctionCall","src":"2483:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2465:6:29"},"nodeType":"YulFunctionCall","src":"2465:51:29"},"nodeType":"YulExpressionStatement","src":"2465:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2389:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2400:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2411:4:29","type":""}],"src":"2311:211:29"},{"body":{"nodeType":"YulBlock","src":"2849:620:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2866:3:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2879:2:29","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"2883:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2875:3:29"},"nodeType":"YulFunctionCall","src":"2875:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2896:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2892:3:29"},"nodeType":"YulFunctionCall","src":"2892:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2871:3:29"},"nodeType":"YulFunctionCall","src":"2871:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2859:6:29"},"nodeType":"YulFunctionCall","src":"2859:66:29"},"nodeType":"YulExpressionStatement","src":"2859:66:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2945:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2950:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2941:3:29"},"nodeType":"YulFunctionCall","src":"2941:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"2955:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2934:6:29"},"nodeType":"YulFunctionCall","src":"2934:28:29"},"nodeType":"YulExpressionStatement","src":"2934:28:29"},{"nodeType":"YulVariableDeclaration","src":"2971:25:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2988:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2993:2:29","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2984:3:29"},"nodeType":"YulFunctionCall","src":"2984:12:29"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"2975:5:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3005:27:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3025:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3019:5:29"},"nodeType":"YulFunctionCall","src":"3019:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3009:6:29","type":""}]},{"nodeType":"YulAssignment","src":"3041:14:29","value":{"name":"pos_1","nodeType":"YulIdentifier","src":"3050:5:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3041:5:29"}]},{"nodeType":"YulVariableDeclaration","src":"3064:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3074:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3068:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3087:29:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3105:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3113:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3101:3:29"},"nodeType":"YulFunctionCall","src":"3101:15:29"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3091:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3125:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3134:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3129:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3193:137:29","statements":[{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3214:5:29"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3231:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3225:5:29"},"nodeType":"YulFunctionCall","src":"3225:13:29"},{"kind":"number","nodeType":"YulLiteral","src":"3240:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3221:3:29"},"nodeType":"YulFunctionCall","src":"3221:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3207:6:29"},"nodeType":"YulFunctionCall","src":"3207:39:29"},"nodeType":"YulExpressionStatement","src":"3207:39:29"},{"nodeType":"YulAssignment","src":"3259:23:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3272:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3279:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3268:3:29"},"nodeType":"YulFunctionCall","src":"3268:14:29"},"variableNames":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3259:5:29"}]},{"nodeType":"YulAssignment","src":"3295:25:29","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3309:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3317:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:29"},"nodeType":"YulFunctionCall","src":"3305:15:29"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3295:6:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3155:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"3158:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3152:2:29"},"nodeType":"YulFunctionCall","src":"3152:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3166:18:29","statements":[{"nodeType":"YulAssignment","src":"3168:14:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3177:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"3180:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3173:3:29"},"nodeType":"YulFunctionCall","src":"3173:9:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3168:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3148:3:29","statements":[]},"src":"3144:186:29"},{"expression":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3346:5:29"},{"hexValue":"3078663164443731383935653439623135363336393339363964653530383938","kind":"string","nodeType":"YulLiteral","src":"3353:34:29","type":"","value":"0xf1dD71895e49b1563693969de50898"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3339:6:29"},"nodeType":"YulFunctionCall","src":"3339:49:29"},"nodeType":"YulExpressionStatement","src":"3339:49:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3408:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3415:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3404:3:29"},"nodeType":"YulFunctionCall","src":"3404:14:29"},{"hexValue":"31393763444633343831","kind":"string","nodeType":"YulLiteral","src":"3420:12:29","type":"","value":"197cDF3481"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3397:6:29"},"nodeType":"YulFunctionCall","src":"3397:36:29"},"nodeType":"YulExpressionStatement","src":"3397:36:29"},{"nodeType":"YulAssignment","src":"3442:21:29","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"3453:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"3460:2:29","type":"","value":"42"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3449:3:29"},"nodeType":"YulFunctionCall","src":"3449:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3442:3:29"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2809:3:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2814:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2822:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2830:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2841:3:29","type":""}],"src":"2527:942:29"},{"body":{"nodeType":"YulBlock","src":"3506:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3523:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3530:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3535:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3526:3:29"},"nodeType":"YulFunctionCall","src":"3526:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3516:6:29"},"nodeType":"YulFunctionCall","src":"3516:31:29"},"nodeType":"YulExpressionStatement","src":"3516:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3563:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3566:4:29","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3556:6:29"},"nodeType":"YulFunctionCall","src":"3556:15:29"},"nodeType":"YulExpressionStatement","src":"3556:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3587:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3590:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3580:6:29"},"nodeType":"YulFunctionCall","src":"3580:15:29"},"nodeType":"YulExpressionStatement","src":"3580:15:29"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"3474:127:29"},{"body":{"nodeType":"YulBlock","src":"3707:76:29","statements":[{"nodeType":"YulAssignment","src":"3717:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3729:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3740:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3725:3:29"},"nodeType":"YulFunctionCall","src":"3725:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3717:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3759:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3752:6:29"},"nodeType":"YulFunctionCall","src":"3752:25:29"},"nodeType":"YulExpressionStatement","src":"3752:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3676:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3687:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3698:4:29","type":""}],"src":"3606:177:29"},{"body":{"nodeType":"YulBlock","src":"3889:76:29","statements":[{"nodeType":"YulAssignment","src":"3899:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3911:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3922:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3907:3:29"},"nodeType":"YulFunctionCall","src":"3907:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3899:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3941:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3952:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3934:6:29"},"nodeType":"YulFunctionCall","src":"3934:25:29"},"nodeType":"YulExpressionStatement","src":"3934:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3858:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3869:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3880:4:29","type":""}],"src":"3788:177:29"},{"body":{"nodeType":"YulBlock","src":"4151:217:29","statements":[{"nodeType":"YulAssignment","src":"4161:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4173:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4184:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4169:3:29"},"nodeType":"YulFunctionCall","src":"4169:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4161:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4204:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"4215:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4197:6:29"},"nodeType":"YulFunctionCall","src":"4197:25:29"},"nodeType":"YulExpressionStatement","src":"4197:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4242:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4253:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4238:3:29"},"nodeType":"YulFunctionCall","src":"4238:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4262:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4270:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4258:3:29"},"nodeType":"YulFunctionCall","src":"4258:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4231:6:29"},"nodeType":"YulFunctionCall","src":"4231:45:29"},"nodeType":"YulExpressionStatement","src":"4231:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4307:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4292:3:29"},"nodeType":"YulFunctionCall","src":"4292:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"4312:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4285:6:29"},"nodeType":"YulFunctionCall","src":"4285:34:29"},"nodeType":"YulExpressionStatement","src":"4285:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4339:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:29"},"nodeType":"YulFunctionCall","src":"4335:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"4355:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4328:6:29"},"nodeType":"YulFunctionCall","src":"4328:34:29"},"nodeType":"YulExpressionStatement","src":"4328:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4096:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4107:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4115:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4123:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4131:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4142:4:29","type":""}],"src":"3970:398:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256t_array$_t_uint8_$dyn_memory_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n let _1 := 32\n value1 := calldataload(add(headStart, _1))\n let offset := calldataload(add(headStart, 64))\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _4)\n dst := add(memPtr, _1)\n let srcEnd := add(add(_3, _5), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, abi_decode_uint8(src))\n dst := add(dst, _1)\n }\n value2 := memPtr\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _2) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_stringliteral_53e8686c8e94e04d6fef991c2e47e9c44f35ca32d35fd5ce6bacfff7edd748be__to_t_address_t_uint256_t_array$_t_uint8_$dyn_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n let pos_1 := add(pos, 52)\n let length := mload(value2)\n pos_1 := pos_1\n let _1 := 0x20\n let srcPtr := add(value2, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, and(mload(srcPtr), 0xff))\n pos_1 := add(pos_1, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(pos_1, \"0xf1dD71895e49b1563693969de50898\")\n mstore(add(pos_1, _1), \"197cDF3481\")\n end := add(pos_1, 42)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x38FB7D8B EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x39C JUMP JUMPDEST PUSH2 0x69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCD DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x84 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1C SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3C SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x113 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP7 SWAP4 SWAP3 POP POP PUSH2 0x11F SWAP1 POP JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x12F DUP7 DUP7 PUSH2 0x149 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x13F DUP3 DUP3 PUSH2 0x196 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x183 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x175 DUP9 DUP3 DUP6 DUP6 PUSH2 0x258 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x18F JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AA JUMPI PUSH2 0x1AA PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1B3 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI PUSH2 0x1C7 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x1E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1F9 JUMPI PUSH2 0x1F9 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x21F JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x233 JUMPI PUSH2 0x233 PUSH2 0x540 JUMP JUMPDEST SUB PUSH2 0x254 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x216 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x293 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x313 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x31D JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x34E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP10 ADD SWAP2 POP DUP10 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x416 JUMPI PUSH2 0x416 PUSH2 0x327 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH2 0x43B JUMPI PUSH2 0x43B PUSH2 0x327 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD DUP14 DUP5 GT ISZERO PUSH2 0x457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP7 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH2 0x47A JUMPI PUSH2 0x46D DUP7 PUSH2 0x33D JUMP JUMPDEST DUP2 MSTORE SWAP5 DUP7 ADD SWAP5 DUP7 ADD PUSH2 0x45C JUMP JUMPDEST POP SWAP8 POP POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP3 POP DUP1 DUP4 GT ISZERO PUSH2 0x493 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH2 0x4A1 DUP9 DUP3 DUP10 ADD PUSH2 0x353 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP5 PUSH1 0x60 SHL AND DUP2 MSTORE DUP3 PUSH1 0x14 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x34 DUP3 ADD DUP4 MLOAD PUSH1 0x20 DUP1 DUP7 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4FC JUMPI DUP2 MLOAD PUSH1 0xFF AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4DD JUMP JUMPDEST POP POP PUSH32 0x3078663164443731383935653439623135363336393339363964653530383938 DUP4 MSTORE PUSH10 0x31393763444633343831 PUSH1 0xB0 SHL SWAP1 DUP4 ADD MSTORE POP PUSH1 0x2A ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SGT PUSH25 0x24AF166079DF823AF04362858A738D821388548F231F814AE4 0xE5 0xAC 0xCC 0xB3 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"197:571:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;297:469;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2483:32:29;;;2465:51;;2453:2;2438:18;297:469:25;;;;;;;;469:7;488:19;510:150;550:6;558:10;570:8;533:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;510:125;;;;;;1403:34:15;1298:14;1390:48;;;1499:4;1492:25;;;;1597:4;1581:21;;;1222:460;510:150:25;488:172;;671:23;697:30;717:9;;697:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;697:11:25;;:30;-1:-1:-1;;697:19:25;:30;-1:-1:-1;697:30:25:i;:::-;671:56;297:469;-1:-1:-1;;;;;;;;297:469:25:o;3702:255:14:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:14;;3702:255;-1:-1:-1;;;;3702:255:14:o;2129:766::-;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:14;;2811:1;;-1:-1:-1;2815:35:14;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:14;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:14;;;;;3752:25:29;;;3725:18;;7550:46:14;;;;;;;;7479:243;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:14;;;;;3752:25:29;;;3725:18;;7679:32:14;3606:177:29;7613:109:14;7196:532;;:::o;5140:1530::-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:14;;-1:-1:-1;6301:30:14;;-1:-1:-1;6333:1:14;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;4197:25:29;;;4270:4;4258:17;;4238:18;;;4231:45;;;;4292:18;;;4285:34;;;4335:18;;;4328:34;;;6457:24:14;;4169:19:29;;6457:24:14;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:14;;-1:-1:-1;;6457:24:14;;;-1:-1:-1;;;;;;;6495:20:14;;6491:113;;-1:-1:-1;6547:1:14;;-1:-1:-1;6551:29:14;;-1:-1:-1;6547:1:14;;-1:-1:-1;6531:62:14;;6491:113;6622:6;-1:-1:-1;6630:20:14;;-1:-1:-1;6630:20:14;;-1:-1:-1;5140:1530:14;;;;;;;;;:::o;14:127:29:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:156;212:20;;272:4;261:16;;251:27;;241:55;;292:1;289;282:12;241:55;146:156;;;:::o;307:347::-;358:8;368:6;422:3;415:4;407:6;403:17;399:27;389:55;;440:1;437;430:12;389:55;-1:-1:-1;463:20:29;;506:18;495:30;;492:50;;;538:1;535;528:12;492:50;575:4;567:6;563:17;551:29;;627:3;620:4;611:6;603;599:19;595:30;592:39;589:59;;;644:1;641;634:12;589:59;307:347;;;;;:::o;659:1647::-;779:6;787;795;803;811;864:3;852:9;843:7;839:23;835:33;832:53;;;881:1;878;871:12;832:53;907:23;;-1:-1:-1;;;;;959:31:29;;949:42;;939:70;;1005:1;1002;995:12;939:70;1028:5;-1:-1:-1;1052:2:29;1086:18;;;1073:32;;-1:-1:-1;1156:2:29;1141:18;;1128:32;1179:18;1209:14;;;1206:34;;;1236:1;1233;1226:12;1206:34;1274:6;1263:9;1259:22;1249:32;;1319:7;1312:4;1308:2;1304:13;1300:27;1290:55;;1341:1;1338;1331:12;1290:55;1377:2;1364:16;1399:2;1395;1392:10;1389:36;;;1405:18;;:::i;:::-;1451:2;1448:1;1444:10;1483:2;1477:9;1546:2;1542:7;1537:2;1533;1529:11;1525:25;1517:6;1513:38;1601:6;1589:10;1586:22;1581:2;1569:10;1566:18;1563:46;1560:72;;;1612:18;;:::i;:::-;1648:2;1641:22;1698:18;;;1774:11;;;1770:20;;;1732:15;;;1802:19;;;1799:39;;;1834:1;1831;1824:12;1799:39;1858:11;;;;1878:146;1894:6;1889:3;1886:15;1878:146;;;1960:21;1977:3;1960:21;:::i;:::-;1948:34;;1911:12;;;;2002;;1878:146;;;-1:-1:-1;2043:6:29;-1:-1:-1;;;2102:2:29;2087:18;;2074:32;;-1:-1:-1;2118:16:29;;;2115:36;;;2147:1;2144;2137:12;2115:36;;;2186:60;2238:7;2227:8;2216:9;2212:24;2186:60;:::i;:::-;659:1647;;;;-1:-1:-1;659:1647:29;;-1:-1:-1;2265:8:29;;2160:86;659:1647;-1:-1:-1;;;659:1647:29:o;2527:942::-;2896:26;2892:31;2883:6;2879:2;2875:15;2871:53;2866:3;2859:66;2955:6;2950:2;2945:3;2941:12;2934:28;2841:3;2993:2;2988:3;2984:12;3025:6;3019:13;3074:4;3113:2;3105:6;3101:15;3134:1;3144:186;3158:6;3155:1;3152:13;3144:186;;;3225:13;;3240:4;3221:24;3207:39;;3268:14;;;;3305:15;;;;3180:1;3173:9;3144:186;;;-1:-1:-1;;3353:34:29;3339:49;;-1:-1:-1;;;3404:14:29;;;3397:36;-1:-1:-1;3460:2:29;3449:14;;2527:942;-1:-1:-1;;;;;2527:942:29:o;3474:127::-;3535:10;3530:3;3526:20;3523:1;3516:31;3566:4;3563:1;3556:15;3590:4;3587:1;3580:15"},"methodIdentifiers":{"verifyPackSigner(address,uint256,uint8[],bytes)":"38fb7d8b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"packNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"packData\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verifyPackSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/libs/LibPackVerifier.sol\":\"LibPackVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/gamma/libs/LibPackVerifier.sol\":{\"keccak256\":\"0x9c1fdd563895a842665811afaa1612f989f33d87ffc2fddfb926231059512d4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089d5f6d34e0a26c4508cc69389fc9e5e50aaff00afe260d20b6d18884bf3444\",\"dweb:/ipfs/QmPdgwdW3fQdgnLCrsmW65tefrE3evuBUAvD14hZqQ8UJg\"]}},\"version\":1}"}},"contracts/gamma/libs/LibStringUtils.sol":{"LibStringUtils":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6102ce61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033","opcodes":"PUSH2 0x2CE PUSH2 0x3A PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6900A3AE EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x16C JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x185 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 SUB PUSH2 0x8A JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xB4 JUMPI DUP1 PUSH2 0x9E DUP2 PUSH2 0x1E9 JUMP JUMPDEST SWAP2 POP PUSH2 0xAD SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x218 JUMP JUMPDEST SWAP2 POP PUSH2 0x8E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCF JUMPI PUSH2 0xCF PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x164 JUMPI PUSH2 0x10E PUSH1 0x1 DUP4 PUSH2 0x242 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B PUSH1 0xA DUP7 PUSH2 0x25B JUMP JUMPDEST PUSH2 0x126 SWAP1 PUSH1 0x30 PUSH2 0x26F JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x13B JUMPI PUSH2 0x13B PUSH2 0x282 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x15D PUSH1 0xA DUP7 PUSH2 0x218 JUMP JUMPDEST SWAP5 POP PUSH2 0xFD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x196 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1FB JUMPI PUSH2 0x1FB PUSH2 0x1D3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x227 JUMPI PUSH2 0x227 PUSH2 0x202 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x26A JUMPI PUSH2 0x26A PUSH2 0x202 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH24 0x7E20A0452E201D3312DD3A508695794A6A7FC48E20C536FD MSTORE CALL 0x49 0x27 0xC5 0xA9 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"58:647:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;58:647:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@toString_8961":{"entryPoint":99,"id":8961,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":364,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed":{"entryPoint":389,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":623,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":536,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":578,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":489,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":603,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":467,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":514,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":642,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":556,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1930:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:29"},"nodeType":"YulFunctionCall","src":"132:12:29"},"nodeType":"YulExpressionStatement","src":"132:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:29"},"nodeType":"YulFunctionCall","src":"101:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:29"},"nodeType":"YulFunctionCall","src":"97:32:29"},"nodeType":"YulIf","src":"94:52:29"},{"nodeType":"YulAssignment","src":"155:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:29"},"nodeType":"YulFunctionCall","src":"165:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:29","type":""}],"src":"14:180:29"},{"body":{"nodeType":"YulBlock","src":"328:427:29","statements":[{"nodeType":"YulVariableDeclaration","src":"338:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"348:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"342:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"366:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"377:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"359:6:29"},"nodeType":"YulFunctionCall","src":"359:21:29"},"nodeType":"YulExpressionStatement","src":"359:21:29"},{"nodeType":"YulVariableDeclaration","src":"389:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"409:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"403:5:29"},"nodeType":"YulFunctionCall","src":"403:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"393:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"436:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"447:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"432:3:29"},"nodeType":"YulFunctionCall","src":"432:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"425:6:29"},"nodeType":"YulFunctionCall","src":"425:34:29"},"nodeType":"YulExpressionStatement","src":"425:34:29"},{"nodeType":"YulVariableDeclaration","src":"468:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"477:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"472:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"537:90:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"577:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"562:3:29"},"nodeType":"YulFunctionCall","src":"562:17:29"},{"kind":"number","nodeType":"YulLiteral","src":"581:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"558:3:29"},"nodeType":"YulFunctionCall","src":"558:26:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"600:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"608:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"596:3:29"},"nodeType":"YulFunctionCall","src":"596:14:29"},{"name":"_1","nodeType":"YulIdentifier","src":"612:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"592:3:29"},"nodeType":"YulFunctionCall","src":"592:23:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"586:5:29"},"nodeType":"YulFunctionCall","src":"586:30:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"551:6:29"},"nodeType":"YulFunctionCall","src":"551:66:29"},"nodeType":"YulExpressionStatement","src":"551:66:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"498:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"501:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"495:2:29"},"nodeType":"YulFunctionCall","src":"495:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"509:19:29","statements":[{"nodeType":"YulAssignment","src":"511:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"520:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"523:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"516:3:29"},"nodeType":"YulFunctionCall","src":"516:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"511:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"491:3:29","statements":[]},"src":"487:140:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"651:9:29"},{"name":"length","nodeType":"YulIdentifier","src":"662:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"647:3:29"},"nodeType":"YulFunctionCall","src":"647:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"643:3:29"},"nodeType":"YulFunctionCall","src":"643:31:29"},{"kind":"number","nodeType":"YulLiteral","src":"676:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"636:6:29"},"nodeType":"YulFunctionCall","src":"636:42:29"},"nodeType":"YulExpressionStatement","src":"636:42:29"},{"nodeType":"YulAssignment","src":"687:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"703:9:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"722:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"718:3:29"},"nodeType":"YulFunctionCall","src":"718:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"739:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"735:3:29"},"nodeType":"YulFunctionCall","src":"735:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"714:3:29"},"nodeType":"YulFunctionCall","src":"714:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"699:3:29"},"nodeType":"YulFunctionCall","src":"699:45:29"},{"kind":"number","nodeType":"YulLiteral","src":"746:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"695:3:29"},"nodeType":"YulFunctionCall","src":"695:54:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"687:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"297:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"308:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"319:4:29","type":""}],"src":"199:556:29"},{"body":{"nodeType":"YulBlock","src":"792:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"809:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"816:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"821:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"812:3:29"},"nodeType":"YulFunctionCall","src":"812:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"802:6:29"},"nodeType":"YulFunctionCall","src":"802:31:29"},"nodeType":"YulExpressionStatement","src":"802:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"849:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"852:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"842:6:29"},"nodeType":"YulFunctionCall","src":"842:15:29"},"nodeType":"YulExpressionStatement","src":"842:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"873:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"876:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"866:6:29"},"nodeType":"YulFunctionCall","src":"866:15:29"},"nodeType":"YulExpressionStatement","src":"866:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"760:127:29"},{"body":{"nodeType":"YulBlock","src":"939:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"970:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"972:16:29"},"nodeType":"YulFunctionCall","src":"972:18:29"},"nodeType":"YulExpressionStatement","src":"972:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"955:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"966:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"962:3:29"},"nodeType":"YulFunctionCall","src":"962:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"952:2:29"},"nodeType":"YulFunctionCall","src":"952:17:29"},"nodeType":"YulIf","src":"949:43:29"},{"nodeType":"YulAssignment","src":"1001:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1012:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1019:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1008:3:29"},"nodeType":"YulFunctionCall","src":"1008:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1001:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"921:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"931:3:29","type":""}],"src":"892:135:29"},{"body":{"nodeType":"YulBlock","src":"1064:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1088:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1093:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1084:3:29"},"nodeType":"YulFunctionCall","src":"1084:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1074:6:29"},"nodeType":"YulFunctionCall","src":"1074:31:29"},"nodeType":"YulExpressionStatement","src":"1074:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1121:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1124:4:29","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1114:6:29"},"nodeType":"YulFunctionCall","src":"1114:15:29"},"nodeType":"YulExpressionStatement","src":"1114:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1145:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1148:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1138:6:29"},"nodeType":"YulFunctionCall","src":"1138:15:29"},"nodeType":"YulExpressionStatement","src":"1138:15:29"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"1032:127:29"},{"body":{"nodeType":"YulBlock","src":"1210:74:29","statements":[{"body":{"nodeType":"YulBlock","src":"1233:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"1235:16:29"},"nodeType":"YulFunctionCall","src":"1235:18:29"},"nodeType":"YulExpressionStatement","src":"1235:18:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1230:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1223:6:29"},"nodeType":"YulFunctionCall","src":"1223:9:29"},"nodeType":"YulIf","src":"1220:35:29"},{"nodeType":"YulAssignment","src":"1264:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1273:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1276:1:29"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1269:3:29"},"nodeType":"YulFunctionCall","src":"1269:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1264:1:29"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1195:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1198:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1204:1:29","type":""}],"src":"1164:120:29"},{"body":{"nodeType":"YulBlock","src":"1321:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1338:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1345:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1350:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1341:3:29"},"nodeType":"YulFunctionCall","src":"1341:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1331:6:29"},"nodeType":"YulFunctionCall","src":"1331:31:29"},"nodeType":"YulExpressionStatement","src":"1331:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1378:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1381:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1371:6:29"},"nodeType":"YulFunctionCall","src":"1371:15:29"},"nodeType":"YulExpressionStatement","src":"1371:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1402:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1405:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1395:6:29"},"nodeType":"YulFunctionCall","src":"1395:15:29"},"nodeType":"YulExpressionStatement","src":"1395:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1289:127:29"},{"body":{"nodeType":"YulBlock","src":"1470:79:29","statements":[{"nodeType":"YulAssignment","src":"1480:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1492:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1495:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1488:3:29"},"nodeType":"YulFunctionCall","src":"1488:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"1480:4:29"}]},{"body":{"nodeType":"YulBlock","src":"1521:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1523:16:29"},"nodeType":"YulFunctionCall","src":"1523:18:29"},"nodeType":"YulExpressionStatement","src":"1523:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"1512:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"1518:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1509:2:29"},"nodeType":"YulFunctionCall","src":"1509:11:29"},"nodeType":"YulIf","src":"1506:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1452:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1455:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"1461:4:29","type":""}],"src":"1421:128:29"},{"body":{"nodeType":"YulBlock","src":"1592:74:29","statements":[{"body":{"nodeType":"YulBlock","src":"1615:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"1617:16:29"},"nodeType":"YulFunctionCall","src":"1617:18:29"},"nodeType":"YulExpressionStatement","src":"1617:18:29"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1612:1:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1605:6:29"},"nodeType":"YulFunctionCall","src":"1605:9:29"},"nodeType":"YulIf","src":"1602:35:29"},{"nodeType":"YulAssignment","src":"1646:14:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1655:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1658:1:29"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1651:3:29"},"nodeType":"YulFunctionCall","src":"1651:9:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"1646:1:29"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1577:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1580:1:29","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"1586:1:29","type":""}],"src":"1554:112:29"},{"body":{"nodeType":"YulBlock","src":"1719:77:29","statements":[{"nodeType":"YulAssignment","src":"1729:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1740:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"1743:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1736:3:29"},"nodeType":"YulFunctionCall","src":"1736:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1729:3:29"}]},{"body":{"nodeType":"YulBlock","src":"1768:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1770:16:29"},"nodeType":"YulFunctionCall","src":"1770:18:29"},"nodeType":"YulExpressionStatement","src":"1770:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1760:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"1763:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1757:2:29"},"nodeType":"YulFunctionCall","src":"1757:10:29"},"nodeType":"YulIf","src":"1754:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1702:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"1705:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1711:3:29","type":""}],"src":"1671:125:29"},{"body":{"nodeType":"YulBlock","src":"1833:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1850:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1862:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1853:3:29"},"nodeType":"YulFunctionCall","src":"1853:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1843:6:29"},"nodeType":"YulFunctionCall","src":"1843:31:29"},"nodeType":"YulExpressionStatement","src":"1843:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1890:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1893:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1883:6:29"},"nodeType":"YulFunctionCall","src":"1883:15:29"},"nodeType":"YulExpressionStatement","src":"1883:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1914:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1907:6:29"},"nodeType":"YulFunctionCall","src":"1907:15:29"},"nodeType":"YulExpressionStatement","src":"1907:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"1801:127:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6900A3AE EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x16C JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x185 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 SUB PUSH2 0x8A JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xB4 JUMPI DUP1 PUSH2 0x9E DUP2 PUSH2 0x1E9 JUMP JUMPDEST SWAP2 POP PUSH2 0xAD SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x218 JUMP JUMPDEST SWAP2 POP PUSH2 0x8E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCF JUMPI PUSH2 0xCF PUSH2 0x22C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF9 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x164 JUMPI PUSH2 0x10E PUSH1 0x1 DUP4 PUSH2 0x242 JUMP JUMPDEST SWAP2 POP PUSH2 0x11B PUSH1 0xA DUP7 PUSH2 0x25B JUMP JUMPDEST PUSH2 0x126 SWAP1 PUSH1 0x30 PUSH2 0x26F JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x13B JUMPI PUSH2 0x13B PUSH2 0x282 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x15D PUSH1 0xA DUP7 PUSH2 0x218 JUMP JUMPDEST SWAP5 POP PUSH2 0xFD JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x196 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1FB JUMPI PUSH2 0x1FB PUSH2 0x1D3 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x227 JUMPI PUSH2 0x227 PUSH2 0x202 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x26A JUMPI PUSH2 0x26A PUSH2 0x202 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x255 JUMPI PUSH2 0x255 PUSH2 0x1D3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 PUSH24 0x7E20A0452E201D3312DD3A508695794A6A7FC48E20C536FD MSTORE CALL 0x49 0x27 0xC5 0xA9 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"58:647:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;254:448;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;308:13;334:5;343:1;334:10;330:43;;-1:-1:-1;;356:10:26;;;;;;;;;;;;-1:-1:-1;;;356:10:26;;;;;254:448::o;330:43::-;393:5;378:12;424:63;431:9;;424:63;;452:8;;;;:::i;:::-;;-1:-1:-1;470:10:26;;-1:-1:-1;478:2:26;470:10;;:::i;:::-;;;424:63;;;492:19;524:6;514:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;514:17:26;;492:39;;537:134;544:10;;537:134;;566:11;576:1;566:11;;:::i;:::-;;-1:-1:-1;630:10:26;638:2;630:5;:10;:::i;:::-;617:24;;:2;:24;:::i;:::-;604:39;;587:6;594;587:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;587:56:26;;;;;;;;-1:-1:-1;653:11:26;662:2;653:11;;:::i;:::-;;;537:134;;;690:6;254:448;-1:-1:-1;;;;254:448:26:o;14:180:29:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:29;;14:180;-1:-1:-1;14:180:29:o;199:556::-;319:4;348:2;377;366:9;359:21;409:6;403:13;452:6;447:2;436:9;432:18;425:34;477:1;487:140;501:6;498:1;495:13;487:140;;;596:14;;;592:23;;586:30;562:17;;;581:2;558:26;551:66;516:10;;487:140;;;491:3;676:1;671:2;662:6;651:9;647:22;643:31;636:42;746:2;739;735:7;730:2;722:6;718:15;714:29;703:9;699:45;695:54;687:62;;;;199:556;;;;:::o;760:127::-;821:10;816:3;812:20;809:1;802:31;852:4;849:1;842:15;876:4;873:1;866:15;892:135;931:3;952:17;;;949:43;;972:18;;:::i;:::-;-1:-1:-1;1019:1:29;1008:13;;892:135::o;1032:127::-;1093:10;1088:3;1084:20;1081:1;1074:31;1124:4;1121:1;1114:15;1148:4;1145:1;1138:15;1164:120;1204:1;1230;1220:35;;1235:18;;:::i;:::-;-1:-1:-1;1269:9:29;;1164:120::o;1289:127::-;1350:10;1345:3;1341:20;1338:1;1331:31;1381:4;1378:1;1371:15;1405:4;1402:1;1395:15;1421:128;1488:9;;;1509:11;;;1506:37;;;1523:18;;:::i;:::-;1421:128;;;;:::o;1554:112::-;1586:1;1612;1602:35;;1617:18;;:::i;:::-;-1:-1:-1;1651:9:29;;1554:112::o;1671:125::-;1736:9;;;1757:10;;;1754:36;;;1770:18;;:::i;1801:127::-;1862:10;1857:3;1853:20;1850:1;1843:31;1893:4;1890:1;1883:15;1917:4;1914:1;1907:15"},"methodIdentifiers":{"toString(uint256)":"6900a3ae"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/gamma/libs/LibStringUtils.sol\":\"LibStringUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/gamma/libs/LibStringUtils.sol\":{\"keccak256\":\"0xba4eb973b00fd067774025a9be36b6200c934abcd573598e74ca6a63d42cc71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e98265d2dbaa319bb8f83296726b96b7808e9736a3f32407e216b9215b6ac965\",\"dweb:/ipfs/QmfX4MKNCy3XmMewLcY7HwYFizTSLDcGVLEJ54LLvyuvft\"]}},\"version\":1}"}},"contracts/testDai/TestDAI.v3.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"AccessControlMixin":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610736806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x736 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD6 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x167 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH2 0xFE PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x676 JUMP JUMPDEST PUSH2 0x274 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0xB0 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH2 0xD6 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x183 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x1EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x345 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x3F7 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28F SWAP1 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2E0 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x35D SWAP1 DUP3 PUSH2 0x42F JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3B6 SWAP1 DUP3 PUSH2 0x444 JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x28C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x52E JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4CC JUMPI PUSH2 0x4CC PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x526 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x28F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 PUSH2 0x552 PUSH1 0x1 DUP4 PUSH2 0x6C4 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x566 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x6C4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x57F JUMPI PUSH2 0x57F PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH2 0x698 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x5B9 DUP4 PUSH1 0x1 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x5DB JUMPI PUSH2 0x5DB PUSH2 0x6EA JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 JUMPDEST 0xE5 GASLIMIT PUSH11 0x96593C6EDD3802A275E3DD PUSH24 0x56D3A52B4A74C13DEA4ACD9B77592864736F6C6343000814 STOP CALLER ","sourceMap":"41320:385:27:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_10446":{"entryPoint":null,"id":10446,"parameterSlots":0,"returnSlots":0},"@_add_10050":{"entryPoint":1247,"id":10050,"parameterSlots":2,"returnSlots":1},"@_at_10190":{"entryPoint":1113,"id":10190,"parameterSlots":2,"returnSlots":1},"@_contains_10150":{"entryPoint":null,"id":10150,"parameterSlots":2,"returnSlots":1},"@_grantRole_10678":{"entryPoint":837,"id":10678,"parameterSlots":2,"returnSlots":0},"@_length_10164":{"entryPoint":null,"id":10164,"parameterSlots":1,"returnSlots":1},"@_msgSender_8979":{"entryPoint":null,"id":8979,"parameterSlots":0,"returnSlots":1},"@_remove_10131":{"entryPoint":1326,"id":10131,"parameterSlots":2,"returnSlots":1},"@_revokeRole_10702":{"entryPoint":926,"id":10702,"parameterSlots":2,"returnSlots":0},"@add_10221":{"entryPoint":1071,"id":10221,"parameterSlots":2,"returnSlots":1},"@at_10317":{"entryPoint":1015,"id":10317,"parameterSlots":2,"returnSlots":1},"@contains_10275":{"entryPoint":1027,"id":10275,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_10541":{"entryPoint":null,"id":10541,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_10508":{"entryPoint":685,"id":10508,"parameterSlots":1,"returnSlots":1},"@getRoleMember_10527":{"entryPoint":628,"id":10527,"parameterSlots":2,"returnSlots":1},"@grantRole_10567":{"entryPoint":359,"id":10567,"parameterSlots":2,"returnSlots":0},"@hasRole_10492":{"entryPoint":661,"id":10492,"parameterSlots":2,"returnSlots":1},"@length_10290":{"entryPoint":1061,"id":10290,"parameterSlots":1,"returnSlots":1},"@remove_10248":{"entryPoint":1092,"id":10248,"parameterSlots":2,"returnSlots":1},"@renounceRole_10615":{"entryPoint":506,"id":10615,"parameterSlots":2,"returnSlots":0},"@revokeRole_10593":{"entryPoint":708,"id":10593,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_bytes32":{"entryPoint":1569,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":1594,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":1654,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1751,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":1732,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":1710,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":1770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":1688,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3883:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:29"},"nodeType":"YulFunctionCall","src":"132:12:29"},"nodeType":"YulExpressionStatement","src":"132:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:29"},"nodeType":"YulFunctionCall","src":"101:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:29"},"nodeType":"YulFunctionCall","src":"97:32:29"},"nodeType":"YulIf","src":"94:52:29"},{"nodeType":"YulAssignment","src":"155:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:29"},"nodeType":"YulFunctionCall","src":"165:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:29","type":""}],"src":"14:180:29"},{"body":{"nodeType":"YulBlock","src":"300:76:29","statements":[{"nodeType":"YulAssignment","src":"310:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:29"},"nodeType":"YulFunctionCall","src":"318:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"363:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:29"},"nodeType":"YulFunctionCall","src":"345:25:29"},"nodeType":"YulExpressionStatement","src":"345:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:29","type":""}],"src":"199:177:29"},{"body":{"nodeType":"YulBlock","src":"468:267:29","statements":[{"body":{"nodeType":"YulBlock","src":"514:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"523:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"526:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"516:6:29"},"nodeType":"YulFunctionCall","src":"516:12:29"},"nodeType":"YulExpressionStatement","src":"516:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"489:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"485:3:29"},"nodeType":"YulFunctionCall","src":"485:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"510:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"481:3:29"},"nodeType":"YulFunctionCall","src":"481:32:29"},"nodeType":"YulIf","src":"478:52:29"},{"nodeType":"YulAssignment","src":"539:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"562:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"549:12:29"},"nodeType":"YulFunctionCall","src":"549:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"539:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"581:45:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"622:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"607:3:29"},"nodeType":"YulFunctionCall","src":"607:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"594:12:29"},"nodeType":"YulFunctionCall","src":"594:32:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"585:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"689:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"698:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"701:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"691:6:29"},"nodeType":"YulFunctionCall","src":"691:12:29"},"nodeType":"YulExpressionStatement","src":"691:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"648:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"674:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"679:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"670:3:29"},"nodeType":"YulFunctionCall","src":"670:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"683:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"666:3:29"},"nodeType":"YulFunctionCall","src":"666:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"655:3:29"},"nodeType":"YulFunctionCall","src":"655:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"645:2:29"},"nodeType":"YulFunctionCall","src":"645:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"638:6:29"},"nodeType":"YulFunctionCall","src":"638:50:29"},"nodeType":"YulIf","src":"635:70:29"},{"nodeType":"YulAssignment","src":"714:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"724:5:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"714:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"426:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"437:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"449:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"457:6:29","type":""}],"src":"381:354:29"},{"body":{"nodeType":"YulBlock","src":"827:161:29","statements":[{"body":{"nodeType":"YulBlock","src":"873:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"882:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"885:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"875:6:29"},"nodeType":"YulFunctionCall","src":"875:12:29"},"nodeType":"YulExpressionStatement","src":"875:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"848:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"857:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"844:3:29"},"nodeType":"YulFunctionCall","src":"844:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"869:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"840:3:29"},"nodeType":"YulFunctionCall","src":"840:32:29"},"nodeType":"YulIf","src":"837:52:29"},{"nodeType":"YulAssignment","src":"898:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"921:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"908:12:29"},"nodeType":"YulFunctionCall","src":"908:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"898:6:29"}]},{"nodeType":"YulAssignment","src":"940:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"967:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"978:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:29"},"nodeType":"YulFunctionCall","src":"963:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"950:12:29"},"nodeType":"YulFunctionCall","src":"950:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"940:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"785:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"796:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"808:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"816:6:29","type":""}],"src":"740:248:29"},{"body":{"nodeType":"YulBlock","src":"1094:102:29","statements":[{"nodeType":"YulAssignment","src":"1104:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1116:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1127:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1112:3:29"},"nodeType":"YulFunctionCall","src":"1112:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1104:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1146:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1177:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1182:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1173:3:29"},"nodeType":"YulFunctionCall","src":"1173:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1186:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1169:3:29"},"nodeType":"YulFunctionCall","src":"1169:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1157:3:29"},"nodeType":"YulFunctionCall","src":"1157:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1139:6:29"},"nodeType":"YulFunctionCall","src":"1139:51:29"},"nodeType":"YulExpressionStatement","src":"1139:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1063:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1074:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1085:4:29","type":""}],"src":"993:203:29"},{"body":{"nodeType":"YulBlock","src":"1296:92:29","statements":[{"nodeType":"YulAssignment","src":"1306:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1318:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1329:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1314:3:29"},"nodeType":"YulFunctionCall","src":"1314:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1306:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1373:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1366:6:29"},"nodeType":"YulFunctionCall","src":"1366:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1359:6:29"},"nodeType":"YulFunctionCall","src":"1359:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1341:6:29"},"nodeType":"YulFunctionCall","src":"1341:41:29"},"nodeType":"YulExpressionStatement","src":"1341:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1265:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1276:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1287:4:29","type":""}],"src":"1201:187:29"},{"body":{"nodeType":"YulBlock","src":"1494:76:29","statements":[{"nodeType":"YulAssignment","src":"1504:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1516:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1527:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1512:3:29"},"nodeType":"YulFunctionCall","src":"1512:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1504:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1546:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"1557:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1539:6:29"},"nodeType":"YulFunctionCall","src":"1539:25:29"},"nodeType":"YulExpressionStatement","src":"1539:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1463:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1474:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1485:4:29","type":""}],"src":"1393:177:29"},{"body":{"nodeType":"YulBlock","src":"1749:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1766:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1777:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1759:6:29"},"nodeType":"YulFunctionCall","src":"1759:21:29"},"nodeType":"YulExpressionStatement","src":"1759:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1800:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1811:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1796:3:29"},"nodeType":"YulFunctionCall","src":"1796:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"1816:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1789:6:29"},"nodeType":"YulFunctionCall","src":"1789:30:29"},"nodeType":"YulExpressionStatement","src":"1789:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1839:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1850:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1835:3:29"},"nodeType":"YulFunctionCall","src":"1835:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"1855:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1828:6:29"},"nodeType":"YulFunctionCall","src":"1828:62:29"},"nodeType":"YulExpressionStatement","src":"1828:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1910:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1921:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1906:3:29"},"nodeType":"YulFunctionCall","src":"1906:18:29"},{"hexValue":"2061646d696e20746f206772616e74","kind":"string","nodeType":"YulLiteral","src":"1926:17:29","type":"","value":" admin to grant"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1899:6:29"},"nodeType":"YulFunctionCall","src":"1899:45:29"},"nodeType":"YulExpressionStatement","src":"1899:45:29"},{"nodeType":"YulAssignment","src":"1953:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1965:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1976:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1961:3:29"},"nodeType":"YulFunctionCall","src":"1961:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1953:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1726:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1740:4:29","type":""}],"src":"1575:411:29"},{"body":{"nodeType":"YulBlock","src":"2165:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2182:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2193:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2175:6:29"},"nodeType":"YulFunctionCall","src":"2175:21:29"},"nodeType":"YulExpressionStatement","src":"2175:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2227:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:29"},"nodeType":"YulFunctionCall","src":"2212:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2232:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2205:6:29"},"nodeType":"YulFunctionCall","src":"2205:30:29"},"nodeType":"YulExpressionStatement","src":"2205:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2266:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2251:3:29"},"nodeType":"YulFunctionCall","src":"2251:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"2271:34:29","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2244:6:29"},"nodeType":"YulFunctionCall","src":"2244:62:29"},"nodeType":"YulExpressionStatement","src":"2244:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2326:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2337:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2322:3:29"},"nodeType":"YulFunctionCall","src":"2322:18:29"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"2342:17:29","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2315:6:29"},"nodeType":"YulFunctionCall","src":"2315:45:29"},"nodeType":"YulExpressionStatement","src":"2315:45:29"},{"nodeType":"YulAssignment","src":"2369:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2381:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2392:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2377:3:29"},"nodeType":"YulFunctionCall","src":"2377:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2369:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2142:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2156:4:29","type":""}],"src":"1991:411:29"},{"body":{"nodeType":"YulBlock","src":"2581:238:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2598:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2609:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2591:6:29"},"nodeType":"YulFunctionCall","src":"2591:21:29"},"nodeType":"YulExpressionStatement","src":"2591:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2632:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2643:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2628:3:29"},"nodeType":"YulFunctionCall","src":"2628:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2648:2:29","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2621:6:29"},"nodeType":"YulFunctionCall","src":"2621:30:29"},"nodeType":"YulExpressionStatement","src":"2621:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2671:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2682:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2667:3:29"},"nodeType":"YulFunctionCall","src":"2667:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"2687:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2660:6:29"},"nodeType":"YulFunctionCall","src":"2660:62:29"},"nodeType":"YulExpressionStatement","src":"2660:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2742:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2753:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2738:3:29"},"nodeType":"YulFunctionCall","src":"2738:18:29"},{"hexValue":"2061646d696e20746f207265766f6b65","kind":"string","nodeType":"YulLiteral","src":"2758:18:29","type":"","value":" admin to revoke"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2731:6:29"},"nodeType":"YulFunctionCall","src":"2731:46:29"},"nodeType":"YulExpressionStatement","src":"2731:46:29"},{"nodeType":"YulAssignment","src":"2786:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2798:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2809:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2794:3:29"},"nodeType":"YulFunctionCall","src":"2794:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2786:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2558:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2572:4:29","type":""}],"src":"2407:412:29"},{"body":{"nodeType":"YulBlock","src":"2998:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3015:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3026:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3008:6:29"},"nodeType":"YulFunctionCall","src":"3008:21:29"},"nodeType":"YulExpressionStatement","src":"3008:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3049:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3060:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3045:3:29"},"nodeType":"YulFunctionCall","src":"3045:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3065:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3038:6:29"},"nodeType":"YulFunctionCall","src":"3038:30:29"},"nodeType":"YulExpressionStatement","src":"3038:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3088:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3099:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3084:3:29"},"nodeType":"YulFunctionCall","src":"3084:18:29"},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e","kind":"string","nodeType":"YulLiteral","src":"3104:34:29","type":"","value":"EnumerableSet: index out of boun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3077:6:29"},"nodeType":"YulFunctionCall","src":"3077:62:29"},"nodeType":"YulExpressionStatement","src":"3077:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3159:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3170:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3155:3:29"},"nodeType":"YulFunctionCall","src":"3155:18:29"},{"hexValue":"6473","kind":"string","nodeType":"YulLiteral","src":"3175:4:29","type":"","value":"ds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3148:6:29"},"nodeType":"YulFunctionCall","src":"3148:32:29"},"nodeType":"YulExpressionStatement","src":"3148:32:29"},{"nodeType":"YulAssignment","src":"3189:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3201:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3212:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3197:3:29"},"nodeType":"YulFunctionCall","src":"3197:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3189:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2975:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2989:4:29","type":""}],"src":"2824:398:29"},{"body":{"nodeType":"YulBlock","src":"3259:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3276:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3283:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3288:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3279:3:29"},"nodeType":"YulFunctionCall","src":"3279:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3269:6:29"},"nodeType":"YulFunctionCall","src":"3269:31:29"},"nodeType":"YulExpressionStatement","src":"3269:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3316:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3319:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3309:6:29"},"nodeType":"YulFunctionCall","src":"3309:15:29"},"nodeType":"YulExpressionStatement","src":"3309:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3340:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3343:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3333:6:29"},"nodeType":"YulFunctionCall","src":"3333:15:29"},"nodeType":"YulExpressionStatement","src":"3333:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"3227:127:29"},{"body":{"nodeType":"YulBlock","src":"3391:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3408:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3415:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3420:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3411:3:29"},"nodeType":"YulFunctionCall","src":"3411:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3401:6:29"},"nodeType":"YulFunctionCall","src":"3401:31:29"},"nodeType":"YulExpressionStatement","src":"3401:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3448:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3451:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3441:6:29"},"nodeType":"YulFunctionCall","src":"3441:15:29"},"nodeType":"YulExpressionStatement","src":"3441:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3472:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3475:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3465:6:29"},"nodeType":"YulFunctionCall","src":"3465:15:29"},"nodeType":"YulExpressionStatement","src":"3465:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3359:127:29"},{"body":{"nodeType":"YulBlock","src":"3540:79:29","statements":[{"nodeType":"YulAssignment","src":"3550:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3562:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"3565:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3558:3:29"},"nodeType":"YulFunctionCall","src":"3558:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"3550:4:29"}]},{"body":{"nodeType":"YulBlock","src":"3591:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3593:16:29"},"nodeType":"YulFunctionCall","src":"3593:18:29"},"nodeType":"YulExpressionStatement","src":"3593:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"3582:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"3588:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3579:2:29"},"nodeType":"YulFunctionCall","src":"3579:11:29"},"nodeType":"YulIf","src":"3576:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3522:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"3525:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"3531:4:29","type":""}],"src":"3491:128:29"},{"body":{"nodeType":"YulBlock","src":"3672:77:29","statements":[{"nodeType":"YulAssignment","src":"3682:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3693:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"3696:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3689:3:29"},"nodeType":"YulFunctionCall","src":"3689:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3682:3:29"}]},{"body":{"nodeType":"YulBlock","src":"3721:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3723:16:29"},"nodeType":"YulFunctionCall","src":"3723:18:29"},"nodeType":"YulExpressionStatement","src":"3723:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3713:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"3716:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3710:2:29"},"nodeType":"YulFunctionCall","src":"3710:10:29"},"nodeType":"YulIf","src":"3707:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3655:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"3658:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3664:3:29","type":""}],"src":"3624:125:29"},{"body":{"nodeType":"YulBlock","src":"3786:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3810:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3815:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3806:3:29"},"nodeType":"YulFunctionCall","src":"3806:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3796:6:29"},"nodeType":"YulFunctionCall","src":"3796:31:29"},"nodeType":"YulExpressionStatement","src":"3796:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3843:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3846:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:29"},"nodeType":"YulFunctionCall","src":"3836:15:29"},"nodeType":"YulExpressionStatement","src":"3836:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3867:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3870:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3860:6:29"},"nodeType":"YulFunctionCall","src":"3860:15:29"},"nodeType":"YulExpressionStatement","src":"3860:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"3754:127:29"}]},"contents":"{\n { }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to grant\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to revoke\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"EnumerableSet: index out of boun\")\n mstore(add(headStart, 96), \"ds\")\n tail := add(headStart, 128)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x91D14854 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x139 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD6 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x167 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0xE6 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x1FA JUMP JUMPDEST PUSH2 0xFE PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x676 JUMP JUMPDEST PUSH2 0x274 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0xB0 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0xB0 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x621 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH2 0xD6 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x63A JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x183 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x1EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x345 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH2 0x1F6 DUP3 DUP3 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x3F7 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28C SWAP1 DUP4 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x28F SWAP1 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x2E0 SWAP1 CALLER PUSH2 0x295 JUMP JUMPDEST PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x35D SWAP1 DUP3 PUSH2 0x42F JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x3B6 SWAP1 DUP3 PUSH2 0x444 JUMP JUMPDEST ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x40 MLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP5 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x28C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x4DF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x52E JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1E3 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4CC JUMPI PUSH2 0x4CC PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x526 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x28F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 PUSH2 0x552 PUSH1 0x1 DUP4 PUSH2 0x6C4 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x566 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x6C4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x57F JUMPI PUSH2 0x57F PUSH2 0x698 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x5A2 JUMPI PUSH2 0x5A2 PUSH2 0x698 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x5B9 DUP4 PUSH1 0x1 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x5DB JUMPI PUSH2 0x5DB PUSH2 0x6EA JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x28F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x633 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x66B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x689 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x6AE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 JUMPDEST 0xE5 GASLIMIT PUSH11 0x96593C6EDD3802A275E3DD PUSH24 0x56D3A52B4A74C13DEA4ACD9B77592864736F6C6343000814 STOP CALLER ","sourceMap":"41320:385:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38118:112;;;;;;:::i;:::-;38175:7;38201:12;;;;;;;;;;:22;;;;38118:112;;;;345:25:29;;;333:2;318:18;38118:112:27;;;;;;;;38480:223;;;;;;:::i;:::-;;:::i;:::-;;39654:205;;;;;;:::i;:::-;;:::i;37801:136::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1157:32:29;;;1139:51;;1127:2;1112:18;37801:136:27;993:203:29;36798:137:27;;;;;;:::i;:::-;;:::i;:::-;;;1366:14:29;;1359:22;1341:41;;1329:2;1314:18;36798:137:27;1201:187:29;35575:49:27;;35620:4;35575:49;;37103:125;;;;;;:::i;:::-;;:::i;38937:226::-;;;;;;:::i;:::-;;:::i;38480:223::-;38571:6;:12;;;;;;;;;;:22;;;38563:45;;693:10;36798:137;:::i;38563:45::-;38555:105;;;;-1:-1:-1;;;38555:105:27;;1777:2:29;38555:105:27;;;1759:21:29;1816:2;1796:18;;;1789:30;1855:34;1835:18;;;1828:62;-1:-1:-1;;;1906:18:29;;;1899:45;1961:19;;38555:105:27;;;;;;;;;38671:25;38682:4;38688:7;38671:10;:25::i;:::-;38480:223;;:::o;39654:205::-;-1:-1:-1;;;;;39740:23:27;;693:10;39740:23;39732:83;;;;-1:-1:-1;;;39732:83:27;;2193:2:29;39732:83:27;;;2175:21:29;2232:2;2212:18;;;2205:30;2271:34;2251:18;;;2244:62;-1:-1:-1;;;2322:18:29;;;2315:45;2377:19;;39732:83:27;1991:411:29;39732:83:27;39826:26;39838:4;39844:7;39826:11;:26::i;37801:136::-;37874:7;37900:12;;;;;;;;;;:30;;37924:5;37900:23;:30::i;:::-;37893:37;;37801:136;;;;;:::o;36798:137::-;36867:4;36890:12;;;;;;;;;;:38;;36920:7;36890:29;:38::i;37103:125::-;37166:7;37192:12;;;;;;;;;;:29;;:27;:29::i;38937:226::-;39029:6;:12;;;;;;;;;;:22;;;39021:45;;693:10;36798:137;:::i;39021:45::-;39013:106;;;;-1:-1:-1;;;39013:106:27;;2609:2:29;39013:106:27;;;2591:21:29;2648:2;2628:18;;;2621:30;2687:34;2667:18;;;2660:62;-1:-1:-1;;;2738:18:29;;;2731:46;2794:19;;39013:106:27;2407:412:29;40861:184:27;40934:6;:12;;;;;;;;;;:33;;40959:7;40934:24;:33::i;:::-;40930:109;;;40988:40;;693:10;;-1:-1:-1;;;;;40988:40:27;;;41000:4;;40988:40;;;;;40861:184;;:::o;41051:188::-;41125:6;:12;;;;;;;;;;:36;;41153:7;41125:27;:36::i;:::-;41121:112;;;41182:40;;693:10;;-1:-1:-1;;;;;41182:40:27;;;41194:4;;41182:40;;;;;41051:188;;:::o;32212:156::-;32286:7;32336:22;32340:3;32352:5;32336:3;:22::i;31519:165::-;-1:-1:-1;;;;;31652:23:27;;31599:4;29972:19;;;:12;;;:19;;;;;;:24;;31622:55;29876:127;31765:115;31828:7;31854:19;31862:3;30166:18;;30084:107;30964:150;31034:4;31057:50;31062:3;-1:-1:-1;;;;;31082:23:27;;31057:4;:50::i;31282:156::-;31355:4;31378:53;31386:3;-1:-1:-1;;;;;31406:23:27;;31378:7;:53::i;30523:201::-;30617:18;;30590:7;;30617:26;-1:-1:-1;30609:73:27;;;;-1:-1:-1;;;30609:73:27;;3026:2:29;30609:73:27;;;3008:21:29;3065:2;3045:18;;;3038:30;3104:34;3084:18;;;3077:62;-1:-1:-1;;;3155:18:29;;;3148:32;3197:19;;30609:73:27;2824:398:29;30609:73:27;30699:3;:11;;30711:5;30699:18;;;;;;;;:::i;:::-;;;;;;;;;30692:25;;30523:201;;;;:::o;27711:404::-;27774:4;29972:19;;;:12;;;:19;;;;;;27790:319;;-1:-1:-1;27832:23:27;;;;;;;;:11;:23;;;;;;;;;;;;;28012:18;;27990:19;;;:12;;;:19;;;;;;:40;;;;28044:11;;27790:319;-1:-1:-1;28093:5:27;28086:12;;28283:1512;28349:4;28486:19;;;:12;;;:19;;;;;;28520:15;;28516:1273;;28877:21;28901:14;28914:1;28901:10;:14;:::i;:::-;28949:18;;28877:38;;-1:-1:-1;28929:17:27;;28949:22;;28970:1;;28949:22;:::i;:::-;28929:42;;29211:17;29231:3;:11;;29243:9;29231:22;;;;;;;;:::i;:::-;;;;;;;;;29211:42;;29374:9;29345:3;:11;;29357:13;29345:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;29475:17;:13;29491:1;29475:17;:::i;:::-;29449:23;;;;:12;;;:23;;;;;:43;29598:17;;29449:3;;29598:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29690:3;:12;;:19;29703:5;29690:19;;;;;;;;;;;29683:26;;;29731:4;29724:11;;;;;;;;28516:1273;29773:5;29766:12;;;;;14:180:29;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:29;;14:180;-1:-1:-1;14:180:29:o;381:354::-;449:6;457;510:2;498:9;489:7;485:23;481:32;478:52;;;526:1;523;516:12;478:52;549:23;;;-1:-1:-1;622:2:29;607:18;;594:32;-1:-1:-1;;;;;655:31:29;;645:42;;635:70;;701:1;698;691:12;635:70;724:5;714:15;;;381:354;;;;;:::o;740:248::-;808:6;816;869:2;857:9;848:7;844:23;840:32;837:52;;;885:1;882;875:12;837:52;-1:-1:-1;;908:23:29;;;978:2;963:18;;;950:32;;-1:-1:-1;740:248:29:o;3227:127::-;3288:10;3283:3;3279:20;3276:1;3269:31;3319:4;3316:1;3309:15;3343:4;3340:1;3333:15;3359:127;3420:10;3415:3;3411:20;3408:1;3401:31;3451:4;3448:1;3441:15;3475:4;3472:1;3465:15;3491:128;3558:9;;;3579:11;;;3576:37;;;3593:18;;:::i;3624:125::-;3689:9;;;3710:10;;;3707:36;;;3723:18;;:::i;3754:127::-;3815:10;3810:3;3806:20;3803:1;3796:31;3846:4;3843:1;3836:15;3870:4;3867:1;3860:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"AccessControlMixin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA PREVRANDAO SELFDESTRUCT KECCAK256 DUP10 0xCB 0xDF STATICCALL 0xE4 PUSH31 0xCEB71E52DEB302B976ABFE56E47FE5E9436AD0B91D5664736F6C6343000814 STOP CALLER ","sourceMap":"9077:5688:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;9077:5688:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA PREVRANDAO SELFDESTRUCT KECCAK256 DUP10 0xCB 0xDF STATICCALL 0xE4 PUSH31 0xCEB71E52DEB302B976ABFE56E47FE5E9436AD0B91D5664736F6C6343000814 STOP CALLER ","sourceMap":"9077:5688:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"ChainConstants":{"abi":[{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610186806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x186 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB54817C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x89 SWAP2 SWAP1 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x89 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x89 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xFA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x149 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xD8 0xED 0xEC 0xAF BYTE ADD 0x24 0xF9 SWAP16 0xEB 0xD4 0xE SWAP6 PUSH23 0x9DED7AEC8D6345C33BFC4711B57E0822F64736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"47280:290:27:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CHILD_CHAIN_ID_11091":{"entryPoint":null,"id":11091,"parameterSlots":0,"returnSlots":0},"@CHILD_CHAIN_ID_BYTES_11094":{"entryPoint":null,"id":11094,"parameterSlots":0,"returnSlots":0},"@ERC712_VERSION_11082":{"entryPoint":null,"id":11082,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_11085":{"entryPoint":null,"id":11085,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_BYTES_11088":{"entryPoint":null,"id":11088,"parameterSlots":0,"returnSlots":0},"abi_encode_bytes":{"entryPoint":240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1066:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:373:29","statements":[{"nodeType":"YulVariableDeclaration","src":"73:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"87:5:29"},"nodeType":"YulFunctionCall","src":"87:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"77:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"115:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"120:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"108:6:29"},"nodeType":"YulFunctionCall","src":"108:19:29"},"nodeType":"YulExpressionStatement","src":"108:19:29"},{"nodeType":"YulVariableDeclaration","src":"136:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"145:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"140:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"207:110:29","statements":[{"nodeType":"YulVariableDeclaration","src":"221:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"231:4:29","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"225:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"263:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"268:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"259:3:29"},"nodeType":"YulFunctionCall","src":"259:11:29"},{"name":"_1","nodeType":"YulIdentifier","src":"272:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"255:3:29"},"nodeType":"YulFunctionCall","src":"255:20:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"291:5:29"},{"name":"i","nodeType":"YulIdentifier","src":"298:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"287:3:29"},"nodeType":"YulFunctionCall","src":"287:13:29"},{"name":"_1","nodeType":"YulIdentifier","src":"302:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"283:3:29"},"nodeType":"YulFunctionCall","src":"283:22:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"277:5:29"},"nodeType":"YulFunctionCall","src":"277:29:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"248:6:29"},"nodeType":"YulFunctionCall","src":"248:59:29"},"nodeType":"YulExpressionStatement","src":"248:59:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"166:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"169:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"163:2:29"},"nodeType":"YulFunctionCall","src":"163:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"177:21:29","statements":[{"nodeType":"YulAssignment","src":"179:17:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"188:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"191:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"184:3:29"},"nodeType":"YulFunctionCall","src":"184:12:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"179:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"159:3:29","statements":[]},"src":"155:162:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"341:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"337:3:29"},"nodeType":"YulFunctionCall","src":"337:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"333:3:29"},"nodeType":"YulFunctionCall","src":"333:27:29"},{"kind":"number","nodeType":"YulLiteral","src":"362:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"326:6:29"},"nodeType":"YulFunctionCall","src":"326:38:29"},"nodeType":"YulExpressionStatement","src":"326:38:29"},{"nodeType":"YulAssignment","src":"373:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"388:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"401:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"409:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"397:3:29"},"nodeType":"YulFunctionCall","src":"397:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"414:3:29"},"nodeType":"YulFunctionCall","src":"414:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"393:3:29"},"nodeType":"YulFunctionCall","src":"393:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"384:3:29"},"nodeType":"YulFunctionCall","src":"384:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"425:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"380:3:29"},"nodeType":"YulFunctionCall","src":"380:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"373:3:29"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"40:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"47:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"55:3:29","type":""}],"src":"14:422:29"},{"body":{"nodeType":"YulBlock","src":"560:98:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"577:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"588:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"570:6:29"},"nodeType":"YulFunctionCall","src":"570:21:29"},"nodeType":"YulExpressionStatement","src":"570:21:29"},{"nodeType":"YulAssignment","src":"600:52:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"625:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"637:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"648:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"633:3:29"},"nodeType":"YulFunctionCall","src":"633:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"608:16:29"},"nodeType":"YulFunctionCall","src":"608:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"600:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"529:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"540:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"551:4:29","type":""}],"src":"441:217:29"},{"body":{"nodeType":"YulBlock","src":"784:98:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"801:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"812:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"794:6:29"},"nodeType":"YulFunctionCall","src":"794:21:29"},"nodeType":"YulExpressionStatement","src":"794:21:29"},{"nodeType":"YulAssignment","src":"824:52:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"849:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"861:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"872:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"857:3:29"},"nodeType":"YulFunctionCall","src":"857:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"832:16:29"},"nodeType":"YulFunctionCall","src":"832:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"824:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"753:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"764:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"775:4:29","type":""}],"src":"663:219:29"},{"body":{"nodeType":"YulBlock","src":"988:76:29","statements":[{"nodeType":"YulAssignment","src":"998:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1010:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1021:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1006:3:29"},"nodeType":"YulFunctionCall","src":"1006:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"998:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1040:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"1051:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1033:6:29"},"nodeType":"YulFunctionCall","src":"1033:25:29"},"nodeType":"YulExpressionStatement","src":"1033:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"957:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"968:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"979:4:29","type":""}],"src":"887:177:29"}]},"contents":"{\n { }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB54817C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0xE8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x89 SWAP2 SWAP1 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x7C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x89 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x89 JUMP JUMPDEST PUSH2 0xDA PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x116 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0xFA JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x149 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xD8 0xED 0xEC 0xAF BYTE ADD 0x24 0xF9 SWAP16 0xEB 0xD4 0xE SWAP6 PUSH23 0x9DED7AEC8D6345C33BFC4711B57E0822F64736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"47280:290:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47515:52;;;;;;;;;;;;;;;-1:-1:-1;;;47515:52:27;;;;;;;;;;;;:::i;:::-;;;;;;;;47407:51;;;;;;;;;;;;;;;-1:-1:-1;;;47407:51:27;;;;;47310:43;;;;;;;;;;;;;;;-1:-1:-1;;;47310:43:27;;;;;47465:44;;47506:3;47465:44;;;;;1033:25:29;;;1021:2;1006:18;47465:44:27;887:177:29;47360:41:27;;47400:1;47360:41;;14:422:29;55:3;93:5;87:12;120:6;115:3;108:19;145:1;155:162;169:6;166:1;163:13;155:162;;;231:4;287:13;;;283:22;;277:29;259:11;;;255:20;;248:59;184:12;155:162;;;159:3;362:1;355:4;346:6;341:3;337:16;333:27;326:38;425:4;418:2;414:7;409:2;401:6;397:15;393:29;388:3;384:39;380:50;373:57;;;14:422;;;;:::o;441:217::-;588:2;577:9;570:21;551:4;608:44;648:2;637:9;633:18;625:6;608:44;:::i;:::-;600:52;441:217;-1:-1:-1;;;441:217:29:o"},"methodIdentifiers":{"CHILD_CHAIN_ID()":"626381a0","CHILD_CHAIN_ID_BYTES()":"0b54817c","ERC712_VERSION()":"0f7e5970","ROOT_CHAIN_ID()":"8acfcaf7","ROOT_CHAIN_ID_BYTES()":"0dd7531a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC712_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"ChainConstants\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"ContextMixin":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"ContextMixin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"EIP712Base":{"abi":[{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60806040526000805460ff19169055348015601957600080fd5b506088806100286000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x88 DUP1 PUSH2 0x28 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x20379EE5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH1 0x4D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CHAINID PUSH1 0x3B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 0xAC 0xAA 0xAF 0xCC 0xCA PUSH21 0x552EBB6ECCDC6D2772E6FE4DD002D3F162CF673ED5 DUP5 0x24 SMOD 0xE1 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"42193:2032:27:-:0;;;42000:5;41986:19;;-1:-1:-1;;41986:19:27;;;42193:2032;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:375:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:29","statements":[{"nodeType":"YulAssignment","src":"125:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:29"},"nodeType":"YulFunctionCall","src":"133:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:29"},"nodeType":"YulFunctionCall","src":"160:25:29"},"nodeType":"YulExpressionStatement","src":"160:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:29","type":""}],"src":"14:177:29"},{"body":{"nodeType":"YulBlock","src":"297:76:29","statements":[{"nodeType":"YulAssignment","src":"307:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"330:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"315:3:29"},"nodeType":"YulFunctionCall","src":"315:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"307:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"360:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"342:6:29"},"nodeType":"YulFunctionCall","src":"342:25:29"},"nodeType":"YulExpressionStatement","src":"342:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"266:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"277:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"288:4:29","type":""}],"src":"196:177:29"}]},"contents":"{\n { }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x20379EE5 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH1 0x4D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CHAINID PUSH1 0x3B JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 0xAC 0xAA 0xAF 0xCC 0xCA PUSH21 0x552EBB6ECCDC6D2772E6FE4DD002D3F162CF673ED5 DUP5 0x24 SMOD 0xE1 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"42193:2032:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43354:99;43431:15;;43354:99;;;160:25:29;;;148:2;133:18;43354:99:27;;;;;;;43459:155;43570:9;43459:155;"},"methodIdentifiers":{"getChainId()":"3408e470","getDomainSeperator()":"20379ee5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"EIP712Base\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"__name","type":"string"},{"internalType":"string","name":"__symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9517":{"entryPoint":null,"id":9517,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":125,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":300,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":466,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":549,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":406,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":103,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4144:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"210:776:29","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:29"},"nodeType":"YulFunctionCall","src":"261:12:29"},"nodeType":"YulExpressionStatement","src":"261:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:29"},"nodeType":"YulFunctionCall","src":"234:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:29"},"nodeType":"YulFunctionCall","src":"230:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:29"},"nodeType":"YulFunctionCall","src":"223:35:29"},"nodeType":"YulIf","src":"220:55:29"},{"nodeType":"YulVariableDeclaration","src":"284:23:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:29"},"nodeType":"YulFunctionCall","src":"294:13:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:29"},"nodeType":"YulFunctionCall","src":"330:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:29"},"nodeType":"YulFunctionCall","src":"326:18:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:29"},"nodeType":"YulFunctionCall","src":"369:18:29"},"nodeType":"YulExpressionStatement","src":"369:18:29"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:29"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:29"},"nodeType":"YulFunctionCall","src":"356:10:29"},"nodeType":"YulIf","src":"353:36:29"},{"nodeType":"YulVariableDeclaration","src":"398:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:29"},"nodeType":"YulFunctionCall","src":"408:7:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:29"},"nodeType":"YulFunctionCall","src":"438:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:29"},"nodeType":"YulFunctionCall","src":"498:13:29"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:29"},"nodeType":"YulFunctionCall","src":"494:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:29"},"nodeType":"YulFunctionCall","src":"490:31:29"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:29"},"nodeType":"YulFunctionCall","src":"486:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:29"},"nodeType":"YulFunctionCall","src":"474:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:29"},"nodeType":"YulFunctionCall","src":"588:18:29"},"nodeType":"YulExpressionStatement","src":"588:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:29"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:29"},"nodeType":"YulFunctionCall","src":"542:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:29"},"nodeType":"YulFunctionCall","src":"562:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:29"},"nodeType":"YulFunctionCall","src":"539:46:29"},"nodeType":"YulIf","src":"536:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:29"},"nodeType":"YulFunctionCall","src":"617:22:29"},"nodeType":"YulExpressionStatement","src":"617:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:29"},"nodeType":"YulFunctionCall","src":"648:18:29"},"nodeType":"YulExpressionStatement","src":"648:18:29"},{"nodeType":"YulVariableDeclaration","src":"675:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:29","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:29"},"nodeType":"YulFunctionCall","src":"737:12:29"},"nodeType":"YulExpressionStatement","src":"737:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:29"},"nodeType":"YulFunctionCall","src":"708:15:29"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:29"},"nodeType":"YulFunctionCall","src":"704:24:29"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:29"},"nodeType":"YulFunctionCall","src":"701:33:29"},"nodeType":"YulIf","src":"698:53:29"},{"nodeType":"YulVariableDeclaration","src":"760:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:29"},"nodeType":"YulFunctionCall","src":"850:14:29"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:29"},"nodeType":"YulFunctionCall","src":"846:23:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:29"},"nodeType":"YulFunctionCall","src":"881:14:29"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:29"},"nodeType":"YulFunctionCall","src":"877:23:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:29"},"nodeType":"YulFunctionCall","src":"871:30:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:29"},"nodeType":"YulFunctionCall","src":"839:63:29"},"nodeType":"YulExpressionStatement","src":"839:63:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:29"},"nodeType":"YulFunctionCall","src":"787:9:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:29","statements":[{"nodeType":"YulAssignment","src":"799:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:29"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:29"},"nodeType":"YulFunctionCall","src":"804:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:29","statements":[]},"src":"779:133:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"944:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"932:3:29"},"nodeType":"YulFunctionCall","src":"932:15:29"},{"name":"_4","nodeType":"YulIdentifier","src":"949:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"928:3:29"},"nodeType":"YulFunctionCall","src":"928:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"954:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"921:6:29"},"nodeType":"YulFunctionCall","src":"921:35:29"},"nodeType":"YulExpressionStatement","src":"921:35:29"},{"nodeType":"YulAssignment","src":"965:15:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"974:6:29"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"965:5:29"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:29","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:29","type":""}],"src":"146:840:29"},{"body":{"nodeType":"YulBlock","src":"1109:444:29","statements":[{"body":{"nodeType":"YulBlock","src":"1155:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1164:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1167:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1157:6:29"},"nodeType":"YulFunctionCall","src":"1157:12:29"},"nodeType":"YulExpressionStatement","src":"1157:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1130:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1139:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1126:3:29"},"nodeType":"YulFunctionCall","src":"1126:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1151:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1122:3:29"},"nodeType":"YulFunctionCall","src":"1122:32:29"},"nodeType":"YulIf","src":"1119:52:29"},{"nodeType":"YulVariableDeclaration","src":"1180:30:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1194:5:29"},"nodeType":"YulFunctionCall","src":"1194:16:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1184:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1219:28:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1237:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1241:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1233:3:29"},"nodeType":"YulFunctionCall","src":"1233:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1245:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1229:3:29"},"nodeType":"YulFunctionCall","src":"1229:18:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1223:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1274:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1283:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1276:6:29"},"nodeType":"YulFunctionCall","src":"1276:12:29"},"nodeType":"YulExpressionStatement","src":"1276:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1262:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1270:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1259:2:29"},"nodeType":"YulFunctionCall","src":"1259:14:29"},"nodeType":"YulIf","src":"1256:34:29"},{"nodeType":"YulAssignment","src":"1299:71:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1342:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"1353:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1338:3:29"},"nodeType":"YulFunctionCall","src":"1338:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1362:7:29"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1309:28:29"},"nodeType":"YulFunctionCall","src":"1309:61:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1379:41:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1405:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1416:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1401:3:29"},"nodeType":"YulFunctionCall","src":"1401:18:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1395:5:29"},"nodeType":"YulFunctionCall","src":"1395:25:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1383:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1449:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1461:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1451:6:29"},"nodeType":"YulFunctionCall","src":"1451:12:29"},"nodeType":"YulExpressionStatement","src":"1451:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1435:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1445:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1432:2:29"},"nodeType":"YulFunctionCall","src":"1432:16:29"},"nodeType":"YulIf","src":"1429:36:29"},{"nodeType":"YulAssignment","src":"1474:73:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1517:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1528:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1513:3:29"},"nodeType":"YulFunctionCall","src":"1513:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1539:7:29"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1484:28:29"},"nodeType":"YulFunctionCall","src":"1484:63:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1474:6:29"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1067:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1078:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1090:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1098:6:29","type":""}],"src":"991:562:29"},{"body":{"nodeType":"YulBlock","src":"1613:325:29","statements":[{"nodeType":"YulAssignment","src":"1623:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1637:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1640:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1633:3:29"},"nodeType":"YulFunctionCall","src":"1633:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1623:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"1654:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1684:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1680:3:29"},"nodeType":"YulFunctionCall","src":"1680:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1658:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1731:31:29","statements":[{"nodeType":"YulAssignment","src":"1733:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1747:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1755:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1743:3:29"},"nodeType":"YulFunctionCall","src":"1743:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1733:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1711:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1704:6:29"},"nodeType":"YulFunctionCall","src":"1704:26:29"},"nodeType":"YulIf","src":"1701:61:29"},{"body":{"nodeType":"YulBlock","src":"1821:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1842:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1849:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1854:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1845:3:29"},"nodeType":"YulFunctionCall","src":"1845:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1835:6:29"},"nodeType":"YulFunctionCall","src":"1835:31:29"},"nodeType":"YulExpressionStatement","src":"1835:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1886:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1889:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1879:6:29"},"nodeType":"YulFunctionCall","src":"1879:15:29"},"nodeType":"YulExpressionStatement","src":"1879:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1914:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1907:6:29"},"nodeType":"YulFunctionCall","src":"1907:15:29"},"nodeType":"YulExpressionStatement","src":"1907:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1777:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1800:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1808:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1797:2:29"},"nodeType":"YulFunctionCall","src":"1797:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1774:2:29"},"nodeType":"YulFunctionCall","src":"1774:38:29"},"nodeType":"YulIf","src":"1771:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1593:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1602:6:29","type":""}],"src":"1558:380:29"},{"body":{"nodeType":"YulBlock","src":"1999:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2016:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2019:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2009:6:29"},"nodeType":"YulFunctionCall","src":"2009:14:29"},"nodeType":"YulExpressionStatement","src":"2009:14:29"},{"nodeType":"YulAssignment","src":"2032:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2050:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2053:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2040:9:29"},"nodeType":"YulFunctionCall","src":"2040:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2032:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1982:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1990:4:29","type":""}],"src":"1943:121:29"},{"body":{"nodeType":"YulBlock","src":"2150:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"2183:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2197:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2207:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2201:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2228:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"2232:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2221:6:29"},"nodeType":"YulFunctionCall","src":"2221:17:29"},"nodeType":"YulExpressionStatement","src":"2221:17:29"},{"nodeType":"YulVariableDeclaration","src":"2251:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2273:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2277:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2263:9:29"},"nodeType":"YulFunctionCall","src":"2263:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2255:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2295:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2318:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2328:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2335:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2347:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2331:3:29"},"nodeType":"YulFunctionCall","src":"2331:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2324:3:29"},"nodeType":"YulFunctionCall","src":"2324:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2314:3:29"},"nodeType":"YulFunctionCall","src":"2314:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2299:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:23:29","statements":[{"nodeType":"YulAssignment","src":"2391:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"2406:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2391:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2371:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2383:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2368:2:29"},"nodeType":"YulFunctionCall","src":"2368:20:29"},"nodeType":"YulIf","src":"2365:47:29"},{"nodeType":"YulVariableDeclaration","src":"2425:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2439:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2449:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2456:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2461:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2452:3:29"},"nodeType":"YulFunctionCall","src":"2452:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2445:3:29"},"nodeType":"YulFunctionCall","src":"2445:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2435:3:29"},"nodeType":"YulFunctionCall","src":"2435:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2429:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2479:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2492:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2483:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2577:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2586:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2593:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2579:6:29"},"nodeType":"YulFunctionCall","src":"2579:17:29"},"nodeType":"YulExpressionStatement","src":"2579:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2527:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"2534:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2524:2:29"},"nodeType":"YulFunctionCall","src":"2524:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2538:26:29","statements":[{"nodeType":"YulAssignment","src":"2540:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2553:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2560:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2549:3:29"},"nodeType":"YulFunctionCall","src":"2549:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2540:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"2520:3:29","statements":[]},"src":"2516:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2166:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2171:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2163:2:29"},"nodeType":"YulFunctionCall","src":"2163:11:29"},"nodeType":"YulIf","src":"2160:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2122:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"2129:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2134:10:29","type":""}],"src":"2069:545:29"},{"body":{"nodeType":"YulBlock","src":"2704:81:29","statements":[{"nodeType":"YulAssignment","src":"2714:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2729:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2747:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2750:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2743:3:29"},"nodeType":"YulFunctionCall","src":"2743:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2760:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2756:3:29"},"nodeType":"YulFunctionCall","src":"2756:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2739:3:29"},"nodeType":"YulFunctionCall","src":"2739:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2735:3:29"},"nodeType":"YulFunctionCall","src":"2735:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2725:3:29"},"nodeType":"YulFunctionCall","src":"2725:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2774:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2767:3:29"},"nodeType":"YulFunctionCall","src":"2767:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2722:2:29"},"nodeType":"YulFunctionCall","src":"2722:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2714:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2681:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"2687:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2695:4:29","type":""}],"src":"2619:166:29"},{"body":{"nodeType":"YulBlock","src":"2886:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2896:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2916:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2910:5:29"},"nodeType":"YulFunctionCall","src":"2910:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2900:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2963:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2965:16:29"},"nodeType":"YulFunctionCall","src":"2965:18:29"},"nodeType":"YulExpressionStatement","src":"2965:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2935:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2951:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2955:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2947:3:29"},"nodeType":"YulFunctionCall","src":"2947:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"2959:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2943:3:29"},"nodeType":"YulFunctionCall","src":"2943:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2932:2:29"},"nodeType":"YulFunctionCall","src":"2932:30:29"},"nodeType":"YulIf","src":"2929:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3038:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3076:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3070:5:29"},"nodeType":"YulFunctionCall","src":"3070:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3044:25:29"},"nodeType":"YulFunctionCall","src":"3044:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3084:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2994:43:29"},"nodeType":"YulFunctionCall","src":"2994:97:29"},"nodeType":"YulExpressionStatement","src":"2994:97:29"},{"nodeType":"YulVariableDeclaration","src":"3100:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3117:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3104:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3127:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3146:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3131:11:29","type":""}]},{"nodeType":"YulAssignment","src":"3159:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3172:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3159:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3229:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3243:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3262:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3274:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3270:3:29"},"nodeType":"YulFunctionCall","src":"3270:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3258:3:29"},"nodeType":"YulFunctionCall","src":"3258:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3247:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3291:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3335:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3305:29:29"},"nodeType":"YulFunctionCall","src":"3305:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3295:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3353:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3362:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3357:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3440:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3465:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3483:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3488:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3479:3:29"},"nodeType":"YulFunctionCall","src":"3479:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3473:5:29"},"nodeType":"YulFunctionCall","src":"3473:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3458:6:29"},"nodeType":"YulFunctionCall","src":"3458:42:29"},"nodeType":"YulExpressionStatement","src":"3458:42:29"},{"nodeType":"YulAssignment","src":"3517:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3531:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3539:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3527:3:29"},"nodeType":"YulFunctionCall","src":"3527:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3517:6:29"}]},{"nodeType":"YulAssignment","src":"3558:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3575:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3586:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3571:3:29"},"nodeType":"YulFunctionCall","src":"3571:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3558:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3387:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3390:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3384:2:29"},"nodeType":"YulFunctionCall","src":"3384:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3399:28:29","statements":[{"nodeType":"YulAssignment","src":"3401:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3410:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3413:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3406:3:29"},"nodeType":"YulFunctionCall","src":"3406:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3401:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"3380:3:29","statements":[]},"src":"3376:236:29"},{"body":{"nodeType":"YulBlock","src":"3660:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3678:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3705:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3710:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3701:3:29"},"nodeType":"YulFunctionCall","src":"3701:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3695:5:29"},"nodeType":"YulFunctionCall","src":"3695:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3682:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3745:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3757:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3784:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3787:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3780:3:29"},"nodeType":"YulFunctionCall","src":"3780:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"3796:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3776:3:29"},"nodeType":"YulFunctionCall","src":"3776:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3806:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3802:3:29"},"nodeType":"YulFunctionCall","src":"3802:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3772:3:29"},"nodeType":"YulFunctionCall","src":"3772:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3768:3:29"},"nodeType":"YulFunctionCall","src":"3768:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3753:3:29"},"nodeType":"YulFunctionCall","src":"3753:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3738:6:29"},"nodeType":"YulFunctionCall","src":"3738:74:29"},"nodeType":"YulExpressionStatement","src":"3738:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3631:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"3640:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3628:2:29"},"nodeType":"YulFunctionCall","src":"3628:19:29"},"nodeType":"YulIf","src":"3625:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3846:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3860:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3863:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3856:3:29"},"nodeType":"YulFunctionCall","src":"3856:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"3872:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3852:3:29"},"nodeType":"YulFunctionCall","src":"3852:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3839:6:29"},"nodeType":"YulFunctionCall","src":"3839:36:29"},"nodeType":"YulExpressionStatement","src":"3839:36:29"}]},"nodeType":"YulCase","src":"3222:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3227:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3902:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3916:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"3929:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3920:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"3965:67:29","statements":[{"nodeType":"YulAssignment","src":"3983:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4002:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4007:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:29"},"nodeType":"YulFunctionCall","src":"3998:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3992:5:29"},"nodeType":"YulFunctionCall","src":"3992:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3983:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3946:6:29"},"nodeType":"YulIf","src":"3943:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4052:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4111:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"4118:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4058:52:29"},"nodeType":"YulFunctionCall","src":"4058:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4045:6:29"},"nodeType":"YulFunctionCall","src":"4045:81:29"},"nodeType":"YulExpressionStatement","src":"4045:81:29"}]},"nodeType":"YulCase","src":"3894:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3202:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"3210:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3199:2:29"},"nodeType":"YulFunctionCall","src":"3199:14:29"},"nodeType":"YulSwitch","src":"3192:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2871:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"2877:3:29","type":""}],"src":"2790:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n mstore(add(add(memPtr, _1), _4), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000d0838038062000d0883398101604081905262000034916200012c565b600362000042838262000225565b50600462000051828262000225565b50506005805460ff1916601217905550620002f1565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008f57600080fd5b81516001600160401b0380821115620000ac57620000ac62000067565b604051601f8301601f19908116603f01168101908282118183101715620000d757620000d762000067565b81604052838152602092508683858801011115620000f457600080fd5b600091505b83821015620001185785820183015181830184015290820190620000f9565b600093810190920192909252949350505050565b600080604083850312156200014057600080fd5b82516001600160401b03808211156200015857600080fd5b62000166868387016200007d565b935060208501519150808211156200017d57600080fd5b506200018c858286016200007d565b9150509250929050565b600181811c90821680620001ab57607f821691505b602082108103620001cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022057600081815260208120601f850160051c81016020861015620001fb5750805b601f850160051c820191505b818110156200021c5782815560010162000207565b5050505b505050565b81516001600160401b0381111562000241576200024162000067565b620002598162000252845462000196565b84620001d2565b602080601f831160018114620002915760008415620002785750858301515b600019600386901b1c1916600185901b1785556200021c565b600085815260208120601f198616915b82811015620002c257888601518255948401946001909101908401620002a1565b5085821015620002e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a0780620003016000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD08 CODESIZE SUB DUP1 PUSH3 0xD08 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x12C JUMP JUMPDEST PUSH1 0x3 PUSH3 0x42 DUP4 DUP3 PUSH3 0x225 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x51 DUP3 DUP3 PUSH3 0x225 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE POP PUSH3 0x2F1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0xAC JUMPI PUSH3 0xAC PUSH3 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0xD7 JUMPI PUSH3 0xD7 PUSH3 0x67 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0xF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x118 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0xF9 JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x158 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x166 DUP7 DUP4 DUP8 ADD PUSH3 0x7D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x17D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x18C DUP6 DUP3 DUP7 ADD PUSH3 0x7D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1AB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x220 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x1FB JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x21C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x207 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x241 JUMPI PUSH3 0x241 PUSH3 0x67 JUMP JUMPDEST PUSH3 0x259 DUP2 PUSH3 0x252 DUP5 SLOAD PUSH3 0x196 JUMP JUMPDEST DUP5 PUSH3 0x1D2 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x291 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x278 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x21C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2C2 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2A1 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2E1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0xA07 DUP1 PUSH3 0x301 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x134 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x27E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x89A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x417 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 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 0x227 SWAP1 PUSH2 0x8E8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x274 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x249 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x274 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x257 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 DUP5 DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH2 0x2F4 DUP5 CALLER PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x985 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x28B SWAP2 DUP6 SWAP1 PUSH2 0x2EF SWAP1 DUP7 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x38F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x39C SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3C2 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9AD PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x545 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x60B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x66D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH2 0x6AA DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x95F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6D9 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x59A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x75B DUP5 DUP7 PUSH2 0x938 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x771 DUP4 DUP6 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7F7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7DB JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x82F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x850 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x87C DUP5 PUSH2 0x818 JUMP JUMPDEST SWAP3 POP PUSH2 0x88A PUSH1 0x20 DUP6 ADD PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C3 DUP3 PUSH2 0x818 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D1 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH2 0x8DF PUSH1 0x20 DUP5 ADD PUSH2 0x818 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x91C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x2062616C616E636545524332303A207472616E73 PUSH7 0x657220616D6F75 PUSH15 0x74206578636565647320616C6C6F77 PUSH2 0x6E63 PUSH6 0x45524332303A KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x73582212208098 CALLDATALOAD SSTORE JUMP 0xE0 PUSH2 0x1713 0x4B SLT PREVRANDAO RETURN SSTORE 0xD0 0x21 SWAP6 0xDD NUMBER SDIV DUP4 PUSH10 0xF2AB5F33EF72720CD900 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"16326:9744:27:-:0;;;16994:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17063:5;:14;17071:6;17063:5;:14;:::i;:::-;-1:-1:-1;17087:7:27;:18;17097:8;17087:7;:18;:::i;:::-;-1:-1:-1;;17115:9:27;:14;;-1:-1:-1;;17115:14:27;17127:2;17115:14;;;-1:-1:-1;16326:9744:27;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:29;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:29;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:29:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:29;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:29;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:29;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:29;;;3992:26;3943:89;-1:-1:-1;;2747:1:29;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:29;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:29;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:29;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:29:o;:::-;16326:9744:27;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_9975":{"entryPoint":1154,"id":9975,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9997":{"entryPoint":null,"id":9997,"parameterSlots":3,"returnSlots":0},"@_mint_9874":{"entryPoint":820,"id":9874,"parameterSlots":2,"returnSlots":0},"@_msgSender_8979":{"entryPoint":null,"id":8979,"parameterSlots":0,"returnSlots":1},"@_transfer_9819":{"entryPoint":1447,"id":9819,"parameterSlots":3,"returnSlots":0},"@add_9096":{"entryPoint":1892,"id":9096,"parameterSlots":2,"returnSlots":1},"@allowance_9637":{"entryPoint":null,"id":9637,"parameterSlots":2,"returnSlots":1},"@approve_9658":{"entryPoint":638,"id":9658,"parameterSlots":2,"returnSlots":1},"@balanceOf_9598":{"entryPoint":null,"id":9598,"parameterSlots":1,"returnSlots":1},"@decimals_9564":{"entryPoint":null,"id":9564,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9753":{"entryPoint":1062,"id":9753,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_9724":{"entryPoint":766,"id":9724,"parameterSlots":2,"returnSlots":1},"@name_9526":{"entryPoint":492,"id":9526,"parameterSlots":0,"returnSlots":1},"@sub_9141":{"entryPoint":1834,"id":9141,"parameterSlots":3,"returnSlots":1},"@symbol_9545":{"entryPoint":1047,"id":9545,"parameterSlots":0,"returnSlots":1},"@totalSupply_9584":{"entryPoint":null,"id":9584,"parameterSlots":0,"returnSlots":1},"@transferFrom_9696":{"entryPoint":661,"id":9696,"parameterSlots":3,"returnSlots":1},"@transfer_9619":{"entryPoint":1141,"id":9619,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2072,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2202,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2229,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2142,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2100,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1994,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2379,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2360,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2280,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2338,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5467:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:29","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:29"},"nodeType":"YulFunctionCall","src":"166:21:29"},"nodeType":"YulExpressionStatement","src":"166:21:29"},{"nodeType":"YulVariableDeclaration","src":"196:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:29"},"nodeType":"YulFunctionCall","src":"210:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:29"},"nodeType":"YulFunctionCall","src":"239:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:29"},"nodeType":"YulFunctionCall","src":"232:34:29"},"nodeType":"YulExpressionStatement","src":"232:34:29"},{"nodeType":"YulVariableDeclaration","src":"275:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:29"},"nodeType":"YulFunctionCall","src":"369:17:29"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:29"},"nodeType":"YulFunctionCall","src":"365:26:29"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:29"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:29"},"nodeType":"YulFunctionCall","src":"403:14:29"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:29"},"nodeType":"YulFunctionCall","src":"399:23:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:29"},"nodeType":"YulFunctionCall","src":"393:30:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:29"},"nodeType":"YulFunctionCall","src":"358:66:29"},"nodeType":"YulExpressionStatement","src":"358:66:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:29"},"nodeType":"YulFunctionCall","src":"302:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:29","statements":[{"nodeType":"YulAssignment","src":"318:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:29"},"nodeType":"YulFunctionCall","src":"323:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:29","statements":[]},"src":"294:140:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:29"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:29"},"nodeType":"YulFunctionCall","src":"454:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:29"},"nodeType":"YulFunctionCall","src":"450:31:29"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:29"},"nodeType":"YulFunctionCall","src":"443:42:29"},"nodeType":"YulExpressionStatement","src":"443:42:29"},{"nodeType":"YulAssignment","src":"494:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:29"},"nodeType":"YulFunctionCall","src":"525:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:29"},"nodeType":"YulFunctionCall","src":"542:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:29"},"nodeType":"YulFunctionCall","src":"521:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:29"},"nodeType":"YulFunctionCall","src":"506:45:29"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:29"},"nodeType":"YulFunctionCall","src":"502:54:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:29","type":""}],"src":"14:548:29"},{"body":{"nodeType":"YulBlock","src":"616:124:29","statements":[{"nodeType":"YulAssignment","src":"626:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:29"},"nodeType":"YulFunctionCall","src":"635:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:29"}]},{"body":{"nodeType":"YulBlock","src":"718:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:29"},"nodeType":"YulFunctionCall","src":"720:12:29"},"nodeType":"YulExpressionStatement","src":"720:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:29"},"nodeType":"YulFunctionCall","src":"699:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:29"},"nodeType":"YulFunctionCall","src":"695:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:29"},"nodeType":"YulFunctionCall","src":"684:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:29"},"nodeType":"YulFunctionCall","src":"674:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:29"},"nodeType":"YulFunctionCall","src":"667:50:29"},"nodeType":"YulIf","src":"664:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:29","type":""}],"src":"567:173:29"},{"body":{"nodeType":"YulBlock","src":"832:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:29"},"nodeType":"YulFunctionCall","src":"880:12:29"},"nodeType":"YulExpressionStatement","src":"880:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:29"},"nodeType":"YulFunctionCall","src":"849:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:29"},"nodeType":"YulFunctionCall","src":"845:32:29"},"nodeType":"YulIf","src":"842:52:29"},{"nodeType":"YulAssignment","src":"903:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:29"},"nodeType":"YulFunctionCall","src":"913:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:29"}]},{"nodeType":"YulAssignment","src":"951:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:29"},"nodeType":"YulFunctionCall","src":"974:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:29"},"nodeType":"YulFunctionCall","src":"961:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:29","type":""}],"src":"745:254:29"},{"body":{"nodeType":"YulBlock","src":"1099:92:29","statements":[{"nodeType":"YulAssignment","src":"1109:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:29"},"nodeType":"YulFunctionCall","src":"1117:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:29"},"nodeType":"YulFunctionCall","src":"1169:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:29"},"nodeType":"YulFunctionCall","src":"1162:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:29"},"nodeType":"YulFunctionCall","src":"1144:41:29"},"nodeType":"YulExpressionStatement","src":"1144:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:29","type":""}],"src":"1004:187:29"},{"body":{"nodeType":"YulBlock","src":"1297:76:29","statements":[{"nodeType":"YulAssignment","src":"1307:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:29"},"nodeType":"YulFunctionCall","src":"1315:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:29"},"nodeType":"YulFunctionCall","src":"1342:25:29"},"nodeType":"YulExpressionStatement","src":"1342:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:29","type":""}],"src":"1196:177:29"},{"body":{"nodeType":"YulBlock","src":"1482:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:29"},"nodeType":"YulFunctionCall","src":"1530:12:29"},"nodeType":"YulExpressionStatement","src":"1530:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:29"},"nodeType":"YulFunctionCall","src":"1499:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:29"},"nodeType":"YulFunctionCall","src":"1495:32:29"},"nodeType":"YulIf","src":"1492:52:29"},{"nodeType":"YulAssignment","src":"1553:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:29"},"nodeType":"YulFunctionCall","src":"1563:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:29"}]},{"nodeType":"YulAssignment","src":"1601:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:29"},"nodeType":"YulFunctionCall","src":"1630:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:29"},"nodeType":"YulFunctionCall","src":"1611:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:29"}]},{"nodeType":"YulAssignment","src":"1658:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:29"},"nodeType":"YulFunctionCall","src":"1681:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:29"},"nodeType":"YulFunctionCall","src":"1668:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:29","type":""}],"src":"1378:328:29"},{"body":{"nodeType":"YulBlock","src":"1808:87:29","statements":[{"nodeType":"YulAssignment","src":"1818:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:29"},"nodeType":"YulFunctionCall","src":"1826:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:29"},"nodeType":"YulFunctionCall","src":"1871:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:29"},"nodeType":"YulFunctionCall","src":"1853:36:29"},"nodeType":"YulExpressionStatement","src":"1853:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:29","type":""}],"src":"1711:184:29"},{"body":{"nodeType":"YulBlock","src":"1970:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:29"},"nodeType":"YulFunctionCall","src":"2018:12:29"},"nodeType":"YulExpressionStatement","src":"2018:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:29"},"nodeType":"YulFunctionCall","src":"1987:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:29"},"nodeType":"YulFunctionCall","src":"1983:32:29"},"nodeType":"YulIf","src":"1980:52:29"},{"nodeType":"YulAssignment","src":"2041:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2070:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2051:18:29"},"nodeType":"YulFunctionCall","src":"2051:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:29","type":""}],"src":"1900:186:29"},{"body":{"nodeType":"YulBlock","src":"2178:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"2224:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2233:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2236:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2226:6:29"},"nodeType":"YulFunctionCall","src":"2226:12:29"},"nodeType":"YulExpressionStatement","src":"2226:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2199:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2195:3:29"},"nodeType":"YulFunctionCall","src":"2195:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2220:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2191:3:29"},"nodeType":"YulFunctionCall","src":"2191:32:29"},"nodeType":"YulIf","src":"2188:52:29"},{"nodeType":"YulAssignment","src":"2249:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2278:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2259:18:29"},"nodeType":"YulFunctionCall","src":"2259:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2249:6:29"}]},{"nodeType":"YulAssignment","src":"2297:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2330:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2341:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2326:3:29"},"nodeType":"YulFunctionCall","src":"2326:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2307:18:29"},"nodeType":"YulFunctionCall","src":"2307:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2297:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2136:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2147:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2159:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2167:6:29","type":""}],"src":"2091:260:29"},{"body":{"nodeType":"YulBlock","src":"2411:325:29","statements":[{"nodeType":"YulAssignment","src":"2421:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2435:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2438:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2431:3:29"},"nodeType":"YulFunctionCall","src":"2431:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2421:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2452:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2482:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"2488:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2478:3:29"},"nodeType":"YulFunctionCall","src":"2478:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2456:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2529:31:29","statements":[{"nodeType":"YulAssignment","src":"2531:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2545:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2553:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2541:3:29"},"nodeType":"YulFunctionCall","src":"2541:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2531:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2509:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2502:6:29"},"nodeType":"YulFunctionCall","src":"2502:26:29"},"nodeType":"YulIf","src":"2499:61:29"},{"body":{"nodeType":"YulBlock","src":"2619:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2640:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2647:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2652:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2643:3:29"},"nodeType":"YulFunctionCall","src":"2643:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:31:29"},"nodeType":"YulExpressionStatement","src":"2633:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2684:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2687:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2677:6:29"},"nodeType":"YulFunctionCall","src":"2677:15:29"},"nodeType":"YulExpressionStatement","src":"2677:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2712:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2715:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2705:6:29"},"nodeType":"YulFunctionCall","src":"2705:15:29"},"nodeType":"YulExpressionStatement","src":"2705:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2575:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2598:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2606:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2595:2:29"},"nodeType":"YulFunctionCall","src":"2595:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2572:2:29"},"nodeType":"YulFunctionCall","src":"2572:38:29"},"nodeType":"YulIf","src":"2569:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2391:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2400:6:29","type":""}],"src":"2356:380:29"},{"body":{"nodeType":"YulBlock","src":"2915:181:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2932:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2943:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2925:6:29"},"nodeType":"YulFunctionCall","src":"2925:21:29"},"nodeType":"YulExpressionStatement","src":"2925:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2966:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2977:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2962:3:29"},"nodeType":"YulFunctionCall","src":"2962:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"2982:2:29","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2955:6:29"},"nodeType":"YulFunctionCall","src":"2955:30:29"},"nodeType":"YulExpressionStatement","src":"2955:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3016:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3001:3:29"},"nodeType":"YulFunctionCall","src":"3001:18:29"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"3021:33:29","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2994:6:29"},"nodeType":"YulFunctionCall","src":"2994:61:29"},"nodeType":"YulExpressionStatement","src":"2994:61:29"},{"nodeType":"YulAssignment","src":"3064:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3076:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3087:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3072:3:29"},"nodeType":"YulFunctionCall","src":"3072:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3064:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2892:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2906:4:29","type":""}],"src":"2741:355:29"},{"body":{"nodeType":"YulBlock","src":"3275:226:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3303:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3285:6:29"},"nodeType":"YulFunctionCall","src":"3285:21:29"},"nodeType":"YulExpressionStatement","src":"3285:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3326:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3337:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3322:3:29"},"nodeType":"YulFunctionCall","src":"3322:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3342:2:29","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3315:6:29"},"nodeType":"YulFunctionCall","src":"3315:30:29"},"nodeType":"YulExpressionStatement","src":"3315:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3365:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3376:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3361:3:29"},"nodeType":"YulFunctionCall","src":"3361:18:29"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3381:34:29","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3354:6:29"},"nodeType":"YulFunctionCall","src":"3354:62:29"},"nodeType":"YulExpressionStatement","src":"3354:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3432:3:29"},"nodeType":"YulFunctionCall","src":"3432:18:29"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3452:6:29","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3425:6:29"},"nodeType":"YulFunctionCall","src":"3425:34:29"},"nodeType":"YulExpressionStatement","src":"3425:34:29"},{"nodeType":"YulAssignment","src":"3468:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3480:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3491:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3476:3:29"},"nodeType":"YulFunctionCall","src":"3476:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3468:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3252:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3266:4:29","type":""}],"src":"3101:400:29"},{"body":{"nodeType":"YulBlock","src":"3680:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3697:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3708:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3690:6:29"},"nodeType":"YulFunctionCall","src":"3690:21:29"},"nodeType":"YulExpressionStatement","src":"3690:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3731:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3742:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3727:3:29"},"nodeType":"YulFunctionCall","src":"3727:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3747:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3720:6:29"},"nodeType":"YulFunctionCall","src":"3720:30:29"},"nodeType":"YulExpressionStatement","src":"3720:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3770:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3781:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:29"},"nodeType":"YulFunctionCall","src":"3766:18:29"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"3786:34:29","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3759:6:29"},"nodeType":"YulFunctionCall","src":"3759:62:29"},"nodeType":"YulExpressionStatement","src":"3759:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3841:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3852:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3837:3:29"},"nodeType":"YulFunctionCall","src":"3837:18:29"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"3857:4:29","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3830:6:29"},"nodeType":"YulFunctionCall","src":"3830:32:29"},"nodeType":"YulExpressionStatement","src":"3830:32:29"},{"nodeType":"YulAssignment","src":"3871:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3883:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3894:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3879:3:29"},"nodeType":"YulFunctionCall","src":"3879:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3871:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3657:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3671:4:29","type":""}],"src":"3506:398:29"},{"body":{"nodeType":"YulBlock","src":"4083:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4100:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4111:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4093:6:29"},"nodeType":"YulFunctionCall","src":"4093:21:29"},"nodeType":"YulExpressionStatement","src":"4093:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4134:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4145:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4130:3:29"},"nodeType":"YulFunctionCall","src":"4130:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"4150:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4123:6:29"},"nodeType":"YulFunctionCall","src":"4123:30:29"},"nodeType":"YulExpressionStatement","src":"4123:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4173:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4184:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4169:3:29"},"nodeType":"YulFunctionCall","src":"4169:18:29"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4189:34:29","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4162:6:29"},"nodeType":"YulFunctionCall","src":"4162:62:29"},"nodeType":"YulExpressionStatement","src":"4162:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4244:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4255:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4240:3:29"},"nodeType":"YulFunctionCall","src":"4240:18:29"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4260:7:29","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4233:6:29"},"nodeType":"YulFunctionCall","src":"4233:35:29"},"nodeType":"YulExpressionStatement","src":"4233:35:29"},{"nodeType":"YulAssignment","src":"4277:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4289:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4300:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4285:3:29"},"nodeType":"YulFunctionCall","src":"4285:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4277:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4060:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4074:4:29","type":""}],"src":"3909:401:29"},{"body":{"nodeType":"YulBlock","src":"4489:225:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4506:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4517:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4499:6:29"},"nodeType":"YulFunctionCall","src":"4499:21:29"},"nodeType":"YulExpressionStatement","src":"4499:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4540:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4551:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4536:3:29"},"nodeType":"YulFunctionCall","src":"4536:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"4556:2:29","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4529:6:29"},"nodeType":"YulFunctionCall","src":"4529:30:29"},"nodeType":"YulExpressionStatement","src":"4529:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4579:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4590:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4575:3:29"},"nodeType":"YulFunctionCall","src":"4575:18:29"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"4595:34:29","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4568:6:29"},"nodeType":"YulFunctionCall","src":"4568:62:29"},"nodeType":"YulExpressionStatement","src":"4568:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4650:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4661:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4646:3:29"},"nodeType":"YulFunctionCall","src":"4646:18:29"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"4666:5:29","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4639:6:29"},"nodeType":"YulFunctionCall","src":"4639:33:29"},"nodeType":"YulExpressionStatement","src":"4639:33:29"},{"nodeType":"YulAssignment","src":"4681:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4693:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4704:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4689:3:29"},"nodeType":"YulFunctionCall","src":"4689:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4681:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4466:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4480:4:29","type":""}],"src":"4315:399:29"},{"body":{"nodeType":"YulBlock","src":"4751:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4768:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4775:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4780:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4771:3:29"},"nodeType":"YulFunctionCall","src":"4771:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4761:6:29"},"nodeType":"YulFunctionCall","src":"4761:31:29"},"nodeType":"YulExpressionStatement","src":"4761:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4808:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4811:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4801:6:29"},"nodeType":"YulFunctionCall","src":"4801:15:29"},"nodeType":"YulExpressionStatement","src":"4801:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4832:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4835:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4825:6:29"},"nodeType":"YulFunctionCall","src":"4825:15:29"},"nodeType":"YulExpressionStatement","src":"4825:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"4719:127:29"},{"body":{"nodeType":"YulBlock","src":"4900:79:29","statements":[{"nodeType":"YulAssignment","src":"4910:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4922:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"4925:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4918:3:29"},"nodeType":"YulFunctionCall","src":"4918:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4910:4:29"}]},{"body":{"nodeType":"YulBlock","src":"4951:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4953:16:29"},"nodeType":"YulFunctionCall","src":"4953:18:29"},"nodeType":"YulExpressionStatement","src":"4953:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"4942:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"4948:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4939:2:29"},"nodeType":"YulFunctionCall","src":"4939:11:29"},"nodeType":"YulIf","src":"4936:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4882:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"4885:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4891:4:29","type":""}],"src":"4851:128:29"},{"body":{"nodeType":"YulBlock","src":"5032:77:29","statements":[{"nodeType":"YulAssignment","src":"5042:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5053:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5056:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5049:3:29"},"nodeType":"YulFunctionCall","src":"5049:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5042:3:29"}]},{"body":{"nodeType":"YulBlock","src":"5081:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5083:16:29"},"nodeType":"YulFunctionCall","src":"5083:18:29"},"nodeType":"YulExpressionStatement","src":"5083:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5073:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"5076:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5070:2:29"},"nodeType":"YulFunctionCall","src":"5070:10:29"},"nodeType":"YulIf","src":"5067:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5015:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5018:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5024:3:29","type":""}],"src":"4984:125:29"},{"body":{"nodeType":"YulBlock","src":"5288:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5305:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5316:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5298:6:29"},"nodeType":"YulFunctionCall","src":"5298:21:29"},"nodeType":"YulExpressionStatement","src":"5298:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5339:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5350:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5335:3:29"},"nodeType":"YulFunctionCall","src":"5335:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"5355:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5328:6:29"},"nodeType":"YulFunctionCall","src":"5328:30:29"},"nodeType":"YulExpressionStatement","src":"5328:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5378:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5389:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5374:3:29"},"nodeType":"YulFunctionCall","src":"5374:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"5394:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5367:6:29"},"nodeType":"YulFunctionCall","src":"5367:57:29"},"nodeType":"YulExpressionStatement","src":"5367:57:29"},{"nodeType":"YulAssignment","src":"5433:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5445:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5456:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5441:3:29"},"nodeType":"YulFunctionCall","src":"5441:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5433:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5265:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5279:4:29","type":""}],"src":"5114:351:29"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x134 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x27E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x85E JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x142 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x2FE JUMP JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x89A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x417 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x834 JUMP JUMPDEST PUSH2 0x475 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 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 0x227 SWAP1 PUSH2 0x8E8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x274 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x249 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x274 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x257 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 DUP5 DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH2 0x2F4 DUP5 CALLER PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x985 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0x28B SWAP2 DUP6 SWAP1 PUSH2 0x2EF SWAP1 DUP7 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x38F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x39C SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x3C2 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1FB SWAP1 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 PUSH2 0x2EF DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9AD PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B CALLER DUP5 DUP5 PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x545 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x60B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x66D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x386 JUMP JUMPDEST PUSH2 0x6AA DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x95F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x72A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x6D9 SWAP1 DUP3 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x59A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x386 SWAP2 SWAP1 PUSH2 0x7CA JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x75B DUP5 DUP7 PUSH2 0x938 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x771 DUP4 DUP6 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x7C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7F7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7DB JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x82F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x847 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x850 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x87C DUP5 PUSH2 0x818 JUMP JUMPDEST SWAP3 POP PUSH2 0x88A PUSH1 0x20 DUP6 ADD PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C3 DUP3 PUSH2 0x818 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D1 DUP4 PUSH2 0x818 JUMP JUMPDEST SWAP2 POP PUSH2 0x8DF PUSH1 0x20 DUP5 ADD PUSH2 0x818 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x8FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x91C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x28F JUMPI PUSH2 0x28F PUSH2 0x922 JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x2062616C616E636545524332303A207472616E73 PUSH7 0x657220616D6F75 PUSH15 0x74206578636565647320616C6C6F77 PUSH2 0x6E63 PUSH6 0x45524332303A KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x73582212208098 CALLDATALOAD SSTORE JUMP 0xE0 PUSH2 0x1713 0x4B SLT PREVRANDAO RETURN SSTORE 0xD0 0x21 SWAP6 0xDD NUMBER SDIV DUP4 PUSH10 0xF2AB5F33EF72720CD900 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"16326:9744:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19508:166;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:29;;1162:22;1144:41;;1132:2;1117:18;19508:166:27;1004:187:29;18515:98:27;18594:12;;18515:98;;;1342:25:29;;;1330:2;1315:18;18515:98:27;1196:177:29;20134:330:27;;;;;;:::i;:::-;;:::i;18281:81::-;18346:9;;18281:81;;18346:9;;;;1853:36:29;;1841:2;1826:18;18281:81:27;1711:184:29;20859:215:27;;;;;;:::i;:::-;;:::i;23115:369::-;;;;;;:::i;:::-;;:::i;:::-;;18671:117;;;;;;:::i;:::-;-1:-1:-1;;;;;18763:18:27;18737:7;18763:18;;;;;;;;;;;;18671:117;17480:85;;;:::i;21561:279::-;;;;;;:::i;:::-;;:::i;18991:172::-;;;;;;:::i;:::-;;:::i;19221:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;19336:18:27;;;19310:7;19336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19221:149;17201:81;17238:13;17270:5;17263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;:::o;19508:166::-;19591:4;19607:39;693:10;19630:7;19639:6;19607:8;:39::i;:::-;-1:-1:-1;19663:4:27;19508:166;;;;;:::o;20134:330::-;20240:4;20256:36;20266:6;20274:9;20285:6;20256:9;:36::i;:::-;20302:134;20311:6;693:10;20333:102;20371:6;20333:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20333:19:27;;;;;;:11;:19;;;;;;;;693:10;20333:33;;;;;;;;;;:37;:102::i;:::-;20302:8;:134::i;:::-;-1:-1:-1;20453:4:27;20134:330;;;;;:::o;20859:215::-;693:10;20947:4;20995:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20995:34:27;;;;;;;;;;20947:4;;20963:83;;20986:7;;20995:50;;21034:10;20995:38;:50::i;23115:369::-;-1:-1:-1;;;;;23197:21:27;;23189:65;;;;-1:-1:-1;;;23189:65:27;;2943:2:29;23189:65:27;;;2925:21:29;2982:2;2962:18;;;2955:30;3021:33;3001:18;;;2994:61;3072:18;;23189:65:27;;;;;;;;;23340:12;;:24;;23357:6;23340:16;:24::i;:::-;23325:12;:39;-1:-1:-1;;;;;23395:18:27;;:9;:18;;;;;;;;;;;:30;;23418:6;23395:22;:30::i;:::-;-1:-1:-1;;;;;23374:18:27;;:9;:18;;;;;;;;;;;:51;;;;23440:37;;1342:25:29;;;23374:18:27;;:9;;23440:37;;1315:18:29;23440:37:27;;;;;;;23115:369;;:::o;17480:85::-;17519:13;17551:7;17544:14;;;;;:::i;21561:279::-;21654:4;21670:142;693:10;21693:7;21702:109;21741:15;21702:109;;;;;;;;;;;;;;;;;693:10;21702:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21702:34:27;;;;;;;;;;;;:38;:109::i;18991:172::-;19077:4;19093:42;693:10;19117:9;19128:6;19093:9;:42::i;24638:340::-;-1:-1:-1;;;;;24739:19:27;;24731:68;;;;-1:-1:-1;;;24731:68:27;;3303:2:29;24731:68:27;;;3285:21:29;3342:2;3322:18;;;3315:30;3381:34;3361:18;;;3354:62;-1:-1:-1;;;3432:18:29;;;3425:34;3476:19;;24731:68:27;3101:400:29;24731:68:27;-1:-1:-1;;;;;24817:21:27;;24809:68;;;;-1:-1:-1;;;24809:68:27;;3708:2:29;24809:68:27;;;3690:21:29;3747:2;3727:18;;;3720:30;3786:34;3766:18;;;3759:62;-1:-1:-1;;;3837:18:29;;;3830:32;3879:19;;24809:68:27;3506:398:29;24809:68:27;-1:-1:-1;;;;;24888:18:27;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24939:32;;1342:25:29;;;24939:32:27;;1315:18:29;24939:32:27;;;;;;;;24638:340;;;:::o;22314:530::-;-1:-1:-1;;;;;22419:20:27;;22411:70;;;;-1:-1:-1;;;22411:70:27;;4111:2:29;22411:70:27;;;4093:21:29;4150:2;4130:18;;;4123:30;4189:34;4169:18;;;4162:62;-1:-1:-1;;;4240:18:29;;;4233:35;4285:19;;22411:70:27;3909:401:29;22411:70:27;-1:-1:-1;;;;;22499:23:27;;22491:71;;;;-1:-1:-1;;;22491:71:27;;4517:2:29;22491:71:27;;;4499:21:29;4556:2;4536:18;;;4529:30;4595:34;4575:18;;;4568:62;-1:-1:-1;;;4646:18:29;;;4639:33;4689:19;;22491:71:27;4315:399:29;22491:71:27;22651;22673:6;22651:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22651:17:27;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22631:17:27;;;:9;:17;;;;;;;;;;;:91;;;;22755:20;;;;;;;:32;;22780:6;22755:24;:32::i;:::-;-1:-1:-1;;;;;22732:20:27;;;:9;:20;;;;;;;;;;;;:55;;;;22802:35;1342:25:29;;;22732:20:27;;22802:35;;;;;;1315:18:29;22802:35:27;1196:177:29;5473:187:27;5559:7;5594:12;5586:6;;;;5578:29;;;;-1:-1:-1;;;5578:29:27;;;;;;;;:::i;:::-;-1:-1:-1;5617:9:27;5629:5;5633:1;5629;:5;:::i;:::-;5617:17;5473:187;-1:-1:-1;;;;;5473:187:27:o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;5316:2:29;4705:46:27;;;5298:21:29;5355:2;5335:18;;;5328:30;5394:29;5374:18;;;5367:57;5441:18;;4705:46:27;5114:351:29;4705:46:27;4769:1;4601:176;-1:-1:-1;;;4601:176:27:o;14:548:29:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:29;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:29:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;4719:127::-;4780:10;4775:3;4771:20;4768:1;4761:31;4811:4;4808:1;4801:15;4835:4;4832:1;4825:15;4851:128;4918:9;;;4939:11;;;4936:37;;;4953:18;;:::i;4984:125::-;5049:9;;;5070:10;;;5067:36;;;5083:18;;:::i"},"methodIdentifiers":{"_mint(address,uint256)":"4e6ec247","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"__name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"__symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"openzeppelin Implementation of the {IERC20} interface. Modified to add setters for name, symbol and decimals. This was needed because This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"_mint(address,uint256)\":{\"details\":\"Creates `amount` tokens and assigns them to `account`, increasing the total supply. Emits a {Transfer} event with `from` set to the zero address. Requirements - `to` cannot be the zero address. \"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD9 EXTCODESIZE 0xC0 0x5E PUSH25 0x3660EF6780C03C0499434D413B270AE596394DE469A21DDB68 BYTE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"26824:7098:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;26824:7098:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xD9 EXTCODESIZE 0xC0 0x5E PUSH25 0x3660EF6780C03C0499434D413B270AE596394DE469A21DDB68 BYTE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"26824:7098:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"IChildToken":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deposit(address,bytes)":"cf2c52cb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"depositData\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"IChildToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"Initializable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60806040526000805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x27 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL SWAP13 0xE 0xE9 DUP8 0x2F ADD 0x1E CODECOPY 0xD3 PUSH8 0x4C6D194ADD1B2123 PREVRANDAO PUSH12 0xB854F67245E42794E0D91964 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"41957:165:27:-:0;;;42000:5;41986:19;;-1:-1:-1;;41986:19:27;;;41957:165;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL SWAP13 0xE 0xE9 DUP8 0x2F ADD 0x1E CODECOPY 0xD3 PUSH8 0x4C6D194ADD1B2123 PREVRANDAO PUSH12 0xB854F67245E42794E0D91964 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"41957:165:27:-:0;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"NativeMetaTransaction":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60806040526000805460ff1916905534801561001a57600080fd5b506107998061002a6000396000f3fe60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x799 DUP1 PUSH2 0x2A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC53C51C EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57 PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x64 SWAP2 SWAP1 PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E PUSH2 0xA7 CALLDATASIZE PUSH1 0x4 PUSH2 0x65C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x113 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x16E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x192 SWAP1 PUSH1 0x1 PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x1E2 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x20A SWAP3 SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x224 SWAP2 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x261 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x266 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x32A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x33D PUSH2 0x338 DUP8 PUSH2 0x41C JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C1 DUP4 DUP6 PUSH2 0x6FF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x413 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x721 PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x47C SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A4 PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x47C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52D DUP7 PUSH2 0x4C9 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x570 JUMPI PUSH2 0x570 PUSH2 0x4E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x598 JUMPI PUSH2 0x598 PUSH2 0x4E5 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x5E6 PUSH1 0x80 DUP8 ADD PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x60D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5F5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x62E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x655 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x655 DUP3 PUSH2 0x4C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x6A3 SWAP1 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x6BE DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x6F5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x5F2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x416 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0x4D PUSH6 0x74615472616E PUSH20 0x616374696F6E2875696E74323536206E6F6E6365 0x2C PUSH2 0x6464 PUSH19 0x6573732066726F6D2C62797465732066756E63 PUSH21 0x696F6E5369676E617475726529A264697066735822 SLT KECCAK256 0xC0 0xEF PUSH30 0x9248999F2285EFF1B86E454ABED25B72D6CC6591610A4BBBE450AA744364 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"44308:2905:27:-:0;;;42000:5;41986:19;;-1:-1:-1;;41986:19:27;;;44308:2905;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@add_9096":{"entryPoint":948,"id":9096,"parameterSlots":2,"returnSlots":1},"@executeMetaTransaction_10999":{"entryPoint":213,"id":10999,"parameterSlots":5,"returnSlots":1},"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"@getNonce_11037":{"entryPoint":null,"id":11037,"parameterSlots":1,"returnSlots":1},"@hashMetaTransaction_11023":{"entryPoint":1052,"id":11023,"parameterSlots":1,"returnSlots":1},"@toTypedMessageHash_10883":{"entryPoint":1177,"id":10883,"parameterSlots":1,"returnSlots":1},"@verify_11077":{"entryPoint":708,"id":11077,"parameterSlots":5,"returnSlots":1},"abi_decode_address":{"entryPoint":1225,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1628,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8":{"entryPoint":1292,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":1275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_bytes":{"entryPoint":1558,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1763,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":1708,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1655,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1791,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1522,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1253,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7128:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:29","statements":[{"nodeType":"YulAssignment","src":"73:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:29"},"nodeType":"YulFunctionCall","src":"82:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:29"}]},{"body":{"nodeType":"YulBlock","src":"165:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:29"},"nodeType":"YulFunctionCall","src":"167:12:29"},"nodeType":"YulExpressionStatement","src":"167:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:29"},"nodeType":"YulFunctionCall","src":"146:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:29"},"nodeType":"YulFunctionCall","src":"142:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:29"},"nodeType":"YulFunctionCall","src":"131:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:29"},"nodeType":"YulFunctionCall","src":"121:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:29"},"nodeType":"YulFunctionCall","src":"114:50:29"},"nodeType":"YulIf","src":"111:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:29","type":""}],"src":"14:173:29"},{"body":{"nodeType":"YulBlock","src":"224:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"241:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"248:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"253:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"244:3:29"},"nodeType":"YulFunctionCall","src":"244:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"234:6:29"},"nodeType":"YulFunctionCall","src":"234:31:29"},"nodeType":"YulExpressionStatement","src":"234:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"281:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"284:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"274:6:29"},"nodeType":"YulFunctionCall","src":"274:15:29"},"nodeType":"YulExpressionStatement","src":"274:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"305:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"308:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"298:6:29"},"nodeType":"YulFunctionCall","src":"298:15:29"},"nodeType":"YulExpressionStatement","src":"298:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"192:127:29"},{"body":{"nodeType":"YulBlock","src":"371:109:29","statements":[{"nodeType":"YulAssignment","src":"381:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"403:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"390:12:29"},"nodeType":"YulFunctionCall","src":"390:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"381:5:29"}]},{"body":{"nodeType":"YulBlock","src":"458:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"467:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"470:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"460:6:29"},"nodeType":"YulFunctionCall","src":"460:12:29"},"nodeType":"YulExpressionStatement","src":"460:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"432:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"443:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"450:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"439:3:29"},"nodeType":"YulFunctionCall","src":"439:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"429:2:29"},"nodeType":"YulFunctionCall","src":"429:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"422:6:29"},"nodeType":"YulFunctionCall","src":"422:35:29"},"nodeType":"YulIf","src":"419:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"350:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"361:5:29","type":""}],"src":"324:156:29"},{"body":{"nodeType":"YulBlock","src":"630:1058:29","statements":[{"body":{"nodeType":"YulBlock","src":"677:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"686:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"689:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"679:6:29"},"nodeType":"YulFunctionCall","src":"679:12:29"},"nodeType":"YulExpressionStatement","src":"679:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"651:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"660:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"647:3:29"},"nodeType":"YulFunctionCall","src":"647:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"672:3:29","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"643:3:29"},"nodeType":"YulFunctionCall","src":"643:33:29"},"nodeType":"YulIf","src":"640:53:29"},{"nodeType":"YulAssignment","src":"702:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"731:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"712:18:29"},"nodeType":"YulFunctionCall","src":"712:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"702:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"750:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"781:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"792:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:29"},"nodeType":"YulFunctionCall","src":"777:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"764:12:29"},"nodeType":"YulFunctionCall","src":"764:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"754:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"805:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"815:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"809:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"860:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"869:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"872:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"862:6:29"},"nodeType":"YulFunctionCall","src":"862:12:29"},"nodeType":"YulExpressionStatement","src":"862:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"848:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"856:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"845:2:29"},"nodeType":"YulFunctionCall","src":"845:14:29"},"nodeType":"YulIf","src":"842:34:29"},{"nodeType":"YulVariableDeclaration","src":"885:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"899:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"910:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"895:3:29"},"nodeType":"YulFunctionCall","src":"895:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"889:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"965:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"974:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"977:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"967:6:29"},"nodeType":"YulFunctionCall","src":"967:12:29"},"nodeType":"YulExpressionStatement","src":"967:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"944:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"948:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"940:3:29"},"nodeType":"YulFunctionCall","src":"940:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"955:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"936:3:29"},"nodeType":"YulFunctionCall","src":"936:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"929:6:29"},"nodeType":"YulFunctionCall","src":"929:35:29"},"nodeType":"YulIf","src":"926:55:29"},{"nodeType":"YulVariableDeclaration","src":"990:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1013:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1000:12:29"},"nodeType":"YulFunctionCall","src":"1000:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"994:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1039:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1041:16:29"},"nodeType":"YulFunctionCall","src":"1041:18:29"},"nodeType":"YulExpressionStatement","src":"1041:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1031:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1035:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1028:2:29"},"nodeType":"YulFunctionCall","src":"1028:10:29"},"nodeType":"YulIf","src":"1025:36:29"},{"nodeType":"YulVariableDeclaration","src":"1070:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1084:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1080:3:29"},"nodeType":"YulFunctionCall","src":"1080:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1074:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1096:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1116:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1110:5:29"},"nodeType":"YulFunctionCall","src":"1110:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1100:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1128:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1150:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1174:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1178:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:29"},"nodeType":"YulFunctionCall","src":"1170:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1185:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1166:3:29"},"nodeType":"YulFunctionCall","src":"1166:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"1190:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1162:3:29"},"nodeType":"YulFunctionCall","src":"1162:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"1195:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1158:3:29"},"nodeType":"YulFunctionCall","src":"1158:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1146:3:29"},"nodeType":"YulFunctionCall","src":"1146:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1132:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1258:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1260:16:29"},"nodeType":"YulFunctionCall","src":"1260:18:29"},"nodeType":"YulExpressionStatement","src":"1260:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1217:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1229:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1214:2:29"},"nodeType":"YulFunctionCall","src":"1214:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1237:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1249:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1234:2:29"},"nodeType":"YulFunctionCall","src":"1234:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1211:2:29"},"nodeType":"YulFunctionCall","src":"1211:46:29"},"nodeType":"YulIf","src":"1208:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1296:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1300:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:29"},"nodeType":"YulFunctionCall","src":"1289:22:29"},"nodeType":"YulExpressionStatement","src":"1289:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1327:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1335:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1320:6:29"},"nodeType":"YulFunctionCall","src":"1320:18:29"},"nodeType":"YulExpressionStatement","src":"1320:18:29"},{"body":{"nodeType":"YulBlock","src":"1384:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1393:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1396:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1386:6:29"},"nodeType":"YulFunctionCall","src":"1386:12:29"},"nodeType":"YulExpressionStatement","src":"1386:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1361:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1365:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1357:3:29"},"nodeType":"YulFunctionCall","src":"1357:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"1370:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1353:3:29"},"nodeType":"YulFunctionCall","src":"1353:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1375:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1350:2:29"},"nodeType":"YulFunctionCall","src":"1350:33:29"},"nodeType":"YulIf","src":"1347:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1426:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1434:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1422:3:29"},"nodeType":"YulFunctionCall","src":"1422:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1443:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"1447:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1439:3:29"},"nodeType":"YulFunctionCall","src":"1439:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1452:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1409:12:29"},"nodeType":"YulFunctionCall","src":"1409:46:29"},"nodeType":"YulExpressionStatement","src":"1409:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1479:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"1487:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:29"},"nodeType":"YulFunctionCall","src":"1475:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"1492:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1471:3:29"},"nodeType":"YulFunctionCall","src":"1471:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"1497:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1464:6:29"},"nodeType":"YulFunctionCall","src":"1464:35:29"},"nodeType":"YulExpressionStatement","src":"1464:35:29"},{"nodeType":"YulAssignment","src":"1508:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1518:6:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1508:6:29"}]},{"nodeType":"YulAssignment","src":"1533:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1571:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1556:3:29"},"nodeType":"YulFunctionCall","src":"1556:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1543:12:29"},"nodeType":"YulFunctionCall","src":"1543:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1533:6:29"}]},{"nodeType":"YulAssignment","src":"1584:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1622:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:29"},"nodeType":"YulFunctionCall","src":"1607:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1594:12:29"},"nodeType":"YulFunctionCall","src":"1594:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1584:6:29"}]},{"nodeType":"YulAssignment","src":"1635:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1677:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:29"},"nodeType":"YulFunctionCall","src":"1662:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"1645:16:29"},"nodeType":"YulFunctionCall","src":"1645:37:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1635:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"564:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"575:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"587:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"595:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"603:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"611:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"619:6:29","type":""}],"src":"485:1203:29"},{"body":{"nodeType":"YulBlock","src":"1759:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1769:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1778:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1773:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1838:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1863:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"1868:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1859:3:29"},"nodeType":"YulFunctionCall","src":"1859:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1882:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"1887:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1878:3:29"},"nodeType":"YulFunctionCall","src":"1878:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1872:5:29"},"nodeType":"YulFunctionCall","src":"1872:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1852:6:29"},"nodeType":"YulFunctionCall","src":"1852:39:29"},"nodeType":"YulExpressionStatement","src":"1852:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1799:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"1802:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1796:2:29"},"nodeType":"YulFunctionCall","src":"1796:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1810:19:29","statements":[{"nodeType":"YulAssignment","src":"1812:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1821:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"1824:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1817:3:29"},"nodeType":"YulFunctionCall","src":"1817:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1812:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1792:3:29","statements":[]},"src":"1788:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1921:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"1926:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1917:3:29"},"nodeType":"YulFunctionCall","src":"1917:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"1935:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1910:6:29"},"nodeType":"YulFunctionCall","src":"1910:27:29"},"nodeType":"YulExpressionStatement","src":"1910:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1737:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1742:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"1747:6:29","type":""}],"src":"1693:250:29"},{"body":{"nodeType":"YulBlock","src":"1997:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2007:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2027:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2021:5:29"},"nodeType":"YulFunctionCall","src":"2021:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2011:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2049:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"2054:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2042:6:29"},"nodeType":"YulFunctionCall","src":"2042:19:29"},"nodeType":"YulExpressionStatement","src":"2042:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2109:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"2116:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2105:3:29"},"nodeType":"YulFunctionCall","src":"2105:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2127:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"2132:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2123:3:29"},"nodeType":"YulFunctionCall","src":"2123:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"2139:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"2070:34:29"},"nodeType":"YulFunctionCall","src":"2070:76:29"},"nodeType":"YulExpressionStatement","src":"2070:76:29"},{"nodeType":"YulAssignment","src":"2155:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2170:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2183:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2191:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2179:3:29"},"nodeType":"YulFunctionCall","src":"2179:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2200:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2196:3:29"},"nodeType":"YulFunctionCall","src":"2196:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2175:3:29"},"nodeType":"YulFunctionCall","src":"2175:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2166:3:29"},"nodeType":"YulFunctionCall","src":"2166:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"2207:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2162:3:29"},"nodeType":"YulFunctionCall","src":"2162:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2155:3:29"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1974:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1981:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1989:3:29","type":""}],"src":"1948:270:29"},{"body":{"nodeType":"YulBlock","src":"2342:98:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2359:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2370:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2352:6:29"},"nodeType":"YulFunctionCall","src":"2352:21:29"},"nodeType":"YulExpressionStatement","src":"2352:21:29"},{"nodeType":"YulAssignment","src":"2382:52:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2407:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2419:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2430:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2415:3:29"},"nodeType":"YulFunctionCall","src":"2415:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2390:16:29"},"nodeType":"YulFunctionCall","src":"2390:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2382:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2311:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2322:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2333:4:29","type":""}],"src":"2223:217:29"},{"body":{"nodeType":"YulBlock","src":"2546:76:29","statements":[{"nodeType":"YulAssignment","src":"2556:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2568:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2579:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2564:3:29"},"nodeType":"YulFunctionCall","src":"2564:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2556:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2598:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"2609:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2591:6:29"},"nodeType":"YulFunctionCall","src":"2591:25:29"},"nodeType":"YulExpressionStatement","src":"2591:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2515:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2526:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2537:4:29","type":""}],"src":"2445:177:29"},{"body":{"nodeType":"YulBlock","src":"2697:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"2743:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2752:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2755:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2745:6:29"},"nodeType":"YulFunctionCall","src":"2745:12:29"},"nodeType":"YulExpressionStatement","src":"2745:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2718:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2727:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2714:3:29"},"nodeType":"YulFunctionCall","src":"2714:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2739:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2710:3:29"},"nodeType":"YulFunctionCall","src":"2710:32:29"},"nodeType":"YulIf","src":"2707:52:29"},{"nodeType":"YulAssignment","src":"2768:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2797:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2778:18:29"},"nodeType":"YulFunctionCall","src":"2778:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2768:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2663:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2674:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2686:6:29","type":""}],"src":"2627:186:29"},{"body":{"nodeType":"YulBlock","src":"2919:76:29","statements":[{"nodeType":"YulAssignment","src":"2929:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2941:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2952:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2937:3:29"},"nodeType":"YulFunctionCall","src":"2937:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2929:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2971:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"2982:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2964:6:29"},"nodeType":"YulFunctionCall","src":"2964:25:29"},"nodeType":"YulExpressionStatement","src":"2964:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2888:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2899:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2910:4:29","type":""}],"src":"2818:177:29"},{"body":{"nodeType":"YulBlock","src":"3174:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3191:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3202:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3184:6:29"},"nodeType":"YulFunctionCall","src":"3184:21:29"},"nodeType":"YulExpressionStatement","src":"3184:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3225:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3236:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3221:3:29"},"nodeType":"YulFunctionCall","src":"3221:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3241:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3214:6:29"},"nodeType":"YulFunctionCall","src":"3214:30:29"},"nodeType":"YulExpressionStatement","src":"3214:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3264:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3275:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3260:3:29"},"nodeType":"YulFunctionCall","src":"3260:18:29"},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d617463","kind":"string","nodeType":"YulLiteral","src":"3280:34:29","type":"","value":"Signer and signature do not matc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3253:6:29"},"nodeType":"YulFunctionCall","src":"3253:62:29"},"nodeType":"YulExpressionStatement","src":"3253:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3335:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3346:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3331:3:29"},"nodeType":"YulFunctionCall","src":"3331:18:29"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"3351:3:29","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3324:6:29"},"nodeType":"YulFunctionCall","src":"3324:31:29"},"nodeType":"YulExpressionStatement","src":"3324:31:29"},{"nodeType":"YulAssignment","src":"3364:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3376:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3387:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3372:3:29"},"nodeType":"YulFunctionCall","src":"3372:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3364:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3151:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3165:4:29","type":""}],"src":"3000:397:29"},{"body":{"nodeType":"YulBlock","src":"3593:240:29","statements":[{"nodeType":"YulVariableDeclaration","src":"3603:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3621:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3626:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3617:3:29"},"nodeType":"YulFunctionCall","src":"3617:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"3630:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3613:3:29"},"nodeType":"YulFunctionCall","src":"3613:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3607:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3648:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3663:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3671:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3659:3:29"},"nodeType":"YulFunctionCall","src":"3659:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3641:6:29"},"nodeType":"YulFunctionCall","src":"3641:34:29"},"nodeType":"YulExpressionStatement","src":"3641:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3695:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3706:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3691:3:29"},"nodeType":"YulFunctionCall","src":"3691:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3715:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"3723:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3711:3:29"},"nodeType":"YulFunctionCall","src":"3711:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3684:6:29"},"nodeType":"YulFunctionCall","src":"3684:43:29"},"nodeType":"YulExpressionStatement","src":"3684:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3747:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3758:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3743:3:29"},"nodeType":"YulFunctionCall","src":"3743:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"3763:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3736:6:29"},"nodeType":"YulFunctionCall","src":"3736:30:29"},"nodeType":"YulExpressionStatement","src":"3736:30:29"},{"nodeType":"YulAssignment","src":"3775:52:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3800:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3812:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3823:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3808:3:29"},"nodeType":"YulFunctionCall","src":"3808:18:29"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"3783:16:29"},"nodeType":"YulFunctionCall","src":"3783:44:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3775:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3546:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3557:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3565:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3573:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3584:4:29","type":""}],"src":"3402:431:29"},{"body":{"nodeType":"YulBlock","src":"4003:263:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4013:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4033:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4027:5:29"},"nodeType":"YulFunctionCall","src":"4027:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4017:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4088:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4096:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4084:3:29"},"nodeType":"YulFunctionCall","src":"4084:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"4103:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4108:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4049:34:29"},"nodeType":"YulFunctionCall","src":"4049:66:29"},"nodeType":"YulExpressionStatement","src":"4049:66:29"},{"nodeType":"YulVariableDeclaration","src":"4124:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4141:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4146:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4137:3:29"},"nodeType":"YulFunctionCall","src":"4137:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4128:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4169:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4184:2:29","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"4188:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4180:3:29"},"nodeType":"YulFunctionCall","src":"4180:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4201:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4197:3:29"},"nodeType":"YulFunctionCall","src":"4197:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4176:3:29"},"nodeType":"YulFunctionCall","src":"4176:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4162:6:29"},"nodeType":"YulFunctionCall","src":"4162:68:29"},"nodeType":"YulExpressionStatement","src":"4162:68:29"},{"nodeType":"YulAssignment","src":"4239:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4250:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"4257:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4246:3:29"},"nodeType":"YulFunctionCall","src":"4246:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4239:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3971:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3976:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3984:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3995:3:29","type":""}],"src":"3838:428:29"},{"body":{"nodeType":"YulBlock","src":"4408:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"4418:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4438:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4432:5:29"},"nodeType":"YulFunctionCall","src":"4432:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4422:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4493:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4501:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4489:3:29"},"nodeType":"YulFunctionCall","src":"4489:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"4508:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4513:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4454:34:29"},"nodeType":"YulFunctionCall","src":"4454:66:29"},"nodeType":"YulExpressionStatement","src":"4454:66:29"},{"nodeType":"YulAssignment","src":"4529:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4540:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"4545:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4536:3:29"},"nodeType":"YulFunctionCall","src":"4536:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4529:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4384:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4389:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4400:3:29","type":""}],"src":"4271:287:29"},{"body":{"nodeType":"YulBlock","src":"4737:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4754:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4765:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4747:6:29"},"nodeType":"YulFunctionCall","src":"4747:21:29"},"nodeType":"YulExpressionStatement","src":"4747:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4788:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4799:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4784:3:29"},"nodeType":"YulFunctionCall","src":"4784:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"4804:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4777:6:29"},"nodeType":"YulFunctionCall","src":"4777:30:29"},"nodeType":"YulExpressionStatement","src":"4777:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4827:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4838:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4823:3:29"},"nodeType":"YulFunctionCall","src":"4823:18:29"},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","kind":"string","nodeType":"YulLiteral","src":"4843:30:29","type":"","value":"Function call not successful"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4816:6:29"},"nodeType":"YulFunctionCall","src":"4816:58:29"},"nodeType":"YulExpressionStatement","src":"4816:58:29"},{"nodeType":"YulAssignment","src":"4883:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4895:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4906:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4891:3:29"},"nodeType":"YulFunctionCall","src":"4891:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4883:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4714:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4728:4:29","type":""}],"src":"4563:352:29"},{"body":{"nodeType":"YulBlock","src":"5094:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5111:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5122:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5104:6:29"},"nodeType":"YulFunctionCall","src":"5104:21:29"},"nodeType":"YulExpressionStatement","src":"5104:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5145:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5156:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5141:3:29"},"nodeType":"YulFunctionCall","src":"5141:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"5161:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5134:6:29"},"nodeType":"YulFunctionCall","src":"5134:30:29"},"nodeType":"YulExpressionStatement","src":"5134:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5184:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5195:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5180:3:29"},"nodeType":"YulFunctionCall","src":"5180:18:29"},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f53","kind":"string","nodeType":"YulLiteral","src":"5200:34:29","type":"","value":"NativeMetaTransaction: INVALID_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5173:6:29"},"nodeType":"YulFunctionCall","src":"5173:62:29"},"nodeType":"YulExpressionStatement","src":"5173:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5255:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5266:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5251:3:29"},"nodeType":"YulFunctionCall","src":"5251:18:29"},{"hexValue":"49474e4552","kind":"string","nodeType":"YulLiteral","src":"5271:7:29","type":"","value":"IGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5244:6:29"},"nodeType":"YulFunctionCall","src":"5244:35:29"},"nodeType":"YulExpressionStatement","src":"5244:35:29"},{"nodeType":"YulAssignment","src":"5288:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5300:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5311:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5296:3:29"},"nodeType":"YulFunctionCall","src":"5296:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5288:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5071:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5085:4:29","type":""}],"src":"4920:401:29"},{"body":{"nodeType":"YulBlock","src":"5507:217:29","statements":[{"nodeType":"YulAssignment","src":"5517:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5529:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5540:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5525:3:29"},"nodeType":"YulFunctionCall","src":"5525:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5517:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5560:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"5571:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5553:6:29"},"nodeType":"YulFunctionCall","src":"5553:25:29"},"nodeType":"YulExpressionStatement","src":"5553:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5598:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5609:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5594:3:29"},"nodeType":"YulFunctionCall","src":"5594:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5618:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5626:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5614:3:29"},"nodeType":"YulFunctionCall","src":"5614:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5587:6:29"},"nodeType":"YulFunctionCall","src":"5587:45:29"},"nodeType":"YulExpressionStatement","src":"5587:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5652:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5663:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5648:3:29"},"nodeType":"YulFunctionCall","src":"5648:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"5668:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5641:6:29"},"nodeType":"YulFunctionCall","src":"5641:34:29"},"nodeType":"YulExpressionStatement","src":"5641:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5695:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5706:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5691:3:29"},"nodeType":"YulFunctionCall","src":"5691:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"5711:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5684:6:29"},"nodeType":"YulFunctionCall","src":"5684:34:29"},"nodeType":"YulExpressionStatement","src":"5684:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5452:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5463:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5471:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5479:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5487:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5498:4:29","type":""}],"src":"5326:398:29"},{"body":{"nodeType":"YulBlock","src":"5777:174:29","statements":[{"nodeType":"YulAssignment","src":"5787:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5798:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"5801:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5794:3:29"},"nodeType":"YulFunctionCall","src":"5794:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5787:3:29"}]},{"body":{"nodeType":"YulBlock","src":"5834:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5855:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5862:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5867:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5858:3:29"},"nodeType":"YulFunctionCall","src":"5858:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5848:6:29"},"nodeType":"YulFunctionCall","src":"5848:31:29"},"nodeType":"YulExpressionStatement","src":"5848:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5899:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5902:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5892:6:29"},"nodeType":"YulFunctionCall","src":"5892:15:29"},"nodeType":"YulExpressionStatement","src":"5892:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5927:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5930:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5920:6:29"},"nodeType":"YulFunctionCall","src":"5920:15:29"},"nodeType":"YulExpressionStatement","src":"5920:15:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5818:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"5821:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5815:2:29"},"nodeType":"YulFunctionCall","src":"5815:10:29"},"nodeType":"YulIf","src":"5812:133:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5760:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"5763:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5769:3:29","type":""}],"src":"5729:222:29"},{"body":{"nodeType":"YulBlock","src":"6130:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6147:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6158:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6140:6:29"},"nodeType":"YulFunctionCall","src":"6140:21:29"},"nodeType":"YulExpressionStatement","src":"6140:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6192:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6177:3:29"},"nodeType":"YulFunctionCall","src":"6177:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"6197:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6170:6:29"},"nodeType":"YulFunctionCall","src":"6170:30:29"},"nodeType":"YulExpressionStatement","src":"6170:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6220:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6231:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6216:3:29"},"nodeType":"YulFunctionCall","src":"6216:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"6236:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6209:6:29"},"nodeType":"YulFunctionCall","src":"6209:57:29"},"nodeType":"YulExpressionStatement","src":"6209:57:29"},{"nodeType":"YulAssignment","src":"6275:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6287:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6283:3:29"},"nodeType":"YulFunctionCall","src":"6283:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6275:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6107:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6121:4:29","type":""}],"src":"5956:351:29"},{"body":{"nodeType":"YulBlock","src":"6497:232:29","statements":[{"nodeType":"YulAssignment","src":"6507:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6519:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6530:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6515:3:29"},"nodeType":"YulFunctionCall","src":"6515:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6507:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6550:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"6561:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6543:6:29"},"nodeType":"YulFunctionCall","src":"6543:25:29"},"nodeType":"YulExpressionStatement","src":"6543:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6588:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6599:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6584:3:29"},"nodeType":"YulFunctionCall","src":"6584:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"6604:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6577:6:29"},"nodeType":"YulFunctionCall","src":"6577:34:29"},"nodeType":"YulExpressionStatement","src":"6577:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6631:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6642:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6627:3:29"},"nodeType":"YulFunctionCall","src":"6627:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6651:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6667:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6672:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6663:3:29"},"nodeType":"YulFunctionCall","src":"6663:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6676:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6659:3:29"},"nodeType":"YulFunctionCall","src":"6659:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6647:3:29"},"nodeType":"YulFunctionCall","src":"6647:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6620:6:29"},"nodeType":"YulFunctionCall","src":"6620:60:29"},"nodeType":"YulExpressionStatement","src":"6620:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6700:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6711:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6696:3:29"},"nodeType":"YulFunctionCall","src":"6696:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"6716:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6689:6:29"},"nodeType":"YulFunctionCall","src":"6689:34:29"},"nodeType":"YulExpressionStatement","src":"6689:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6442:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6453:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6461:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6469:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6477:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6488:4:29","type":""}],"src":"6312:417:29"},{"body":{"nodeType":"YulBlock","src":"6982:144:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6999:3:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7008:3:29","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"7013:4:29","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7004:3:29"},"nodeType":"YulFunctionCall","src":"7004:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6992:6:29"},"nodeType":"YulFunctionCall","src":"6992:27:29"},"nodeType":"YulExpressionStatement","src":"6992:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7039:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"7044:1:29","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:29"},"nodeType":"YulFunctionCall","src":"7035:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"7048:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:29"},"nodeType":"YulFunctionCall","src":"7028:27:29"},"nodeType":"YulExpressionStatement","src":"7028:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7075:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"7080:2:29","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7071:3:29"},"nodeType":"YulFunctionCall","src":"7071:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"7085:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7064:6:29"},"nodeType":"YulFunctionCall","src":"7064:28:29"},"nodeType":"YulExpressionStatement","src":"7064:28:29"},{"nodeType":"YulAssignment","src":"7101:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7112:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"7117:2:29","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7108:3:29"},"nodeType":"YulFunctionCall","src":"7108:12:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7101:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6950:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6955:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6963:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6974:3:29","type":""}],"src":"6734:392:29"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Signer and signature do not matc\")\n mstore(add(headStart, 96), \"h\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(end_1, 20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Function call not successful\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"NativeMetaTransaction: INVALID_S\")\n mstore(add(headStart, 96), \"IGNER\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC53C51C EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0xC2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57 PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x50C JUMP JUMPDEST PUSH2 0xD5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x64 SWAP2 SWAP1 PUSH2 0x642 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x64 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E PUSH2 0xA7 CALLDATASIZE PUSH1 0x4 PUSH2 0x65C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x7E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x113 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0x16E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x192 SWAP1 PUSH1 0x1 PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x1E2 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x677 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x20A SWAP3 SWAP2 SWAP1 PUSH2 0x6AC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x224 SWAP2 PUSH2 0x6E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x261 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x266 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x32A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x33D PUSH2 0x338 DUP8 PUSH2 0x41C JUMP JUMPDEST PUSH2 0x499 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C1 DUP4 DUP6 PUSH2 0x6FF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x413 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x165 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x721 PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x47C SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A4 PUSH1 0x1 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x47C JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x524 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x52D DUP7 PUSH2 0x4C9 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x570 JUMPI PUSH2 0x570 PUSH2 0x4E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x598 JUMPI PUSH2 0x598 PUSH2 0x4E5 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x5E6 PUSH1 0x80 DUP8 ADD PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x60D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x5F5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x62E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x655 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x655 DUP3 PUSH2 0x4C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x6A3 SWAP1 DUP4 ADD DUP5 PUSH2 0x616 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x6BE DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x5F2 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x6F5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x5F2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x416 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID 0x4D PUSH6 0x74615472616E PUSH20 0x616374696F6E2875696E74323536206E6F6E6365 0x2C PUSH2 0x6464 PUSH19 0x6573732066726F6D2C62797465732066756E63 PUSH21 0x696F6E5369676E617475726529A264697066735822 SLT KECCAK256 0xC0 0xEF PUSH30 0x9248999F2285EFF1B86E454ABED25B72D6CC6591610A4BBBE450AA744364 PUSH20 0x6F6C634300081400330000000000000000000000 ","sourceMap":"44308:2905:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45105:1117;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43354:99;;;;;;;;;;-1:-1:-1;43431:15:27;;43354:99;;;2591:25:29;;;2579:2;2564:18;43354:99:27;2445:177:29;46630:105:27;;;;;;;;;;-1:-1:-1;46630:105:27;;;;;:::i;:::-;-1:-1:-1;;;;;46716:12:27;46683:13;46716:12;;;:6;:12;;;;;;;46630:105;43459:155;;;;;;;;;;-1:-1:-1;43570:9:27;43459:155;;45105:1117;45356:148;;;45300:12;45356:148;;;;;-1:-1:-1;;;;;45393:19:27;;45324:29;45393:19;;;:6;:19;;;;;;;;;45356:148;;;;;;;;;;;45536:45;45400:11;45356:148;45564:4;45570;45576;45536:6;:45::i;:::-;45515:125;;;;-1:-1:-1;;;45515:125:27;;3202:2:29;45515:125:27;;;3184:21:29;3241:2;3221:18;;;3214:30;3280:34;3260:18;;;3253:62;-1:-1:-1;;;3331:18:29;;;3324:31;3372:19;;45515:125:27;;;;;;;;;-1:-1:-1;;;;;45726:19:27;;;;;;:6;:19;;;;;;:26;;45750:1;45726:23;:26::i;:::-;-1:-1:-1;;;;;45704:19:27;;;;;;:6;:19;;;;;;;:48;;;;45768:122;;;;;45711:11;;45838:10;;45863:17;;45768:122;:::i;:::-;;;;;;;;45998:12;46012:23;46047:4;-1:-1:-1;;;;;46039:18:27;46088:17;46107:11;46071:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;46071:48:27;;;;;;;;;;46039:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45997:132;;;;46147:7;46139:48;;;;-1:-1:-1;;;46139:48:27;;4765:2:29;46139:48:27;;;4747:21:29;4804:2;4784:18;;;4777:30;4843;4823:18;;;4816:58;4891:18;;46139:48:27;4563:352:29;46139:48:27;46205:10;45105:1117;-1:-1:-1;;;;;;;;45105:1117:27:o;46741:470::-;46913:4;-1:-1:-1;;;;;46937:20:27;;46929:70;;;;-1:-1:-1;;;46929:70:27;;5122:2:29;46929:70:27;;;5104:21:29;5161:2;5141:18;;;5134:30;5200:34;5180:18;;;5173:62;-1:-1:-1;;;5251:18:29;;;5244:35;5296:19;;46929:70:27;4920:401:29;46929:70:27;47050:154;47077:47;47096:27;47116:6;47096:19;:27::i;:::-;47077:18;:47::i;:::-;47050:154;;;;;;;;;;;;5553:25:29;;;;5626:4;5614:17;;5594:18;;;5587:45;5648:18;;;5641:34;;;5691:18;;;5684:34;;;5525:19;;47050:154:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47028:176:27;:6;-1:-1:-1;;;;;47028:176:27;;47009:195;;46741:470;;;;;;;:::o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;6158:2:29;4705:46:27;;;6140:21:29;6197:2;6177:18;;;6170:30;6236:29;6216:18;;;6209:57;6283:18;;4705:46:27;5956:351:29;4705:46:27;4769:1;-1:-1:-1;4601:176:27;;;;;:::o;46228:396::-;46335:7;44463:98;;;;;;;;;;;;;;;;;44444:123;;;;;;;46483:12;;46517:11;;;;46560:24;;;;;46550:35;;;;;;46404:199;;;;;6543:25:29;;;6599:2;6584:18;;6577:34;;;;-1:-1:-1;;;;;6647:32:29;6642:2;6627:18;;6620:60;6711:2;6696:18;;6689:34;6530:3;6515:19;;6312:417;46404:199:27;;;;;;;;;;;;;46377:240;;;;;;46358:259;;46228:396;;;:::o;43974:249::-;44070:7;44168:20;43431:15;;;43354:99;44168:20;44139:63;;-1:-1:-1;;;44139:63:27;;;6992:27:29;7035:11;;;7028:27;;;;7071:12;;;7064:28;;;7108:12;;44139:63:27;6734:392:29;14:173;82:20;;-1:-1:-1;;;;;131:31:29;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:127::-;253:10;248:3;244:20;241:1;234:31;284:4;281:1;274:15;308:4;305:1;298:15;324:156;390:20;;450:4;439:16;;429:27;;419:55;;470:1;467;460:12;485:1203;587:6;595;603;611;619;672:3;660:9;651:7;647:23;643:33;640:53;;;689:1;686;679:12;640:53;712:29;731:9;712:29;:::i;:::-;702:39;;792:2;781:9;777:18;764:32;815:18;856:2;848:6;845:14;842:34;;;872:1;869;862:12;842:34;910:6;899:9;895:22;885:32;;955:7;948:4;944:2;940:13;936:27;926:55;;977:1;974;967:12;926:55;1013:2;1000:16;1035:2;1031;1028:10;1025:36;;;1041:18;;:::i;:::-;1116:2;1110:9;1084:2;1170:13;;-1:-1:-1;;1166:22:29;;;1190:2;1162:31;1158:40;1146:53;;;1214:18;;;1234:22;;;1211:46;1208:72;;;1260:18;;:::i;:::-;1300:10;1296:2;1289:22;1335:2;1327:6;1320:18;1375:7;1370:2;1365;1361;1357:11;1353:20;1350:33;1347:53;;;1396:1;1393;1386:12;1347:53;1452:2;1447;1443;1439:11;1434:2;1426:6;1422:15;1409:46;1497:1;1492:2;1487;1479:6;1475:15;1471:24;1464:35;1518:6;1508:16;;;;;;;1571:2;1560:9;1556:18;1543:32;1533:42;;1622:2;1611:9;1607:18;1594:32;1584:42;;1645:37;1677:3;1666:9;1662:19;1645:37;:::i;:::-;1635:47;;485:1203;;;;;;;;:::o;1693:250::-;1778:1;1788:113;1802:6;1799:1;1796:13;1788:113;;;1878:11;;;1872:18;1859:11;;;1852:39;1824:2;1817:10;1788:113;;;-1:-1:-1;;1935:1:29;1917:16;;1910:27;1693:250::o;1948:270::-;1989:3;2027:5;2021:12;2054:6;2049:3;2042:19;2070:76;2139:6;2132:4;2127:3;2123:14;2116:4;2109:5;2105:16;2070:76;:::i;:::-;2200:2;2179:15;-1:-1:-1;;2175:29:29;2166:39;;;;2207:4;2162:50;;1948:270;-1:-1:-1;;1948:270:29:o;2223:217::-;2370:2;2359:9;2352:21;2333:4;2390:44;2430:2;2419:9;2415:18;2407:6;2390:44;:::i;:::-;2382:52;2223:217;-1:-1:-1;;;2223:217:29:o;2627:186::-;2686:6;2739:2;2727:9;2718:7;2714:23;2710:32;2707:52;;;2755:1;2752;2745:12;2707:52;2778:29;2797:9;2778:29;:::i;3402:431::-;-1:-1:-1;;;;;3659:15:29;;;3641:34;;3711:15;;3706:2;3691:18;;3684:43;3763:2;3758;3743:18;;3736:30;;;3584:4;;3783:44;;3808:18;;3800:6;3783:44;:::i;:::-;3775:52;3402:431;-1:-1:-1;;;;;3402:431:29:o;3838:428::-;3995:3;4033:6;4027:13;4049:66;4108:6;4103:3;4096:4;4088:6;4084:17;4049:66;:::i;:::-;4184:2;4180:15;;;;-1:-1:-1;;4176:53:29;4137:16;;;;4162:68;;;4257:2;4246:14;;3838:428;-1:-1:-1;;3838:428:29:o;4271:287::-;4400:3;4438:6;4432:13;4454:66;4513:6;4508:3;4501:4;4493:6;4489:17;4454:66;:::i;:::-;4536:16;;;;;4271:287;-1:-1:-1;;4271:287:29:o;5729:222::-;5794:9;;;5815:10;;;5812:133;;;5867:10;5862:3;5858:20;5855:1;5848:31;5902:4;5899:1;5892:15;5930:4;5927:1;5920:15"},"methodIdentifiers":{"executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)":"0c53c51c","getChainId()":"3408e470","getDomainSeperator()":"20379ee5","getNonce(address)":"2d0335ab"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"relayerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"}],\"name\":\"MetaTransactionExecuted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"}],\"name\":\"executeMetaTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"NativeMetaTransaction\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"NofTestDAIV3":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSITOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"childChainManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"allowed","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11161":{"entryPoint":null,"id":11161,"parameterSlots":0,"returnSlots":0},"@_9517":{"entryPoint":null,"id":9517,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":205,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":288,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":145,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":123,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"201:325:29","statements":[{"nodeType":"YulAssignment","src":"211:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:29"},"nodeType":"YulFunctionCall","src":"221:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:29"},"nodeType":"YulFunctionCall","src":"268:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:29","statements":[{"nodeType":"YulAssignment","src":"321:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:29"},"nodeType":"YulFunctionCall","src":"331:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:29"},"nodeType":"YulFunctionCall","src":"292:26:29"},"nodeType":"YulIf","src":"289:61:29"},{"body":{"nodeType":"YulBlock","src":"409:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:29"},"nodeType":"YulFunctionCall","src":"467:15:29"},"nodeType":"YulExpressionStatement","src":"467:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:29"},"nodeType":"YulFunctionCall","src":"495:15:29"},"nodeType":"YulExpressionStatement","src":"495:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:29"},"nodeType":"YulFunctionCall","src":"385:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:29"},"nodeType":"YulFunctionCall","src":"362:38:29"},"nodeType":"YulIf","src":"359:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:29","type":""}],"src":"146:380:29"},{"body":{"nodeType":"YulBlock","src":"587:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:29"},"nodeType":"YulFunctionCall","src":"597:14:29"},"nodeType":"YulExpressionStatement","src":"597:14:29"},{"nodeType":"YulAssignment","src":"620:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:29"},"nodeType":"YulFunctionCall","src":"628:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:29","type":""}],"src":"531:121:29"},{"body":{"nodeType":"YulBlock","src":"738:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:17:29"},"nodeType":"YulExpressionStatement","src":"809:17:29"},{"nodeType":"YulVariableDeclaration","src":"839:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:29"},"nodeType":"YulFunctionCall","src":"851:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:29"},"nodeType":"YulFunctionCall","src":"919:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:29"},"nodeType":"YulFunctionCall","src":"912:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:29","statements":[{"nodeType":"YulAssignment","src":"979:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:29"},"nodeType":"YulFunctionCall","src":"956:20:29"},"nodeType":"YulIf","src":"953:47:29"},{"nodeType":"YulVariableDeclaration","src":"1013:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:29"},"nodeType":"YulFunctionCall","src":"1040:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:29"},"nodeType":"YulFunctionCall","src":"1033:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:29"},"nodeType":"YulFunctionCall","src":"1167:17:29"},"nodeType":"YulExpressionStatement","src":"1167:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:29"},"nodeType":"YulFunctionCall","src":"1112:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:29","statements":[{"nodeType":"YulAssignment","src":"1128:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:29"},"nodeType":"YulFunctionCall","src":"1137:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:29","statements":[]},"src":"1104:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:29"},"nodeType":"YulFunctionCall","src":"751:11:29"},"nodeType":"YulIf","src":"748:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:29","type":""}],"src":"657:545:29"},{"body":{"nodeType":"YulBlock","src":"1292:81:29","statements":[{"nodeType":"YulAssignment","src":"1302:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:29"},"nodeType":"YulFunctionCall","src":"1331:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:29"},"nodeType":"YulFunctionCall","src":"1344:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:29"},"nodeType":"YulFunctionCall","src":"1327:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:29"},"nodeType":"YulFunctionCall","src":"1323:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:29"},"nodeType":"YulFunctionCall","src":"1313:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:29"},"nodeType":"YulFunctionCall","src":"1355:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:29"},"nodeType":"YulFunctionCall","src":"1310:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:29","type":""}],"src":"1207:166:29"},{"body":{"nodeType":"YulBlock","src":"1474:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:29"},"nodeType":"YulFunctionCall","src":"1498:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:29"},"nodeType":"YulFunctionCall","src":"1553:18:29"},"nodeType":"YulExpressionStatement","src":"1553:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:29"},"nodeType":"YulFunctionCall","src":"1535:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:29"},"nodeType":"YulFunctionCall","src":"1531:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulIf","src":"1517:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:29"},"nodeType":"YulFunctionCall","src":"1658:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:29"},"nodeType":"YulFunctionCall","src":"1632:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:29"},"nodeType":"YulFunctionCall","src":"1582:97:29"},"nodeType":"YulExpressionStatement","src":"1582:97:29"},{"nodeType":"YulVariableDeclaration","src":"1688:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:29","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:29"},"nodeType":"YulFunctionCall","src":"1846:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:29"},"nodeType":"YulFunctionCall","src":"1893:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:29"},"nodeType":"YulFunctionCall","src":"2067:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:29"},"nodeType":"YulFunctionCall","src":"2061:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:29"},"nodeType":"YulFunctionCall","src":"2046:42:29"},"nodeType":"YulExpressionStatement","src":"2046:42:29"},{"nodeType":"YulAssignment","src":"2105:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:29"},"nodeType":"YulFunctionCall","src":"2115:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:29"}]},{"nodeType":"YulAssignment","src":"2146:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:29"},"nodeType":"YulFunctionCall","src":"2159:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:29"},"nodeType":"YulFunctionCall","src":"1972:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:29","statements":[{"nodeType":"YulAssignment","src":"1989:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:29"},"nodeType":"YulFunctionCall","src":"1994:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:29","statements":[]},"src":"1964:236:29"},{"body":{"nodeType":"YulBlock","src":"2248:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:29"},"nodeType":"YulFunctionCall","src":"2289:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:29"},"nodeType":"YulFunctionCall","src":"2283:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:29"},"nodeType":"YulFunctionCall","src":"2368:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:29"},"nodeType":"YulFunctionCall","src":"2364:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:29"},"nodeType":"YulFunctionCall","src":"2390:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:29"},"nodeType":"YulFunctionCall","src":"2360:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:29"},"nodeType":"YulFunctionCall","src":"2356:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:29"},"nodeType":"YulFunctionCall","src":"2341:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:29"},"nodeType":"YulFunctionCall","src":"2326:74:29"},"nodeType":"YulExpressionStatement","src":"2326:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:29"},"nodeType":"YulFunctionCall","src":"2216:19:29"},"nodeType":"YulIf","src":"2213:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:29"},"nodeType":"YulFunctionCall","src":"2444:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:29"},"nodeType":"YulFunctionCall","src":"2440:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:29"},"nodeType":"YulFunctionCall","src":"2427:36:29"},"nodeType":"YulExpressionStatement","src":"2427:36:29"}]},"nodeType":"YulCase","src":"1810:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:29","statements":[{"nodeType":"YulAssignment","src":"2571:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:29"},"nodeType":"YulFunctionCall","src":"2586:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:29"},"nodeType":"YulFunctionCall","src":"2580:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:29"},"nodeType":"YulIf","src":"2531:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:29"},"nodeType":"YulFunctionCall","src":"2646:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:81:29"},"nodeType":"YulExpressionStatement","src":"2633:81:29"}]},"nodeType":"YulCase","src":"2482:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:29"},"nodeType":"YulFunctionCall","src":"1787:14:29"},"nodeType":"YulSwitch","src":"1780:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:29","type":""}],"src":"1378:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127d580620001fc6000396000f3fe6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH3 0x444149 PUSH1 0xE8 SHL PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP3 DUP6 MSTORE DUP5 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH3 0x56 DUP4 DUP3 PUSH3 0x120 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x65 DUP3 DUP3 PUSH3 0x120 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE POP PUSH3 0x1EC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0xA6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x11B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xF6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x117 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x102 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x7B JUMP JUMPDEST PUSH3 0x154 DUP2 PUSH3 0x14D DUP5 SLOAD PUSH3 0x91 JUMP JUMPDEST DUP5 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x18C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x173 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x117 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1BD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x19C JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x1DC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x27D5 DUP1 PUSH3 0x1FC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x230 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5353A2D8 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xCF2C52CB GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x6E5 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x705 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x725 JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x76B JUMPI DUP1 PUSH4 0xF2D5D56B EQ PUSH2 0x78B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x665 JUMPI DUP1 PUSH4 0xB753A98C EQ PUSH2 0x685 JUMPI DUP1 PUSH4 0xBB35783B EQ PUSH2 0x6A5 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x55A JUMPI DUP1 PUSH4 0x8FCBAF0C EQ PUSH2 0x56F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x180 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x45A JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x203 JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x2BD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x7AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x83D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x24A PUSH2 0x2CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1F85 JUMP JUMPDEST PUSH2 0x85B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x399 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x3C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0xAD1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x421 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xAE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4AA CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xB75 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xBFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xC4D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x50A CALLDATASIZE PUSH1 0x4 PUSH2 0x2150 JUMP JUMPDEST PUSH2 0xD2C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x566 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x2192 JUMP JUMPDEST PUSH2 0xDF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5AF PUSH2 0x5AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2214 JUMP JUMPDEST PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x5E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x1087 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x109F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x660 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x10AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x680 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x112A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x6E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0x1146 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x700 CALLDATASIZE PUSH1 0x4 PUSH2 0x2236 JUMP JUMPDEST PUSH2 0x115D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x711 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x720 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x11CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x740 CALLDATASIZE PUSH1 0x4 PUSH2 0x2289 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x786 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B3 JUMP JUMPDEST PUSH2 0x124F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x7A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 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 0x7E6 SWAP1 PUSH2 0x2343 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x833 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x808 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x833 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x816 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x84A PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x899 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x1532 JUMP JUMPDEST PUSH2 0x8F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x918 SWAP1 PUSH1 0x1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x968 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x237D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP3 SWAP2 SWAP1 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x9AA SWAP2 PUSH2 0x23E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9E7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA3E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA57 DUP5 DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xAC7 DUP5 PUSH2 0xA63 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2753 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0xAA1 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAE2 PUSH2 0xADC PUSH2 0x13FE JUMP JUMPDEST DUP3 PUSH2 0x183E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xB03 SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x1942 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB7D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x19AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0xC0C PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xC1D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xCB0 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCD6 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xD5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH2 0xD9A DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1A20 SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE02 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP14 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP11 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP9 SWAP1 MSTORE DUP7 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE9C SWAP3 SWAP2 SWAP1 PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP5 MSTORE SWAP1 DUP4 ADD DUP1 DUP4 MSTORE DUP2 SWAP1 MSTORE PUSH1 0xFF DUP8 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D5045524D495400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST DUP6 ISZERO DUP1 PUSH2 0xF7B JUMPI POP DUP6 TIMESTAMP GT ISZERO JUMPDEST PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A205045524D49542D4558504952454400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xFEB DUP4 PUSH2 0x249D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE DUP8 EQ PUSH2 0x103D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D4E4F4E43450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH2 0x104B JUMPI PUSH1 0x0 PUSH2 0x104F JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST SWAP1 POP PUSH2 0x105C DUP11 DUP11 DUP4 PUSH2 0x140D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AB3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x10BB PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x10E5 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x1123 PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xDF2 CALLER DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH2 0x1140 DUP4 DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x855 SWAP1 PUSH2 0x1AD5 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0x118A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x11AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x11B9 DUP4 DUP6 ADD DUP6 PUSH2 0x20A7 JUMP JUMPDEST SWAP1 POP PUSH2 0x11C5 DUP6 DUP3 PUSH2 0xC4D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x11EA SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x12D2 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1311 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1ADF SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0x134A DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1336 SWAP3 SWAP2 SWAP1 PUSH2 0x24B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1AEB JUMP JUMPDEST PUSH2 0x135C PUSH1 0x0 PUSH2 0x1357 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x1386 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x13DE 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1B19 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP3 CALLER DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH2 0x1B78 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x146F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1598 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH2 0x15AB PUSH2 0x15A6 DUP8 PUSH2 0x1BD4 JUMP JUMPDEST PUSH2 0x1C51 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x162F DUP4 DUP6 PUSH2 0x24D7 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x16E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1784 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x272D PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x17B3 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x1525 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x1828 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1835 DUP5 DUP7 PUSH2 0x24EA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x189E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x18DB DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2679 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x1901 SWAP1 DUP3 PUSH2 0x1C81 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x195A SWAP1 DUP3 PUSH2 0x1CC3 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x1967 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19C3 SWAP1 DUP3 PUSH2 0x1CD8 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x19D0 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x26DE PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x1A58 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH2 0x1CED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1080 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x855 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AFC SWAP2 SWAP1 PUSH2 0x260B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B5D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1B67 DUP3 DUP3 PUSH2 0x1A20 JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x1BD1 SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x269B PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x1C34 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5C PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x1C34 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1DC2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x1D4B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1D60 JUMPI PUSH2 0x1D60 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1DBA JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x855 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x0 PUSH2 0x1DE6 PUSH1 0x1 DUP4 PUSH2 0x24EA JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DFA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x24EA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1E13 JUMPI PUSH2 0x1E13 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1E36 JUMPI PUSH2 0x1E36 PUSH2 0x264C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1E4D DUP4 PUSH1 0x1 PUSH2 0x24D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1E6F JUMPI PUSH2 0x1E6F PUSH2 0x2662 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ED0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB8 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EF1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1080 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F50 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FA6 DUP7 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1FC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1FE9 JUMPI PUSH2 0x1FE9 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2011 JUMPI PUSH2 0x2011 PUSH2 0x1F5E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x202A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x205F PUSH1 0x80 DUP8 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2089 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH2 0x2097 PUSH1 0x20 DUP6 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1080 DUP3 PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2186 DUP6 DUP3 DUP7 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x21AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21B8 DUP10 PUSH2 0x1F18 JUMP JUMPDEST SWAP8 POP PUSH2 0x21C6 PUSH1 0x20 DUP11 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x21E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 POP PUSH2 0x21F7 PUSH1 0xA0 DUP11 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP3 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xE0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x224B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2254 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x227C DUP7 DUP3 DUP8 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A5 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x22E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F0 DUP11 DUP4 DUP12 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2316 DUP10 DUP3 DUP11 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x2329 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP2 POP PUSH2 0x2337 PUSH1 0x60 DUP9 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2357 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2377 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1835 SWAP1 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x23BB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x23F2 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x2410 DUP2 PUSH2 0x2343 JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2431 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x244B JUMPI PUSH2 0x2479 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2479 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2471 JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2456 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x24AF JUMPI PUSH2 0x24AF PUSH2 0x2487 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xDF2 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2524 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2543 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2530 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2565 JUMPI PUSH2 0x2565 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x2579 DUP2 PUSH2 0x2573 DUP5 SLOAD PUSH2 0x2343 JUMP JUMPDEST DUP5 PUSH2 0x24FD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x25AE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2596 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2543 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x25DD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x25BE JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x25FB JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x261D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 SIGNEXTEND 0x28 DUP2 EXTCODECOPY DUP10 DUP12 SDIV DUP14 0xB9 SELFBALANCE 0xDE NOT PUSH26 0x48E4A016DE2D4EB44C0A299D2131490F4DBA2564736F6C634300 ADDMOD EQ STOP CALLER ","sourceMap":"50794:1672:27:-:0;;;41986:19;;;-1:-1:-1;;41986:19:27;;;50794:1672;;;;;;;;;-1:-1:-1;16994:142:27;;;;;;;;;;;;-1:-1:-1;;;16994:142:27;;;;;;;;;;;;;;;;;;;;;;;;17063:14;16994:142;;17063:14;:::i;:::-;-1:-1:-1;17087:7:27;:18;17097:8;17087:7;:18;:::i;:::-;-1:-1:-1;;17115:9:27;:14;;-1:-1:-1;;17115:14:27;17127:2;17115:14;;;-1:-1:-1;50794:1672:27;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:29;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:29;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:29;;;2580:26;2531:89;-1:-1:-1;;1335:1:29;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:29;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:29;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:29;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:29:o;:::-;50794:1672:27;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CHILD_CHAIN_ID_11091":{"entryPoint":null,"id":11091,"parameterSlots":0,"returnSlots":0},"@CHILD_CHAIN_ID_BYTES_11094":{"entryPoint":null,"id":11094,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_10446":{"entryPoint":null,"id":10446,"parameterSlots":0,"returnSlots":0},"@DEPOSITOR_ROLE_11153":{"entryPoint":null,"id":11153,"parameterSlots":0,"returnSlots":0},"@ERC712_VERSION_11082":{"entryPoint":null,"id":11082,"parameterSlots":0,"returnSlots":0},"@PERMIT_TYPEHASH_11292":{"entryPoint":null,"id":11292,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_11085":{"entryPoint":null,"id":11085,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_BYTES_11088":{"entryPoint":null,"id":11088,"parameterSlots":0,"returnSlots":0},"@_add_10050":{"entryPoint":7539,"id":10050,"parameterSlots":2,"returnSlots":1},"@_approve_9975":{"entryPoint":5133,"id":9975,"parameterSlots":3,"returnSlots":0},"@_at_10190":{"entryPoint":7405,"id":10190,"parameterSlots":2,"returnSlots":1},"@_beforeTokenTransfer_9997":{"entryPoint":null,"id":9997,"parameterSlots":3,"returnSlots":0},"@_burn_9930":{"entryPoint":6206,"id":9930,"parameterSlots":2,"returnSlots":0},"@_contains_10150":{"entryPoint":null,"id":10150,"parameterSlots":2,"returnSlots":1},"@_grantRole_10678":{"entryPoint":6466,"id":10678,"parameterSlots":2,"returnSlots":0},"@_initializeEIP712_10806":{"entryPoint":6937,"id":10806,"parameterSlots":2,"returnSlots":0},"@_length_10164":{"entryPoint":null,"id":10164,"parameterSlots":1,"returnSlots":1},"@_mint_9874":{"entryPoint":3149,"id":9874,"parameterSlots":2,"returnSlots":0},"@_msgSender_11226":{"entryPoint":5118,"id":11226,"parameterSlots":0,"returnSlots":1},"@_remove_10131":{"entryPoint":7618,"id":10131,"parameterSlots":2,"returnSlots":1},"@_revokeRole_10702":{"entryPoint":6571,"id":10702,"parameterSlots":2,"returnSlots":0},"@_setDomainSeperator_10844":{"entryPoint":6688,"id":10844,"parameterSlots":2,"returnSlots":0},"@_setupContractId_10725":{"entryPoint":6891,"id":10725,"parameterSlots":1,"returnSlots":0},"@_setupRole_10629":{"entryPoint":null,"id":10629,"parameterSlots":2,"returnSlots":0},"@_transfer_9819":{"entryPoint":5761,"id":9819,"parameterSlots":3,"returnSlots":0},"@add_10221":{"entryPoint":7363,"id":10221,"parameterSlots":2,"returnSlots":1},"@add_9096":{"entryPoint":5666,"id":9096,"parameterSlots":2,"returnSlots":1},"@allowance_9637":{"entryPoint":null,"id":9637,"parameterSlots":2,"returnSlots":1},"@approve_9658":{"entryPoint":2109,"id":9658,"parameterSlots":2,"returnSlots":1},"@at_10317":{"entryPoint":6823,"id":10317,"parameterSlots":2,"returnSlots":1},"@balanceOf_9598":{"entryPoint":null,"id":9598,"parameterSlots":1,"returnSlots":1},"@changeName_11244":{"entryPoint":3372,"id":11244,"parameterSlots":2,"returnSlots":0},"@contains_10275":{"entryPoint":6835,"id":10275,"parameterSlots":2,"returnSlots":1},"@decimals_9564":{"entryPoint":null,"id":9564,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9753":{"entryPoint":4270,"id":9753,"parameterSlots":2,"returnSlots":1},"@deposit_11272":{"entryPoint":4445,"id":11272,"parameterSlots":3,"returnSlots":0},"@executeMetaTransaction_10999":{"entryPoint":2139,"id":10999,"parameterSlots":5,"returnSlots":1},"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"@getNonce_11037":{"entryPoint":null,"id":11037,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_10541":{"entryPoint":null,"id":10541,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_10508":{"entryPoint":4422,"id":10508,"parameterSlots":1,"returnSlots":1},"@getRoleMember_10527":{"entryPoint":4200,"id":10527,"parameterSlots":2,"returnSlots":1},"@grantRole_10567":{"entryPoint":2789,"id":10567,"parameterSlots":2,"returnSlots":0},"@hasRole_10492":{"entryPoint":4231,"id":10492,"parameterSlots":2,"returnSlots":1},"@hashMetaTransaction_11023":{"entryPoint":7124,"id":11023,"parameterSlots":1,"returnSlots":1},"@increaseAllowance_9724":{"entryPoint":3071,"id":9724,"parameterSlots":2,"returnSlots":1},"@initialize_11215":{"entryPoint":4687,"id":11215,"parameterSlots":6,"returnSlots":0},"@length_10290":{"entryPoint":6869,"id":10290,"parameterSlots":1,"returnSlots":1},"@move_11338":{"entryPoint":4405,"id":11338,"parameterSlots":3,"returnSlots":0},"@msgSender_11134":{"entryPoint":7032,"id":11134,"parameterSlots":0,"returnSlots":1},"@name_9526":{"entryPoint":1963,"id":9526,"parameterSlots":0,"returnSlots":1},"@permit_11431":{"entryPoint":3575,"id":11431,"parameterSlots":8,"returnSlots":0},"@pull_11322":{"entryPoint":5107,"id":11322,"parameterSlots":2,"returnSlots":0},"@push_11307":{"entryPoint":4394,"id":11307,"parameterSlots":2,"returnSlots":0},"@remove_10248":{"entryPoint":7384,"id":10248,"parameterSlots":2,"returnSlots":1},"@renounceRole_10615":{"entryPoint":2933,"id":10615,"parameterSlots":2,"returnSlots":0},"@revokeRole_10593":{"entryPoint":4556,"id":10593,"parameterSlots":2,"returnSlots":0},"@setDecimals_9574":{"entryPoint":null,"id":9574,"parameterSlots":1,"returnSlots":0},"@setName_9536":{"entryPoint":6676,"id":9536,"parameterSlots":1,"returnSlots":0},"@setSymbol_9555":{"entryPoint":6879,"id":9555,"parameterSlots":1,"returnSlots":0},"@sub_9113":{"entryPoint":7297,"id":9113,"parameterSlots":2,"returnSlots":1},"@sub_9141":{"entryPoint":6148,"id":9141,"parameterSlots":3,"returnSlots":1},"@symbol_9545":{"entryPoint":4255,"id":9545,"parameterSlots":0,"returnSlots":1},"@toTypedMessageHash_10883":{"entryPoint":7249,"id":10883,"parameterSlots":1,"returnSlots":1},"@totalSupply_9584":{"entryPoint":null,"id":9584,"parameterSlots":0,"returnSlots":1},"@transferFrom_9696":{"entryPoint":2634,"id":9696,"parameterSlots":3,"returnSlots":1},"@transfer_9619":{"entryPoint":4374,"id":9619,"parameterSlots":2,"returnSlots":1},"@verify_11077":{"entryPoint":5426,"id":11077,"parameterSlots":5,"returnSlots":1},"@withdraw_11285":{"entryPoint":2769,"id":11285,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":7960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":8455,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":8384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":8841,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":8299,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_boolt_uint8t_bytes32t_bytes32":{"entryPoint":8594,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":8758,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8":{"entryPoint":8069,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7988,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":8359,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":8411,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":8724,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":8528,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address":{"entryPoint":8883,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":8052,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_string":{"entryPoint":7897,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9184,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":9129,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9739,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9398,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9085,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7941,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9212,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9431,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":9450,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":9469,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":9547,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":7861,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":9027,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":9373,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":9351,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":9826,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9804,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":8030,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24158:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"80:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"90:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"99:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"94:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"159:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"184:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"189:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"180:3:29"},"nodeType":"YulFunctionCall","src":"180:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"203:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"208:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"199:3:29"},"nodeType":"YulFunctionCall","src":"199:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"193:5:29"},"nodeType":"YulFunctionCall","src":"193:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"173:6:29"},"nodeType":"YulFunctionCall","src":"173:39:29"},"nodeType":"YulExpressionStatement","src":"173:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"120:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"123:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"117:2:29"},"nodeType":"YulFunctionCall","src":"117:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"131:19:29","statements":[{"nodeType":"YulAssignment","src":"133:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"142:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"145:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"138:3:29"},"nodeType":"YulFunctionCall","src":"138:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"133:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"113:3:29","statements":[]},"src":"109:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"242:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"247:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"238:3:29"},"nodeType":"YulFunctionCall","src":"238:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"231:6:29"},"nodeType":"YulFunctionCall","src":"231:27:29"},"nodeType":"YulExpressionStatement","src":"231:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"58:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"63:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"68:6:29","type":""}],"src":"14:250:29"},{"body":{"nodeType":"YulBlock","src":"319:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"329:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"349:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"343:5:29"},"nodeType":"YulFunctionCall","src":"343:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"333:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"371:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"376:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"364:6:29"},"nodeType":"YulFunctionCall","src":"364:19:29"},"nodeType":"YulExpressionStatement","src":"364:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"431:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"438:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:29"},"nodeType":"YulFunctionCall","src":"427:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"449:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"454:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:29"},"nodeType":"YulFunctionCall","src":"445:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"461:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"392:34:29"},"nodeType":"YulFunctionCall","src":"392:76:29"},"nodeType":"YulExpressionStatement","src":"392:76:29"},{"nodeType":"YulAssignment","src":"477:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"492:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"505:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"513:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:29"},"nodeType":"YulFunctionCall","src":"501:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"522:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"518:3:29"},"nodeType":"YulFunctionCall","src":"518:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"497:3:29"},"nodeType":"YulFunctionCall","src":"497:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:29"},"nodeType":"YulFunctionCall","src":"488:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"529:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"484:3:29"},"nodeType":"YulFunctionCall","src":"484:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"477:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"296:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"303:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"311:3:29","type":""}],"src":"269:271:29"},{"body":{"nodeType":"YulBlock","src":"666:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"694:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"676:6:29"},"nodeType":"YulFunctionCall","src":"676:21:29"},"nodeType":"YulExpressionStatement","src":"676:21:29"},{"nodeType":"YulAssignment","src":"706:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"732:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"744:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"755:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"740:3:29"},"nodeType":"YulFunctionCall","src":"740:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"714:17:29"},"nodeType":"YulFunctionCall","src":"714:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"706:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"635:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"646:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"657:4:29","type":""}],"src":"545:220:29"},{"body":{"nodeType":"YulBlock","src":"819:124:29","statements":[{"nodeType":"YulAssignment","src":"829:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"851:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"838:12:29"},"nodeType":"YulFunctionCall","src":"838:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"829:5:29"}]},{"body":{"nodeType":"YulBlock","src":"921:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"930:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"933:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"923:6:29"},"nodeType":"YulFunctionCall","src":"923:12:29"},"nodeType":"YulExpressionStatement","src":"923:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"880:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"891:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"906:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"911:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"915:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:29"},"nodeType":"YulFunctionCall","src":"898:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"887:3:29"},"nodeType":"YulFunctionCall","src":"887:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"877:2:29"},"nodeType":"YulFunctionCall","src":"877:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"870:6:29"},"nodeType":"YulFunctionCall","src":"870:50:29"},"nodeType":"YulIf","src":"867:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"798:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"809:5:29","type":""}],"src":"770:173:29"},{"body":{"nodeType":"YulBlock","src":"1035:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"1081:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1090:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1093:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1083:6:29"},"nodeType":"YulFunctionCall","src":"1083:12:29"},"nodeType":"YulExpressionStatement","src":"1083:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1056:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1052:3:29"},"nodeType":"YulFunctionCall","src":"1052:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1077:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1048:3:29"},"nodeType":"YulFunctionCall","src":"1048:32:29"},"nodeType":"YulIf","src":"1045:52:29"},{"nodeType":"YulAssignment","src":"1106:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1135:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1116:18:29"},"nodeType":"YulFunctionCall","src":"1116:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1106:6:29"}]},{"nodeType":"YulAssignment","src":"1154:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1192:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:29"},"nodeType":"YulFunctionCall","src":"1177:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1164:12:29"},"nodeType":"YulFunctionCall","src":"1164:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1154:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"993:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1004:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1016:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1024:6:29","type":""}],"src":"948:254:29"},{"body":{"nodeType":"YulBlock","src":"1302:92:29","statements":[{"nodeType":"YulAssignment","src":"1312:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1324:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1335:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1320:3:29"},"nodeType":"YulFunctionCall","src":"1320:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1312:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1379:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1372:6:29"},"nodeType":"YulFunctionCall","src":"1372:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1365:6:29"},"nodeType":"YulFunctionCall","src":"1365:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1347:6:29"},"nodeType":"YulFunctionCall","src":"1347:41:29"},"nodeType":"YulExpressionStatement","src":"1347:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1271:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1282:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1293:4:29","type":""}],"src":"1207:187:29"},{"body":{"nodeType":"YulBlock","src":"1518:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1535:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1546:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1528:6:29"},"nodeType":"YulFunctionCall","src":"1528:21:29"},"nodeType":"YulExpressionStatement","src":"1528:21:29"},{"nodeType":"YulAssignment","src":"1558:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1584:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1596:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:29"},"nodeType":"YulFunctionCall","src":"1592:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1566:17:29"},"nodeType":"YulFunctionCall","src":"1566:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1558:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1487:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1498:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1509:4:29","type":""}],"src":"1399:218:29"},{"body":{"nodeType":"YulBlock","src":"1654:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1671:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1678:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1683:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1674:3:29"},"nodeType":"YulFunctionCall","src":"1674:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1664:6:29"},"nodeType":"YulFunctionCall","src":"1664:31:29"},"nodeType":"YulExpressionStatement","src":"1664:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1711:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1714:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1704:6:29"},"nodeType":"YulFunctionCall","src":"1704:15:29"},"nodeType":"YulExpressionStatement","src":"1704:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1735:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1738:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1728:6:29"},"nodeType":"YulFunctionCall","src":"1728:15:29"},"nodeType":"YulExpressionStatement","src":"1728:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1622:127:29"},{"body":{"nodeType":"YulBlock","src":"1801:109:29","statements":[{"nodeType":"YulAssignment","src":"1811:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1820:12:29"},"nodeType":"YulFunctionCall","src":"1820:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1811:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1888:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1897:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1900:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1890:6:29"},"nodeType":"YulFunctionCall","src":"1890:12:29"},"nodeType":"YulExpressionStatement","src":"1890:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1873:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1880:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1869:3:29"},"nodeType":"YulFunctionCall","src":"1869:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1859:2:29"},"nodeType":"YulFunctionCall","src":"1859:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1852:6:29"},"nodeType":"YulFunctionCall","src":"1852:35:29"},"nodeType":"YulIf","src":"1849:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1791:5:29","type":""}],"src":"1754:156:29"},{"body":{"nodeType":"YulBlock","src":"2060:1058:29","statements":[{"body":{"nodeType":"YulBlock","src":"2107:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2116:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2119:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2109:6:29"},"nodeType":"YulFunctionCall","src":"2109:12:29"},"nodeType":"YulExpressionStatement","src":"2109:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2081:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2090:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2077:3:29"},"nodeType":"YulFunctionCall","src":"2077:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2102:3:29","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2073:3:29"},"nodeType":"YulFunctionCall","src":"2073:33:29"},"nodeType":"YulIf","src":"2070:53:29"},{"nodeType":"YulAssignment","src":"2132:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2161:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2142:18:29"},"nodeType":"YulFunctionCall","src":"2142:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2132:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2180:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2211:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2222:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2207:3:29"},"nodeType":"YulFunctionCall","src":"2207:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2194:12:29"},"nodeType":"YulFunctionCall","src":"2194:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2184:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2235:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2245:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2239:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2290:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2299:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2302:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2292:6:29"},"nodeType":"YulFunctionCall","src":"2292:12:29"},"nodeType":"YulExpressionStatement","src":"2292:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2278:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2286:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2275:2:29"},"nodeType":"YulFunctionCall","src":"2275:14:29"},"nodeType":"YulIf","src":"2272:34:29"},{"nodeType":"YulVariableDeclaration","src":"2315:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2329:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"2340:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2325:3:29"},"nodeType":"YulFunctionCall","src":"2325:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2319:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2395:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2404:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2407:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2397:6:29"},"nodeType":"YulFunctionCall","src":"2397:12:29"},"nodeType":"YulExpressionStatement","src":"2397:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2374:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2378:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2370:3:29"},"nodeType":"YulFunctionCall","src":"2370:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2385:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2366:3:29"},"nodeType":"YulFunctionCall","src":"2366:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2359:6:29"},"nodeType":"YulFunctionCall","src":"2359:35:29"},"nodeType":"YulIf","src":"2356:55:29"},{"nodeType":"YulVariableDeclaration","src":"2420:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2443:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2430:12:29"},"nodeType":"YulFunctionCall","src":"2430:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2424:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2469:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2471:16:29"},"nodeType":"YulFunctionCall","src":"2471:18:29"},"nodeType":"YulExpressionStatement","src":"2471:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2461:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2465:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2458:2:29"},"nodeType":"YulFunctionCall","src":"2458:10:29"},"nodeType":"YulIf","src":"2455:36:29"},{"nodeType":"YulVariableDeclaration","src":"2500:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2510:3:29"},"nodeType":"YulFunctionCall","src":"2510:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2504:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2526:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2546:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2540:5:29"},"nodeType":"YulFunctionCall","src":"2540:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2530:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2558:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2580:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2604:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2608:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2600:3:29"},"nodeType":"YulFunctionCall","src":"2600:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2615:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2596:3:29"},"nodeType":"YulFunctionCall","src":"2596:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"2620:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:29"},"nodeType":"YulFunctionCall","src":"2592:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2625:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2588:3:29"},"nodeType":"YulFunctionCall","src":"2588:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2576:3:29"},"nodeType":"YulFunctionCall","src":"2576:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2562:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2688:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2690:16:29"},"nodeType":"YulFunctionCall","src":"2690:18:29"},"nodeType":"YulExpressionStatement","src":"2690:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2647:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2659:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2644:2:29"},"nodeType":"YulFunctionCall","src":"2644:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2667:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2679:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2664:2:29"},"nodeType":"YulFunctionCall","src":"2664:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2641:2:29"},"nodeType":"YulFunctionCall","src":"2641:46:29"},"nodeType":"YulIf","src":"2638:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2726:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2730:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2719:6:29"},"nodeType":"YulFunctionCall","src":"2719:22:29"},"nodeType":"YulExpressionStatement","src":"2719:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2757:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2765:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2750:6:29"},"nodeType":"YulFunctionCall","src":"2750:18:29"},"nodeType":"YulExpressionStatement","src":"2750:18:29"},{"body":{"nodeType":"YulBlock","src":"2814:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2823:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2826:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2816:6:29"},"nodeType":"YulFunctionCall","src":"2816:12:29"},"nodeType":"YulExpressionStatement","src":"2816:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2791:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2795:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2787:3:29"},"nodeType":"YulFunctionCall","src":"2787:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2800:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2783:3:29"},"nodeType":"YulFunctionCall","src":"2783:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2805:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2780:2:29"},"nodeType":"YulFunctionCall","src":"2780:33:29"},"nodeType":"YulIf","src":"2777:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2856:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2864:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:29"},"nodeType":"YulFunctionCall","src":"2852:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2873:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2877:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:29"},"nodeType":"YulFunctionCall","src":"2869:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2882:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2839:12:29"},"nodeType":"YulFunctionCall","src":"2839:46:29"},"nodeType":"YulExpressionStatement","src":"2839:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2909:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2917:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:29"},"nodeType":"YulFunctionCall","src":"2905:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"2922:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2901:3:29"},"nodeType":"YulFunctionCall","src":"2901:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"2927:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2894:6:29"},"nodeType":"YulFunctionCall","src":"2894:35:29"},"nodeType":"YulExpressionStatement","src":"2894:35:29"},{"nodeType":"YulAssignment","src":"2938:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2948:6:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2938:6:29"}]},{"nodeType":"YulAssignment","src":"2963:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3001:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2986:3:29"},"nodeType":"YulFunctionCall","src":"2986:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2973:12:29"},"nodeType":"YulFunctionCall","src":"2973:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2963:6:29"}]},{"nodeType":"YulAssignment","src":"3014:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3024:12:29"},"nodeType":"YulFunctionCall","src":"3024:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3014:6:29"}]},{"nodeType":"YulAssignment","src":"3065:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3096:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3107:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3092:3:29"},"nodeType":"YulFunctionCall","src":"3092:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3075:16:29"},"nodeType":"YulFunctionCall","src":"3075:37:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3065:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1994:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2005:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2017:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2025:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2033:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2041:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2049:6:29","type":""}],"src":"1915:1203:29"},{"body":{"nodeType":"YulBlock","src":"3224:76:29","statements":[{"nodeType":"YulAssignment","src":"3234:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3246:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3257:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3242:3:29"},"nodeType":"YulFunctionCall","src":"3242:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3234:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3276:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3287:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3269:6:29"},"nodeType":"YulFunctionCall","src":"3269:25:29"},"nodeType":"YulExpressionStatement","src":"3269:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3193:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3204:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3215:4:29","type":""}],"src":"3123:177:29"},{"body":{"nodeType":"YulBlock","src":"3406:76:29","statements":[{"nodeType":"YulAssignment","src":"3416:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3428:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3439:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3424:3:29"},"nodeType":"YulFunctionCall","src":"3424:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3416:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3458:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3469:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3451:6:29"},"nodeType":"YulFunctionCall","src":"3451:25:29"},"nodeType":"YulExpressionStatement","src":"3451:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3375:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3386:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3397:4:29","type":""}],"src":"3305:177:29"},{"body":{"nodeType":"YulBlock","src":"3591:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"3637:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3646:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3649:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3639:6:29"},"nodeType":"YulFunctionCall","src":"3639:12:29"},"nodeType":"YulExpressionStatement","src":"3639:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3612:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3621:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3608:3:29"},"nodeType":"YulFunctionCall","src":"3608:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3633:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3604:3:29"},"nodeType":"YulFunctionCall","src":"3604:32:29"},"nodeType":"YulIf","src":"3601:52:29"},{"nodeType":"YulAssignment","src":"3662:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3691:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3672:18:29"},"nodeType":"YulFunctionCall","src":"3672:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3662:6:29"}]},{"nodeType":"YulAssignment","src":"3710:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3743:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3754:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3739:3:29"},"nodeType":"YulFunctionCall","src":"3739:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3720:18:29"},"nodeType":"YulFunctionCall","src":"3720:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3710:6:29"}]},{"nodeType":"YulAssignment","src":"3767:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3805:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:29"},"nodeType":"YulFunctionCall","src":"3790:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3777:12:29"},"nodeType":"YulFunctionCall","src":"3777:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3767:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3541:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3552:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3564:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3572:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3580:6:29","type":""}],"src":"3487:328:29"},{"body":{"nodeType":"YulBlock","src":"3890:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3936:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3945:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3948:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3938:6:29"},"nodeType":"YulFunctionCall","src":"3938:12:29"},"nodeType":"YulExpressionStatement","src":"3938:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3911:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3920:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3907:3:29"},"nodeType":"YulFunctionCall","src":"3907:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3932:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3903:3:29"},"nodeType":"YulFunctionCall","src":"3903:32:29"},"nodeType":"YulIf","src":"3900:52:29"},{"nodeType":"YulAssignment","src":"3961:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3984:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3971:12:29"},"nodeType":"YulFunctionCall","src":"3971:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3961:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3856:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3867:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3879:6:29","type":""}],"src":"3820:180:29"},{"body":{"nodeType":"YulBlock","src":"4075:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"4121:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4130:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4133:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4123:6:29"},"nodeType":"YulFunctionCall","src":"4123:12:29"},"nodeType":"YulExpressionStatement","src":"4123:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4096:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4105:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4092:3:29"},"nodeType":"YulFunctionCall","src":"4092:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4117:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4088:3:29"},"nodeType":"YulFunctionCall","src":"4088:32:29"},"nodeType":"YulIf","src":"4085:52:29"},{"nodeType":"YulAssignment","src":"4146:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4156:18:29"},"nodeType":"YulFunctionCall","src":"4156:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4146:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4041:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4052:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4064:6:29","type":""}],"src":"4005:186:29"},{"body":{"nodeType":"YulBlock","src":"4266:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"4312:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4321:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4324:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4314:6:29"},"nodeType":"YulFunctionCall","src":"4314:12:29"},"nodeType":"YulExpressionStatement","src":"4314:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4287:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4283:3:29"},"nodeType":"YulFunctionCall","src":"4283:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4308:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4279:3:29"},"nodeType":"YulFunctionCall","src":"4279:32:29"},"nodeType":"YulIf","src":"4276:52:29"},{"nodeType":"YulAssignment","src":"4337:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4360:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4347:12:29"},"nodeType":"YulFunctionCall","src":"4347:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4337:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4232:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4243:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4255:6:29","type":""}],"src":"4196:180:29"},{"body":{"nodeType":"YulBlock","src":"4468:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"4514:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4523:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4526:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4516:6:29"},"nodeType":"YulFunctionCall","src":"4516:12:29"},"nodeType":"YulExpressionStatement","src":"4516:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4489:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4485:3:29"},"nodeType":"YulFunctionCall","src":"4485:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4510:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4481:3:29"},"nodeType":"YulFunctionCall","src":"4481:32:29"},"nodeType":"YulIf","src":"4478:52:29"},{"nodeType":"YulAssignment","src":"4539:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4562:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4549:12:29"},"nodeType":"YulFunctionCall","src":"4549:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4539:6:29"}]},{"nodeType":"YulAssignment","src":"4581:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4614:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4625:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4610:3:29"},"nodeType":"YulFunctionCall","src":"4610:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4591:18:29"},"nodeType":"YulFunctionCall","src":"4591:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4581:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4426:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4437:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4449:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4457:6:29","type":""}],"src":"4381:254:29"},{"body":{"nodeType":"YulBlock","src":"4737:87:29","statements":[{"nodeType":"YulAssignment","src":"4747:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4759:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4770:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4755:3:29"},"nodeType":"YulFunctionCall","src":"4755:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4747:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4789:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4804:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4812:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4800:3:29"},"nodeType":"YulFunctionCall","src":"4800:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4782:6:29"},"nodeType":"YulFunctionCall","src":"4782:36:29"},"nodeType":"YulExpressionStatement","src":"4782:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4706:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4717:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4728:4:29","type":""}],"src":"4640:184:29"},{"body":{"nodeType":"YulBlock","src":"4902:275:29","statements":[{"body":{"nodeType":"YulBlock","src":"4951:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4960:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4963:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4953:6:29"},"nodeType":"YulFunctionCall","src":"4953:12:29"},"nodeType":"YulExpressionStatement","src":"4953:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4930:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4938:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4926:3:29"},"nodeType":"YulFunctionCall","src":"4926:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"4945:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4922:3:29"},"nodeType":"YulFunctionCall","src":"4922:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4915:6:29"},"nodeType":"YulFunctionCall","src":"4915:35:29"},"nodeType":"YulIf","src":"4912:55:29"},{"nodeType":"YulAssignment","src":"4976:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4999:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4986:12:29"},"nodeType":"YulFunctionCall","src":"4986:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4976:6:29"}]},{"body":{"nodeType":"YulBlock","src":"5049:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5058:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5061:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5051:6:29"},"nodeType":"YulFunctionCall","src":"5051:12:29"},"nodeType":"YulExpressionStatement","src":"5051:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5021:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5029:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5018:2:29"},"nodeType":"YulFunctionCall","src":"5018:30:29"},"nodeType":"YulIf","src":"5015:50:29"},{"nodeType":"YulAssignment","src":"5074:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5090:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5098:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5086:3:29"},"nodeType":"YulFunctionCall","src":"5086:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5074:8:29"}]},{"body":{"nodeType":"YulBlock","src":"5155:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5164:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5167:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5157:6:29"},"nodeType":"YulFunctionCall","src":"5157:12:29"},"nodeType":"YulExpressionStatement","src":"5157:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5126:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"5134:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:29"},"nodeType":"YulFunctionCall","src":"5122:19:29"},{"kind":"number","nodeType":"YulLiteral","src":"5143:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5118:3:29"},"nodeType":"YulFunctionCall","src":"5118:30:29"},{"name":"end","nodeType":"YulIdentifier","src":"5150:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5115:2:29"},"nodeType":"YulFunctionCall","src":"5115:39:29"},"nodeType":"YulIf","src":"5112:59:29"}]},"name":"abi_decode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4865:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"4873:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"4881:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"4891:6:29","type":""}],"src":"4829:348:29"},{"body":{"nodeType":"YulBlock","src":"5272:321:29","statements":[{"body":{"nodeType":"YulBlock","src":"5318:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5327:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5330:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5320:6:29"},"nodeType":"YulFunctionCall","src":"5320:12:29"},"nodeType":"YulExpressionStatement","src":"5320:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5293:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5302:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5289:3:29"},"nodeType":"YulFunctionCall","src":"5289:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5314:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5285:3:29"},"nodeType":"YulFunctionCall","src":"5285:32:29"},"nodeType":"YulIf","src":"5282:52:29"},{"nodeType":"YulVariableDeclaration","src":"5343:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5370:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5357:12:29"},"nodeType":"YulFunctionCall","src":"5357:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5347:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5423:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5432:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5435:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5425:6:29"},"nodeType":"YulFunctionCall","src":"5425:12:29"},"nodeType":"YulExpressionStatement","src":"5425:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5395:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5403:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5392:2:29"},"nodeType":"YulFunctionCall","src":"5392:30:29"},"nodeType":"YulIf","src":"5389:50:29"},{"nodeType":"YulVariableDeclaration","src":"5448:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5505:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"5516:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5501:3:29"},"nodeType":"YulFunctionCall","src":"5501:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5525:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"5474:26:29"},"nodeType":"YulFunctionCall","src":"5474:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5452:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5462:8:29","type":""}]},{"nodeType":"YulAssignment","src":"5542:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5552:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5542:6:29"}]},{"nodeType":"YulAssignment","src":"5569:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5579:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5569:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5230:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5241:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5253:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5261:6:29","type":""}],"src":"5182:411:29"},{"body":{"nodeType":"YulBlock","src":"5782:584:29","statements":[{"body":{"nodeType":"YulBlock","src":"5829:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5838:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5841:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5831:6:29"},"nodeType":"YulFunctionCall","src":"5831:12:29"},"nodeType":"YulExpressionStatement","src":"5831:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5803:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5812:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5799:3:29"},"nodeType":"YulFunctionCall","src":"5799:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5824:3:29","type":"","value":"256"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5795:3:29"},"nodeType":"YulFunctionCall","src":"5795:33:29"},"nodeType":"YulIf","src":"5792:53:29"},{"nodeType":"YulAssignment","src":"5854:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5883:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5864:18:29"},"nodeType":"YulFunctionCall","src":"5864:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5854:6:29"}]},{"nodeType":"YulAssignment","src":"5902:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5935:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5946:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5931:3:29"},"nodeType":"YulFunctionCall","src":"5931:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5912:18:29"},"nodeType":"YulFunctionCall","src":"5912:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5902:6:29"}]},{"nodeType":"YulAssignment","src":"5959:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5986:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5997:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5982:3:29"},"nodeType":"YulFunctionCall","src":"5982:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5969:12:29"},"nodeType":"YulFunctionCall","src":"5969:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5959:6:29"}]},{"nodeType":"YulAssignment","src":"6010:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6037:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6048:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6033:3:29"},"nodeType":"YulFunctionCall","src":"6033:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6020:12:29"},"nodeType":"YulFunctionCall","src":"6020:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6010:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"6061:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6091:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6102:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6087:3:29"},"nodeType":"YulFunctionCall","src":"6087:19:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6074:12:29"},"nodeType":"YulFunctionCall","src":"6074:33:29"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6065:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6160:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6169:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6172:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6162:6:29"},"nodeType":"YulFunctionCall","src":"6162:12:29"},"nodeType":"YulExpressionStatement","src":"6162:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6129:5:29"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6150:5:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6143:6:29"},"nodeType":"YulFunctionCall","src":"6143:13:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6136:6:29"},"nodeType":"YulFunctionCall","src":"6136:21:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6126:2:29"},"nodeType":"YulFunctionCall","src":"6126:32:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6119:6:29"},"nodeType":"YulFunctionCall","src":"6119:40:29"},"nodeType":"YulIf","src":"6116:60:29"},{"nodeType":"YulAssignment","src":"6185:15:29","value":{"name":"value","nodeType":"YulIdentifier","src":"6195:5:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6185:6:29"}]},{"nodeType":"YulAssignment","src":"6209:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6240:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6251:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6236:3:29"},"nodeType":"YulFunctionCall","src":"6236:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"6219:16:29"},"nodeType":"YulFunctionCall","src":"6219:37:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6209:6:29"}]},{"nodeType":"YulAssignment","src":"6265:43:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6303:3:29","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6288:3:29"},"nodeType":"YulFunctionCall","src":"6288:19:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6275:12:29"},"nodeType":"YulFunctionCall","src":"6275:33:29"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6265:6:29"}]},{"nodeType":"YulAssignment","src":"6317:43:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6344:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6355:3:29","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6340:3:29"},"nodeType":"YulFunctionCall","src":"6340:19:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6327:12:29"},"nodeType":"YulFunctionCall","src":"6327:33:29"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"6317:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_boolt_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5692:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5703:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5715:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5723:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5731:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5739:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5747:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5755:6:29","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5763:6:29","type":""},{"name":"value7","nodeType":"YulTypedName","src":"5771:6:29","type":""}],"src":"5598:768:29"},{"body":{"nodeType":"YulBlock","src":"6458:161:29","statements":[{"body":{"nodeType":"YulBlock","src":"6504:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6513:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6516:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6506:6:29"},"nodeType":"YulFunctionCall","src":"6506:12:29"},"nodeType":"YulExpressionStatement","src":"6506:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6479:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6488:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6475:3:29"},"nodeType":"YulFunctionCall","src":"6475:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6500:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6471:3:29"},"nodeType":"YulFunctionCall","src":"6471:32:29"},"nodeType":"YulIf","src":"6468:52:29"},{"nodeType":"YulAssignment","src":"6529:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6552:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6539:12:29"},"nodeType":"YulFunctionCall","src":"6539:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6529:6:29"}]},{"nodeType":"YulAssignment","src":"6571:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6598:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6609:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6594:3:29"},"nodeType":"YulFunctionCall","src":"6594:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6581:12:29"},"nodeType":"YulFunctionCall","src":"6581:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6571:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6416:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6427:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6439:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6447:6:29","type":""}],"src":"6371:248:29"},{"body":{"nodeType":"YulBlock","src":"6725:102:29","statements":[{"nodeType":"YulAssignment","src":"6735:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6747:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6758:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6743:3:29"},"nodeType":"YulFunctionCall","src":"6743:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6735:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6777:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6792:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6808:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6813:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6804:3:29"},"nodeType":"YulFunctionCall","src":"6804:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6817:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6800:3:29"},"nodeType":"YulFunctionCall","src":"6800:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6788:3:29"},"nodeType":"YulFunctionCall","src":"6788:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6770:6:29"},"nodeType":"YulFunctionCall","src":"6770:51:29"},"nodeType":"YulExpressionStatement","src":"6770:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6694:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6705:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6716:4:29","type":""}],"src":"6624:203:29"},{"body":{"nodeType":"YulBlock","src":"6938:378:29","statements":[{"body":{"nodeType":"YulBlock","src":"6984:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6993:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6996:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6986:6:29"},"nodeType":"YulFunctionCall","src":"6986:12:29"},"nodeType":"YulExpressionStatement","src":"6986:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6959:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6968:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6955:3:29"},"nodeType":"YulFunctionCall","src":"6955:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6980:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6951:3:29"},"nodeType":"YulFunctionCall","src":"6951:32:29"},"nodeType":"YulIf","src":"6948:52:29"},{"nodeType":"YulAssignment","src":"7009:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7038:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7019:18:29"},"nodeType":"YulFunctionCall","src":"7019:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7009:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"7057:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7088:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7099:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7084:3:29"},"nodeType":"YulFunctionCall","src":"7084:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7071:12:29"},"nodeType":"YulFunctionCall","src":"7071:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7061:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7146:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7155:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7158:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7148:6:29"},"nodeType":"YulFunctionCall","src":"7148:12:29"},"nodeType":"YulExpressionStatement","src":"7148:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7118:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7126:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7115:2:29"},"nodeType":"YulFunctionCall","src":"7115:30:29"},"nodeType":"YulIf","src":"7112:50:29"},{"nodeType":"YulVariableDeclaration","src":"7171:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7228:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"7239:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7224:3:29"},"nodeType":"YulFunctionCall","src":"7224:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7248:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7197:26:29"},"nodeType":"YulFunctionCall","src":"7197:59:29"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"7175:8:29","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"7185:8:29","type":""}]},{"nodeType":"YulAssignment","src":"7265:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"7275:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7265:6:29"}]},{"nodeType":"YulAssignment","src":"7292:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7302:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7292:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6888:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6899:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6911:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6919:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6927:6:29","type":""}],"src":"6832:484:29"},{"body":{"nodeType":"YulBlock","src":"7408:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"7454:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7463:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7466:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7456:6:29"},"nodeType":"YulFunctionCall","src":"7456:12:29"},"nodeType":"YulExpressionStatement","src":"7456:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7429:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7438:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7425:3:29"},"nodeType":"YulFunctionCall","src":"7425:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7450:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7421:3:29"},"nodeType":"YulFunctionCall","src":"7421:32:29"},"nodeType":"YulIf","src":"7418:52:29"},{"nodeType":"YulAssignment","src":"7479:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7508:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7489:18:29"},"nodeType":"YulFunctionCall","src":"7489:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7479:6:29"}]},{"nodeType":"YulAssignment","src":"7527:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7560:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7571:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7556:3:29"},"nodeType":"YulFunctionCall","src":"7556:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7537:18:29"},"nodeType":"YulFunctionCall","src":"7537:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7527:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7366:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7377:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7389:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7397:6:29","type":""}],"src":"7321:260:29"},{"body":{"nodeType":"YulBlock","src":"7745:707:29","statements":[{"body":{"nodeType":"YulBlock","src":"7792:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7801:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7804:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7794:6:29"},"nodeType":"YulFunctionCall","src":"7794:12:29"},"nodeType":"YulExpressionStatement","src":"7794:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7766:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7775:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7762:3:29"},"nodeType":"YulFunctionCall","src":"7762:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7787:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7758:3:29"},"nodeType":"YulFunctionCall","src":"7758:33:29"},"nodeType":"YulIf","src":"7755:53:29"},{"nodeType":"YulVariableDeclaration","src":"7817:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7844:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7831:12:29"},"nodeType":"YulFunctionCall","src":"7831:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7821:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7863:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7873:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7867:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7918:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7927:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7930:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7920:6:29"},"nodeType":"YulFunctionCall","src":"7920:12:29"},"nodeType":"YulExpressionStatement","src":"7920:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7906:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7914:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7903:2:29"},"nodeType":"YulFunctionCall","src":"7903:14:29"},"nodeType":"YulIf","src":"7900:34:29"},{"nodeType":"YulVariableDeclaration","src":"7943:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8000:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"8011:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7996:3:29"},"nodeType":"YulFunctionCall","src":"7996:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8020:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7969:26:29"},"nodeType":"YulFunctionCall","src":"7969:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7947:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7957:8:29","type":""}]},{"nodeType":"YulAssignment","src":"8037:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"8047:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8037:6:29"}]},{"nodeType":"YulAssignment","src":"8064:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"8074:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8064:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"8091:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8124:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8135:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8120:3:29"},"nodeType":"YulFunctionCall","src":"8120:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8107:12:29"},"nodeType":"YulFunctionCall","src":"8107:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8095:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"8168:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8177:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8180:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8170:6:29"},"nodeType":"YulFunctionCall","src":"8170:12:29"},"nodeType":"YulExpressionStatement","src":"8170:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8154:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8164:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8151:2:29"},"nodeType":"YulFunctionCall","src":"8151:16:29"},"nodeType":"YulIf","src":"8148:36:29"},{"nodeType":"YulVariableDeclaration","src":"8193:87:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8250:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8261:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8246:3:29"},"nodeType":"YulFunctionCall","src":"8246:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8272:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"8219:26:29"},"nodeType":"YulFunctionCall","src":"8219:61:29"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"8197:8:29","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"8207:8:29","type":""}]},{"nodeType":"YulAssignment","src":"8289:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"8299:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8289:6:29"}]},{"nodeType":"YulAssignment","src":"8316:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"8326:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8316:6:29"}]},{"nodeType":"YulAssignment","src":"8343:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8374:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8385:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8370:3:29"},"nodeType":"YulFunctionCall","src":"8370:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8353:16:29"},"nodeType":"YulFunctionCall","src":"8353:36:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8343:6:29"}]},{"nodeType":"YulAssignment","src":"8398:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8431:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8442:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8427:3:29"},"nodeType":"YulFunctionCall","src":"8427:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8408:18:29"},"nodeType":"YulFunctionCall","src":"8408:38:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"8398:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7671:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7682:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7694:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7702:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7710:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7718:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7726:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7734:6:29","type":""}],"src":"7586:866:29"},{"body":{"nodeType":"YulBlock","src":"8512:325:29","statements":[{"nodeType":"YulAssignment","src":"8522:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8536:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"8539:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8532:3:29"},"nodeType":"YulFunctionCall","src":"8532:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8522:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"8553:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8583:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"8589:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8579:3:29"},"nodeType":"YulFunctionCall","src":"8579:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"8557:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"8630:31:29","statements":[{"nodeType":"YulAssignment","src":"8632:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8646:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8654:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8642:3:29"},"nodeType":"YulFunctionCall","src":"8642:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8632:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8610:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8603:6:29"},"nodeType":"YulFunctionCall","src":"8603:26:29"},"nodeType":"YulIf","src":"8600:61:29"},{"body":{"nodeType":"YulBlock","src":"8720:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8741:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8748:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8753:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8744:3:29"},"nodeType":"YulFunctionCall","src":"8744:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8734:6:29"},"nodeType":"YulFunctionCall","src":"8734:31:29"},"nodeType":"YulExpressionStatement","src":"8734:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8785:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8788:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8778:6:29"},"nodeType":"YulFunctionCall","src":"8778:15:29"},"nodeType":"YulExpressionStatement","src":"8778:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8813:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8816:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8806:6:29"},"nodeType":"YulFunctionCall","src":"8806:15:29"},"nodeType":"YulExpressionStatement","src":"8806:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8676:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8699:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"8707:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8696:2:29"},"nodeType":"YulFunctionCall","src":"8696:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8673:2:29"},"nodeType":"YulFunctionCall","src":"8673:38:29"},"nodeType":"YulIf","src":"8670:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"8492:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"8501:6:29","type":""}],"src":"8457:380:29"},{"body":{"nodeType":"YulBlock","src":"9016:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9033:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9044:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9026:6:29"},"nodeType":"YulFunctionCall","src":"9026:21:29"},"nodeType":"YulExpressionStatement","src":"9026:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9067:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9078:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9063:3:29"},"nodeType":"YulFunctionCall","src":"9063:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"9083:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9056:6:29"},"nodeType":"YulFunctionCall","src":"9056:30:29"},"nodeType":"YulExpressionStatement","src":"9056:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9106:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9117:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9102:3:29"},"nodeType":"YulFunctionCall","src":"9102:18:29"},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d617463","kind":"string","nodeType":"YulLiteral","src":"9122:34:29","type":"","value":"Signer and signature do not matc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9095:6:29"},"nodeType":"YulFunctionCall","src":"9095:62:29"},"nodeType":"YulExpressionStatement","src":"9095:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9177:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9188:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9173:3:29"},"nodeType":"YulFunctionCall","src":"9173:18:29"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"9193:3:29","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9166:6:29"},"nodeType":"YulFunctionCall","src":"9166:31:29"},"nodeType":"YulExpressionStatement","src":"9166:31:29"},{"nodeType":"YulAssignment","src":"9206:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9218:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9229:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9214:3:29"},"nodeType":"YulFunctionCall","src":"9214:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9206:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8993:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9007:4:29","type":""}],"src":"8842:397:29"},{"body":{"nodeType":"YulBlock","src":"9435:241:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9445:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9463:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9468:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9459:3:29"},"nodeType":"YulFunctionCall","src":"9459:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"9472:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9455:3:29"},"nodeType":"YulFunctionCall","src":"9455:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9449:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9490:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9505:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9513:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9501:3:29"},"nodeType":"YulFunctionCall","src":"9501:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9483:6:29"},"nodeType":"YulFunctionCall","src":"9483:34:29"},"nodeType":"YulExpressionStatement","src":"9483:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9537:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9548:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9533:3:29"},"nodeType":"YulFunctionCall","src":"9533:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9557:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"9565:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9553:3:29"},"nodeType":"YulFunctionCall","src":"9553:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9526:6:29"},"nodeType":"YulFunctionCall","src":"9526:43:29"},"nodeType":"YulExpressionStatement","src":"9526:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9589:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9600:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9585:3:29"},"nodeType":"YulFunctionCall","src":"9585:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"9605:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9578:6:29"},"nodeType":"YulFunctionCall","src":"9578:30:29"},"nodeType":"YulExpressionStatement","src":"9578:30:29"},{"nodeType":"YulAssignment","src":"9617:53:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9643:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9655:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9666:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9651:3:29"},"nodeType":"YulFunctionCall","src":"9651:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"9625:17:29"},"nodeType":"YulFunctionCall","src":"9625:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9617:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9388:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9399:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9407:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9415:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9426:4:29","type":""}],"src":"9244:432:29"},{"body":{"nodeType":"YulBlock","src":"9846:263:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9856:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9876:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9870:5:29"},"nodeType":"YulFunctionCall","src":"9870:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9860:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9931:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9939:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9927:3:29"},"nodeType":"YulFunctionCall","src":"9927:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"9946:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9951:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9892:34:29"},"nodeType":"YulFunctionCall","src":"9892:66:29"},"nodeType":"YulExpressionStatement","src":"9892:66:29"},{"nodeType":"YulVariableDeclaration","src":"9967:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9984:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9989:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9980:3:29"},"nodeType":"YulFunctionCall","src":"9980:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"9971:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"10012:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10027:2:29","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"10031:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10023:3:29"},"nodeType":"YulFunctionCall","src":"10023:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10044:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10040:3:29"},"nodeType":"YulFunctionCall","src":"10040:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10019:3:29"},"nodeType":"YulFunctionCall","src":"10019:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10005:6:29"},"nodeType":"YulFunctionCall","src":"10005:68:29"},"nodeType":"YulExpressionStatement","src":"10005:68:29"},{"nodeType":"YulAssignment","src":"10082:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"10093:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"10100:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10089:3:29"},"nodeType":"YulFunctionCall","src":"10089:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10082:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9814:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9819:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9827:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9838:3:29","type":""}],"src":"9681:428:29"},{"body":{"nodeType":"YulBlock","src":"10251:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"10261:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10281:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10275:5:29"},"nodeType":"YulFunctionCall","src":"10275:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10265:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10336:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"10344:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10332:3:29"},"nodeType":"YulFunctionCall","src":"10332:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"10351:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"10356:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"10297:34:29"},"nodeType":"YulFunctionCall","src":"10297:66:29"},"nodeType":"YulExpressionStatement","src":"10297:66:29"},{"nodeType":"YulAssignment","src":"10372:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10383:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"10388:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10379:3:29"},"nodeType":"YulFunctionCall","src":"10379:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10372:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10227:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10232:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10243:3:29","type":""}],"src":"10114:287:29"},{"body":{"nodeType":"YulBlock","src":"10580:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10597:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10608:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10590:6:29"},"nodeType":"YulFunctionCall","src":"10590:21:29"},"nodeType":"YulExpressionStatement","src":"10590:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10631:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10642:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10627:3:29"},"nodeType":"YulFunctionCall","src":"10627:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"10647:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10620:6:29"},"nodeType":"YulFunctionCall","src":"10620:30:29"},"nodeType":"YulExpressionStatement","src":"10620:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10670:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10681:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10666:3:29"},"nodeType":"YulFunctionCall","src":"10666:18:29"},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","kind":"string","nodeType":"YulLiteral","src":"10686:30:29","type":"","value":"Function call not successful"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10659:6:29"},"nodeType":"YulFunctionCall","src":"10659:58:29"},"nodeType":"YulExpressionStatement","src":"10659:58:29"},{"nodeType":"YulAssignment","src":"10726:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10738:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10749:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10734:3:29"},"nodeType":"YulFunctionCall","src":"10734:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10726:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10557:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10571:4:29","type":""}],"src":"10406:352:29"},{"body":{"nodeType":"YulBlock","src":"10937:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10954:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10965:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10947:6:29"},"nodeType":"YulFunctionCall","src":"10947:21:29"},"nodeType":"YulExpressionStatement","src":"10947:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10988:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10999:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10984:3:29"},"nodeType":"YulFunctionCall","src":"10984:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11004:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:29"},"nodeType":"YulFunctionCall","src":"10977:30:29"},"nodeType":"YulExpressionStatement","src":"10977:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11027:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11038:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11023:3:29"},"nodeType":"YulFunctionCall","src":"11023:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"11043:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11016:6:29"},"nodeType":"YulFunctionCall","src":"11016:62:29"},"nodeType":"YulExpressionStatement","src":"11016:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11098:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11109:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11094:3:29"},"nodeType":"YulFunctionCall","src":"11094:18:29"},{"hexValue":"2061646d696e20746f206772616e74","kind":"string","nodeType":"YulLiteral","src":"11114:17:29","type":"","value":" admin to grant"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11087:6:29"},"nodeType":"YulFunctionCall","src":"11087:45:29"},"nodeType":"YulExpressionStatement","src":"11087:45:29"},{"nodeType":"YulAssignment","src":"11141:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11153:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11164:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11149:3:29"},"nodeType":"YulFunctionCall","src":"11149:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11141:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10914:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10928:4:29","type":""}],"src":"10763:411:29"},{"body":{"nodeType":"YulBlock","src":"11353:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11370:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11381:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11363:6:29"},"nodeType":"YulFunctionCall","src":"11363:21:29"},"nodeType":"YulExpressionStatement","src":"11363:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11404:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11415:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11400:3:29"},"nodeType":"YulFunctionCall","src":"11400:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11420:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11393:6:29"},"nodeType":"YulFunctionCall","src":"11393:30:29"},"nodeType":"YulExpressionStatement","src":"11393:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11443:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11454:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11439:3:29"},"nodeType":"YulFunctionCall","src":"11439:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"11459:34:29","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11432:6:29"},"nodeType":"YulFunctionCall","src":"11432:62:29"},"nodeType":"YulExpressionStatement","src":"11432:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11514:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11525:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11510:3:29"},"nodeType":"YulFunctionCall","src":"11510:18:29"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"11530:17:29","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11503:6:29"},"nodeType":"YulFunctionCall","src":"11503:45:29"},"nodeType":"YulExpressionStatement","src":"11503:45:29"},{"nodeType":"YulAssignment","src":"11557:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11569:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11580:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11565:3:29"},"nodeType":"YulFunctionCall","src":"11565:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11557:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11330:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11344:4:29","type":""}],"src":"11179:411:29"},{"body":{"nodeType":"YulBlock","src":"11769:181:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11786:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11797:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11779:6:29"},"nodeType":"YulFunctionCall","src":"11779:21:29"},"nodeType":"YulExpressionStatement","src":"11779:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:29"},"nodeType":"YulFunctionCall","src":"11816:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11836:2:29","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11809:6:29"},"nodeType":"YulFunctionCall","src":"11809:30:29"},"nodeType":"YulExpressionStatement","src":"11809:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11859:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11870:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11855:3:29"},"nodeType":"YulFunctionCall","src":"11855:18:29"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"11875:33:29","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11848:6:29"},"nodeType":"YulFunctionCall","src":"11848:61:29"},"nodeType":"YulExpressionStatement","src":"11848:61:29"},{"nodeType":"YulAssignment","src":"11918:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11941:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11926:3:29"},"nodeType":"YulFunctionCall","src":"11926:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11918:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11746:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11760:4:29","type":""}],"src":"11595:355:29"},{"body":{"nodeType":"YulBlock","src":"12011:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12028:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"12031:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12021:6:29"},"nodeType":"YulFunctionCall","src":"12021:14:29"},"nodeType":"YulExpressionStatement","src":"12021:14:29"},{"nodeType":"YulAssignment","src":"12044:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12062:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12065:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12052:9:29"},"nodeType":"YulFunctionCall","src":"12052:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"12044:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11994:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"12002:4:29","type":""}],"src":"11955:121:29"},{"body":{"nodeType":"YulBlock","src":"12199:845:29","statements":[{"nodeType":"YulVariableDeclaration","src":"12209:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12219:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12213:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12237:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12248:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12230:6:29"},"nodeType":"YulFunctionCall","src":"12230:21:29"},"nodeType":"YulExpressionStatement","src":"12230:21:29"},{"nodeType":"YulVariableDeclaration","src":"12260:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12271:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"12264:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12281:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12304:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12298:5:29"},"nodeType":"YulFunctionCall","src":"12298:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"12285:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12320:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12360:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"12334:25:29"},"nodeType":"YulFunctionCall","src":"12334:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12324:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12390:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12401:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12386:3:29"},"nodeType":"YulFunctionCall","src":"12386:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"12406:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12379:6:29"},"nodeType":"YulFunctionCall","src":"12379:34:29"},"nodeType":"YulExpressionStatement","src":"12379:34:29"},{"nodeType":"YulVariableDeclaration","src":"12422:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12432:2:29","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12426:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12443:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12453:1:29","type":"","value":"1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"12447:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"12504:151:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12529:9:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12540:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12525:3:29"},"nodeType":"YulFunctionCall","src":"12525:18:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12549:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12564:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12560:3:29"},"nodeType":"YulFunctionCall","src":"12560:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12545:3:29"},"nodeType":"YulFunctionCall","src":"12545:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12518:6:29"},"nodeType":"YulFunctionCall","src":"12518:52:29"},"nodeType":"YulExpressionStatement","src":"12518:52:29"},{"nodeType":"YulAssignment","src":"12583:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12598:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12613:1:29","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12630:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12623:6:29"},"nodeType":"YulFunctionCall","src":"12623:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12616:6:29"},"nodeType":"YulFunctionCall","src":"12616:22:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12609:3:29"},"nodeType":"YulFunctionCall","src":"12609:30:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12594:3:29"},"nodeType":"YulFunctionCall","src":"12594:46:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12642:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12590:3:29"},"nodeType":"YulFunctionCall","src":"12590:55:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12583:3:29"}]}]},"nodeType":"YulCase","src":"12497:158:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12502:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"12671:347:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12692:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"12695:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12685:6:29"},"nodeType":"YulFunctionCall","src":"12685:17:29"},"nodeType":"YulExpressionStatement","src":"12685:17:29"},{"nodeType":"YulVariableDeclaration","src":"12715:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12740:1:29","type":"","value":"0"},{"name":"_1","nodeType":"YulIdentifier","src":"12743:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12730:9:29"},"nodeType":"YulFunctionCall","src":"12730:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"12719:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12759:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12768:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12763:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"12836:126:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12869:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"12880:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12865:3:29"},"nodeType":"YulFunctionCall","src":"12865:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12884:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12861:3:29"},"nodeType":"YulFunctionCall","src":"12861:26:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12895:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12889:5:29"},"nodeType":"YulFunctionCall","src":"12889:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12854:6:29"},"nodeType":"YulFunctionCall","src":"12854:50:29"},"nodeType":"YulExpressionStatement","src":"12854:50:29"},{"nodeType":"YulAssignment","src":"12921:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12936:7:29"},{"name":"_3","nodeType":"YulIdentifier","src":"12945:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12932:3:29"},"nodeType":"YulFunctionCall","src":"12932:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12921:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12793:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"12796:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12790:2:29"},"nodeType":"YulFunctionCall","src":"12790:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12804:19:29","statements":[{"nodeType":"YulAssignment","src":"12806:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12815:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12818:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12811:3:29"},"nodeType":"YulFunctionCall","src":"12811:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12806:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"12786:3:29","statements":[]},"src":"12782:180:29"},{"nodeType":"YulAssignment","src":"12975:33:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12990:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"13001:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12986:3:29"},"nodeType":"YulFunctionCall","src":"12986:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"13005:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12982:3:29"},"nodeType":"YulFunctionCall","src":"12982:26:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12975:3:29"}]}]},"nodeType":"YulCase","src":"12664:354:29","value":{"kind":"number","nodeType":"YulLiteral","src":"12669:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12474:9:29"},{"name":"_3","nodeType":"YulIdentifier","src":"12485:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12470:3:29"},"nodeType":"YulFunctionCall","src":"12470:18:29"},"nodeType":"YulSwitch","src":"12463:555:29"},{"nodeType":"YulAssignment","src":"13027:11:29","value":{"name":"ret","nodeType":"YulIdentifier","src":"13035:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13027:4:29"}]}]},"name":"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12168:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12179:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12190:4:29","type":""}],"src":"12081:963:29"},{"body":{"nodeType":"YulBlock","src":"13284:366:29","statements":[{"nodeType":"YulAssignment","src":"13294:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13306:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13317:3:29","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13302:3:29"},"nodeType":"YulFunctionCall","src":"13302:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13294:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13337:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"13348:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13330:6:29"},"nodeType":"YulFunctionCall","src":"13330:25:29"},"nodeType":"YulExpressionStatement","src":"13330:25:29"},{"nodeType":"YulVariableDeclaration","src":"13364:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13382:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13387:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13378:3:29"},"nodeType":"YulFunctionCall","src":"13378:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"13391:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13374:3:29"},"nodeType":"YulFunctionCall","src":"13374:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13368:2:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13413:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13424:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13409:3:29"},"nodeType":"YulFunctionCall","src":"13409:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13433:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13441:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13429:3:29"},"nodeType":"YulFunctionCall","src":"13429:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13402:6:29"},"nodeType":"YulFunctionCall","src":"13402:43:29"},"nodeType":"YulExpressionStatement","src":"13402:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13465:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13476:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13461:3:29"},"nodeType":"YulFunctionCall","src":"13461:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13485:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"13493:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13481:3:29"},"nodeType":"YulFunctionCall","src":"13481:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13454:6:29"},"nodeType":"YulFunctionCall","src":"13454:43:29"},"nodeType":"YulExpressionStatement","src":"13454:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13517:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13528:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13513:3:29"},"nodeType":"YulFunctionCall","src":"13513:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"13533:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13506:6:29"},"nodeType":"YulFunctionCall","src":"13506:34:29"},"nodeType":"YulExpressionStatement","src":"13506:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13560:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13571:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13556:3:29"},"nodeType":"YulFunctionCall","src":"13556:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"13577:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13549:6:29"},"nodeType":"YulFunctionCall","src":"13549:35:29"},"nodeType":"YulExpressionStatement","src":"13549:35:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13604:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13615:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13600:3:29"},"nodeType":"YulFunctionCall","src":"13600:19:29"},{"arguments":[{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"13635:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13628:6:29"},"nodeType":"YulFunctionCall","src":"13628:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13621:6:29"},"nodeType":"YulFunctionCall","src":"13621:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13593:6:29"},"nodeType":"YulFunctionCall","src":"13593:51:29"},"nodeType":"YulExpressionStatement","src":"13593:51:29"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13213:9:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13224:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13232:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13240:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13248:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13256:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13264:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13275:4:29","type":""}],"src":"13049:601:29"},{"body":{"nodeType":"YulBlock","src":"13903:144:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13920:3:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13929:3:29","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"13934:4:29","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13925:3:29"},"nodeType":"YulFunctionCall","src":"13925:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13913:6:29"},"nodeType":"YulFunctionCall","src":"13913:27:29"},"nodeType":"YulExpressionStatement","src":"13913:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13960:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13965:1:29","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13956:3:29"},"nodeType":"YulFunctionCall","src":"13956:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"13969:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13949:6:29"},"nodeType":"YulFunctionCall","src":"13949:27:29"},"nodeType":"YulExpressionStatement","src":"13949:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13996:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"14001:2:29","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13992:3:29"},"nodeType":"YulFunctionCall","src":"13992:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"14006:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13985:6:29"},"nodeType":"YulFunctionCall","src":"13985:28:29"},"nodeType":"YulExpressionStatement","src":"13985:28:29"},{"nodeType":"YulAssignment","src":"14022:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14033:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"14038:2:29","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14029:3:29"},"nodeType":"YulFunctionCall","src":"14029:12:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14022:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13871:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13876:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13884:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13895:3:29","type":""}],"src":"13655:392:29"},{"body":{"nodeType":"YulBlock","src":"14233:217:29","statements":[{"nodeType":"YulAssignment","src":"14243:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14255:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14266:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14251:3:29"},"nodeType":"YulFunctionCall","src":"14251:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14243:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14286:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"14297:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14279:6:29"},"nodeType":"YulFunctionCall","src":"14279:25:29"},"nodeType":"YulExpressionStatement","src":"14279:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14324:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14335:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14320:3:29"},"nodeType":"YulFunctionCall","src":"14320:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14344:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14352:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14340:3:29"},"nodeType":"YulFunctionCall","src":"14340:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14313:6:29"},"nodeType":"YulFunctionCall","src":"14313:45:29"},"nodeType":"YulExpressionStatement","src":"14313:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14378:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14389:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14374:3:29"},"nodeType":"YulFunctionCall","src":"14374:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"14394:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14367:6:29"},"nodeType":"YulFunctionCall","src":"14367:34:29"},"nodeType":"YulExpressionStatement","src":"14367:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14421:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14432:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14417:3:29"},"nodeType":"YulFunctionCall","src":"14417:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"14437:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14410:6:29"},"nodeType":"YulFunctionCall","src":"14410:34:29"},"nodeType":"YulExpressionStatement","src":"14410:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14178:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14189:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14197:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14205:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14213:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14224:4:29","type":""}],"src":"14052:398:29"},{"body":{"nodeType":"YulBlock","src":"14629:175:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14646:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14657:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14639:6:29"},"nodeType":"YulFunctionCall","src":"14639:21:29"},"nodeType":"YulExpressionStatement","src":"14639:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14680:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14691:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14676:3:29"},"nodeType":"YulFunctionCall","src":"14676:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"14696:2:29","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14669:6:29"},"nodeType":"YulFunctionCall","src":"14669:30:29"},"nodeType":"YulExpressionStatement","src":"14669:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14719:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14730:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14715:3:29"},"nodeType":"YulFunctionCall","src":"14715:18:29"},{"hexValue":"554368696c644441493a20494e56414c49442d5045524d4954","kind":"string","nodeType":"YulLiteral","src":"14735:27:29","type":"","value":"UChildDAI: INVALID-PERMIT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14708:6:29"},"nodeType":"YulFunctionCall","src":"14708:55:29"},"nodeType":"YulExpressionStatement","src":"14708:55:29"},{"nodeType":"YulAssignment","src":"14772:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14784:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14795:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14780:3:29"},"nodeType":"YulFunctionCall","src":"14780:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14772:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14606:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14620:4:29","type":""}],"src":"14455:349:29"},{"body":{"nodeType":"YulBlock","src":"14983:175:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15000:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15011:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14993:6:29"},"nodeType":"YulFunctionCall","src":"14993:21:29"},"nodeType":"YulExpressionStatement","src":"14993:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15034:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15045:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15030:3:29"},"nodeType":"YulFunctionCall","src":"15030:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15050:2:29","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15023:6:29"},"nodeType":"YulFunctionCall","src":"15023:30:29"},"nodeType":"YulExpressionStatement","src":"15023:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15073:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15084:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15069:3:29"},"nodeType":"YulFunctionCall","src":"15069:18:29"},{"hexValue":"554368696c644441493a205045524d49542d45585049524544","kind":"string","nodeType":"YulLiteral","src":"15089:27:29","type":"","value":"UChildDAI: PERMIT-EXPIRED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15062:6:29"},"nodeType":"YulFunctionCall","src":"15062:55:29"},"nodeType":"YulExpressionStatement","src":"15062:55:29"},{"nodeType":"YulAssignment","src":"15126:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15138:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15149:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15134:3:29"},"nodeType":"YulFunctionCall","src":"15134:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15126:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14960:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14974:4:29","type":""}],"src":"14809:349:29"},{"body":{"nodeType":"YulBlock","src":"15195:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15212:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15219:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15224:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15215:3:29"},"nodeType":"YulFunctionCall","src":"15215:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15205:6:29"},"nodeType":"YulFunctionCall","src":"15205:31:29"},"nodeType":"YulExpressionStatement","src":"15205:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15252:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15255:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15245:6:29"},"nodeType":"YulFunctionCall","src":"15245:15:29"},"nodeType":"YulExpressionStatement","src":"15245:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15276:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15279:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15269:6:29"},"nodeType":"YulFunctionCall","src":"15269:15:29"},"nodeType":"YulExpressionStatement","src":"15269:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"15163:127:29"},{"body":{"nodeType":"YulBlock","src":"15342:88:29","statements":[{"body":{"nodeType":"YulBlock","src":"15373:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15375:16:29"},"nodeType":"YulFunctionCall","src":"15375:18:29"},"nodeType":"YulExpressionStatement","src":"15375:18:29"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15358:5:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15369:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15365:3:29"},"nodeType":"YulFunctionCall","src":"15365:6:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15355:2:29"},"nodeType":"YulFunctionCall","src":"15355:17:29"},"nodeType":"YulIf","src":"15352:43:29"},{"nodeType":"YulAssignment","src":"15404:20:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15415:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"15422:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15411:3:29"},"nodeType":"YulFunctionCall","src":"15411:13:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15404:3:29"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15324:5:29","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15334:3:29","type":""}],"src":"15295:135:29"},{"body":{"nodeType":"YulBlock","src":"15609:174:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15626:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15637:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15619:6:29"},"nodeType":"YulFunctionCall","src":"15619:21:29"},"nodeType":"YulExpressionStatement","src":"15619:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15660:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15671:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15656:3:29"},"nodeType":"YulFunctionCall","src":"15656:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15676:2:29","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15649:6:29"},"nodeType":"YulFunctionCall","src":"15649:30:29"},"nodeType":"YulExpressionStatement","src":"15649:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15699:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15710:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15695:3:29"},"nodeType":"YulFunctionCall","src":"15695:18:29"},{"hexValue":"554368696c644441493a20494e56414c49442d4e4f4e4345","kind":"string","nodeType":"YulLiteral","src":"15715:26:29","type":"","value":"UChildDAI: INVALID-NONCE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15688:6:29"},"nodeType":"YulFunctionCall","src":"15688:54:29"},"nodeType":"YulExpressionStatement","src":"15688:54:29"},{"nodeType":"YulAssignment","src":"15751:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15763:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15774:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15759:3:29"},"nodeType":"YulFunctionCall","src":"15759:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15751:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15586:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15600:4:29","type":""}],"src":"15435:348:29"},{"body":{"nodeType":"YulBlock","src":"15962:238:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15979:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15990:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15972:6:29"},"nodeType":"YulFunctionCall","src":"15972:21:29"},"nodeType":"YulExpressionStatement","src":"15972:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16013:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16024:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16009:3:29"},"nodeType":"YulFunctionCall","src":"16009:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16029:2:29","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16002:6:29"},"nodeType":"YulFunctionCall","src":"16002:30:29"},"nodeType":"YulExpressionStatement","src":"16002:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16052:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16063:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16048:3:29"},"nodeType":"YulFunctionCall","src":"16048:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"16068:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16041:6:29"},"nodeType":"YulFunctionCall","src":"16041:62:29"},"nodeType":"YulExpressionStatement","src":"16041:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16123:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16134:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16119:3:29"},"nodeType":"YulFunctionCall","src":"16119:18:29"},{"hexValue":"2061646d696e20746f207265766f6b65","kind":"string","nodeType":"YulLiteral","src":"16139:18:29","type":"","value":" admin to revoke"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16112:6:29"},"nodeType":"YulFunctionCall","src":"16112:46:29"},"nodeType":"YulExpressionStatement","src":"16112:46:29"},{"nodeType":"YulAssignment","src":"16167:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16179:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16190:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16175:3:29"},"nodeType":"YulFunctionCall","src":"16175:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16167:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15939:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15953:4:29","type":""}],"src":"15788:412:29"},{"body":{"nodeType":"YulBlock","src":"16379:164:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16396:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16407:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16389:6:29"},"nodeType":"YulFunctionCall","src":"16389:21:29"},"nodeType":"YulExpressionStatement","src":"16389:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16430:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16441:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16426:3:29"},"nodeType":"YulFunctionCall","src":"16426:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16446:2:29","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16419:6:29"},"nodeType":"YulFunctionCall","src":"16419:30:29"},"nodeType":"YulExpressionStatement","src":"16419:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16469:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16480:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16465:3:29"},"nodeType":"YulFunctionCall","src":"16465:18:29"},{"hexValue":"616c726561647920696e69746564","kind":"string","nodeType":"YulLiteral","src":"16485:16:29","type":"","value":"already inited"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16458:6:29"},"nodeType":"YulFunctionCall","src":"16458:44:29"},"nodeType":"YulExpressionStatement","src":"16458:44:29"},{"nodeType":"YulAssignment","src":"16511:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16523:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16534:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16519:3:29"},"nodeType":"YulFunctionCall","src":"16519:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16511:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16356:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16370:4:29","type":""}],"src":"16205:338:29"},{"body":{"nodeType":"YulBlock","src":"16798:169:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16815:3:29"},{"hexValue":"4368696c64","kind":"string","nodeType":"YulLiteral","src":"16820:7:29","type":"","value":"Child"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16808:6:29"},"nodeType":"YulFunctionCall","src":"16808:20:29"},"nodeType":"YulExpressionStatement","src":"16808:20:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16854:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"16859:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16850:3:29"},"nodeType":"YulFunctionCall","src":"16850:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"16863:6:29"},{"name":"value1","nodeType":"YulIdentifier","src":"16871:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"16837:12:29"},"nodeType":"YulFunctionCall","src":"16837:41:29"},"nodeType":"YulExpressionStatement","src":"16837:41:29"},{"nodeType":"YulVariableDeclaration","src":"16887:34:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16905:3:29"},{"name":"value1","nodeType":"YulIdentifier","src":"16910:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16901:3:29"},"nodeType":"YulFunctionCall","src":"16901:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"16919:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16897:3:29"},"nodeType":"YulFunctionCall","src":"16897:24:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16891:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16937:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"16941:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16930:6:29"},"nodeType":"YulFunctionCall","src":"16930:13:29"},"nodeType":"YulExpressionStatement","src":"16930:13:29"},{"nodeType":"YulAssignment","src":"16952:9:29","value":{"name":"_1","nodeType":"YulIdentifier","src":"16959:2:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16952:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16766:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16771:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16779:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16790:3:29","type":""}],"src":"16548:419:29"},{"body":{"nodeType":"YulBlock","src":"17146:226:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17163:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17174:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17156:6:29"},"nodeType":"YulFunctionCall","src":"17156:21:29"},"nodeType":"YulExpressionStatement","src":"17156:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17197:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17208:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17193:3:29"},"nodeType":"YulFunctionCall","src":"17193:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"17213:2:29","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17186:6:29"},"nodeType":"YulFunctionCall","src":"17186:30:29"},"nodeType":"YulExpressionStatement","src":"17186:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17236:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17247:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17232:3:29"},"nodeType":"YulFunctionCall","src":"17232:18:29"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"17252:34:29","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17225:6:29"},"nodeType":"YulFunctionCall","src":"17225:62:29"},"nodeType":"YulExpressionStatement","src":"17225:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17307:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17318:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17303:3:29"},"nodeType":"YulFunctionCall","src":"17303:18:29"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"17323:6:29","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17296:6:29"},"nodeType":"YulFunctionCall","src":"17296:34:29"},"nodeType":"YulExpressionStatement","src":"17296:34:29"},{"nodeType":"YulAssignment","src":"17339:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17351:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17362:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17347:3:29"},"nodeType":"YulFunctionCall","src":"17347:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17339:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17123:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17137:4:29","type":""}],"src":"16972:400:29"},{"body":{"nodeType":"YulBlock","src":"17551:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17568:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17579:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17561:6:29"},"nodeType":"YulFunctionCall","src":"17561:21:29"},"nodeType":"YulExpressionStatement","src":"17561:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17602:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17613:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17598:3:29"},"nodeType":"YulFunctionCall","src":"17598:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"17618:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17591:6:29"},"nodeType":"YulFunctionCall","src":"17591:30:29"},"nodeType":"YulExpressionStatement","src":"17591:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17641:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17652:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17637:3:29"},"nodeType":"YulFunctionCall","src":"17637:18:29"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"17657:34:29","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17630:6:29"},"nodeType":"YulFunctionCall","src":"17630:62:29"},"nodeType":"YulExpressionStatement","src":"17630:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17712:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17723:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17708:3:29"},"nodeType":"YulFunctionCall","src":"17708:18:29"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"17728:4:29","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17701:6:29"},"nodeType":"YulFunctionCall","src":"17701:32:29"},"nodeType":"YulExpressionStatement","src":"17701:32:29"},{"nodeType":"YulAssignment","src":"17742:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17754:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17765:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17750:3:29"},"nodeType":"YulFunctionCall","src":"17750:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17742:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17528:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17542:4:29","type":""}],"src":"17377:398:29"},{"body":{"nodeType":"YulBlock","src":"17954:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17971:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17982:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17964:6:29"},"nodeType":"YulFunctionCall","src":"17964:21:29"},"nodeType":"YulExpressionStatement","src":"17964:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18005:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18016:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18001:3:29"},"nodeType":"YulFunctionCall","src":"18001:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"18021:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17994:6:29"},"nodeType":"YulFunctionCall","src":"17994:30:29"},"nodeType":"YulExpressionStatement","src":"17994:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18044:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18055:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18040:3:29"},"nodeType":"YulFunctionCall","src":"18040:18:29"},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f53","kind":"string","nodeType":"YulLiteral","src":"18060:34:29","type":"","value":"NativeMetaTransaction: INVALID_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18033:6:29"},"nodeType":"YulFunctionCall","src":"18033:62:29"},"nodeType":"YulExpressionStatement","src":"18033:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18115:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18126:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18111:3:29"},"nodeType":"YulFunctionCall","src":"18111:18:29"},{"hexValue":"49474e4552","kind":"string","nodeType":"YulLiteral","src":"18131:7:29","type":"","value":"IGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18104:6:29"},"nodeType":"YulFunctionCall","src":"18104:35:29"},"nodeType":"YulExpressionStatement","src":"18104:35:29"},{"nodeType":"YulAssignment","src":"18148:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18160:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18171:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18156:3:29"},"nodeType":"YulFunctionCall","src":"18156:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18148:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17931:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17945:4:29","type":""}],"src":"17780:401:29"},{"body":{"nodeType":"YulBlock","src":"18234:77:29","statements":[{"nodeType":"YulAssignment","src":"18244:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18255:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"18258:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18251:3:29"},"nodeType":"YulFunctionCall","src":"18251:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18244:3:29"}]},{"body":{"nodeType":"YulBlock","src":"18283:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18285:16:29"},"nodeType":"YulFunctionCall","src":"18285:18:29"},"nodeType":"YulExpressionStatement","src":"18285:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18275:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"18278:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18272:2:29"},"nodeType":"YulFunctionCall","src":"18272:10:29"},"nodeType":"YulIf","src":"18269:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18217:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"18220:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18226:3:29","type":""}],"src":"18186:125:29"},{"body":{"nodeType":"YulBlock","src":"18490:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18507:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18518:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18500:6:29"},"nodeType":"YulFunctionCall","src":"18500:21:29"},"nodeType":"YulExpressionStatement","src":"18500:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18541:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18552:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18537:3:29"},"nodeType":"YulFunctionCall","src":"18537:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"18557:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18530:6:29"},"nodeType":"YulFunctionCall","src":"18530:30:29"},"nodeType":"YulExpressionStatement","src":"18530:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18580:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18591:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18576:3:29"},"nodeType":"YulFunctionCall","src":"18576:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"18596:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18569:6:29"},"nodeType":"YulFunctionCall","src":"18569:57:29"},"nodeType":"YulExpressionStatement","src":"18569:57:29"},{"nodeType":"YulAssignment","src":"18635:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18647:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18658:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18643:3:29"},"nodeType":"YulFunctionCall","src":"18643:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18635:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18467:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18481:4:29","type":""}],"src":"18316:351:29"},{"body":{"nodeType":"YulBlock","src":"18846:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18863:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18874:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18856:6:29"},"nodeType":"YulFunctionCall","src":"18856:21:29"},"nodeType":"YulExpressionStatement","src":"18856:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18897:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18908:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18893:3:29"},"nodeType":"YulFunctionCall","src":"18893:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"18913:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18886:6:29"},"nodeType":"YulFunctionCall","src":"18886:30:29"},"nodeType":"YulExpressionStatement","src":"18886:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18936:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"18947:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18932:3:29"},"nodeType":"YulFunctionCall","src":"18932:18:29"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"18952:34:29","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18925:6:29"},"nodeType":"YulFunctionCall","src":"18925:62:29"},"nodeType":"YulExpressionStatement","src":"18925:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19007:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19018:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19003:3:29"},"nodeType":"YulFunctionCall","src":"19003:18:29"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"19023:7:29","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18996:6:29"},"nodeType":"YulFunctionCall","src":"18996:35:29"},"nodeType":"YulExpressionStatement","src":"18996:35:29"},{"nodeType":"YulAssignment","src":"19040:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19052:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19063:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19048:3:29"},"nodeType":"YulFunctionCall","src":"19048:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19040:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18823:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18837:4:29","type":""}],"src":"18672:401:29"},{"body":{"nodeType":"YulBlock","src":"19252:225:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19269:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19280:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19262:6:29"},"nodeType":"YulFunctionCall","src":"19262:21:29"},"nodeType":"YulExpressionStatement","src":"19262:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19303:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19314:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19299:3:29"},"nodeType":"YulFunctionCall","src":"19299:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"19319:2:29","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19292:6:29"},"nodeType":"YulFunctionCall","src":"19292:30:29"},"nodeType":"YulExpressionStatement","src":"19292:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19342:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19353:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19338:3:29"},"nodeType":"YulFunctionCall","src":"19338:18:29"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"19358:34:29","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19331:6:29"},"nodeType":"YulFunctionCall","src":"19331:62:29"},"nodeType":"YulExpressionStatement","src":"19331:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19413:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19424:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19409:3:29"},"nodeType":"YulFunctionCall","src":"19409:18:29"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"19429:5:29","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19402:6:29"},"nodeType":"YulFunctionCall","src":"19402:33:29"},"nodeType":"YulExpressionStatement","src":"19402:33:29"},{"nodeType":"YulAssignment","src":"19444:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19456:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19467:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19452:3:29"},"nodeType":"YulFunctionCall","src":"19452:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19444:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19229:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19243:4:29","type":""}],"src":"19078:399:29"},{"body":{"nodeType":"YulBlock","src":"19531:79:29","statements":[{"nodeType":"YulAssignment","src":"19541:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19553:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"19556:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19549:3:29"},"nodeType":"YulFunctionCall","src":"19549:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19541:4:29"}]},{"body":{"nodeType":"YulBlock","src":"19582:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19584:16:29"},"nodeType":"YulFunctionCall","src":"19584:18:29"},"nodeType":"YulExpressionStatement","src":"19584:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"19573:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"19579:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19570:2:29"},"nodeType":"YulFunctionCall","src":"19570:11:29"},"nodeType":"YulIf","src":"19567:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19513:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"19516:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19522:4:29","type":""}],"src":"19482:128:29"},{"body":{"nodeType":"YulBlock","src":"19789:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19806:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19817:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19799:6:29"},"nodeType":"YulFunctionCall","src":"19799:21:29"},"nodeType":"YulExpressionStatement","src":"19799:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19840:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19851:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19836:3:29"},"nodeType":"YulFunctionCall","src":"19836:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"19856:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19829:6:29"},"nodeType":"YulFunctionCall","src":"19829:30:29"},"nodeType":"YulExpressionStatement","src":"19829:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19879:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19890:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19875:3:29"},"nodeType":"YulFunctionCall","src":"19875:18:29"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nodeType":"YulLiteral","src":"19895:34:29","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19868:6:29"},"nodeType":"YulFunctionCall","src":"19868:62:29"},"nodeType":"YulExpressionStatement","src":"19868:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19950:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19961:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19946:3:29"},"nodeType":"YulFunctionCall","src":"19946:18:29"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"19966:3:29","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19939:6:29"},"nodeType":"YulFunctionCall","src":"19939:31:29"},"nodeType":"YulExpressionStatement","src":"19939:31:29"},{"nodeType":"YulAssignment","src":"19979:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19991:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20002:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19987:3:29"},"nodeType":"YulFunctionCall","src":"19987:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19979:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19766:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19780:4:29","type":""}],"src":"19615:397:29"},{"body":{"nodeType":"YulBlock","src":"20098:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"20131:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"20145:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"20155:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20149:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20176:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"20180:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20169:6:29"},"nodeType":"YulFunctionCall","src":"20169:17:29"},"nodeType":"YulExpressionStatement","src":"20169:17:29"},{"nodeType":"YulVariableDeclaration","src":"20199:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20221:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"20225:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"20211:9:29"},"nodeType":"YulFunctionCall","src":"20211:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"20203:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20243:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20266:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20276:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"20283:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"20295:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20279:3:29"},"nodeType":"YulFunctionCall","src":"20279:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20272:3:29"},"nodeType":"YulFunctionCall","src":"20272:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20262:3:29"},"nodeType":"YulFunctionCall","src":"20262:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"20247:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20337:23:29","statements":[{"nodeType":"YulAssignment","src":"20339:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"20354:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"20339:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"20319:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"20331:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20316:2:29"},"nodeType":"YulFunctionCall","src":"20316:20:29"},"nodeType":"YulIf","src":"20313:47:29"},{"nodeType":"YulVariableDeclaration","src":"20373:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20387:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20397:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"20404:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20409:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20400:3:29"},"nodeType":"YulFunctionCall","src":"20400:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20393:3:29"},"nodeType":"YulFunctionCall","src":"20393:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20383:3:29"},"nodeType":"YulFunctionCall","src":"20383:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"20377:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20427:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"20440:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"20431:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20525:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20534:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"20541:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"20527:6:29"},"nodeType":"YulFunctionCall","src":"20527:17:29"},"nodeType":"YulExpressionStatement","src":"20527:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20475:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"20482:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20472:2:29"},"nodeType":"YulFunctionCall","src":"20472:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"20486:26:29","statements":[{"nodeType":"YulAssignment","src":"20488:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"20501:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"20508:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20497:3:29"},"nodeType":"YulFunctionCall","src":"20497:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"20488:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"20468:3:29","statements":[]},"src":"20464:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"20114:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20119:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20111:2:29"},"nodeType":"YulFunctionCall","src":"20111:11:29"},"nodeType":"YulIf","src":"20108:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"20070:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"20077:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"20082:10:29","type":""}],"src":"20017:545:29"},{"body":{"nodeType":"YulBlock","src":"20652:81:29","statements":[{"nodeType":"YulAssignment","src":"20662:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"20677:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20695:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"20698:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20691:3:29"},"nodeType":"YulFunctionCall","src":"20691:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20708:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20704:3:29"},"nodeType":"YulFunctionCall","src":"20704:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"20687:3:29"},"nodeType":"YulFunctionCall","src":"20687:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20683:3:29"},"nodeType":"YulFunctionCall","src":"20683:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20673:3:29"},"nodeType":"YulFunctionCall","src":"20673:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20719:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"20722:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20715:3:29"},"nodeType":"YulFunctionCall","src":"20715:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"20670:2:29"},"nodeType":"YulFunctionCall","src":"20670:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"20662:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"20629:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"20635:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"20643:4:29","type":""}],"src":"20567:166:29"},{"body":{"nodeType":"YulBlock","src":"20834:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"20844:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"20864:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20858:5:29"},"nodeType":"YulFunctionCall","src":"20858:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"20848:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"20911:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20913:16:29"},"nodeType":"YulFunctionCall","src":"20913:18:29"},"nodeType":"YulExpressionStatement","src":"20913:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"20883:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"20891:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20880:2:29"},"nodeType":"YulFunctionCall","src":"20880:30:29"},"nodeType":"YulIf","src":"20877:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"20986:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"21024:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"21018:5:29"},"nodeType":"YulFunctionCall","src":"21018:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"20992:25:29"},"nodeType":"YulFunctionCall","src":"20992:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"21032:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"20942:43:29"},"nodeType":"YulFunctionCall","src":"20942:97:29"},"nodeType":"YulExpressionStatement","src":"20942:97:29"},{"nodeType":"YulVariableDeclaration","src":"21048:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21065:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"21052:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21075:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21094:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"21079:11:29","type":""}]},{"nodeType":"YulAssignment","src":"21107:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"21120:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"21107:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"21177:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21191:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"21210:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21222:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21218:3:29"},"nodeType":"YulFunctionCall","src":"21218:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21206:3:29"},"nodeType":"YulFunctionCall","src":"21206:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"21195:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21239:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"21283:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"21253:29:29"},"nodeType":"YulFunctionCall","src":"21253:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"21243:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21301:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21310:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21305:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21388:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21413:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21431:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"21436:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21427:3:29"},"nodeType":"YulFunctionCall","src":"21427:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21421:5:29"},"nodeType":"YulFunctionCall","src":"21421:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21406:6:29"},"nodeType":"YulFunctionCall","src":"21406:42:29"},"nodeType":"YulExpressionStatement","src":"21406:42:29"},{"nodeType":"YulAssignment","src":"21465:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21479:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"21487:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21475:3:29"},"nodeType":"YulFunctionCall","src":"21475:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21465:6:29"}]},{"nodeType":"YulAssignment","src":"21506:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"21523:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"21534:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21519:3:29"},"nodeType":"YulFunctionCall","src":"21519:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"21506:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21335:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"21338:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21332:2:29"},"nodeType":"YulFunctionCall","src":"21332:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21347:28:29","statements":[{"nodeType":"YulAssignment","src":"21349:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21358:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"21361:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21354:3:29"},"nodeType":"YulFunctionCall","src":"21354:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21349:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"21328:3:29","statements":[]},"src":"21324:236:29"},{"body":{"nodeType":"YulBlock","src":"21608:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21626:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21653:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"21658:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21649:3:29"},"nodeType":"YulFunctionCall","src":"21649:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21643:5:29"},"nodeType":"YulFunctionCall","src":"21643:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"21630:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"21693:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"21705:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21732:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"21735:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21728:3:29"},"nodeType":"YulFunctionCall","src":"21728:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"21744:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21724:3:29"},"nodeType":"YulFunctionCall","src":"21724:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21754:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21750:3:29"},"nodeType":"YulFunctionCall","src":"21750:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"21720:3:29"},"nodeType":"YulFunctionCall","src":"21720:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21716:3:29"},"nodeType":"YulFunctionCall","src":"21716:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21701:3:29"},"nodeType":"YulFunctionCall","src":"21701:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21686:6:29"},"nodeType":"YulFunctionCall","src":"21686:74:29"},"nodeType":"YulExpressionStatement","src":"21686:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"21579:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"21588:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21576:2:29"},"nodeType":"YulFunctionCall","src":"21576:19:29"},"nodeType":"YulIf","src":"21573:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"21794:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21808:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"21811:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21804:3:29"},"nodeType":"YulFunctionCall","src":"21804:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"21820:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21800:3:29"},"nodeType":"YulFunctionCall","src":"21800:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21787:6:29"},"nodeType":"YulFunctionCall","src":"21787:36:29"},"nodeType":"YulExpressionStatement","src":"21787:36:29"}]},"nodeType":"YulCase","src":"21170:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21175:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"21850:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"21864:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"21877:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"21868:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"21913:67:29","statements":[{"nodeType":"YulAssignment","src":"21931:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21950:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"21955:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21946:3:29"},"nodeType":"YulFunctionCall","src":"21946:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21940:5:29"},"nodeType":"YulFunctionCall","src":"21940:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"21931:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"21894:6:29"},"nodeType":"YulIf","src":"21891:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"22000:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22059:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"22066:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"22006:52:29"},"nodeType":"YulFunctionCall","src":"22006:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"21993:6:29"},"nodeType":"YulFunctionCall","src":"21993:81:29"},"nodeType":"YulExpressionStatement","src":"21993:81:29"}]},"nodeType":"YulCase","src":"21842:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"21150:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"21158:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21147:2:29"},"nodeType":"YulFunctionCall","src":"21147:14:29"},"nodeType":"YulSwitch","src":"21140:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"20819:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"20825:3:29","type":""}],"src":"20738:1352:29"},{"body":{"nodeType":"YulBlock","src":"22308:276:29","statements":[{"nodeType":"YulAssignment","src":"22318:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22330:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22341:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22326:3:29"},"nodeType":"YulFunctionCall","src":"22326:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22318:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22361:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"22372:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22354:6:29"},"nodeType":"YulFunctionCall","src":"22354:25:29"},"nodeType":"YulExpressionStatement","src":"22354:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22399:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22410:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22395:3:29"},"nodeType":"YulFunctionCall","src":"22395:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"22415:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22388:6:29"},"nodeType":"YulFunctionCall","src":"22388:34:29"},"nodeType":"YulExpressionStatement","src":"22388:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22442:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22453:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22438:3:29"},"nodeType":"YulFunctionCall","src":"22438:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"22458:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22431:6:29"},"nodeType":"YulFunctionCall","src":"22431:34:29"},"nodeType":"YulExpressionStatement","src":"22431:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22485:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22496:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22481:3:29"},"nodeType":"YulFunctionCall","src":"22481:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"22505:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22521:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22526:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22517:3:29"},"nodeType":"YulFunctionCall","src":"22517:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"22530:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22513:3:29"},"nodeType":"YulFunctionCall","src":"22513:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22501:3:29"},"nodeType":"YulFunctionCall","src":"22501:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22474:6:29"},"nodeType":"YulFunctionCall","src":"22474:60:29"},"nodeType":"YulExpressionStatement","src":"22474:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22554:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"22565:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22550:3:29"},"nodeType":"YulFunctionCall","src":"22550:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"22571:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22543:6:29"},"nodeType":"YulFunctionCall","src":"22543:35:29"},"nodeType":"YulExpressionStatement","src":"22543:35:29"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22245:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22256:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22264:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22272:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22280:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22288:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22299:4:29","type":""}],"src":"22095:489:29"},{"body":{"nodeType":"YulBlock","src":"22829:238:29","statements":[{"nodeType":"YulVariableDeclaration","src":"22839:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22859:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22853:5:29"},"nodeType":"YulFunctionCall","src":"22853:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"22843:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22914:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"22922:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22910:3:29"},"nodeType":"YulFunctionCall","src":"22910:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"22929:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"22934:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"22875:34:29"},"nodeType":"YulFunctionCall","src":"22875:66:29"},"nodeType":"YulExpressionStatement","src":"22875:66:29"},{"nodeType":"YulVariableDeclaration","src":"22950:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22967:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"22972:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22963:3:29"},"nodeType":"YulFunctionCall","src":"22963:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"22954:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"22995:5:29"},{"hexValue":"3a20494e53554646494349454e545f5045524d495353494f4e53","kind":"string","nodeType":"YulLiteral","src":"23002:28:29","type":"","value":": INSUFFICIENT_PERMISSIONS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22988:6:29"},"nodeType":"YulFunctionCall","src":"22988:43:29"},"nodeType":"YulExpressionStatement","src":"22988:43:29"},{"nodeType":"YulAssignment","src":"23040:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"23051:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"23058:2:29","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23047:3:29"},"nodeType":"YulFunctionCall","src":"23047:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23040:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"22805:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22810:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"22821:3:29","type":""}],"src":"22589:478:29"},{"body":{"nodeType":"YulBlock","src":"23257:232:29","statements":[{"nodeType":"YulAssignment","src":"23267:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23279:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23290:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23275:3:29"},"nodeType":"YulFunctionCall","src":"23275:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23267:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23310:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"23321:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23303:6:29"},"nodeType":"YulFunctionCall","src":"23303:25:29"},"nodeType":"YulExpressionStatement","src":"23303:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23348:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23359:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23344:3:29"},"nodeType":"YulFunctionCall","src":"23344:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"23364:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23337:6:29"},"nodeType":"YulFunctionCall","src":"23337:34:29"},"nodeType":"YulExpressionStatement","src":"23337:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23391:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23402:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23387:3:29"},"nodeType":"YulFunctionCall","src":"23387:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23411:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23427:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"23432:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23423:3:29"},"nodeType":"YulFunctionCall","src":"23423:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"23436:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23419:3:29"},"nodeType":"YulFunctionCall","src":"23419:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23407:3:29"},"nodeType":"YulFunctionCall","src":"23407:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23380:6:29"},"nodeType":"YulFunctionCall","src":"23380:60:29"},"nodeType":"YulExpressionStatement","src":"23380:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23460:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23471:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23456:3:29"},"nodeType":"YulFunctionCall","src":"23456:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"23476:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23449:6:29"},"nodeType":"YulFunctionCall","src":"23449:34:29"},"nodeType":"YulExpressionStatement","src":"23449:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23202:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23213:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23221:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23229:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23237:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23248:4:29","type":""}],"src":"23072:417:29"},{"body":{"nodeType":"YulBlock","src":"23668:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23685:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23696:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23678:6:29"},"nodeType":"YulFunctionCall","src":"23678:21:29"},"nodeType":"YulExpressionStatement","src":"23678:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23719:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23730:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23715:3:29"},"nodeType":"YulFunctionCall","src":"23715:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"23735:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23708:6:29"},"nodeType":"YulFunctionCall","src":"23708:30:29"},"nodeType":"YulExpressionStatement","src":"23708:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23758:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23769:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23754:3:29"},"nodeType":"YulFunctionCall","src":"23754:18:29"},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e","kind":"string","nodeType":"YulLiteral","src":"23774:34:29","type":"","value":"EnumerableSet: index out of boun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23747:6:29"},"nodeType":"YulFunctionCall","src":"23747:62:29"},"nodeType":"YulExpressionStatement","src":"23747:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23829:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23840:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23825:3:29"},"nodeType":"YulFunctionCall","src":"23825:18:29"},{"hexValue":"6473","kind":"string","nodeType":"YulLiteral","src":"23845:4:29","type":"","value":"ds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23818:6:29"},"nodeType":"YulFunctionCall","src":"23818:32:29"},"nodeType":"YulExpressionStatement","src":"23818:32:29"},{"nodeType":"YulAssignment","src":"23859:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23871:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"23882:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23867:3:29"},"nodeType":"YulFunctionCall","src":"23867:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23859:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23645:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23659:4:29","type":""}],"src":"23494:398:29"},{"body":{"nodeType":"YulBlock","src":"23929:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23946:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23953:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23958:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23949:3:29"},"nodeType":"YulFunctionCall","src":"23949:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23939:6:29"},"nodeType":"YulFunctionCall","src":"23939:31:29"},"nodeType":"YulExpressionStatement","src":"23939:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23986:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23989:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23979:6:29"},"nodeType":"YulFunctionCall","src":"23979:15:29"},"nodeType":"YulExpressionStatement","src":"23979:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24010:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24013:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24003:6:29"},"nodeType":"YulFunctionCall","src":"24003:15:29"},"nodeType":"YulExpressionStatement","src":"24003:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"23897:127:29"},{"body":{"nodeType":"YulBlock","src":"24061:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24078:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24085:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"24090:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24081:3:29"},"nodeType":"YulFunctionCall","src":"24081:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24071:6:29"},"nodeType":"YulFunctionCall","src":"24071:31:29"},"nodeType":"YulExpressionStatement","src":"24071:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24118:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24121:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24111:6:29"},"nodeType":"YulFunctionCall","src":"24111:15:29"},"nodeType":"YulExpressionStatement","src":"24111:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24142:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24145:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24135:6:29"},"nodeType":"YulFunctionCall","src":"24135:15:29"},"nodeType":"YulExpressionStatement","src":"24135:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"24029:127:29"}]},"contents":"{\n { }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_boolt_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let value := calldataload(add(headStart, 128))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value4 := value\n value5 := abi_decode_uint8(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n value7 := calldataload(add(headStart, 224))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n value4 := abi_decode_uint8(add(headStart, 64))\n value5 := abi_decode_address(add(headStart, 96))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Signer and signature do not matc\")\n mstore(add(headStart, 96), \"h\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(end_1, 20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Function call not successful\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to grant\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n mstore(add(headStart, _1), length)\n let _2 := 64\n let _3 := 1\n switch and(slotValue, _3)\n case 0 {\n mstore(add(headStart, _2), and(slotValue, not(255)))\n ret := add(add(headStart, shl(5, iszero(iszero(length)))), _2)\n }\n case 1 {\n mstore(0, value0)\n let dataPos := keccak256(0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), _2), sload(dataPos))\n dataPos := add(dataPos, _3)\n }\n ret := add(add(headStart, i), _2)\n }\n tail := ret\n }\n function abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), iszero(iszero(value5)))\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_stringliteral_45370a5ff81ff8b69ed6d4f9504fc812f03a4070b510c274991c826bacdeee53__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"UChildDAI: INVALID-PERMIT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_533bba907ed2fe60e99644310afa76db6b814f4474db6d59c2f8affde1941afe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"UChildDAI: PERMIT-EXPIRED\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_stringliteral_32d2fdaddf3affb6008c1877cbfec30baf08bf9cac05b09144107f373dc1f3f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"UChildDAI: INVALID-NONCE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to revoke\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"already inited\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"Child\")\n calldatacopy(add(pos, 5), value0, value1)\n let _1 := add(add(pos, value1), 5)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"NativeMetaTransaction: INVALID_S\")\n mstore(add(headStart, 96), \"IGNER\")\n tail := add(headStart, 128)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n mstore(add(headStart, 96), \"s\")\n tail := add(headStart, 128)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, \": INSUFFICIENT_PERMISSIONS\")\n end := add(end_1, 26)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"EnumerableSet: index out of boun\")\n mstore(add(headStart, 96), \"ds\")\n tail := add(headStart, 128)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x230 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5353A2D8 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xAB JUMPI DUP1 PUSH4 0xCF2C52CB GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x6E5 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x705 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x725 JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x76B JUMPI DUP1 PUSH4 0xF2D5D56B EQ PUSH2 0x78B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x645 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x665 JUMPI DUP1 PUSH4 0xB753A98C EQ PUSH2 0x685 JUMPI DUP1 PUSH4 0xBB35783B EQ PUSH2 0x6A5 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x6C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0xF2 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x50F JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x55A JUMPI DUP1 PUSH4 0x8FCBAF0C EQ PUSH2 0x56F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x1BC JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x180 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x45A JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x4CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3E4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x426 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x203 JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x35E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x2BD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x7AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x257 SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x83D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x24A PUSH2 0x2CB CALLDATASIZE PUSH1 0x4 PUSH2 0x1F85 JUMP JUMPDEST PUSH2 0x85B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x399 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x3C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0xAD1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x421 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xAE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x432 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x33B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4AA CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0xB75 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x4CA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xBFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x4EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0xC4D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x50A CALLDATASIZE PUSH1 0x4 PUSH2 0x2150 JUMP JUMPDEST PUSH2 0xD2C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x20C0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x566 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x58A CALLDATASIZE PUSH1 0x4 PUSH2 0x2192 JUMP JUMPDEST PUSH2 0xDF7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5AF PUSH2 0x5AA CALLDATASIZE PUSH1 0x4 PUSH2 0x2214 JUMP JUMPDEST PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x257 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x5E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x1087 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24A PUSH2 0x109F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x608 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x660 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x10AE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x280 PUSH2 0x680 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x1116 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x112A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x6C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x6E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x20A7 JUMP JUMPDEST PUSH2 0x1146 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x700 CALLDATASIZE PUSH1 0x4 PUSH2 0x2236 JUMP JUMPDEST PUSH2 0x115D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x711 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x720 CALLDATASIZE PUSH1 0x4 PUSH2 0x20DB JUMP JUMPDEST PUSH2 0x11CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x33B PUSH2 0x740 CALLDATASIZE PUSH1 0x4 PUSH2 0x2289 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x786 CALLDATASIZE PUSH1 0x4 PUSH2 0x22B3 JUMP JUMPDEST PUSH2 0x124F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x404 PUSH2 0x7A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 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 0x7E6 SWAP1 PUSH2 0x2343 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x833 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x808 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x833 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x816 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x84A PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x899 DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x1532 JUMP JUMPDEST PUSH2 0x8F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x918 SWAP1 PUSH1 0x1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x968 SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x237D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x990 SWAP3 SWAP2 SWAP1 PUSH2 0x23A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x9AA SWAP2 PUSH2 0x23E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9E7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9EC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0xA3E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA57 DUP5 DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xAC7 DUP5 PUSH2 0xA63 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2753 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0xAA1 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH2 0x140D JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xAE2 PUSH2 0xADC PUSH2 0x13FE JUMP JUMPDEST DUP3 PUSH2 0x183E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xB03 SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x1942 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB7D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0xB71 DUP3 DUP3 PUSH2 0x19AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0xC0C PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xC1D PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xCA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xCB0 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xCD6 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD3A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xD5A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH2 0xD9A DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1A20 SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE02 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xEA2AA0A1BE11A07ED86D755C93467F4F82362B452371D1BA94D1715123511ACB PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP14 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP11 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP9 SWAP1 MSTORE DUP7 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE9C SWAP3 SWAP2 SWAP1 PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP5 MSTORE SWAP1 DUP4 ADD DUP1 DUP4 MSTORE DUP2 SWAP1 MSTORE PUSH1 0xFF DUP8 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 POP PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D5045524D495400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST DUP6 ISZERO DUP1 PUSH2 0xF7B JUMPI POP DUP6 TIMESTAMP GT ISZERO JUMPDEST PUSH2 0xFC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A205045524D49542D4558504952454400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xFEB DUP4 PUSH2 0x249D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE DUP8 EQ PUSH2 0x103D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x554368696C644441493A20494E56414C49442D4E4F4E43450000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH2 0x104B JUMPI PUSH1 0x0 PUSH2 0x104F JUMP JUMPDEST PUSH1 0x0 NOT JUMPDEST SWAP1 POP PUSH2 0x105C DUP11 DUP11 DUP4 PUSH2 0x140D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1080 SWAP1 DUP4 PUSH2 0x1AB3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x7BA SWAP1 PUSH2 0x2343 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x10BB PUSH2 0x13FE JUMP JUMPDEST DUP5 PUSH2 0xAC2 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x277B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x10E5 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x851 PUSH2 0x1123 PUSH2 0x13FE JUMP JUMPDEST DUP5 DUP5 PUSH2 0x1681 JUMP JUMPDEST PUSH2 0xDF2 CALLER DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH2 0x1140 DUP4 DUP4 DUP4 PUSH2 0xA4A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x855 SWAP1 PUSH2 0x1AD5 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0x118A DUP2 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x11AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x11B9 DUP4 DUP6 ADD DUP6 PUSH2 0x20A7 JUMP JUMPDEST SWAP1 POP PUSH2 0x11C5 DUP6 DUP3 PUSH2 0xC4D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0x11EA SWAP1 PUSH2 0x5E2 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xBF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x12D2 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A14 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1311 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1ADF SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0x134A DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1336 SWAP3 SWAP2 SWAP1 PUSH2 0x24B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1AEB JUMP JUMPDEST PUSH2 0x135C PUSH1 0x0 PUSH2 0x1357 PUSH2 0x13FE JUMP JUMPDEST PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x1386 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x13DE 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1B19 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0xDF2 DUP3 CALLER DUP4 PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1408 PUSH2 0x1B78 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x146F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1598 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH2 0x15AB PUSH2 0x15A6 DUP8 PUSH2 0x1BD4 JUMP JUMPDEST PUSH2 0x1C51 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x162F DUP4 DUP6 PUSH2 0x24D7 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1080 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x16E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1784 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x272D PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x17B3 SWAP1 DUP3 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x1525 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x1828 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EB SWAP2 SWAP1 PUSH2 0x1F05 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1835 DUP5 DUP7 PUSH2 0x24EA JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x189E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x18DB DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2679 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x1901 SWAP1 DUP3 PUSH2 0x1C81 JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x195A SWAP1 DUP3 PUSH2 0x1CC3 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x1967 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19C3 SWAP1 DUP3 PUSH2 0x1CD8 JUMP JUMPDEST ISZERO PUSH2 0xB71 JUMPI PUSH2 0x19D0 PUSH2 0x13FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x26DE PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x1A58 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH2 0x1CED JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1080 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x855 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xB71 DUP3 DUP3 PUSH2 0x254B JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1AFC SWAP2 SWAP1 PUSH2 0x260B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x254B JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B5D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x1B67 DUP3 DUP3 PUSH2 0x1A20 JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x1BD1 SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x269B PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x1C34 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5C PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x1C34 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1804 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1D73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1080 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1DC2 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x1D4B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8EB JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1D60 JUMPI PUSH2 0x1D60 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1DBA JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x855 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1EAB JUMPI PUSH1 0x0 PUSH2 0x1DE6 PUSH1 0x1 DUP4 PUSH2 0x24EA JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DFA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x24EA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1E13 JUMPI PUSH2 0x1E13 PUSH2 0x264C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1E36 JUMPI PUSH2 0x1E36 PUSH2 0x264C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1E4D DUP4 PUSH1 0x1 PUSH2 0x24D7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1E6F JUMPI PUSH2 0x1E6F PUSH2 0x2662 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x855 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1ED0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1EB8 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1EF1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1080 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F50 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1F2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FA6 DUP7 PUSH2 0x1F18 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1FC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1FE9 JUMPI PUSH2 0x1FE9 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2011 JUMPI PUSH2 0x2011 PUSH2 0x1F5E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x202A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x205F PUSH1 0x80 DUP8 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2080 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2089 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH2 0x2097 PUSH1 0x20 DUP6 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1080 DUP3 PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x217A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2186 DUP6 DUP3 DUP7 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x21AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21B8 DUP10 PUSH2 0x1F18 JUMP JUMPDEST SWAP8 POP PUSH2 0x21C6 PUSH1 0x20 DUP11 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x21E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 POP PUSH2 0x21F7 PUSH1 0xA0 DUP11 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP3 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xE0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x224B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2254 DUP5 PUSH2 0x1F18 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x227C DUP7 DUP3 DUP8 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x229C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A5 DUP4 PUSH2 0x1F18 JUMP JUMPDEST SWAP2 POP PUSH2 0x20FE PUSH1 0x20 DUP5 ADD PUSH2 0x1F18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x22CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x22E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F0 DUP11 DUP4 DUP12 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2316 DUP10 DUP3 DUP11 ADD PUSH2 0x2107 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x2329 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1F74 JUMP JUMPDEST SWAP2 POP PUSH2 0x2337 PUSH1 0x60 DUP9 ADD PUSH2 0x1F18 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2357 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2377 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1835 SWAP1 DUP4 ADD DUP5 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x23BB DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x23F2 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x2410 DUP2 PUSH2 0x2343 JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2431 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x244B JUMPI PUSH2 0x2479 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2479 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2471 JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2456 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x24AF JUMPI PUSH2 0x24AF PUSH2 0x2487 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x855 JUMPI PUSH2 0x855 PUSH2 0x2487 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xDF2 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2524 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2543 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2530 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2565 JUMPI PUSH2 0x2565 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x2579 DUP2 PUSH2 0x2573 DUP5 SLOAD PUSH2 0x2343 JUMP JUMPDEST DUP5 PUSH2 0x24FD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x25AE JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2596 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2543 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x25DD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x25BE JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x25FB JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x261D DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1EB5 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 SIGNEXTEND 0x28 DUP2 EXTCODECOPY DUP10 DUP12 SDIV DUP14 0xB9 SELFBALANCE 0xDE NOT PUSH26 0x48E4A016DE2D4EB44C0A299D2131490F4DBA2564736F6C634300 ADDMOD EQ STOP CALLER ","sourceMap":"50794:1672:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19508:166;;;;;;;;;;-1:-1:-1;19508:166:27;;;;;:::i;:::-;;:::i;:::-;;;1372:14:29;;1365:22;1347:41;;1335:2;1320:18;19508:166:27;1207:187:29;47515:52:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47515:52:27;;;;;45105:1117;;;;;;:::i;:::-;;:::i;47407:51::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47407:51:27;;;;;47310:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47310:43:27;;;;;18515:98;;;;;;;;;;-1:-1:-1;18594:12:27;;18515:98;;;3269:25:29;;;3257:2;3242:18;18515:98:27;3123:177:29;43354:99:27;;;;;;;;;;-1:-1:-1;43431:15:27;;43354:99;;20134:330;;;;;;;;;;-1:-1:-1;20134:330:27;;;;;:::i;:::-;;:::i;38118:112::-;;;;;;;;;;-1:-1:-1;38118:112:27;;;;;:::i;:::-;38175:7;38201:12;;;:6;:12;;;;;:22;;;;38118:112;46630:105;;;;;;;;;;-1:-1:-1;46630:105:27;;;;;:::i;:::-;-1:-1:-1;;;;;46716:12:27;46683:13;46716:12;;;:6;:12;;;;;;;46630:105;50614:87;;;;;;;;;;-1:-1:-1;50614:87:27;;;;;:::i;:::-;;:::i;:::-;;38480:223;;;;;;;;;;-1:-1:-1;38480:223:27;;;;;:::i;:::-;;:::i;50990:108::-;;;;;;;;;;-1:-1:-1;50990:108:27;51032:66;50990:108;;18281:81;;;;;;;;;;-1:-1:-1;18346:9:27;;18281:81;;18346:9;;;;4782:36:29;;4770:2;4755:18;18281:81:27;4640:184:29;43459:155:27;;;;;;;;;;-1:-1:-1;43570:9:27;43459:155;;39654:205;;;;;;;;;;-1:-1:-1;39654:205:27;;;;;:::i;:::-;;:::i;20859:215::-;;;;;;;;;;-1:-1:-1;20859:215:27;;;;;:::i;:::-;;:::i;23115:369::-;;;;;;;;;;-1:-1:-1;23115:369:27;;;;;:::i;:::-;;:::i;49612:160::-;;;;;;;;;;-1:-1:-1;49612:160:27;;;;;:::i;:::-;;:::i;47465:44::-;;;;;;;;;;;;47506:3;47465:44;;18671:117;;;;;;;;;;-1:-1:-1;18671:117:27;;;;;:::i;:::-;-1:-1:-1;;;;;18763:18:27;18737:7;18763:18;;;;;;;;;;;;18671:117;47360:41;;;;;;;;;;;;47400:1;47360:41;;51475:989;;;;;;;;;;-1:-1:-1;51475:989:27;;;;;:::i;:::-;;:::i;37801:136::-;;;;;;;;;;-1:-1:-1;37801:136:27;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;6788:32:29;;;6770:51;;6758:2;6743:18;37801:136:27;6624:203:29;36798:137:27;;;;;;;;;;-1:-1:-1;36798:137:27;;;;;:::i;:::-;;:::i;17480:85::-;;;;;;;;;;;;;:::i;35575:49::-;;;;;;;;;;-1:-1:-1;35575:49:27;35620:4;35575:49;;48562:68;;;;;;;;;;;;48603:27;48562:68;;21561:279;;;;;;;;;;-1:-1:-1;21561:279:27;;;;;:::i;:::-;;:::i;18991:172::-;;;;;;;;;;-1:-1:-1;18991:172:27;;;;;:::i;:::-;;:::i;51126:97::-;;;;;;;;;;-1:-1:-1;51126:97:27;;;;;:::i;:::-;;:::i;51330:103::-;;;;;;;;;;-1:-1:-1;51330:103:27;;;;;:::i;:::-;;:::i;37103:125::-;;;;;;;;;;-1:-1:-1;37103:125:27;;;;;:::i;:::-;;:::i;50143:223::-;;;;;;;;;;-1:-1:-1;50143:223:27;;;;;:::i;:::-;;:::i;38937:226::-;;;;;;;;;;-1:-1:-1;38937:226:27;;;;;:::i;:::-;;:::i;19221:149::-;;;;;;;;;;-1:-1:-1;19221:149:27;;;;;:::i;:::-;-1:-1:-1;;;;;19336:18:27;;;19310:7;19336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19221:149;48827:497;;;;;;;;;;-1:-1:-1;48827:497:27;;;;;:::i;:::-;;:::i;51228:97::-;;;;;;;;;;-1:-1:-1;51228:97:27;;;;;:::i;:::-;;:::i;17201:81::-;17238:13;17270:5;17263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;:::o;19508:166::-;19591:4;19607:39;19616:12;:10;:12::i;:::-;19630:7;19639:6;19607:8;:39::i;:::-;-1:-1:-1;19663:4:27;19508:166;;;;;:::o;45105:1117::-;45356:148;;;45300:12;45356:148;;;;;-1:-1:-1;;;;;45393:19:27;;45324:29;45393:19;;;:6;:19;;;;;;;;;45356:148;;;;;;;;;;;45536:45;45400:11;45356:148;45564:4;45570;45576;45536:6;:45::i;:::-;45515:125;;;;-1:-1:-1;;;45515:125:27;;9044:2:29;45515:125:27;;;9026:21:29;9083:2;9063:18;;;9056:30;9122:34;9102:18;;;9095:62;-1:-1:-1;;;9173:18:29;;;9166:31;9214:19;;45515:125:27;;;;;;;;;-1:-1:-1;;;;;45726:19:27;;;;;;:6;:19;;;;;;:26;;45750:1;45726:23;:26::i;:::-;-1:-1:-1;;;;;45704:19:27;;;;;;:6;:19;;;;;;;:48;;;;45768:122;;;;;45711:11;;45838:10;;45863:17;;45768:122;:::i;:::-;;;;;;;;45998:12;46012:23;46047:4;-1:-1:-1;;;;;46039:18:27;46088:17;46107:11;46071:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;46071:48:27;;;;;;;;;;46039:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45997:132;;;;46147:7;46139:48;;;;-1:-1:-1;;;46139:48:27;;10608:2:29;46139:48:27;;;10590:21:29;10647:2;10627:18;;;10620:30;10686;10666:18;;;10659:58;10734:18;;46139:48:27;10406:352:29;46139:48:27;46205:10;45105:1117;-1:-1:-1;;;;;;;;45105:1117:27:o;20134:330::-;20240:4;20256:36;20266:6;20274:9;20285:6;20256:9;:36::i;:::-;20302:134;20311:6;20319:12;:10;:12::i;:::-;20333:102;20371:6;20333:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20333:19:27;;;;;;:11;:19;;;;;;20353:12;:10;:12::i;:::-;-1:-1:-1;;;;;20333:33:27;;;;;;;;;;;;-1:-1:-1;20333:33:27;;;:102;:37;:102::i;:::-;20302:8;:134::i;:::-;-1:-1:-1;20453:4:27;20134:330;;;;;:::o;50614:87::-;50667:27;50673:12;:10;:12::i;:::-;50687:6;50667:5;:27::i;:::-;50614:87;:::o;38480:223::-;38571:12;;;;:6;:12;;;;;:22;;;38563:45;;38595:12;:10;:12::i;38563:45::-;38555:105;;;;-1:-1:-1;;;38555:105:27;;10965:2:29;38555:105:27;;;10947:21:29;11004:2;10984:18;;;10977:30;11043:34;11023:18;;;11016:62;-1:-1:-1;;;11094:18:29;;;11087:45;11149:19;;38555:105:27;10763:411:29;38555:105:27;38671:25;38682:4;38688:7;38671:10;:25::i;:::-;38480:223;;:::o;39654:205::-;39751:12;:10;:12::i;:::-;-1:-1:-1;;;;;39740:23:27;:7;-1:-1:-1;;;;;39740:23:27;;39732:83;;;;-1:-1:-1;;;39732:83:27;;11381:2:29;39732:83:27;;;11363:21:29;11420:2;11400:18;;;11393:30;11459:34;11439:18;;;11432:62;-1:-1:-1;;;11510:18:29;;;11503:45;11565:19;;39732:83:27;11179:411:29;39732:83:27;39826:26;39838:4;39844:7;39826:11;:26::i;20859:215::-;20947:4;20963:83;20972:12;:10;:12::i;:::-;20986:7;20995:50;21034:10;20995:11;:25;21007:12;:10;:12::i;:::-;-1:-1:-1;;;;;20995:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;20995:25:27;;;:34;;;;;;;;;;;:38;:50::i;23115:369::-;-1:-1:-1;;;;;23197:21:27;;23189:65;;;;-1:-1:-1;;;23189:65:27;;11797:2:29;23189:65:27;;;11779:21:29;11836:2;11816:18;;;11809:30;11875:33;11855:18;;;11848:61;11926:18;;23189:65:27;11595:355:29;23189:65:27;23340:12;;:24;;23357:6;23340:16;:24::i;:::-;23325:12;:39;-1:-1:-1;;;;;23395:18:27;;:9;:18;;;;;;;;;;;:30;;23418:6;23395:22;:30::i;:::-;-1:-1:-1;;;;;23374:18:27;;:9;:18;;;;;;;;;;;:51;;;;23440:37;;3269:25:29;;;23374:18:27;;:9;;23440:37;;3242:18:29;23440:37:27;;;;;;;;23115:369;;:::o;49612:160::-;35620:4;41624:27;35620:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;;49699:14:::1;49707:5;;49699:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49699:7:27::1;::::0;-1:-1:-1;;;49699:14:27:i:1;:::-;49723:42;49743:5;;49723:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49750:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49750:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49723:19:27::1;::::0;-1:-1:-1;49723:42:27:i:1;:::-;49612:160:::0;;;:::o;51475:989::-;51689:14;51791:20;43431:15;;;43354:99;51791:20;51860:234;;;51032:66;51860:234;;;13330:25:29;-1:-1:-1;;;;;13429:15:29;;;13409:18;;;13402:43;;;;13481:15;;;13461:18;;;13454:43;13513:18;;;13506:34;;;13556:19;;;13549:35;;;13628:14;;13621:22;13600:19;;;13593:51;13302:19;;51860:234:27;;;;;;;;;;;;51829:283;;;;;;51729:393;;;;;;;;-1:-1:-1;;;13913:27:29;;13965:1;13956:11;;13949:27;;;;14001:2;13992:12;;13985:28;14038:2;14029:12;;13655:392;51729:393:27;;;;-1:-1:-1;;51729:393:27;;;;;;;;;51706:417;;51729:393;51706:417;;;;52152:26;;;;;;;;;14279:25:29;;;14352:4;14340:17;;14320:18;;;14313:45;;;;14374:18;;;14367:34;;;14417:18;;;14410:34;;;51706:417:27;-1:-1:-1;52152:26:27;;14251:19:29;;52152:26:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;52142:36:27;:6;-1:-1:-1;;;;;52142:36:27;;52134:74;;;;-1:-1:-1;;;52134:74:27;;14657:2:29;52134:74:27;;;14639:21:29;14696:2;14676:18;;;14669:30;14735:27;14715:18;;;14708:55;14780:18;;52134:74:27;14455:349:29;52134:74:27;52226:11;;;:40;;;52260:6;52241:15;:25;;52226:40;52218:78;;;;-1:-1:-1;;;52218:78:27;;15011:2:29;52218:78:27;;;14993:21:29;15050:2;15030:18;;;15023:30;15089:27;15069:18;;;15062:55;15134:18;;52218:78:27;14809:349:29;52218:78:27;-1:-1:-1;;;;;52323:14:27;;;;;;:6;:14;;;;;:16;;;;;;:::i;:::-;;;;;52314:5;:25;52306:62;;;;-1:-1:-1;;;52306:62:27;;15637:2:29;52306:62:27;;;15619:21:29;15676:2;15656:18;;;15649:30;15715:26;15695:18;;;15688:54;15759:18;;52306:62:27;15435:348:29;52306:62:27;52378:8;52389:7;:28;;52416:1;52389:28;;;-1:-1:-1;;52389:28:27;52378:39;;52427:30;52436:6;52444:7;52453:3;52427:8;:30::i;:::-;51679:785;;51475:989;;;;;;;;:::o;37801:136::-;37874:7;37900:12;;;:6;:12;;;;;:30;;37924:5;37900:23;:30::i;:::-;37893:37;37801:136;-1:-1:-1;;;37801:136:27:o;36798:137::-;36867:4;36890:12;;;:6;:12;;;;;:38;;36920:7;36890:29;:38::i;17480:85::-;17519:13;17551:7;17544:14;;;;;:::i;21561:279::-;21654:4;21670:142;21679:12;:10;:12::i;:::-;21693:7;21702:109;21741:15;21702:109;;;;;;;;;;;;;;;;;:11;:25;21714:12;:10;:12::i;:::-;-1:-1:-1;;;;;21702:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;21702:25:27;;;:34;;;;;;;;;;;:109;:38;:109::i;18991:172::-;19077:4;19093:42;19103:12;:10;:12::i;:::-;19117:9;19128:6;19093:9;:42::i;51126:97::-;51182:34;51195:10;51207:3;51212;51182:12;:34::i;51330:103::-;51399:27;51412:3;51417;51422;51399:12;:27::i;:::-;;51330:103;;;:::o;37103:125::-;37166:7;37192:12;;;:6;:12;;;;;:29;;:27;:29::i;50143:223::-;48603:27;41624;41632:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;-1:-1:-1;50279:14:27::1;50296:34;::::0;;::::1;50307:11:::0;50296:34:::1;:::i;:::-;50279:51;;50340:19;50346:4;50352:6;50340:5;:19::i;:::-;50269:97;50143:223:::0;;;;:::o;38937:226::-;39029:12;;;;:6;:12;;;;;:22;;;39021:45;;39053:12;:10;:12::i;39021:45::-;39013:106;;;;-1:-1:-1;;;39013:106:27;;15990:2:29;39013:106:27;;;15972:21:29;16029:2;16009:18;;;16002:30;16068:34;16048:18;;;16041:62;-1:-1:-1;;;16119:18:29;;;16112:46;16175:19;;39013:106:27;15788:412:29;48827:497:27;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;16407:2:29;42045:34:27;;;16389:21:29;16446:2;16426:18;;;16419:30;-1:-1:-1;;;16465:18:29;;;16458:44;16519:18;;42045:34:27;16205:338:29;42045:34:27;49026:14:::1;49034:5;;49026:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49026:7:27::1;::::0;-1:-1:-1;;;49026:14:27:i:1;:::-;49048:18;49058:7;;49048:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49048:9:27::1;::::0;-1:-1:-1;;;49048:18:27:i:1;:::-;18425:9:::0;:23;;-1:-1:-1;;18425:23:27;;;;;;;49104:60:::1;49154:7;;49128:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;49104:16;:60::i;:::-;49172:44;35620:4;49203:12;:10;:12::i;:::-;49172:10;:44::i;:::-;49224:45;48603:27;49251:17;49224:10;:45::i;:::-;49277:40;49295:5;;49277:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49302:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49302:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49277:17:27::1;::::0;-1:-1:-1;49277:40:27:i:1;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;-1:-1:-1;;;;48827:497:27:o;51228:97::-;51284:34;51297:3;51302:10;51314:3;51284:12;:34::i;49444:162::-;49530:22;49575:24;:22;:24::i;:::-;49568:31;;49444:162;:::o;24638:340::-;-1:-1:-1;;;;;24739:19:27;;24731:68;;;;-1:-1:-1;;;24731:68:27;;17174:2:29;24731:68:27;;;17156:21:29;17213:2;17193:18;;;17186:30;17252:34;17232:18;;;17225:62;-1:-1:-1;;;17303:18:29;;;17296:34;17347:19;;24731:68:27;16972:400:29;24731:68:27;-1:-1:-1;;;;;24817:21:27;;24809:68;;;;-1:-1:-1;;;24809:68:27;;17579:2:29;24809:68:27;;;17561:21:29;17618:2;17598:18;;;17591:30;17657:34;17637:18;;;17630:62;-1:-1:-1;;;17708:18:29;;;17701:32;17750:19;;24809:68:27;17377:398:29;24809:68:27;-1:-1:-1;;;;;24888:18:27;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24939:32;;3269:25:29;;;24939:32:27;;3242:18:29;24939:32:27;;;;;;;;24638:340;;;:::o;46741:470::-;46913:4;-1:-1:-1;;;;;46937:20:27;;46929:70;;;;-1:-1:-1;;;46929:70:27;;17982:2:29;46929:70:27;;;17964:21:29;18021:2;18001:18;;;17994:30;18060:34;18040:18;;;18033:62;-1:-1:-1;;;18111:18:29;;;18104:35;18156:19;;46929:70:27;17780:401:29;46929:70:27;47050:154;47077:47;47096:27;47116:6;47096:19;:27::i;:::-;47077:18;:47::i;:::-;47050:154;;;;;;;;;;;;14279:25:29;;;;14352:4;14340:17;;14320:18;;;14313:45;14374:18;;;14367:34;;;14417:18;;;14410:34;;;14251:19;;47050:154:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47028:176:27;:6;-1:-1:-1;;;;;47028:176:27;;47009:195;;46741:470;;;;;;;:::o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;18518:2:29;4705:46:27;;;18500:21:29;18557:2;18537:18;;;18530:30;18596:29;18576:18;;;18569:57;18643:18;;4705:46:27;18316:351:29;22314:530:27;-1:-1:-1;;;;;22419:20:27;;22411:70;;;;-1:-1:-1;;;22411:70:27;;18874:2:29;22411:70:27;;;18856:21:29;18913:2;18893:18;;;18886:30;18952:34;18932:18;;;18925:62;-1:-1:-1;;;19003:18:29;;;18996:35;19048:19;;22411:70:27;18672:401:29;22411:70:27;-1:-1:-1;;;;;22499:23:27;;22491:71;;;;-1:-1:-1;;;22491:71:27;;19280:2:29;22491:71:27;;;19262:21:29;19319:2;19299:18;;;19292:30;19358:34;19338:18;;;19331:62;-1:-1:-1;;;19409:18:29;;;19402:33;19452:19;;22491:71:27;19078:399:29;22491:71:27;22651;22673:6;22651:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22651:17:27;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22631:17:27;;;:9;:17;;;;;;;;;;;:91;;;;22755:20;;;;;;;:32;;22780:6;22755:24;:32::i;:::-;-1:-1:-1;;;;;22732:20:27;;;:9;:20;;;;;;;;;;;;:55;;;;22802:35;3269:25:29;;;22732:20:27;;22802:35;;;;;;3242:18:29;22802:35:27;3123:177:29;5473:187:27;5559:7;5594:12;5586:6;;;;5578:29;;;;-1:-1:-1;;;5578:29:27;;;;;;;;:::i;:::-;-1:-1:-1;5617:9:27;5629:5;5633:1;5629;:5;:::i;:::-;5617:17;5473:187;-1:-1:-1;;;;;5473:187:27:o;23803:410::-;-1:-1:-1;;;;;23886:21:27;;23878:67;;;;-1:-1:-1;;;23878:67:27;;19817:2:29;23878:67:27;;;19799:21:29;19856:2;19836:18;;;19829:30;19895:34;19875:18;;;19868:62;-1:-1:-1;;;19946:18:29;;;19939:31;19987:19;;23878:67:27;19615:397:29;23878:67:27;24037:68;24060:6;24037:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24037:18:27;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;24016:18:27;;:9;:18;;;;;;;;;;:89;24130:12;;:24;;24147:6;24130:16;:24::i;:::-;24115:12;:39;24169:37;;3269:25:29;;;24195:1:27;;-1:-1:-1;;;;;24169:37:27;;;;;3257:2:29;3242:18;24169:37:27;3123:177:29;40861:184:27;40934:12;;;;:6;:12;;;;;:33;;40959:7;40934:24;:33::i;:::-;40930:109;;;41015:12;:10;:12::i;:::-;-1:-1:-1;;;;;40988:40:27;41006:7;-1:-1:-1;;;;;40988:40:27;41000:4;40988:40;;;;;;;;;;40861:184;;:::o;41051:188::-;41125:12;;;;:6;:12;;;;;:36;;41153:7;41125:27;:36::i;:::-;41121:112;;;41209:12;:10;:12::i;:::-;-1:-1:-1;;;;;41182:40:27;41200:7;-1:-1:-1;;;;;41182:40:27;41194:4;41182:40;;;;;;;;;;41051:188;;:::o;17288:79::-;17345:5;:15;17353:7;17345:5;:15;:::i;42982:366::-;42441:110;;;;;;;;;;;;;;;;;42422:135;;;;;;43198:4;43182:22;;;;;;43238:7;43222:25;;;;;;43273:4;43304:12;43570:9;;43459:155;43304:12;43114:217;;;;;;22354:25:29;;;;22395:18;;22388:34;;;;22438:18;;;22431:34;;;;-1:-1:-1;;;;;22501:32:29;22481:18;;;22474:60;22550:19;;;22543:35;22326:19;;43114:217:27;;;-1:-1:-1;;43114:217:27;;;;;;;;;43091:250;;43114:217;43091:250;;;;43073:15;:268;-1:-1:-1;;42982:366:27:o;32212:156::-;32286:7;32336:22;32340:3;32352:5;32336:3;:22::i;31519:165::-;-1:-1:-1;;;;;31652:23:27;;31599:4;29972:19;;;:12;;;:19;;;;;;:24;;31622:55;29876:127;31765:115;31828:7;31854:19;31862:3;30166:18;;30084:107;17571:87;17632:7;:19;17642:9;17632:7;:19;:::i;41402:157::-;41510:10;41493:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;41473:10;:79;;;;;;:::i;42792:184::-;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;16407:2:29;42045:34:27;;;16389:21:29;16446:2;16426:18;;;16419:30;-1:-1:-1;;;16465:18:29;;;16458:44;16519:18;;42045:34:27;16205:338:29;42045:34:27;42935::::1;42955:4;42961:7;42935:19;:34::i;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;42792:184::o;47679:631::-;47747:22;47811:4;47789:10;:27;47785:496;;47832:18;47853:8;;47832:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;47891:8:27;48098:17;48092:24;-1:-1:-1;;;;;48067:131:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;48259:10:27;47785:496;47679:631;:::o;46228:396::-;46335:7;44463:98;;;;;;;;;;;;;;;;;44444:123;;;;;;;46483:12;;46517:11;;;;46560:24;;;;;46550:35;;;;;;46404:199;;;;;23303:25:29;;;23359:2;23344:18;;23337:34;;;;-1:-1:-1;;;;;23407:32:29;23402:2;23387:18;;23380:60;23471:2;23456:18;;23449:34;23290:3;23275:19;;23072:417;46404:199:27;;;;;;;;;;;;;46377:240;;;;;;46358:259;;46228:396;;;:::o;43974:249::-;44070:7;44168:20;43431:15;;;43354:99;44168:20;44139:63;;-1:-1:-1;;;44139:63:27;;;13913:27:29;13956:11;;;13949:27;;;;13992:12;;;13985:28;;;14029:12;;44139:63:27;13655:392:29;5048:134:27;5106:7;5132:43;5136:1;5139;5132:43;;;;;;;;;;;;;;;;;:3;:43::i;30964:150::-;31034:4;31057:50;31062:3;-1:-1:-1;;;;;31082:23:27;;31057:4;:50::i;31282:156::-;31355:4;31378:53;31386:3;-1:-1:-1;;;;;31406:23:27;;31378:7;:53::i;30523:201::-;30617:18;;30590:7;;30617:26;-1:-1:-1;30609:73:27;;;;-1:-1:-1;;;30609:73:27;;23696:2:29;30609:73:27;;;23678:21:29;23735:2;23715:18;;;23708:30;23774:34;23754:18;;;23747:62;-1:-1:-1;;;23825:18:29;;;23818:32;23867:19;;30609:73:27;23494:398:29;30609:73:27;30699:3;:11;;30711:5;30699:18;;;;;;;;:::i;:::-;;;;;;;;;30692:25;;30523:201;;;;:::o;27711:404::-;27774:4;29972:19;;;:12;;;:19;;;;;;27790:319;;-1:-1:-1;27832:23:27;;;;;;;;:11;:23;;;;;;;;;;;;;28012:18;;27990:19;;;:12;;;:19;;;;;;:40;;;;28044:11;;27790:319;-1:-1:-1;28093:5:27;28086:12;;28283:1512;28349:4;28486:19;;;:12;;;:19;;;;;;28520:15;;28516:1273;;28877:21;28901:14;28914:1;28901:10;:14;:::i;:::-;28949:18;;28877:38;;-1:-1:-1;28929:17:27;;28949:22;;28970:1;;28949:22;:::i;:::-;28929:42;;29211:17;29231:3;:11;;29243:9;29231:22;;;;;;;;:::i;:::-;;;;;;;;;29211:42;;29374:9;29345:3;:11;;29357:13;29345:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;29475:17;:13;29491:1;29475:17;:::i;:::-;29449:23;;;;:12;;;:23;;;;;:43;29598:17;;29449:3;;29598:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29690:3;:12;;:19;29703:5;29690:19;;;;;;;;;;;29683:26;;;29731:4;29724:11;;;;;;;;28516:1273;29773:5;29766:12;;;;;14:250:29;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:29;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:29;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:29:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:173::-;838:20;;-1:-1:-1;;;;;887:31:29;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:29:o;1622:127::-;1683:10;1678:3;1674:20;1671:1;1664:31;1714:4;1711:1;1704:15;1738:4;1735:1;1728:15;1754:156;1820:20;;1880:4;1869:16;;1859:27;;1849:55;;1900:1;1897;1890:12;1915:1203;2017:6;2025;2033;2041;2049;2102:3;2090:9;2081:7;2077:23;2073:33;2070:53;;;2119:1;2116;2109:12;2070:53;2142:29;2161:9;2142:29;:::i;:::-;2132:39;;2222:2;2211:9;2207:18;2194:32;2245:18;2286:2;2278:6;2275:14;2272:34;;;2302:1;2299;2292:12;2272:34;2340:6;2329:9;2325:22;2315:32;;2385:7;2378:4;2374:2;2370:13;2366:27;2356:55;;2407:1;2404;2397:12;2356:55;2443:2;2430:16;2465:2;2461;2458:10;2455:36;;;2471:18;;:::i;:::-;2546:2;2540:9;2514:2;2600:13;;-1:-1:-1;;2596:22:29;;;2620:2;2592:31;2588:40;2576:53;;;2644:18;;;2664:22;;;2641:46;2638:72;;;2690:18;;:::i;:::-;2730:10;2726:2;2719:22;2765:2;2757:6;2750:18;2805:7;2800:2;2795;2791;2787:11;2783:20;2780:33;2777:53;;;2826:1;2823;2816:12;2777:53;2882:2;2877;2873;2869:11;2864:2;2856:6;2852:15;2839:46;2927:1;2922:2;2917;2909:6;2905:15;2901:24;2894:35;2948:6;2938:16;;;;;;;3001:2;2990:9;2986:18;2973:32;2963:42;;3052:2;3041:9;3037:18;3024:32;3014:42;;3075:37;3107:3;3096:9;3092:19;3075:37;:::i;:::-;3065:47;;1915:1203;;;;;;;;:::o;3487:328::-;3564:6;3572;3580;3633:2;3621:9;3612:7;3608:23;3604:32;3601:52;;;3649:1;3646;3639:12;3601:52;3672:29;3691:9;3672:29;:::i;:::-;3662:39;;3720:38;3754:2;3743:9;3739:18;3720:38;:::i;:::-;3710:48;;3805:2;3794:9;3790:18;3777:32;3767:42;;3487:328;;;;;:::o;3820:180::-;3879:6;3932:2;3920:9;3911:7;3907:23;3903:32;3900:52;;;3948:1;3945;3938:12;3900:52;-1:-1:-1;3971:23:29;;3820:180;-1:-1:-1;3820:180:29:o;4005:186::-;4064:6;4117:2;4105:9;4096:7;4092:23;4088:32;4085:52;;;4133:1;4130;4123:12;4085:52;4156:29;4175:9;4156:29;:::i;4381:254::-;4449:6;4457;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;4562:9;4549:23;4539:33;;4591:38;4625:2;4614:9;4610:18;4591:38;:::i;:::-;4581:48;;4381:254;;;;;:::o;4829:348::-;4881:8;4891:6;4945:3;4938:4;4930:6;4926:17;4922:27;4912:55;;4963:1;4960;4953:12;4912:55;-1:-1:-1;4986:20:29;;5029:18;5018:30;;5015:50;;;5061:1;5058;5051:12;5015:50;5098:4;5090:6;5086:17;5074:29;;5150:3;5143:4;5134:6;5126;5122:19;5118:30;5115:39;5112:59;;;5167:1;5164;5157:12;5112:59;4829:348;;;;;:::o;5182:411::-;5253:6;5261;5314:2;5302:9;5293:7;5289:23;5285:32;5282:52;;;5330:1;5327;5320:12;5282:52;5370:9;5357:23;5403:18;5395:6;5392:30;5389:50;;;5435:1;5432;5425:12;5389:50;5474:59;5525:7;5516:6;5505:9;5501:22;5474:59;:::i;:::-;5552:8;;5448:85;;-1:-1:-1;5182:411:29;-1:-1:-1;;;;5182:411:29:o;5598:768::-;5715:6;5723;5731;5739;5747;5755;5763;5771;5824:3;5812:9;5803:7;5799:23;5795:33;5792:53;;;5841:1;5838;5831:12;5792:53;5864:29;5883:9;5864:29;:::i;:::-;5854:39;;5912:38;5946:2;5935:9;5931:18;5912:38;:::i;:::-;5902:48;;5997:2;5986:9;5982:18;5969:32;5959:42;;6048:2;6037:9;6033:18;6020:32;6010:42;;6102:3;6091:9;6087:19;6074:33;6150:5;6143:13;6136:21;6129:5;6126:32;6116:60;;6172:1;6169;6162:12;6116:60;6195:5;-1:-1:-1;6219:37:29;6251:3;6236:19;;6219:37;:::i;:::-;6209:47;;6303:3;6292:9;6288:19;6275:33;6265:43;;6355:3;6344:9;6340:19;6327:33;6317:43;;5598:768;;;;;;;;;;;:::o;6371:248::-;6439:6;6447;6500:2;6488:9;6479:7;6475:23;6471:32;6468:52;;;6516:1;6513;6506:12;6468:52;-1:-1:-1;;6539:23:29;;;6609:2;6594:18;;;6581:32;;-1:-1:-1;6371:248:29:o;6832:484::-;6911:6;6919;6927;6980:2;6968:9;6959:7;6955:23;6951:32;6948:52;;;6996:1;6993;6986:12;6948:52;7019:29;7038:9;7019:29;:::i;:::-;7009:39;;7099:2;7088:9;7084:18;7071:32;7126:18;7118:6;7115:30;7112:50;;;7158:1;7155;7148:12;7112:50;7197:59;7248:7;7239:6;7228:9;7224:22;7197:59;:::i;:::-;6832:484;;7275:8;;-1:-1:-1;7171:85:29;;-1:-1:-1;;;;6832:484:29:o;7321:260::-;7389:6;7397;7450:2;7438:9;7429:7;7425:23;7421:32;7418:52;;;7466:1;7463;7456:12;7418:52;7489:29;7508:9;7489:29;:::i;:::-;7479:39;;7537:38;7571:2;7560:9;7556:18;7537:38;:::i;7586:866::-;7694:6;7702;7710;7718;7726;7734;7787:3;7775:9;7766:7;7762:23;7758:33;7755:53;;;7804:1;7801;7794:12;7755:53;7844:9;7831:23;7873:18;7914:2;7906:6;7903:14;7900:34;;;7930:1;7927;7920:12;7900:34;7969:59;8020:7;8011:6;8000:9;7996:22;7969:59;:::i;:::-;8047:8;;-1:-1:-1;7943:85:29;-1:-1:-1;8135:2:29;8120:18;;8107:32;;-1:-1:-1;8151:16:29;;;8148:36;;;8180:1;8177;8170:12;8148:36;;8219:61;8272:7;8261:8;8250:9;8246:24;8219:61;:::i;:::-;8299:8;;-1:-1:-1;8193:87:29;-1:-1:-1;8353:36:29;;-1:-1:-1;8385:2:29;8370:18;;8353:36;:::i;:::-;8343:46;;8408:38;8442:2;8431:9;8427:18;8408:38;:::i;:::-;8398:48;;7586:866;;;;;;;;:::o;8457:380::-;8536:1;8532:12;;;;8579;;;8600:61;;8654:4;8646:6;8642:17;8632:27;;8600:61;8707:2;8699:6;8696:14;8676:18;8673:38;8670:161;;8753:10;8748:3;8744:20;8741:1;8734:31;8788:4;8785:1;8778:15;8816:4;8813:1;8806:15;8670:161;;8457:380;;;:::o;9244:432::-;-1:-1:-1;;;;;9501:15:29;;;9483:34;;9553:15;;9548:2;9533:18;;9526:43;9605:2;9600;9585:18;;9578:30;;;9426:4;;9625:45;;9651:18;;9643:6;9625:45;:::i;9681:428::-;9838:3;9876:6;9870:13;9892:66;9951:6;9946:3;9939:4;9931:6;9927:17;9892:66;:::i;:::-;10027:2;10023:15;;;;-1:-1:-1;;10019:53:29;9980:16;;;;10005:68;;;10100:2;10089:14;;9681:428;-1:-1:-1;;9681:428:29:o;10114:287::-;10243:3;10281:6;10275:13;10297:66;10356:6;10351:3;10344:4;10336:6;10332:17;10297:66;:::i;:::-;10379:16;;;;;10114:287;-1:-1:-1;;10114:287:29:o;12081:963::-;12190:4;12219:2;12248;12237:9;12230:21;12271:1;12304:6;12298:13;12334:36;12360:9;12334:36;:::i;:::-;12406:6;12401:2;12390:9;12386:18;12379:34;12432:2;12453:1;12485:2;12474:9;12470:18;12502:1;12497:158;;;;12669:1;12664:354;;;;12463:555;;12497:158;-1:-1:-1;;12545:24:29;;12525:18;;;12518:52;12623:14;;12616:22;12613:1;12609:30;12594:46;;12590:55;;;-1:-1:-1;12497:158:29;;12664:354;12695:6;12692:1;12685:17;12743:2;12740:1;12730:16;12768:1;12782:180;12796:6;12793:1;12790:13;12782:180;;;12889:14;;12865:17;;;12861:26;;12854:50;12932:16;;;;12811:10;;12782:180;;;12986:17;;12982:26;;;-1:-1:-1;;12463:555:29;-1:-1:-1;13035:3:29;;12081:963;-1:-1:-1;;;;;;;;12081:963:29:o;15163:127::-;15224:10;15219:3;15215:20;15212:1;15205:31;15255:4;15252:1;15245:15;15279:4;15276:1;15269:15;15295:135;15334:3;15355:17;;;15352:43;;15375:18;;:::i;:::-;-1:-1:-1;15422:1:29;15411:13;;15295:135::o;16548:419::-;-1:-1:-1;;;16815:3:29;16808:20;16871:6;16863;16859:1;16854:3;16850:11;16837:41;16790:3;16901:16;;16919:1;16897:24;16930:13;;;16897:24;16548:419;-1:-1:-1;16548:419:29:o;18186:125::-;18251:9;;;18272:10;;;18269:36;;;18285:18;;:::i;19482:128::-;19549:9;;;19570:11;;;19567:37;;;19584:18;;:::i;20017:545::-;20119:2;20114:3;20111:11;20108:448;;;20155:1;20180:5;20176:2;20169:17;20225:4;20221:2;20211:19;20295:2;20283:10;20279:19;20276:1;20272:27;20266:4;20262:38;20331:4;20319:10;20316:20;20313:47;;;-1:-1:-1;20354:4:29;20313:47;20409:2;20404:3;20400:12;20397:1;20393:20;20387:4;20383:31;20373:41;;20464:82;20482:2;20475:5;20472:13;20464:82;;;20527:17;;;20508:1;20497:13;20464:82;;;20468:3;;;20017:545;;;:::o;20738:1352::-;20864:3;20858:10;20891:18;20883:6;20880:30;20877:56;;;20913:18;;:::i;:::-;20942:97;21032:6;20992:38;21024:4;21018:11;20992:38;:::i;:::-;20986:4;20942:97;:::i;:::-;21094:4;;21158:2;21147:14;;21175:1;21170:663;;;;21877:1;21894:6;21891:89;;;-1:-1:-1;21946:19:29;;;21940:26;21891:89;-1:-1:-1;;20695:1:29;20691:11;;;20687:24;20683:29;20673:40;20719:1;20715:11;;;20670:57;21993:81;;21140:944;;21170:663;12028:1;12021:14;;;12065:4;12052:18;;-1:-1:-1;;21206:20:29;;;21324:236;21338:7;21335:1;21332:14;21324:236;;;21427:19;;;21421:26;21406:42;;21519:27;;;;21487:1;21475:14;;;;21354:19;;21324:236;;;21328:3;21588:6;21579:7;21576:19;21573:201;;;21649:19;;;21643:26;-1:-1:-1;;21732:1:29;21728:14;;;21744:3;21724:24;21720:37;21716:42;21701:58;21686:74;;21573:201;-1:-1:-1;;;;;21820:1:29;21804:14;;;21800:22;21787:36;;-1:-1:-1;20738:1352:29:o;22589:478::-;22821:3;22859:6;22853:13;22875:66;22934:6;22929:3;22922:4;22914:6;22910:17;22875:66;:::i;:::-;23002:28;22963:16;;22988:43;;;-1:-1:-1;23058:2:29;23047:14;;22589:478;-1:-1:-1;22589:478:29:o;23897:127::-;23958:10;23953:3;23949:20;23946:1;23939:31;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24029:127;24090:10;24085:3;24081:20;24078:1;24071:31;24121:4;24118:1;24111:15;24145:4;24142:1;24135:15"},"methodIdentifiers":{"CHILD_CHAIN_ID()":"626381a0","CHILD_CHAIN_ID_BYTES()":"0b54817c","DEFAULT_ADMIN_ROLE()":"a217fddf","DEPOSITOR_ROLE()":"a3b0b5a3","ERC712_VERSION()":"0f7e5970","PERMIT_TYPEHASH()":"30adf81f","ROOT_CHAIN_ID()":"8acfcaf7","ROOT_CHAIN_ID_BYTES()":"0dd7531a","_mint(address,uint256)":"4e6ec247","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","changeName(string)":"5353a2d8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(address,bytes)":"cf2c52cb","executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)":"0c53c51c","getChainId()":"3408e470","getDomainSeperator()":"20379ee5","getNonce(address)":"2d0335ab","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increaseAllowance(address,uint256)":"39509351","initialize(string,string,uint8,address)":"de7ea79d","move(address,address,uint256)":"bb35783b","name()":"06fdde03","permit(address,address,uint256,uint256,bool,uint8,bytes32,bytes32)":"8fcbaf0c","pull(address,uint256)":"f2d5d56b","push(address,uint256)":"b753a98c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"relayerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"}],\"name\":\"MetaTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC712_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"changeName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"depositData\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"}],\"name\":\"executeMetaTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"childChainManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"pull\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"push\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"_mint(address,uint256)\":{\"details\":\"Creates `amount` tokens and assigns them to `account`, increasing the total supply. Emits a {Transfer} event with `from` set to the zero address. Requirements - `to` cannot be the zero address. \"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(address,bytes)\":{\"details\":\"Should be callable only by ChildChainManager Should handle deposit by minting the required amount for user Make sure minting is done only by this function\",\"params\":{\"depositData\":\"abi encoded amount\",\"user\":\"user address for whom deposit is being done\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"initialize(string,string,uint8,address)\":{\"details\":\"meant to be called once immediately after deployment\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"withdraw(uint256)\":{\"details\":\"Should burn user's tokens. This transaction will be verified when exiting on root chain\",\"params\":{\"amount\":\"amount of tokens to withdraw\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit(address,bytes)\":{\"notice\":\"called when token is deposited on root chain\"},\"initialize(string,string,uint8,address)\":{\"notice\":\"Initialize the contract after it has been proxified\"},\"withdraw(uint256)\":{\"notice\":\"called when user wants to withdraw tokens back to root chain\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"NofTestDAIV3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"SafeMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GT PUSH27 0x27774884C878DAE9AF47B8DFA8B593B9A0A7334EF6F519438B71BC 0xAB PUSH26 0xE164736F6C634300081400330000000000000000000000000000 ","sourceMap":"4349:4578:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;4349:4578:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GT PUSH27 0x27774884C878DAE9AF47B8DFA8B593B9A0A7334EF6F519438B71BC 0xAB PUSH26 0xE164736F6C634300081400330000000000000000000000000000 ","sourceMap":"4349:4578:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when 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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"SafeMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"},"UChildERC20":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CHILD_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHILD_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSITOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC712_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROOT_CHAIN_ID_BYTES","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"childChainManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11161":{"entryPoint":null,"id":11161,"parameterSlots":0,"returnSlots":0},"@_9517":{"entryPoint":null,"id":9517,"parameterSlots":2,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":205,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":288,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":145,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":123,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:29"},"nodeType":"YulFunctionCall","src":"66:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:29"},"nodeType":"YulFunctionCall","src":"56:31:29"},"nodeType":"YulExpressionStatement","src":"56:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:29"},"nodeType":"YulFunctionCall","src":"96:15:29"},"nodeType":"YulExpressionStatement","src":"96:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:29"},"nodeType":"YulFunctionCall","src":"120:15:29"},"nodeType":"YulExpressionStatement","src":"120:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:29"},{"body":{"nodeType":"YulBlock","src":"201:325:29","statements":[{"nodeType":"YulAssignment","src":"211:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:29"},"nodeType":"YulFunctionCall","src":"221:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:29"},"nodeType":"YulFunctionCall","src":"268:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:29","statements":[{"nodeType":"YulAssignment","src":"321:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:29"},"nodeType":"YulFunctionCall","src":"331:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:29"},"nodeType":"YulFunctionCall","src":"292:26:29"},"nodeType":"YulIf","src":"289:61:29"},{"body":{"nodeType":"YulBlock","src":"409:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:29"},"nodeType":"YulFunctionCall","src":"433:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:29"},"nodeType":"YulFunctionCall","src":"423:31:29"},"nodeType":"YulExpressionStatement","src":"423:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:29"},"nodeType":"YulFunctionCall","src":"467:15:29"},"nodeType":"YulExpressionStatement","src":"467:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:29"},"nodeType":"YulFunctionCall","src":"495:15:29"},"nodeType":"YulExpressionStatement","src":"495:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:29"},"nodeType":"YulFunctionCall","src":"385:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:29"},"nodeType":"YulFunctionCall","src":"362:38:29"},"nodeType":"YulIf","src":"359:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:29","type":""}],"src":"146:380:29"},{"body":{"nodeType":"YulBlock","src":"587:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:29"},"nodeType":"YulFunctionCall","src":"597:14:29"},"nodeType":"YulExpressionStatement","src":"597:14:29"},{"nodeType":"YulAssignment","src":"620:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:29"},"nodeType":"YulFunctionCall","src":"628:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:29","type":""}],"src":"531:121:29"},{"body":{"nodeType":"YulBlock","src":"738:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:29"},"nodeType":"YulFunctionCall","src":"809:17:29"},"nodeType":"YulExpressionStatement","src":"809:17:29"},{"nodeType":"YulVariableDeclaration","src":"839:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:29"},"nodeType":"YulFunctionCall","src":"851:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:29"},"nodeType":"YulFunctionCall","src":"919:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:29"},"nodeType":"YulFunctionCall","src":"912:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:29","statements":[{"nodeType":"YulAssignment","src":"979:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:29"},"nodeType":"YulFunctionCall","src":"956:20:29"},"nodeType":"YulIf","src":"953:47:29"},{"nodeType":"YulVariableDeclaration","src":"1013:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:29"},"nodeType":"YulFunctionCall","src":"1040:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:29"},"nodeType":"YulFunctionCall","src":"1033:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:29"},"nodeType":"YulFunctionCall","src":"1023:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:29"},"nodeType":"YulFunctionCall","src":"1167:17:29"},"nodeType":"YulExpressionStatement","src":"1167:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:29"},"nodeType":"YulFunctionCall","src":"1112:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:29","statements":[{"nodeType":"YulAssignment","src":"1128:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:29"},"nodeType":"YulFunctionCall","src":"1137:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:29","statements":[]},"src":"1104:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:29"},"nodeType":"YulFunctionCall","src":"751:11:29"},"nodeType":"YulIf","src":"748:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:29","type":""}],"src":"657:545:29"},{"body":{"nodeType":"YulBlock","src":"1292:81:29","statements":[{"nodeType":"YulAssignment","src":"1302:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:29"},"nodeType":"YulFunctionCall","src":"1331:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:29"},"nodeType":"YulFunctionCall","src":"1344:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:29"},"nodeType":"YulFunctionCall","src":"1327:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:29"},"nodeType":"YulFunctionCall","src":"1323:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:29"},"nodeType":"YulFunctionCall","src":"1313:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:29"},"nodeType":"YulFunctionCall","src":"1355:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:29"},"nodeType":"YulFunctionCall","src":"1310:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:29","type":""}],"src":"1207:166:29"},{"body":{"nodeType":"YulBlock","src":"1474:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:29"},"nodeType":"YulFunctionCall","src":"1498:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:29"},"nodeType":"YulFunctionCall","src":"1553:18:29"},"nodeType":"YulExpressionStatement","src":"1553:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:29","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:29"},"nodeType":"YulFunctionCall","src":"1535:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:29"},"nodeType":"YulFunctionCall","src":"1531:18:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:29"},"nodeType":"YulFunctionCall","src":"1520:30:29"},"nodeType":"YulIf","src":"1517:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:29"},"nodeType":"YulFunctionCall","src":"1658:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:29"},"nodeType":"YulFunctionCall","src":"1632:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:29"},"nodeType":"YulFunctionCall","src":"1582:97:29"},"nodeType":"YulExpressionStatement","src":"1582:97:29"},{"nodeType":"YulVariableDeclaration","src":"1688:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:29","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:29"},"nodeType":"YulFunctionCall","src":"1858:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:29"},"nodeType":"YulFunctionCall","src":"1846:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:29"},"nodeType":"YulFunctionCall","src":"1893:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:29"},"nodeType":"YulFunctionCall","src":"2067:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:29"},"nodeType":"YulFunctionCall","src":"2061:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:29"},"nodeType":"YulFunctionCall","src":"2046:42:29"},"nodeType":"YulExpressionStatement","src":"2046:42:29"},{"nodeType":"YulAssignment","src":"2105:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:29"},"nodeType":"YulFunctionCall","src":"2115:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:29"}]},{"nodeType":"YulAssignment","src":"2146:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:29"},"nodeType":"YulFunctionCall","src":"2159:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:29"},"nodeType":"YulFunctionCall","src":"1972:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:29","statements":[{"nodeType":"YulAssignment","src":"1989:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:29"},"nodeType":"YulFunctionCall","src":"1994:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:29","statements":[]},"src":"1964:236:29"},{"body":{"nodeType":"YulBlock","src":"2248:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:29"},"nodeType":"YulFunctionCall","src":"2289:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:29"},"nodeType":"YulFunctionCall","src":"2283:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:29"},"nodeType":"YulFunctionCall","src":"2368:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:29"},"nodeType":"YulFunctionCall","src":"2364:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:29"},"nodeType":"YulFunctionCall","src":"2390:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:29"},"nodeType":"YulFunctionCall","src":"2360:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:29"},"nodeType":"YulFunctionCall","src":"2356:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:29"},"nodeType":"YulFunctionCall","src":"2341:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:29"},"nodeType":"YulFunctionCall","src":"2326:74:29"},"nodeType":"YulExpressionStatement","src":"2326:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:29"},"nodeType":"YulFunctionCall","src":"2216:19:29"},"nodeType":"YulIf","src":"2213:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:29"},"nodeType":"YulFunctionCall","src":"2444:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:29"},"nodeType":"YulFunctionCall","src":"2440:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:29"},"nodeType":"YulFunctionCall","src":"2427:36:29"},"nodeType":"YulExpressionStatement","src":"2427:36:29"}]},"nodeType":"YulCase","src":"1810:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:29","statements":[{"nodeType":"YulAssignment","src":"2571:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:29"},"nodeType":"YulFunctionCall","src":"2586:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:29"},"nodeType":"YulFunctionCall","src":"2580:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:29"},"nodeType":"YulIf","src":"2531:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:29"},"nodeType":"YulFunctionCall","src":"2646:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:29"},"nodeType":"YulFunctionCall","src":"2633:81:29"},"nodeType":"YulExpressionStatement","src":"2633:81:29"}]},"nodeType":"YulCase","src":"2482:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:29"},"nodeType":"YulFunctionCall","src":"1787:14:29"},"nodeType":"YulSwitch","src":"1780:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:29","type":""}],"src":"1378:1352:29"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6123b780620001fc6000396000f3fe6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH3 0x444149 PUSH1 0xE8 SHL PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP3 DUP6 MSTORE DUP5 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH3 0x56 DUP4 DUP3 PUSH3 0x120 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x65 DUP3 DUP3 PUSH3 0x120 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x12 OR SWAP1 SSTORE POP PUSH3 0x1EC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0xA6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0xC7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x11B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xF6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x117 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x102 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x7B JUMP JUMPDEST PUSH3 0x154 DUP2 PUSH3 0x14D DUP5 SLOAD PUSH3 0x91 JUMP JUMPDEST DUP5 PUSH3 0xCD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x18C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x173 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x117 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x1BD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x19C JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x1DC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x23B7 DUP1 PUSH3 0x1FC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1F9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA15C873 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x571 JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x586 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8ACFCAF7 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x55C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x4A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x190 JUMPI DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x15F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x1CC JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2C6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x286 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x213 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C02 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE8 JUMP JUMPDEST PUSH2 0x95F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x362 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x9E6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0x9FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xA8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x49F CALLDATASIZE PUSH1 0x4 PUSH2 0x1DCD JUMP JUMPDEST PUSH2 0xC41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x524 PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0xD0C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0xD43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xD52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x635 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0xDE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x655 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xE54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x6BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1EAE JUMP JUMPDEST PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E 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 0x6FB SWAP1 PUSH2 0x1F3E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x748 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x71D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x748 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x72B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0x75F PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x7AE DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x82D SWAP1 PUSH1 0x1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x87D SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x1F78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A5 SWAP3 SWAP2 SWAP1 PUSH2 0x1FA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x8BF SWAP2 PUSH2 0x1FDB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8FC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x901 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x96C DUP5 DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH2 0x9DC DUP5 PUSH2 0x978 PUSH2 0x107B JUMP JUMPDEST PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2335 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x9B6 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9F7 PUSH2 0x9F1 PUSH2 0x107B JUMP JUMPDEST DUP3 PUSH2 0x14BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xA18 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x15BF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xA92 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x1628 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xB21 PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xB32 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xBB8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xBC5 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xBEB SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4F DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH2 0xCAF DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD07 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x169D SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1724 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xD5F PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x235D PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0xD89 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xDC7 PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76A SWAP1 PUSH2 0x1752 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0xE12 DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xE32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xE41 DUP4 DUP6 ADD DUP6 PUSH2 0x1D24 JUMP JUMPDEST SWAP1 POP PUSH2 0xE4D DUP6 DUP3 PUSH2 0xB62 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xE72 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xF5A 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF99 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x175C SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0xFD2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFBE SWAP3 SWAP2 SWAP1 PUSH2 0x2082 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1768 JUMP JUMPDEST PUSH2 0xFE4 PUSH1 0x0 PUSH2 0xFDF PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x100E PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x1066 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1796 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1085 PUSH2 0x17F5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x10EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x114D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1215 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1228 PUSH2 0x1223 DUP8 PUSH2 0x1851 JUMP JUMPDEST PUSH2 0x18CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1276 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12AC DUP4 DUP6 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xD24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x13C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1401 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x230F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x1430 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x11A2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x14A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x14B2 DUP5 DUP7 PUSH2 0x20CC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x151B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1558 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225B PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x157E SWAP1 DUP3 PUSH2 0x18FE JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x15D7 SWAP1 DUP3 PUSH2 0x1940 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x15E4 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1640 SWAP1 DUP3 PUSH2 0x1955 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x164D PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x22C0 PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x16D5 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH2 0x196A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76A DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1779 SWAP2 SWAP1 PUSH2 0x21ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x17DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x17E4 DUP3 DUP3 PUSH2 0x169D JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x184B JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x184E SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x227D PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x18B1 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D9 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x18B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x19F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1A3F JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x19C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x19DD JUMPI PUSH2 0x19DD PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1A37 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x76A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1B28 JUMPI PUSH1 0x0 PUSH2 0x1A63 PUSH1 0x1 DUP4 PUSH2 0x20CC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1A77 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x20CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1A90 JUMPI PUSH2 0x1A90 PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1AB3 JUMPI PUSH2 0x1AB3 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1ACA DUP4 PUSH1 0x1 PUSH2 0x20B9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1AEC JUMPI PUSH2 0x1AEC PUSH2 0x2244 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B4D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B35 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1B6E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BCD DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C23 DUP7 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1C40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1C66 JUMPI PUSH2 0x1C66 PUSH2 0x1BDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1C8E JUMPI PUSH2 0x1C8E PUSH2 0x1BDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1CDC PUSH1 0x80 DUP8 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH2 0x1D14 PUSH1 0x20 DUP6 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD24 DUP3 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1D96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1DC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E03 DUP6 DUP3 DUP7 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E4F DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E77 DUP7 DUP3 DUP8 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EA0 DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1EC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1EDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EEB DUP11 DUP4 DUP12 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F11 DUP10 DUP3 DUP11 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x1F24 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F32 PUSH1 0x60 DUP9 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1F52 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1F72 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x14B2 SWAP1 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1FB6 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1FED DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x200B DUP2 PUSH2 0x1F3E JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x202C JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2046 JUMPI PUSH2 0x2074 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2074 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x206C JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2051 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2106 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2125 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2112 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2147 JUMPI PUSH2 0x2147 PUSH2 0x1BDB JUMP JUMPDEST PUSH2 0x215B DUP2 PUSH2 0x2155 DUP5 SLOAD PUSH2 0x1F3E JUMP JUMPDEST DUP5 PUSH2 0x20DF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2190 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2178 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x21BF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x21A0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x21DD JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x21FF DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 0xD0 0xE4 PUSH21 0xE7C0E5222B46307228C2AC6D269F0BBEBDF353FD3F ADD CALLVALUE MUL STOP PUSH20 0xF9577F64736F6C63430008140033000000000000 ","sourceMap":"48416:2287:27:-:0;;;41986:19;;;-1:-1:-1;;41986:19:27;;;48637:36;;;;;;;;;-1:-1:-1;16994:142:27;;;;;;;;;;;;-1:-1:-1;;;16994:142:27;;;;;;;;;;;;;;;;;;;;;;;;17063:14;16994:142;;17063:14;:::i;:::-;-1:-1:-1;17087:7:27;:18;17097:8;17087:7;:18;:::i;:::-;-1:-1:-1;;17115:9:27;:14;;-1:-1:-1;;17115:14:27;17127:2;17115:14;;;-1:-1:-1;48416:2287:27;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:29;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:29;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:29;;;2580:26;2531:89;-1:-1:-1;;1335:1:29;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:29;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:29;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:29;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:29:o;:::-;48416:2287:27;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CHILD_CHAIN_ID_11091":{"entryPoint":null,"id":11091,"parameterSlots":0,"returnSlots":0},"@CHILD_CHAIN_ID_BYTES_11094":{"entryPoint":null,"id":11094,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_10446":{"entryPoint":null,"id":10446,"parameterSlots":0,"returnSlots":0},"@DEPOSITOR_ROLE_11153":{"entryPoint":null,"id":11153,"parameterSlots":0,"returnSlots":0},"@ERC712_VERSION_11082":{"entryPoint":null,"id":11082,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_11085":{"entryPoint":null,"id":11085,"parameterSlots":0,"returnSlots":0},"@ROOT_CHAIN_ID_BYTES_11088":{"entryPoint":null,"id":11088,"parameterSlots":0,"returnSlots":0},"@_add_10050":{"entryPoint":6640,"id":10050,"parameterSlots":2,"returnSlots":1},"@_approve_9975":{"entryPoint":4234,"id":9975,"parameterSlots":3,"returnSlots":0},"@_at_10190":{"entryPoint":6506,"id":10190,"parameterSlots":2,"returnSlots":1},"@_beforeTokenTransfer_9997":{"entryPoint":null,"id":9997,"parameterSlots":3,"returnSlots":0},"@_burn_9930":{"entryPoint":5307,"id":9930,"parameterSlots":2,"returnSlots":0},"@_contains_10150":{"entryPoint":null,"id":10150,"parameterSlots":2,"returnSlots":1},"@_grantRole_10678":{"entryPoint":5567,"id":10678,"parameterSlots":2,"returnSlots":0},"@_initializeEIP712_10806":{"entryPoint":6038,"id":10806,"parameterSlots":2,"returnSlots":0},"@_length_10164":{"entryPoint":null,"id":10164,"parameterSlots":1,"returnSlots":1},"@_mint_9874":{"entryPoint":2914,"id":9874,"parameterSlots":2,"returnSlots":0},"@_msgSender_11226":{"entryPoint":4219,"id":11226,"parameterSlots":0,"returnSlots":1},"@_remove_10131":{"entryPoint":6719,"id":10131,"parameterSlots":2,"returnSlots":1},"@_revokeRole_10702":{"entryPoint":5672,"id":10702,"parameterSlots":2,"returnSlots":0},"@_setDomainSeperator_10844":{"entryPoint":5789,"id":10844,"parameterSlots":2,"returnSlots":0},"@_setupContractId_10725":{"entryPoint":5992,"id":10725,"parameterSlots":1,"returnSlots":0},"@_setupRole_10629":{"entryPoint":null,"id":10629,"parameterSlots":2,"returnSlots":0},"@_transfer_9819":{"entryPoint":4862,"id":9819,"parameterSlots":3,"returnSlots":0},"@add_10221":{"entryPoint":6464,"id":10221,"parameterSlots":2,"returnSlots":1},"@add_9096":{"entryPoint":4767,"id":9096,"parameterSlots":2,"returnSlots":1},"@allowance_9637":{"entryPoint":null,"id":9637,"parameterSlots":2,"returnSlots":1},"@approve_9658":{"entryPoint":1874,"id":9658,"parameterSlots":2,"returnSlots":1},"@at_10317":{"entryPoint":5924,"id":10317,"parameterSlots":2,"returnSlots":1},"@balanceOf_9598":{"entryPoint":null,"id":9598,"parameterSlots":1,"returnSlots":1},"@changeName_11244":{"entryPoint":3137,"id":11244,"parameterSlots":2,"returnSlots":0},"@contains_10275":{"entryPoint":5936,"id":10275,"parameterSlots":2,"returnSlots":1},"@decimals_9564":{"entryPoint":null,"id":9564,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9753":{"entryPoint":3410,"id":9753,"parameterSlots":2,"returnSlots":1},"@deposit_11272":{"entryPoint":3557,"id":11272,"parameterSlots":3,"returnSlots":0},"@executeMetaTransaction_10999":{"entryPoint":1904,"id":10999,"parameterSlots":5,"returnSlots":1},"@getChainId_10864":{"entryPoint":null,"id":10864,"parameterSlots":0,"returnSlots":1},"@getDomainSeperator_10852":{"entryPoint":null,"id":10852,"parameterSlots":0,"returnSlots":1},"@getNonce_11037":{"entryPoint":null,"id":11037,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_10541":{"entryPoint":null,"id":10541,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_10508":{"entryPoint":3534,"id":10508,"parameterSlots":1,"returnSlots":1},"@getRoleMember_10527":{"entryPoint":3340,"id":10527,"parameterSlots":2,"returnSlots":1},"@grantRole_10567":{"entryPoint":2554,"id":10567,"parameterSlots":2,"returnSlots":0},"@hasRole_10492":{"entryPoint":3371,"id":10492,"parameterSlots":2,"returnSlots":1},"@hashMetaTransaction_11023":{"entryPoint":6225,"id":11023,"parameterSlots":1,"returnSlots":1},"@increaseAllowance_9724":{"entryPoint":2836,"id":9724,"parameterSlots":2,"returnSlots":1},"@initialize_11215":{"entryPoint":3799,"id":11215,"parameterSlots":6,"returnSlots":0},"@length_10290":{"entryPoint":5970,"id":10290,"parameterSlots":1,"returnSlots":1},"@msgSender_11134":{"entryPoint":6133,"id":11134,"parameterSlots":0,"returnSlots":1},"@name_9526":{"entryPoint":1728,"id":9526,"parameterSlots":0,"returnSlots":1},"@remove_10248":{"entryPoint":6485,"id":10248,"parameterSlots":2,"returnSlots":1},"@renounceRole_10615":{"entryPoint":2698,"id":10615,"parameterSlots":2,"returnSlots":0},"@revokeRole_10593":{"entryPoint":3668,"id":10593,"parameterSlots":2,"returnSlots":0},"@setDecimals_9574":{"entryPoint":null,"id":9574,"parameterSlots":1,"returnSlots":0},"@setName_9536":{"entryPoint":5777,"id":9536,"parameterSlots":1,"returnSlots":0},"@setSymbol_9555":{"entryPoint":5980,"id":9555,"parameterSlots":1,"returnSlots":0},"@sub_9113":{"entryPoint":6398,"id":9113,"parameterSlots":2,"returnSlots":1},"@sub_9141":{"entryPoint":5249,"id":9141,"parameterSlots":3,"returnSlots":1},"@symbol_9545":{"entryPoint":3395,"id":9545,"parameterSlots":0,"returnSlots":1},"@toTypedMessageHash_10883":{"entryPoint":6350,"id":10883,"parameterSlots":1,"returnSlots":1},"@totalSupply_9584":{"entryPoint":null,"id":9584,"parameterSlots":0,"returnSlots":1},"@transferFrom_9696":{"entryPoint":2399,"id":9696,"parameterSlots":3,"returnSlots":1},"@transfer_9619":{"entryPoint":3514,"id":9619,"parameterSlots":2,"returnSlots":1},"@verify_11077":{"entryPoint":4527,"id":11077,"parameterSlots":5,"returnSlots":1},"@withdraw_11285":{"entryPoint":2534,"id":11285,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":7061,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":7556,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":7485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":7812,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":7400,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":7729,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8":{"entryPoint":7170,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7089,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":7460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":7512,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":7695,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":7629,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address":{"entryPoint":7854,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":7153,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_string":{"entryPoint":6998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":8100,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8685,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8322,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8056,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7042,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8183,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8377,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8396,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":8415,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":8493,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6962,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":7998,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":8355,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":8772,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":8750,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7131,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:21578:29","statements":[{"nodeType":"YulBlock","src":"6:3:29","statements":[]},{"body":{"nodeType":"YulBlock","src":"80:184:29","statements":[{"nodeType":"YulVariableDeclaration","src":"90:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"99:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"94:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"159:63:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"184:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"189:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"180:3:29"},"nodeType":"YulFunctionCall","src":"180:11:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"203:3:29"},{"name":"i","nodeType":"YulIdentifier","src":"208:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"199:3:29"},"nodeType":"YulFunctionCall","src":"199:11:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"193:5:29"},"nodeType":"YulFunctionCall","src":"193:18:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"173:6:29"},"nodeType":"YulFunctionCall","src":"173:39:29"},"nodeType":"YulExpressionStatement","src":"173:39:29"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"120:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"123:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"117:2:29"},"nodeType":"YulFunctionCall","src":"117:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"131:19:29","statements":[{"nodeType":"YulAssignment","src":"133:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"142:1:29"},{"kind":"number","nodeType":"YulLiteral","src":"145:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"138:3:29"},"nodeType":"YulFunctionCall","src":"138:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"133:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"113:3:29","statements":[]},"src":"109:113:29"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"242:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"247:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"238:3:29"},"nodeType":"YulFunctionCall","src":"238:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"256:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"231:6:29"},"nodeType":"YulFunctionCall","src":"231:27:29"},"nodeType":"YulExpressionStatement","src":"231:27:29"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"58:3:29","type":""},{"name":"dst","nodeType":"YulTypedName","src":"63:3:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"68:6:29","type":""}],"src":"14:250:29"},{"body":{"nodeType":"YulBlock","src":"319:221:29","statements":[{"nodeType":"YulVariableDeclaration","src":"329:26:29","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"349:5:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"343:5:29"},"nodeType":"YulFunctionCall","src":"343:12:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"333:6:29","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"371:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"376:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"364:6:29"},"nodeType":"YulFunctionCall","src":"364:19:29"},"nodeType":"YulExpressionStatement","src":"364:19:29"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"431:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"438:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:29"},"nodeType":"YulFunctionCall","src":"427:16:29"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"449:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"454:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:29"},"nodeType":"YulFunctionCall","src":"445:14:29"},{"name":"length","nodeType":"YulIdentifier","src":"461:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"392:34:29"},"nodeType":"YulFunctionCall","src":"392:76:29"},"nodeType":"YulExpressionStatement","src":"392:76:29"},{"nodeType":"YulAssignment","src":"477:57:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"492:3:29"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"505:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"513:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:29"},"nodeType":"YulFunctionCall","src":"501:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"522:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"518:3:29"},"nodeType":"YulFunctionCall","src":"518:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"497:3:29"},"nodeType":"YulFunctionCall","src":"497:29:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:29"},"nodeType":"YulFunctionCall","src":"488:39:29"},{"kind":"number","nodeType":"YulLiteral","src":"529:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"484:3:29"},"nodeType":"YulFunctionCall","src":"484:50:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"477:3:29"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"296:5:29","type":""},{"name":"pos","nodeType":"YulTypedName","src":"303:3:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"311:3:29","type":""}],"src":"269:271:29"},{"body":{"nodeType":"YulBlock","src":"666:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"694:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"676:6:29"},"nodeType":"YulFunctionCall","src":"676:21:29"},"nodeType":"YulExpressionStatement","src":"676:21:29"},{"nodeType":"YulAssignment","src":"706:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"732:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"744:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"755:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"740:3:29"},"nodeType":"YulFunctionCall","src":"740:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"714:17:29"},"nodeType":"YulFunctionCall","src":"714:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"706:4:29"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"635:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"646:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"657:4:29","type":""}],"src":"545:220:29"},{"body":{"nodeType":"YulBlock","src":"819:124:29","statements":[{"nodeType":"YulAssignment","src":"829:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"851:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"838:12:29"},"nodeType":"YulFunctionCall","src":"838:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"829:5:29"}]},{"body":{"nodeType":"YulBlock","src":"921:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"930:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"933:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"923:6:29"},"nodeType":"YulFunctionCall","src":"923:12:29"},"nodeType":"YulExpressionStatement","src":"923:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"880:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"891:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"906:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"911:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"902:3:29"},"nodeType":"YulFunctionCall","src":"902:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"915:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"898:3:29"},"nodeType":"YulFunctionCall","src":"898:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"887:3:29"},"nodeType":"YulFunctionCall","src":"887:31:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"877:2:29"},"nodeType":"YulFunctionCall","src":"877:42:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"870:6:29"},"nodeType":"YulFunctionCall","src":"870:50:29"},"nodeType":"YulIf","src":"867:70:29"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"798:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"809:5:29","type":""}],"src":"770:173:29"},{"body":{"nodeType":"YulBlock","src":"1035:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"1081:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1090:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1093:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1083:6:29"},"nodeType":"YulFunctionCall","src":"1083:12:29"},"nodeType":"YulExpressionStatement","src":"1083:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1056:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1052:3:29"},"nodeType":"YulFunctionCall","src":"1052:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"1077:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1048:3:29"},"nodeType":"YulFunctionCall","src":"1048:32:29"},"nodeType":"YulIf","src":"1045:52:29"},{"nodeType":"YulAssignment","src":"1106:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1135:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1116:18:29"},"nodeType":"YulFunctionCall","src":"1116:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1106:6:29"}]},{"nodeType":"YulAssignment","src":"1154:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1192:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:29"},"nodeType":"YulFunctionCall","src":"1177:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1164:12:29"},"nodeType":"YulFunctionCall","src":"1164:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1154:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"993:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1004:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1016:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1024:6:29","type":""}],"src":"948:254:29"},{"body":{"nodeType":"YulBlock","src":"1302:92:29","statements":[{"nodeType":"YulAssignment","src":"1312:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1324:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1335:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1320:3:29"},"nodeType":"YulFunctionCall","src":"1320:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1312:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:29"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1379:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1372:6:29"},"nodeType":"YulFunctionCall","src":"1372:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1365:6:29"},"nodeType":"YulFunctionCall","src":"1365:22:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1347:6:29"},"nodeType":"YulFunctionCall","src":"1347:41:29"},"nodeType":"YulExpressionStatement","src":"1347:41:29"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1271:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1282:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1293:4:29","type":""}],"src":"1207:187:29"},{"body":{"nodeType":"YulBlock","src":"1518:99:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1535:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1546:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1528:6:29"},"nodeType":"YulFunctionCall","src":"1528:21:29"},"nodeType":"YulExpressionStatement","src":"1528:21:29"},{"nodeType":"YulAssignment","src":"1558:53:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1584:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1596:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:29"},"nodeType":"YulFunctionCall","src":"1592:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1566:17:29"},"nodeType":"YulFunctionCall","src":"1566:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1558:4:29"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1487:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1498:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1509:4:29","type":""}],"src":"1399:218:29"},{"body":{"nodeType":"YulBlock","src":"1654:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1671:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1678:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1683:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1674:3:29"},"nodeType":"YulFunctionCall","src":"1674:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1664:6:29"},"nodeType":"YulFunctionCall","src":"1664:31:29"},"nodeType":"YulExpressionStatement","src":"1664:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1711:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1714:4:29","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1704:6:29"},"nodeType":"YulFunctionCall","src":"1704:15:29"},"nodeType":"YulExpressionStatement","src":"1704:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1735:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1738:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1728:6:29"},"nodeType":"YulFunctionCall","src":"1728:15:29"},"nodeType":"YulExpressionStatement","src":"1728:15:29"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1622:127:29"},{"body":{"nodeType":"YulBlock","src":"1801:109:29","statements":[{"nodeType":"YulAssignment","src":"1811:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1833:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1820:12:29"},"nodeType":"YulFunctionCall","src":"1820:20:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1811:5:29"}]},{"body":{"nodeType":"YulBlock","src":"1888:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1897:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1900:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1890:6:29"},"nodeType":"YulFunctionCall","src":"1890:12:29"},"nodeType":"YulExpressionStatement","src":"1890:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1873:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"1880:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1869:3:29"},"nodeType":"YulFunctionCall","src":"1869:16:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1859:2:29"},"nodeType":"YulFunctionCall","src":"1859:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1852:6:29"},"nodeType":"YulFunctionCall","src":"1852:35:29"},"nodeType":"YulIf","src":"1849:55:29"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1780:6:29","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1791:5:29","type":""}],"src":"1754:156:29"},{"body":{"nodeType":"YulBlock","src":"2060:1058:29","statements":[{"body":{"nodeType":"YulBlock","src":"2107:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2116:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2119:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2109:6:29"},"nodeType":"YulFunctionCall","src":"2109:12:29"},"nodeType":"YulExpressionStatement","src":"2109:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2081:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"2090:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2077:3:29"},"nodeType":"YulFunctionCall","src":"2077:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"2102:3:29","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2073:3:29"},"nodeType":"YulFunctionCall","src":"2073:33:29"},"nodeType":"YulIf","src":"2070:53:29"},{"nodeType":"YulAssignment","src":"2132:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2161:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2142:18:29"},"nodeType":"YulFunctionCall","src":"2142:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2132:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"2180:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2211:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2222:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2207:3:29"},"nodeType":"YulFunctionCall","src":"2207:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2194:12:29"},"nodeType":"YulFunctionCall","src":"2194:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2184:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2235:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"2245:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2239:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2290:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2299:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2302:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2292:6:29"},"nodeType":"YulFunctionCall","src":"2292:12:29"},"nodeType":"YulExpressionStatement","src":"2292:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2278:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2286:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2275:2:29"},"nodeType":"YulFunctionCall","src":"2275:14:29"},"nodeType":"YulIf","src":"2272:34:29"},{"nodeType":"YulVariableDeclaration","src":"2315:32:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2329:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"2340:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2325:3:29"},"nodeType":"YulFunctionCall","src":"2325:22:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2319:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2395:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2404:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2407:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2397:6:29"},"nodeType":"YulFunctionCall","src":"2397:12:29"},"nodeType":"YulExpressionStatement","src":"2397:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2374:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2378:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2370:3:29"},"nodeType":"YulFunctionCall","src":"2370:13:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2385:7:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2366:3:29"},"nodeType":"YulFunctionCall","src":"2366:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2359:6:29"},"nodeType":"YulFunctionCall","src":"2359:35:29"},"nodeType":"YulIf","src":"2356:55:29"},{"nodeType":"YulVariableDeclaration","src":"2420:26:29","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2443:2:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2430:12:29"},"nodeType":"YulFunctionCall","src":"2430:16:29"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2424:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2469:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2471:16:29"},"nodeType":"YulFunctionCall","src":"2471:18:29"},"nodeType":"YulExpressionStatement","src":"2471:18:29"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2461:2:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2465:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2458:2:29"},"nodeType":"YulFunctionCall","src":"2458:10:29"},"nodeType":"YulIf","src":"2455:36:29"},{"nodeType":"YulVariableDeclaration","src":"2500:17:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2510:3:29"},"nodeType":"YulFunctionCall","src":"2510:7:29"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2504:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2526:23:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2546:2:29","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2540:5:29"},"nodeType":"YulFunctionCall","src":"2540:9:29"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2530:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2558:71:29","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2580:6:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2604:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2608:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2600:3:29"},"nodeType":"YulFunctionCall","src":"2600:13:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2615:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2596:3:29"},"nodeType":"YulFunctionCall","src":"2596:22:29"},{"kind":"number","nodeType":"YulLiteral","src":"2620:2:29","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:29"},"nodeType":"YulFunctionCall","src":"2592:31:29"},{"name":"_4","nodeType":"YulIdentifier","src":"2625:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2588:3:29"},"nodeType":"YulFunctionCall","src":"2588:40:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2576:3:29"},"nodeType":"YulFunctionCall","src":"2576:53:29"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2562:10:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"2688:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2690:16:29"},"nodeType":"YulFunctionCall","src":"2690:18:29"},"nodeType":"YulExpressionStatement","src":"2690:18:29"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2647:10:29"},{"name":"_1","nodeType":"YulIdentifier","src":"2659:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2644:2:29"},"nodeType":"YulFunctionCall","src":"2644:18:29"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2667:10:29"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2679:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2664:2:29"},"nodeType":"YulFunctionCall","src":"2664:22:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2641:2:29"},"nodeType":"YulFunctionCall","src":"2641:46:29"},"nodeType":"YulIf","src":"2638:72:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2726:2:29","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2730:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2719:6:29"},"nodeType":"YulFunctionCall","src":"2719:22:29"},"nodeType":"YulExpressionStatement","src":"2719:22:29"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2757:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2765:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2750:6:29"},"nodeType":"YulFunctionCall","src":"2750:18:29"},"nodeType":"YulExpressionStatement","src":"2750:18:29"},{"body":{"nodeType":"YulBlock","src":"2814:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2823:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2826:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2816:6:29"},"nodeType":"YulFunctionCall","src":"2816:12:29"},"nodeType":"YulExpressionStatement","src":"2816:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2791:2:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2795:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2787:3:29"},"nodeType":"YulFunctionCall","src":"2787:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"2800:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2783:3:29"},"nodeType":"YulFunctionCall","src":"2783:20:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2805:7:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2780:2:29"},"nodeType":"YulFunctionCall","src":"2780:33:29"},"nodeType":"YulIf","src":"2777:53:29"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2856:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"2864:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:29"},"nodeType":"YulFunctionCall","src":"2852:15:29"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2873:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"2877:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:29"},"nodeType":"YulFunctionCall","src":"2869:11:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2882:2:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2839:12:29"},"nodeType":"YulFunctionCall","src":"2839:46:29"},"nodeType":"YulExpressionStatement","src":"2839:46:29"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2909:6:29"},{"name":"_3","nodeType":"YulIdentifier","src":"2917:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:29"},"nodeType":"YulFunctionCall","src":"2905:15:29"},{"kind":"number","nodeType":"YulLiteral","src":"2922:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2901:3:29"},"nodeType":"YulFunctionCall","src":"2901:24:29"},{"kind":"number","nodeType":"YulLiteral","src":"2927:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2894:6:29"},"nodeType":"YulFunctionCall","src":"2894:35:29"},"nodeType":"YulExpressionStatement","src":"2894:35:29"},{"nodeType":"YulAssignment","src":"2938:16:29","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2948:6:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2938:6:29"}]},{"nodeType":"YulAssignment","src":"2963:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3001:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2986:3:29"},"nodeType":"YulFunctionCall","src":"2986:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2973:12:29"},"nodeType":"YulFunctionCall","src":"2973:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2963:6:29"}]},{"nodeType":"YulAssignment","src":"3014:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3024:12:29"},"nodeType":"YulFunctionCall","src":"3024:32:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3014:6:29"}]},{"nodeType":"YulAssignment","src":"3065:47:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3096:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3107:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3092:3:29"},"nodeType":"YulFunctionCall","src":"3092:19:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3075:16:29"},"nodeType":"YulFunctionCall","src":"3075:37:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3065:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1994:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2005:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2017:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2025:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2033:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2041:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2049:6:29","type":""}],"src":"1915:1203:29"},{"body":{"nodeType":"YulBlock","src":"3224:76:29","statements":[{"nodeType":"YulAssignment","src":"3234:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3246:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3257:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3242:3:29"},"nodeType":"YulFunctionCall","src":"3242:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3234:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3276:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3287:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3269:6:29"},"nodeType":"YulFunctionCall","src":"3269:25:29"},"nodeType":"YulExpressionStatement","src":"3269:25:29"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3193:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3204:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3215:4:29","type":""}],"src":"3123:177:29"},{"body":{"nodeType":"YulBlock","src":"3406:76:29","statements":[{"nodeType":"YulAssignment","src":"3416:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3428:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3439:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3424:3:29"},"nodeType":"YulFunctionCall","src":"3424:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3416:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3458:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"3469:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3451:6:29"},"nodeType":"YulFunctionCall","src":"3451:25:29"},"nodeType":"YulExpressionStatement","src":"3451:25:29"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3375:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3386:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3397:4:29","type":""}],"src":"3305:177:29"},{"body":{"nodeType":"YulBlock","src":"3591:224:29","statements":[{"body":{"nodeType":"YulBlock","src":"3637:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3646:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3649:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3639:6:29"},"nodeType":"YulFunctionCall","src":"3639:12:29"},"nodeType":"YulExpressionStatement","src":"3639:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3612:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3621:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3608:3:29"},"nodeType":"YulFunctionCall","src":"3608:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3633:2:29","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3604:3:29"},"nodeType":"YulFunctionCall","src":"3604:32:29"},"nodeType":"YulIf","src":"3601:52:29"},{"nodeType":"YulAssignment","src":"3662:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3691:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3672:18:29"},"nodeType":"YulFunctionCall","src":"3672:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3662:6:29"}]},{"nodeType":"YulAssignment","src":"3710:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3743:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3754:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3739:3:29"},"nodeType":"YulFunctionCall","src":"3739:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3720:18:29"},"nodeType":"YulFunctionCall","src":"3720:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3710:6:29"}]},{"nodeType":"YulAssignment","src":"3767:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3794:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3805:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3790:3:29"},"nodeType":"YulFunctionCall","src":"3790:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3777:12:29"},"nodeType":"YulFunctionCall","src":"3777:32:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3767:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3541:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3552:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3564:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3572:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3580:6:29","type":""}],"src":"3487:328:29"},{"body":{"nodeType":"YulBlock","src":"3890:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"3936:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3945:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3948:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3938:6:29"},"nodeType":"YulFunctionCall","src":"3938:12:29"},"nodeType":"YulExpressionStatement","src":"3938:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3911:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"3920:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3907:3:29"},"nodeType":"YulFunctionCall","src":"3907:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"3932:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3903:3:29"},"nodeType":"YulFunctionCall","src":"3903:32:29"},"nodeType":"YulIf","src":"3900:52:29"},{"nodeType":"YulAssignment","src":"3961:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3984:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3971:12:29"},"nodeType":"YulFunctionCall","src":"3971:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3961:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3856:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3867:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3879:6:29","type":""}],"src":"3820:180:29"},{"body":{"nodeType":"YulBlock","src":"4075:116:29","statements":[{"body":{"nodeType":"YulBlock","src":"4121:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4130:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4133:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4123:6:29"},"nodeType":"YulFunctionCall","src":"4123:12:29"},"nodeType":"YulExpressionStatement","src":"4123:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4096:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4105:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4092:3:29"},"nodeType":"YulFunctionCall","src":"4092:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4117:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4088:3:29"},"nodeType":"YulFunctionCall","src":"4088:32:29"},"nodeType":"YulIf","src":"4085:52:29"},{"nodeType":"YulAssignment","src":"4146:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4156:18:29"},"nodeType":"YulFunctionCall","src":"4156:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4146:6:29"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4041:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4052:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4064:6:29","type":""}],"src":"4005:186:29"},{"body":{"nodeType":"YulBlock","src":"4266:110:29","statements":[{"body":{"nodeType":"YulBlock","src":"4312:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4321:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4324:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4314:6:29"},"nodeType":"YulFunctionCall","src":"4314:12:29"},"nodeType":"YulExpressionStatement","src":"4314:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4287:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4296:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4283:3:29"},"nodeType":"YulFunctionCall","src":"4283:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4308:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4279:3:29"},"nodeType":"YulFunctionCall","src":"4279:32:29"},"nodeType":"YulIf","src":"4276:52:29"},{"nodeType":"YulAssignment","src":"4337:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4360:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4347:12:29"},"nodeType":"YulFunctionCall","src":"4347:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4337:6:29"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4232:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4243:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4255:6:29","type":""}],"src":"4196:180:29"},{"body":{"nodeType":"YulBlock","src":"4468:167:29","statements":[{"body":{"nodeType":"YulBlock","src":"4514:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4523:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4526:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4516:6:29"},"nodeType":"YulFunctionCall","src":"4516:12:29"},"nodeType":"YulExpressionStatement","src":"4516:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4489:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"4498:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4485:3:29"},"nodeType":"YulFunctionCall","src":"4485:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"4510:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4481:3:29"},"nodeType":"YulFunctionCall","src":"4481:32:29"},"nodeType":"YulIf","src":"4478:52:29"},{"nodeType":"YulAssignment","src":"4539:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4562:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4549:12:29"},"nodeType":"YulFunctionCall","src":"4549:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4539:6:29"}]},{"nodeType":"YulAssignment","src":"4581:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4614:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4625:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4610:3:29"},"nodeType":"YulFunctionCall","src":"4610:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4591:18:29"},"nodeType":"YulFunctionCall","src":"4591:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4581:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4426:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4437:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4449:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4457:6:29","type":""}],"src":"4381:254:29"},{"body":{"nodeType":"YulBlock","src":"4737:87:29","statements":[{"nodeType":"YulAssignment","src":"4747:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4759:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"4770:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4755:3:29"},"nodeType":"YulFunctionCall","src":"4755:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4747:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4789:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4804:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4812:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4800:3:29"},"nodeType":"YulFunctionCall","src":"4800:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4782:6:29"},"nodeType":"YulFunctionCall","src":"4782:36:29"},"nodeType":"YulExpressionStatement","src":"4782:36:29"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4706:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4717:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4728:4:29","type":""}],"src":"4640:184:29"},{"body":{"nodeType":"YulBlock","src":"4902:275:29","statements":[{"body":{"nodeType":"YulBlock","src":"4951:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4960:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4963:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4953:6:29"},"nodeType":"YulFunctionCall","src":"4953:12:29"},"nodeType":"YulExpressionStatement","src":"4953:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4930:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"4938:4:29","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4926:3:29"},"nodeType":"YulFunctionCall","src":"4926:17:29"},{"name":"end","nodeType":"YulIdentifier","src":"4945:3:29"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4922:3:29"},"nodeType":"YulFunctionCall","src":"4922:27:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4915:6:29"},"nodeType":"YulFunctionCall","src":"4915:35:29"},"nodeType":"YulIf","src":"4912:55:29"},{"nodeType":"YulAssignment","src":"4976:30:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4999:6:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4986:12:29"},"nodeType":"YulFunctionCall","src":"4986:20:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4976:6:29"}]},{"body":{"nodeType":"YulBlock","src":"5049:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5058:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5061:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5051:6:29"},"nodeType":"YulFunctionCall","src":"5051:12:29"},"nodeType":"YulExpressionStatement","src":"5051:12:29"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5021:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5029:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5018:2:29"},"nodeType":"YulFunctionCall","src":"5018:30:29"},"nodeType":"YulIf","src":"5015:50:29"},{"nodeType":"YulAssignment","src":"5074:29:29","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5090:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5098:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5086:3:29"},"nodeType":"YulFunctionCall","src":"5086:17:29"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5074:8:29"}]},{"body":{"nodeType":"YulBlock","src":"5155:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5164:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5167:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5157:6:29"},"nodeType":"YulFunctionCall","src":"5157:12:29"},"nodeType":"YulExpressionStatement","src":"5157:12:29"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5126:6:29"},{"name":"length","nodeType":"YulIdentifier","src":"5134:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:29"},"nodeType":"YulFunctionCall","src":"5122:19:29"},{"kind":"number","nodeType":"YulLiteral","src":"5143:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5118:3:29"},"nodeType":"YulFunctionCall","src":"5118:30:29"},{"name":"end","nodeType":"YulIdentifier","src":"5150:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5115:2:29"},"nodeType":"YulFunctionCall","src":"5115:39:29"},"nodeType":"YulIf","src":"5112:59:29"}]},"name":"abi_decode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4865:6:29","type":""},{"name":"end","nodeType":"YulTypedName","src":"4873:3:29","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"4881:8:29","type":""},{"name":"length","nodeType":"YulTypedName","src":"4891:6:29","type":""}],"src":"4829:348:29"},{"body":{"nodeType":"YulBlock","src":"5272:321:29","statements":[{"body":{"nodeType":"YulBlock","src":"5318:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5327:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5330:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5320:6:29"},"nodeType":"YulFunctionCall","src":"5320:12:29"},"nodeType":"YulExpressionStatement","src":"5320:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5293:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5302:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5289:3:29"},"nodeType":"YulFunctionCall","src":"5289:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5314:2:29","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5285:3:29"},"nodeType":"YulFunctionCall","src":"5285:32:29"},"nodeType":"YulIf","src":"5282:52:29"},{"nodeType":"YulVariableDeclaration","src":"5343:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5370:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5357:12:29"},"nodeType":"YulFunctionCall","src":"5357:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5347:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"5423:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5432:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5435:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5425:6:29"},"nodeType":"YulFunctionCall","src":"5425:12:29"},"nodeType":"YulExpressionStatement","src":"5425:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5395:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"5403:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5392:2:29"},"nodeType":"YulFunctionCall","src":"5392:30:29"},"nodeType":"YulIf","src":"5389:50:29"},{"nodeType":"YulVariableDeclaration","src":"5448:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5505:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"5516:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5501:3:29"},"nodeType":"YulFunctionCall","src":"5501:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5525:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"5474:26:29"},"nodeType":"YulFunctionCall","src":"5474:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5452:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5462:8:29","type":""}]},{"nodeType":"YulAssignment","src":"5542:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5552:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5542:6:29"}]},{"nodeType":"YulAssignment","src":"5569:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5579:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5569:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5230:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5241:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5253:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5261:6:29","type":""}],"src":"5182:411:29"},{"body":{"nodeType":"YulBlock","src":"5685:161:29","statements":[{"body":{"nodeType":"YulBlock","src":"5731:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5740:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5743:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5733:6:29"},"nodeType":"YulFunctionCall","src":"5733:12:29"},"nodeType":"YulExpressionStatement","src":"5733:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5706:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"5715:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5702:3:29"},"nodeType":"YulFunctionCall","src":"5702:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"5727:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5698:3:29"},"nodeType":"YulFunctionCall","src":"5698:32:29"},"nodeType":"YulIf","src":"5695:52:29"},{"nodeType":"YulAssignment","src":"5756:33:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5779:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5766:12:29"},"nodeType":"YulFunctionCall","src":"5766:23:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5756:6:29"}]},{"nodeType":"YulAssignment","src":"5798:42:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5825:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5836:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5821:3:29"},"nodeType":"YulFunctionCall","src":"5821:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5808:12:29"},"nodeType":"YulFunctionCall","src":"5808:32:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5798:6:29"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5643:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5654:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5666:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5674:6:29","type":""}],"src":"5598:248:29"},{"body":{"nodeType":"YulBlock","src":"5952:102:29","statements":[{"nodeType":"YulAssignment","src":"5962:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5974:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"5985:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5970:3:29"},"nodeType":"YulFunctionCall","src":"5970:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5962:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6004:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6019:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6035:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6040:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6031:3:29"},"nodeType":"YulFunctionCall","src":"6031:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"6044:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6027:3:29"},"nodeType":"YulFunctionCall","src":"6027:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6015:3:29"},"nodeType":"YulFunctionCall","src":"6015:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5997:6:29"},"nodeType":"YulFunctionCall","src":"5997:51:29"},"nodeType":"YulExpressionStatement","src":"5997:51:29"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5921:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5932:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5943:4:29","type":""}],"src":"5851:203:29"},{"body":{"nodeType":"YulBlock","src":"6165:378:29","statements":[{"body":{"nodeType":"YulBlock","src":"6211:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6220:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6223:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6213:6:29"},"nodeType":"YulFunctionCall","src":"6213:12:29"},"nodeType":"YulExpressionStatement","src":"6213:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6186:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6195:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6182:3:29"},"nodeType":"YulFunctionCall","src":"6182:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6207:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6178:3:29"},"nodeType":"YulFunctionCall","src":"6178:32:29"},"nodeType":"YulIf","src":"6175:52:29"},{"nodeType":"YulAssignment","src":"6236:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6265:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6246:18:29"},"nodeType":"YulFunctionCall","src":"6246:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6236:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"6284:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6315:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6326:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6311:3:29"},"nodeType":"YulFunctionCall","src":"6311:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6298:12:29"},"nodeType":"YulFunctionCall","src":"6298:32:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6288:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"6373:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6382:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6385:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6375:6:29"},"nodeType":"YulFunctionCall","src":"6375:12:29"},"nodeType":"YulExpressionStatement","src":"6375:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6345:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"6353:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6342:2:29"},"nodeType":"YulFunctionCall","src":"6342:30:29"},"nodeType":"YulIf","src":"6339:50:29"},{"nodeType":"YulVariableDeclaration","src":"6398:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6455:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"6466:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6451:3:29"},"nodeType":"YulFunctionCall","src":"6451:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6475:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"6424:26:29"},"nodeType":"YulFunctionCall","src":"6424:59:29"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"6402:8:29","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"6412:8:29","type":""}]},{"nodeType":"YulAssignment","src":"6492:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6502:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6492:6:29"}]},{"nodeType":"YulAssignment","src":"6519:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6529:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6519:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6115:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6126:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6138:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6146:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6154:6:29","type":""}],"src":"6059:484:29"},{"body":{"nodeType":"YulBlock","src":"6635:173:29","statements":[{"body":{"nodeType":"YulBlock","src":"6681:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6690:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6693:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6683:6:29"},"nodeType":"YulFunctionCall","src":"6683:12:29"},"nodeType":"YulExpressionStatement","src":"6683:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6656:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6652:3:29"},"nodeType":"YulFunctionCall","src":"6652:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"6677:2:29","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6648:3:29"},"nodeType":"YulFunctionCall","src":"6648:32:29"},"nodeType":"YulIf","src":"6645:52:29"},{"nodeType":"YulAssignment","src":"6706:39:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6735:9:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6716:18:29"},"nodeType":"YulFunctionCall","src":"6716:29:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6706:6:29"}]},{"nodeType":"YulAssignment","src":"6754:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6787:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"6798:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6783:3:29"},"nodeType":"YulFunctionCall","src":"6783:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6764:18:29"},"nodeType":"YulFunctionCall","src":"6764:38:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6754:6:29"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6593:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6604:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6616:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6624:6:29","type":""}],"src":"6548:260:29"},{"body":{"nodeType":"YulBlock","src":"6972:707:29","statements":[{"body":{"nodeType":"YulBlock","src":"7019:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7028:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7031:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7021:6:29"},"nodeType":"YulFunctionCall","src":"7021:12:29"},"nodeType":"YulExpressionStatement","src":"7021:12:29"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6993:7:29"},{"name":"headStart","nodeType":"YulIdentifier","src":"7002:9:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6989:3:29"},"nodeType":"YulFunctionCall","src":"6989:23:29"},{"kind":"number","nodeType":"YulLiteral","src":"7014:3:29","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6985:3:29"},"nodeType":"YulFunctionCall","src":"6985:33:29"},"nodeType":"YulIf","src":"6982:53:29"},{"nodeType":"YulVariableDeclaration","src":"7044:37:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7071:9:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7058:12:29"},"nodeType":"YulFunctionCall","src":"7058:23:29"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7048:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7090:28:29","value":{"kind":"number","nodeType":"YulLiteral","src":"7100:18:29","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7094:2:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7145:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7154:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7157:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7147:6:29"},"nodeType":"YulFunctionCall","src":"7147:12:29"},"nodeType":"YulExpressionStatement","src":"7147:12:29"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7133:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7141:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7130:2:29"},"nodeType":"YulFunctionCall","src":"7130:14:29"},"nodeType":"YulIf","src":"7127:34:29"},{"nodeType":"YulVariableDeclaration","src":"7170:85:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7227:9:29"},{"name":"offset","nodeType":"YulIdentifier","src":"7238:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7223:3:29"},"nodeType":"YulFunctionCall","src":"7223:22:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7247:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7196:26:29"},"nodeType":"YulFunctionCall","src":"7196:59:29"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7174:8:29","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7184:8:29","type":""}]},{"nodeType":"YulAssignment","src":"7264:18:29","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"7274:8:29"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7264:6:29"}]},{"nodeType":"YulAssignment","src":"7291:18:29","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"7301:8:29"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7291:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"7318:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7351:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7362:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7347:3:29"},"nodeType":"YulFunctionCall","src":"7347:18:29"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7334:12:29"},"nodeType":"YulFunctionCall","src":"7334:32:29"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7322:8:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7395:16:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7404:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7407:1:29","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7397:6:29"},"nodeType":"YulFunctionCall","src":"7397:12:29"},"nodeType":"YulExpressionStatement","src":"7397:12:29"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7381:8:29"},{"name":"_1","nodeType":"YulIdentifier","src":"7391:2:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7378:2:29"},"nodeType":"YulFunctionCall","src":"7378:16:29"},"nodeType":"YulIf","src":"7375:36:29"},{"nodeType":"YulVariableDeclaration","src":"7420:87:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7477:9:29"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7488:8:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7473:3:29"},"nodeType":"YulFunctionCall","src":"7473:24:29"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7499:7:29"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"7446:26:29"},"nodeType":"YulFunctionCall","src":"7446:61:29"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"7424:8:29","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"7434:8:29","type":""}]},{"nodeType":"YulAssignment","src":"7516:18:29","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7526:8:29"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7516:6:29"}]},{"nodeType":"YulAssignment","src":"7543:18:29","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7553:8:29"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7543:6:29"}]},{"nodeType":"YulAssignment","src":"7570:46:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7601:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7612:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7597:3:29"},"nodeType":"YulFunctionCall","src":"7597:18:29"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"7580:16:29"},"nodeType":"YulFunctionCall","src":"7580:36:29"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7570:6:29"}]},{"nodeType":"YulAssignment","src":"7625:48:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7658:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"7669:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7654:3:29"},"nodeType":"YulFunctionCall","src":"7654:18:29"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7635:18:29"},"nodeType":"YulFunctionCall","src":"7635:38:29"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7625:6:29"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6898:9:29","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6909:7:29","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6921:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6929:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6937:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6945:6:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6953:6:29","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6961:6:29","type":""}],"src":"6813:866:29"},{"body":{"nodeType":"YulBlock","src":"7739:325:29","statements":[{"nodeType":"YulAssignment","src":"7749:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7763:1:29","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"7766:4:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7759:3:29"},"nodeType":"YulFunctionCall","src":"7759:12:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7749:6:29"}]},{"nodeType":"YulVariableDeclaration","src":"7780:38:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7810:4:29"},{"kind":"number","nodeType":"YulLiteral","src":"7816:1:29","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7806:3:29"},"nodeType":"YulFunctionCall","src":"7806:12:29"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"7784:18:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"7857:31:29","statements":[{"nodeType":"YulAssignment","src":"7859:27:29","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7873:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7881:4:29","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7869:3:29"},"nodeType":"YulFunctionCall","src":"7869:17:29"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7859:6:29"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7837:18:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7830:6:29"},"nodeType":"YulFunctionCall","src":"7830:26:29"},"nodeType":"YulIf","src":"7827:61:29"},{"body":{"nodeType":"YulBlock","src":"7947:111:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7968:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7975:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7980:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7971:3:29"},"nodeType":"YulFunctionCall","src":"7971:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7961:6:29"},"nodeType":"YulFunctionCall","src":"7961:31:29"},"nodeType":"YulExpressionStatement","src":"7961:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8012:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8015:4:29","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8005:6:29"},"nodeType":"YulFunctionCall","src":"8005:15:29"},"nodeType":"YulExpressionStatement","src":"8005:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8040:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8043:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8033:6:29"},"nodeType":"YulFunctionCall","src":"8033:15:29"},"nodeType":"YulExpressionStatement","src":"8033:15:29"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7903:18:29"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7926:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"7934:2:29","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7923:2:29"},"nodeType":"YulFunctionCall","src":"7923:14:29"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7900:2:29"},"nodeType":"YulFunctionCall","src":"7900:38:29"},"nodeType":"YulIf","src":"7897:161:29"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"7719:4:29","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"7728:6:29","type":""}],"src":"7684:380:29"},{"body":{"nodeType":"YulBlock","src":"8243:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8260:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8253:6:29"},"nodeType":"YulFunctionCall","src":"8253:21:29"},"nodeType":"YulExpressionStatement","src":"8253:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8294:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8305:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8290:3:29"},"nodeType":"YulFunctionCall","src":"8290:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"8310:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8283:6:29"},"nodeType":"YulFunctionCall","src":"8283:30:29"},"nodeType":"YulExpressionStatement","src":"8283:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8333:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8344:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8329:3:29"},"nodeType":"YulFunctionCall","src":"8329:18:29"},{"hexValue":"5369676e657220616e64207369676e617475726520646f206e6f74206d617463","kind":"string","nodeType":"YulLiteral","src":"8349:34:29","type":"","value":"Signer and signature do not matc"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8322:6:29"},"nodeType":"YulFunctionCall","src":"8322:62:29"},"nodeType":"YulExpressionStatement","src":"8322:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8404:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8415:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8400:3:29"},"nodeType":"YulFunctionCall","src":"8400:18:29"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"8420:3:29","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8393:6:29"},"nodeType":"YulFunctionCall","src":"8393:31:29"},"nodeType":"YulExpressionStatement","src":"8393:31:29"},{"nodeType":"YulAssignment","src":"8433:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8445:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8456:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8441:3:29"},"nodeType":"YulFunctionCall","src":"8441:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8433:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8220:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8234:4:29","type":""}],"src":"8069:397:29"},{"body":{"nodeType":"YulBlock","src":"8662:241:29","statements":[{"nodeType":"YulVariableDeclaration","src":"8672:29:29","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8690:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8695:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8686:3:29"},"nodeType":"YulFunctionCall","src":"8686:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"8699:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8682:3:29"},"nodeType":"YulFunctionCall","src":"8682:19:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8676:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8717:9:29"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8732:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8740:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8728:3:29"},"nodeType":"YulFunctionCall","src":"8728:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8710:6:29"},"nodeType":"YulFunctionCall","src":"8710:34:29"},"nodeType":"YulExpressionStatement","src":"8710:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8764:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8775:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8760:3:29"},"nodeType":"YulFunctionCall","src":"8760:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8784:6:29"},{"name":"_1","nodeType":"YulIdentifier","src":"8792:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8780:3:29"},"nodeType":"YulFunctionCall","src":"8780:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8753:6:29"},"nodeType":"YulFunctionCall","src":"8753:43:29"},"nodeType":"YulExpressionStatement","src":"8753:43:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8816:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8827:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8812:3:29"},"nodeType":"YulFunctionCall","src":"8812:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"8832:2:29","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8805:6:29"},"nodeType":"YulFunctionCall","src":"8805:30:29"},"nodeType":"YulExpressionStatement","src":"8805:30:29"},{"nodeType":"YulAssignment","src":"8844:53:29","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8870:6:29"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8882:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"8893:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8878:3:29"},"nodeType":"YulFunctionCall","src":"8878:18:29"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"8852:17:29"},"nodeType":"YulFunctionCall","src":"8852:45:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8844:4:29"}]}]},"name":"abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8615:9:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8626:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8634:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8642:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8653:4:29","type":""}],"src":"8471:432:29"},{"body":{"nodeType":"YulBlock","src":"9073:263:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9083:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9103:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9097:5:29"},"nodeType":"YulFunctionCall","src":"9097:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9087:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9158:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9166:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9154:3:29"},"nodeType":"YulFunctionCall","src":"9154:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"9173:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9178:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9119:34:29"},"nodeType":"YulFunctionCall","src":"9119:66:29"},"nodeType":"YulExpressionStatement","src":"9119:66:29"},{"nodeType":"YulVariableDeclaration","src":"9194:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9211:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9216:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9207:3:29"},"nodeType":"YulFunctionCall","src":"9207:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"9198:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"9239:5:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9254:2:29","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"9258:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9250:3:29"},"nodeType":"YulFunctionCall","src":"9250:15:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9271:26:29","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9267:3:29"},"nodeType":"YulFunctionCall","src":"9267:31:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9246:3:29"},"nodeType":"YulFunctionCall","src":"9246:53:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9232:6:29"},"nodeType":"YulFunctionCall","src":"9232:68:29"},"nodeType":"YulExpressionStatement","src":"9232:68:29"},{"nodeType":"YulAssignment","src":"9309:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"9320:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"9327:2:29","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9316:3:29"},"nodeType":"YulFunctionCall","src":"9316:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9309:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9041:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9046:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9054:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9065:3:29","type":""}],"src":"8908:428:29"},{"body":{"nodeType":"YulBlock","src":"9478:150:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9488:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9508:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9502:5:29"},"nodeType":"YulFunctionCall","src":"9502:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9492:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9563:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"9571:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9559:3:29"},"nodeType":"YulFunctionCall","src":"9559:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"9578:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9583:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9524:34:29"},"nodeType":"YulFunctionCall","src":"9524:66:29"},"nodeType":"YulExpressionStatement","src":"9524:66:29"},{"nodeType":"YulAssignment","src":"9599:23:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9610:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"9615:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9606:3:29"},"nodeType":"YulFunctionCall","src":"9606:16:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9599:3:29"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9454:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9459:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9470:3:29","type":""}],"src":"9341:287:29"},{"body":{"nodeType":"YulBlock","src":"9807:178:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9824:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9835:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9817:6:29"},"nodeType":"YulFunctionCall","src":"9817:21:29"},"nodeType":"YulExpressionStatement","src":"9817:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9858:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9869:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9854:3:29"},"nodeType":"YulFunctionCall","src":"9854:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"9874:2:29","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9847:6:29"},"nodeType":"YulFunctionCall","src":"9847:30:29"},"nodeType":"YulExpressionStatement","src":"9847:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9897:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9908:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9893:3:29"},"nodeType":"YulFunctionCall","src":"9893:18:29"},{"hexValue":"46756e6374696f6e2063616c6c206e6f74207375636365737366756c","kind":"string","nodeType":"YulLiteral","src":"9913:30:29","type":"","value":"Function call not successful"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9886:6:29"},"nodeType":"YulFunctionCall","src":"9886:58:29"},"nodeType":"YulExpressionStatement","src":"9886:58:29"},{"nodeType":"YulAssignment","src":"9953:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9965:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"9976:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9961:3:29"},"nodeType":"YulFunctionCall","src":"9961:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9953:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9784:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9798:4:29","type":""}],"src":"9633:352:29"},{"body":{"nodeType":"YulBlock","src":"10164:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10181:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10192:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10174:6:29"},"nodeType":"YulFunctionCall","src":"10174:21:29"},"nodeType":"YulExpressionStatement","src":"10174:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10215:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10226:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10211:3:29"},"nodeType":"YulFunctionCall","src":"10211:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"10231:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10204:6:29"},"nodeType":"YulFunctionCall","src":"10204:30:29"},"nodeType":"YulExpressionStatement","src":"10204:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10254:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10265:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10250:3:29"},"nodeType":"YulFunctionCall","src":"10250:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"10270:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10243:6:29"},"nodeType":"YulFunctionCall","src":"10243:62:29"},"nodeType":"YulExpressionStatement","src":"10243:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10325:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10336:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10321:3:29"},"nodeType":"YulFunctionCall","src":"10321:18:29"},{"hexValue":"2061646d696e20746f206772616e74","kind":"string","nodeType":"YulLiteral","src":"10341:17:29","type":"","value":" admin to grant"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10314:6:29"},"nodeType":"YulFunctionCall","src":"10314:45:29"},"nodeType":"YulExpressionStatement","src":"10314:45:29"},{"nodeType":"YulAssignment","src":"10368:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10380:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10391:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10376:3:29"},"nodeType":"YulFunctionCall","src":"10376:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10368:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10141:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10155:4:29","type":""}],"src":"9990:411:29"},{"body":{"nodeType":"YulBlock","src":"10580:237:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10597:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10608:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10590:6:29"},"nodeType":"YulFunctionCall","src":"10590:21:29"},"nodeType":"YulExpressionStatement","src":"10590:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10631:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10642:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10627:3:29"},"nodeType":"YulFunctionCall","src":"10627:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"10647:2:29","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10620:6:29"},"nodeType":"YulFunctionCall","src":"10620:30:29"},"nodeType":"YulExpressionStatement","src":"10620:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10670:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10681:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10666:3:29"},"nodeType":"YulFunctionCall","src":"10666:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"10686:34:29","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10659:6:29"},"nodeType":"YulFunctionCall","src":"10659:62:29"},"nodeType":"YulExpressionStatement","src":"10659:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10741:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10752:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10737:3:29"},"nodeType":"YulFunctionCall","src":"10737:18:29"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"10757:17:29","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10730:6:29"},"nodeType":"YulFunctionCall","src":"10730:45:29"},"nodeType":"YulExpressionStatement","src":"10730:45:29"},{"nodeType":"YulAssignment","src":"10784:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10796:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"10807:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10792:3:29"},"nodeType":"YulFunctionCall","src":"10792:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10784:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10557:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10571:4:29","type":""}],"src":"10406:411:29"},{"body":{"nodeType":"YulBlock","src":"10996:181:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11013:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11024:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11006:6:29"},"nodeType":"YulFunctionCall","src":"11006:21:29"},"nodeType":"YulExpressionStatement","src":"11006:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11047:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11058:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11043:3:29"},"nodeType":"YulFunctionCall","src":"11043:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"11063:2:29","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11036:6:29"},"nodeType":"YulFunctionCall","src":"11036:30:29"},"nodeType":"YulExpressionStatement","src":"11036:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11086:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11097:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11082:3:29"},"nodeType":"YulFunctionCall","src":"11082:18:29"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"11102:33:29","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11075:6:29"},"nodeType":"YulFunctionCall","src":"11075:61:29"},"nodeType":"YulExpressionStatement","src":"11075:61:29"},{"nodeType":"YulAssignment","src":"11145:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11157:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"11168:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11153:3:29"},"nodeType":"YulFunctionCall","src":"11153:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11145:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10973:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10987:4:29","type":""}],"src":"10822:355:29"},{"body":{"nodeType":"YulBlock","src":"11238:65:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11255:1:29","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"11258:3:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11248:6:29"},"nodeType":"YulFunctionCall","src":"11248:14:29"},"nodeType":"YulExpressionStatement","src":"11248:14:29"},{"nodeType":"YulAssignment","src":"11271:26:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11289:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11292:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"11279:9:29"},"nodeType":"YulFunctionCall","src":"11279:18:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"11271:4:29"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"11221:3:29","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"11229:4:29","type":""}],"src":"11182:121:29"},{"body":{"nodeType":"YulBlock","src":"11426:845:29","statements":[{"nodeType":"YulVariableDeclaration","src":"11436:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11446:2:29","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11440:2:29","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11464:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11475:2:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11457:6:29"},"nodeType":"YulFunctionCall","src":"11457:21:29"},"nodeType":"YulExpressionStatement","src":"11457:21:29"},{"nodeType":"YulVariableDeclaration","src":"11487:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11498:1:29","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"11491:3:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11508:30:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11531:6:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"11525:5:29"},"nodeType":"YulFunctionCall","src":"11525:13:29"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"11512:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11547:50:29","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"11587:9:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"11561:25:29"},"nodeType":"YulFunctionCall","src":"11561:36:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11551:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11617:9:29"},{"name":"_1","nodeType":"YulIdentifier","src":"11628:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11613:3:29"},"nodeType":"YulFunctionCall","src":"11613:18:29"},{"name":"length","nodeType":"YulIdentifier","src":"11633:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11606:6:29"},"nodeType":"YulFunctionCall","src":"11606:34:29"},"nodeType":"YulExpressionStatement","src":"11606:34:29"},{"nodeType":"YulVariableDeclaration","src":"11649:12:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11659:2:29","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11653:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11670:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11680:1:29","type":"","value":"1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11674:2:29","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"11731:151:29","statements":[{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11756:9:29"},{"name":"_2","nodeType":"YulIdentifier","src":"11767:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11752:3:29"},"nodeType":"YulFunctionCall","src":"11752:18:29"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"11776:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11791:3:29","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11787:3:29"},"nodeType":"YulFunctionCall","src":"11787:8:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11772:3:29"},"nodeType":"YulFunctionCall","src":"11772:24:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11745:6:29"},"nodeType":"YulFunctionCall","src":"11745:52:29"},"nodeType":"YulExpressionStatement","src":"11745:52:29"},{"nodeType":"YulAssignment","src":"11810:62:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11825:9:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11840:1:29","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11857:6:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11850:6:29"},"nodeType":"YulFunctionCall","src":"11850:14:29"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11843:6:29"},"nodeType":"YulFunctionCall","src":"11843:22:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11836:3:29"},"nodeType":"YulFunctionCall","src":"11836:30:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11821:3:29"},"nodeType":"YulFunctionCall","src":"11821:46:29"},{"name":"_2","nodeType":"YulIdentifier","src":"11869:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11817:3:29"},"nodeType":"YulFunctionCall","src":"11817:55:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"11810:3:29"}]}]},"nodeType":"YulCase","src":"11724:158:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11729:1:29","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"11898:347:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11919:1:29","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"11922:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11912:6:29"},"nodeType":"YulFunctionCall","src":"11912:17:29"},"nodeType":"YulExpressionStatement","src":"11912:17:29"},{"nodeType":"YulVariableDeclaration","src":"11942:31:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11967:1:29","type":"","value":"0"},{"name":"_1","nodeType":"YulIdentifier","src":"11970:2:29"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"11957:9:29"},"nodeType":"YulFunctionCall","src":"11957:16:29"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"11946:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11986:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11995:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11990:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"12063:126:29","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12096:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"12107:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12092:3:29"},"nodeType":"YulFunctionCall","src":"12092:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12111:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12088:3:29"},"nodeType":"YulFunctionCall","src":"12088:26:29"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12122:7:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12116:5:29"},"nodeType":"YulFunctionCall","src":"12116:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12081:6:29"},"nodeType":"YulFunctionCall","src":"12081:50:29"},"nodeType":"YulExpressionStatement","src":"12081:50:29"},{"nodeType":"YulAssignment","src":"12148:27:29","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12163:7:29"},{"name":"_3","nodeType":"YulIdentifier","src":"12172:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12159:3:29"},"nodeType":"YulFunctionCall","src":"12159:16:29"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12148:7:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12020:1:29"},{"name":"length","nodeType":"YulIdentifier","src":"12023:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12017:2:29"},"nodeType":"YulFunctionCall","src":"12017:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12031:19:29","statements":[{"nodeType":"YulAssignment","src":"12033:15:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12042:1:29"},{"name":"_1","nodeType":"YulIdentifier","src":"12045:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12038:3:29"},"nodeType":"YulFunctionCall","src":"12038:10:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12033:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"12013:3:29","statements":[]},"src":"12009:180:29"},{"nodeType":"YulAssignment","src":"12202:33:29","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12217:9:29"},{"name":"i","nodeType":"YulIdentifier","src":"12228:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12213:3:29"},"nodeType":"YulFunctionCall","src":"12213:17:29"},{"name":"_2","nodeType":"YulIdentifier","src":"12232:2:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12209:3:29"},"nodeType":"YulFunctionCall","src":"12209:26:29"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12202:3:29"}]}]},"nodeType":"YulCase","src":"11891:354:29","value":{"kind":"number","nodeType":"YulLiteral","src":"11896:1:29","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"11701:9:29"},{"name":"_3","nodeType":"YulIdentifier","src":"11712:2:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11697:3:29"},"nodeType":"YulFunctionCall","src":"11697:18:29"},"nodeType":"YulSwitch","src":"11690:555:29"},{"nodeType":"YulAssignment","src":"12254:11:29","value":{"name":"ret","nodeType":"YulIdentifier","src":"12262:3:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12254:4:29"}]}]},"name":"abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11395:9:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11406:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11417:4:29","type":""}],"src":"11308:963:29"},{"body":{"nodeType":"YulBlock","src":"12450:238:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12467:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12478:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12460:6:29"},"nodeType":"YulFunctionCall","src":"12460:21:29"},"nodeType":"YulExpressionStatement","src":"12460:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12512:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12497:3:29"},"nodeType":"YulFunctionCall","src":"12497:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"12517:2:29","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12490:6:29"},"nodeType":"YulFunctionCall","src":"12490:30:29"},"nodeType":"YulExpressionStatement","src":"12490:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12540:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12551:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12536:3:29"},"nodeType":"YulFunctionCall","src":"12536:18:29"},{"hexValue":"416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e","kind":"string","nodeType":"YulLiteral","src":"12556:34:29","type":"","value":"AccessControl: sender must be an"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12529:6:29"},"nodeType":"YulFunctionCall","src":"12529:62:29"},"nodeType":"YulExpressionStatement","src":"12529:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12611:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12622:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12607:3:29"},"nodeType":"YulFunctionCall","src":"12607:18:29"},{"hexValue":"2061646d696e20746f207265766f6b65","kind":"string","nodeType":"YulLiteral","src":"12627:18:29","type":"","value":" admin to revoke"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12600:6:29"},"nodeType":"YulFunctionCall","src":"12600:46:29"},"nodeType":"YulExpressionStatement","src":"12600:46:29"},{"nodeType":"YulAssignment","src":"12655:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12667:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12678:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12663:3:29"},"nodeType":"YulFunctionCall","src":"12663:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12655:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12427:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12441:4:29","type":""}],"src":"12276:412:29"},{"body":{"nodeType":"YulBlock","src":"12867:164:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12884:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12895:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12877:6:29"},"nodeType":"YulFunctionCall","src":"12877:21:29"},"nodeType":"YulExpressionStatement","src":"12877:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12918:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12929:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12914:3:29"},"nodeType":"YulFunctionCall","src":"12914:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"12934:2:29","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12907:6:29"},"nodeType":"YulFunctionCall","src":"12907:30:29"},"nodeType":"YulExpressionStatement","src":"12907:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12957:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"12968:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12953:3:29"},"nodeType":"YulFunctionCall","src":"12953:18:29"},{"hexValue":"616c726561647920696e69746564","kind":"string","nodeType":"YulLiteral","src":"12973:16:29","type":"","value":"already inited"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12946:6:29"},"nodeType":"YulFunctionCall","src":"12946:44:29"},"nodeType":"YulExpressionStatement","src":"12946:44:29"},{"nodeType":"YulAssignment","src":"12999:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13011:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13007:3:29"},"nodeType":"YulFunctionCall","src":"13007:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12999:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12844:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12858:4:29","type":""}],"src":"12693:338:29"},{"body":{"nodeType":"YulBlock","src":"13286:169:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13303:3:29"},{"hexValue":"4368696c64","kind":"string","nodeType":"YulLiteral","src":"13308:7:29","type":"","value":"Child"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13296:6:29"},"nodeType":"YulFunctionCall","src":"13296:20:29"},"nodeType":"YulExpressionStatement","src":"13296:20:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13342:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"13347:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13338:3:29"},"nodeType":"YulFunctionCall","src":"13338:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"13351:6:29"},{"name":"value1","nodeType":"YulIdentifier","src":"13359:6:29"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"13325:12:29"},"nodeType":"YulFunctionCall","src":"13325:41:29"},"nodeType":"YulExpressionStatement","src":"13325:41:29"},{"nodeType":"YulVariableDeclaration","src":"13375:34:29","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13393:3:29"},{"name":"value1","nodeType":"YulIdentifier","src":"13398:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13389:3:29"},"nodeType":"YulFunctionCall","src":"13389:16:29"},{"kind":"number","nodeType":"YulLiteral","src":"13407:1:29","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13385:3:29"},"nodeType":"YulFunctionCall","src":"13385:24:29"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13379:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13425:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"13429:1:29","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13418:6:29"},"nodeType":"YulFunctionCall","src":"13418:13:29"},"nodeType":"YulExpressionStatement","src":"13418:13:29"},{"nodeType":"YulAssignment","src":"13440:9:29","value":{"name":"_1","nodeType":"YulIdentifier","src":"13447:2:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13440:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13254:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13259:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13267:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13278:3:29","type":""}],"src":"13036:419:29"},{"body":{"nodeType":"YulBlock","src":"13634:226:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13651:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13662:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13644:6:29"},"nodeType":"YulFunctionCall","src":"13644:21:29"},"nodeType":"YulExpressionStatement","src":"13644:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13685:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13696:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13681:3:29"},"nodeType":"YulFunctionCall","src":"13681:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"13701:2:29","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13674:6:29"},"nodeType":"YulFunctionCall","src":"13674:30:29"},"nodeType":"YulExpressionStatement","src":"13674:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13724:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13735:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13720:3:29"},"nodeType":"YulFunctionCall","src":"13720:18:29"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"13740:34:29","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13713:6:29"},"nodeType":"YulFunctionCall","src":"13713:62:29"},"nodeType":"YulExpressionStatement","src":"13713:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13795:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13806:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13791:3:29"},"nodeType":"YulFunctionCall","src":"13791:18:29"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"13811:6:29","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13784:6:29"},"nodeType":"YulFunctionCall","src":"13784:34:29"},"nodeType":"YulExpressionStatement","src":"13784:34:29"},{"nodeType":"YulAssignment","src":"13827:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13839:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"13850:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13835:3:29"},"nodeType":"YulFunctionCall","src":"13835:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13827:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13611:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13625:4:29","type":""}],"src":"13460:400:29"},{"body":{"nodeType":"YulBlock","src":"14039:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14056:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14067:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14049:6:29"},"nodeType":"YulFunctionCall","src":"14049:21:29"},"nodeType":"YulExpressionStatement","src":"14049:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14090:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14101:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14086:3:29"},"nodeType":"YulFunctionCall","src":"14086:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"14106:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14079:6:29"},"nodeType":"YulFunctionCall","src":"14079:30:29"},"nodeType":"YulExpressionStatement","src":"14079:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14129:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14140:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14125:3:29"},"nodeType":"YulFunctionCall","src":"14125:18:29"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"14145:34:29","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14118:6:29"},"nodeType":"YulFunctionCall","src":"14118:62:29"},"nodeType":"YulExpressionStatement","src":"14118:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14200:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14211:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14196:3:29"},"nodeType":"YulFunctionCall","src":"14196:18:29"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"14216:4:29","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14189:6:29"},"nodeType":"YulFunctionCall","src":"14189:32:29"},"nodeType":"YulExpressionStatement","src":"14189:32:29"},{"nodeType":"YulAssignment","src":"14230:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14242:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14253:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14238:3:29"},"nodeType":"YulFunctionCall","src":"14238:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14230:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14016:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14030:4:29","type":""}],"src":"13865:398:29"},{"body":{"nodeType":"YulBlock","src":"14442:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14452:6:29"},"nodeType":"YulFunctionCall","src":"14452:21:29"},"nodeType":"YulExpressionStatement","src":"14452:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14493:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14504:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14489:3:29"},"nodeType":"YulFunctionCall","src":"14489:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"14509:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14482:6:29"},"nodeType":"YulFunctionCall","src":"14482:30:29"},"nodeType":"YulExpressionStatement","src":"14482:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14532:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14543:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14528:3:29"},"nodeType":"YulFunctionCall","src":"14528:18:29"},{"hexValue":"4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f53","kind":"string","nodeType":"YulLiteral","src":"14548:34:29","type":"","value":"NativeMetaTransaction: INVALID_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14521:6:29"},"nodeType":"YulFunctionCall","src":"14521:62:29"},"nodeType":"YulExpressionStatement","src":"14521:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14603:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14614:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14599:3:29"},"nodeType":"YulFunctionCall","src":"14599:18:29"},{"hexValue":"49474e4552","kind":"string","nodeType":"YulLiteral","src":"14619:7:29","type":"","value":"IGNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14592:6:29"},"nodeType":"YulFunctionCall","src":"14592:35:29"},"nodeType":"YulExpressionStatement","src":"14592:35:29"},{"nodeType":"YulAssignment","src":"14636:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14648:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14659:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14644:3:29"},"nodeType":"YulFunctionCall","src":"14644:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14636:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14419:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14433:4:29","type":""}],"src":"14268:401:29"},{"body":{"nodeType":"YulBlock","src":"14855:217:29","statements":[{"nodeType":"YulAssignment","src":"14865:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14877:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14888:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14873:3:29"},"nodeType":"YulFunctionCall","src":"14873:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14865:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14908:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"14919:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14901:6:29"},"nodeType":"YulFunctionCall","src":"14901:25:29"},"nodeType":"YulExpressionStatement","src":"14901:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14946:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"14957:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14942:3:29"},"nodeType":"YulFunctionCall","src":"14942:18:29"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14966:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"14974:4:29","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14962:3:29"},"nodeType":"YulFunctionCall","src":"14962:17:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14935:6:29"},"nodeType":"YulFunctionCall","src":"14935:45:29"},"nodeType":"YulExpressionStatement","src":"14935:45:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15000:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15011:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14996:3:29"},"nodeType":"YulFunctionCall","src":"14996:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"15016:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14989:6:29"},"nodeType":"YulFunctionCall","src":"14989:34:29"},"nodeType":"YulExpressionStatement","src":"14989:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15043:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15054:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15039:3:29"},"nodeType":"YulFunctionCall","src":"15039:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"15059:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15032:6:29"},"nodeType":"YulFunctionCall","src":"15032:34:29"},"nodeType":"YulExpressionStatement","src":"15032:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14800:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14811:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14819:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14827:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14835:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14846:4:29","type":""}],"src":"14674:398:29"},{"body":{"nodeType":"YulBlock","src":"15109:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15126:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15133:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15138:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15129:3:29"},"nodeType":"YulFunctionCall","src":"15129:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15119:6:29"},"nodeType":"YulFunctionCall","src":"15119:31:29"},"nodeType":"YulExpressionStatement","src":"15119:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15166:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15169:4:29","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15159:6:29"},"nodeType":"YulFunctionCall","src":"15159:15:29"},"nodeType":"YulExpressionStatement","src":"15159:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15190:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15193:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15183:6:29"},"nodeType":"YulFunctionCall","src":"15183:15:29"},"nodeType":"YulExpressionStatement","src":"15183:15:29"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"15077:127:29"},{"body":{"nodeType":"YulBlock","src":"15257:77:29","statements":[{"nodeType":"YulAssignment","src":"15267:16:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15278:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"15281:1:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15274:3:29"},"nodeType":"YulFunctionCall","src":"15274:9:29"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"15267:3:29"}]},{"body":{"nodeType":"YulBlock","src":"15306:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15308:16:29"},"nodeType":"YulFunctionCall","src":"15308:18:29"},"nodeType":"YulExpressionStatement","src":"15308:18:29"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15298:1:29"},{"name":"sum","nodeType":"YulIdentifier","src":"15301:3:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15295:2:29"},"nodeType":"YulFunctionCall","src":"15295:10:29"},"nodeType":"YulIf","src":"15292:36:29"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15240:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"15243:1:29","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"15249:3:29","type":""}],"src":"15209:125:29"},{"body":{"nodeType":"YulBlock","src":"15513:177:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15530:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15541:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15523:6:29"},"nodeType":"YulFunctionCall","src":"15523:21:29"},"nodeType":"YulExpressionStatement","src":"15523:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15564:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15575:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15560:3:29"},"nodeType":"YulFunctionCall","src":"15560:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15580:2:29","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15553:6:29"},"nodeType":"YulFunctionCall","src":"15553:30:29"},"nodeType":"YulExpressionStatement","src":"15553:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15603:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15614:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15599:3:29"},"nodeType":"YulFunctionCall","src":"15599:18:29"},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","kind":"string","nodeType":"YulLiteral","src":"15619:29:29","type":"","value":"SafeMath: addition overflow"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15592:6:29"},"nodeType":"YulFunctionCall","src":"15592:57:29"},"nodeType":"YulExpressionStatement","src":"15592:57:29"},{"nodeType":"YulAssignment","src":"15658:26:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15670:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15681:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15666:3:29"},"nodeType":"YulFunctionCall","src":"15666:18:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15658:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15490:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15504:4:29","type":""}],"src":"15339:351:29"},{"body":{"nodeType":"YulBlock","src":"15869:227:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15886:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15897:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15879:6:29"},"nodeType":"YulFunctionCall","src":"15879:21:29"},"nodeType":"YulExpressionStatement","src":"15879:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15920:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15931:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15916:3:29"},"nodeType":"YulFunctionCall","src":"15916:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"15936:2:29","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15909:6:29"},"nodeType":"YulFunctionCall","src":"15909:30:29"},"nodeType":"YulExpressionStatement","src":"15909:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15959:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"15970:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15955:3:29"},"nodeType":"YulFunctionCall","src":"15955:18:29"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"15975:34:29","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15948:6:29"},"nodeType":"YulFunctionCall","src":"15948:62:29"},"nodeType":"YulExpressionStatement","src":"15948:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16030:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16041:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16026:3:29"},"nodeType":"YulFunctionCall","src":"16026:18:29"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"16046:7:29","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16019:6:29"},"nodeType":"YulFunctionCall","src":"16019:35:29"},"nodeType":"YulExpressionStatement","src":"16019:35:29"},{"nodeType":"YulAssignment","src":"16063:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16075:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16086:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16071:3:29"},"nodeType":"YulFunctionCall","src":"16071:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16063:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15846:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15860:4:29","type":""}],"src":"15695:401:29"},{"body":{"nodeType":"YulBlock","src":"16275:225:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16292:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16303:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16285:6:29"},"nodeType":"YulFunctionCall","src":"16285:21:29"},"nodeType":"YulExpressionStatement","src":"16285:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16326:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16337:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16322:3:29"},"nodeType":"YulFunctionCall","src":"16322:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16342:2:29","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16315:6:29"},"nodeType":"YulFunctionCall","src":"16315:30:29"},"nodeType":"YulExpressionStatement","src":"16315:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16365:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16376:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16361:3:29"},"nodeType":"YulFunctionCall","src":"16361:18:29"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"16381:34:29","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16354:6:29"},"nodeType":"YulFunctionCall","src":"16354:62:29"},"nodeType":"YulExpressionStatement","src":"16354:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16436:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16447:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16432:3:29"},"nodeType":"YulFunctionCall","src":"16432:18:29"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"16452:5:29","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16425:6:29"},"nodeType":"YulFunctionCall","src":"16425:33:29"},"nodeType":"YulExpressionStatement","src":"16425:33:29"},{"nodeType":"YulAssignment","src":"16467:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16479:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16490:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16475:3:29"},"nodeType":"YulFunctionCall","src":"16475:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16467:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16252:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16266:4:29","type":""}],"src":"16101:399:29"},{"body":{"nodeType":"YulBlock","src":"16554:79:29","statements":[{"nodeType":"YulAssignment","src":"16564:17:29","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"16576:1:29"},{"name":"y","nodeType":"YulIdentifier","src":"16579:1:29"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16572:3:29"},"nodeType":"YulFunctionCall","src":"16572:9:29"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"16564:4:29"}]},{"body":{"nodeType":"YulBlock","src":"16605:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"16607:16:29"},"nodeType":"YulFunctionCall","src":"16607:18:29"},"nodeType":"YulExpressionStatement","src":"16607:18:29"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"16596:4:29"},{"name":"x","nodeType":"YulIdentifier","src":"16602:1:29"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16593:2:29"},"nodeType":"YulFunctionCall","src":"16593:11:29"},"nodeType":"YulIf","src":"16590:37:29"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"16536:1:29","type":""},{"name":"y","nodeType":"YulTypedName","src":"16539:1:29","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"16545:4:29","type":""}],"src":"16505:128:29"},{"body":{"nodeType":"YulBlock","src":"16812:223:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16829:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16840:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16822:6:29"},"nodeType":"YulFunctionCall","src":"16822:21:29"},"nodeType":"YulExpressionStatement","src":"16822:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16863:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16874:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16859:3:29"},"nodeType":"YulFunctionCall","src":"16859:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"16879:2:29","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16852:6:29"},"nodeType":"YulFunctionCall","src":"16852:30:29"},"nodeType":"YulExpressionStatement","src":"16852:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16902:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16913:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16898:3:29"},"nodeType":"YulFunctionCall","src":"16898:18:29"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nodeType":"YulLiteral","src":"16918:34:29","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16891:6:29"},"nodeType":"YulFunctionCall","src":"16891:62:29"},"nodeType":"YulExpressionStatement","src":"16891:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16973:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"16984:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16969:3:29"},"nodeType":"YulFunctionCall","src":"16969:18:29"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"16989:3:29","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16962:6:29"},"nodeType":"YulFunctionCall","src":"16962:31:29"},"nodeType":"YulExpressionStatement","src":"16962:31:29"},{"nodeType":"YulAssignment","src":"17002:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17014:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"17025:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17010:3:29"},"nodeType":"YulFunctionCall","src":"17010:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17002:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16789:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16803:4:29","type":""}],"src":"16638:397:29"},{"body":{"nodeType":"YulBlock","src":"17121:464:29","statements":[{"body":{"nodeType":"YulBlock","src":"17154:425:29","statements":[{"nodeType":"YulVariableDeclaration","src":"17168:11:29","value":{"kind":"number","nodeType":"YulLiteral","src":"17178:1:29","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17172:2:29","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17199:2:29"},{"name":"array","nodeType":"YulIdentifier","src":"17203:5:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17192:6:29"},"nodeType":"YulFunctionCall","src":"17192:17:29"},"nodeType":"YulExpressionStatement","src":"17192:17:29"},{"nodeType":"YulVariableDeclaration","src":"17222:31:29","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17244:2:29"},{"kind":"number","nodeType":"YulLiteral","src":"17248:4:29","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"17234:9:29"},"nodeType":"YulFunctionCall","src":"17234:19:29"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"17226:4:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17266:57:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17289:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17299:1:29","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"17306:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"17318:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17302:3:29"},"nodeType":"YulFunctionCall","src":"17302:19:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17295:3:29"},"nodeType":"YulFunctionCall","src":"17295:27:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17285:3:29"},"nodeType":"YulFunctionCall","src":"17285:38:29"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"17270:11:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17360:23:29","statements":[{"nodeType":"YulAssignment","src":"17362:19:29","value":{"name":"data","nodeType":"YulIdentifier","src":"17377:4:29"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"17362:11:29"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"17342:10:29"},{"kind":"number","nodeType":"YulLiteral","src":"17354:4:29","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17339:2:29"},"nodeType":"YulFunctionCall","src":"17339:20:29"},"nodeType":"YulIf","src":"17336:47:29"},{"nodeType":"YulVariableDeclaration","src":"17396:41:29","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17410:4:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17420:1:29","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"17427:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"17432:2:29","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17423:3:29"},"nodeType":"YulFunctionCall","src":"17423:12:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17416:3:29"},"nodeType":"YulFunctionCall","src":"17416:20:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17406:3:29"},"nodeType":"YulFunctionCall","src":"17406:31:29"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"17400:2:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17450:24:29","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"17463:11:29"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"17454:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17548:21:29","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"17557:5:29"},{"name":"_1","nodeType":"YulIdentifier","src":"17564:2:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"17550:6:29"},"nodeType":"YulFunctionCall","src":"17550:17:29"},"nodeType":"YulExpressionStatement","src":"17550:17:29"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"17498:5:29"},{"name":"_2","nodeType":"YulIdentifier","src":"17505:2:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17495:2:29"},"nodeType":"YulFunctionCall","src":"17495:13:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17509:26:29","statements":[{"nodeType":"YulAssignment","src":"17511:22:29","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"17524:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"17531:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17520:3:29"},"nodeType":"YulFunctionCall","src":"17520:13:29"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"17511:5:29"}]}]},"pre":{"nodeType":"YulBlock","src":"17491:3:29","statements":[]},"src":"17487:82:29"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"17137:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"17142:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17134:2:29"},"nodeType":"YulFunctionCall","src":"17134:11:29"},"nodeType":"YulIf","src":"17131:448:29"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"17093:5:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"17100:3:29","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"17105:10:29","type":""}],"src":"17040:545:29"},{"body":{"nodeType":"YulBlock","src":"17675:81:29","statements":[{"nodeType":"YulAssignment","src":"17685:65:29","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17700:4:29"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17718:1:29","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"17721:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17714:3:29"},"nodeType":"YulFunctionCall","src":"17714:11:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17731:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17727:3:29"},"nodeType":"YulFunctionCall","src":"17727:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17710:3:29"},"nodeType":"YulFunctionCall","src":"17710:24:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"17706:3:29"},"nodeType":"YulFunctionCall","src":"17706:29:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17696:3:29"},"nodeType":"YulFunctionCall","src":"17696:40:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17742:1:29","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"17745:3:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17738:3:29"},"nodeType":"YulFunctionCall","src":"17738:11:29"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"17693:2:29"},"nodeType":"YulFunctionCall","src":"17693:57:29"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"17685:4:29"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"17652:4:29","type":""},{"name":"len","nodeType":"YulTypedName","src":"17658:3:29","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"17666:4:29","type":""}],"src":"17590:166:29"},{"body":{"nodeType":"YulBlock","src":"17857:1256:29","statements":[{"nodeType":"YulVariableDeclaration","src":"17867:24:29","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"17887:3:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17881:5:29"},"nodeType":"YulFunctionCall","src":"17881:10:29"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"17871:6:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"17934:22:29","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"17936:16:29"},"nodeType":"YulFunctionCall","src":"17936:18:29"},"nodeType":"YulExpressionStatement","src":"17936:18:29"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"17906:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"17914:18:29","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17903:2:29"},"nodeType":"YulFunctionCall","src":"17903:30:29"},"nodeType":"YulIf","src":"17900:56:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18009:4:29"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18047:4:29"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"18041:5:29"},"nodeType":"YulFunctionCall","src":"18041:11:29"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"18015:25:29"},"nodeType":"YulFunctionCall","src":"18015:38:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"18055:6:29"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"17965:43:29"},"nodeType":"YulFunctionCall","src":"17965:97:29"},"nodeType":"YulExpressionStatement","src":"17965:97:29"},{"nodeType":"YulVariableDeclaration","src":"18071:18:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18088:1:29","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"18075:9:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18098:23:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18117:4:29","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"18102:11:29","type":""}]},{"nodeType":"YulAssignment","src":"18130:24:29","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"18143:11:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18130:9:29"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"18200:656:29","statements":[{"nodeType":"YulVariableDeclaration","src":"18214:35:29","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"18233:6:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18245:2:29","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18241:3:29"},"nodeType":"YulFunctionCall","src":"18241:7:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18229:3:29"},"nodeType":"YulFunctionCall","src":"18229:20:29"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"18218:7:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18262:49:29","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18306:4:29"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"18276:29:29"},"nodeType":"YulFunctionCall","src":"18276:35:29"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"18266:6:29","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18324:10:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18333:1:29","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18328:1:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"18411:172:29","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18436:6:29"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18454:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18459:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18450:3:29"},"nodeType":"YulFunctionCall","src":"18450:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18444:5:29"},"nodeType":"YulFunctionCall","src":"18444:26:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18429:6:29"},"nodeType":"YulFunctionCall","src":"18429:42:29"},"nodeType":"YulExpressionStatement","src":"18429:42:29"},{"nodeType":"YulAssignment","src":"18488:24:29","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18502:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18510:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18498:3:29"},"nodeType":"YulFunctionCall","src":"18498:14:29"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18488:6:29"}]},{"nodeType":"YulAssignment","src":"18529:40:29","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18546:9:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"18557:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18542:3:29"},"nodeType":"YulFunctionCall","src":"18542:27:29"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"18529:9:29"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18358:1:29"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"18361:7:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18355:2:29"},"nodeType":"YulFunctionCall","src":"18355:14:29"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18370:28:29","statements":[{"nodeType":"YulAssignment","src":"18372:24:29","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18381:1:29"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"18384:11:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:29"},"nodeType":"YulFunctionCall","src":"18377:19:29"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18372:1:29"}]}]},"pre":{"nodeType":"YulBlock","src":"18351:3:29","statements":[]},"src":"18347:236:29"},{"body":{"nodeType":"YulBlock","src":"18631:166:29","statements":[{"nodeType":"YulVariableDeclaration","src":"18649:43:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18676:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18681:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18672:3:29"},"nodeType":"YulFunctionCall","src":"18672:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18666:5:29"},"nodeType":"YulFunctionCall","src":"18666:26:29"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"18653:9:29","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"18716:6:29"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"18728:9:29"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18755:1:29","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"18758:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18751:3:29"},"nodeType":"YulFunctionCall","src":"18751:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"18767:3:29","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18747:3:29"},"nodeType":"YulFunctionCall","src":"18747:24:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18777:1:29","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18773:3:29"},"nodeType":"YulFunctionCall","src":"18773:6:29"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"18743:3:29"},"nodeType":"YulFunctionCall","src":"18743:37:29"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18739:3:29"},"nodeType":"YulFunctionCall","src":"18739:42:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18724:3:29"},"nodeType":"YulFunctionCall","src":"18724:58:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18709:6:29"},"nodeType":"YulFunctionCall","src":"18709:74:29"},"nodeType":"YulExpressionStatement","src":"18709:74:29"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"18602:7:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"18611:6:29"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18599:2:29"},"nodeType":"YulFunctionCall","src":"18599:19:29"},"nodeType":"YulIf","src":"18596:201:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"18817:4:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18831:1:29","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"18834:6:29"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18827:3:29"},"nodeType":"YulFunctionCall","src":"18827:14:29"},{"kind":"number","nodeType":"YulLiteral","src":"18843:1:29","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18823:3:29"},"nodeType":"YulFunctionCall","src":"18823:22:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"18810:6:29"},"nodeType":"YulFunctionCall","src":"18810:36:29"},"nodeType":"YulExpressionStatement","src":"18810:36:29"}]},"nodeType":"YulCase","src":"18193:663:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18198:1:29","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"18873:234:29","statements":[{"nodeType":"YulVariableDeclaration","src":"18887:14:29","value":{"kind":"number","nodeType":"YulLiteral","src":"18900:1:29","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"18891:5:29","type":""}]},{"body":{"nodeType":"YulBlock","src":"18936:67:29","statements":[{"nodeType":"YulAssignment","src":"18954:35:29","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18973:3:29"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"18978:9:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18969:3:29"},"nodeType":"YulFunctionCall","src":"18969:19:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18963:5:29"},"nodeType":"YulFunctionCall","src":"18963:26:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"18954:5:29"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"18917:6:29"},"nodeType":"YulIf","src":"18914:89:29"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"19023:4:29"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19082:5:29"},{"name":"newLen","nodeType":"YulIdentifier","src":"19089:6:29"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"19029:52:29"},"nodeType":"YulFunctionCall","src":"19029:67:29"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"19016:6:29"},"nodeType":"YulFunctionCall","src":"19016:81:29"},"nodeType":"YulExpressionStatement","src":"19016:81:29"}]},"nodeType":"YulCase","src":"18865:242:29","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"18173:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"18181:2:29","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18170:2:29"},"nodeType":"YulFunctionCall","src":"18170:14:29"},"nodeType":"YulSwitch","src":"18163:944:29"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"17842:4:29","type":""},{"name":"src","nodeType":"YulTypedName","src":"17848:3:29","type":""}],"src":"17761:1352:29"},{"body":{"nodeType":"YulBlock","src":"19331:276:29","statements":[{"nodeType":"YulAssignment","src":"19341:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19353:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19364:3:29","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19349:3:29"},"nodeType":"YulFunctionCall","src":"19349:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19341:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19384:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"19395:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19377:6:29"},"nodeType":"YulFunctionCall","src":"19377:25:29"},"nodeType":"YulExpressionStatement","src":"19377:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19422:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19433:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19418:3:29"},"nodeType":"YulFunctionCall","src":"19418:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"19438:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19411:6:29"},"nodeType":"YulFunctionCall","src":"19411:34:29"},"nodeType":"YulExpressionStatement","src":"19411:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19465:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19476:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19461:3:29"},"nodeType":"YulFunctionCall","src":"19461:18:29"},{"name":"value2","nodeType":"YulIdentifier","src":"19481:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19454:6:29"},"nodeType":"YulFunctionCall","src":"19454:34:29"},"nodeType":"YulExpressionStatement","src":"19454:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19508:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19519:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19504:3:29"},"nodeType":"YulFunctionCall","src":"19504:18:29"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"19528:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19544:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19549:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19540:3:29"},"nodeType":"YulFunctionCall","src":"19540:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"19553:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19536:3:29"},"nodeType":"YulFunctionCall","src":"19536:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19524:3:29"},"nodeType":"YulFunctionCall","src":"19524:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19497:6:29"},"nodeType":"YulFunctionCall","src":"19497:60:29"},"nodeType":"YulExpressionStatement","src":"19497:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19577:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"19588:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19573:3:29"},"nodeType":"YulFunctionCall","src":"19573:19:29"},{"name":"value4","nodeType":"YulIdentifier","src":"19594:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19566:6:29"},"nodeType":"YulFunctionCall","src":"19566:35:29"},"nodeType":"YulExpressionStatement","src":"19566:35:29"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19268:9:29","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19279:6:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19287:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19295:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19303:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19311:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19322:4:29","type":""}],"src":"19118:489:29"},{"body":{"nodeType":"YulBlock","src":"19852:238:29","statements":[{"nodeType":"YulVariableDeclaration","src":"19862:27:29","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19882:6:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19876:5:29"},"nodeType":"YulFunctionCall","src":"19876:13:29"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19866:6:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19937:6:29"},{"kind":"number","nodeType":"YulLiteral","src":"19945:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19933:3:29"},"nodeType":"YulFunctionCall","src":"19933:17:29"},{"name":"pos","nodeType":"YulIdentifier","src":"19952:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"19957:6:29"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19898:34:29"},"nodeType":"YulFunctionCall","src":"19898:66:29"},"nodeType":"YulExpressionStatement","src":"19898:66:29"},{"nodeType":"YulVariableDeclaration","src":"19973:29:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19990:3:29"},{"name":"length","nodeType":"YulIdentifier","src":"19995:6:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19986:3:29"},"nodeType":"YulFunctionCall","src":"19986:16:29"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"19977:5:29","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"20018:5:29"},{"hexValue":"3a20494e53554646494349454e545f5045524d495353494f4e53","kind":"string","nodeType":"YulLiteral","src":"20025:28:29","type":"","value":": INSUFFICIENT_PERMISSIONS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20011:6:29"},"nodeType":"YulFunctionCall","src":"20011:43:29"},"nodeType":"YulExpressionStatement","src":"20011:43:29"},{"nodeType":"YulAssignment","src":"20063:21:29","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"20074:5:29"},{"kind":"number","nodeType":"YulLiteral","src":"20081:2:29","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20070:3:29"},"nodeType":"YulFunctionCall","src":"20070:14:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20063:3:29"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19828:3:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19833:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19844:3:29","type":""}],"src":"19612:478:29"},{"body":{"nodeType":"YulBlock","src":"20280:232:29","statements":[{"nodeType":"YulAssignment","src":"20290:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20302:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20313:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20298:3:29"},"nodeType":"YulFunctionCall","src":"20298:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20290:4:29"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20333:9:29"},{"name":"value0","nodeType":"YulIdentifier","src":"20344:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20326:6:29"},"nodeType":"YulFunctionCall","src":"20326:25:29"},"nodeType":"YulExpressionStatement","src":"20326:25:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20371:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20382:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20367:3:29"},"nodeType":"YulFunctionCall","src":"20367:18:29"},{"name":"value1","nodeType":"YulIdentifier","src":"20387:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20360:6:29"},"nodeType":"YulFunctionCall","src":"20360:34:29"},"nodeType":"YulExpressionStatement","src":"20360:34:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20414:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20425:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20410:3:29"},"nodeType":"YulFunctionCall","src":"20410:18:29"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"20434:6:29"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20450:3:29","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20455:1:29","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20446:3:29"},"nodeType":"YulFunctionCall","src":"20446:11:29"},{"kind":"number","nodeType":"YulLiteral","src":"20459:1:29","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20442:3:29"},"nodeType":"YulFunctionCall","src":"20442:19:29"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20430:3:29"},"nodeType":"YulFunctionCall","src":"20430:32:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20403:6:29"},"nodeType":"YulFunctionCall","src":"20403:60:29"},"nodeType":"YulExpressionStatement","src":"20403:60:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20483:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"20494:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20479:3:29"},"nodeType":"YulFunctionCall","src":"20479:18:29"},{"name":"value3","nodeType":"YulIdentifier","src":"20499:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20472:6:29"},"nodeType":"YulFunctionCall","src":"20472:34:29"},"nodeType":"YulExpressionStatement","src":"20472:34:29"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20225:9:29","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20236:6:29","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20244:6:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20252:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20260:6:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20271:4:29","type":""}],"src":"20095:417:29"},{"body":{"nodeType":"YulBlock","src":"20765:144:29","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20782:3:29"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20791:3:29","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"20796:4:29","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20787:3:29"},"nodeType":"YulFunctionCall","src":"20787:14:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20775:6:29"},"nodeType":"YulFunctionCall","src":"20775:27:29"},"nodeType":"YulExpressionStatement","src":"20775:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20822:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20827:1:29","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20818:3:29"},"nodeType":"YulFunctionCall","src":"20818:11:29"},{"name":"value0","nodeType":"YulIdentifier","src":"20831:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20811:6:29"},"nodeType":"YulFunctionCall","src":"20811:27:29"},"nodeType":"YulExpressionStatement","src":"20811:27:29"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20858:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20863:2:29","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20854:3:29"},"nodeType":"YulFunctionCall","src":"20854:12:29"},{"name":"value1","nodeType":"YulIdentifier","src":"20868:6:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20847:6:29"},"nodeType":"YulFunctionCall","src":"20847:28:29"},"nodeType":"YulExpressionStatement","src":"20847:28:29"},{"nodeType":"YulAssignment","src":"20884:19:29","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20895:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"20900:2:29","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20891:3:29"},"nodeType":"YulFunctionCall","src":"20891:12:29"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20884:3:29"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"20733:3:29","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20738:6:29","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20746:6:29","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20757:3:29","type":""}],"src":"20517:392:29"},{"body":{"nodeType":"YulBlock","src":"21088:224:29","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21105:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21116:2:29","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21098:6:29"},"nodeType":"YulFunctionCall","src":"21098:21:29"},"nodeType":"YulExpressionStatement","src":"21098:21:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21139:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21150:2:29","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21135:3:29"},"nodeType":"YulFunctionCall","src":"21135:18:29"},{"kind":"number","nodeType":"YulLiteral","src":"21155:2:29","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21128:6:29"},"nodeType":"YulFunctionCall","src":"21128:30:29"},"nodeType":"YulExpressionStatement","src":"21128:30:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21178:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21189:2:29","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21174:3:29"},"nodeType":"YulFunctionCall","src":"21174:18:29"},{"hexValue":"456e756d657261626c655365743a20696e646578206f7574206f6620626f756e","kind":"string","nodeType":"YulLiteral","src":"21194:34:29","type":"","value":"EnumerableSet: index out of boun"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21167:6:29"},"nodeType":"YulFunctionCall","src":"21167:62:29"},"nodeType":"YulExpressionStatement","src":"21167:62:29"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21249:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21260:2:29","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21245:3:29"},"nodeType":"YulFunctionCall","src":"21245:18:29"},{"hexValue":"6473","kind":"string","nodeType":"YulLiteral","src":"21265:4:29","type":"","value":"ds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21238:6:29"},"nodeType":"YulFunctionCall","src":"21238:32:29"},"nodeType":"YulExpressionStatement","src":"21238:32:29"},{"nodeType":"YulAssignment","src":"21279:27:29","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21291:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"21302:3:29","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21287:3:29"},"nodeType":"YulFunctionCall","src":"21287:19:29"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21279:4:29"}]}]},"name":"abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21065:9:29","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21079:4:29","type":""}],"src":"20914:398:29"},{"body":{"nodeType":"YulBlock","src":"21349:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21366:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21373:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"21378:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21369:3:29"},"nodeType":"YulFunctionCall","src":"21369:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21359:6:29"},"nodeType":"YulFunctionCall","src":"21359:31:29"},"nodeType":"YulExpressionStatement","src":"21359:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21406:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21409:4:29","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21399:6:29"},"nodeType":"YulFunctionCall","src":"21399:15:29"},"nodeType":"YulExpressionStatement","src":"21399:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21430:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21433:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21423:6:29"},"nodeType":"YulFunctionCall","src":"21423:15:29"},"nodeType":"YulExpressionStatement","src":"21423:15:29"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"21317:127:29"},{"body":{"nodeType":"YulBlock","src":"21481:95:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21498:1:29","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21505:3:29","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"21510:10:29","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"21501:3:29"},"nodeType":"YulFunctionCall","src":"21501:20:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21491:6:29"},"nodeType":"YulFunctionCall","src":"21491:31:29"},"nodeType":"YulExpressionStatement","src":"21491:31:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21538:1:29","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21541:4:29","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21531:6:29"},"nodeType":"YulFunctionCall","src":"21531:15:29"},"nodeType":"YulExpressionStatement","src":"21531:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21562:1:29","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21565:4:29","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21555:6:29"},"nodeType":"YulFunctionCall","src":"21555:15:29"},"nodeType":"YulExpressionStatement","src":"21555:15:29"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"21449:127:29"}]},"contents":"{\n { }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_uint8(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_bytes32t_bytes32t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := abi_decode_uint8(add(headStart, 128))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_string_calldata_ptrt_string_calldata_ptrt_uint8t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n value4 := abi_decode_uint8(add(headStart, 64))\n value5 := abi_decode_address(add(headStart, 96))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_a1a5cd4826a8c5c8495a3bcd7f31593c1559fab8207afc024ed2a3f3fa2bbbda__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Signer and signature do not matc\")\n mstore(add(headStart, 96), \"h\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_address_t_address_payable_t_bytes_memory_ptr__to_t_address_t_address_payable_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_string(value2, add(headStart, 96))\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(end_1, 20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_252c5ced876035ca494247886f306ca28e657c00a8dddfa582879b480dd9feb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Function call not successful\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0ba7116025f1ef6b158a2bd2238e617f30e17c9e456917d901086ca4f8ad2811__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to grant\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function abi_encode_tuple_t_string_storage__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n mstore(add(headStart, _1), length)\n let _2 := 64\n let _3 := 1\n switch and(slotValue, _3)\n case 0 {\n mstore(add(headStart, _2), and(slotValue, not(255)))\n ret := add(add(headStart, shl(5, iszero(iszero(length)))), _2)\n }\n case 1 {\n mstore(0, value0)\n let dataPos := keccak256(0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), _2), sload(dataPos))\n dataPos := add(dataPos, _3)\n }\n ret := add(add(headStart, i), _2)\n }\n tail := ret\n }\n function abi_encode_tuple_t_stringliteral_64344570eab7406ca49d34d38bf2b2496dfda914405390c5057c8b0aabf798a3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"AccessControl: sender must be an\")\n mstore(add(headStart, 96), \" admin to revoke\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c836bf9f3947c9876de8c644d798f6140c852800d860d9e205ff2891ae4a0247__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"already inited\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_stringliteral_1627c55b822ab07f561918fe456c74b6174e87dd494f39b9fa7b3eab328bce93_t_string_calldata_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"Child\")\n calldatacopy(add(pos, 5), value0, value1)\n let _1 := add(add(pos, value1), 5)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_677c3aff34a7c44a5c4470b26f7bc0d31cbb2b3473b145bc518ea22bfc186273__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"NativeMetaTransaction: INVALID_S\")\n mstore(add(headStart, 96), \"IGNER\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n mstore(add(headStart, 96), \"s\")\n tail := add(headStart, 128)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_08f34defa716a1c7b0586c8cabbda16251d4ba209505eff6a916dbc6656404a7__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, \": INSUFFICIENT_PERMISSIONS\")\n end := add(end_1, 26)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n function abi_encode_tuple_t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"EnumerableSet: index out of boun\")\n mstore(add(headStart, 96), \"ds\")\n tail := add(headStart, 128)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n}","id":29,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1F9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E6EC247 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA15C873 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xCF2C52CB EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x63A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x65A JUMPI DUP1 PUSH4 0xDE7EA79D EQ PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x571 JUMPI DUP1 PUSH4 0xA3B0B5A3 EQ PUSH2 0x586 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8ACFCAF7 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x8ACFCAF7 EQ PUSH2 0x4EF JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x504 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x55C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4E6EC247 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x5353A2D8 EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0x626381A0 EQ PUSH2 0x4A4 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x190 JUMPI DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x15F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x444 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0x2D0335AB EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xDD7531A GT PUSH2 0x1CC JUMPI DUP1 PUSH4 0xDD7531A EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0xF7E5970 EQ PUSH2 0x2C6 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x20379EE5 EQ PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0xB54817C EQ PUSH2 0x259 JUMPI DUP1 PUSH4 0xC53C51C EQ PUSH2 0x286 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x89 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x213 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C02 JUMP JUMPDEST PUSH2 0x770 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE8 JUMP JUMPDEST PUSH2 0x95F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x362 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x383 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x392 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x9E6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0x9FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x304 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x43F CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xA8A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x450 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xB62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x49F CALLDATASIZE PUSH1 0x4 PUSH2 0x1DCD JUMP JUMPDEST PUSH2 0xC41 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x89 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x4D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x524 PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0F JUMP JUMPDEST PUSH2 0xD0C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x220 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xD2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x568 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x213 PUSH2 0xD43 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xD52 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x249 PUSH2 0x5F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xDBA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x626 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x635 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E31 JUMP JUMPDEST PUSH2 0xDE5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x655 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D58 JUMP JUMPDEST PUSH2 0xE54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x666 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x304 PUSH2 0x675 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3CD PUSH2 0x6BB CALLDATASIZE PUSH1 0x4 PUSH2 0x1EAE JUMP JUMPDEST PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E 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 0x6FB SWAP1 PUSH2 0x1F3E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x748 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x71D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x748 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x72B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0x75F PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 DUP2 ADD DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE SWAP1 DUP6 SWAP1 KECCAK256 SLOAD DUP5 MSTORE DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x7AE DUP8 DUP3 DUP8 DUP8 DUP8 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E657220616E64207369676E617475726520646F206E6F74206D617463 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x82D SWAP1 PUSH1 0x1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE MLOAD PUSH32 0x5845892132946850460BFF5A0083F71031BC5BF9AADCD40F1DE79423EAC9B10B SWAP1 PUSH2 0x87D SWAP1 DUP10 SWAP1 CALLER SWAP1 DUP11 SWAP1 PUSH2 0x1F78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8A5 SWAP3 SWAP2 SWAP1 PUSH2 0x1FA4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x8BF SWAP2 PUSH2 0x1FDB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x8FC JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x901 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x953 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756E6374696F6E2063616C6C206E6F74207375636365737366756C00000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x96C DUP5 DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH2 0x9DC DUP5 PUSH2 0x978 PUSH2 0x107B JUMP JUMPDEST PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2335 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x9B6 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH2 0x108A JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x9F7 PUSH2 0x9F1 PUSH2 0x107B JUMP JUMPDEST DUP3 PUSH2 0x14BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xA18 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x818591B5A5B881D1BC819DC985B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x15BF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xA92 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xA86 DUP3 DUP3 PUSH2 0x1628 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xB21 PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0xB32 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP13 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xBB8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0xBC5 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0xBEB SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE SWAP3 MLOAD DUP5 DUP2 MSTORE SWAP2 SWAP3 SWAP1 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC4F DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xC6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH2 0xCAF DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD07 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x169D SWAP1 POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1724 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xD24 SWAP1 DUP4 PUSH2 0x1730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x6CF SWAP1 PUSH2 0x1F3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xD5F PUSH2 0x107B JUMP JUMPDEST DUP5 PUSH2 0x9D7 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x235D PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0xD89 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 SWAP2 DUP14 AND DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xDC7 PUSH2 0x107B JUMP JUMPDEST DUP5 DUP5 PUSH2 0x12FE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76A SWAP1 PUSH2 0x1752 JUMP JUMPDEST PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 PUSH2 0xE12 DUP2 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xE32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xE41 DUP4 DUP6 ADD DUP6 PUSH2 0x1D24 JUMP JUMPDEST SWAP1 POP PUSH2 0xE4D DUP6 DUP3 PUSH2 0xB62 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH2 0xE72 SWAP1 PUSH2 0x557 PUSH2 0x107B JUMP JUMPDEST PUSH2 0xB0A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2073656E646572206D75737420626520616E PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x2061646D696E20746F207265766F6B65 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xF1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0xF5A 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1691 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF99 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x175C SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF DUP5 AND OR SWAP1 SSTORE PUSH2 0xFD2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFBE SWAP3 SWAP2 SWAP1 PUSH2 0x2082 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1768 JUMP JUMPDEST PUSH2 0xFE4 PUSH1 0x0 PUSH2 0xFDF PUSH2 0x107B JUMP JUMPDEST PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x100E PUSH32 0x8F4F2DA22E8AC8F11E15F9FC141CDDBB5DEEA8800186560ABB6E68C5496619A9 DUP3 PUSH2 0xA7C JUMP JUMPDEST PUSH2 0x1066 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 PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x1796 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1085 PUSH2 0x17F5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x10EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x114D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1215 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E61746976654D6574615472616E73616374696F6E3A20494E56414C49445F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x24A3A722A9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1228 PUSH2 0x1223 DUP8 PUSH2 0x1851 JUMP JUMPDEST PUSH2 0x18CE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 DUP4 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xFF DUP6 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1276 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD SUB MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12AC DUP4 DUP6 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xD24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x13C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1401 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x230F PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x1430 SWAP1 DUP3 PUSH2 0x129F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE MLOAD DUP5 DUP2 MSTORE SWAP1 SWAP3 SWAP2 DUP7 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH2 0x11A2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x14A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x1B82 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x14B2 DUP5 DUP7 PUSH2 0x20CC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x151B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1558 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225B PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH1 0x2 SLOAD PUSH2 0x157E SWAP1 DUP3 PUSH2 0x18FE JUMP JUMPDEST PUSH1 0x2 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH2 0xC35 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x15D7 SWAP1 DUP3 PUSH2 0x1940 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x15E4 PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1640 SWAP1 DUP3 PUSH2 0x1955 JUMP JUMPDEST ISZERO PUSH2 0xA86 JUMPI PUSH2 0x164D PUSH2 0x107B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x3 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4F DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x22C0 PUSH1 0x4F SWAP2 CODECOPY DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 ADDRESS PUSH2 0x16D5 CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x9 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH2 0x196A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76A DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA86 DUP3 DUP3 PUSH2 0x212D JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1779 SWAP2 SWAP1 PUSH2 0x21ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x7 SWAP1 DUP2 PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x212D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x17DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x185B1C9958591E481A5B9A5D1959 PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x800 JUMP JUMPDEST PUSH2 0x17E4 DUP3 DUP3 PUSH2 0x169D JUMP JUMPDEST POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 ADDRESS CALLER SUB PUSH2 0x184B JUMPI PUSH1 0x0 DUP1 CALLDATASIZE DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP CALLDATASIZE ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 POP PUSH2 0x184E SWAP1 POP JUMP JUMPDEST POP CALLER JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x43 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x227D PUSH1 0x43 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 MLOAD SWAP1 DUP7 ADD KECCAK256 SWAP1 MLOAD PUSH2 0x18B1 SWAP6 ADD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18D9 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x62 ADD PUSH2 0x18B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1481 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x19F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD24 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1A3F JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP3 LT PUSH2 0x19C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x456E756D657261626C655365743A20696E646578206F7574206F6620626F756E PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x6473 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x800 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x19DD JUMPI PUSH2 0x19DD PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1A37 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x76A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1B28 JUMPI PUSH1 0x0 PUSH2 0x1A63 PUSH1 0x1 DUP4 PUSH2 0x20CC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1A77 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x20CC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1A90 JUMPI PUSH2 0x1A90 PUSH2 0x222E JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1AB3 JUMPI PUSH2 0x1AB3 PUSH2 0x222E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SSTORE PUSH2 0x1ACA DUP4 PUSH1 0x1 PUSH2 0x20B9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 DUP10 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE DUP7 SLOAD DUP8 SWAP1 DUP1 PUSH2 0x1AEC JUMPI PUSH2 0x1AEC PUSH2 0x2244 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP7 PUSH1 0x1 ADD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x76A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B4D JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B35 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1B6E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xD24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BCD DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1BAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C23 DUP7 PUSH2 0x1B95 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1C40 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1C66 JUMPI PUSH2 0x1C66 PUSH2 0x1BDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1C8E JUMPI PUSH2 0x1C8E PUSH2 0x1BDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP12 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1CA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP9 POP POP POP POP POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x1CDC PUSH1 0x80 DUP8 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH2 0x1D14 PUSH1 0x20 DUP6 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD24 DUP3 PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1D96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1DC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E03 DUP6 DUP3 DUP7 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1E46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E4F DUP5 PUSH2 0x1B95 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E77 DUP7 DUP3 DUP8 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EA0 DUP4 PUSH2 0x1B95 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D7B PUSH1 0x20 DUP5 ADD PUSH2 0x1B95 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1EC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1EDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EEB DUP11 DUP4 DUP12 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1F04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F11 DUP10 DUP3 DUP11 ADD PUSH2 0x1D84 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH2 0x1F24 SWAP1 POP PUSH1 0x40 DUP9 ADD PUSH2 0x1BF1 JUMP JUMPDEST SWAP2 POP PUSH2 0x1F32 PUSH1 0x60 DUP9 ADD PUSH2 0x1B95 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1F52 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1F72 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x14B2 SWAP1 DUP4 ADD DUP5 PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1FB6 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH1 0x60 SWAP4 SWAP1 SWAP4 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x14 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1FED DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE PUSH1 0x0 DUP5 SLOAD PUSH2 0x200B DUP2 PUSH2 0x1F3E JUMP JUMPDEST DUP1 DUP5 DUP8 ADD MSTORE PUSH1 0x40 PUSH1 0x1 DUP1 DUP5 AND PUSH1 0x0 DUP2 EQ PUSH2 0x202C JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2046 JUMPI PUSH2 0x2074 JUMP JUMPDEST PUSH1 0xFF NOT DUP6 AND DUP10 DUP5 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD DUP4 ADD SWAP6 POP PUSH2 0x2074 JUMP JUMPDEST DUP10 PUSH1 0x0 MSTORE DUP7 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x206C JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP9 ADD PUSH2 0x2051 JUMP JUMPDEST DUP11 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x10DA1A5B19 PUSH1 0xDA SHL DUP2 MSTORE DUP2 DUP4 PUSH1 0x5 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 ADD PUSH1 0x5 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x20A3 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD07 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x2106 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2125 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2112 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2147 JUMPI PUSH2 0x2147 PUSH2 0x1BDB JUMP JUMPDEST PUSH2 0x215B DUP2 PUSH2 0x2155 DUP5 SLOAD PUSH2 0x1F3E JUMP JUMPDEST DUP5 PUSH2 0x20DF JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2190 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2178 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x2125 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x21BF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x21A0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x21DD JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x21FF DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1B32 JUMP JUMPDEST PUSH32 0x3A20494E53554646494349454E545F5045524D495353494F4E53000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x1A ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH3 0x75726E KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E63654D657461 SLOAD PUSH19 0x616E73616374696F6E2875696E74323536206E PUSH16 0x6E63652C616464726573732066726F6D 0x2C PUSH3 0x797465 PUSH20 0x2066756E6374696F6E5369676E61747572652945 0x49 POP CALLDATACOPY BALANCE ORIGIN PREVRANDAO PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C616464726573 PUSH20 0x20766572696679696E67436F6E74726163742C62 PUSH26 0x74657333322073616C742945524332303A207472616E73666572 KECCAK256 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 0xD0 0xE4 PUSH21 0xE7C0E5222B46307228C2AC6D269F0BBEBDF353FD3F ADD CALLVALUE MUL STOP PUSH20 0xF9577F64736F6C63430008140033000000000000 ","sourceMap":"48416:2287:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19508:166;;;;;;;;;;-1:-1:-1;19508:166:27;;;;;:::i;:::-;;:::i;:::-;;;1372:14:29;;1365:22;1347:41;;1335:2;1320:18;19508:166:27;1207:187:29;47515:52:27;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47515:52:27;;;;;45105:1117;;;;;;:::i;:::-;;:::i;47407:51::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47407:51:27;;;;;47310:43;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;47310:43:27;;;;;18515:98;;;;;;;;;;-1:-1:-1;18594:12:27;;18515:98;;;3269:25:29;;;3257:2;3242:18;18515:98:27;3123:177:29;43354:99:27;;;;;;;;;;-1:-1:-1;43431:15:27;;43354:99;;20134:330;;;;;;;;;;-1:-1:-1;20134:330:27;;;;;:::i;:::-;;:::i;38118:112::-;;;;;;;;;;-1:-1:-1;38118:112:27;;;;;:::i;:::-;38175:7;38201:12;;;:6;:12;;;;;:22;;;;38118:112;46630:105;;;;;;;;;;-1:-1:-1;46630:105:27;;;;;:::i;:::-;-1:-1:-1;;;;;46716:12:27;46683:13;46716:12;;;:6;:12;;;;;;;46630:105;50614:87;;;;;;;;;;-1:-1:-1;50614:87:27;;;;;:::i;:::-;;:::i;:::-;;38480:223;;;;;;;;;;-1:-1:-1;38480:223:27;;;;;:::i;:::-;;:::i;18281:81::-;;;;;;;;;;-1:-1:-1;18346:9:27;;18281:81;;18346:9;;;;4782:36:29;;4770:2;4755:18;18281:81:27;4640:184:29;43459:155:27;;;;;;;;;;-1:-1:-1;43570:9:27;43459:155;;39654:205;;;;;;;;;;-1:-1:-1;39654:205:27;;;;;:::i;:::-;;:::i;20859:215::-;;;;;;;;;;-1:-1:-1;20859:215:27;;;;;:::i;:::-;;:::i;23115:369::-;;;;;;;;;;-1:-1:-1;23115:369:27;;;;;:::i;:::-;;:::i;49612:160::-;;;;;;;;;;-1:-1:-1;49612:160:27;;;;;:::i;:::-;;:::i;47465:44::-;;;;;;;;;;;;47506:3;47465:44;;18671:117;;;;;;;;;;-1:-1:-1;18671:117:27;;;;;:::i;:::-;-1:-1:-1;;;;;18763:18:27;18737:7;18763:18;;;;;;;;;;;;18671:117;47360:41;;;;;;;;;;;;47400:1;47360:41;;37801:136;;;;;;;;;;-1:-1:-1;37801:136:27;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;6015:32:29;;;5997:51;;5985:2;5970:18;37801:136:27;5851:203:29;36798:137:27;;;;;;;;;;-1:-1:-1;36798:137:27;;;;;:::i;:::-;;:::i;17480:85::-;;;;;;;;;;;;;:::i;35575:49::-;;;;;;;;;;-1:-1:-1;35575:49:27;35620:4;35575:49;;48562:68;;;;;;;;;;;;48603:27;48562:68;;21561:279;;;;;;;;;;-1:-1:-1;21561:279:27;;;;;:::i;:::-;;:::i;18991:172::-;;;;;;;;;;-1:-1:-1;18991:172:27;;;;;:::i;:::-;;:::i;37103:125::-;;;;;;;;;;-1:-1:-1;37103:125:27;;;;;:::i;:::-;;:::i;50143:223::-;;;;;;;;;;-1:-1:-1;50143:223:27;;;;;:::i;:::-;;:::i;38937:226::-;;;;;;;;;;-1:-1:-1;38937:226:27;;;;;:::i;:::-;;:::i;19221:149::-;;;;;;;;;;-1:-1:-1;19221:149:27;;;;;:::i;:::-;-1:-1:-1;;;;;19336:18:27;;;19310:7;19336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19221:149;48827:497;;;;;;;;;;-1:-1:-1;48827:497:27;;;;;:::i;:::-;;:::i;17201:81::-;17238:13;17270:5;17263:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:81;:::o;19508:166::-;19591:4;19607:39;19616:12;:10;:12::i;:::-;19630:7;19639:6;19607:8;:39::i;:::-;-1:-1:-1;19663:4:27;19508:166;;;;;:::o;45105:1117::-;45356:148;;;45300:12;45356:148;;;;;-1:-1:-1;;;;;45393:19:27;;45324:29;45393:19;;;:6;:19;;;;;;;;;45356:148;;;;;;;;;;;45536:45;45400:11;45356:148;45564:4;45570;45576;45536:6;:45::i;:::-;45515:125;;;;-1:-1:-1;;;45515:125:27;;8271:2:29;45515:125:27;;;8253:21:29;8310:2;8290:18;;;8283:30;8349:34;8329:18;;;8322:62;-1:-1:-1;;;8400:18:29;;;8393:31;8441:19;;45515:125:27;;;;;;;;;-1:-1:-1;;;;;45726:19:27;;;;;;:6;:19;;;;;;:26;;45750:1;45726:23;:26::i;:::-;-1:-1:-1;;;;;45704:19:27;;;;;;:6;:19;;;;;;;:48;;;;45768:122;;;;;45711:11;;45838:10;;45863:17;;45768:122;:::i;:::-;;;;;;;;45998:12;46012:23;46047:4;-1:-1:-1;;;;;46039:18:27;46088:17;46107:11;46071:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;46071:48:27;;;;;;;;;;46039:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45997:132;;;;46147:7;46139:48;;;;-1:-1:-1;;;46139:48:27;;9835:2:29;46139:48:27;;;9817:21:29;9874:2;9854:18;;;9847:30;9913;9893:18;;;9886:58;9961:18;;46139:48:27;9633:352:29;46139:48:27;46205:10;45105:1117;-1:-1:-1;;;;;;;;45105:1117:27:o;20134:330::-;20240:4;20256:36;20266:6;20274:9;20285:6;20256:9;:36::i;:::-;20302:134;20311:6;20319:12;:10;:12::i;:::-;20333:102;20371:6;20333:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20333:19:27;;;;;;:11;:19;;;;;;20353:12;:10;:12::i;:::-;-1:-1:-1;;;;;20333:33:27;;;;;;;;;;;;-1:-1:-1;20333:33:27;;;:102;:37;:102::i;:::-;20302:8;:134::i;:::-;-1:-1:-1;20453:4:27;20134:330;;;;;:::o;50614:87::-;50667:27;50673:12;:10;:12::i;:::-;50687:6;50667:5;:27::i;:::-;50614:87;:::o;38480:223::-;38571:12;;;;:6;:12;;;;;:22;;;38563:45;;38595:12;:10;:12::i;38563:45::-;38555:105;;;;-1:-1:-1;;;38555:105:27;;10192:2:29;38555:105:27;;;10174:21:29;10231:2;10211:18;;;10204:30;10270:34;10250:18;;;10243:62;-1:-1:-1;;;10321:18:29;;;10314:45;10376:19;;38555:105:27;9990:411:29;38555:105:27;38671:25;38682:4;38688:7;38671:10;:25::i;:::-;38480:223;;:::o;39654:205::-;39751:12;:10;:12::i;:::-;-1:-1:-1;;;;;39740:23:27;:7;-1:-1:-1;;;;;39740:23:27;;39732:83;;;;-1:-1:-1;;;39732:83:27;;10608:2:29;39732:83:27;;;10590:21:29;10647:2;10627:18;;;10620:30;10686:34;10666:18;;;10659:62;-1:-1:-1;;;10737:18:29;;;10730:45;10792:19;;39732:83:27;10406:411:29;39732:83:27;39826:26;39838:4;39844:7;39826:11;:26::i;20859:215::-;20947:4;20963:83;20972:12;:10;:12::i;:::-;20986:7;20995:50;21034:10;20995:11;:25;21007:12;:10;:12::i;:::-;-1:-1:-1;;;;;20995:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;20995:25:27;;;:34;;;;;;;;;;;:38;:50::i;23115:369::-;-1:-1:-1;;;;;23197:21:27;;23189:65;;;;-1:-1:-1;;;23189:65:27;;11024:2:29;23189:65:27;;;11006:21:29;11063:2;11043:18;;;11036:30;11102:33;11082:18;;;11075:61;11153:18;;23189:65:27;10822:355:29;23189:65:27;23340:12;;:24;;23357:6;23340:16;:24::i;:::-;23325:12;:39;-1:-1:-1;;;;;23395:18:27;;:9;:18;;;;;;;;;;;:30;;23418:6;23395:22;:30::i;:::-;-1:-1:-1;;;;;23374:18:27;;:9;:18;;;;;;;;;;;:51;;;;23440:37;;3269:25:29;;;23374:18:27;;:9;;23440:37;;3242:18:29;23440:37:27;;;;;;;;23115:369;;:::o;49612:160::-;35620:4;41624:27;35620:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;;49699:14:::1;49707:5;;49699:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49699:7:27::1;::::0;-1:-1:-1;;;49699:14:27:i:1;:::-;49723:42;49743:5;;49723:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49750:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49750:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49723:19:27::1;::::0;-1:-1:-1;49723:42:27:i:1;:::-;49612:160:::0;;;:::o;37801:136::-;37874:7;37900:12;;;:6;:12;;;;;:30;;37924:5;37900:23;:30::i;:::-;37893:37;37801:136;-1:-1:-1;;;37801:136:27:o;36798:137::-;36867:4;36890:12;;;:6;:12;;;;;:38;;36920:7;36890:29;:38::i;17480:85::-;17519:13;17551:7;17544:14;;;;;:::i;21561:279::-;21654:4;21670:142;21679:12;:10;:12::i;:::-;21693:7;21702:109;21741:15;21702:109;;;;;;;;;;;;;;;;;:11;:25;21714:12;:10;:12::i;:::-;-1:-1:-1;;;;;21702:25:27;;;;;;;;;;;;;;;;;-1:-1:-1;21702:25:27;;;:34;;;;;;;;;;;:109;:38;:109::i;18991:172::-;19077:4;19093:42;19103:12;:10;:12::i;:::-;19117:9;19128:6;19093:9;:42::i;37103:125::-;37166:7;37192:12;;;:6;:12;;;;;:29;;:27;:29::i;50143:223::-;48603:27;41624;41632:4;41638:12;:10;:12::i;41624:27::-;41665:10;41603:82;;;;;-1:-1:-1;;;41603:82:27;;;;;;;;:::i;:::-;-1:-1:-1;50279:14:27::1;50296:34;::::0;;::::1;50307:11:::0;50296:34:::1;:::i;:::-;50279:51;;50340:19;50346:4;50352:6;50340:5;:19::i;:::-;50269:97;50143:223:::0;;;;:::o;38937:226::-;39029:12;;;;:6;:12;;;;;:22;;;39021:45;;39053:12;:10;:12::i;39021:45::-;39013:106;;;;-1:-1:-1;;;39013:106:27;;12478:2:29;39013:106:27;;;12460:21:29;12517:2;12497:18;;;12490:30;12556:34;12536:18;;;12529:62;-1:-1:-1;;;12607:18:29;;;12600:46;12663:19;;39013:106:27;12276:412:29;48827:497:27;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;12895:2:29;42045:34:27;;;12877:21:29;12934:2;12914:18;;;12907:30;-1:-1:-1;;;12953:18:29;;;12946:44;13007:18;;42045:34:27;12693:338:29;42045:34:27;49026:14:::1;49034:5;;49026:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49026:7:27::1;::::0;-1:-1:-1;;;49026:14:27:i:1;:::-;49048:18;49058:7;;49048:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;49048:9:27::1;::::0;-1:-1:-1;;;49048:18:27:i:1;:::-;18425:9:::0;:23;;-1:-1:-1;;18425:23:27;;;;;;;49104:60:::1;49154:7;;49128:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;49104:16;:60::i;:::-;49172:44;35620:4;49203:12;:10;:12::i;:::-;49172:10;:44::i;:::-;49224:45;48603:27;49251:17;49224:10;:45::i;:::-;49277:40;49295:5;;49277:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;49302:14:27::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;49302:14:27::1;::::0;::::1;::::0;;-1:-1:-1;49277:17:27::1;::::0;-1:-1:-1;49277:40:27:i:1;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;-1:-1:-1;;;;48827:497:27:o;49444:162::-;49530:22;49575:24;:22;:24::i;:::-;49568:31;;49444:162;:::o;24638:340::-;-1:-1:-1;;;;;24739:19:27;;24731:68;;;;-1:-1:-1;;;24731:68:27;;13662:2:29;24731:68:27;;;13644:21:29;13701:2;13681:18;;;13674:30;13740:34;13720:18;;;13713:62;-1:-1:-1;;;13791:18:29;;;13784:34;13835:19;;24731:68:27;13460:400:29;24731:68:27;-1:-1:-1;;;;;24817:21:27;;24809:68;;;;-1:-1:-1;;;24809:68:27;;14067:2:29;24809:68:27;;;14049:21:29;14106:2;14086:18;;;14079:30;14145:34;14125:18;;;14118:62;-1:-1:-1;;;14196:18:29;;;14189:32;14238:19;;24809:68:27;13865:398:29;24809:68:27;-1:-1:-1;;;;;24888:18:27;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24939:32;;3269:25:29;;;24939:32:27;;3242:18:29;24939:32:27;;;;;;;;24638:340;;;:::o;46741:470::-;46913:4;-1:-1:-1;;;;;46937:20:27;;46929:70;;;;-1:-1:-1;;;46929:70:27;;14470:2:29;46929:70:27;;;14452:21:29;14509:2;14489:18;;;14482:30;14548:34;14528:18;;;14521:62;-1:-1:-1;;;14599:18:29;;;14592:35;14644:19;;46929:70:27;14268:401:29;46929:70:27;47050:154;47077:47;47096:27;47116:6;47096:19;:27::i;:::-;47077:18;:47::i;:::-;47050:154;;;;;;;;;;;;14901:25:29;;;;14974:4;14962:17;;14942:18;;;14935:45;14996:18;;;14989:34;;;15039:18;;;15032:34;;;14873:19;;47050:154:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47028:176:27;:6;-1:-1:-1;;;;;47028:176:27;;47009:195;;46741:470;;;;;;;:::o;4601:176::-;4659:7;;4690:5;4694:1;4690;:5;:::i;:::-;4678:17;;4718:1;4713;:6;;4705:46;;;;-1:-1:-1;;;4705:46:27;;15541:2:29;4705:46:27;;;15523:21:29;15580:2;15560:18;;;15553:30;15619:29;15599:18;;;15592:57;15666:18;;4705:46:27;15339:351:29;22314:530:27;-1:-1:-1;;;;;22419:20:27;;22411:70;;;;-1:-1:-1;;;22411:70:27;;15897:2:29;22411:70:27;;;15879:21:29;15936:2;15916:18;;;15909:30;15975:34;15955:18;;;15948:62;-1:-1:-1;;;16026:18:29;;;16019:35;16071:19;;22411:70:27;15695:401:29;22411:70:27;-1:-1:-1;;;;;22499:23:27;;22491:71;;;;-1:-1:-1;;;22491:71:27;;16303:2:29;22491:71:27;;;16285:21:29;16342:2;16322:18;;;16315:30;16381:34;16361:18;;;16354:62;-1:-1:-1;;;16432:18:29;;;16425:33;16475:19;;22491:71:27;16101:399:29;22491:71:27;22651;22673:6;22651:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22651:17:27;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22631:17:27;;;:9;:17;;;;;;;;;;;:91;;;;22755:20;;;;;;;:32;;22780:6;22755:24;:32::i;:::-;-1:-1:-1;;;;;22732:20:27;;;:9;:20;;;;;;;;;;;;:55;;;;22802:35;3269:25:29;;;22732:20:27;;22802:35;;;;;;3242:18:29;22802:35:27;3123:177:29;5473:187:27;5559:7;5594:12;5586:6;;;;5578:29;;;;-1:-1:-1;;;5578:29:27;;;;;;;;:::i;:::-;-1:-1:-1;5617:9:27;5629:5;5633:1;5629;:5;:::i;:::-;5617:17;5473:187;-1:-1:-1;;;;;5473:187:27:o;23803:410::-;-1:-1:-1;;;;;23886:21:27;;23878:67;;;;-1:-1:-1;;;23878:67:27;;16840:2:29;23878:67:27;;;16822:21:29;16879:2;16859:18;;;16852:30;16918:34;16898:18;;;16891:62;-1:-1:-1;;;16969:18:29;;;16962:31;17010:19;;23878:67:27;16638:397:29;23878:67:27;24037:68;24060:6;24037:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24037:18:27;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;24016:18:27;;:9;:18;;;;;;;;;;:89;24130:12;;:24;;24147:6;24130:16;:24::i;:::-;24115:12;:39;24169:37;;3269:25:29;;;24195:1:27;;-1:-1:-1;;;;;24169:37:27;;;;;3257:2:29;3242:18;24169:37:27;3123:177:29;40861:184:27;40934:12;;;;:6;:12;;;;;:33;;40959:7;40934:24;:33::i;:::-;40930:109;;;41015:12;:10;:12::i;:::-;-1:-1:-1;;;;;40988:40:27;41006:7;-1:-1:-1;;;;;40988:40:27;41000:4;40988:40;;;;;;;;;;40861:184;;:::o;41051:188::-;41125:12;;;;:6;:12;;;;;:36;;41153:7;41125:27;:36::i;:::-;41121:112;;;41209:12;:10;:12::i;:::-;-1:-1:-1;;;;;41182:40:27;41200:7;-1:-1:-1;;;;;41182:40:27;41194:4;41182:40;;;;;;;;;;41051:188;;:::o;17288:79::-;17345:5;:15;17353:7;17345:5;:15;:::i;42982:366::-;42441:110;;;;;;;;;;;;;;;;;42422:135;;;;;;43198:4;43182:22;;;;;;43238:7;43222:25;;;;;;43273:4;43304:12;43570:9;;43459:155;43304:12;43114:217;;;;;;19377:25:29;;;;19418:18;;19411:34;;;;19461:18;;;19454:34;;;;-1:-1:-1;;;;;19524:32:29;19504:18;;;19497:60;19573:19;;;19566:35;19349:19;;43114:217:27;;;-1:-1:-1;;43114:217:27;;;;;;;;;43091:250;;43114:217;43091:250;;;;43073:15;:268;-1:-1:-1;;42982:366:27:o;32212:156::-;32286:7;32336:22;32340:3;32352:5;32336:3;:22::i;31519:165::-;-1:-1:-1;;;;;31652:23:27;;31599:4;29972:19;;;:12;;;:19;;;;;;:24;;31622:55;29876:127;31765:115;31828:7;31854:19;31862:3;30166:18;;30084:107;17571:87;17632:7;:19;17642:9;17632:7;:19;:::i;41402:157::-;41510:10;41493:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;41473:10;:79;;;;;;:::i;42792:184::-;42054:6;;;;42053:7;42045:34;;;;-1:-1:-1;;;42045:34:27;;12895:2:29;42045:34:27;;;12877:21:29;12934:2;12914:18;;;12907:30;-1:-1:-1;;;12953:18:29;;;12946:44;13007:18;;42045:34:27;12693:338:29;42045:34:27;42935::::1;42955:4;42961:7;42935:19;:34::i;:::-;-1:-1:-1::0;;42100:6:27;:13;;-1:-1:-1;;42100:13:27;42109:4;42100:13;;;42792:184::o;47679:631::-;47747:22;47811:4;47789:10;:27;47785:496;;47832:18;47853:8;;47832:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;47891:8:27;48098:17;48092:24;-1:-1:-1;;;;;48067:131:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;47785:496:27;;-1:-1:-1;48259:10:27;47785:496;47679:631;:::o;46228:396::-;46335:7;44463:98;;;;;;;;;;;;;;;;;44444:123;;;;;;;46483:12;;46517:11;;;;46560:24;;;;;46550:35;;;;;;46404:199;;;;;20326:25:29;;;20382:2;20367:18;;20360:34;;;;-1:-1:-1;;;;;20430:32:29;20425:2;20410:18;;20403:60;20494:2;20479:18;;20472:34;20313:3;20298:19;;20095:417;46404:199:27;;;;;;;;;;;;;46377:240;;;;;;46358:259;;46228:396;;;:::o;43974:249::-;44070:7;44168:20;43431:15;;;43354:99;44168:20;44139:63;;-1:-1:-1;;;44139:63:27;;;20775:27:29;20818:11;;;20811:27;;;;20854:12;;;20847:28;;;20891:12;;44139:63:27;20517:392:29;5048:134:27;5106:7;5132:43;5136:1;5139;5132:43;;;;;;;;;;;;;;;;;:3;:43::i;30964:150::-;31034:4;31057:50;31062:3;-1:-1:-1;;;;;31082:23:27;;31057:4;:50::i;31282:156::-;31355:4;31378:53;31386:3;-1:-1:-1;;;;;31406:23:27;;31378:7;:53::i;30523:201::-;30617:18;;30590:7;;30617:26;-1:-1:-1;30609:73:27;;;;-1:-1:-1;;;30609:73:27;;21116:2:29;30609:73:27;;;21098:21:29;21155:2;21135:18;;;21128:30;21194:34;21174:18;;;21167:62;-1:-1:-1;;;21245:18:29;;;21238:32;21287:19;;30609:73:27;20914:398:29;30609:73:27;30699:3;:11;;30711:5;30699:18;;;;;;;;:::i;:::-;;;;;;;;;30692:25;;30523:201;;;;:::o;27711:404::-;27774:4;29972:19;;;:12;;;:19;;;;;;27790:319;;-1:-1:-1;27832:23:27;;;;;;;;:11;:23;;;;;;;;;;;;;28012:18;;27990:19;;;:12;;;:19;;;;;;:40;;;;28044:11;;27790:319;-1:-1:-1;28093:5:27;28086:12;;28283:1512;28349:4;28486:19;;;:12;;;:19;;;;;;28520:15;;28516:1273;;28877:21;28901:14;28914:1;28901:10;:14;:::i;:::-;28949:18;;28877:38;;-1:-1:-1;28929:17:27;;28949:22;;28970:1;;28949:22;:::i;:::-;28929:42;;29211:17;29231:3;:11;;29243:9;29231:22;;;;;;;;:::i;:::-;;;;;;;;;29211:42;;29374:9;29345:3;:11;;29357:13;29345:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;29475:17;:13;29491:1;29475:17;:::i;:::-;29449:23;;;;:12;;;:23;;;;;:43;29598:17;;29449:3;;29598:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;29690:3;:12;;:19;29703:5;29690:19;;;;;;;;;;;29683:26;;;29731:4;29724:11;;;;;;;;28516:1273;29773:5;29766:12;;;;;14:250:29;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:29;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:29;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:29:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:173::-;838:20;;-1:-1:-1;;;;;887:31:29;;877:42;;867:70;;933:1;930;923:12;867:70;770:173;;;:::o;948:254::-;1016:6;1024;1077:2;1065:9;1056:7;1052:23;1048:32;1045:52;;;1093:1;1090;1083:12;1045:52;1116:29;1135:9;1116:29;:::i;:::-;1106:39;1192:2;1177:18;;;;1164:32;;-1:-1:-1;;;948:254:29:o;1622:127::-;1683:10;1678:3;1674:20;1671:1;1664:31;1714:4;1711:1;1704:15;1738:4;1735:1;1728:15;1754:156;1820:20;;1880:4;1869:16;;1859:27;;1849:55;;1900:1;1897;1890:12;1915:1203;2017:6;2025;2033;2041;2049;2102:3;2090:9;2081:7;2077:23;2073:33;2070:53;;;2119:1;2116;2109:12;2070:53;2142:29;2161:9;2142:29;:::i;:::-;2132:39;;2222:2;2211:9;2207:18;2194:32;2245:18;2286:2;2278:6;2275:14;2272:34;;;2302:1;2299;2292:12;2272:34;2340:6;2329:9;2325:22;2315:32;;2385:7;2378:4;2374:2;2370:13;2366:27;2356:55;;2407:1;2404;2397:12;2356:55;2443:2;2430:16;2465:2;2461;2458:10;2455:36;;;2471:18;;:::i;:::-;2546:2;2540:9;2514:2;2600:13;;-1:-1:-1;;2596:22:29;;;2620:2;2592:31;2588:40;2576:53;;;2644:18;;;2664:22;;;2641:46;2638:72;;;2690:18;;:::i;:::-;2730:10;2726:2;2719:22;2765:2;2757:6;2750:18;2805:7;2800:2;2795;2791;2787:11;2783:20;2780:33;2777:53;;;2826:1;2823;2816:12;2777:53;2882:2;2877;2873;2869:11;2864:2;2856:6;2852:15;2839:46;2927:1;2922:2;2917;2909:6;2905:15;2901:24;2894:35;2948:6;2938:16;;;;;;;3001:2;2990:9;2986:18;2973:32;2963:42;;3052:2;3041:9;3037:18;3024:32;3014:42;;3075:37;3107:3;3096:9;3092:19;3075:37;:::i;:::-;3065:47;;1915:1203;;;;;;;;:::o;3487:328::-;3564:6;3572;3580;3633:2;3621:9;3612:7;3608:23;3604:32;3601:52;;;3649:1;3646;3639:12;3601:52;3672:29;3691:9;3672:29;:::i;:::-;3662:39;;3720:38;3754:2;3743:9;3739:18;3720:38;:::i;:::-;3710:48;;3805:2;3794:9;3790:18;3777:32;3767:42;;3487:328;;;;;:::o;3820:180::-;3879:6;3932:2;3920:9;3911:7;3907:23;3903:32;3900:52;;;3948:1;3945;3938:12;3900:52;-1:-1:-1;3971:23:29;;3820:180;-1:-1:-1;3820:180:29:o;4005:186::-;4064:6;4117:2;4105:9;4096:7;4092:23;4088:32;4085:52;;;4133:1;4130;4123:12;4085:52;4156:29;4175:9;4156:29;:::i;4381:254::-;4449:6;4457;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;4562:9;4549:23;4539:33;;4591:38;4625:2;4614:9;4610:18;4591:38;:::i;:::-;4581:48;;4381:254;;;;;:::o;4829:348::-;4881:8;4891:6;4945:3;4938:4;4930:6;4926:17;4922:27;4912:55;;4963:1;4960;4953:12;4912:55;-1:-1:-1;4986:20:29;;5029:18;5018:30;;5015:50;;;5061:1;5058;5051:12;5015:50;5098:4;5090:6;5086:17;5074:29;;5150:3;5143:4;5134:6;5126;5122:19;5118:30;5115:39;5112:59;;;5167:1;5164;5157:12;5112:59;4829:348;;;;;:::o;5182:411::-;5253:6;5261;5314:2;5302:9;5293:7;5289:23;5285:32;5282:52;;;5330:1;5327;5320:12;5282:52;5370:9;5357:23;5403:18;5395:6;5392:30;5389:50;;;5435:1;5432;5425:12;5389:50;5474:59;5525:7;5516:6;5505:9;5501:22;5474:59;:::i;:::-;5552:8;;5448:85;;-1:-1:-1;5182:411:29;-1:-1:-1;;;;5182:411:29:o;5598:248::-;5666:6;5674;5727:2;5715:9;5706:7;5702:23;5698:32;5695:52;;;5743:1;5740;5733:12;5695:52;-1:-1:-1;;5766:23:29;;;5836:2;5821:18;;;5808:32;;-1:-1:-1;5598:248:29:o;6059:484::-;6138:6;6146;6154;6207:2;6195:9;6186:7;6182:23;6178:32;6175:52;;;6223:1;6220;6213:12;6175:52;6246:29;6265:9;6246:29;:::i;:::-;6236:39;;6326:2;6315:9;6311:18;6298:32;6353:18;6345:6;6342:30;6339:50;;;6385:1;6382;6375:12;6339:50;6424:59;6475:7;6466:6;6455:9;6451:22;6424:59;:::i;:::-;6059:484;;6502:8;;-1:-1:-1;6398:85:29;;-1:-1:-1;;;;6059:484:29:o;6548:260::-;6616:6;6624;6677:2;6665:9;6656:7;6652:23;6648:32;6645:52;;;6693:1;6690;6683:12;6645:52;6716:29;6735:9;6716:29;:::i;:::-;6706:39;;6764:38;6798:2;6787:9;6783:18;6764:38;:::i;6813:866::-;6921:6;6929;6937;6945;6953;6961;7014:3;7002:9;6993:7;6989:23;6985:33;6982:53;;;7031:1;7028;7021:12;6982:53;7071:9;7058:23;7100:18;7141:2;7133:6;7130:14;7127:34;;;7157:1;7154;7147:12;7127:34;7196:59;7247:7;7238:6;7227:9;7223:22;7196:59;:::i;:::-;7274:8;;-1:-1:-1;7170:85:29;-1:-1:-1;7362:2:29;7347:18;;7334:32;;-1:-1:-1;7378:16:29;;;7375:36;;;7407:1;7404;7397:12;7375:36;;7446:61;7499:7;7488:8;7477:9;7473:24;7446:61;:::i;:::-;7526:8;;-1:-1:-1;7420:87:29;-1:-1:-1;7580:36:29;;-1:-1:-1;7612:2:29;7597:18;;7580:36;:::i;:::-;7570:46;;7635:38;7669:2;7658:9;7654:18;7635:38;:::i;:::-;7625:48;;6813:866;;;;;;;;:::o;7684:380::-;7763:1;7759:12;;;;7806;;;7827:61;;7881:4;7873:6;7869:17;7859:27;;7827:61;7934:2;7926:6;7923:14;7903:18;7900:38;7897:161;;7980:10;7975:3;7971:20;7968:1;7961:31;8015:4;8012:1;8005:15;8043:4;8040:1;8033:15;7897:161;;7684:380;;;:::o;8471:432::-;-1:-1:-1;;;;;8728:15:29;;;8710:34;;8780:15;;8775:2;8760:18;;8753:43;8832:2;8827;8812:18;;8805:30;;;8653:4;;8852:45;;8878:18;;8870:6;8852:45;:::i;8908:428::-;9065:3;9103:6;9097:13;9119:66;9178:6;9173:3;9166:4;9158:6;9154:17;9119:66;:::i;:::-;9254:2;9250:15;;;;-1:-1:-1;;9246:53:29;9207:16;;;;9232:68;;;9327:2;9316:14;;8908:428;-1:-1:-1;;8908:428:29:o;9341:287::-;9470:3;9508:6;9502:13;9524:66;9583:6;9578:3;9571:4;9563:6;9559:17;9524:66;:::i;:::-;9606:16;;;;;9341:287;-1:-1:-1;;9341:287:29:o;11308:963::-;11417:4;11446:2;11475;11464:9;11457:21;11498:1;11531:6;11525:13;11561:36;11587:9;11561:36;:::i;:::-;11633:6;11628:2;11617:9;11613:18;11606:34;11659:2;11680:1;11712:2;11701:9;11697:18;11729:1;11724:158;;;;11896:1;11891:354;;;;11690:555;;11724:158;-1:-1:-1;;11772:24:29;;11752:18;;;11745:52;11850:14;;11843:22;11840:1;11836:30;11821:46;;11817:55;;;-1:-1:-1;11724:158:29;;11891:354;11922:6;11919:1;11912:17;11970:2;11967:1;11957:16;11995:1;12009:180;12023:6;12020:1;12017:13;12009:180;;;12116:14;;12092:17;;;12088:26;;12081:50;12159:16;;;;12038:10;;12009:180;;;12213:17;;12209:26;;;-1:-1:-1;;11690:555:29;-1:-1:-1;12262:3:29;;11308:963;-1:-1:-1;;;;;;;;11308:963:29:o;13036:419::-;-1:-1:-1;;;13303:3:29;13296:20;13359:6;13351;13347:1;13342:3;13338:11;13325:41;13278:3;13389:16;;13407:1;13385:24;13418:13;;;13385:24;13036:419;-1:-1:-1;13036:419:29:o;15077:127::-;15138:10;15133:3;15129:20;15126:1;15119:31;15169:4;15166:1;15159:15;15193:4;15190:1;15183:15;15209:125;15274:9;;;15295:10;;;15292:36;;;15308:18;;:::i;16505:128::-;16572:9;;;16593:11;;;16590:37;;;16607:18;;:::i;17040:545::-;17142:2;17137:3;17134:11;17131:448;;;17178:1;17203:5;17199:2;17192:17;17248:4;17244:2;17234:19;17318:2;17306:10;17302:19;17299:1;17295:27;17289:4;17285:38;17354:4;17342:10;17339:20;17336:47;;;-1:-1:-1;17377:4:29;17336:47;17432:2;17427:3;17423:12;17420:1;17416:20;17410:4;17406:31;17396:41;;17487:82;17505:2;17498:5;17495:13;17487:82;;;17550:17;;;17531:1;17520:13;17487:82;;;17491:3;;;17040:545;;;:::o;17761:1352::-;17887:3;17881:10;17914:18;17906:6;17903:30;17900:56;;;17936:18;;:::i;:::-;17965:97;18055:6;18015:38;18047:4;18041:11;18015:38;:::i;:::-;18009:4;17965:97;:::i;:::-;18117:4;;18181:2;18170:14;;18198:1;18193:663;;;;18900:1;18917:6;18914:89;;;-1:-1:-1;18969:19:29;;;18963:26;18914:89;-1:-1:-1;;17718:1:29;17714:11;;;17710:24;17706:29;17696:40;17742:1;17738:11;;;17693:57;19016:81;;18163:944;;18193:663;11255:1;11248:14;;;11292:4;11279:18;;-1:-1:-1;;18229:20:29;;;18347:236;18361:7;18358:1;18355:14;18347:236;;;18450:19;;;18444:26;18429:42;;18542:27;;;;18510:1;18498:14;;;;18377:19;;18347:236;;;18351:3;18611:6;18602:7;18599:19;18596:201;;;18672:19;;;18666:26;-1:-1:-1;;18755:1:29;18751:14;;;18767:3;18747:24;18743:37;18739:42;18724:58;18709:74;;18596:201;-1:-1:-1;;;;;18843:1:29;18827:14;;;18823:22;18810:36;;-1:-1:-1;17761:1352:29:o;19612:478::-;19844:3;19882:6;19876:13;19898:66;19957:6;19952:3;19945:4;19937:6;19933:17;19898:66;:::i;:::-;20025:28;19986:16;;20011:43;;;-1:-1:-1;20081:2:29;20070:14;;19612:478;-1:-1:-1;19612:478:29:o;21317:127::-;21378:10;21373:3;21369:20;21366:1;21359:31;21409:4;21406:1;21399:15;21433:4;21430:1;21423:15;21449:127;21510:10;21505:3;21501:20;21498:1;21491:31;21541:4;21538:1;21531:15;21565:4;21562:1;21555:15"},"methodIdentifiers":{"CHILD_CHAIN_ID()":"626381a0","CHILD_CHAIN_ID_BYTES()":"0b54817c","DEFAULT_ADMIN_ROLE()":"a217fddf","DEPOSITOR_ROLE()":"a3b0b5a3","ERC712_VERSION()":"0f7e5970","ROOT_CHAIN_ID()":"8acfcaf7","ROOT_CHAIN_ID_BYTES()":"0dd7531a","_mint(address,uint256)":"4e6ec247","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","changeName(string)":"5353a2d8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","deposit(address,bytes)":"cf2c52cb","executeMetaTransaction(address,bytes,bytes32,bytes32,uint8)":"0c53c51c","getChainId()":"3408e470","getDomainSeperator()":"20379ee5","getNonce(address)":"2d0335ab","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increaseAllowance(address,uint256)":"39509351","initialize(string,string,uint8,address)":"de7ea79d","name()":"06fdde03","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"relayerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"}],\"name\":\"MetaTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHILD_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC712_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_CHAIN_ID_BYTES\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"_mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"changeName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"depositData\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"functionSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"sigR\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sigS\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"sigV\",\"type\":\"uint8\"}],\"name\":\"executeMetaTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeperator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"childChainManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"_mint(address,uint256)\":{\"details\":\"Creates `amount` tokens and assigns them to `account`, increasing the total supply. Emits a {Transfer} event with `from` set to the zero address. Requirements - `to` cannot be the zero address. \"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"deposit(address,bytes)\":{\"details\":\"Should be callable only by ChildChainManager Should handle deposit by minting the required amount for user Make sure minting is done only by this function\",\"params\":{\"depositData\":\"abi encoded amount\",\"user\":\"user address for whom deposit is being done\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"initialize(string,string,uint8,address)\":{\"details\":\"meant to be called once immediately after deployment\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"withdraw(uint256)\":{\"details\":\"Should burn user's tokens. This transaction will be verified when exiting on root chain\",\"params\":{\"amount\":\"amount of tokens to withdraw\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit(address,bytes)\":{\"notice\":\"called when token is deposited on root chain\"},\"initialize(string,string,uint8,address)\":{\"notice\":\"Initialize the contract after it has been proxified\"},\"withdraw(uint256)\":{\"notice\":\"called when user wants to withdraw tokens back to root chain\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/testDai/TestDAI.v3.sol\":\"UChildERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/testDai/TestDAI.v3.sol\":{\"keccak256\":\"0x7a9ceef26acf95e02a6ef711acbb398c506ff8af6063a0845390cabb30d34142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ad10d3bc36ca3fe8ea176b6f6d3e7e5caddceba51f1106928a31596b08046a\",\"dweb:/ipfs/QmVbUKdReq4MLk1iRwyk7muSoiZUHygXbX6s2cJeztZqa8\"]}},\"version\":1}"}},"hardhat/console.sol":{"console":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:68934:28;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:28:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json deleted file mode 100644 index 9548c37a..00000000 --- a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaOffersContract.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IgammaOffersContract", - "sourceName": "contracts/gamma/GammaCards.v5.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOfferByUserAndCardNumber", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getOffersByUserCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "hasOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "removeOffersByUser", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json deleted file mode 100644 index ff4687bd..00000000 --- a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaPacksContract.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IgammaPacksContract", - "sourceName": "contracts/gamma/GammaCards.v5.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getPackOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "openPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "openPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json b/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json deleted file mode 100644 index 9324a62b..00000000 --- a/artifacts/contracts/gamma/GammaCards.v5.sol/IgammaTicketsContract.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IgammaTicketsContract", - "sourceName": "contracts/gamma/GammaCards.v5.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "generateTicket", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json b/artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json deleted file mode 100644 index 477c0f52..00000000 --- a/artifacts/contracts/gamma/GammaCards.v5.sol/NofGammaCardsV5.json +++ /dev/null @@ -1,2007 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaCardsV5", - "sourceName": "contracts/gamma/GammaCards.v5.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_daiTokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaOffersContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - }, - { - "internalType": "string", - "name": "_baseUri", - "type": "string" - }, - { - "internalType": "address", - "name": "_signer", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "CannotRemoveUserOffers", - "type": "error" - }, - { - "inputs": [], - "name": "CardLimitExceeded", - "type": "error" - }, - { - "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" - }, - { - "inputs": [], - "name": "IncorrectPrizeAmount", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientCards", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientFunds", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCardNumber", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidSignature", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidTransfer", - "type": "error" - }, - { - "inputs": [], - "name": "MustCompleteAlbum", - "type": "error" - }, - { - "inputs": [], - "name": "NotYourPack", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyGammaPacksContract", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOffersContract", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOwners", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [], - "name": "UserDoesNotHaveCardOrAlbum", - "type": "error" - }, - { - "inputs": [], - "name": "WrongPacksQuantity", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8", - "name": "albumClass", - "type": "uint8" - } - ], - "name": "AlbumCompleted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_fromTokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_toTokenId", - "type": "uint256" - } - ], - "name": "BatchMetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "cardTokenId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "albumTokenId", - "type": "uint256" - } - ], - "name": "CardPasted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "CardTransfered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8[]", - "name": "cardsNumber", - "type": "uint8[]" - } - ], - "name": "CardsBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8[]", - "name": "cardNumber", - "type": "uint8[]" - } - ], - "name": "CardsTransfered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "EmergencyWithdrawal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "MetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaOffersContract", - "type": "address" - } - ], - "name": "NewGammaOffersContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaPacksContract", - "type": "address" - } - ], - "name": "NewGammaPacksContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaTicketContract", - "type": "address" - } - ], - "name": "NewGammaTicketsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSigner", - "type": "address" - } - ], - "name": "NewSigner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "string", - "name": "newMainUri", - "type": "string" - }, - { - "indexed": true, - "internalType": "string", - "name": "newSecondaryUri", - "type": "string" - } - ], - "name": "NewUris", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumberFrom", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumberTo", - "type": "uint8" - } - ], - "name": "OfferCardsExchanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - } - ], - "name": "PackOpened", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DAI_TOKEN", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newSigner", - "type": "address" - } - ], - "name": "addSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8[]", - "name": "cardNumbers", - "type": "uint8[]" - } - ], - "name": "burnCards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "_maxPacksToOpenAtOnce", - "type": "uint8" - } - ], - "name": "changeMaxPacksToOpenAtOnce", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPackPrice", - "type": "uint256" - } - ], - "name": "changePackPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "required", - "type": "bool" - } - ], - "name": "changeRequireOfferValidationInMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "required", - "type": "bool" - } - ], - "name": "changeRequireOfferValidationInTransfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "required", - "type": "bool" - } - ], - "name": "changeRequireOpenPackSignerValidation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "emergencyWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberFrom", - "type": "uint8" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberTo", - "type": "uint8" - } - ], - "name": "exchangeCardsOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "finishAlbum", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaOffersContract", - "outputs": [ - { - "internalType": "contract IgammaOffersContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaPacksContract", - "outputs": [ - { - "internalType": "contract IgammaPacksContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaTicketsContract", - "outputs": [ - { - "internalType": "contract IgammaTicketsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getBurnedCardQttyByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNum", - "type": "uint8" - } - ], - "name": "getCardQuantityByUser", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getCardsByUser", - "outputs": [ - { - "internalType": "uint8[]", - "name": "", - "type": "uint8[]" - }, - { - "internalType": "uint8[]", - "name": "", - "type": "uint8[]" - }, - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getLotteryPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNum", - "type": "uint8" - } - ], - "name": "hasCard", - "outputs": [ - { - "internalType": "bool", - "name": "has", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "hasCardByOffer", - "outputs": [ - { - "internalType": "bool", - "name": "has", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNum", - "type": "uint8" - } - ], - "name": "mintCard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "openPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "packsQuantity", - "type": "uint8" - }, - { - "internalType": "uint256[]", - "name": "packsNumber", - "type": "uint256[]" - }, - { - "internalType": "uint8[][]", - "name": "packsData", - "type": "uint8[][]" - }, - { - "internalType": "bytes[]", - "name": "signatures", - "type": "bytes[]" - } - ], - "name": "openPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_signerToRemove", - "type": "address" - } - ], - "name": "removeSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "restoreCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "s_baseUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "s_burnedCards", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "s_cards", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "number", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "pasted", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "class", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "completion", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "s_cardsByUser", - "outputs": [ - { - "internalType": "uint8", - "name": "amount", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "cardNumber", - "type": "uint256" - } - ], - "name": "s_cardsInventory", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_lotteryPrizePercentage", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_mainAlbumPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_mainUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_maxPacksToOpenAtOnce", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_packPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_prizesBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_requireOfferValidationInMint", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_requireOfferValidationInTransfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_requireOpenPackSignerValidation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_secondaryAlbumPrize", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_secondaryUri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_tokenIdCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaOffersContract", - "type": "address" - } - ], - "name": "setGammaOffersContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaPacksContract", - "type": "address" - } - ], - "name": "setGammaPacksContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "name": "setGammaTicketsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "amount", - "type": "uint8" - } - ], - "name": "setLotteryPrizePercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setMainAlbumPrize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setPrizesBalance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setSecondaryAlbumPrize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "newMainUri", - "type": "string" - }, - { - "internalType": "string", - "name": "newSecondaryUri", - "type": "string" - } - ], - "name": "setUris", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "testAddCards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - } - ], - "name": "testOpenPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "transferCard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8[]", - "name": "cardNumbers", - "type": "uint8[]" - } - ], - "name": "transferCards", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "verifyPackSigner", - "outputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040516200592d3803806200592d8339810160408190526200007d91620003ae565b336040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000d1919062000554565b506001620000e0828262000554565b5050506001600160a01b0381166200011257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200011d8162000303565b50336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a805486841690831617905560098054928716929091169190911790556017620001a4838262000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b81840152935162000203946017949390910162000620565b6040516020818303038152906040526015908162000222919062000554565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b81840152935162000281946017949390910162000620565b60405160208183030381529060405260169081620002a0919062000554565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015620002f6576000818152601a602052604090206001905580620002ed81620006dd565b915050620002c5565b5050505050505062000705565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003a55781810151838201526020016200038b565b50506000910152565b60008060008060008060c08789031215620003c857600080fd5b620003d38762000355565b9550620003e36020880162000355565b9450620003f36040880162000355565b9350620004036060880162000355565b60808801519093506001600160401b03808211156200042157600080fd5b818901915089601f8301126200043657600080fd5b8151818111156200044b576200044b62000372565b604051601f8201601f19908116603f0116810190838211818310171562000476576200047662000372565b816040528281528c60208487010111156200049057600080fd5b620004a383602083016020880162000388565b8096505050505050620004b960a0880162000355565b90509295509295509295565b600181811c90821680620004da57607f821691505b602082108103620004fb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054f57600081815260208120601f850160051c810160208610156200052a5750805b601f850160051c820191505b818110156200054b5782815560010162000536565b5050505b505050565b81516001600160401b0381111562000570576200057062000372565b6200058881620005818454620004c5565b8462000501565b602080601f831160018114620005c05760008415620005a75750858301515b600019600386901b1c1916600185901b1785556200054b565b600085815260208120601f198616915b82811015620005f157888601518255948401946001909101908401620005d0565b5085821015620006105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008086546200063081620004c5565b600182811680156200064b5760018114620006615762000692565b60ff198416875282151583028701945062000692565b8a60005260208060002060005b85811015620006895781548a8201529084019082016200066e565b50505082870194505b505050508551620006a8818360208a0162000388565b8551910190620006bd81836020890162000388565b8451910190620006d281836020880162000388565b019695505050505050565b600060018201620006fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b61521880620007156000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061045f5760003560e01c80637232d7d41161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a64578063e985e9c514610a6c578063eb12d61e14610a7f578063f2fde38b14610a92578063f98fd28314610aa557600080fd5b8063dbfc05cf14610a05578063ddb975e814610a18578063e1883c6e14610a2b578063e4ae0b9b14610a3e578063e606df8714610a4b57600080fd5b8063c87b56dd1161010a578063c87b56dd146109bb578063cafaa473146109ce578063d322b563146109e1578063d7093f40146109f4578063d780c477146109fd57600080fd5b8063ad1684fa14610966578063b352618514610979578063b88d4fde14610982578063ba6c0fbc14610995578063bf400a6a146109a857600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd146108f2578063a1af8ad414610920578063a22cb46514610933578063a419811d14610946578063ab5351601461095957600080fd5b80638da5cb5b146108ab5780639038f414146108bc57806395d89b41146108c45780639a5613ad146108cc5780639c7f707f146108df57600080fd5b80637df73e271161021b5780637df73e271461083057806382d8a1181461085c578063886eb60f1461086557806388e0ef80146108785780638bf670c81461089857600080fd5b80637232d7d4146107ef57806379e8dadc146108025780637ce65f7b1461080a5780637cf86b721461081d57600080fd5b8063267b841d1161035d5780635312ea8e116102e55780636d0af178116102a95780636d0af1781461079c5780637065cb48146107ae57806370a08231146107c1578063715018a6146107d45780637155a3ac146107dc57600080fd5b80635312ea8e146107475780635e31ce481461075a5780636352211e1461076d578063656bd0ad1461078057806368cc5bc11461078957600080fd5b806330f5cc581161032c57806330f5cc58146106945780634039327e146106a757806342842e0e146106af57806342966c68146106c25780634c03cd0b146106d557600080fd5b8063267b841d1461062f5780632ca699e7146106425780632f54bf6e146106555780632f9e026a1461068157600080fd5b8063147baac7116103eb578063203335f6116103af578063203335f6146105da57806320965a5f146105ed57806321a7c6b01461060057806323b872dd14610609578063241a08fe1461061c57600080fd5b8063147baac71461056a57806314cca36a1461057c578063155e2f921461058f5780631585cc4e146105a2578063173825d9146105c757600080fd5b8063081812fc11610432578063081812fc146104f1578063095ea7b31461051c5780630e316ab714610531578063128916dc146105445780631306952c1461055757600080fd5b806301ffc9a7146104645780630435dcaf1461048c57806306fdde03146104ae57806307b2e246146104c3575b600080fd5b610477610472366004614389565b610ab8565b60405190151581526020015b60405180910390f35b61049f61049a3660046143bb565b610ac9565b60405161048393929190614416565b6104b6610e79565b60405161048391906144d1565b6104e36104d13660046143bb565b601b6020526000908152604090205481565b604051908152602001610483565b6105046104ff3660046144e4565b610f0b565b6040516001600160a01b039091168152602001610483565b61052f61052a3660046144fd565b610f34565b005b61052f61053f3660046143bb565b610f43565b61052f6105523660046143bb565b610fe9565b61050461056536600461461a565b61108c565b60185461047790610100900460ff1681565b600a54610504906001600160a01b031681565b61052f61059d3660046146b4565b611118565b6105b56105b03660046146b4565b611195565b60405160ff9091168152602001610483565b61052f6105d53660046143bb565b6111ef565b61052f6105e83660046147b3565b611266565b61052f6105fb3660046148a9565b611325565b6104e360135481565b61052f6106173660046148ea565b611941565b61052f61062a36600461492b565b6119d1565b61052f61063d36600461461a565b611a17565b61052f6106503660046146b4565b611a24565b6104776106633660046143bb565b6001600160a01b03166000908152600b602052604090205460ff1690565b600854610504906001600160a01b031681565b61052f6106a2366004614946565b611c77565b6104b6611eff565b61052f6106bd3660046148ea565b611f8d565b61052f6106d03660046144e4565b611fad565b6107176106e33660046144e4565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a001610483565b61052f6107553660046144e4565b611fb9565b61052f6107683660046144e4565b6120d4565b61050461077b3660046144e4565b612119565b6104e360115481565b61052f6107973660046149ac565b612124565b600f546105b590610100900460ff1681565b61052f6107bc3660046143bb565b612170565b6104e36107cf3660046143bb565b6121e7565b61052f61222f565b61052f6107ea3660046146b4565b612243565b61052f6107fd3660046144e4565b6122a3565b6104b66122f9565b61052f61081836600461492b565b612306565b6104e361082b3660046143bb565b612377565b61047761083e3660046143bb565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104e360105481565b6104776108733660046146b4565b6123c3565b6104e36108863660046144e4565b601a6020526000908152604090205481565b6104776108a63660046146b4565b61241f565b6007546001600160a01b0316610504565b61047761247e565b6104b661281e565b6018546104779062010000900460ff1681565b61052f6108ed366004614a49565b61282d565b6105b56109003660046146b4565b601c60209081526000928352604080842090915290825290205460ff1681565b61052f61092e366004614aac565b6128cf565b61052f610941366004614b00565b612c49565b61052f6109543660046143bb565b612c54565b600f546105b59060ff1681565b61052f610974366004614b39565b612cf3565b6104e360145481565b61052f610990366004614b91565b612f86565b61052f6109a33660046144e4565b612f9d565b61052f6109b636600461492b565b612ff3565b6104b66109c93660046144e4565b61323f565b61052f6109dc3660046143bb565b61324a565b600954610504906001600160a01b031681565b6104e360125481565b6104e36132ed565b61052f610a133660046149ac565b61331a565b61052f610a263660046143bb565b61335d565b61052f610a393660046144e4565b613400565b6018546104779060ff1681565b600f54610504906201000090046001600160a01b031681565b6104b6613430565b610477610a7a366004614c10565b61343d565b61052f610a8d3660046143bb565b61346b565b61052f610aa03660046143bb565b6134e2565b61052f610ab33660046149ac565b613520565b6000610ac38261356a565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610caf576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610c9d5780858360ff1681518110610b9557610b95614c3e565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610be557610be5614c3e565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190614c54565b838360ff1681518110610c7f57610c7f614c3e565b9115156020928302919091019091015281610c9981614c87565b9250505b80610ca781614c87565b915050610b46565b5060008160ff166001600160401b03811115610ccd57610ccd614529565b604051908082528060200260200182016040528015610cf6578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d1657610d16614529565b604051908082528060200260200182016040528015610d3f578160200160208202803683370190505b50905060008360ff166001600160401b03811115610d5f57610d5f614529565b604051908082528060200260200182016040528015610d88578160200160208202803683370190505b50905060005b8460ff16811015610e6757878181518110610dab57610dab614c3e565b6020026020010151848281518110610dc557610dc5614c3e565b602002602001019060ff16908160ff1681525050868181518110610deb57610deb614c3e565b6020026020010151838281518110610e0557610e05614c3e565b602002602001019060ff16908160ff1681525050858181518110610e2b57610e2b614c3e565b6020026020010151828281518110610e4557610e45614c3e565b9115156020928302919091019091015280610e5f81614ca6565b915050610d8e565b50919a90995090975095505050505050565b606060008054610e8890614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490614cbf565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b6000610f168261358f565b506000828152600460205260409020546001600160a01b0316610ac3565b610f3f8282336135c8565b5050565b336000908152600b602052604090205460ff16610f7357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b158015610fce57600080fd5b505af4158015610fe2573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661101957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166110415760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906110ce9033908990899089908990600401614cf3565b602060405180830381865af41580156110eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110f9190614d7a565b95945050505050565b6009546001600160a01b0316331461114357604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614c87565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166111bf5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661121f57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401610fb6565b60ff8516158061127e5750600f5460ff908116908616115b1561129c57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561131d5761130b338683815181106112c0576112c0614c3e565b60200260200101518684815181106112da576112da614c3e565b60200260200101518686868181106112f4576112f4614c3e565b90506020028101906113069190614d97565b6135d5565b8061131581614ca6565b91505061129f565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036113635760405163210f01d160e21b815260040160405180910390fd5b336000908152601b602052604081205461137e908390614ddd565b90506000603c821061143657600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190614df0565b90506014548110806114125750601454601254105b156114305760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190614df0565b1190508360005b818110156116ce57336000908152601c60205260408120908888848181106114d8576114d8614c3e565b90506020020160208101906114ed919061492b565b60ff9081168252602082019290925260400160009081205490911690036115275760405163210f01d160e21b815260040160405180910390fd5b821561164a576009546001600160a01b0316632edb5fcf3389898581811061155157611551614c3e565b9050602002016020810190611566919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190614c54565b1561164a57336000908152601c602052604081206002918989858181106115ff576115ff614c3e565b9050602002016020810190611614919061492b565b60ff908116825260208201929092526040016000205416101561164a5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c602052604081209088888481811061166c5761166c614c3e565b9050602002016020810190611681919061492b565b60ff908116825260208201929092526040016000908120805490921691906116a883614e09565b91906101000a81548160ff021916908360ff1602179055505080806001019150506114ae565b50336000908152601b6020526040812080548392906116ee908490614ddd565b90915550506040516117039087908790614e26565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561131d57336000908152601c60209081526040808320607984529091528120805460ff169161176583614e09565b91906101000a81548160ff021916908360ff16021790555050611816336016805461178f90614cbf565b80601f01602080910402602001604051908101604052809291908181526020018280546117bb90614cbf565b80156118085780601f106117dd57610100808354040283529160200191611808565b820191906000526020600020905b8154815290600101906020018083116117eb57829003601f168201915b5050505050607960026139ec565b6014546012600082825461182a9190614e60565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015611889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ad9190614c54565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b1580156118f357600080fd5b505af1158015611907573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b6001600160a01b03821661197057604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061197d838333613a4f565b9050836001600160a01b0316816001600160a01b0316146119cb576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401611967565b50505050565b336000908152600b602052604090205460ff16611a0157604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b6119cb33858585856135d5565b816001600160a01b038116611a4c5760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611a8a5760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611ab357604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611b8a57600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190614c54565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611b6b5750805b611b875760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611bb683614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611c0583614c87565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611c6a919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611ca757604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611cf557600080fd5b505af1158015611d09573d6000803e3d6000fd5b505050506006601154611d1c9190614eaa565b601154611d299190614e60565b60126000828254611d3a9190614ddd565b90915550600090505b81518110156119cb57818181518110611d5e57611d5e614c3e565b602002602001015160ff16607814611da957611389601a6000848481518110611d8957611d89614c3e565b602002602001015160ff1681526020019081526020016000205410611dda565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611e265760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401611967565b601a6000838381518110611e3c57611e3c614c3e565b602002602001015160ff1681526020019081526020016000206000815480929190611e6690614ca6565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611e9a57611e9a614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611ed390614c87565b91906101000a81548160ff021916908360ff160217905550508080611ef790614ca6565b915050611d43565b60168054611f0c90614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3890614cbf565b8015611f855780601f10611f5a57610100808354040283529160200191611f85565b820191906000526020600020905b815481529060010190602001808311611f6857829003601f168201915b505050505081565b611fa883838360405180602001604052806000815250612f86565b505050565b610f3f60008233613a4f565b336000908152600b602052604090205460ff16611fe957604051634289c49360e01b815260040160405180910390fd5b80611ff3306121e7565b10156120125760405163356680b760e01b815260040160405180910390fd5b80601260008282546120249190614e60565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af115801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a39190614c54565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b031633146120ff576040516307473cc760e41b815260040160405180910390fd5b80601260008282546121119190614ddd565b909155505050565b6000610ac38261358f565b336000908152600b602052604090205460ff1661215457604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff166121a057604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401610fb6565b60006001600160a01b038216612213576040516322718ad960e21b815260006004820152602401611967565b506001600160a01b031660009081526003602052604090205490565b612237613b48565b6122416000613b75565b565b6009546001600160a01b0316331461226e57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff80861685529252822080549091169161117883614e09565b336000908152600b602052604090205460ff166122d357604051634289c49360e01b815260040160405180910390fd5b806000036122f457604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054611f0c90614cbf565b336000908152600b602052604090205460ff1661233657604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561235b57604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b0381166123a15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b6000826001600160a01b0381166123ed5760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b0316331461244d57604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036124bc5760405163210f01d160e21b815260040160405180910390fd5b60135460125410156124e157604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190614df0565b90506013548110156125795760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161260857336000908152601c6020908152604080832060ff808616855292528220541690036125b65760019150612608565b336000908152601c6020908152604080832060ff8086168552925282208054909116916125e283614e09565b91906101000a81548160ff021916908360ff16021790555050808060010191505061257d565b50801561262757604051623de82960e51b815260040160405180910390fd5b6126bf336015805461263890614cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461266490614cbf565b80156126b15780601f10612686576101008083540402835291602001916126b1565b820191906000526020600020905b81548152906001019060200180831161269457829003601f168201915b5050505050607860026139ec565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273d9190614c54565b50601354601260008282546127529190614e60565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af11580156127a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c69190614c54565b9050806127e65760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610e8890614cbf565b336000908152600b602052604090205460ff1661285d57604051634289c49360e01b815260040160405180910390fd5b60156128698382614f12565b5060166128768282614f12565b50806040516128859190614fd1565b60405180910390208260405161289b9190614fd1565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b0381166128f75760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b0385160361292057604051632f35253160e01b815260040160405180910390fd5b60005b82811015612bf557336000908152601c602052604081209085858481811061294d5761294d614c3e565b9050602002016020810190612962919061492b565b60ff90811682526020820192909252604001600090812054909116900361299c5760405163210f01d160e21b815260040160405180910390fd5b336000908152601c60205260408120908585848181106129be576129be614c3e565b90506020020160208101906129d3919061492b565b60ff908116825260208201929092526040016000908120805490921691906129fa83614e09565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612a4c57612a4c614c3e565b9050602002016020810190612a61919061492b565b60ff90811682526020820192909252604001600090812080549092169190612a8883614c87565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612be3576009546000906001600160a01b0316632edb5fcf33878786818110612add57612add614c3e565b9050602002016020810190612af2919061492b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b629190614c54565b336000908152601c602052604081209192509060019082888887818110612b8b57612b8b614c3e565b9050602002016020810190612ba0919061492b565b60ff908116825260208201929092526040016000205416119050811580612bc45750805b612be05760405162461bcd60e51b815260040161196790614e73565b50505b80612bed81614ca6565b915050612923565b508282604051612c06929190614e26565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b610f3f338383613bc7565b336000908152600b602052604090205460ff16612c8457604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611610f3f576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691612cc783614c87565b91906101000a81548160ff021916908360ff160217905550508080612ceb90614c87565b915050612c87565b6009546001600160a01b03163314612d1e57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b038116612d465760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b038116612d6e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925290912054161580612dc957506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b15612de75760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292528220805490911691612e1c83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a85168452909152812080549092169250612e6b83614c87565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208885168452909152812080549092169250612eba83614e09565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250612f0983614c87565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d5248786604051612f7692919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b612f91848484611941565b6119cb84848484613c5e565b336000908152600b602052604090205460ff16612fcd57604051634289c49360e01b815260040160405180910390fd5b80600003612fee57604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036130315760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff161561310757600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015613093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b79190614c54565b336000908152601c6020908152604080832060ff808816855292529091205491925060019116118115806130e85750805b6131045760405162461bcd60e51b815260040161196790614e73565b50505b336000908152601c6020908152604080832060ff80861685529252822080549091169161313383614e09565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b81526004016131a891815260200190565b600060405180830381865af41580156131c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131ed9190810190614fed565b60405180604001604052806005815260200164173539b7b760d91b81525060405160200161321e949392919061505a565b6040516020818303038152906040529050610f3f33828460ff1660016139ec565b6060610ac382613d80565b336000908152600b602052604090205460ff1661327a57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166132a25760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f5460009160649161330b9190610100900460ff16615109565b6133159190614eaa565b905090565b336000908152600b602052604090205460ff1661334a57604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661338d57604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166133b55760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b0316331461342b576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054611f0c90614cbf565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b336000908152600b602052604090205460ff1661349b57604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401610fb6565b6134ea613b48565b6001600160a01b03811661351457604051631e4fbdf760e01b815260006004820152602401611967565b61351d81613b75565b50565b336000908152600b602052604090205460ff1661355057604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610ac35750610ac382613e91565b6000818152600260205260408120546001600160a01b031680610ac357604051637e27328960e01b815260048101849052602401611967565b611fa88383836001613ee1565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136449190614d7a565b6001600160a01b03161461366b57604051637f6ecdf560e01b815260040160405180910390fd5b600f83511061368d57604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613759576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b906136da9033908990899089908990600401614cf3565b602060405180830381865af41580156136f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371b9190614d7a565b6001600160a01b0381166000908152600e602052604090205490915060ff1661375757604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b1580156137a757600080fd5b505af11580156137bb573d6000803e3d6000fd5b5050505060066011546137ce9190614eaa565b6011546137db9190614e60565b601260008282546137ec9190614ddd565b90915550600090505b835181101561399a5783818151811061381057613810614c3e565b602002602001015160ff16607803613875576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb8101561387057604051630d1ecf1760e11b815260040160405180910390fd5b6138c7565b611388601a600086848151811061388e5761388e614c3e565b602002602001015160ff1681526020019081526020016000205411156138c757604051630d1ecf1760e11b815260040160405180910390fd5b601a60008583815181106138dd576138dd614c3e565b602002602001015160ff168152602001908152602001600020600081548092919061390790614ca6565b90915550506001600160a01b0386166000908152601c60205260408120855190919086908490811061393b5761393b614c3e565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff168092919061397490614c87565b91906101000a81548160ff021916908360ff1602179055505080806001019150506137f5565b5083836040516139aa9190615120565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613a268582613fe7565b613a308185614001565b600160106000828254613a439190614ddd565b90915550505050505050565b6000828152600260205260408120546001600160a01b0390811690831615613a7c57613a7c818486614051565b6001600160a01b03811615613aba57613a99600085600080613ee1565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615613ae9576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6007546001600160a01b031633146122415760405163118cdaa760e01b8152336004820152602401611967565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216613bf957604051630b61174360e31b81526001600160a01b0383166004820152602401611967565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611c6a565b6001600160a01b0383163b156119cb57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290613ca0903390889087908790600401615159565b6020604051808303816000875af1925050508015613cdb575060408051601f3d908101601f19168201909252613cd891810190615196565b60015b613d44573d808015613d09576040519150601f19603f3d011682016040523d82523d6000602084013e613d0e565b606091505b508051600003613d3c57604051633250574960e11b81526001600160a01b0385166004820152602401611967565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610fe257604051633250574960e11b81526001600160a01b0385166004820152602401611967565b6060613d8b8261358f565b5060008281526006602052604081208054613da590614cbf565b80601f0160208091040260200160405190810160405280929190818152602001828054613dd190614cbf565b8015613e1e5780601f10613df357610100808354040283529160200191613e1e565b820191906000526020600020905b815481529060010190602001808311613e0157829003601f168201915b505050505090506000613e3c60408051602081019091526000815290565b90508051600003613e4e575092915050565b815115613e80578082604051602001613e689291906151b3565b60405160208183030381529060405292505050919050565b613e89846140b5565b949350505050565b60006001600160e01b031982166380ac58cd60e01b1480613ec257506001600160e01b03198216635b5e139f60e01b145b80610ac357506301ffc9a760e01b6001600160e01b0319831614610ac3565b8080613ef557506001600160a01b03821615155b15613fb7576000613f058461358f565b90506001600160a01b03831615801590613f315750826001600160a01b0316816001600160a01b031614155b8015613f445750613f42818461343d565b155b15613f6d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401611967565b8115613fb55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610f3f82826040518060200160405280600081525061412a565b60008281526006602052604090206140198282614f12565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61405c838383614141565b611fa8576001600160a01b03831661408a57604051637e27328960e01b815260048101829052602401611967565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401611967565b60606140c08261358f565b5060006140d860408051602081019091526000815290565b905060008151116140f85760405180602001604052806000815250614123565b80614102846141a4565b6040516020016141139291906151b3565b6040516020818303038152906040525b9392505050565b6141348383614236565b611fa86000848484613c5e565b60006001600160a01b03831615801590613e895750826001600160a01b0316846001600160a01b0316148061417b575061417b848461343d565b80613e895750506000908152600460205260409020546001600160a01b03908116911614919050565b606060006141b18361429b565b60010190506000816001600160401b038111156141d0576141d0614529565b6040519080825280601f01601f1916602001820160405280156141fa576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461420457509392505050565b6001600160a01b03821661426057604051633250574960e11b815260006004820152602401611967565b600061426e83836000613a4f565b90506001600160a01b03811615611fa8576040516339e3563760e11b815260006004820152602401611967565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106142da5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614306576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061432457662386f26fc10000830492506010015b6305f5e100831061433c576305f5e100830492506008015b612710831061435057612710830492506004015b60648310614362576064830492506002015b600a8310610ac35760010192915050565b6001600160e01b03198116811461351d57600080fd5b60006020828403121561439b57600080fd5b813561412381614373565b6001600160a01b038116811461351d57600080fd5b6000602082840312156143cd57600080fd5b8135614123816143a6565b600081518084526020808501945080840160005b8381101561440b57815160ff16875295820195908201906001016143ec565b509495945050505050565b60608152600061442960608301866143d8565b60208382038185015261443c82876143d8565b8481036040860152855180825282870193509082019060005b81811015614473578451151583529383019391830191600101614455565b509098975050505050505050565b60005b8381101561449c578181015183820152602001614484565b50506000910152565b600081518084526144bd816020860160208601614481565b601f01601f19169290920160200192915050565b60208152600061412360208301846144a5565b6000602082840312156144f657600080fd5b5035919050565b6000806040838503121561451057600080fd5b823561451b816143a6565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561456757614567614529565b604052919050565b60006001600160401b0382111561458857614588614529565b5060051b60200190565b803560ff811681146145a357600080fd5b919050565b600082601f8301126145b957600080fd5b813560206145ce6145c98361456f565b61453f565b82815260059290921b840181019181810190868411156145ed57600080fd5b8286015b8481101561460f5761460281614592565b83529183019183016145f1565b509695505050505050565b6000806000806060858703121561463057600080fd5b8435935060208501356001600160401b038082111561464e57600080fd5b61465a888389016145a8565b9450604087013591508082111561467057600080fd5b818701915087601f83011261468457600080fd5b81358181111561469357600080fd5b8860208285010111156146a557600080fd5b95989497505060200194505050565b600080604083850312156146c757600080fd5b82356146d2816143a6565b91506146e060208401614592565b90509250929050565b600082601f8301126146fa57600080fd5b8135602061470a6145c98361456f565b82815260059290921b8401810191818101908684111561472957600080fd5b8286015b8481101561460f5780356001600160401b0381111561474c5760008081fd5b61475a8986838b01016145a8565b84525091830191830161472d565b60008083601f84011261477a57600080fd5b5081356001600160401b0381111561479157600080fd5b6020830191508360208260051b85010111156147ac57600080fd5b9250929050565b6000806000806000608086880312156147cb57600080fd5b6147d486614592565b94506020808701356001600160401b03808211156147f157600080fd5b818901915089601f83011261480557600080fd5b81356148136145c98261456f565b81815260059190911b8301840190848101908c83111561483257600080fd5b938501935b8285101561485057843582529385019390850190614837565b98505050604089013592508083111561486857600080fd5b6148748a848b016146e9565b9550606089013592508083111561488a57600080fd5b505061489888828901614768565b969995985093965092949392505050565b600080602083850312156148bc57600080fd5b82356001600160401b038111156148d257600080fd5b6148de85828601614768565b90969095509350505050565b6000806000606084860312156148ff57600080fd5b833561490a816143a6565b9250602084013561491a816143a6565b929592945050506040919091013590565b60006020828403121561493d57600080fd5b61412382614592565b60008060006060848603121561495b57600080fd5b8335614966816143a6565b92506020840135915060408401356001600160401b0381111561498857600080fd5b614994868287016145a8565b9150509250925092565b801515811461351d57600080fd5b6000602082840312156149be57600080fd5b81356141238161499e565b60006001600160401b038211156149e2576149e2614529565b50601f01601f191660200190565b60006149fe6145c9846149c9565b9050828152838383011115614a1257600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a3a57600080fd5b614123838335602085016149f0565b60008060408385031215614a5c57600080fd5b82356001600160401b0380821115614a7357600080fd5b614a7f86838701614a29565b93506020850135915080821115614a9557600080fd5b50614aa285828601614a29565b9150509250929050565b600080600060408486031215614ac157600080fd5b8335614acc816143a6565b925060208401356001600160401b03811115614ae757600080fd5b614af386828701614768565b9497909650939450505050565b60008060408385031215614b1357600080fd5b8235614b1e816143a6565b91506020830135614b2e8161499e565b809150509250929050565b60008060008060808587031215614b4f57600080fd5b8435614b5a816143a6565b9350614b6860208601614592565b92506040850135614b78816143a6565b9150614b8660608601614592565b905092959194509250565b60008060008060808587031215614ba757600080fd5b8435614bb2816143a6565b93506020850135614bc2816143a6565b92506040850135915060608501356001600160401b03811115614be457600080fd5b8501601f81018713614bf557600080fd5b614c04878235602084016149f0565b91505092959194509250565b60008060408385031215614c2357600080fd5b8235614c2e816143a6565b91506020830135614b2e816143a6565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614c6657600080fd5b81516141238161499e565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103614c9d57614c9d614c71565b60010192915050565b600060018201614cb857614cb8614c71565b5060010190565b600181811c90821680614cd357607f821691505b6020821081036123bd57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b81811015614d4557845160ff1683529383019391830191600101614d26565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b600060208284031215614d8c57600080fd5b8151614123816143a6565b6000808335601e19843603018112614dae57600080fd5b8301803591506001600160401b03821115614dc857600080fd5b6020019150368190038213156147ac57600080fd5b80820180821115610ac357610ac3614c71565b600060208284031215614e0257600080fd5b5051919050565b600060ff821680614e1c57614e1c614c71565b6000190192915050565b60008184825b85811015614e555760ff614e3f83614592565b1683526020928301929190910190600101614e2c565b509095945050505050565b81810381811115610ac357610ac3614c71565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b600082614ec757634e487b7160e01b600052601260045260246000fd5b500490565b601f821115611fa857600081815260208120601f850160051c81016020861015614ef35750805b601f850160051c820191505b8181101561131d57828155600101614eff565b81516001600160401b03811115614f2b57614f2b614529565b614f3f81614f398454614cbf565b84614ecc565b602080601f831160018114614f745760008415614f5c5750858301515b600019600386901b1c1916600185901b17855561131d565b600085815260208120601f198616915b82811015614fa357888601518255948401946001909101908401614f84565b5085821015614fc15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614fe3818460208701614481565b9190910192915050565b600060208284031215614fff57600080fd5b81516001600160401b0381111561501557600080fd5b8201601f8101841361502657600080fd5b80516150346145c9826149c9565b81815285602083850101111561504957600080fd5b61110f826020830160208601614481565b600080865461506881614cbf565b600182811680156150805760018114615095576150c4565b60ff19841687528215158302870194506150c4565b8a60005260208060002060005b858110156150bb5781548a8201529084019082016150a2565b50505082870194505b5050505085516150d8818360208a01614481565b85519101906150eb818360208901614481565b84519101906150fe818360208801614481565b019695505050505050565b8082028115828204841417610ac357610ac3614c71565b815160009082906020808601845b8381101561514d57815160ff168552938201939082019060010161512e565b50929695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061518c908301846144a5565b9695505050505050565b6000602082840312156151a857600080fd5b815161412381614373565b600083516151c5818460208801614481565b8351908301906151d9818360208801614481565b0194935050505056fea26469706673582212202ee01abf07366411de543430d2ce17bd9d85bb7c4732a9d9486b45e32b9c4a6764736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 5805 - }, - { - "length": 20, - "start": 6489 - }, - { - "length": 20, - "start": 10458 - }, - { - "length": 20, - "start": 15317 - } - ] - }, - "contracts/gamma/libs/LibPackVerifier.sol": { - "LibPackVerifier": [ - { - "length": 20, - "start": 6067 - }, - { - "length": 20, - "start": 15807 - } - ] - }, - "contracts/gamma/libs/LibStringUtils.sol": { - "LibStringUtils": [ - { - "length": 20, - "start": 14469 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 3992 - }, - { - "length": 20, - "start": 4676 - }, - { - "length": 20, - "start": 8645 - }, - { - "length": 20, - "start": 13504 - } - ] - }, - "contracts/gamma/libs/LibPackVerifier.sol": { - "LibPackVerifier": [ - { - "length": 20, - "start": 4254 - }, - { - "length": 20, - "start": 13994 - } - ] - }, - "contracts/gamma/libs/LibStringUtils.sol": { - "LibStringUtils": [ - { - "length": 20, - "start": 12656 - } - ] - } - } -} diff --git a/artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json b/artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json deleted file mode 100644 index 33cf9eb9..00000000 --- a/artifacts/contracts/gamma/GammaCardsNFT.v1.sol/NofGammaCardsNFTV1.json +++ /dev/null @@ -1,494 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaCardsNFTV1", - "sourceName": "contracts/gamma/GammaCardsNFT.v1.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "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" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_fromTokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_toTokenId", - "type": "uint256" - } - ], - "name": "BatchMetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "MetadataUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b815250816000908162000065919062000122565b50600162000074828262000122565b505050620001ee565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a857607f821691505b602082108103620000c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011d57600081815260208120601f850160051c81016020861015620000f85750805b601f850160051c820191505b81811015620001195782815560010162000104565b5050505b505050565b81516001600160401b038111156200013e576200013e6200007d565b62000156816200014f845462000093565b84620000cf565b602080601f8311600181146200018e5760008415620001755750858301515b600019600386901b1c1916600185901b17855562000119565b600085815260208120601f198616915b82811015620001bf578886015182559484019460019091019084016200019e565b5085821015620001de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61106480620001fe6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101e1578063b88d4fde146101f4578063c87b56dd14610207578063e985e9c51461021a57600080fd5b80636352211e146101a557806370a08231146101b857806395d89b41146101d957600080fd5b8063095ea7b3116100c8578063095ea7b31461015757806323b872dd1461016c57806342842e0e1461017f57806342966c681461019257600080fd5b806301ffc9a7146100ef57806306fdde0314610117578063081812fc1461012c575b600080fd5b6101026100fd366004610cd4565b61022d565b60405190151581526020015b60405180910390f35b61011f61023e565b60405161010e9190610d41565b61013f61013a366004610d54565b6102d0565b6040516001600160a01b03909116815260200161010e565b61016a610165366004610d89565b6102f9565b005b61016a61017a366004610db3565b610308565b61016a61018d366004610db3565b610398565b61016a6101a0366004610d54565b6103b8565b61013f6101b3366004610d54565b6103c4565b6101cb6101c6366004610def565b6103cf565b60405190815260200161010e565b61011f610417565b61016a6101ef366004610e0a565b610426565b61016a610202366004610e5c565b610431565b61011f610215366004610d54565b610448565b610102610228366004610f38565b610453565b600061023882610481565b92915050565b60606000805461024d90610f6b565b80601f016020809104026020016040519081016040528092919081815260200182805461027990610f6b565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b60006102db826104a6565b506000828152600460205260409020546001600160a01b0316610238565b6103048282336104df565b5050565b6001600160a01b03821661033757604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103448383336104ec565b9050836001600160a01b0316816001600160a01b031614610392576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161032e565b50505050565b6103b383838360405180602001604052806000815250610431565b505050565b610304600082336104ec565b6000610238826104a6565b60006001600160a01b0382166103fb576040516322718ad960e21b81526000600482015260240161032e565b506001600160a01b031660009081526003602052604090205490565b60606001805461024d90610f6b565b6103043383836105e5565b61043c848484610308565b61039284848484610684565b6060610238826107ad565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216632483248360e11b14806102385750610238826108be565b6000818152600260205260408120546001600160a01b03168061023857604051637e27328960e01b81526004810184905260240161032e565b6103b3838383600161090e565b6000828152600260205260408120546001600160a01b039081169083161561051957610519818486610a14565b6001600160a01b038116156105575761053660008560008061090e565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610586576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6001600160a01b03821661061757604051630b61174360e31b81526001600160a01b038316600482015260240161032e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561039257604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906106c6903390889087908790600401610fa5565b6020604051808303816000875af1925050508015610701575060408051601f3d908101601f191682019092526106fe91810190610fe2565b60015b61076a573d80801561072f576040519150601f19603f3d011682016040523d82523d6000602084013e610734565b606091505b50805160000361076257604051633250574960e11b81526001600160a01b038516600482015260240161032e565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146107a657604051633250574960e11b81526001600160a01b038516600482015260240161032e565b5050505050565b60606107b8826104a6565b50600082815260066020526040812080546107d290610f6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107fe90610f6b565b801561084b5780601f106108205761010080835404028352916020019161084b565b820191906000526020600020905b81548152906001019060200180831161082e57829003601f168201915b50505050509050600061086960408051602081019091526000815290565b9050805160000361087b575092915050565b8151156108ad578082604051602001610895929190610fff565b60405160208183030381529060405292505050919050565b6108b684610a78565b949350505050565b60006001600160e01b031982166380ac58cd60e01b14806108ef57506001600160e01b03198216635b5e139f60e01b145b8061023857506301ffc9a760e01b6001600160e01b0319831614610238565b808061092257506001600160a01b03821615155b156109e4576000610932846104a6565b90506001600160a01b0383161580159061095e5750826001600160a01b0316816001600160a01b031614155b8015610971575061096f8184610453565b155b1561099a5760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161032e565b81156109e25783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610a1f838383610aed565b6103b3576001600160a01b038316610a4d57604051637e27328960e01b81526004810182905260240161032e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161032e565b6060610a83826104a6565b506000610a9b60408051602081019091526000815290565b90506000815111610abb5760405180602001604052806000815250610ae6565b80610ac584610b50565b604051602001610ad6929190610fff565b6040516020818303038152906040525b9392505050565b60006001600160a01b038316158015906108b65750826001600160a01b0316846001600160a01b03161480610b275750610b278484610453565b806108b65750506000908152600460205260409020546001600160a01b03908116911614919050565b60606000610b5d83610be3565b600101905060008167ffffffffffffffff811115610b7d57610b7d610e46565b6040519080825280601f01601f191660200182016040528015610ba7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bb157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c225772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c4e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c6c57662386f26fc10000830492506010015b6305f5e1008310610c84576305f5e100830492506008015b6127108310610c9857612710830492506004015b60648310610caa576064830492506002015b600a83106102385760010192915050565b6001600160e01b031981168114610cd157600080fd5b50565b600060208284031215610ce657600080fd5b8135610ae681610cbb565b60005b83811015610d0c578181015183820152602001610cf4565b50506000910152565b60008151808452610d2d816020860160208601610cf1565b601f01601f19169290920160200192915050565b602081526000610ae66020830184610d15565b600060208284031215610d6657600080fd5b5035919050565b80356001600160a01b0381168114610d8457600080fd5b919050565b60008060408385031215610d9c57600080fd5b610da583610d6d565b946020939093013593505050565b600080600060608486031215610dc857600080fd5b610dd184610d6d565b9250610ddf60208501610d6d565b9150604084013590509250925092565b600060208284031215610e0157600080fd5b610ae682610d6d565b60008060408385031215610e1d57600080fd5b610e2683610d6d565b915060208301358015158114610e3b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e7257600080fd5b610e7b85610d6d565b9350610e8960208601610d6d565b925060408501359150606085013567ffffffffffffffff80821115610ead57600080fd5b818701915087601f830112610ec157600080fd5b813581811115610ed357610ed3610e46565b604051601f8201601f19908116603f01168101908382118183101715610efb57610efb610e46565b816040528281528a6020848701011115610f1457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f4b57600080fd5b610f5483610d6d565b9150610f6260208401610d6d565b90509250929050565b600181811c90821680610f7f57607f821691505b602082108103610f9f57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610fd890830184610d15565b9695505050505050565b600060208284031215610ff457600080fd5b8151610ae681610cbb565b60008351611011818460208801610cf1565b835190830190611025818360208801610cf1565b0194935050505056fea26469706673582212200da02dc7a1c602e1495611ea2061595e88b0d59cbd8ecb9d3818c746fec8b71564736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json b/artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json deleted file mode 100644 index f63542d5..00000000 --- a/artifacts/contracts/gamma/GammaOffers.v4.sol/IGammaCardsContract.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IGammaCardsContract", - "sourceName": "contracts/gamma/GammaOffers.v4.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberFrom", - "type": "uint8" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberTo", - "type": "uint8" - } - ], - "name": "exchangeCardsOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "hasCardByOffer", - "outputs": [ - { - "internalType": "bool", - "name": "has", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "restoreCardByOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json b/artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json deleted file mode 100644 index c7c5c39c..00000000 --- a/artifacts/contracts/gamma/GammaOffers.v4.sol/NofGammaOffersV4.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaOffersV4", - "sourceName": "contracts/gamma/GammaOffers.v4.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_cardsContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ExchangeError", - "type": "error" - }, - { - "inputs": [], - "name": "GammaCardsContractNotSet", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCard", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidCardNumber", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidOfferId", - "type": "error" - }, - { - "inputs": [], - "name": "OfferAlreadyExists", - "type": "error" - }, - { - "inputs": [], - "name": "OfferDoesNotExists", - "type": "error" - }, - { - "inputs": [], - "name": "OfferNotDeleted", - "type": "error" - }, - { - "inputs": [], - "name": "OffersMaximumAllowed", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyCardsContract", - "type": "error" - }, - { - "inputs": [], - "name": "OnlyOwners", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [], - "name": "RemoveOfferFromCardNumberMapping_DoNotMatch", - "type": "error" - }, - { - "inputs": [], - "name": "RemoveOfferFromUserMapping_DoNotMatch", - "type": "error" - }, - { - "inputs": [], - "name": "UserAlreadyHasCard", - "type": "error" - }, - { - "inputs": [], - "name": "UserDoesNotHaveCard", - "type": "error" - }, - { - "anonymous": false, - "inputs": [], - "name": "AllOffersRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newGammaCardsContract", - "type": "address" - } - ], - "name": "NewGammaCardsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - } - ], - "name": "OfferCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "OfferRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "UserOffersRemoved", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "canAnyUserPublishOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "canUserPublishOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_value", - "type": "bool" - } - ], - "name": "changeRemoveCardinInventoryWhenOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumberWanted", - "type": "uint8" - }, - { - "internalType": "address", - "name": "offerWallet", - "type": "address" - }, - { - "internalType": "uint8", - "name": "offerCardNumber", - "type": "uint8" - } - ], - "name": "confirmOfferExchange", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - } - ], - "name": "createOffer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - } - ], - "name": "createOfferWithoUser", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "deleteAllOffers", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaCardsContract", - "outputs": [ - { - "internalType": "contract IGammaCardsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxOffersAllowed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxOffersByUserAllowed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getOfferByIndex", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - } - ], - "name": "getOfferByOfferId", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOfferByUserAndCardNumber", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOffers", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOffersByCardNumber", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "getOffersByCardNumberCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getOffersByUser", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "uint8[]", - "name": "wantedCardNumbers", - "type": "uint8[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "internalType": "struct NofGammaOffersV4.Offer[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getOffersByUserCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOffersCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "hasOffer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "offers", - "outputs": [ - { - "internalType": "string", - "name": "offerId", - "type": "string" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "name": "offersByCardNumberCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "offersByUserCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "offersTotalCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeOfferByCardNumber", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint8", - "name": "cardNumber", - "type": "uint8" - } - ], - "name": "removeOfferByUserAndCardNumber", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "removeOffersByUser", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - } - ], - "name": "setGammaCardsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxCardNumbersAllowed", - "type": "uint256" - } - ], - "name": "setMaxCardNumbersAllowed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxOffersAllowed", - "type": "uint256" - } - ], - "name": "setMaxOffersAllowed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_maxOffersByUserAllowed", - "type": "uint256" - } - ], - "name": "setMaxOffersByUserAllowed", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526113886004556005805560786006556007805460ff191690553480156200002a57600080fd5b506040516200379b3803806200379b8339810160408190526200004d9162000138565b33806200007457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200007f81620000e8565b506001600160a01b038116620000a85760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091178155336000908152600260205260409020805460ff191690911790556200016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014b57600080fd5b81516001600160a01b03811681146200016357600080fd5b9392505050565b613621806200017a6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637594a6ed11610130578063ce7483d5116100b8578063e2b365961161007c578063e2b36596146104f7578063e359a0a11461050a578063e5e5f7321461051d578063f2fde38b14610530578063fc9e80fc1461054357600080fd5b8063ce7483d514610486578063cf86f8e5146104a9578063d250f03a146104b1578063d827a8f4146104c4578063e02f9723146104e457600080fd5b806390222aa1116100ff57806390222aa1146104305780639618b333146104385780639f9150691461044b578063ba79b77b1461046b578063c08029e71461047357600080fd5b80637594a6ed146103b55780638400a189146103d55780638a72ea6a146103e85780638da5cb5b1461040b57600080fd5b80633e293e16116101b35780635a919aeb116101825780635a919aeb146103725780635bbfbfd61461037b578063619980dc1461038e5780637065cb481461039a578063715018a6146103ad57600080fd5b80633e293e16146103245780633ee992ee146103375780634c7a7ad31461034c57806358e57ebb1461035f57600080fd5b80632edb5fcf116101fa5780632edb5fcf146102b75780632f54bf6e146102ca578063322fba27146102f65780633808dfe7146102fe5780633a0270731461031157600080fd5b80630cdb31171461022c578063173825d91461025257806317a1fed91461026757806329d3f60b1461027a575b600080fd5b61023f61023a366004612d11565b610556565b6040519081526020015b60405180910390f35b610265610260366004612d11565b61059b565b005b610265610275366004612e82565b610641565b6102a7610288366004612d11565b6001600160a01b03166000908152600b60205260409020546005541190565b6040519015158152602001610249565b6102a76102c5366004612f07565b610683565b6102a76102d8366004612d11565b6001600160a01b031660009081526002602052604090205460ff1690565b610265610743565b61026561030c366004612f3a565b6108f2565b6102a761031f366004612f53565b610927565b610265610332366004612f6e565b61096f565b61033f610980565b60405161024991906130d4565b61026561035a366004612d11565b610b14565b61026561036d366004613144565b610bbf565b61023f600d5481565b6102a7610389366004612f07565b610c02565b600d54600454116102a7565b6102656103a8366004612d11565b610c83565b610265610cfa565b61023f6103c3366004612d11565b600b6020526000908152604090205481565b61033f6103e3366004612f53565b610d0e565b6103fb6103f6366004612f3a565b610eb2565b6040516102499493929190613161565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610249565b60045461023f565b61033f610446366004612d11565b610f8a565b61045e610459366004612f07565b61114d565b604051610249919061319c565b60055461023f565b6102656104813660046131af565b61135d565b61023f610494366004612f53565b60ff166000908152600c602052604090205490565b600d5461023f565b600154610418906001600160a01b031681565b61023f6104d2366004612f53565b600c6020526000908152604090205481565b6102656104f2366004612f3a565b611681565b61045e610505366004613203565b6116b6565b61045e610518366004612f3a565b6118bf565b61026561052b366004612f3a565b611a4b565b61026561053e366004612d11565b611a80565b6102a7610551366004612d11565b611ac3565b60006001600160a01b03821661057f5760405163e6c4247b60e01b815260040160405180910390fd5b506001600160a01b03166000908152600b602052604090205490565b3360009081526002602052604090205460ff166105cb57604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561062657600080fd5b505af415801561063a573d6000803e3d6000fd5b5050505050565b3360009081526002602052604090205460ff1661067157604051634289c49360e01b815260040160405180910390fd5b61067d84848484611d0e565b50505050565b60006001600160a01b0383166106ac5760405163e6c4247b60e01b815260040160405180910390fd5b60005b6001600160a01b0384166000908152600b6020526040902054811015610737576001600160a01b0384166000908152600960205260409020805460ff85169190839081106106ff576106ff613238565b600091825260209091206001600590920201015460ff160361072557600191505061073d565b8061072f81613264565b9150506106af565b50600090505b92915050565b3360009081526002602052604090205460ff1661077357604051634289c49360e01b815260040160405180910390fd5b60005b6008548110156108b357600960006008838154811061079757610797613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181206107cd91612ae6565b6000600b6000600884815481106107e6576107e6613238565b60009182526020808320600360059093020191909101546001600160a01b0316835282019290925260400181209190915560088054600a9291908490811061083057610830613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001812061086091612ae6565b6000600c60006008848154811061087957610879613238565b600091825260208083206001600590930201919091015460ff168352820192909252604001902055806108ab81613264565b915050610776565b506000600d8190556108c790600890612ae6565b6040517f47e81efc038e27bb296dec5d44262943d2c2bbec28f461787a9cc53885694cb090600090a1565b3360009081526002602052604090205460ff1661092257604051634289c49360e01b815260040160405180910390fd5b600555565b600080610934338461114d565b60608101519091506001600160a01b031633146109545750600092915050565b6000610967338584600001516000612241565b949350505050565b61097b83338484611d0e565b505050565b60606008805480602002602001604051908101604052809291908181526020016000905b82821015610b0b57838290600052602060002090600502016040518060a00160405290816000820180546109d79061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a039061327d565b8015610a505780601f10610a2557610100808354040283529160200191610a50565b820191906000526020600020905b815481529060010190602001808311610a3357829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610ad057602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610aa15790505b505050918352505060038201546001600160a01b031660208083019190915260049092015460409091015290825260019290920191016109a4565b50505050905090565b3360009081526002602052604090205460ff16610b4457604051634289c49360e01b815260040160405180910390fd5b6001600160a01b038116610b6b5760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa9060200160405180910390a150565b3360009081526002602052604090205460ff16610bef57604051634289c49360e01b815260040160405180910390fd5b6007805460ff1916911515919091179055565b3360009081526002602052604081205460ff16610c3257604051634289c49360e01b815260040160405180910390fd5b6000610c3e848461114d565b9050836001600160a01b031681606001516001600160a01b031614610c6757600091505061073d565b6000610c7a858584600001516000612241565b95945050505050565b3360009081526002602052604090205460ff16610cb357604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600260048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161060e565b610d026123b8565b610d0c60006123e5565b565b60ff81166000908152600a60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610ea757838290600052602060002090600502016040518060a0016040529081600082018054610d739061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f9061327d565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015610e6c57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e3d5790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610d40565b505050509050919050565b60088181548110610ec257600080fd5b9060005260206000209060050201600091509050806000018054610ee59061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f119061327d565b8015610f5e5780601f10610f3357610100808354040283529160200191610f5e565b820191906000526020600020905b815481529060010190602001808311610f4157829003601f168201915b5050505060018301546003840154600490940154929360ff909116926001600160a01b03909116915084565b60606001600160a01b038216610fb35760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260096020908152604080832080548251818502810185019093528083529193909284015b82821015610ea757838290600052602060002090600502016040518060a00160405290816000820180546110199061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546110459061327d565b80156110925780601f1061106757610100808354040283529160200191611092565b820191906000526020600020905b81548152906001019060200180831161107557829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561111257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116110e35790505b505050918352505060038201546001600160a01b03166020808301919091526004909201546040909101529082526001929092019101610fe6565b611155612b07565b6001600160a01b03831661117c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320600b90925282205490915b81811015611354578460ff168382815481106111c0576111c0613238565b600091825260209091206001600590920201015460ff1603611342578281815481106111ee576111ee613238565b90600052602060002090600502016040518060a00160405290816000820180546112179061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546112439061327d565b80156112905780601f1061126557610100808354040283529160200191611290565b820191906000526020600020905b81548152906001019060200180831161127357829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561131057602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116112e15790505b505050918352505060038201546001600160a01b03166020820152600490910154604090910152935061073d92505050565b8061134c81613264565b9150506111a2565b50610c7a612435565b6000611369838361114d565b9050826001600160a01b031681606001516001600160a01b0316146113a157604051631ded229360e11b815260040160405180910390fd5b604081015180516000036114475760015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906113e190879089906004016132b7565b6020604051808303816000875af1158015611400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142491906132d3565b1561144257604051631177b29560e11b815260040160405180910390fd5b6114bc565b6000805b82518160ff16101561149b578660ff16838260ff168151811061147057611470613238565b602002602001015160ff1603611489576001915061149b565b80611493816132f0565b91505061144b565b50806114ba57604051630eefa23760e11b815260040160405180910390fd5b505b60006114cf858585600001516001612241565b9050806114ef57604051631b44035160e01b815260040160405180910390fd5b60015460405163568b427d60e11b81526001600160a01b03898116600483015260ff808a1660248401528882166044840152871660648301529091169063ad1684fa90608401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505060015460405163117ece1960e31b81526001600160a01b039091169250638bf670c89150611599908a9088906004016132b7565b6020604051808303816000875af11580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc91906132d3565b158061165a575060015460405163117ece1960e31b81526001600160a01b0390911690638bf670c8906116159088908a906004016132b7565b6020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906132d3565b155b156116785760405163fc9716b960e01b815260040160405180910390fd5b50505050505050565b3360009081526002602052604090205460ff166116b157604051634289c49360e01b815260040160405180910390fd5b600655565b6116be612b07565b60005b6008548110156118b657826040516020016116dc919061330f565b604051602081830303815290604052805190602001206008828154811061170557611705613238565b9060005260206000209060050201600001604051602001611726919061332b565b60405160208183030381529060405280519060200120036118a4576008818154811061175457611754613238565b90600052602060002090600502016040518060a001604052908160008201805461177d9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a99061327d565b80156117f65780601f106117cb576101008083540402835291602001916117f6565b820191906000526020600020905b8154815290600101906020018083116117d957829003601f168201915b5050509183525050600182015460ff16602080830191909152600283018054604080518285028101850182528281529401939283018282801561187657602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116118475790505b505050918352505060038201546001600160a01b031660208201526004909101546040909101529392505050565b806118ae81613264565b9150506116c1565b5061073d612435565b6118c7612b07565b60085482106118e957604051635129cab160e11b815260040160405180910390fd5b600882815481106118fc576118fc613238565b90600052602060002090600502016040518060a00160405290816000820180546119259061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546119519061327d565b801561199e5780601f106119735761010080835404028352916020019161199e565b820191906000526020600020905b81548152906001019060200180831161198157829003601f168201915b5050509183525050600182015460ff166020808301919091526002830180546040805182850281018501825282815294019392830182828015611a1e57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116119ef5790505b505050918352505060038201546001600160a01b0316602082015260049091015460409091015292915050565b3360009081526002602052604090205460ff16611a7b57604051634289c49360e01b815260040160405180910390fd5b600455565b611a886123b8565b6001600160a01b038116611ab757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b611ac0816123e5565b50565b6001546000906001600160a01b03163314611af15760405163a71ed6c760e01b815260040160405180910390fd5b6001600160a01b038216611b185760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600960209081526040808320600b90925282205490915b81811015611c91576000838281548110611b5a57611b5a613238565b90600052602060002090600502016000018054611b769061327d565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba29061327d565b8015611bef5780601f10611bc457610100808354040283529160200191611bef565b820191906000526020600020905b815481529060010190602001808311611bd257829003601f168201915b505050505090506000848381548110611c0a57611c0a613238565b600091825260209091206001600590920201015460ff169050611c2e87828461247e565b611c3782612732565b5060ff81166000908152600c60205260408120805460019290611c5b9084906133a1565b925050819055506001600d6000828254611c7591906133a1565b9250508190555050508080611c8990613264565b915050611b3e565b506001600160a01b0384166000908152600960205260408120611cb391612ae6565b6001600160a01b0384166000818152600b602090815260408083209290925590519182527f65419c67e554142d50c59abd004485123ca498611a223f842e75dd96225ba4c8910160405180910390a16001925050505b919050565b6001546001600160a01b0316611d375760405163cfdf350560e01b815260040160405180910390fd5b6005546001600160a01b0384166000908152600b602052604090205410611d715760405163182a7d7760e01b815260040160405180910390fd5b600454600d5410611d955760405163182a7d7760e01b815260040160405180910390fd5b60015460405163117ece1960e31b81526000916001600160a01b031690638bf670c890611dc890879087906004016132b7565b6020604051808303816000875af1158015611de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0b91906132d3565b905080611e2b5760405163142d47a160e11b815260040160405180910390fd5b60005b82518160ff161015611e8e578360ff16838260ff1681518110611e5357611e53613238565b602002602001015160ff1603611e7c57604051630d1ecf1760e11b815260040160405180910390fd5b80611e86816132f0565b915050611e2e565b506000611e9b858561114d565b60608101519091506001600160a01b031615611eca5760405163eeee5c8b60e01b815260040160405180910390fd5b6001600160a01b0385166000908152600b60205260408120805460019290611ef39084906133b4565b909155505060ff84166000908152600c60205260408120805460019290611f1b9084906133b4565b925050819055506001600d6000828254611f3591906133b4565b90915550506040805160a08101825287815260ff861660208201529081018490526001600160a01b038616606082015242608082015260088054600181018255600091909152815160059091027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301908190611fb19082613415565b5060208281015160018301805460ff191660ff90921691909117905560408301518051611fe49260028501920190612b42565b5060608201516003820180546001600160a01b0319166001600160a01b039283161790556080909201516004909101558516600090815260096020526040902060088054612034906001906133a1565b8154811061204457612044613238565b600091825260208083208454600181018655948452922060059182029092019202018061207183826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546120a09284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560ff84166000908152600a60205260409020600880546120f2906001906133a1565b8154811061210257612102613238565b600091825260208083208454600181018655948452922060059182029092019202018061212f83826134d5565b50600182810154908201805460ff191660ff9092169190911790556002808301805461215e9284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b0390921691909117905560049182015491015560075460ff16156121fe57600154604051631c5568eb60e21b81526001600160a01b0390911690637155a3ac906121cb90889088906004016132b7565b600060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050505b7fed750964f1f81f105e56dfd1121427e0898e7bc23d6c10e92d851a2d35e0cfc5858585604051612231939291906135a8565b60405180910390a1505050505050565b60006001600160a01b03851661226a5760405163e6c4247b60e01b815260040160405180910390fd5b6122758585856129af565b61228085858561247e565b61228983612732565b506001600160a01b0385166000908152600b602052604081208054600192906122b39084906133a1565b909155505060ff84166000908152600c602052604081208054600192906122db9084906133a1565b925050819055506001600d60008282546122f591906133a1565b909155505060075460ff16801561230a575081155b1561237457600154604051630aaf17c960e11b81526001600160a01b039091169063155e2f929061234190889088906004016132b7565b600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b505050505b7f7911e34642eae38762395a3dd0fa3308d0f8908b92fe36c41543d635ab7cb8f585856040516123a59291906132b7565b60405180910390a1506001949350505050565b6000546001600160a01b03163314610d0c5760405163118cdaa760e01b8152336004820152602401611aae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61243d612b07565b506040805160c081018252600060a0820181815282526020808301829052835182815290810184529282019290925260608101829052608081019190915290565b60ff82166000908152600a60205260408120905b815481101561063a576125508282815481106124b0576124b0613238565b906000526020600020906005020160000180546124cc9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546124f89061327d565b80156125455780601f1061251a57610100808354040283529160200191612545565b820191906000526020600020905b81548152906001019060200180831161252857829003601f168201915b505050505084612a8d565b1561272057846001600160a01b031682828154811061257157612571613238565b60009182526020909120600360059092020101546001600160a01b03161415806125c657508360ff168282815481106125ac576125ac613238565b600091825260209091206001600590920201015460ff1614155b156125e4576040516357aeb86360e11b815260040160405180910390fd5b81546125f2906001906133a1565b8110156126b45781548290612609906001906133a1565b8154811061261957612619613238565b906000526020600020906005020182828154811061263957612639613238565b600091825260209091206005909102018061265483826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546126839284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101555b818054806126c4576126c46135d5565b600082815260208120600019909201916005830201906126e48282612c36565b60018201805460ff191690556126fe600283016000612c70565b506003810180546001600160a01b03191690556000600490910155905561063a565b8061272a81613264565b915050612492565b600080805b6008548110156129a8576008548110801561280357506128036008828154811061276357612763613238565b9060005260206000209060050201600001805461277f9061327d565b80601f01602080910402602001604051908101604052809291908181526020018280546127ab9061327d565b80156127f85780601f106127cd576101008083540402835291602001916127f8565b820191906000526020600020905b8154815290600101906020018083116127db57829003601f168201915b505050505085612a8d565b15612996576008818154811061281b5761281b613238565b600091825260208220600590910201906128358282612c36565b60018201805460ff1916905561284f600283016000612c70565b506003810180546001600160a01b031916905560006004909101556008805461287a906001906133a1565b8154811061288a5761288a613238565b9060005260206000209060050201600882815481106128ab576128ab613238565b60009182526020909120600590910201806128c683826134d5565b50600182810154908201805460ff191660ff909216919091179055600280830180546128f59284019190612be8565b5060038281015490820180546001600160a01b0319166001600160a01b039092169190911790556004918201549101556008805480612936576129366135d5565b600082815260208120600019909201916005830201906129568282612c36565b60018201805460ff19169055612970600283016000612c70565b506003810180546001600160a01b031916905560006004909101559055600191506129a8565b806129a081613264565b915050612737565b5092915050565b6001600160a01b0383166000908152600960205260408120905b815481101561063a576129e78282815481106124b0576124b0613238565b15612a7b57846001600160a01b0316828281548110612a0857612a08613238565b60009182526020909120600360059092020101546001600160a01b0316141580612a5d57508360ff16828281548110612a4357612a43613238565b600091825260209091206001600590920201015460ff1614155b156125e45760405163b7f2d83360e01b815260040160405180910390fd5b80612a8581613264565b9150506129c9565b600081604051602001612aa0919061330f565b6040516020818303038152906040528051906020012083604051602001612ac7919061330f565b6040516020818303038152906040528051906020012014905092915050565b5080546000825560050290600052602060002090810190611ac09190612c95565b6040518060a0016040528060608152602001600060ff1681526020016060815260200160006001600160a01b03168152602001600081525090565b82805482825590600052602060002090601f01602090048101928215612bd85791602002820160005b83821115612ba957835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612b6b565b8015612bd65782816101000a81549060ff0219169055600101602081600001049283019260010302612ba9565b505b50612be4929150612ce5565b5090565b82805482825590600052602060002090601f01602090048101928215612bd857600052602060002091601f016020900482015b82811115612bd8578254825591600101919060010190612c1b565b508054612c429061327d565b6000825580601f10612c52575050565b601f016020900490600052602060002090810190611ac09190612ce5565b50805460008255601f016020900490600052602060002090810190611ac09190612ce5565b80821115612be4576000612ca98282612c36565b60018201805460ff19169055612cc3600283016000612c70565b506003810180546001600160a01b031916905560006004820155600501612c95565b5b80821115612be45760008155600101612ce6565b80356001600160a01b0381168114611d0957600080fd5b600060208284031215612d2357600080fd5b612d2c82612cfa565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7257612d72612d33565b604052919050565b600082601f830112612d8b57600080fd5b813567ffffffffffffffff811115612da557612da5612d33565b612db8601f8201601f1916602001612d49565b818152846020838601011115612dcd57600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611d0957600080fd5b600082601f830112612e0c57600080fd5b8135602067ffffffffffffffff821115612e2857612e28612d33565b8160051b612e37828201612d49565b9283528481018201928281019087851115612e5157600080fd5b83870192505b84831015612e7757612e6883612dea565b82529183019190830190612e57565b979650505050505050565b60008060008060808587031215612e9857600080fd5b843567ffffffffffffffff80821115612eb057600080fd5b612ebc88838901612d7a565b9550612eca60208801612cfa565b9450612ed860408801612dea565b93506060870135915080821115612eee57600080fd5b50612efb87828801612dfb565b91505092959194509250565b60008060408385031215612f1a57600080fd5b612f2383612cfa565b9150612f3160208401612dea565b90509250929050565b600060208284031215612f4c57600080fd5b5035919050565b600060208284031215612f6557600080fd5b612d2c82612dea565b600080600060608486031215612f8357600080fd5b833567ffffffffffffffff80821115612f9b57600080fd5b612fa787838801612d7a565b9450612fb560208701612dea565b93506040860135915080821115612fcb57600080fd5b50612fd886828701612dfb565b9150509250925092565b60005b83811015612ffd578181015183820152602001612fe5565b50506000910152565b6000815180845261301e816020860160208601612fe2565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b8381101561306557815160ff1687529582019590820190600101613046565b509495945050505050565b6000815160a0845261308560a0850182613006565b905060ff6020840151166020850152604083015184820360408601526130ab8282613032565b6060858101516001600160a01b0316908701526080948501519490950193909352509192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561312957603f19888603018452613117858351613070565b945092850192908501906001016130fb565b5092979650505050505050565b8015158114611ac057600080fd5b60006020828403121561315657600080fd5b8135612d2c81613136565b6080815260006131746080830187613006565b60ff959095166020830152506001600160a01b03929092166040830152606090910152919050565b602081526000612d2c6020830184613070565b600080600080608085870312156131c557600080fd5b6131ce85612cfa565b93506131dc60208601612dea565b92506131ea60408601612cfa565b91506131f860608601612dea565b905092959194509250565b60006020828403121561321557600080fd5b813567ffffffffffffffff81111561322c57600080fd5b61096784828501612d7a565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016132765761327661324e565b5060010190565b600181811c9082168061329157607f821691505b6020821081036132b157634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0392909216825260ff16602082015260400190565b6000602082840312156132e557600080fd5b8151612d2c81613136565b600060ff821660ff81036133065761330661324e565b60010192915050565b60008251613321818460208701612fe2565b9190910192915050565b60008083546133398161327d565b60018281168015613351576001811461336657613395565b60ff1984168752821515830287019450613395565b8760005260208060002060005b8581101561338c5781548a820152908401908201613373565b50505082870194505b50929695505050505050565b8181038181111561073d5761073d61324e565b8082018082111561073d5761073d61324e565b601f82111561097b57600081815260208120601f850160051c810160208610156133ee5750805b601f850160051c820191505b8181101561340d578281556001016133fa565b505050505050565b815167ffffffffffffffff81111561342f5761342f612d33565b6134438161343d845461327d565b846133c7565b602080601f83116001811461347857600084156134605750858301515b600019600386901b1c1916600185901b17855561340d565b600085815260208120601f198616915b828110156134a757888601518255948401946001909101908401613488565b50858210156134c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181036134e0575050565b6134ea825461327d565b67ffffffffffffffff81111561350257613502612d33565b6135108161343d845461327d565b6000601f821160018114613544576000831561352c5750848201545b600019600385901b1c1916600184901b17845561063a565b600085815260209020601f19841690600086815260209020845b8381101561357e578286015482556001958601959091019060200161355e565b50858310156134c55793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160a01b038416815260ff83166020820152606060408201819052600090610c7a90830184613032565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206049a3600a2849a04d9bce9a19981d3f6780407816218c7190e503af5adcb5d764736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1898 - }, - { - "length": 20, - "start": 3666 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1520 - }, - { - "length": 20, - "start": 3288 - } - ] - } - } -} diff --git a/artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json b/artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json deleted file mode 100644 index c34566c7..00000000 --- a/artifacts/contracts/gamma/GammaPacks.v3.sol/IGammaCardsContract.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IGammaCardsContract", - "sourceName": "contracts/gamma/GammaPacks.v3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "changePackPrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "setPrizesBalance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json b/artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json deleted file mode 100644 index 14cc29e4..00000000 --- a/artifacts/contracts/gamma/GammaPacks.v3.sol/IgammaTicketsContract.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IgammaTicketsContract", - "sourceName": "contracts/gamma/GammaPacks.v3.sol", - "abi": [ - { - "inputs": [], - "name": "deleteAllTickets", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getLotteryWinner", - "outputs": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "ticketId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "ticketCounter", - "type": "uint256" - }, - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json b/artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json deleted file mode 100644 index 6e18eaad..00000000 --- a/artifacts/contracts/gamma/GammaPacks.v3.sol/NofGammaPacksV3.json +++ /dev/null @@ -1,875 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofGammaPacksV3", - "sourceName": "contracts/gamma/GammaPacks.v3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_daiTokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_balanceReceiver", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - }, - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "InsufficientAllowance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "InsufficientPacksAvailable", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidNumberOfPacks", - "type": "error" - }, - { - "inputs": [], - "name": "NotGammaCardsContract", - "type": "error" - }, - { - "inputs": [], - "name": "NotYourPack", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [], - "name": "OwnlyOwners", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - } - ], - "name": "TransferPrizeError", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "balanceReceiver", - "type": "address" - } - ], - "name": "NewBalanceReceiver", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newCardsContract", - "type": "address" - } - ], - "name": "NewGammaCardsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newGammaTicketContract", - "type": "address" - } - ], - "name": "NewGammaTicketsContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } - ], - "name": "NewPrice", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "PackOpened", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "buyer", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "PackPurchased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "PackTransfered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "buyer", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - } - ], - "name": "PacksPurchased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256[]", - "name": "tokenId", - "type": "uint256[]" - } - ], - "name": "PacksTransfered", - "type": "event" - }, - { - "inputs": [], - "name": "DAI_TOKEN", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TOTALSUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "addOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "buyPack", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "buyPackByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "buyPacks", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "buyPacksByUser", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newBalanceReceiver", - "type": "address" - } - ], - "name": "changeBalanceReceiver", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_newPrice", - "type": "uint256" - } - ], - "name": "changePrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_transferDai", - "type": "bool" - } - ], - "name": "changeTransferDaiFlag", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gammaCardsContract", - "outputs": [ - { - "internalType": "contract IGammaCardsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "gammaTicketsContract", - "outputs": [ - { - "internalType": "contract IgammaTicketsContract", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "getAmountRequiredToBuyPacks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getPackOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getPacksByUser", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "getPrizeAmountToBuyPacks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "getPrizeNoFAccountAmountToBuyPacks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numberOfPacks", - "type": "uint256" - } - ], - "name": "meetQuantityConditionsToBuy", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "openPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "openPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_ownerToRemove", - "type": "address" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "s_balanceReceiver", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "s_packPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "s_packs", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "s_packsByUser", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenIds", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaCardsContract", - "type": "address" - } - ], - "name": "setGammaCardsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gammaTicketsContract", - "type": "address" - } - ], - "name": "setGammaTicketsContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "testOpenPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "testOpenPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferPack", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "tokenIds", - "type": "uint256[]" - } - ], - "name": "transferPacks", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526710a741a46278000060075560006008556009805460ff191660011790553480156200002f57600080fd5b5060405162001c6238038062001c628339810160408190526200005291620001af565b33806200007957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000848162000142565b506001600160a01b0383161580620000a357506001600160a01b038216155b80620000b657506001600160a01b038116155b15620000d55760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b03199081166001600160a01b039687161790915560068054821694861694909417909355600180548416928516929092178255600280549093169316929092179055336000908152600360205260409020805460ff191690911790556200020c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001aa57600080fd5b919050565b60008060008060808587031215620001c657600080fd5b620001d18562000192565b9350620001e16020860162000192565b9250620001f16040860162000192565b9150620002016060860162000192565b905092959194509250565b611a46806200021c6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c806394a08c6911610125578063d250f03a116100ad578063d9e8221e1161007c578063d9e8221e146104b3578063ddb975e8146104c6578063e0f78307146104d9578063e606df87146104ec578063f2fde38b146104ff57600080fd5b8063d250f03a14610451578063d3e6a7ad14610464578063d611713e1461048d578063d6a4c3e4146104a057600080fd5b8063a2b40d19116100f4578063a2b40d19146103fd578063ab4bdbc814610410578063b48ce65314610423578063c34e8af414610436578063c37b9bcd1461044957600080fd5b806394a08c69146103bb578063967ed63d146103c457806397f8b3d3146103d757806399e5f896146103ea57600080fd5b80634c7a7ad3116101a85780637065cb48116101775780637065cb4814610369578063715018a61461037c57806380f2540b146103845780638da5cb5b146103975780638fd5baf7146103a857600080fd5b80634c7a7ad31461031a57806362e218781461032d578063656bd0ad1461034d5780636adbaf751461035657600080fd5b80632f54bf6e116101e45780632f54bf6e1461028f57806339e8d3ec146102cb5780633cd626fd146102de5780633f6ecd481461030757600080fd5b806301321c4d146102165780630c3e5c001461023c57806314cca36a14610251578063173825d91461027c575b600080fd5b610229610224366004611696565b610512565b6040519081526020015b60405180910390f35b61024f61024a366004611777565b610540565b005b600254610264906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f61028a3660046117c5565b6105bc565b6102bb61029d3660046117c5565b6001600160a01b031660009081526003602052604090205460ff1690565b6040519015158152602001610233565b61024f6102d93660046117e0565b610662565b6102646102ec366004611696565b600a602052600090815260409020546001600160a01b031681565b610229610315366004611696565b6106a0565b61024f6103283660046117c5565b6106cf565b61034061033b366004611803565b610770565b604051610233919061182d565b61022960075481565b610340610364366004611696565b6107ad565b61024f6103773660046117c5565b6107b9565b61024f610830565b61024f6103923660046117e0565b610844565b6000546001600160a01b0316610264565b6103406103b63660046117c5565b61086f565b61022961c35081565b6102296103d23660046117c5565b6108db565b61024f6103e5366004611777565b610919565b61024f6103f836600461187f565b61098b565b61024f61040b366004611696565b6109ce565b61024f61041e36600461189c565b610a8f565b610229610431366004611696565b610b26565b600654610264906001600160a01b031681565b610229610b53565b600154610264906001600160a01b031681565b610264610472366004611696565b6000908152600a60205260409020546001600160a01b031690565b61024f61049b366004611803565b610b63565b6102bb6104ae366004611696565b610b6d565b6102296104c1366004611803565b610ba8565b61024f6104d43660046117c5565b610bd9565b61024f6104e73660046117c5565b610c7a565b600554610264906001600160a01b031681565b61024f61050d3660046117c5565b610d1b565b60008061051e836106a0565b9050808360075461052f9190611900565b6105399190611917565b9392505050565b3360009081526003602052604090205460ff1661057057604051631833a1e960e31b815260040160405180910390fd5b60005b82518110156105b75760008382815181106105905761059061192a565b602002602001015190506105a48184610d5e565b50806105af81611940565b915050610573565b505050565b3360009081526003602052604090205460ff166105ec57604051631833a1e960e31b815260040160405180910390fd5b604051632dd92c6960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a4906044015b60006040518083038186803b15801561064757600080fd5b505af415801561065b573d6000803e3d6000fd5b5050505050565b3360009081526003602052604090205460ff1661069257604051631833a1e960e31b815260040160405180910390fd5b61069c8282610d5e565b5050565b60008160066007546106b29190611959565b6007546106bf9190611917565b6106c99190611900565b92915050565b3360009081526003602052604090205460ff166106ff57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b0381166107265760405163e6c4247b60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040517f45c9eba39b5ae3e7a6650b0a57bcb8e5d135936d56d111983dbc5860ae6760fa90600090a250565b3360009081526003602052604090205460609060ff166107a357604051631833a1e960e31b815260040160405180910390fd5b6105398383610dbb565b60606106c93383610dbb565b3360009081526003602052604090205460ff166107e957604051631833a1e960e31b815260040160405180910390fd5b604051632d35e2b960e21b8152600360048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae49060440161062f565b610838611021565b610842600061104e565b565b6001546001600160a01b0316331461069257604051630f8d39bd60e41b815260040160405180910390fd5b6001600160a01b0381166000908152600b60209081526040918290208054835181840281018401909452808452606093928301828280156108cf57602002820191906000526020600020905b8154815260200190600101908083116108bb575b50505050509050919050565b3360009081526003602052604081205460ff1661090b57604051631833a1e960e31b815260040160405180910390fd5b6106c98261109e565b919050565b6001546001600160a01b0316331461094457604051630f8d39bd60e41b815260040160405180910390fd5b60005b82518110156105b75760008382815181106109645761096461192a565b602002602001015190506109788184610d5e565b508061098381611940565b915050610947565b3360009081526003602052604090205460ff166109bb57604051631833a1e960e31b815260040160405180910390fd5b6009805460ff1916911515919091179055565b3360009081526003602052604090205460ff166109fe57604051631833a1e960e31b815260040160405180910390fd5b60078190556001546040516370c41e3760e11b8152600481018390526001600160a01b039091169063e1883c6e90602401600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50506040518392507f270b316b51ab2cf3a3bb8ca4d22e76a327d05e762fcaa8bd6afaf8cfde9270b79150600090a250565b60005b8151811015610ad6576000828281518110610aaf57610aaf61192a565b60200260200101519050610ac384826110d1565b5080610ace81611940565b915050610a92565b5080604051610ae5919061197b565b604051908190038120906001600160a01b0384169033907f1affae2fd35738ec8f6a4212f337c673b41aa2231f1bd5cfeb94463a93ace1f190600090a45050565b600080610b32836106a0565b90506000610b3f84610512565b9050610b4b81836119b1565b949350505050565b6000610b5e3361109e565b905090565b61069c82826110d1565b600081600003610b9057604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610ba191906119b1565b1092915050565b600b6020528160005260406000208181548110610bc457600080fd5b90600052602060002001600091509150505481565b3360009081526003602052604090205460ff16610c0957604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610c305760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a250565b3360009081526003602052604090205460ff16610caa57604051631833a1e960e31b815260040160405180910390fd5b6001600160a01b038116610cd15760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f7161c7a7090d78e8031fca87e845a86b39e0eb9c15436933d2d4ce7f4520c4a590600090a250565b610d23611021565b6001600160a01b038116610d5257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d5b8161104e565b50565b610d6882826111bd565b6000828152600a602052604080822080546001600160a01b03191690555183916001600160a01b038416917f459bdaa71b6c253b49d34a7622dc4c6c1c416c0567571c068b392ba7172ddd4c9190a35050565b60606001600160a01b038316610de45760405163e6c4247b60e01b815260040160405180910390fd5b811580610df15750606482115b15610e0f57604051632ec760a560e01b815260040160405180910390fd5b61c35082600854610e2091906119b1565b10610e3e57604051637c5a3c3960e01b815260040160405180910390fd5b60008267ffffffffffffffff811115610e5957610e596116af565b604051908082528060200260200182016040528015610e82578160200160208202803683370190505b5060085490915060005b84811015610f325761c3508210610eb657604051637c5a3c3960e01b815260040160405180910390fd5b6000828152600a6020908152604080832080546001600160a01b0319166001600160a01b038b169081179091558352600b82528220805460018101825590835291200182905582518290849083908110610f1257610f1261192a565b602090810291909101015281610f2781611940565b925050600101610e8c565b5060088190556000610f4486866112fc565b905080610f6f57604051630bd7e48f60e21b81526001600160a01b0387166004820152602401610d49565b84600103610fcd5782600081518110610f8a57610f8a61192a565b6020026020010151866001600160a01b03167fc79cad949a408373456da7a9e88e8114102aa00e03a69733c70e3a0d95944ca760405160405180910390a3611017565b82604051610fdb919061197b565b604051908190038120906001600160a01b038816907f8ae8b18ed6d499ec84f68235bf3512b3db155f7911789805d36093467e5971c990600090a35b5090949350505050565b6000546001600160a01b031633146108425760405163118cdaa760e01b8152336004820152602401610d49565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806110ac836001610dbb565b9050806000815181106110c1576110c161192a565b6020026020010151915050919050565b6001600160a01b0382166110f85760405163e6c4247b60e01b815260040160405180910390fd5b6000818152600a60205260409020546001600160a01b0316331461112f57604051637f6ecdf560e01b815260040160405180910390fd5b6000818152600a6020526040902080546001600160a01b0319166001600160a01b03841617905561116081336111bd565b6001600160a01b0382166000818152600b6020908152604080832080546001810182559084529183209091018490555183929133917f16e5698e3d85c69c8d8cdb9a21893b33518e24d8cb69d9944d4bfd233464c3a29190a45050565b6001600160a01b0381166000908152600b6020526040812054905b818110156112f6576001600160a01b0383166000908152600b6020526040902080548591908390811061120d5761120d61192a565b9060005260206000200154036112e4576001600160a01b0383166000908152600b60205260409020805461124390600190611917565b815481106112535761125361192a565b9060005260206000200154600b6000856001600160a01b03166001600160a01b0316815260200190815260200160002082815481106112945761129461192a565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806112c9576112c96119c4565b600190038181906000526020600020016000905590556112f6565b806112ee81611940565b9150506111d8565b50505050565b600080611308836106a0565b9050600061131584610512565b600154604051630bc639c960e31b8152600481018590529192506001600160a01b031690635e31ce4890602401600060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505060095460ff1615915061168b9050576005546001600160a01b031661139782846119b1565b604051636eb1769f60e11b81526001600160a01b03888116600483015230602483015283169063dd62ed3e90604401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906119da565b1015611426576040516313be252b60e01b815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b0387811660048301528491908316906370a0823190602401602060405180830381865afa15801561146f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149391906119da565b108061150957506040516370a0823160e01b81526001600160a01b0387811660048301528391908316906370a0823190602401602060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150791906119da565b105b1561152757604051631e9acf1760e31b815260040160405180910390fd5b6001546040516323b872dd60e01b81526001600160a01b0388811660048301529182166024820152604481018590526000918316906323b872dd906064016020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a891906119f3565b9050806115d757600154604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b6006546040516323b872dd60e01b81526001600160a01b0389811660048301529182166024820152604481018590526000918416906323b872dd906064016020604051808303816000875af1158015611634573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165891906119f3565b90508061168757600654604051630bd7e48f60e21b81526001600160a01b039091166004820152602401610d49565b5050505b506001949350505050565b6000602082840312156116a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126116d657600080fd5b8135602067ffffffffffffffff808311156116f3576116f36116af565b8260051b604051601f19603f83011681018181108482111715611718576117186116af565b60405293845285810183019383810192508785111561173657600080fd5b83870191505b848210156117555781358352918301919083019061173c565b979650505050505050565b80356001600160a01b038116811461091457600080fd5b6000806040838503121561178a57600080fd5b823567ffffffffffffffff8111156117a157600080fd5b6117ad858286016116c5565b9250506117bc60208401611760565b90509250929050565b6000602082840312156117d757600080fd5b61053982611760565b600080604083850312156117f357600080fd5b823591506117bc60208401611760565b6000806040838503121561181657600080fd5b61181f83611760565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561186557835183529284019291840191600101611849565b50909695505050505050565b8015158114610d5b57600080fd5b60006020828403121561189157600080fd5b813561053981611871565b600080604083850312156118af57600080fd5b6118b883611760565b9150602083013567ffffffffffffffff8111156118d457600080fd5b6118e0858286016116c5565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106c9576106c96118ea565b818103818111156106c9576106c96118ea565b634e487b7160e01b600052603260045260246000fd5b600060018201611952576119526118ea565b5060010190565b60008261197657634e487b7160e01b600052601260045260246000fd5b500490565b815160009082906020808601845b838110156119a557815185529382019390820190600101611989565b50929695505050505050565b808201808211156106c9576106c96118ea565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156119ec57600080fd5b5051919050565b600060208284031215611a0557600080fd5b81516105398161187156fea26469706673582212206dd368da8617071ce17aa8ab9104ef58f04a5f8536ba22aaa0dee3e112cd04ef64736f6c63430008140033", - "linkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 2093 - }, - { - "length": 20, - "start": 2602 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/gamma/libs/LibControlMgmt.sol": { - "LibControlMgmt": [ - { - "length": 20, - "start": 1553 - }, - { - "length": 20, - "start": 2062 - } - ] - } - } -} diff --git a/artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json b/artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json deleted file mode 100644 index bb6d2a74..00000000 --- a/artifacts/contracts/gamma/libs/LibControlMgmt.sol/LibControlMgmt.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "LibControlMgmt", - "sourceName": "contracts/gamma/libs/LibControlMgmt.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "NewOwnerAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newSigner", - "type": "address" - } - ], - "name": "NewSignerAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "SignerRemoved", - "type": "event" - } - ], - "bytecode": "0x6105e461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c8063773b6d121461005b578063982088f01461007d578063b4d78ae41461009d578063b764b1a4146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610548565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610548565b6101d7565b8180156100a957600080fd5b5061007b6100b8366004610548565b610322565b8180156100c957600080fd5b5061007b6100d8366004610548565b610403565b6001600160a01b03811661010c5760405162461bcd60e51b815260040161010390610584565b60405180910390fd5b6001600160a01b038116600090815260018301602052604090205460ff16156101775760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c72656164792061207369676e65722e000000006044820152606401610103565b6001600160a01b038116600081815260018481016020908152604092839020805460ff191690921790915590519182527f72d4003e8f1ad99f4f488c703a1d183dee364a6337cb77f8fba50088cb0fbfa391015b60405180910390a15050565b6001600160a01b0381166101fd5760405162461bcd60e51b815260040161010390610584565b6001600160a01b038116600090815260018301602052604090205460ff166102675760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f742061207369676e65722e00000000000000006044820152606401610103565b336001600160a01b038216036102cf5760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320612060448201526639b4b3b732b91760c91b6064820152608401610103565b6001600160a01b0381166000818152600184016020908152604091829020805460ff1916905590519182527f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b91016101cb565b6001600160a01b0381166103485760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff16156103b15760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320697320616c726561647920616e206f776e65722e000000006044820152606401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916600117905590519182527f6e4e2a7c0e1576d48aeabd633d094f622d4f046286fec8b9045dd7f5c9fb087d91016101cb565b6001600160a01b0381166104295760405162461bcd60e51b815260040161010390610584565b6001600160a01b03811660009081526020839052604090205460ff166104915760405162461bcd60e51b815260206004820152601860248201527f41646472657373206973206e6f7420616e206f776e65722e00000000000000006044820152606401610103565b336001600160a01b038216036104f95760405162461bcd60e51b815260206004820152602760248201527f596f752063616e6e6f742072656d6f766520796f757273656c6620617320616e6044820152661037bbb732b91760c91b6064820152608401610103565b6001600160a01b03811660008181526020848152604091829020805460ff1916905590519182527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da91016101cb565b6000806040838503121561055b57600080fd5b8235915060208301356001600160a01b038116811461057957600080fd5b809150509250929050565b60208082526010908201526f24b73b30b634b21030b2323932b9b99760811b60408201526060019056fea2646970667358221220bdc1460ec011ae34a2585654bd65bedde11324faa34ee90f1e34a97f0e2fd3b764736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json b/artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json deleted file mode 100644 index ec049ba7..00000000 --- a/artifacts/contracts/gamma/libs/LibPackVerifier.sol/LibPackVerifier.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "LibPackVerifier", - "sourceName": "contracts/gamma/libs/LibPackVerifier.sol", - "abi": [ - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "packNumber", - "type": "uint256" - }, - { - "internalType": "uint8[]", - "name": "packData", - "type": "uint8[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "verifyPackSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x61058c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806338fb7d8b1461003a575b600080fd5b61004d61004836600461039c565b610069565b6040516001600160a01b03909116815260200160405180910390f35b6000806100cd878787604051602001610084939291906104b2565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061011385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250869392505061011f9050565b98975050505050505050565b60008060008061012f8686610149565b92509250925061013f8282610196565b5090949350505050565b600080600083516041036101835760208401516040850151606086015160001a61017588828585610258565b95509550955050505061018f565b50508151600091506002905b9250925092565b60008260038111156101aa576101aa610540565b036101b3575050565b60018260038111156101c7576101c7610540565b036101e55760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156101f9576101f9610540565b0361021f5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b600382600381111561023357610233610540565b03610254576040516335e2f38360e21b815260048101829052602401610216565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610293575060009150600390508261031d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156102e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166103135750600092506001915082905061031d565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b803560ff8116811461034e57600080fd5b919050565b60008083601f84011261036557600080fd5b50813567ffffffffffffffff81111561037d57600080fd5b60208301915083602082850101111561039557600080fd5b9250929050565b6000806000806000608086880312156103b457600080fd5b85356001600160a01b03811681146103cb57600080fd5b94506020868101359450604087013567ffffffffffffffff808211156103f057600080fd5b818901915089601f83011261040457600080fd5b81358181111561041657610416610327565b8060051b604051601f19603f8301168101818110858211171561043b5761043b610327565b6040529182528381018501918581018d84111561045757600080fd5b948601945b8386101561047a5761046d8661033d565b815294860194860161045c565b5097505050606089013592508083111561049357600080fd5b50506104a188828901610353565b969995985093965092949392505050565b6bffffffffffffffffffffffff198460601b1681528260148201526000603482018351602080860160005b838110156104fc57815160ff16855293820193908201906001016104dd565b50507f30786631644437313839356534396231353633363933393639646535303839388352693139376344463334383160b01b9083015250602a0195945050505050565b634e487b7160e01b600052602160045260246000fdfea264697066735822122031137824af166079df823af04362858a738d821388548f231f814ae4e5acccb364736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json b/artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json deleted file mode 100644 index 89ec9e64..00000000 --- a/artifacts/contracts/gamma/libs/LibStringUtils.sol/LibStringUtils.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "LibStringUtils", - "sourceName": "contracts/gamma/libs/LibStringUtils.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "toString", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x6102ce61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636900a3ae1461003a575b600080fd5b61004d61004836600461016c565b610063565b60405161005a9190610185565b60405180910390f35b60608160000361008a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156100b4578061009e816101e9565b91506100ad9050600a83610218565b915061008e565b60008167ffffffffffffffff8111156100cf576100cf61022c565b6040519080825280601f01601f1916602001820160405280156100f9576020820181803683370190505b5090505b84156101645761010e600183610242565b915061011b600a8661025b565b61012690603061026f565b60f81b81838151811061013b5761013b610282565b60200101906001600160f81b031916908160001a90535061015d600a86610218565b94506100fd565b949350505050565b60006020828403121561017e57600080fd5b5035919050565b600060208083528351808285015260005b818110156101b257858101830151858201604001528201610196565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052601160045260246000fd5b6000600182016101fb576101fb6101d3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261022757610227610202565b500490565b634e487b7160e01b600052604160045260246000fd5b81810381811115610255576102556101d3565b92915050565b60008261026a5761026a610202565b500690565b80820180821115610255576102556101d3565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9777e20a0452e201d3312dd3a508695794a6a7fc48e20c536fd52f14927c5a964736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json b/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json deleted file mode 100644 index 42d9adf3..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControl.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AccessControl", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json b/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json deleted file mode 100644 index d91b3fb7..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/AccessControlMixin.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AccessControlMixin", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610736806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806391d148541161005b57806391d1485414610116578063a217fddf14610139578063ca15c87314610141578063d547741f1461015457600080fd5b8063248a9ca31461008d5780632f2ff15d146100c357806336568abe146100d85780639010d07c146100eb575b600080fd5b6100b061009b366004610621565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6100d66100d136600461063a565b610167565b005b6100d66100e636600461063a565b6101fa565b6100fe6100f9366004610676565b610274565b6040516001600160a01b0390911681526020016100ba565b61012961012436600461063a565b610295565b60405190151581526020016100ba565b6100b0600081565b6100b061014f366004610621565b6102ad565b6100d661016236600461063a565b6102c4565b6000828152602081905260409020600201546101839033610295565b6101ec5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6101f68282610345565b5050565b6001600160a01b038116331461026a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016101e3565b6101f6828261039e565b600082815260208190526040812061028c90836103f7565b90505b92915050565b600082815260208190526040812061028c9083610403565b600081815260208190526040812061028f90610425565b6000828152602081905260409020600201546102e09033610295565b61026a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016101e3565b600082815260208190526040902061035d908261042f565b156101f65760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60008281526020819052604090206103b69082610444565b156101f65760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061028c8383610459565b6001600160a01b0381166000908152600183016020526040812054151561028c565b600061028f825490565b600061028c836001600160a01b0384166104df565b600061028c836001600160a01b03841661052e565b815460009082106104b75760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016101e3565b8260000182815481106104cc576104cc610698565b9060005260206000200154905092915050565b60008181526001830160205260408120546105265750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561028f565b50600061028f565b600081815260018301602052604081205480156106175760006105526001836106c4565b8554909150600090610566906001906106c4565b9050600086600001828154811061057f5761057f610698565b90600052602060002001549050808760000184815481106105a2576105a2610698565b6000918252602090912001556105b98360016106d7565b600082815260018901602052604090205586548790806105db576105db6106ea565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061028f565b600091505061028f565b60006020828403121561063357600080fd5b5035919050565b6000806040838503121561064d57600080fd5b8235915060208301356001600160a01b038116811461066b57600080fd5b809150509250929050565b6000806040838503121561068957600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f6106ae565b8082018082111561028f5761028f6106ae565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a15be5456a96593c6edd3802a275e3dd7756d3a52b4a74c13dea4acd9b77592864736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/Address.json b/artifacts/contracts/testDai/TestDAI.v3.sol/Address.json deleted file mode 100644 index ff1c885e..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/Address.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Address", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba44ff2089cbdffae47eceb71e52deb302b976abfe56e47fe5e9436ad0b91d5664736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json b/artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json deleted file mode 100644 index a415a529..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/ChainConstants.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ChainConstants", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "inputs": [], - "name": "CHILD_CHAIN_ID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "CHILD_CHAIN_ID_BYTES", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ERC712_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ROOT_CHAIN_ID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ROOT_CHAIN_ID_BYTES", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610186806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80630b54817c1461005c5780630dd7531a146100925780630f7e5970146100b2578063626381a0146100d25780638acfcaf7146100e8575b600080fd5b61007c604051806040016040528060018152602001608960f81b81525081565b6040516100899190610136565b60405180910390f35b61007c604051806040016040528060018152602001600160f81b81525081565b61007c604051806040016040528060018152602001603160f81b81525081565b6100da608981565b604051908152602001610089565b6100da600181565b6000815180845260005b81811015610116576020818501810151868301820152016100fa565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061014960208301846100f0565b939250505056fea264697066735822122013d8edecaf1a0124f99febd40e957609ded7aec8d6345c33bfc4711b57e0822f64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/Context.json b/artifacts/contracts/testDai/TestDAI.v3.sol/Context.json deleted file mode 100644 index d4e2baa6..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/Context.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json b/artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json deleted file mode 100644 index 49c59466..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/ContextMixin.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ContextMixin", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json b/artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json deleted file mode 100644 index c56b5e39..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/EIP712Base.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EIP712Base", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDomainSeperator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040526000805460ff19169055348015601957600080fd5b506088806100286000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033", - "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806320379ee51460375780633408e47014604d575b600080fd5b6001545b60405190815260200160405180910390f35b46603b56fea264697066735822122093acaaafccca74552ebb6eccdc6d2772e6fe4dd002d3f162cf673ed5842407e164736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json b/artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json deleted file mode 100644 index 08ff0c05..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/ERC20.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "__name", - "type": "string" - }, - { - "internalType": "string", - "name": "__symbol", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "_mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d0838038062000d0883398101604081905262000034916200012c565b600362000042838262000225565b50600462000051828262000225565b50506005805460ff1916601217905550620002f1565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008f57600080fd5b81516001600160401b0380821115620000ac57620000ac62000067565b604051601f8301601f19908116603f01168101908282118183101715620000d757620000d762000067565b81604052838152602092508683858801011115620000f457600080fd5b600091505b83821015620001185785820183015181830184015290820190620000f9565b600093810190920192909252949350505050565b600080604083850312156200014057600080fd5b82516001600160401b03808211156200015857600080fd5b62000166868387016200007d565b935060208501519150808211156200017d57600080fd5b506200018c858286016200007d565b9150509250929050565b600181811c90821680620001ab57607f821691505b602082108103620001cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022057600081815260208120601f850160051c81016020861015620001fb5750805b601f850160051c820191505b818110156200021c5782815560010162000207565b5050505b505050565b81516001600160401b0381111562000241576200024162000067565b620002598162000252845462000196565b84620001d2565b602080601f831160018114620002915760008415620002785750858301515b600019600386901b1c1916600185901b1785556200021c565b600085815260208120601f198616915b82811015620002c257888601518255948401946001909101908401620002a1565b5085821015620002e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a0780620003016000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80634e6ec247116100715780634e6ec2471461014757806370a082311461015c57806395d89b4114610185578063a457c2d71461018d578063a9059cbb146101a0578063dd62ed3e146101b357600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f5780633950935114610134575b600080fd5b6100c16101ec565b6040516100ce91906107ca565b60405180910390f35b6100ea6100e5366004610834565b61027e565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a36600461085e565b610295565b60055460405160ff90911681526020016100ce565b6100ea610142366004610834565b6102fe565b61015a610155366004610834565b610334565b005b6100fe61016a36600461089a565b6001600160a01b031660009081526020819052604090205490565b6100c1610417565b6100ea61019b366004610834565b610426565b6100ea6101ae366004610834565b610475565b6100fe6101c13660046108b5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101fb906108e8565b80601f0160208091040260200160405190810160405280929190818152602001828054610227906108e8565b80156102745780601f1061024957610100808354040283529160200191610274565b820191906000526020600020905b81548152906001019060200180831161025757829003601f168201915b5050505050905090565b600061028b338484610482565b5060015b92915050565b60006102a28484846105a7565b6102f484336102ef85604051806060016040528060288152602001610985602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061072a565b610482565b5060019392505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161028b9185906102ef9086610764565b6001600160a01b03821661038f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b60025461039c9082610764565b6002556001600160a01b0382166000908152602081905260409020546103c29082610764565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6060600480546101fb906108e8565b600061028b33846102ef856040518060600160405280602581526020016109ad602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061072a565b600061028b3384846105a7565b6001600160a01b0383166104e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610386565b6001600160a01b0382166105455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610386565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661060b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610386565b6001600160a01b03821661066d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610386565b6106aa8160405180606001604052806026815260200161095f602691396001600160a01b038616600090815260208190526040902054919061072a565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546106d99082610764565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161059a565b6000818484111561074e5760405162461bcd60e51b815260040161038691906107ca565b50600061075b8486610938565b95945050505050565b600080610771838561094b565b9050838110156107c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610386565b9392505050565b600060208083528351808285015260005b818110156107f7578581018301518582016040015282016107db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461082f57600080fd5b919050565b6000806040838503121561084757600080fd5b61085083610818565b946020939093013593505050565b60008060006060848603121561087357600080fd5b61087c84610818565b925061088a60208501610818565b9150604084013590509250925092565b6000602082840312156108ac57600080fd5b6107c382610818565b600080604083850312156108c857600080fd5b6108d183610818565b91506108df60208401610818565b90509250929050565b600181811c908216806108fc57607f821691505b60208210810361091c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561028f5761028f610922565b8082018082111561028f5761028f61092256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208098355556e06117134b1244f355d02195dd43058369f2ab5f33ef72720cd90064736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json b/artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json deleted file mode 100644 index 0429cefd..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/EnumerableSet.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EnumerableSet", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122083d93bc05e783660ef6780c03c0499434d413b270ae596394de469a21ddb681a64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json b/artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json deleted file mode 100644 index 92828116..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/IChildToken.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IChildToken", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "bytes", - "name": "depositData", - "type": "bytes" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json b/artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json deleted file mode 100644 index 5c04d59f..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json b/artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json deleted file mode 100644 index 28828511..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/Initializable.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Initializable", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [], - "bytecode": "0x60806040526000805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220029c0ee9872f011e39d3674c6d194add1b2123446bb854f67245e42794e0d91964736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json b/artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json deleted file mode 100644 index d26e226b..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/NativeMetaTransaction.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NativeMetaTransaction", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address payable", - "name": "relayerAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "functionSignature", - "type": "bytes" - } - ], - "name": "MetaTransactionExecuted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "internalType": "bytes", - "name": "functionSignature", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "sigR", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "sigS", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "sigV", - "type": "uint8" - } - ], - "name": "executeMetaTransaction", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDomainSeperator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040526000805460ff1916905534801561001a57600080fd5b506107998061002a6000396000f3fe60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061003f5760003560e01c80630c53c51c1461004457806320379ee51461006d5780632d0335ab1461008c5780633408e470146100c2575b600080fd5b61005761005236600461050c565b6100d5565b6040516100649190610642565b60405180910390f35b34801561007957600080fd5b506001545b604051908152602001610064565b34801561009857600080fd5b5061007e6100a736600461065c565b6001600160a01b031660009081526002602052604090205490565b3480156100ce57600080fd5b504661007e565b60408051606081810183526001600160a01b0388166000818152600260209081529085902054845283015291810186905261011387828787876102c4565b61016e5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600260205260409020546101929060016103b4565b6001600160a01b0388166000908152600260205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906101e290899033908a90610677565b60405180910390a1600080306001600160a01b0316888a60405160200161020a9291906106ac565b60408051601f1981840301815290829052610224916106e3565b6000604051808303816000865af19150503d8060008114610261576040519150601f19603f3d011682016040523d82523d6000602084013e610266565b606091505b5091509150816102b85760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610165565b98975050505050505050565b60006001600160a01b03861661032a5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610165565b600161033d6103388761041c565b610499565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561038b573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806103c183856106ff565b9050838110156104135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610165565b90505b92915050565b6000604051806080016040528060438152602001610721604391398051602091820120835184830151604080870151805190860120905161047c950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006104a460015490565b60405161190160f01b602082015260228101919091526042810183905260620161047c565b80356001600160a01b03811681146104e057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b803560ff811681146104e057600080fd5b600080600080600060a0868803121561052457600080fd5b61052d866104c9565b9450602086013567ffffffffffffffff8082111561054a57600080fd5b818801915088601f83011261055e57600080fd5b813581811115610570576105706104e5565b604051601f8201601f19908116603f01168101908382118183101715610598576105986104e5565b816040528281528b60208487010111156105b157600080fd5b82602086016020830137600060208483010152809850505050505060408601359250606086013591506105e6608087016104fb565b90509295509295909350565b60005b8381101561060d5781810151838201526020016105f5565b50506000910152565b6000815180845261062e8160208601602086016105f2565b601f01601f19169290920160200192915050565b6020815260006106556020830184610616565b9392505050565b60006020828403121561066e57600080fd5b610655826104c9565b6001600160a01b038481168252831660208201526060604082018190526000906106a390830184610616565b95945050505050565b600083516106be8184602088016105f2565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516106f58184602087016105f2565b9190910192915050565b8082018082111561041657634e487b7160e01b600052601160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220c0ef7d9248999f2285eff1b86e454abed25b72d6cc6591610a4bbbe450aa744364736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json b/artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json deleted file mode 100644 index 7b890789..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/NofTestDAIV3.json +++ /dev/null @@ -1,906 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "NofTestDAIV3", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address payable", - "name": "relayerAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "functionSignature", - "type": "bytes" - } - ], - "name": "MetaTransactionExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "CHILD_CHAIN_ID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "CHILD_CHAIN_ID_BYTES", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEPOSITOR_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ERC712_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ROOT_CHAIN_ID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ROOT_CHAIN_ID_BYTES", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "_mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - } - ], - "name": "changeName", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "bytes", - "name": "depositData", - "type": "bytes" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "internalType": "bytes", - "name": "functionSignature", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "sigR", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "sigS", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "sigV", - "type": "uint8" - } - ], - "name": "executeMetaTransaction", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDomainSeperator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "uint8", - "name": "decimals_", - "type": "uint8" - }, - { - "internalType": "address", - "name": "childChainManager", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "move", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "holder", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "usr", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "pull", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "usr", - "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "push", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127d580620001fc6000396000f3fe6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106102305760003560e01c80635353a2d81161012e578063a457c2d7116100ab578063cf2c52cb1161006f578063cf2c52cb146106e5578063d547741f14610705578063dd62ed3e14610725578063de7ea79d1461076b578063f2d5d56b1461078b57600080fd5b8063a457c2d714610645578063a9059cbb14610665578063b753a98c14610685578063bb35783b146106a5578063ca15c873146106c557600080fd5b80639010d07c116100f25780639010d07c1461058f57806391d14854146105c757806395d89b41146105e7578063a217fddf146105fc578063a3b0b5a31461061157600080fd5b80635353a2d8146104ef578063626381a01461050f57806370a08231146105245780638acfcaf71461055a5780638fcbaf0c1461056f57600080fd5b8063248a9ca3116101bc578063313ce56711610180578063313ce5671461045a5780633408e4701461047c57806336568abe1461048f57806339509351146104af5780634e6ec247146104cf57600080fd5b8063248a9ca31461037e5780632d0335ab146103ae5780632e1a7d4d146103e45780632f2ff15d1461040657806330adf81f1461042657600080fd5b80630dd7531a116102035780630dd7531a146102d05780630f7e5970146102fd57806318160ddd1461032a57806320379ee51461034957806323b872dd1461035e57600080fd5b806306fdde0314610235578063095ea7b3146102605780630b54817c146102905780630c53c51c146102bd575b600080fd5b34801561024157600080fd5b5061024a6107ab565b6040516102579190611f05565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004611f34565b61083d565b6040519015158152602001610257565b34801561029c57600080fd5b5061024a604051806040016040528060018152602001608960f81b81525081565b61024a6102cb366004611f85565b61085b565b3480156102dc57600080fd5b5061024a604051806040016040528060018152602001600160f81b81525081565b34801561030957600080fd5b5061024a604051806040016040528060018152602001603160f81b81525081565b34801561033657600080fd5b506002545b604051908152602001610257565b34801561035557600080fd5b5060095461033b565b34801561036a57600080fd5b5061028061037936600461206b565b610a4a565b34801561038a57600080fd5b5061033b6103993660046120a7565b60009081526006602052604090206002015490565b3480156103ba57600080fd5b5061033b6103c93660046120c0565b6001600160a01b03166000908152600a602052604090205490565b3480156103f057600080fd5b506104046103ff3660046120a7565b610ad1565b005b34801561041257600080fd5b506104046104213660046120db565b610ae5565b34801561043257600080fd5b5061033b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b34801561046657600080fd5b5060055460405160ff9091168152602001610257565b34801561048857600080fd5b504661033b565b34801561049b57600080fd5b506104046104aa3660046120db565b610b75565b3480156104bb57600080fd5b506102806104ca366004611f34565b610bff565b3480156104db57600080fd5b506104046104ea366004611f34565b610c4d565b3480156104fb57600080fd5b5061040461050a366004612150565b610d2c565b34801561051b57600080fd5b5061033b608981565b34801561053057600080fd5b5061033b61053f3660046120c0565b6001600160a01b031660009081526020819052604090205490565b34801561056657600080fd5b5061033b600181565b34801561057b57600080fd5b5061040461058a366004612192565b610df7565b34801561059b57600080fd5b506105af6105aa366004612214565b611068565b6040516001600160a01b039091168152602001610257565b3480156105d357600080fd5b506102806105e23660046120db565b611087565b3480156105f357600080fd5b5061024a61109f565b34801561060857600080fd5b5061033b600081565b34801561061d57600080fd5b5061033b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561065157600080fd5b50610280610660366004611f34565b6110ae565b34801561067157600080fd5b50610280610680366004611f34565b611116565b34801561069157600080fd5b506104046106a0366004611f34565b61112a565b3480156106b157600080fd5b506104046106c036600461206b565b611135565b3480156106d157600080fd5b5061033b6106e03660046120a7565b611146565b3480156106f157600080fd5b50610404610700366004612236565b61115d565b34801561071157600080fd5b506104046107203660046120db565b6111cc565b34801561073157600080fd5b5061033b610740366004612289565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561077757600080fd5b506104046107863660046122b3565b61124f565b34801561079757600080fd5b506104046107a6366004611f34565b6113f3565b6060600380546107ba90612343565b80601f01602080910402602001604051908101604052809291908181526020018280546107e690612343565b80156108335780601f1061080857610100808354040283529160200191610833565b820191906000526020600020905b81548152906001019060200180831161081657829003601f168201915b5050505050905090565b600061085161084a6113fe565b848461140d565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526108998782878787611532565b6108f45760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a6020526040902054610918906001611622565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061096890899033908a9061237d565b60405180910390a1600080306001600160a01b0316888a6040516020016109909291906123a9565b60408051601f19818403018152908290526109aa916123e0565b6000604051808303816000865af19150503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b509150915081610a3e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016108eb565b98975050505050505050565b6000610a57848484611681565b610ac784610a636113fe565b610ac285604051806060016040528060288152602001612753602891396001600160a01b038a16600090815260016020526040812090610aa16113fe565b6001600160a01b031681526020810191909152604001600020549190611804565b61140d565b5060019392505050565b610ae2610adc6113fe565b8261183e565b50565b600082815260066020526040902060020154610b03906105e26113fe565b610b675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016108eb565b610b718282611942565b5050565b610b7d6113fe565b6001600160a01b0316816001600160a01b031614610bf55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108eb565b610b7182826119ab565b6000610851610c0c6113fe565b84610ac28560016000610c1d6113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611622565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108eb565b600254610cb09082611622565b6002556001600160a01b038216600090815260208190526040902054610cd69082611622565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610d3a816105e26113fe565b600790610d5a5760405162461bcd60e51b81526004016108eb91906123fc565b50610d9a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b610df283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611a209050565b505050565b6000610e0260095490565b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb60208201526001600160a01b03808d1692820192909252908a1660608201526080810189905260a0810188905286151560c082015260e00160405160208183030381529060405280519060200120604051602001610e9c92919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201206000845290830180835281905260ff8716918301919091526060820185905260808201849052915060019060a0016020604051602081039080840390855afa158015610f04573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f6e5760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a20494e56414c49442d5045524d49540000000000000060448201526064016108eb565b851580610f7b5750854211155b610fc75760405162461bcd60e51b815260206004820152601960248201527f554368696c644441493a205045524d49542d455850495245440000000000000060448201526064016108eb565b6001600160a01b0389166000908152600a60205260408120805491610feb8361249d565b91905055871461103d5760405162461bcd60e51b815260206004820152601860248201527f554368696c644441493a20494e56414c49442d4e4f4e4345000000000000000060448201526064016108eb565b60008561104b57600061104f565b6000195b905061105c8a8a8361140d565b50505050505050505050565b60008281526006602052604081206110809083611aa7565b9392505050565b60008281526006602052604081206110809083611ab3565b6060600480546107ba90612343565b60006108516110bb6113fe565b84610ac28560405180606001604052806025815260200161277b60259139600160006110e56113fe565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611804565b60006108516111236113fe565b8484611681565b610df2338383610a4a565b611140838383610a4a565b50505050565b600081815260066020526040812061085590611ad5565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961118a816105e26113fe565b6007906111aa5760405162461bcd60e51b81526004016108eb91906123fc565b5060006111b9838501856120a7565b90506111c58582610c4d565b5050505050565b6000828152600660205260409020600201546111ea906105e26113fe565b610bf55760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016108eb565b60085460ff16156112935760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b6112d286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a1492505050565b61131184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611adf92505050565b6005805460ff191660ff841617905561134a84846040516020016113369291906124b6565b604051602081830303815290604052611aeb565b61135c60006113576113fe565b610b67565b6113867f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610b67565b6113de86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b60208201529150611b199050565b50506008805460ff1916600117905550505050565b610df2823383610a4a565b6000611408611b78565b905090565b6001600160a01b03831661146f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108eb565b6001600160a01b0382166114d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166115985760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b60648201526084016108eb565b60016115ab6115a687611bd4565b611c51565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa1580156115f9573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b60008061162f83856124d7565b9050838110156110805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108eb565b6001600160a01b0383166116e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108eb565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108eb565b6117848160405180606001604052806026815260200161272d602691396001600160a01b0386166000908152602081905260409020549190611804565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546117b39082611622565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611525565b600081848411156118285760405162461bcd60e51b81526004016108eb9190611f05565b50600061183584866124ea565b95945050505050565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108eb565b6118db81604051806060016040528060228152602001612679602291396001600160a01b0385166000908152602081905260409020549190611804565b6001600160a01b0383166000908152602081905260409020556002546119019082611c81565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d20565b600082815260066020526040902061195a9082611cc3565b15610b71576119676113fe565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206119c39082611cd8565b15610b71576119d06113fe565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610b71828261254b565b6040518060800160405280604f81526020016126de604f9139805190602001208280519060200120828051906020012030611a584690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b60006110808383611ced565b6001600160a01b03811660009081526001830160205260408120541515611080565b6000610855825490565b6004610b71828261254b565b80604051602001611afc919061260b565b60405160208183030381529060405260079081610b71919061254b565b60085460ff1615611b5d5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016108eb565b611b678282611a20565b50506008805460ff19166001179055565b6000303303611bce57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150611bd19050565b50335b90565b600060405180608001604052806043815260200161269b6043913980516020918201208351848301516040808701518051908601209051611c34950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611c5c60095490565b60405161190160f01b6020820152602281019190915260428101839052606201611c34565b600061108083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611804565b6000611080836001600160a01b038416611d73565b6000611080836001600160a01b038416611dc2565b81546000908210611d4b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108eb565b826000018281548110611d6057611d6061264c565b9060005260206000200154905092915050565b6000818152600183016020526040812054611dba57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60008181526001830160205260408120548015611eab576000611de66001836124ea565b8554909150600090611dfa906001906124ea565b90506000866000018281548110611e1357611e1361264c565b9060005260206000200154905080876000018481548110611e3657611e3661264c565b600091825260209091200155611e4d8360016124d7565b60008281526001890160205260409020558654879080611e6f57611e6f612662565b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610855565b6000915050610855565b60005b83811015611ed0578181015183820152602001611eb8565b50506000910152565b60008151808452611ef1816020860160208601611eb5565b601f01601f19169290920160200192915050565b6020815260006110806020830184611ed9565b80356001600160a01b0381168114611f2f57600080fd5b919050565b60008060408385031215611f4757600080fd5b611f5083611f18565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611f2f57600080fd5b600080600080600060a08688031215611f9d57600080fd5b611fa686611f18565b9450602086013567ffffffffffffffff80821115611fc357600080fd5b818801915088601f830112611fd757600080fd5b813581811115611fe957611fe9611f5e565b604051601f8201601f19908116603f0116810190838211818310171561201157612011611f5e565b816040528281528b602084870101111561202a57600080fd5b826020860160208301376000602084830101528098505050505050604086013592506060860135915061205f60808701611f74565b90509295509295909350565b60008060006060848603121561208057600080fd5b61208984611f18565b925061209760208501611f18565b9150604084013590509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000602082840312156120d257600080fd5b61108082611f18565b600080604083850312156120ee57600080fd5b823591506120fe60208401611f18565b90509250929050565b60008083601f84011261211957600080fd5b50813567ffffffffffffffff81111561213157600080fd5b60208301915083602082850101111561214957600080fd5b9250929050565b6000806020838503121561216357600080fd5b823567ffffffffffffffff81111561217a57600080fd5b61218685828601612107565b90969095509350505050565b600080600080600080600080610100898b0312156121af57600080fd5b6121b889611f18565b97506121c660208a01611f18565b96506040890135955060608901359450608089013580151581146121e957600080fd5b93506121f760a08a01611f74565b925060c0890135915060e089013590509295985092959890939650565b6000806040838503121561222757600080fd5b50508035926020909101359150565b60008060006040848603121561224b57600080fd5b61225484611f18565b9250602084013567ffffffffffffffff81111561227057600080fd5b61227c86828701612107565b9497909650939450505050565b6000806040838503121561229c57600080fd5b6122a583611f18565b91506120fe60208401611f18565b600080600080600080608087890312156122cc57600080fd5b863567ffffffffffffffff808211156122e457600080fd5b6122f08a838b01612107565b9098509650602089013591508082111561230957600080fd5b5061231689828a01612107565b9095509350612329905060408801611f74565b915061233760608801611f18565b90509295509295509295565b600181811c9082168061235757607f821691505b60208210810361237757634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0384811682528316602082015260606040820181905260009061183590830184611ed9565b600083516123bb818460208801611eb5565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600082516123f2818460208701611eb5565b9190910192915050565b600060208083526000845461241081612343565b80848701526040600180841660008114612431576001811461244b57612479565b60ff1985168984015283151560051b890183019550612479565b896000528660002060005b858110156124715781548b8201860152908301908801612456565b8a0184019650505b509398975050505050505050565b634e487b7160e01b600052601160045260246000fd5b6000600182016124af576124af612487565b5060010190565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b8082018082111561085557610855612487565b8181038181111561085557610855612487565b601f821115610df257600081815260208120601f850160051c810160208610156125245750805b601f850160051c820191505b8181101561254357828155600101612530565b505050505050565b815167ffffffffffffffff81111561256557612565611f5e565b612579816125738454612343565b846124fd565b602080601f8311600181146125ae57600084156125965750858301515b600019600386901b1c1916600185901b178555612543565b600085815260208120601f198616915b828110156125dd578886015182559484019460019091019084016125be565b50858210156125fb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161261d818460208701611eb5565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b28813c898b058db947de197948e4a016de2d4eb44c0a299d2131490f4dba2564736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json b/artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json deleted file mode 100644 index 83ce32e6..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/SafeMath.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SafeMath", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220117a27774884c878dae9af47b8dfa8b593b9a0a7334ef6f519438b71bcab79e164736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json b/artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json deleted file mode 100644 index 68654302..00000000 --- a/artifacts/contracts/testDai/TestDAI.v3.sol/UChildERC20.json +++ /dev/null @@ -1,791 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "UChildERC20", - "sourceName": "contracts/testDai/TestDAI.v3.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address payable", - "name": "relayerAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "functionSignature", - "type": "bytes" - } - ], - "name": "MetaTransactionExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "CHILD_CHAIN_ID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "CHILD_CHAIN_ID_BYTES", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEPOSITOR_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ERC712_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ROOT_CHAIN_ID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ROOT_CHAIN_ID_BYTES", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "_mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - } - ], - "name": "changeName", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - }, - { - "internalType": "bytes", - "name": "depositData", - "type": "bytes" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "userAddress", - "type": "address" - }, - { - "internalType": "bytes", - "name": "functionSignature", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "sigR", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "sigS", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "sigV", - "type": "uint8" - } - ], - "name": "executeMetaTransaction", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDomainSeperator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "getNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "uint8", - "name": "decimals_", - "type": "uint8" - }, - { - "internalType": "address", - "name": "childChainManager", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526008805460ff191690553480156200001b57600080fd5b5060408051808201825260038082526244414960e81b6020808401829052845180860190955282855284015290919062000056838262000120565b50600462000065828262000120565b50506005805460ff1916601217905550620001ec565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a657607f821691505b602082108103620000c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011b57600081815260208120601f850160051c81016020861015620000f65750805b601f850160051c820191505b81811015620001175782815560010162000102565b5050505b505050565b81516001600160401b038111156200013c576200013c6200007b565b62000154816200014d845462000091565b84620000cd565b602080601f8311600181146200018c5760008415620001735750858301515b600019600386901b1c1916600185901b17855562000117565b600085815260208120601f198616915b82811015620001bd578886015182559484019460019091019084016200019c565b5085821015620001dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6123b780620001fc6000396000f3fe6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106101f95760003560e01c80634e6ec2471161010d578063a217fddf116100a0578063ca15c8731161006f578063ca15c873146105fa578063cf2c52cb1461061a578063d547741f1461063a578063dd62ed3e1461065a578063de7ea79d146106a057600080fd5b8063a217fddf14610571578063a3b0b5a314610586578063a457c2d7146105ba578063a9059cbb146105da57600080fd5b80638acfcaf7116100dc5780638acfcaf7146104ef5780639010d07c1461050457806391d148541461053c57806395d89b411461055c57600080fd5b80634e6ec247146104645780635353a2d814610484578063626381a0146104a457806370a08231146104b957600080fd5b806323b872dd116101905780632f2ff15d1161015f5780632f2ff15d146103cf578063313ce567146103ef5780633408e4701461041157806336568abe14610424578063395093511461044457600080fd5b806323b872dd14610327578063248a9ca3146103475780632d0335ab146103775780632e1a7d4d146103ad57600080fd5b80630dd7531a116101cc5780630dd7531a146102995780630f7e5970146102c657806318160ddd146102f357806320379ee51461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630b54817c146102595780630c53c51c14610286575b600080fd5b34801561020a57600080fd5b506102136106c0565b6040516102209190611b82565b60405180910390f35b34801561023557600080fd5b50610249610244366004611bb1565b610752565b6040519015158152602001610220565b34801561026557600080fd5b50610213604051806040016040528060018152602001608960f81b81525081565b610213610294366004611c02565b610770565b3480156102a557600080fd5b50610213604051806040016040528060018152602001600160f81b81525081565b3480156102d257600080fd5b50610213604051806040016040528060018152602001603160f81b81525081565b3480156102ff57600080fd5b506002545b604051908152602001610220565b34801561031e57600080fd5b50600954610304565b34801561033357600080fd5b50610249610342366004611ce8565b61095f565b34801561035357600080fd5b50610304610362366004611d24565b60009081526006602052604090206002015490565b34801561038357600080fd5b50610304610392366004611d3d565b6001600160a01b03166000908152600a602052604090205490565b3480156103b957600080fd5b506103cd6103c8366004611d24565b6109e6565b005b3480156103db57600080fd5b506103cd6103ea366004611d58565b6109fa565b3480156103fb57600080fd5b5060055460405160ff9091168152602001610220565b34801561041d57600080fd5b5046610304565b34801561043057600080fd5b506103cd61043f366004611d58565b610a8a565b34801561045057600080fd5b5061024961045f366004611bb1565b610b14565b34801561047057600080fd5b506103cd61047f366004611bb1565b610b62565b34801561049057600080fd5b506103cd61049f366004611dcd565b610c41565b3480156104b057600080fd5b50610304608981565b3480156104c557600080fd5b506103046104d4366004611d3d565b6001600160a01b031660009081526020819052604090205490565b3480156104fb57600080fd5b50610304600181565b34801561051057600080fd5b5061052461051f366004611e0f565b610d0c565b6040516001600160a01b039091168152602001610220565b34801561054857600080fd5b50610249610557366004611d58565b610d2b565b34801561056857600080fd5b50610213610d43565b34801561057d57600080fd5b50610304600081565b34801561059257600080fd5b506103047f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b3480156105c657600080fd5b506102496105d5366004611bb1565b610d52565b3480156105e657600080fd5b506102496105f5366004611bb1565b610dba565b34801561060657600080fd5b50610304610615366004611d24565b610dce565b34801561062657600080fd5b506103cd610635366004611e31565b610de5565b34801561064657600080fd5b506103cd610655366004611d58565b610e54565b34801561066657600080fd5b50610304610675366004611e84565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ac57600080fd5b506103cd6106bb366004611eae565b610ed7565b6060600380546106cf90611f3e565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb90611f3e565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b5050505050905090565b600061076661075f61107b565b848461108a565b5060015b92915050565b60408051606081810183526001600160a01b0388166000818152600a6020908152908590205484528301529181018690526107ae87828787876111af565b6108095760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b0387166000908152600a602052604090205461082d90600161129f565b6001600160a01b0388166000908152600a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061087d90899033908a90611f78565b60405180910390a1600080306001600160a01b0316888a6040516020016108a5929190611fa4565b60408051601f19818403018152908290526108bf91611fdb565b6000604051808303816000865af19150503d80600081146108fc576040519150601f19603f3d011682016040523d82523d6000602084013e610901565b606091505b5091509150816109535760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610800565b98975050505050505050565b600061096c8484846112fe565b6109dc8461097861107b565b6109d785604051806060016040528060288152602001612335602891396001600160a01b038a166000908152600160205260408120906109b661107b565b6001600160a01b031681526020810191909152604001600020549190611481565b61108a565b5060019392505050565b6109f76109f161107b565b826114bb565b50565b600082815260066020526040902060020154610a189061055761107b565b610a7c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610800565b610a8682826115bf565b5050565b610a9261107b565b6001600160a01b0316816001600160a01b031614610b0a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610800565b610a868282611628565b6000610766610b2161107b565b846109d78560016000610b3261107b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061129f565b6001600160a01b038216610bb85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610800565b600254610bc5908261129f565b6002556001600160a01b038216600090815260208190526040902054610beb908261129f565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6000610c4f8161055761107b565b600790610c6f5760405162461bcd60e51b81526004016108009190611ff7565b50610caf83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610d0783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061169d9050565b505050565b6000828152600660205260408120610d249083611724565b9392505050565b6000828152600660205260408120610d249083611730565b6060600480546106cf90611f3e565b6000610766610d5f61107b565b846109d78560405180606001604052806025815260200161235d6025913960016000610d8961107b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611481565b6000610766610dc761107b565b84846112fe565b600081815260066020526040812061076a90611752565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a9610e128161055761107b565b600790610e325760405162461bcd60e51b81526004016108009190611ff7565b506000610e4183850185611d24565b9050610e4d8582610b62565b5050505050565b600082815260066020526040902060020154610e729061055761107b565b610b0a5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610800565b60085460ff1615610f1b5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b610f5a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169192505050565b610f9984848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061175c92505050565b6005805460ff191660ff8416179055610fd28484604051602001610fbe929190612082565b604051602081830303815290604052611768565b610fe46000610fdf61107b565b610a7c565b61100e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982610a7c565b61106686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506117969050565b50506008805460ff1916600117905550505050565b60006110856117f5565b905090565b6001600160a01b0383166110ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610800565b6001600160a01b03821661114d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610800565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006001600160a01b0386166112155760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610800565b600161122861122387611851565b6118ce565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611276573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000806112ac83856120b9565b905083811015610d245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610800565b6001600160a01b0383166113625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610800565b6001600160a01b0382166113c45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610800565b6114018160405180606001604052806026815260200161230f602691396001600160a01b0386166000908152602081905260409020549190611481565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611430908261129f565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016111a2565b600081848411156114a55760405162461bcd60e51b81526004016108009190611b82565b5060006114b284866120cc565b95945050505050565b6001600160a01b03821661151b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610800565b6115588160405180606001604052806022815260200161225b602291396001600160a01b0385166000908152602081905260409020549190611481565b6001600160a01b03831660009081526020819052604090205560025461157e90826118fe565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610c35565b60008281526006602052604090206115d79082611940565b15610a86576115e461107b565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206116409082611955565b15610a865761164d61107b565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6003610a86828261212d565b6040518060800160405280604f81526020016122c0604f91398051906020012082805190602001208280519060200120306116d54690565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206009555050565b6000610d24838361196a565b6001600160a01b03811660009081526001830160205260408120541515610d24565b600061076a825490565b6004610a86828261212d565b8060405160200161177991906121ed565b60405160208183030381529060405260079081610a86919061212d565b60085460ff16156117da5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b6044820152606401610800565b6117e4828261169d565b50506008805460ff19166001179055565b600030330361184b57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061184e9050565b50335b90565b600060405180608001604052806043815260200161227d60439139805160209182012083518483015160408087015180519086012090516118b1950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b60006118d960095490565b60405161190160f01b60208201526022810191909152604281018390526062016118b1565b6000610d2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611481565b6000610d24836001600160a01b0384166119f0565b6000610d24836001600160a01b038416611a3f565b815460009082106119c85760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610800565b8260000182815481106119dd576119dd61222e565b9060005260206000200154905092915050565b6000818152600183016020526040812054611a375750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561076a565b50600061076a565b60008181526001830160205260408120548015611b28576000611a636001836120cc565b8554909150600090611a77906001906120cc565b90506000866000018281548110611a9057611a9061222e565b9060005260206000200154905080876000018481548110611ab357611ab361222e565b600091825260209091200155611aca8360016120b9565b60008281526001890160205260409020558654879080611aec57611aec612244565b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061076a565b600091505061076a565b60005b83811015611b4d578181015183820152602001611b35565b50506000910152565b60008151808452611b6e816020860160208601611b32565b601f01601f19169290920160200192915050565b602081526000610d246020830184611b56565b80356001600160a01b0381168114611bac57600080fd5b919050565b60008060408385031215611bc457600080fd5b611bcd83611b95565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803560ff81168114611bac57600080fd5b600080600080600060a08688031215611c1a57600080fd5b611c2386611b95565b9450602086013567ffffffffffffffff80821115611c4057600080fd5b818801915088601f830112611c5457600080fd5b813581811115611c6657611c66611bdb565b604051601f8201601f19908116603f01168101908382118183101715611c8e57611c8e611bdb565b816040528281528b6020848701011115611ca757600080fd5b8260208601602083013760006020848301015280985050505050506040860135925060608601359150611cdc60808701611bf1565b90509295509295909350565b600080600060608486031215611cfd57600080fd5b611d0684611b95565b9250611d1460208501611b95565b9150604084013590509250925092565b600060208284031215611d3657600080fd5b5035919050565b600060208284031215611d4f57600080fd5b610d2482611b95565b60008060408385031215611d6b57600080fd5b82359150611d7b60208401611b95565b90509250929050565b60008083601f840112611d9657600080fd5b50813567ffffffffffffffff811115611dae57600080fd5b602083019150836020828501011115611dc657600080fd5b9250929050565b60008060208385031215611de057600080fd5b823567ffffffffffffffff811115611df757600080fd5b611e0385828601611d84565b90969095509350505050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b600080600060408486031215611e4657600080fd5b611e4f84611b95565b9250602084013567ffffffffffffffff811115611e6b57600080fd5b611e7786828701611d84565b9497909650939450505050565b60008060408385031215611e9757600080fd5b611ea083611b95565b9150611d7b60208401611b95565b60008060008060008060808789031215611ec757600080fd5b863567ffffffffffffffff80821115611edf57600080fd5b611eeb8a838b01611d84565b90985096506020890135915080821115611f0457600080fd5b50611f1189828a01611d84565b9095509350611f24905060408801611bf1565b9150611f3260608801611b95565b90509295509295509295565b600181811c90821680611f5257607f821691505b602082108103611f7257634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038481168252831660208201526060604082018190526000906114b290830184611b56565b60008351611fb6818460208801611b32565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60008251611fed818460208701611b32565b9190910192915050565b600060208083526000845461200b81611f3e565b8084870152604060018084166000811461202c576001811461204657612074565b60ff1985168984015283151560051b890183019550612074565b896000528660002060005b8581101561206c5781548b8201860152908301908801612051565b8a0184019650505b509398975050505050505050565b6410da1a5b1960da1b81528183600583013760009101600501908152919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076a5761076a6120a3565b8181038181111561076a5761076a6120a3565b601f821115610d0757600081815260208120601f850160051c810160208610156121065750805b601f850160051c820191505b8181101561212557828155600101612112565b505050505050565b815167ffffffffffffffff81111561214757612147611bdb565b61215b816121558454611f3e565b846120df565b602080601f83116001811461219057600084156121785750858301515b600019600386901b1c1916600185901b178555612125565b600085815260208120601f198616915b828110156121bf578886015182559484019460019091019084016121a0565b50858210156121dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516121ff818460208701611b32565b7f3a20494e53554646494349454e545f5045524d495353494f4e53000000000000920191825250601a01919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c742945524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d0e474e7c0e5222b46307228c2ac6d269f0bbebdf353fd3f0134020073f9577f64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/hardhat/console.sol/console.json b/artifacts/hardhat/console.sol/console.json deleted file mode 100644 index 48515ec2..00000000 --- a/artifacts/hardhat/console.sol/console.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "console", - "sourceName": "hardhat/console.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/contracts/gamma/GammaCards.v5.sol b/contracts/gamma/GammaCards.v5.sol deleted file mode 100644 index 52ee0d80..00000000 --- a/contracts/gamma/GammaCards.v5.sol +++ /dev/null @@ -1,572 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {LibStringUtils} from "./libs/LibStringUtils.sol"; -import {LibPackVerifier} from "./libs/LibPackVerifier.sol"; -import {LibControlMgmt} from "./libs/LibControlMgmt.sol"; -import {console} from "hardhat/console.sol"; -import {NofGammaCardsNFTV1} from "./GammaCardsNFT.v1.sol"; - -error OnlyGammaPacksContract(); -error OnlyOffersContract(); -error OnlyOwners(); -error InvalidAddress(); -error InvalidCardNumber(); -error InvalidTransfer(); -error InvalidSignature(); -error IncorrectPrizeAmount(); -error WrongPacksQuantity(); -error NotYourPack(); -error CardLimitExceeded(); -error UserDoesNotHaveCardOrAlbum(); -error InsufficientFunds(); -error InsufficientCards(); -error MustCompleteAlbum(); -error CannotRemoveUserOffers(); - -interface IgammaPacksContract { - function getPackOwner(uint256 tokenId) external view returns (address); - - function openPack(uint256 tokenId, address owner) external; - - function openPacks(uint256[] memory tokenIds, address owner) external; -} - -interface IgammaOffersContract { - function hasOffer(address user, uint8 cardNumber) external view returns (bool); - - function removeOffersByUser(address user) external returns (bool); - - function getOffersByUserCounter(address user) external view returns (uint256); - - function getOfferByUserAndCardNumber( - address user, - uint8 cardNumber - ) external view returns (uint256, uint8, uint8[] memory, address); -} - -interface IgammaTicketsContract { - function generateTicket(address user) external; -} - -contract NofGammaCardsV5 is NofGammaCardsNFTV1, Ownable { - using LibStringUtils for uint8; - using LibControlMgmt for LibControlMgmt.Data; - - IgammaPacksContract public gammaPacksContract; - IgammaOffersContract public gammaOffersContract; - IgammaTicketsContract public gammaTicketsContract; - - LibControlMgmt.Data private ownersData; - LibControlMgmt.Data private signersData; - - uint8 public s_maxPacksToOpenAtOnce = 10; - uint8 public s_lotteryPrizePercentage = 50; - address public DAI_TOKEN; - uint256 public s_tokenIdCounter; - uint256 public s_packPrice = 12e17; // 1.2 DAI - uint256 public s_prizesBalance = 0; - uint256 public s_mainAlbumPrize = 15e18; // 15 DAI por album principal completado - uint256 public s_secondaryAlbumPrize = 1e18; // 1 DAI por album secundario completado - string public s_mainUri; - string public s_secondaryUri; - string public s_baseUri; - bool public s_requireOpenPackSignerValidation; - bool public s_requireOfferValidationInMint = true; - bool public s_requireOfferValidationInTransfer = true; - - struct Card { - uint256 tokenId; - uint256 number; - bool pasted; - uint8 class; // 1 para cartas, 2 para album de 120, 3 para album de 60 - uint256 completion; // solo se modifica en el caso de los albums - } - - mapping(uint256 tokenId => Card) public s_cards; - mapping(uint256 cardNumber => uint256 amount) public s_cardsInventory; // maximos: 120 => 5000 - mapping(address user => uint256 amount) public s_burnedCards; - mapping(address user => mapping(uint8 cardNumber => uint8 amount)) public s_cardsByUser; - - event NewGammaOffersContract(address indexed newGammaOffersContract); - event NewGammaPacksContract(address indexed newGammaPacksContract); - event NewGammaTicketsContract(address indexed newGammaTicketContract); - event PackOpened(address indexed player, uint8[] indexed packData, uint256 indexed packNumber); - event AlbumCompleted(address indexed player, uint8 indexed albumClass); - event CardPasted(address indexed player, uint256 indexed cardTokenId, uint256 indexed albumTokenId); - event EmergencyWithdrawal(address indexed receiver, uint256 indexed amount); - event NewSigner(address indexed newSigner); - event NewUris(string indexed newMainUri, string indexed newSecondaryUri); - event OfferCardsExchanged(address indexed from, address indexed to, uint8 cardNumberFrom, uint8 cardNumberTo); - event CardTransfered(address indexed from, address indexed to, uint8 cardNumber); - event CardsTransfered(address indexed from, address indexed to, uint8[] indexed cardNumber); - event CardsBurned(address indexed user, uint8[] indexed cardsNumber); - - modifier onlyGammaPacksContract() { - if(msg.sender != address(gammaPacksContract)) revert OnlyGammaPacksContract(); - _; - } - - modifier onlyGammaOffersContract() { - if(msg.sender != address(gammaOffersContract)) revert OnlyOffersContract(); - _; - } - - modifier onlyOwners() { - if(!ownersData.owners[msg.sender]) revert OnlyOwners(); - _; - } - - modifier checkAddressZero(address _address) { - if(_address == address(0)) revert InvalidAddress(); - _; - } - - constructor ( - address _daiTokenAddress, - address _gammaPacksContract, - address _gammaOffersContract, - address _gammaTicketsContract, - string memory _baseUri, - address _signer - ) Ownable(msg.sender) { - ownersData.owners[msg.sender] = true; - - DAI_TOKEN = _daiTokenAddress; - gammaPacksContract = IgammaPacksContract(_gammaPacksContract); - gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); - gammaOffersContract = IgammaOffersContract(_gammaOffersContract); - - s_baseUri = _baseUri; - s_mainUri = string(abi.encodePacked(bytes(s_baseUri), bytes("/"), bytes("120"), bytes("F.json"))); - s_secondaryUri = string( - abi.encodePacked(bytes(s_baseUri), bytes("/"), bytes("121"), bytes("F.json")) - ); - signersData.signers[_signer] = true; - - for (uint256 i; i < 122; i++) { - s_cardsInventory[i] = 1; - } - } - - function addOwner(address _newOwner) external onlyOwners { - ownersData.addOwner(_newOwner); - } - - function removeOwner(address _ownerToRemove) external onlyOwners { - ownersData.removeOwner(_ownerToRemove); - } - - function addSigner(address _newSigner) external onlyOwners { - signersData.addSigner(_newSigner); - } - - function removeSigner(address _signerToRemove) external onlyOwners { - signersData.removeSigner(_signerToRemove); - } - - function setGammaOffersContract(address _gammaOffersContract) external onlyOwners checkAddressZero(_gammaOffersContract) { - gammaOffersContract = IgammaOffersContract(_gammaOffersContract); - emit NewGammaOffersContract(_gammaOffersContract); - } - - function setGammaPacksContract(address _gammaPacksContract) external onlyOwners checkAddressZero(_gammaPacksContract){ - gammaPacksContract = IgammaPacksContract(_gammaPacksContract); - emit NewGammaPacksContract(_gammaPacksContract); - } - - function setGammaTicketsContract(address _gammaTicketsContract) external onlyOwners checkAddressZero(_gammaTicketsContract){ - gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); - emit NewGammaTicketsContract(_gammaTicketsContract); - } - - function setPrizesBalance(uint256 amount) external onlyGammaPacksContract { - s_prizesBalance += amount; - } - - function setMainAlbumPrize(uint256 amount) external onlyOwners { - if(amount == 0) revert IncorrectPrizeAmount(); - s_mainAlbumPrize = amount; - } - - function setSecondaryAlbumPrize(uint256 amount) external onlyOwners { - if(amount == 0) revert IncorrectPrizeAmount(); - s_secondaryAlbumPrize = amount; - } - - function setLotteryPrizePercentage(uint8 amount) external onlyOwners { - if(amount > 100) revert IncorrectPrizeAmount(); - s_lotteryPrizePercentage = amount; - } - - function setUris(string memory newMainUri, string memory newSecondaryUri) external onlyOwners { - s_mainUri = newMainUri; - s_secondaryUri = newSecondaryUri; - emit NewUris(newMainUri, newSecondaryUri); - } - - function changeRequireOpenPackSignerValidation(bool required) external onlyOwners { - s_requireOpenPackSignerValidation = required; - } - - function changeRequireOfferValidationInMint(bool required) external onlyOwners { - s_requireOfferValidationInMint = required; - } - - function changeRequireOfferValidationInTransfer(bool required) external onlyOwners { - s_requireOfferValidationInTransfer = required; - } - - function changePackPrice(uint256 newPackPrice) external onlyGammaPacksContract { - s_packPrice = newPackPrice; - } - - function changeMaxPacksToOpenAtOnce(uint8 _maxPacksToOpenAtOnce) external onlyOwners { - s_maxPacksToOpenAtOnce = _maxPacksToOpenAtOnce; - } - - function removeCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract { - s_cardsByUser[user][cardNumber]--; - } - - function restoreCardByOffer(address user, uint8 cardNumber) external onlyGammaOffersContract { - s_cardsByUser[user][cardNumber]++; - } - - function hasCardByOffer( - address user, - uint8 cardNumber - ) external view onlyGammaOffersContract returns (bool has) { - return s_cardsByUser[user][cardNumber] > 0; - } - - function hasCard(address user, uint8 cardNum) public view checkAddressZero(user) returns (bool has) { - return s_cardsByUser[user][cardNum] > 0; - } - - function isOwner(address user) external view returns (bool) { - return ownersData.owners[user]; - } - - function isSigner(address user) external view returns (bool) { - return signersData.signers[user]; - } - - function getLotteryPrize() public view returns (uint256) { - return (s_lotteryPrizePercentage * s_prizesBalance) / 100; - } - - function getCardQuantityByUser(address user, uint8 cardNum) public view checkAddressZero(user) returns (uint8) { - return s_cardsByUser[user][cardNum]; - } - - function getBurnedCardQttyByUser(address user) public view checkAddressZero(user) returns (uint256) { - return s_burnedCards[user]; - } - - function getCardsByUser( - address user - ) public view returns (uint8[] memory, uint8[] memory, bool[] memory) { - uint8[] memory cardNumbers = new uint8[](122); - uint8[] memory quantities = new uint8[](122); - bool[] memory offers = new bool[](122); - uint8 index = 0; - - for (uint8 i; i <= 121; i++) { - if (s_cardsByUser[user][i] > 0) { - cardNumbers[index] = i; - quantities[index] = s_cardsByUser[user][i]; - offers[index] = gammaOffersContract.hasOffer(user, i); - index++; - } - } - - uint8[] memory userCardNumbers = new uint8[](index); - uint8[] memory userCardsQtty = new uint8[](index); - bool[] memory userCardsOffers = new bool[](index); - - for (uint256 j; j < index; j++) { - userCardNumbers[j] = cardNumbers[j]; - userCardsQtty[j] = quantities[j]; - userCardsOffers[j] = offers[j]; - } - - return (userCardNumbers, userCardsQtty, userCardsOffers); - } - - function verifyPackSigner( - uint256 packNumber, - uint8[] memory packData, - bytes calldata signature - ) public view returns (address signer) { - return LibPackVerifier.verifyPackSigner(msg.sender, packNumber, packData, signature); - } - - function openPack( - uint256 packNumber, - uint8[] memory packData, - bytes calldata signature - ) external { - _openPack(msg.sender, packNumber, packData, signature); - } - - function openPacks( - uint8 packsQuantity, - uint256[] memory packsNumber, - uint8[][] memory packsData, - bytes[] calldata signatures - ) external { - if(packsQuantity == 0 || packsQuantity > s_maxPacksToOpenAtOnce) revert WrongPacksQuantity(); - - for (uint256 i; i < packsQuantity; i++) { - _openPack(msg.sender, packsNumber[i], packsData[i], signatures[i]); - } - } - - function _openPack( - address user, - uint256 packNumber, - uint8[] memory packData, - bytes calldata signature - ) private { - if(gammaPacksContract.getPackOwner(packNumber) != user) revert NotYourPack(); // @tomas read storage in packs - if(packData.length >= 15) revert CardLimitExceeded(); - - if (s_requireOpenPackSignerValidation) { // @tomas read storage - // Recreates the message present in the `signature` - address signer = LibPackVerifier.verifyPackSigner( - msg.sender, - packNumber, - packData, - signature - ); - - if(!signersData.signers[signer]) revert InvalidSignature(); - } - - gammaPacksContract.openPack(packNumber, user); // @tomas read storage in packs - s_prizesBalance += s_packPrice - s_packPrice / 6; // @tomas read storage - - - for (uint256 i; i < packData.length;) { - if(packData[i] == 120){ - if(s_cardsInventory[120] > 3000) revert InvalidCardNumber(); - } else { - if(s_cardsInventory[packData[i]] > 5000) revert InvalidCardNumber(); - } - s_cardsInventory[packData[i]]++; // @tomas modify storage / 280k gas aprox. - s_cardsByUser[user][packData[i]]++; // @tomas modify storage / 310k gas aprox. - unchecked { - i++; - } - } - - emit PackOpened(user, packData, packNumber); - } - - function exchangeCardsOffer( - address from, - uint8 cardNumberFrom, - address to, - uint8 cardNumberTo - ) external onlyGammaOffersContract checkAddressZero(from) checkAddressZero(to) { - if(s_cardsByUser[from][cardNumberFrom] == 0 || s_cardsByUser[to][cardNumberTo] == 0) revert UserDoesNotHaveCardOrAlbum(); - - s_cardsByUser[from][cardNumberFrom]--; - s_cardsByUser[to][cardNumberFrom]++; - s_cardsByUser[to][cardNumberTo]--; - s_cardsByUser[from][cardNumberTo]++; - - emit OfferCardsExchanged(from, to, cardNumberFrom, cardNumberTo); - } - - function transferCard(address to, uint8 cardNumber) external checkAddressZero(to) { - if(s_cardsByUser[msg.sender][cardNumber] == 0) revert UserDoesNotHaveCardOrAlbum(); - if(to == msg.sender) revert InvalidTransfer(); - - if (s_requireOfferValidationInTransfer) { - bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumber); - bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumber] > 1; - /* - The user can only make an offer for one letter and in that case he cannot mint or transfer it. - If you have more than one copy (quantity > 1) of that card, you must be able to mint - or transfer the rest. - */ - require(!hasOffer || hasMoreThanOne, "This card has an offer."); - } - - s_cardsByUser[msg.sender][cardNumber]--; - s_cardsByUser[to][cardNumber]++; - emit CardTransfered(msg.sender, to, cardNumber); - } - - function transferCards(address to, uint8[] calldata cardNumbers) public checkAddressZero(to) { - if(to == msg.sender) revert InvalidTransfer(); - - for (uint256 i; i < cardNumbers.length; i++) { - if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum(); - s_cardsByUser[msg.sender][cardNumbers[i]]--; - s_cardsByUser[to][cardNumbers[i]]++; - - if (s_requireOfferValidationInTransfer) { - bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNumbers[i]); - bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNumbers[i]] > 1; - /* - The user can only make an offer for one letter and in that case he cannot mint or transfer it. - If you have more than one copy (quantity > 1) of that card, you must be able to mint - or transfer the rest. - */ - require(!hasOffer || hasMoreThanOne, "This card has an offer."); - } - } - emit CardsTransfered(msg.sender, to, cardNumbers); - } - - // user must call this function when they have at least 1 - // card of each number (120 total) + a 120 album card - function finishAlbum() public returns (bool) { - // requires the user to have at least one 120 album - if(s_cardsByUser[msg.sender][120] == 0) revert UserDoesNotHaveCardOrAlbum(); - if(s_prizesBalance < s_mainAlbumPrize) revert IncorrectPrizeAmount(); - - uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this)); - if(contractBalance < s_mainAlbumPrize) revert InsufficientFunds(); - - // check that you have at least one card of each number - bool unfinished; - - for (uint8 i; i <= 120;) { - if (s_cardsByUser[msg.sender][i] == 0) { - unfinished = true; - break; - } - s_cardsByUser[msg.sender][i]--; - unchecked { - i++; - } - } - if(unfinished) revert MustCompleteAlbum(); - - // mint the completed album. - safeMint(msg.sender, s_mainUri, 120, 2); - - // transfer prize in DAI. - IERC20(DAI_TOKEN).transfer(msg.sender, s_mainAlbumPrize); - s_prizesBalance -= s_mainAlbumPrize; - - bool userOffersRemoved = gammaOffersContract.removeOffersByUser(msg.sender); - if(!userOffersRemoved) revert CannotRemoveUserOffers(); - - emit AlbumCompleted(msg.sender, 1); - return true; - } - - // user should call this function if they want to 'paste' selected cards in - // the 60 cards album to 'burn' them. - function burnCards(uint8[] calldata cardNumbers) public { - if(s_cardsByUser[msg.sender][121] == 0) revert UserDoesNotHaveCardOrAlbum(); - uint256 totalUserBurnedCards = s_burnedCards[msg.sender] + cardNumbers.length; - bool mustPayPrize; - - if (totalUserBurnedCards >= 60) { - uint256 contractBalance = IERC20(DAI_TOKEN).balanceOf(address(this)); - if(contractBalance < s_secondaryAlbumPrize || s_prizesBalance < s_secondaryAlbumPrize) revert InsufficientFunds(); - mustPayPrize = true; - } - - bool userHasOffers = (gammaOffersContract.getOffersByUserCounter(msg.sender) > 0); - uint256 cardNumbersLength = cardNumbers.length; - for (uint256 i; i < cardNumbersLength;) { - if(s_cardsByUser[msg.sender][cardNumbers[i]] == 0) revert UserDoesNotHaveCardOrAlbum(); - if (userHasOffers) { - if (gammaOffersContract.hasOffer(msg.sender, cardNumbers[i])) { - if(s_cardsByUser[msg.sender][cardNumbers[i]] < 2) revert InsufficientCards(); - } - } - s_cardsByUser[msg.sender][cardNumbers[i]]--; - unchecked { - i++; - } - } - - s_burnedCards[msg.sender] += cardNumbersLength; - emit CardsBurned(msg.sender, cardNumbers); - - if (mustPayPrize) { - s_cardsByUser[msg.sender][121]--; - safeMint(msg.sender, s_secondaryUri, 121, 2); // mint album of 60 cards. - - s_prizesBalance -= s_secondaryAlbumPrize; - IERC20(DAI_TOKEN).transfer(msg.sender, s_secondaryAlbumPrize); - - gammaTicketsContract.generateTicket(msg.sender); - emit AlbumCompleted(msg.sender, 2); - } - } - - function mintCard(uint8 cardNum) public { - if(s_cardsByUser[msg.sender][cardNum] == 0) revert UserDoesNotHaveCardOrAlbum(); - - if (s_requireOfferValidationInMint) { - bool hasOffer = gammaOffersContract.hasOffer(msg.sender, cardNum); - bool hasMoreThanOne = s_cardsByUser[msg.sender][cardNum] > 1; - /* - The user can only make an offer for one letter and in that case he cannot mint or transfer it. - If you have more than one copy (quantity > 1) of that card, you must be able to mint - or transfer the rest. - */ - require(!hasOffer || hasMoreThanOne, "This card has an offer."); - } - - s_cardsByUser[msg.sender][cardNum]--; - - string memory uri = string( - abi.encodePacked(bytes(s_baseUri), bytes("/"), bytes(cardNum.toString()), bytes(".json")) - ); - - safeMint(msg.sender, uri, cardNum, 1); - } - - function safeMint(address _to, string memory _uri, uint256 _number, uint8 _class) internal { - uint256 tokenId = s_tokenIdCounter; - s_cards[tokenId].tokenId = tokenId; - s_cards[tokenId].number = _number; - s_cards[tokenId].class = _class; - _safeMint(_to, tokenId); - _setTokenURI(tokenId, _uri); - s_tokenIdCounter += 1; - } - - // do not call unless really necessary - function emergencyWithdraw(uint256 amount) public onlyOwners { - if(balanceOf(address(this)) < amount) revert InsufficientFunds(); - s_prizesBalance -= amount; - IERC20(DAI_TOKEN).transfer(msg.sender, amount); - emit EmergencyWithdrawal(msg.sender, amount); - } - - - - - // for testing purposes only, will remove on deploy - function testAddCards(address user) public onlyOwners { - for(uint8 i; i<=121; i++){ // 0-119: cards, 120: album-120, 121: album-60 - s_cardsByUser[user][i]++; - } - } - - function testOpenPack(address user, uint256 packNumber, uint8[] memory packData) external onlyOwners { - gammaPacksContract.openPack(packNumber, user); - s_prizesBalance += s_packPrice - s_packPrice / 6; - - for(uint256 i; i Offer[]) offersByUser; - mapping(uint8 cardNumber => Offer[]) offersByCardNumber; - mapping(address => uint256) public offersByUserCounter; - mapping(uint8 => uint256) public offersByCardNumberCounter; - uint256 public offersTotalCounter; - - event NewGammaCardsContract(address newGammaCardsContract); - event OfferCreated(address user, uint8 cardNumber, uint8[] wantedCardNumbers); - event OfferRemoved(address user, uint8 cardNumber); - event UserOffersRemoved(address user); - event AllOffersRemoved(); - - modifier onlyCardsContract() { - if (msg.sender != address(gammaCardsContract)) revert OnlyCardsContract(); - _; - } - - modifier onlyOwners() { - if (!ownersData.owners[msg.sender]) revert OnlyOwners(); - _; - } - - constructor (address _cardsContract) Ownable(msg.sender) { - if (_cardsContract == address(0)) revert InvalidAddress(); - gammaCardsContract = IGammaCardsContract(_cardsContract); - ownersData.owners[msg.sender] = true; - } - - function addOwner(address _newOwner) external onlyOwners { - ownersData.addOwner(_newOwner); - } - - function removeOwner(address _ownerToRemove) external onlyOwners { - ownersData.removeOwner(_ownerToRemove); - } - - function setGammaCardsContract(address _gammaCardsContract) public onlyOwners { - if (_gammaCardsContract == address(0)) revert InvalidAddress(); - gammaCardsContract = IGammaCardsContract(_gammaCardsContract); - emit NewGammaCardsContract(_gammaCardsContract); - } - - function setMaxOffersAllowed(uint256 _maxOffersAllowed) external onlyOwners { - maxOffersAllowed = _maxOffersAllowed; - } - - function setMaxOffersByUserAllowed(uint256 _maxOffersByUserAllowed) external onlyOwners { - maxOffersByUserAllowed = _maxOffersByUserAllowed; - } - - function setMaxCardNumbersAllowed(uint256 _maxCardNumbersAllowed) external onlyOwners { - maxCardNumbersAllowed = _maxCardNumbersAllowed; - } - - function changeRemoveCardinInventoryWhenOffer(bool _value) external onlyOwners { - removeCardInInventoryWhenOffer = _value; - } - - function createOffer( - string memory offerId, - uint8 cardNumber, - uint8[] memory wantedCardNumbers - ) public { - _createOfferWithUser(offerId, msg.sender, cardNumber, wantedCardNumbers); - } - - function createOfferWithoUser( - string memory offerId, - address user, - uint8 cardNumber, - uint8[] memory wantedCardNumbers - ) public onlyOwners { - _createOfferWithUser(offerId, user, cardNumber, wantedCardNumbers); - } - - function _createOfferWithUser( - string memory offerId, - address user, - uint8 cardNumber, - uint8[] memory wantedCardNumbers - ) private { - if (address(gammaCardsContract) == address(0)) revert GammaCardsContractNotSet(); - if (offersByUserCounter[user] >= maxOffersByUserAllowed) revert OffersMaximumAllowed(); - if (offersTotalCounter >= maxOffersAllowed) revert OffersMaximumAllowed(); - - bool userHasCard = gammaCardsContract.hasCardByOffer(user, cardNumber); - if (!userHasCard) revert UserDoesNotHaveCard(); - - for (uint8 i = 0; i < wantedCardNumbers.length; i++) { - if (wantedCardNumbers[i] == cardNumber) revert InvalidCardNumber(); - } - - Offer memory existingOffer = getOfferByUserAndCardNumber(user, cardNumber); - if (existingOffer.owner != address(0)) revert OfferAlreadyExists(); - - offersByUserCounter[user] += 1; - offersByCardNumberCounter[cardNumber] += 1; - offersTotalCounter += 1; - - offers.push(Offer(offerId, cardNumber, wantedCardNumbers, user, block.timestamp)); - offersByUser[user].push(offers[offers.length - 1]); - offersByCardNumber[cardNumber].push(offers[offers.length - 1]); - - if (removeCardInInventoryWhenOffer) { - gammaCardsContract.removeCardByOffer(user, cardNumber); - } - - emit OfferCreated(user, cardNumber, wantedCardNumbers); - } - - function isOwner(address user) external view returns (bool) { - return ownersData.owners[user]; - } - - function getOffersByUserCounter(address user) external view returns (uint256) { - if (user == address(0)) revert InvalidAddress(); - return offersByUserCounter[user]; - } - - function getOffersByCardNumberCounter(uint8 cardNumber) external view returns (uint256) { - return offersByCardNumberCounter[cardNumber]; - } - - function getOffersCounter() external view returns (uint256) { - return offersTotalCounter; - } - - function getMaxOffersAllowed() external view returns (uint256) { - return maxOffersAllowed; - } - - function getMaxOffersByUserAllowed() external view returns (uint256) { - return maxOffersByUserAllowed; - } - - function getOffers() external view returns (Offer[] memory) { - return offers; - } - - function getOfferByIndex(uint256 index) public view returns (Offer memory) { - if (index >= offers.length) revert InvalidOfferId(); - return offers[index]; - } - - function getOfferByOfferId(string memory offerId) external view returns (Offer memory) { - for (uint256 i = 0; i < offers.length; i++) { - if (keccak256(abi.encodePacked(offers[i].offerId)) == keccak256(abi.encodePacked(offerId))) { - return (offers[i]); - } - } - return _emptyOffer(); - } - - function getOffersByUser(address user) external view returns (Offer[] memory) { - if (user == address(0)) revert InvalidAddress(); - return offersByUser[user]; - } - - function getOffersByCardNumber(uint8 cardNumber) external view returns (Offer[] memory) { - return offersByCardNumber[cardNumber]; - } - - function getOfferByUserAndCardNumber( - address user, - uint8 cardNumber - ) public view returns (Offer memory) { - if (user == address(0)) revert InvalidAddress(); - - Offer[] storage userOffers = offersByUser[user]; - uint256 currentUserOffersCounter = offersByUserCounter[user]; - for (uint256 i = 0; i < currentUserOffersCounter; i++) { - if (userOffers[i].cardNumber == cardNumber) { - return userOffers[i]; - } - } - return _emptyOffer(); - } - - function canUserPublishOffer(address user) public view returns (bool) { - return maxOffersByUserAllowed > offersByUserCounter[user]; - } - - function canAnyUserPublishOffer() public view returns (bool) { - return maxOffersAllowed > offersTotalCounter; - } - - function hasOffer(address user, uint8 cardNumber) public view returns (bool) { - if (user == address(0)) revert InvalidAddress(); - for (uint256 i = 0; i < offersByUserCounter[user]; i++) { - if (offersByUser[user][i].cardNumber == cardNumber) { - return true; - } - } - return false; - } - - function confirmOfferExchange( - address from, - uint8 cardNumberWanted, - address offerWallet, - uint8 offerCardNumber - ) external { - Offer memory offer = getOfferByUserAndCardNumber(offerWallet, offerCardNumber); - if (offer.owner != offerWallet) revert OfferDoesNotExists(); - - uint8[] memory wantedCardNumbers = offer.wantedCardNumbers; - if (wantedCardNumbers.length == 0) { - //buscamos que el usuario no tenga la carta - if (gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted)) - revert UserAlreadyHasCard(); - } else { - //validamos contra las cartas que acepta el usuario - bool foundCardWanted = false; - for (uint8 j = 0; j < wantedCardNumbers.length; j++) { - if (wantedCardNumbers[j] == cardNumberWanted) { - foundCardWanted = true; - break; - } - } - if (!foundCardWanted) revert InvalidCard(); - } - - bool offerDeleted = _removeOfferByUserAndCardNumber( - offerWallet, - offerCardNumber, - offer.offerId, - true - ); - if (!offerDeleted) revert OfferNotDeleted(); - - gammaCardsContract.exchangeCardsOffer(from, cardNumberWanted, offerWallet, offerCardNumber); - if ( - !gammaCardsContract.hasCardByOffer(from, offerCardNumber) || - !gammaCardsContract.hasCardByOffer(offerWallet, cardNumberWanted) - ) revert ExchangeError(); - } - - function deleteAllOffers() external onlyOwners { - for (uint256 i = 0; i < offers.length; i++) { - delete offersByUser[offers[i].owner]; - offersByUserCounter[offers[i].owner] = 0; - - delete offersByCardNumber[offers[i].cardNumber]; - offersByCardNumberCounter[offers[i].cardNumber] = 0; - } - offersTotalCounter = 0; - delete offers; - - emit AllOffersRemoved(); - } - - function removeOfferByCardNumber(uint8 cardNumber) external returns (bool) { - Offer memory offer = getOfferByUserAndCardNumber(msg.sender, cardNumber); - if (offer.owner != msg.sender) { - return false; - } - bool result = _removeOfferByUserAndCardNumber(msg.sender, cardNumber, offer.offerId, false); - return result; - } - - function removeOfferByUserAndCardNumber( - address user, - uint8 cardNumber - ) public onlyOwners returns (bool) { - Offer memory offer = getOfferByUserAndCardNumber(user, cardNumber); - if (offer.owner != user) { - return false; - } - bool result = _removeOfferByUserAndCardNumber(user, cardNumber, offer.offerId, false); - return result; - } - - function removeOffersByUser(address user) external onlyCardsContract returns (bool) { - if (user == address(0)) revert InvalidAddress(); - - Offer[] storage userOffers = offersByUser[user]; - uint256 currentUserOffersCounter = offersByUserCounter[user]; - - for (uint256 i = 0; i < currentUserOffersCounter; i++) { - string memory offerId = userOffers[i].offerId; - uint8 cardNumber = userOffers[i].cardNumber; - _removeOfferFromCardNumberMapping(user, cardNumber, offerId); - _removeOfferByOfferId(offerId); - offersByCardNumberCounter[cardNumber] -= 1; - offersTotalCounter -= 1; - } - - delete offersByUser[user]; - offersByUserCounter[user] = 0; - - emit UserOffersRemoved(user); - return true; - } - - function _removeOfferByUserAndCardNumber( - address user, - uint8 cardNumber, - string memory offerId, - bool fromConfirmOfferExchange - ) private returns (bool) { - if (user == address(0)) revert InvalidAddress(); - - _removeOfferFromUserMapping(user, cardNumber, offerId); - _removeOfferFromCardNumberMapping(user, cardNumber, offerId); - _removeOfferByOfferId(offerId); - offersByUserCounter[user] -= 1; - offersByCardNumberCounter[cardNumber] -= 1; - offersTotalCounter -= 1; - - if (removeCardInInventoryWhenOffer && !fromConfirmOfferExchange) { - gammaCardsContract.restoreCardByOffer(user, cardNumber); - } - - emit OfferRemoved(user, cardNumber); - return true; - } - - function _removeOfferFromUserMapping( - address user, - uint8 cardNumber, - string memory offerId - ) private { - Offer[] storage userOffers = offersByUser[user]; - for (uint256 i = 0; i < userOffers.length; i++) { - if (_sameOfferId(userOffers[i].offerId, offerId)) { - if (userOffers[i].owner != user || userOffers[i].cardNumber != cardNumber) - revert RemoveOfferFromUserMapping_DoNotMatch(); - if (i < (userOffers.length - 1)) { - userOffers[i] = userOffers[userOffers.length - 1]; - } - userOffers.pop(); - break; - } - } - } - - function _removeOfferFromCardNumberMapping( - address user, - uint8 cardNumber, - string memory offerId - ) private { - Offer[] storage cardOffers = offersByCardNumber[cardNumber]; - - for (uint256 i = 0; i < cardOffers.length; i++) { - if (_sameOfferId(cardOffers[i].offerId, offerId)) { - if (cardOffers[i].owner != user || cardOffers[i].cardNumber != cardNumber) - revert RemoveOfferFromCardNumberMapping_DoNotMatch(); - - if (i < cardOffers.length - 1) { - cardOffers[i] = cardOffers[cardOffers.length - 1]; - } - cardOffers.pop(); - break; - } - } - } - - function _removeOfferByOfferId(string memory offerId) private returns (bool) { - bool deleted = false; - for (uint256 j = 0; j < offers.length; j++) { - if (j < offers.length && _sameOfferId(offers[j].offerId, offerId)) { - delete offers[j]; - offers[j] = offers[offers.length - 1]; - offers.pop(); - deleted = true; - break; - } - } - return deleted; - } - - function _emptyOffer() internal pure returns (Offer memory) { - return Offer("", 0, new uint8[](0), address(0), 0); - } - - function _sameOfferId( - string memory offerId1, - string memory offerId2 - ) internal pure returns (bool) { - return keccak256(abi.encodePacked(offerId1)) == keccak256(abi.encodePacked(offerId2)); - } -} diff --git a/contracts/gamma/GammaPacks.v3.sol b/contracts/gamma/GammaPacks.v3.sol deleted file mode 100644 index 479446fe..00000000 --- a/contracts/gamma/GammaPacks.v3.sol +++ /dev/null @@ -1,315 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {LibControlMgmt} from "./libs/LibControlMgmt.sol"; -import {console} from "hardhat/console.sol"; - -error NotGammaCardsContract(); -error OwnlyOwners(); -error InvalidAddress(); -error InvalidNumberOfPacks(); -error InsufficientPacksAvailable(); -error TransferPrizeError(address _to); -error InsufficientAllowance(); -error InsufficientBalance(); -error NotYourPack(); -error ContractAddressNotSet(); - -interface IGammaCardsContract { - function setPrizesBalance(uint256 amount) external; - - function changePackPrice(uint256 amount) external; -} - -interface IgammaTicketsContract { - function getLotteryWinner() - external - returns (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user); - - function deleteAllTickets() external; -} - -contract NofGammaPacksV3 is Ownable { - using LibControlMgmt for LibControlMgmt.Data; - - IGammaCardsContract public gammaCardsContract; - IgammaTicketsContract public gammaTicketsContract; - - LibControlMgmt.Data private ownersData; - - address public DAI_TOKEN; - address public s_balanceReceiver; - uint256 public constant TOTALSUPPLY = 50000; - uint256 public s_packPrice = 12e17; // 1.2 DAI - uint256 private s_packsCounter = 0; - bool s_transferDai = true; - - mapping(uint256 tokenId => address owner) public s_packs; - mapping(address owner => uint256[] tokenIds) public s_packsByUser; - - event NewGammaCardsContract(address indexed newCardsContract); - event NewGammaTicketsContract(address indexed newGammaTicketContract); - event NewBalanceReceiver(address indexed balanceReceiver); - event PackPurchased(address indexed buyer, uint256 indexed tokenId); - event PacksPurchased(address indexed buyer, uint256[] indexed tokenIds); - event PackTransfered(address indexed from, address indexed to, uint256 indexed tokenId); - event PacksTransfered(address indexed from, address indexed to, uint256[] indexed tokenId); - event PackOpened(address indexed user, uint256 indexed tokenId); - event NewPrice(uint256 indexed newPrice); - - modifier onlyGammaCardsContract() { - if (msg.sender != address(gammaCardsContract)) revert NotGammaCardsContract(); - _; - } - - modifier onlyOwners() { - if (!ownersData.owners[msg.sender]) revert OwnlyOwners(); - _; - } - - constructor( - address _daiTokenAddress, - address _balanceReceiver, - address _gammaCardsContract, - address _gammaTicketsContract - ) Ownable(msg.sender) { - if ( - _balanceReceiver == address(0) || - _gammaCardsContract == address(0) || - _gammaTicketsContract == address(0) - ) revert InvalidAddress(); - - DAI_TOKEN = _daiTokenAddress; - s_balanceReceiver = _balanceReceiver; - gammaCardsContract = IGammaCardsContract(_gammaCardsContract); - gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); - - ownersData.owners[msg.sender] = true; - } - - function addOwner(address _newOwner) external onlyOwners { - ownersData.addOwner(_newOwner); - } - - function removeOwner(address _ownerToRemove) external onlyOwners { - ownersData.removeOwner(_ownerToRemove); - } - - function changeBalanceReceiver(address _newBalanceReceiver) external onlyOwners { - if (_newBalanceReceiver == address(0)) revert InvalidAddress(); - s_balanceReceiver = _newBalanceReceiver; - emit NewBalanceReceiver(_newBalanceReceiver); - } - - function changePrice(uint256 _newPrice) public onlyOwners { - s_packPrice = _newPrice; - gammaCardsContract.changePackPrice(_newPrice); - emit NewPrice(_newPrice); - } - - function changeTransferDaiFlag(bool _transferDai) public onlyOwners { - s_transferDai = _transferDai; - } - - function setGammaCardsContract(address _gammaCardsContract) public onlyOwners { - if (_gammaCardsContract == address(0)) revert InvalidAddress(); - gammaCardsContract = IGammaCardsContract(_gammaCardsContract); - emit NewGammaCardsContract(_gammaCardsContract); - } - - function setGammaTicketsContract(address _gammaTicketsContract) public onlyOwners { - if (_gammaTicketsContract == address(0)) revert InvalidAddress(); - gammaTicketsContract = IgammaTicketsContract(_gammaTicketsContract); - emit NewGammaTicketsContract(_gammaTicketsContract); - } - - function isOwner(address user) external view returns (bool) { - return ownersData.owners[user]; - } - - function getPrizeAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) { - return (s_packPrice - (s_packPrice / 6)) * numberOfPacks; - } - - function getPrizeNoFAccountAmountToBuyPacks(uint256 numberOfPacks) public view returns (uint256) { - uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks); - return (s_packPrice * numberOfPacks) - prizesAmount; - } - - function getAmountRequiredToBuyPacks(uint256 numberOfPacks) public view returns (uint256) { - uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks); - uint256 NoFAccountAmount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks); - return prizesAmount + NoFAccountAmount; - } - - function getPacksByUser(address owner) public view returns (uint256[] memory) { - return s_packsByUser[owner]; - } - - function getPackOwner(uint256 tokenId) public view returns (address) { - return s_packs[tokenId]; - } - - function meetQuantityConditionsToBuy(uint256 numberOfPacks) public view returns (bool) { - if (numberOfPacks == 0) revert InvalidNumberOfPacks(); - return (s_packsCounter + numberOfPacks) < TOTALSUPPLY; - } - - function buyPack() public returns (uint256) { - return _buyPack(msg.sender); - } - - function buyPacks(uint256 numberOfPacks) public returns (uint256[] memory) { - return _buyPacks(msg.sender, numberOfPacks); - } - - function buyPackByUser(address user) public onlyOwners returns (uint256) { - return _buyPack(user); - } - - function buyPacksByUser( - address user, - uint256 numberOfPacks - ) public onlyOwners returns (uint256[] memory) { - return _buyPacks(user, numberOfPacks); - } - - function _buyPack(address user) private returns (uint256) { - uint256[] memory tokenIds = _buyPacks(user, 1); - return tokenIds[0]; - } - - function _buyPacks(address user, uint256 numberOfPacks) private returns (uint256[] memory) { - if (user == address(0)) revert InvalidAddress(); - if (numberOfPacks == 0 || numberOfPacks > 100) revert InvalidNumberOfPacks(); - if ((s_packsCounter + numberOfPacks) >= TOTALSUPPLY) revert InsufficientPacksAvailable(); - uint256[] memory tokenIds = new uint256[](numberOfPacks); - uint256 m_packsCounter = s_packsCounter; - - for (uint256 i; i < numberOfPacks;) { - if (m_packsCounter >= TOTALSUPPLY) revert InsufficientPacksAvailable(); - s_packs[m_packsCounter] = user; - s_packsByUser[user].push(m_packsCounter); - tokenIds[i] = m_packsCounter; - m_packsCounter++; - unchecked { - i++; - } - } - - s_packsCounter = m_packsCounter; - - bool transferPrizeResult = _transferPrizesAmounts(user, numberOfPacks); - if (!transferPrizeResult) revert TransferPrizeError(user); - - if (numberOfPacks == 1) { - emit PackPurchased(user, tokenIds[0]); - } else { - emit PacksPurchased(user, tokenIds); - } - - return tokenIds; - } - - function _transferPrizesAmounts(address user, uint256 numberOfPacks) private returns (bool) { - uint256 prizesAmount = getPrizeAmountToBuyPacks(numberOfPacks); - uint256 prizeNoFAccount = getPrizeNoFAccountAmountToBuyPacks(numberOfPacks); - gammaCardsContract.setPrizesBalance(prizesAmount); - - if (s_transferDai) { - IERC20 erc20Token = IERC20(DAI_TOKEN); - - if (erc20Token.allowance(user, address(this)) < (prizesAmount + prizeNoFAccount)) revert InsufficientAllowance(); - if (erc20Token.balanceOf(user) < prizesAmount || erc20Token.balanceOf(user) < prizeNoFAccount) - revert InsufficientBalance(); - - // send prize amount to the card contract - bool successTx1 = erc20Token.transferFrom(user, address(gammaCardsContract), prizesAmount); - if (!successTx1) revert TransferPrizeError(address(gammaCardsContract)); - - // send profit amount to NoF account - bool successTx2 = erc20Token.transferFrom(user, s_balanceReceiver, prizeNoFAccount); - if (!successTx2) revert TransferPrizeError(s_balanceReceiver); - } - return true; - } - - function deleteTokenId(uint256 tokenId, address owner) internal { - uint256 packsByUserLength = s_packsByUser[owner].length; - for (uint256 i; i < packsByUserLength; i++) { - if (s_packsByUser[owner][i] == tokenId) { - s_packsByUser[owner][i] = s_packsByUser[owner][s_packsByUser[owner].length - 1]; - s_packsByUser[owner].pop(); - break; - } - } - } - - function transferPack(address to, uint256 tokenId) public { - _transferPack(to, tokenId); - } - - function transferPacks(address to, uint256[] memory tokenIds) public { - for (uint256 i = 0; i < tokenIds.length; i++) { - uint256 tokenId = tokenIds[i]; - _transferPack(to, tokenId); - } - emit PacksTransfered(msg.sender, to, tokenIds); - } - - function _transferPack(address to, uint256 tokenId) private { - if (to == address(0)) revert InvalidAddress(); - if (s_packs[tokenId] != msg.sender) revert NotYourPack(); - s_packs[tokenId] = to; - deleteTokenId(tokenId, msg.sender); - s_packsByUser[to].push(tokenId); - emit PackTransfered(msg.sender, to, tokenId); - } - - function openPack(uint256 tokenId, address owner) public onlyGammaCardsContract { - _openPack(tokenId, owner); - } - - function openPacks(uint256[] memory tokenIds, address owner) public onlyGammaCardsContract { - for (uint256 i = 0; i < tokenIds.length; i++) { - uint256 tokenId = tokenIds[i]; - _openPack(tokenId, owner); - } - } - - function _openPack(uint256 tokenId, address owner) private { - deleteTokenId(tokenId, owner); - delete s_packs[tokenId]; - emit PackOpened(owner, tokenId); - } - - function _lottery() private { - if (address(gammaTicketsContract) == address(0)) revert ContractAddressNotSet(); - // (uint256 timestamp, bytes32 ticketId, uint256 ticketCounter, address user) = gammaTicketsContract.getLotteryWinner(); - - // TODO: get %price from gamma cards contract - - // TODO: transfer price - if (s_transferDai) { - // IERC20 erc20Token = IERC20(DAI_TOKEN); - } - - // TODO: burn tickets en gamma tickets contract - gammaTicketsContract.deleteAllTickets(); - } - - // for testing purposes only, will delete upon deployment - function testOpenPack(uint256 tokenId, address owner) public onlyOwners { - _openPack(tokenId, owner); - } - - function testOpenPacks(uint256[] memory tokenIds, address owner) public onlyOwners { - for (uint256 i = 0; i < tokenIds.length; i++) { - uint256 tokenId = tokenIds[i]; - _openPack(tokenId, owner); - } - } - // for testing purposes only, will delete upon deployment -} diff --git a/contracts/gamma/libs/LibControlMgmt.sol b/contracts/gamma/libs/LibControlMgmt.sol deleted file mode 100644 index a633743b..00000000 --- a/contracts/gamma/libs/LibControlMgmt.sol +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -library LibControlMgmt { - struct Data { - mapping(address => bool) owners; - mapping(address => bool) signers; - } - - event NewOwnerAdded(address newOwner); - event OwnerRemoved(address owner); - event NewSignerAdded(address newSigner); - event SignerRemoved(address signer); - - function addOwner(Data storage self, address newOwner) external { - require(newOwner != address(0), "Invalid address."); - require(!self.owners[newOwner], "Address is already an owner."); - self.owners[newOwner] = true; - emit NewOwnerAdded(newOwner); - } - - function removeOwner(Data storage self, address ownerToRemove) external { - require(ownerToRemove != address(0), "Invalid address."); - require(self.owners[ownerToRemove], "Address is not an owner."); - require(ownerToRemove != msg.sender, "You cannot remove yourself as an owner."); - self.owners[ownerToRemove] = false; - emit OwnerRemoved(ownerToRemove); - } - - function addSigner(Data storage self, address newSigner) external { - require(newSigner != address(0), "Invalid address."); - require(!self.signers[newSigner], "Address is already a signer."); - self.signers[newSigner] = true; - emit NewSignerAdded(newSigner); - } - - function removeSigner(Data storage self, address signerToRemove) external { - require(signerToRemove != address(0), "Invalid address."); - require(self.signers[signerToRemove], "Address is not a signer."); - require(signerToRemove != msg.sender, "You cannot remove yourself as a signer."); - self.signers[signerToRemove] = false; - emit SignerRemoved(signerToRemove); - } -} diff --git a/contracts/gamma/libs/LibPackVerifier.sol b/contracts/gamma/libs/LibPackVerifier.sol deleted file mode 100644 index 8926de23..00000000 --- a/contracts/gamma/libs/LibPackVerifier.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; - - -library LibPackVerifier { - using ECDSA for bytes32; - using MessageHashUtils for bytes32; - - function verifyPackSigner( - address sender, - uint256 packNumber, - uint8[] memory packData, - bytes calldata signature - ) public pure returns (address) { - bytes32 messageHash = keccak256( - abi.encodePacked(sender, packNumber, packData, '0xf1dD71895e49b1563693969de50898197cDF3481') - ).toEthSignedMessageHash(); - - address recoveredSigner = messageHash.recover(signature); - return recoveredSigner; - } -} diff --git a/contracts/gamma/libs/LibStringUtils.sol b/contracts/gamma/libs/LibStringUtils.sol deleted file mode 100644 index 2c712483..00000000 --- a/contracts/gamma/libs/LibStringUtils.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -library LibStringUtils { - - // Inspired by OraclizeAPI's implementation - MIT licence - // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.sol#L15-L35 - function toString(uint256 value) public pure returns (string memory) { - - if (value == 0) { - return "0"; - } - uint256 temp = value; - uint256 digits; - while (temp != 0) { - digits++; - temp /= 10; - } - bytes memory buffer = new bytes(digits); - while (value != 0) { - digits -= 1; - buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); - value /= 10; - } - return string(buffer); - } - -} diff --git a/contracts/testDai/TestDAI.v3.sol b/contracts/testDai/TestDAI.v3.sol deleted file mode 100644 index e76603c3..00000000 --- a/contracts/testDai/TestDAI.v3.sol +++ /dev/null @@ -1,1614 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -/* - * @dev 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 GSN 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. - */ -abstract contract Context { - function _msgSender() internal view virtual returns (address payable) { - return payable(address(msg.sender)); - } - - function _msgData() internal view virtual returns (bytes memory) { - // silence state mutability warning without generating bytecode - // more info: see https://github.com/ethereum/solidity/issues/2691 - this; - return msg.data; - } -} - -// File: @openzeppelin/contracts/token/ERC20/IERC20.sol - - - -pragma solidity ^0.8.20; - -/** - * @dev Interface of the ERC20 standard as defined in the EIP. - */ -interface IERC20 { - /** - * @dev Returns the amount of tokens in existence. - */ - function totalSupply() external view returns (uint256); - - /** - * @dev Returns the amount of tokens owned by `account`. - */ - function balanceOf(address account) external view returns (uint256); - - /** - * @dev Moves `amount` tokens from the caller's account to `recipient`. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transfer(address recipient, uint256 amount) external returns (bool); - - /** - * @dev Returns the remaining number of tokens that `spender` will be - * allowed to spend on behalf of `owner` through {transferFrom}. This is - * zero by default. - * - * This value changes when {approve} or {transferFrom} are called. - */ - function allowance(address owner, address spender) external view returns (uint256); - - /** - * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * IMPORTANT: Beware that changing an allowance with this method brings the risk - * that someone may use both the old and the new allowance by unfortunate - * transaction ordering. One possible solution to mitigate this race - * condition is to first reduce the spender's allowance to 0 and set the - * desired value afterwards: - * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - * - * Emits an {Approval} event. - */ - function approve(address spender, uint256 amount) external returns (bool); - - /** - * @dev Moves `amount` tokens from `sender` to `recipient` using the - * allowance mechanism. `amount` is then deducted from the caller's - * allowance. - * - * Returns a boolean value indicating whether the operation succeeded. - * - * Emits a {Transfer} event. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @dev Emitted when `value` tokens are moved from one account (`from`) to - * another (`to`). - * - * Note that `value` may be zero. - */ - event Transfer(address indexed from, address indexed to, uint256 value); - - /** - * @dev Emitted when the allowance of a `spender` for an `owner` is set by - * a call to {approve}. `value` is the new allowance. - */ - event Approval(address indexed owner, address indexed spender, uint256 value); -} - -// File: @openzeppelin/contracts/math/SafeMath.sol - - - -pragma solidity ^0.8.20; - -/** - * @dev Wrappers over Solidity's arithmetic operations with added overflow - * checks. - * - * Arithmetic operations in Solidity wrap on overflow. This can easily result - * in bugs, because programmers usually assume that an overflow raises an - * error, which is the standard behavior in high level programming languages. - * `SafeMath` restores this intuition by reverting the transaction when 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. - */ -library SafeMath { - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 c = a + b; - require(c >= a, "SafeMath: addition overflow"); - - return c; - } - - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - return sub(a, b, "SafeMath: subtraction overflow"); - } - - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { - require(b <= a, errorMessage); - uint256 c = a - b; - - return c; - } - - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint256 a, uint256 b) internal pure returns (uint256) { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 - if (a == 0) { - return 0; - } - - uint256 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); - - return c; - } - - /** - * @dev Returns the integer division of two unsigned integers. Reverts on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint256 a, uint256 b) internal pure returns (uint256) { - return div(a, b, "SafeMath: division by zero"); - } - - /** - * @dev Returns the integer division of two unsigned integers. Reverts with custom message on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { - require(b > 0, errorMessage); - uint256 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold - - return c; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint256 a, uint256 b) internal pure returns (uint256) { - return mod(a, b, "SafeMath: modulo by zero"); - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts with custom message when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { - require(b != 0, errorMessage); - return a % b; - } -} - -// File: @openzeppelin/contracts/utils/Address.sol - - - -pragma solidity ^0.8.20; - -/** - * @dev Collection of functions related to the address type - */ -library Address { - /** - * @dev Returns true if `account` is a contract. - * - * [IMPORTANT] - * ==== - * It is unsafe to assume that an address for which this function returns - * false is an externally-owned account (EOA) and not a contract. - * - * Among others, `isContract` will return false for the following - * types of addresses: - * - * - an externally-owned account - * - a contract in construction - * - an address where a contract will be created - * - an address where a contract lived, but was destroyed - * ==== - */ - function isContract(address account) internal view returns (bool) { - // According to EIP-1052, 0x0 is the value returned for not-yet created accounts - // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned - // for accounts without code, i.e. `keccak256('')` - bytes32 codehash; - bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; - // solhint-disable-next-line no-inline-assembly - assembly { codehash := extcodehash(account) } - return (codehash != accountHash && codehash != 0x0); - } - - /** - * @dev Replacement for Solidity's `transfer`: sends `amount` wei to - * `recipient`, forwarding all available gas and reverting on errors. - * - * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost - * of certain opcodes, possibly making contracts go over the 2300 gas limit - * imposed by `transfer`, making them unable to receive funds via - * `transfer`. {sendValue} removes this limitation. - * - * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. - * - * IMPORTANT: because control is transferred to `recipient`, care must be - * taken to not create reentrancy vulnerabilities. Consider using - * {ReentrancyGuard} or the - */ - function sendValue(address payable recipient, uint256 amount) internal { - require(address(this).balance >= amount, "Address: insufficient balance"); - - // solhint-disable-next-line avoid-low-level-calls, avoid-call-value - (bool success, ) = recipient.call{ value: amount }(""); - require(success, "Address: unable to send value, recipient may have reverted"); - } - - /** - * @dev Performs a Solidity function call using a low level `call`. A - * plain`call` is an unsafe replacement for a function call: use this - * function instead. - * - * If `target` reverts with a revert reason, it is bubbled up by this - * function (like regular Solidity function calls). - * - * Returns the raw returned data. To convert to the expected return value, - * - * Requirements: - * - * - `target` must be a contract. - * - calling `target` with `data` must not revert. - * - * _Available since v3.1._ - */ - function functionCall(address target, bytes memory data) internal returns (bytes memory) { - return functionCall(target, data, "Address: low-level call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with - * `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCall(address target, bytes memory data, string memory errorMessage) internal - returns (bytes memory) { - return _functionCallWithValue(target, data, 0, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but also transferring `value` wei to `target`. - * - * Requirements: - * - * - the calling contract must have an ETH balance of at least `value`. - * - the called Solidity function must be `payable`. - * - * _Available since v3.1._ - */ - function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { - return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); - } - - /** - * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but - * with `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, bytes memory data, - uint256 value, string memory errorMessage) internal returns (bytes memory) { - - require(address(this).balance >= value, "Address: insufficient balance for call"); - return _functionCallWithValue(target, data, value, errorMessage); - } - - function _functionCallWithValue( - address target, bytes memory data, - uint256 weiValue, string memory errorMessage) private returns (bytes memory) { - - require(isContract(target), "Address: call to non-contract"); - - // solhint-disable-next-line avoid-low-level-calls - (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); - if (success) { - return returndata; - } else { - // Look for revert reason and bubble it up if present - if (returndata.length > 0) { - // The easiest way to bubble the revert reason is using memory via assembly - - // solhint-disable-next-line no-inline-assembly - assembly { - let returndata_size := mload(returndata) - revert(add(32, returndata), returndata_size) - } - } else { - revert(errorMessage); - } - } - } -} - -// File: contracts/child/ChildToken/UpgradeableChildERC20/ERC20.sol - - - -pragma solidity ^0.8.20; - - - - -/** - * Modified openzeppelin implemtation to add setters for name, symbol and decimals. - * This was needed because the variables cannot be set in constructor as the contract is upgradeable. - */ - -/** - * @dev openzeppelin Implementation of the {IERC20} interface. - * - * Modified to add setters for name, symbol and decimals. This was needed - * because - * - * This implementation is agnostic to the way tokens are created. This means - * that a supply mechanism has to be added in a derived contract using {_mint}. - * For a generic mechanism see {ERC20PresetMinterPauser}. - * - * TIP: For a detailed writeup see our guide - * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How - * to implement supply mechanisms]. - * - * We have followed general OpenZeppelin guidelines: functions revert instead - * of returning `false` on failure. This behavior is nonetheless conventional - * and does not conflict with the expectations of ERC20 applications. - * - * Additionally, an {Approval} event is emitted on calls to {transferFrom}. - * This allows applications to reconstruct the allowance for all accounts just - * by listening to said events. Other implementations of the EIP may not emit - * these events, as it isn't required by the specification. - * - * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} - * functions have been added to mitigate the well-known issues around setting - * allowances. See {IERC20-approve}. - */ -contract ERC20 is Context, IERC20 { - using SafeMath for uint256; - using Address for address; - - mapping (address => uint256) private _balances; - - mapping (address => mapping (address => uint256)) private _allowances; - - uint256 private _totalSupply; - - string private _name; - string private _symbol; - uint8 private _decimals; - - /** - * @dev Sets the values for {name} and {symbol}, initializes {decimals} with - * a default value of 18. - * - * To select a different value for {decimals}, use {_setupDecimals}. - * - * All three of these values are immutable: they can only be set once during - * construction. - */ - constructor (string memory __name, string memory __symbol) { - _name = __name; - _symbol = __symbol; - _decimals = 18; - } - - /** - * @dev Returns the name of the token. - */ - function name() public view returns (string memory) { - return _name; - } - - function setName(string memory newName) internal { - _name = newName; - } - - /** - * @dev Returns the symbol of the token, usually a shorter version of the - * name. - */ - function symbol() public view returns (string memory) { - return _symbol; - } - - function setSymbol(string memory newSymbol) internal { - _symbol = newSymbol; - } - - /** - * @dev Returns the number of decimals used to get its user representation. - * For example, if `decimals` equals `2`, a balance of `505` tokens should - * be displayed to a user as `5,05` (`505 / 10 ** 2`). - * - * Tokens usually opt for a value of 18, imitating the relationship between - * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is - * called. - * - * NOTE: This information is only used for _display_ purposes: it in - * no way affects any of the arithmetic of the contract, including - * {IERC20-balanceOf} and {IERC20-transfer}. - */ - function decimals() public view returns (uint8) { - return _decimals; - } - - function setDecimals(uint8 newDecimals) internal { - _decimals = newDecimals; - } - - /** - * @dev See {IERC20-totalSupply}. - */ - function totalSupply() public view override returns (uint256) { - return _totalSupply; - } - - /** - * @dev See {IERC20-balanceOf}. - */ - function balanceOf(address account) public view override returns (uint256) { - return _balances[account]; - } - - /** - * @dev See {IERC20-transfer}. - * - * Requirements: - * - * - `recipient` cannot be the zero address. - * - the caller must have a balance of at least `amount`. - */ - function transfer(address recipient, uint256 amount) public virtual override returns (bool) { - _transfer(_msgSender(), recipient, amount); - return true; - } - - /** - * @dev See {IERC20-allowance}. - */ - function allowance(address owner, address spender) public view virtual override returns (uint256) { - return _allowances[owner][spender]; - } - - /** - * @dev See {IERC20-approve}. - * - * Requirements: - * - * - `spender` cannot be the zero address. - */ - function approve(address spender, uint256 amount) public virtual override returns (bool) { - _approve(_msgSender(), spender, amount); - return true; - } - - /** - * @dev See {IERC20-transferFrom}. - * - * Emits an {Approval} event indicating the updated allowance. This is not - * required by the EIP. See the note at the beginning of {ERC20}; - * - * Requirements: - * - `sender` and `recipient` cannot be the zero address. - * - `sender` must have a balance of at least `amount`. - * - the caller must have allowance for ``sender``'s tokens of at least - * `amount`. - */ - function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { - _transfer(sender, recipient, amount); - _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, - "ERC20: transfer amount exceeds allowance")); - return true; - } - - /** - * @dev Atomically increases the allowance granted to `spender` by the caller. - * - * This is an alternative to {approve} that can be used as a mitigation for - * problems described in {IERC20-approve}. - * - * Emits an {Approval} event indicating the updated allowance. - * - * Requirements: - * - * - `spender` cannot be the zero address. - */ - function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { - _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); - return true; - } - - /** - * @dev Atomically decreases the allowance granted to `spender` by the caller. - * - * This is an alternative to {approve} that can be used as a mitigation for - * problems described in {IERC20-approve}. - * - * Emits an {Approval} event indicating the updated allowance. - * - * Requirements: - * - * - `spender` cannot be the zero address. - * - `spender` must have allowance for the caller of at least - * `subtractedValue`. - */ - function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { - _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, - "ERC20: decreased allowance below zero")); - return true; - } - - /** - * @dev Moves tokens `amount` from `sender` to `recipient`. - * - * This is internal function is equivalent to {transfer}, and can be used to - * e.g. implement automatic token fees, slashing mechanisms, etc. - * - * Emits a {Transfer} event. - * - * Requirements: - * - * - `sender` cannot be the zero address. - * - `recipient` cannot be the zero address. - * - `sender` must have a balance of at least `amount`. - */ - function _transfer(address sender, address recipient, uint256 amount) internal virtual { - require(sender != address(0), "ERC20: transfer from the zero address"); - require(recipient != address(0), "ERC20: transfer to the zero address"); - - _beforeTokenTransfer(sender, recipient, amount); - - _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); - _balances[recipient] = _balances[recipient].add(amount); - emit Transfer(sender, recipient, amount); - } - - /** @dev Creates `amount` tokens and assigns them to `account`, increasing - * the total supply. - * - * Emits a {Transfer} event with `from` set to the zero address. - * - * Requirements - * - * - `to` cannot be the zero address. - */ - function _mint(address account, uint256 amount) public virtual { - require(account != address(0), "ERC20: mint to the zero address"); - - _beforeTokenTransfer(address(0), account, amount); - - _totalSupply = _totalSupply.add(amount); - _balances[account] = _balances[account].add(amount); - emit Transfer(address(0), account, amount); - } - - /** - * @dev Destroys `amount` tokens from `account`, reducing the - * total supply. - * - * Emits a {Transfer} event with `to` set to the zero address. - * - * Requirements - * - * - `account` cannot be the zero address. - * - `account` must have at least `amount` tokens. - */ - function _burn(address account, uint256 amount) internal virtual { - require(account != address(0), "ERC20: burn from the zero address"); - - _beforeTokenTransfer(account, address(0), amount); - - _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); - _totalSupply = _totalSupply.sub(amount); - emit Transfer(account, address(0), amount); - } - - /** - * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. - * - * This is internal function is equivalent to `approve`, and can be used to - * e.g. set automatic allowances for certain subsystems, etc. - * - * Emits an {Approval} event. - * - * Requirements: - * - * - `owner` cannot be the zero address. - * - `spender` cannot be the zero address. - */ - function _approve(address owner, address spender, uint256 amount) internal virtual { - require(owner != address(0), "ERC20: approve from the zero address"); - require(spender != address(0), "ERC20: approve to the zero address"); - - _allowances[owner][spender] = amount; - emit Approval(owner, spender, amount); - } - - /** - * @dev Sets {decimals} to a value other than the default one of 18. - * - * WARNING: This function should only be called from the constructor. Most - * applications that interact with token contracts will not expect - * {decimals} to ever change, and may work incorrectly if it does. - */ - function _setupDecimals(uint8 decimals_) internal { - _decimals = decimals_; - } - - /** - * @dev Hook that is called before any transfer of tokens. This includes - * minting and burning. - * - * Calling conditions: - * - * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens - * will be to transferred to `to`. - * - when `from` is zero, `amount` tokens will be minted for `to`. - * - when `to` is zero, `amount` of ``from``'s tokens will be burned. - * - `from` and `to` are never both zero. - * - * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. - */ - function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } -} - -// File: @openzeppelin/contracts/utils/EnumerableSet.sol - - - -pragma solidity ^0.8.20; - -/** - * @dev Library for managing - * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive - * types. - * - * Sets have the following properties: - * - * - Elements are added, removed, and checked for existence in constant time - * (O(1)). - * - Elements are enumerated in O(n). No guarantees are made on the ordering. - * - * ``` - * contract Example { - * // Add the library methods - * using EnumerableSet for EnumerableSet.AddressSet; - * - * // Declare a set state variable - * EnumerableSet.AddressSet private mySet; - * } - * ``` - * - * As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256` - * (`UintSet`) are supported. - */ -library EnumerableSet { - // To implement this library for multiple types with as little code - // repetition as possible, we write it in terms of a generic Set type with - // bytes32 values. - // The Set implementation uses private functions, and user-facing - // implementations (such as AddressSet) are just wrappers around the - // underlying Set. - // This means that we can only create new EnumerableSets for types that fit - // in bytes32. - - struct Set { - // Storage of set values - bytes32[] _values; - - // Position of the value in the `values` array, plus 1 because index 0 - // means a value is not in the set. - mapping (bytes32 => uint256) _indexes; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function _add(Set storage set, bytes32 value) private returns (bool) { - if (!_contains(set, value)) { - set._values.push(value); - // The value is stored at length-1, but we add 1 to all indexes - // and use 0 as a sentinel value - set._indexes[value] = set._values.length; - return true; - } else { - return false; - } - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function _remove(Set storage set, bytes32 value) private returns (bool) { - // We read and store the value's index to prevent multiple reads from the same storage slot - uint256 valueIndex = set._indexes[value]; - - if (valueIndex != 0) { // Equivalent to contains(set, value) - // To delete an element from the _values array in O(1), we swap the element to delete with the last one in - // the array, and then remove the last element (sometimes called as 'swap and pop'). - // This modifies the order of the array, as noted in {at}. - - uint256 toDeleteIndex = valueIndex - 1; - uint256 lastIndex = set._values.length - 1; - - // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs - // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. - - bytes32 lastvalue = set._values[lastIndex]; - - // Move the last value to the index where the value to delete is - set._values[toDeleteIndex] = lastvalue; - // Update the index for the moved value - set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based - - // Delete the slot where the moved value was stored - set._values.pop(); - - // Delete the index for the deleted slot - delete set._indexes[value]; - - return true; - } else { - return false; - } - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function _contains(Set storage set, bytes32 value) private view returns (bool) { - return set._indexes[value] != 0; - } - - /** - * @dev Returns the number of values on the set. O(1). - */ - function _length(Set storage set) private view returns (uint256) { - return set._values.length; - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function _at(Set storage set, uint256 index) private view returns (bytes32) { - require(set._values.length > index, "EnumerableSet: index out of bounds"); - return set._values[index]; - } - - // AddressSet - - struct AddressSet { - Set _inner; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function add(AddressSet storage set, address value) internal returns (bool) { - return _add(set._inner, bytes32(uint256(uint160(value)))); - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function remove(AddressSet storage set, address value) internal returns (bool) { - return _remove(set._inner, bytes32(uint256(uint160(value)))); - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function contains(AddressSet storage set, address value) internal view returns (bool) { - return _contains(set._inner, bytes32(uint256(uint160(value)))); - } - - /** - * @dev Returns the number of values in the set. O(1). - */ - function length(AddressSet storage set) internal view returns (uint256) { - return _length(set._inner); - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function at(AddressSet storage set, uint256 index) internal view returns (address) { - return address(uint160(uint256(_at(set._inner, index)))); - } - - - // UintSet - - struct UintSet { - Set _inner; - } - - /** - * @dev Add a value to a set. O(1). - * - * Returns true if the value was added to the set, that is if it was not - * already present. - */ - function add(UintSet storage set, uint256 value) internal returns (bool) { - return _add(set._inner, bytes32(value)); - } - - /** - * @dev Removes a value from a set. O(1). - * - * Returns true if the value was removed from the set, that is if it was - * present. - */ - function remove(UintSet storage set, uint256 value) internal returns (bool) { - return _remove(set._inner, bytes32(value)); - } - - /** - * @dev Returns true if the value is in the set. O(1). - */ - function contains(UintSet storage set, uint256 value) internal view returns (bool) { - return _contains(set._inner, bytes32(value)); - } - - /** - * @dev Returns the number of values on the set. O(1). - */ - function length(UintSet storage set) internal view returns (uint256) { - return _length(set._inner); - } - - /** - * @dev Returns the value stored at position `index` in the set. O(1). - * - * Note that there are no guarantees on the ordering of values inside the - * array, and it may change when more values are added or removed. - * - * Requirements: - * - * - `index` must be strictly less than {length}. - */ - function at(UintSet storage set, uint256 index) internal view returns (uint256) { - return uint256(_at(set._inner, index)); - } -} - -// File: @openzeppelin/contracts/access/AccessControl.sol - - - -pragma solidity ^0.8.20; - - - - -/** - * @dev Contract module that allows children to implement role-based access - * control mechanisms. - * - * Roles are referred to by their `bytes32` identifier. These should be exposed - * in the external API and be unique. The best way to achieve this is by - * using `public constant` hash digests: - * - * ``` - * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); - * ``` - * - * Roles can be used to represent a set of permissions. To restrict access to a - * function call, use {hasRole}: - * - * ``` - * function foo() public { - * require(hasRole(MY_ROLE, msg.sender)); - * ... - * } - * ``` - * - * Roles can be granted and revoked dynamically via the {grantRole} and - * {revokeRole} functions. Each role has an associated admin role, and only - * accounts that have a role's admin role can call {grantRole} and {revokeRole}. - * - * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means - * that only accounts with this role will be able to grant or revoke other - * roles. More complex role relationships can be created by using - * {_setRoleAdmin}. - * - * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to - * grant and revoke this role. Extra precautions should be taken to secure - * accounts that have been granted it. - */ -abstract contract AccessControl is Context { - using EnumerableSet for EnumerableSet.AddressSet; - using Address for address; - - struct RoleData { - EnumerableSet.AddressSet members; - bytes32 adminRole; - } - - mapping (bytes32 => RoleData) private _roles; - - bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; - - /** - * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` - * - * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite - * {RoleAdminChanged} not being emitted signaling this. - * - * _Available since v3.1._ - */ - event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); - - /** - * @dev Emitted when `account` is granted `role`. - * - * `sender` is the account that originated the contract call, an admin role - * bearer except when using {_setupRole}. - */ - event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); - - /** - * @dev Emitted when `account` is revoked `role`. - * - * `sender` is the account that originated the contract call: - * - if using `revokeRole`, it is the admin role bearer - * - if using `renounceRole`, it is the role bearer (i.e. `account`) - */ - event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); - - /** - * @dev Returns `true` if `account` has been granted `role`. - */ - function hasRole(bytes32 role, address account) public view returns (bool) { - return _roles[role].members.contains(account); - } - - /** - * @dev Returns the number of accounts that have `role`. Can be used - * together with {getRoleMember} to enumerate all bearers of a role. - */ - function getRoleMemberCount(bytes32 role) public view returns (uint256) { - return _roles[role].members.length(); - } - - /** - * @dev Returns one of the accounts that have `role`. `index` must be a - * value between 0 and {getRoleMemberCount}, non-inclusive. - * - * Role bearers are not sorted in any particular way, and their ordering may - * change at any point. - * - * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure - * you perform all queries on the same block. See the following - * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296 - * for more information. - */ - function getRoleMember(bytes32 role, uint256 index) public view returns (address) { - return _roles[role].members.at(index); - } - - /** - * @dev Returns the admin role that controls `role`. See {grantRole} and - * {revokeRole}. - * - * To change a role's admin, use {_setRoleAdmin}. - */ - function getRoleAdmin(bytes32 role) public view returns (bytes32) { - return _roles[role].adminRole; - } - - /** - * @dev Grants `role` to `account`. - * - * If `account` had not been already granted `role`, emits a {RoleGranted} - * event. - * - * Requirements: - * - * - the caller must have ``role``'s admin role. - */ - function grantRole(bytes32 role, address account) public virtual { - require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant"); - - _grantRole(role, account); - } - - /** - * @dev Revokes `role` from `account`. - * - * If `account` had been granted `role`, emits a {RoleRevoked} event. - * - * Requirements: - * - * - the caller must have ``role``'s admin role. - */ - function revokeRole(bytes32 role, address account) public virtual { - require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke"); - - _revokeRole(role, account); - } - - /** - * @dev Revokes `role` from the calling account. - * - * Roles are often managed via {grantRole} and {revokeRole}: this function's - * purpose is to provide a mechanism for accounts to lose their privileges - * if they are compromised (such as when a trusted device is misplaced). - * - * If the calling account had been granted `role`, emits a {RoleRevoked} - * event. - * - * Requirements: - * - * - the caller must be `account`. - */ - function renounceRole(bytes32 role, address account) public virtual { - require(account == _msgSender(), "AccessControl: can only renounce roles for self"); - - _revokeRole(role, account); - } - - /** - * @dev Grants `role` to `account`. - * - * If `account` had not been already granted `role`, emits a {RoleGranted} - * event. Note that unlike {grantRole}, this function doesn't perform any - * checks on the calling account. - * - * [WARNING] - * ==== - * This function should only be called from the constructor when setting - * up the initial roles for the system. - * - * Using this function in any other way is effectively circumventing the admin - * system imposed by {AccessControl}. - * ==== - */ - function _setupRole(bytes32 role, address account) internal virtual { - _grantRole(role, account); - } - - /** - * @dev Sets `adminRole` as ``role``'s admin role. - * - * Emits a {RoleAdminChanged} event. - */ - function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { - emit RoleAdminChanged(role, _roles[role].adminRole, adminRole); - _roles[role].adminRole = adminRole; - } - - function _grantRole(bytes32 role, address account) private { - if (_roles[role].members.add(account)) { - emit RoleGranted(role, account, _msgSender()); - } - } - - function _revokeRole(bytes32 role, address account) private { - if (_roles[role].members.remove(account)) { - emit RoleRevoked(role, account, _msgSender()); - } - } -} - -// File: contracts/common/AccessControlMixin.sol - -pragma solidity ^0.8.20; - - -contract AccessControlMixin is AccessControl { - string private _revertMsg; - function _setupContractId(string memory contractId) internal { - _revertMsg = string(abi.encodePacked(contractId, ": INSUFFICIENT_PERMISSIONS")); - } - - modifier only(bytes32 role) { - require( - hasRole(role, _msgSender()), - _revertMsg - ); - _; - } -} - -// File: contracts/child/ChildToken/IChildToken.sol - -pragma solidity ^0.8.20; - -interface IChildToken { - function deposit(address user, bytes calldata depositData) external; -} - -// File: contracts/common/Initializable.sol - -pragma solidity ^0.8.20; - -contract Initializable { - bool inited = false; - - modifier initializer() { - require(!inited, "already inited"); - _; - inited = true; - } -} - -// File: contracts/common/EIP712Base.sol - -pragma solidity ^0.8.20; - - -contract EIP712Base is Initializable { - struct EIP712Domain { - string name; - string version; - address verifyingContract; - bytes32 salt; - } - - bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256( - bytes( - "EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)" - ) - ); - bytes32 internal domainSeperator; - - // supposed to be called once while initializing. - // one of the contractsa that inherits this contract follows proxy pattern - // so it is not possible to do this in a constructor - function _initializeEIP712( - string memory name, - string memory version - ) - internal - initializer - { - _setDomainSeperator(name, version); - } - - function _setDomainSeperator(string memory name, string memory version) internal { - domainSeperator = keccak256( - abi.encode( - EIP712_DOMAIN_TYPEHASH, - keccak256(bytes(name)), - keccak256(bytes(version)), - address(this), - bytes32(getChainId()) - ) - ); - } - - function getDomainSeperator() public view returns (bytes32) { - return domainSeperator; - } - - function getChainId() public view returns (uint256) { - uint256 id; - assembly { - id := chainid() - } - return id; - } - - /** - * Accept message hash and returns hash message in EIP712 compatible form - * So that it can be used to recover signer from signature signed using EIP712 formatted data - * https://eips.ethereum.org/EIPS/eip-712 - * "\\x19" makes the encoding deterministic - * "\\x01" is the version byte to make it compatible to EIP-191 - */ - function toTypedMessageHash(bytes32 messageHash) - internal - view - returns (bytes32) - { - return - keccak256( - abi.encodePacked("\x19\x01", getDomainSeperator(), messageHash) - ); - } -} - -// File: contracts/common/NativeMetaTransaction.sol - -pragma solidity ^0.8.20; - - - -contract NativeMetaTransaction is EIP712Base { - using SafeMath for uint256; - bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256( - bytes( - "MetaTransaction(uint256 nonce,address from,bytes functionSignature)" - ) - ); - event MetaTransactionExecuted( - address userAddress, - address payable relayerAddress, - bytes functionSignature - ); - mapping(address => uint256) nonces; - - /* - * Meta transaction structure. - * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas - * He should call the desired function directly in that case. - */ - struct MetaTransaction { - uint256 nonce; - address from; - bytes functionSignature; - } - - function executeMetaTransaction( - address userAddress, - bytes memory functionSignature, - bytes32 sigR, - bytes32 sigS, - uint8 sigV - ) public payable returns (bytes memory) { - MetaTransaction memory metaTx = MetaTransaction({ - nonce: nonces[userAddress], - from: userAddress, - functionSignature: functionSignature - }); - - require( - verify(userAddress, metaTx, sigR, sigS, sigV), - "Signer and signature do not match" - ); - - // increase nonce for user (to avoid re-use) - nonces[userAddress] = nonces[userAddress].add(1); - - emit MetaTransactionExecuted( - userAddress, - payable(msg.sender), - functionSignature - ); - - // Append userAddress and relayer address at the end to extract it from calling context - (bool success, bytes memory returnData) = address(this).call( - abi.encodePacked(functionSignature, userAddress) - ); - require(success, "Function call not successful"); - - return returnData; - } - - function hashMetaTransaction(MetaTransaction memory metaTx) - internal - pure - returns (bytes32) - { - return - keccak256( - abi.encode( - META_TRANSACTION_TYPEHASH, - metaTx.nonce, - metaTx.from, - keccak256(metaTx.functionSignature) - ) - ); - } - - function getNonce(address user) public view returns (uint256 nonce) { - nonce = nonces[user]; - } - - function verify( - address signer, - MetaTransaction memory metaTx, - bytes32 sigR, - bytes32 sigS, - uint8 sigV - ) internal view returns (bool) { - require(signer != address(0), "NativeMetaTransaction: INVALID_SIGNER"); - return - signer == - ecrecover( - toTypedMessageHash(hashMetaTransaction(metaTx)), - sigV, - sigR, - sigS - ); - } -} - -// File: contracts/ChainConstants.sol - -pragma solidity ^0.8.20; - -contract ChainConstants { - string constant public ERC712_VERSION = "1"; - - uint256 constant public ROOT_CHAIN_ID = 1; - bytes constant public ROOT_CHAIN_ID_BYTES = hex"01"; - - uint256 constant public CHILD_CHAIN_ID = 137; - bytes constant public CHILD_CHAIN_ID_BYTES = hex"89"; -} - -// File: contracts/common/ContextMixin.sol - -pragma solidity ^0.8.20; - -abstract contract ContextMixin { - function msgSender() - internal - view - returns (address payable sender) - { - if (msg.sender == address(this)) { - bytes memory array = msg.data; - uint256 index = msg.data.length; - assembly { - // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those. - sender := and( - mload(add(array, index)), - 0xffffffffffffffffffffffffffffffffffffffff - ) - } - } else { - sender = payable(msg.sender); - } - return sender; - } -} - -// File: contracts/child/ChildToken/UpgradeableChildERC20/UChildERC20.sol - -pragma solidity ^0.8.20; - - -contract UChildERC20 is - ERC20, - IChildToken, - AccessControlMixin, - NativeMetaTransaction, - ChainConstants, - ContextMixin -{ - bytes32 public constant DEPOSITOR_ROLE = keccak256("DEPOSITOR_ROLE"); - - constructor() ERC20("DAI", "DAI") {} - - /** - * @notice Initialize the contract after it has been proxified - * @dev meant to be called once immediately after deployment - */ - function initialize( - string calldata name_, - string calldata symbol_, - uint8 decimals_, - address childChainManager - ) - external - initializer - { - setName(name_); - setSymbol(symbol_); - setDecimals(decimals_); - _setupContractId(string(abi.encodePacked("Child", symbol_))); - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - _setupRole(DEPOSITOR_ROLE, childChainManager); - _initializeEIP712(name_, ERC712_VERSION); - } - - // This is to support Native meta transactions - // never use msg.sender directly, use _msgSender() instead - function _msgSender() - internal - override - view - returns (address payable sender) - { - return ContextMixin.msgSender(); - } - - function changeName(string calldata name_) external only(DEFAULT_ADMIN_ROLE) { - setName(name_); - _setDomainSeperator(name_, ERC712_VERSION); - } - - /** - * @notice called when token is deposited on root chain - * @dev Should be callable only by ChildChainManager - * Should handle deposit by minting the required amount for user - * Make sure minting is done only by this function - * @param user user address for whom deposit is being done - * @param depositData abi encoded amount - */ - function deposit(address user, bytes calldata depositData) - external - override - only(DEPOSITOR_ROLE) - { - uint256 amount = abi.decode(depositData, (uint256)); - _mint(user, amount); - } - - /** - * @notice called when user wants to withdraw tokens back to root chain - * @dev Should burn user's tokens. This transaction will be verified when exiting on root chain - * @param amount amount of tokens to withdraw - */ - function withdraw(uint256 amount) external { - _burn(_msgSender(), amount); - } -} - -// File: contracts/child/ChildToken/DappTokens/UChildDAI.sol - -pragma solidity ^0.8.20; - - -contract NofTestDAIV3 is UChildERC20 { - // bytes32 public constant PERMIT_TYPEHASH = - // keccak256("Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)"); - bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb; - - // --- Alias --- - function push(address usr, uint wad) external { - transferFrom(msg.sender, usr, wad); - } - function pull(address usr, uint wad) external { - transferFrom(usr, msg.sender, wad); - } - function move(address src, address dst, uint wad) external { - transferFrom(src, dst, wad); - } - - // --- Approve by signature --- - function permit( - address holder, - address spender, - uint256 nonce, - uint256 expiry, - bool allowed, - uint8 v, - bytes32 r, - bytes32 s - ) external { - bytes32 digest = keccak256( - abi.encodePacked( - "\x19\x01", - getDomainSeperator(), - keccak256( - abi.encode( - PERMIT_TYPEHASH, - holder, - spender, - nonce, - expiry, - allowed - ) - ) - )); - - require(holder == ecrecover(digest, v, r, s), "UChildDAI: INVALID-PERMIT"); - require(expiry == 0 || block.timestamp <= expiry, "UChildDAI: PERMIT-EXPIRED"); - require(nonce == nonces[holder]++, "UChildDAI: INVALID-NONCE"); - uint wad = allowed ? type(uint).max : 0; - _approve(holder, spender, wad); - } -} \ No newline at end of file diff --git a/hardhat.config.js b/hardhat.config.js deleted file mode 100644 index 1c789e25..00000000 --- a/hardhat.config.js +++ /dev/null @@ -1,18 +0,0 @@ -/** @type import('hardhat/config').HardhatUserConfig */ - -const solidityVersions = ['0.6.0', '0.6.2', '0.6.6', '0.8.18', '0.8.20'] -const compilers = solidityVersions.map((version) => ({ - version, - settings: { - optimizer: { - enabled: true, - runs: 200 - } - } -})) - -module.exports = { - solidity: { - compilers - } -} diff --git a/package-lock.json b/package-lock.json index c46865db..2abd4c19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,6 @@ "dependencies": { "@next/eslint-plugin-next": "^14.0.1", "@nomicfoundation/hardhat-toolbox": "^2.0.0", - "@openzeppelin/contracts": "^5.0.2", "@sendgrid/mail": "^8.1.0", "@walletconnect/web3-provider": "^1.8.0", "@web3modal/ethers5": "^3.5.1", @@ -70,39 +69,35 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, - "node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" + "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.23.4", + "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" }, "engines": { @@ -174,33 +169,33 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -210,6 +205,17 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -219,11 +225,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.23.6", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -255,13 +261,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -269,6 +275,14 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -277,17 +291,22 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", - "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -332,18 +351,27 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.14.2", + "semver": "^6.1.2" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { @@ -400,9 +428,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -429,9 +457,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } @@ -502,9 +530,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } @@ -518,9 +546,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "engines": { "node": ">=6.9.0" } @@ -539,22 +567,22 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -629,9 +657,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -640,9 +668,9 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -654,13 +682,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/plugin-transform-optional-chaining": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -669,21 +697,6 @@ "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", @@ -754,9 +767,9 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -768,9 +781,9 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -803,20 +816,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -927,9 +926,9 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -941,9 +940,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -958,13 +957,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-module-imports": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-remap-async-to-generator": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -974,9 +973,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -988,9 +987,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1002,11 +1001,11 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1017,11 +1016,11 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -1033,16 +1032,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -1062,12 +1062,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/template": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1077,9 +1077,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1091,11 +1091,11 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1106,9 +1106,9 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1120,9 +1120,9 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1135,11 +1135,11 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1150,9 +1150,9 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1165,12 +1165,11 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1180,12 +1179,12 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1196,9 +1195,9 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1211,9 +1210,9 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1225,9 +1224,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1240,9 +1239,9 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1254,11 +1253,11 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1269,11 +1268,11 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1285,12 +1284,12 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20" }, @@ -1302,11 +1301,11 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-module-transforms": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1332,9 +1331,9 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1346,9 +1345,9 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1361,9 +1360,9 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1376,15 +1375,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", - "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/plugin-transform-parameters": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1394,12 +1393,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-replace-supers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1409,9 +1408,9 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1424,9 +1423,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1440,9 +1439,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1454,11 +1453,11 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1469,12 +1468,12 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1486,9 +1485,9 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1500,9 +1499,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1515,9 +1514,9 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1529,16 +1528,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz", - "integrity": "sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "semver": "^6.3.1" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -1556,9 +1555,9 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1570,9 +1569,9 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1585,9 +1584,9 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1599,9 +1598,9 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1613,9 +1612,9 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1627,9 +1626,9 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1641,11 +1640,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1656,11 +1655,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1671,11 +1670,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1686,25 +1685,24 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", - "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dependencies": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1716,58 +1714,59 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.24.0", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -1778,6 +1777,57 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1805,9 +1855,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1815,33 +1865,38 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", "globals": "^11.1.0" }, "engines": { @@ -1857,11 +1912,11 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-string-parser": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, @@ -1896,26 +1951,74 @@ "node": ">= 10.0.0" } }, + "node_modules/@coinbase/wallet-sdk/node_modules/eth-block-tracker": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz", + "integrity": "sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "@metamask/utils": "^3.0.1", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/eth-json-rpc-filters": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-5.1.0.tgz", + "integrity": "sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "async-mutex": "^0.2.6", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, "node_modules/@coinbase/wallet-sdk/node_modules/preact": { - "version": "10.19.6", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.6.tgz", - "integrity": "sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==", + "version": "10.19.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz", + "integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" } }, "node_modules/@commitlint/cli": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.6.1.tgz", - "integrity": "sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.4.3.tgz", + "integrity": "sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==", "dev": true, "dependencies": { - "@commitlint/format": "^18.6.1", - "@commitlint/lint": "^18.6.1", - "@commitlint/load": "^18.6.1", - "@commitlint/read": "^18.6.1", - "@commitlint/types": "^18.6.1", + "@commitlint/format": "^18.4.3", + "@commitlint/lint": "^18.4.3", + "@commitlint/load": "^18.4.3", + "@commitlint/read": "^18.4.3", + "@commitlint/types": "^18.4.3", "execa": "^5.0.0", "lodash.isfunction": "^3.0.9", "resolve-from": "5.0.0", @@ -1929,39 +2032,136 @@ "node": ">=v18" } }, - "node_modules/@commitlint/config-conventional": { - "version": "18.6.2", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz", - "integrity": "sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==", + "node_modules/@commitlint/cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "@commitlint/types": "^18.6.1", - "conventional-changelog-conventionalcommits": "^7.0.2" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=v18" + "node": ">=12" } }, - "node_modules/@commitlint/config-validator": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.6.1.tgz", - "integrity": "sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==", + "node_modules/@commitlint/cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "@commitlint/types": "^18.6.1", - "ajv": "^8.11.0" - }, "engines": { - "node": ">=v18" + "node": ">=8" } }, - "node_modules/@commitlint/ensure": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.6.1.tgz", - "integrity": "sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==", - "dev": true, - "dependencies": { - "@commitlint/types": "^18.6.1", + "node_modules/@commitlint/cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@commitlint/cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.4.3.tgz", + "integrity": "sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==", + "dev": true, + "dependencies": { + "conventional-changelog-conventionalcommits": "^7.0.2" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.4.3.tgz", + "integrity": "sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==", + "dev": true, + "dependencies": { + "@commitlint/types": "^18.4.3", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/@commitlint/ensure": { + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.4.3.tgz", + "integrity": "sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==", + "dev": true, + "dependencies": { + "@commitlint/types": "^18.4.3", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -1973,21 +2173,21 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz", - "integrity": "sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.4.3.tgz", + "integrity": "sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/format": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.6.1.tgz", - "integrity": "sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.4.3.tgz", + "integrity": "sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==", "dev": true, "dependencies": { - "@commitlint/types": "^18.6.1", + "@commitlint/types": "^18.4.3", "chalk": "^4.1.0" }, "engines": { @@ -1995,43 +2195,44 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz", - "integrity": "sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.4.3.tgz", + "integrity": "sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==", "dev": true, "dependencies": { - "@commitlint/types": "^18.6.1", - "semver": "7.6.0" + "@commitlint/types": "^18.4.3", + "semver": "7.5.4" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/lint": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.6.1.tgz", - "integrity": "sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.4.3.tgz", + "integrity": "sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^18.6.1", - "@commitlint/parse": "^18.6.1", - "@commitlint/rules": "^18.6.1", - "@commitlint/types": "^18.6.1" + "@commitlint/is-ignored": "^18.4.3", + "@commitlint/parse": "^18.4.3", + "@commitlint/rules": "^18.4.3", + "@commitlint/types": "^18.4.3" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.6.1.tgz", - "integrity": "sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.4.3.tgz", + "integrity": "sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^18.6.1", - "@commitlint/execute-rule": "^18.6.1", - "@commitlint/resolve-extends": "^18.6.1", - "@commitlint/types": "^18.6.1", + "@commitlint/config-validator": "^18.4.3", + "@commitlint/execute-rule": "^18.4.3", + "@commitlint/resolve-extends": "^18.4.3", + "@commitlint/types": "^18.4.3", + "@types/node": "^18.11.9", "chalk": "^4.1.0", "cosmiconfig": "^8.3.6", "cosmiconfig-typescript-loader": "^5.0.0", @@ -2044,22 +2245,92 @@ "node": ">=v18" } }, + "node_modules/@commitlint/load/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "dev": true, + "dependencies": { + "jiti": "^1.19.1" + }, + "engines": { + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" + } + }, + "node_modules/@commitlint/load/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/load/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@commitlint/message": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.6.1.tgz", - "integrity": "sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.4.3.tgz", + "integrity": "sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/parse": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.6.1.tgz", - "integrity": "sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.4.3.tgz", + "integrity": "sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==", "dev": true, "dependencies": { - "@commitlint/types": "^18.6.1", + "@commitlint/types": "^18.4.3", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, @@ -2068,13 +2339,14 @@ } }, "node_modules/@commitlint/read": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.6.1.tgz", - "integrity": "sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.4.3.tgz", + "integrity": "sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==", "dev": true, "dependencies": { - "@commitlint/top-level": "^18.6.1", - "@commitlint/types": "^18.6.1", + "@commitlint/top-level": "^18.4.3", + "@commitlint/types": "^18.4.3", + "fs-extra": "^11.0.0", "git-raw-commits": "^2.0.11", "minimist": "^1.2.6" }, @@ -2082,14 +2354,49 @@ "node": ">=v18" } }, + "node_modules/@commitlint/read/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@commitlint/read/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@commitlint/read/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@commitlint/resolve-extends": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz", - "integrity": "sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.4.3.tgz", + "integrity": "sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^18.6.1", - "@commitlint/types": "^18.6.1", + "@commitlint/config-validator": "^18.4.3", + "@commitlint/types": "^18.4.3", "import-fresh": "^3.0.0", "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0", @@ -2099,16 +2406,25 @@ "node": ">=v18" } }, + "node_modules/@commitlint/resolve-extends/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@commitlint/rules": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.6.1.tgz", - "integrity": "sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.4.3.tgz", + "integrity": "sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==", "dev": true, "dependencies": { - "@commitlint/ensure": "^18.6.1", - "@commitlint/message": "^18.6.1", - "@commitlint/to-lines": "^18.6.1", - "@commitlint/types": "^18.6.1", + "@commitlint/ensure": "^18.4.3", + "@commitlint/message": "^18.4.3", + "@commitlint/to-lines": "^18.4.3", + "@commitlint/types": "^18.4.3", "execa": "^5.0.0" }, "engines": { @@ -2116,18 +2432,18 @@ } }, "node_modules/@commitlint/to-lines": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.6.1.tgz", - "integrity": "sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.4.3.tgz", + "integrity": "sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==", "dev": true, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/top-level": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.6.1.tgz", - "integrity": "sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.4.3.tgz", + "integrity": "sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==", "dev": true, "dependencies": { "find-up": "^5.0.0" @@ -2137,9 +2453,9 @@ } }, "node_modules/@commitlint/types": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.6.1.tgz", - "integrity": "sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.4.3.tgz", + "integrity": "sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==", "dev": true, "dependencies": { "chalk": "^4.1.0" @@ -2171,19 +2487,17 @@ } }, "node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "optional": true, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", "dependencies": { - "@emotion/memoize": "0.7.4" + "@emotion/memoize": "^0.8.0" } }, "node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "optional": true + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" }, "node_modules/@emotion/stylis": { "version": "0.8.5", @@ -2220,9 +2534,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2242,75 +2556,15 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", - "peer": true, - "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", - "peer": true, - "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", - "peer": true, - "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" - } - }, "node_modules/@ethersproject/abi": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", @@ -2610,11 +2864,6 @@ "scrypt-js": "3.0.1" } }, - "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, "node_modules/@ethersproject/keccak256": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", @@ -2741,13 +2990,33 @@ "ws": "7.4.6" } }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "funding": [ - { - "type": "individual", + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, { @@ -2988,22 +3257,22 @@ } }, "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", + "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", "peer": true, "engines": { "node": ">=14" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", "minimatch": "^3.0.5" }, "engines": { @@ -3024,9 +3293,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@ioredis/commands": { @@ -3034,96 +3303,12 @@ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@jimp/bmp": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.12.tgz", - "integrity": "sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.10.tgz", + "integrity": "sha512-1UXRl1Nw1KptZ1r0ANqtXOst9vGH51dq7keVKQzyyTO2lz4dOaezS9StuSTNh+RmiHg/SVPaFRpPfB0S/ln4Kg==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "bmp-js": "^0.1.0" }, "peerDependencies": { @@ -3131,11 +3316,11 @@ } }, "node_modules/@jimp/core": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.12.tgz", - "integrity": "sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.10.tgz", + "integrity": "sha512-ZKyrehVy6wu1PnBXIUpn/fXmyMRQiVSbvHDubgXz4bfTOao3GiOurKHjByutQIgozuAN6ZHWiSge1dKA+dex3w==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "any-base": "^1.1.0", "buffer": "^5.2.0", "exif-parser": "^0.1.12", @@ -3169,19 +3354,19 @@ } }, "node_modules/@jimp/custom": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", - "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.10.tgz", + "integrity": "sha512-sPZkUYe1hu0iIgNisjizxPJqq2vaaKvkCkPoXq2U6UV3ZA1si/WVdrg25da3IcGIEV+83AoHgM8TvqlLgrCJsg==", "dependencies": { - "@jimp/core": "^0.22.12" + "@jimp/core": "^0.22.10" } }, "node_modules/@jimp/gif": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.12.tgz", - "integrity": "sha512-y6BFTJgch9mbor2H234VSjd9iwAhaNf/t3US5qpYIs0TSbAvM02Fbc28IaDETj9+4YB4676sz4RcN/zwhfu1pg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.10.tgz", + "integrity": "sha512-yEX2dSpamvkSx1PPDWGnKeWDrBz0vrCKjVG/cn4Zr68MRRT75tbZIeOrBa+RiUpY3ho5ix7d36LkYvt3qfUIhQ==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "gifwrap": "^0.10.1", "omggif": "^1.0.9" }, @@ -3190,11 +3375,11 @@ } }, "node_modules/@jimp/jpeg": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.12.tgz", - "integrity": "sha512-Rq26XC/uQWaQKyb/5lksCTCxXhtY01NJeBN+dQv5yNYedN0i7iYu+fXEoRsfaJ8xZzjoANH8sns7rVP4GE7d/Q==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.10.tgz", + "integrity": "sha512-6bu98pAcVN4DY2oiDLC4TOgieX/lZrLd1tombWZOFCN5PBmqaHQxm7IUmT+Wj4faEvh8QSHgVLSA+2JQQRJWVA==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "jpeg-js": "^0.4.4" }, "peerDependencies": { @@ -3202,44 +3387,44 @@ } }, "node_modules/@jimp/plugin-blit": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz", - "integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.10.tgz", + "integrity": "sha512-6EI8Sl+mxYHEIy6Yteh6eknD+EZguKpNdr3sCKxNezmLR0+vK99vHcllo6uGSjXXiwtwS67Xqxn8SsoatL+UJQ==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-blur": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz", - "integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.10.tgz", + "integrity": "sha512-4XRTWuPVdMXJeclJMisXPGizeHtTryVaVV5HnuQXpKqIZtzXReCCpNGH8q/i0kBQOQMXhGWS3mpqOEwtpPePKw==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-circle": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.12.tgz", - "integrity": "sha512-SWVXx1yiuj5jZtMijqUfvVOJBwOifFn0918ou4ftoHgegc5aHWW5dZbYPjvC9fLpvz7oSlptNl2Sxr1zwofjTg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.10.tgz", + "integrity": "sha512-mhcwTO1ywRxiCgtLGge6tDDIDPlX6qkI3CY+BjgGG/XhVHccCddXgOGLdlf+5OuKIEF2Nqs0V01LQEQIJFTmEw==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-color": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz", - "integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.10.tgz", + "integrity": "sha512-e4t3L7Kedd96E0x1XjsTM6NcgulKUU66HdFTao7Tc9FYJRFSlttARZ/C6LEryGDm/i69R6bJEpo7BkNz0YL55Q==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "tinycolor2": "^1.6.0" }, "peerDependencies": { @@ -3247,11 +3432,11 @@ } }, "node_modules/@jimp/plugin-contain": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.12.tgz", - "integrity": "sha512-Eo3DmfixJw3N79lWk8q/0SDYbqmKt1xSTJ69yy8XLYQj9svoBbyRpSnHR+n9hOw5pKXytHwUW6nU4u1wegHNoQ==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.10.tgz", + "integrity": "sha512-eP8KrzctuEoqibQAxi9WhbnoRosydhiwg+IYya3dKuKDBTrD9UHt+ERlPQ/lTNWHzV/l4S1ntV3r9s9saJgsXA==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3261,11 +3446,11 @@ } }, "node_modules/@jimp/plugin-cover": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.12.tgz", - "integrity": "sha512-z0w/1xH/v/knZkpTNx+E8a7fnasQ2wHG5ze6y5oL2dhH1UufNua8gLQXlv8/W56+4nJ1brhSd233HBJCo01BXA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.10.tgz", + "integrity": "sha512-kJCwL5T1igfa0InCfkE7bBeqg26m46aoRt10ug+rvm11P6RrvRMGrgINFyIKB+mnB7CiyBN/MOula1CvLhSInQ==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3275,55 +3460,55 @@ } }, "node_modules/@jimp/plugin-crop": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz", - "integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.10.tgz", + "integrity": "sha512-BOZ+YGaZlhU7c5ye65RxikicXH0Ki0It6/XHISvipR5WZrfjLjL2Ke20G+AGnwBQc76gKenVcMXVUCnEjtZV+Q==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-displace": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.12.tgz", - "integrity": "sha512-qpRM8JRicxfK6aPPqKZA6+GzBwUIitiHaZw0QrJ64Ygd3+AsTc7BXr+37k2x7QcyCvmKXY4haUrSIsBug4S3CA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.10.tgz", + "integrity": "sha512-llNiWWMTKISDXt5+cXI0GaFmZWAjlT+4fFLYf4eXquuL/9wZoQsEBhv2GdGd48mkiS8jZq1Nnb2Q4ehEPTvrzw==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-dither": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.12.tgz", - "integrity": "sha512-jYgGdSdSKl1UUEanX8A85v4+QUm+PE8vHFwlamaKk89s+PXQe7eVE3eNeSZX4inCq63EHL7cX580dMqkoC3ZLw==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.10.tgz", + "integrity": "sha512-05WLmeV5M+P/0FS+bWf13hMew2X0oa8w9AtmevL2UyA/5GqiyvP2Xm5WfGQ8oFiiMvpnL6RFomJQOZtWca0C2w==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-fisheye": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.12.tgz", - "integrity": "sha512-LGuUTsFg+fOp6KBKrmLkX4LfyCy8IIsROwoUvsUPKzutSqMJnsm3JGDW2eOmWIS/jJpPaeaishjlxvczjgII+Q==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.10.tgz", + "integrity": "sha512-InjiXvc7Gkzrx8VWtU97kDqV7ENnhHGPULymJWeZaF2aicud9Fpk4iCtd/DcZIrk7Cbe60A8RwNXN00HXIbSCg==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-flip": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.12.tgz", - "integrity": "sha512-m251Rop7GN8W0Yo/rF9LWk6kNclngyjIJs/VXHToGQ6EGveOSTSQaX2Isi9f9lCDLxt+inBIb7nlaLLxnvHX8Q==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.10.tgz", + "integrity": "sha512-42GkGtTHWnhnwTMPVK/kXObZbkYIpQWfuIfy5EMEMk6zRj05zpv4vsjkKWfuemweZINwfvD7wDJF7FVFNNcZZg==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3331,55 +3516,55 @@ } }, "node_modules/@jimp/plugin-gaussian": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.12.tgz", - "integrity": "sha512-sBfbzoOmJ6FczfG2PquiK84NtVGeScw97JsCC3rpQv1PHVWyW+uqWFF53+n3c8Y0P2HWlUjflEla2h/vWShvhg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.10.tgz", + "integrity": "sha512-ykrG/6lTp9Q5YA8jS5XzwMHtRxb9HOFMgtmnrUZ8kU+BK8REecfy9Ic5BUEOjCYvS1a/xLsnrZQU07iiYxBxFg==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-invert": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.12.tgz", - "integrity": "sha512-N+6rwxdB+7OCR6PYijaA/iizXXodpxOGvT/smd/lxeXsZ/empHmFFFJ/FaXcYh19Tm04dGDaXcNF/dN5nm6+xQ==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.10.tgz", + "integrity": "sha512-d8j9BlUJYs/c994t4azUWSWmQq4LLPG4ecm8m6SSNqap+S/HlVQGqjYhJEBbY9EXkOTYB9vBL9bqwSM1Rr6paA==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-mask": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.12.tgz", - "integrity": "sha512-4AWZg+DomtpUA099jRV8IEZUfn1wLv6+nem4NRJC7L/82vxzLCgXKTxvNvBcNmJjT9yS1LAAmiJGdWKXG63/NA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.10.tgz", + "integrity": "sha512-yRBs1230XZkz24uFTdTcSlZ0HXZpIWzM3iFQN56MzZ7USgdVZjPPDCQ8I9RpqfZ36nDflQkUO0wV7ucsi4ogow==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-normalize": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.12.tgz", - "integrity": "sha512-0So0rexQivnWgnhacX4cfkM2223YdExnJTTy6d06WbkfZk5alHUx8MM3yEzwoCN0ErO7oyqEWRnEkGC+As1FtA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.10.tgz", + "integrity": "sha512-Wk9GX6eJMchX/ZAazVa70Fagu+OXMvHiPY+HrcEwcclL+p1wo8xAHEsf9iKno7Ja4EU9lLhbBRY5hYJyiKMEkg==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-print": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.12.tgz", - "integrity": "sha512-c7TnhHlxm87DJeSnwr/XOLjJU/whoiKYY7r21SbuJ5nuH+7a78EW1teOaj5gEr2wYEd7QtkFqGlmyGXY/YclyQ==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.10.tgz", + "integrity": "sha512-1U3VloIR+beE1kWPdGEJMiE2h1Do29iv3w8sBbvPyRP4qXxRFcDpmCGtctsrKmb1krlBFlj8ubyAY90xL+5n9w==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "load-bmfont": "^1.4.1" }, "peerDependencies": { @@ -3388,22 +3573,22 @@ } }, "node_modules/@jimp/plugin-resize": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz", - "integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.10.tgz", + "integrity": "sha512-ixomxVcnAONXDgaq0opvAx4UAOiEhOA/tipuhFFOvPKFd4yf1BAnEviB5maB0SBHHkJXPUSzDp/73xVTMGSe7g==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-rotate": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz", - "integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.10.tgz", + "integrity": "sha512-eeFX8dnRyf3LAdsdXWKWuN18hLRg8zy1cP0cP9rHzQVWRK7ck/QsLxK1vHq7MADGwQalNaNTJ9SQxH6c8mz6jw==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3413,11 +3598,11 @@ } }, "node_modules/@jimp/plugin-scale": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz", - "integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.10.tgz", + "integrity": "sha512-TG/H0oUN69C9ArBCZg4PmuoixFVKIiru8282KzSB/Tp1I0xwX0XLTv3dJ5pobPlIgPcB+TmD4xAIdkCT4rtWxg==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3425,11 +3610,11 @@ } }, "node_modules/@jimp/plugin-shadow": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.12.tgz", - "integrity": "sha512-FX8mTJuCt7/3zXVoeD/qHlm4YH2bVqBuWQHXSuBK054e7wFRnRnbSLPUqAwSeYP3lWqpuQzJtgiiBxV3+WWwTg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.10.tgz", + "integrity": "sha512-TN9xm6fI7XfxbMUQqFPZjv59Xdpf0tSiAQdINB4g6pJMWiVANR/74OtDONoy3KKpenu5Y38s+FkrtID/KcQAhw==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3438,11 +3623,11 @@ } }, "node_modules/@jimp/plugin-threshold": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.12.tgz", - "integrity": "sha512-4x5GrQr1a/9L0paBC/MZZJjjgjxLYrqSmWd+e+QfAEPvmRxdRoQ5uKEuNgXnm9/weHQBTnQBQsOY2iFja+XGAw==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.10.tgz", + "integrity": "sha512-DA2lSnU0TgIRbAgmXaxroYw3Ad6J2DOFEoJp0NleSm2h3GWbZEE5yW9U2B6hD3iqn4AenG4E2b2WzHXZyzSutw==", "dependencies": { - "@jimp/utils": "^0.22.12" + "@jimp/utils": "^0.22.10" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -3451,31 +3636,31 @@ } }, "node_modules/@jimp/plugins": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.12.tgz", - "integrity": "sha512-yBJ8vQrDkBbTgQZLty9k4+KtUQdRjsIDJSPjuI21YdVeqZxYywifHl4/XWILoTZsjTUASQcGoH0TuC0N7xm3ww==", - "dependencies": { - "@jimp/plugin-blit": "^0.22.12", - "@jimp/plugin-blur": "^0.22.12", - "@jimp/plugin-circle": "^0.22.12", - "@jimp/plugin-color": "^0.22.12", - "@jimp/plugin-contain": "^0.22.12", - "@jimp/plugin-cover": "^0.22.12", - "@jimp/plugin-crop": "^0.22.12", - "@jimp/plugin-displace": "^0.22.12", - "@jimp/plugin-dither": "^0.22.12", - "@jimp/plugin-fisheye": "^0.22.12", - "@jimp/plugin-flip": "^0.22.12", - "@jimp/plugin-gaussian": "^0.22.12", - "@jimp/plugin-invert": "^0.22.12", - "@jimp/plugin-mask": "^0.22.12", - "@jimp/plugin-normalize": "^0.22.12", - "@jimp/plugin-print": "^0.22.12", - "@jimp/plugin-resize": "^0.22.12", - "@jimp/plugin-rotate": "^0.22.12", - "@jimp/plugin-scale": "^0.22.12", - "@jimp/plugin-shadow": "^0.22.12", - "@jimp/plugin-threshold": "^0.22.12", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.10.tgz", + "integrity": "sha512-KDMZyM6pmvS8freB+UBLko1TO/k4D7URS/nphCozuH+P7i3UMe7NdckXKJ8u+WD6sqN0YFYvBehpkpnUiw/91w==", + "dependencies": { + "@jimp/plugin-blit": "^0.22.10", + "@jimp/plugin-blur": "^0.22.10", + "@jimp/plugin-circle": "^0.22.10", + "@jimp/plugin-color": "^0.22.10", + "@jimp/plugin-contain": "^0.22.10", + "@jimp/plugin-cover": "^0.22.10", + "@jimp/plugin-crop": "^0.22.10", + "@jimp/plugin-displace": "^0.22.10", + "@jimp/plugin-dither": "^0.22.10", + "@jimp/plugin-fisheye": "^0.22.10", + "@jimp/plugin-flip": "^0.22.10", + "@jimp/plugin-gaussian": "^0.22.10", + "@jimp/plugin-invert": "^0.22.10", + "@jimp/plugin-mask": "^0.22.10", + "@jimp/plugin-normalize": "^0.22.10", + "@jimp/plugin-print": "^0.22.10", + "@jimp/plugin-resize": "^0.22.10", + "@jimp/plugin-rotate": "^0.22.10", + "@jimp/plugin-scale": "^0.22.10", + "@jimp/plugin-shadow": "^0.22.10", + "@jimp/plugin-threshold": "^0.22.10", "timm": "^1.6.1" }, "peerDependencies": { @@ -3483,21 +3668,29 @@ } }, "node_modules/@jimp/png": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.12.tgz", - "integrity": "sha512-Mrp6dr3UTn+aLK8ty/dSKELz+Otdz1v4aAXzV5q53UDD2rbB5joKVJ/ChY310B+eRzNxIovbUF1KVrUsYdE8Hg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.10.tgz", + "integrity": "sha512-RYinU7tZToeeR2g2qAMn42AU+8OUHjXPKZZ9RkmoL4bguA1xyZWaSdr22/FBkmnHhOERRlr02KPDN1OTOYHLDQ==", "dependencies": { - "@jimp/utils": "^0.22.12", + "@jimp/utils": "^0.22.10", "pngjs": "^6.0.0" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, + "node_modules/@jimp/png/node_modules/pngjs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "engines": { + "node": ">=12.13.0" + } + }, "node_modules/@jimp/tiff": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.12.tgz", - "integrity": "sha512-E1LtMh4RyJsoCAfAkBRVSYyZDTtLq9p9LUiiYP0vPtXyxX4BiYBUYihTLSBlCQg5nF2e4OpQg7SPrLdJ66u7jg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.10.tgz", + "integrity": "sha512-OaivlSYzpNTHyH/h7pEtl3A7F7TbsgytZs52GLX/xITW92ffgDgT6PkldIrMrET6ERh/hdijNQiew7IoEEr2og==", "dependencies": { "utif2": "^4.0.1" }, @@ -3506,15 +3699,15 @@ } }, "node_modules/@jimp/types": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.12.tgz", - "integrity": "sha512-wwKYzRdElE1MBXFREvCto5s699izFHNVvALUv79GXNbsOVqlwlOxlWJ8DuyOGIXoLP4JW/m30YyuTtfUJgMRMA==", - "dependencies": { - "@jimp/bmp": "^0.22.12", - "@jimp/gif": "^0.22.12", - "@jimp/jpeg": "^0.22.12", - "@jimp/png": "^0.22.12", - "@jimp/tiff": "^0.22.12", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.10.tgz", + "integrity": "sha512-u/r+XYzbCx4zZukDmxx8S0er3Yq3iDPI6+31WKX0N18i2qPPJYcn8qwIFurfupRumGvJ8SlGLCgt/T+Y8zzUIw==", + "dependencies": { + "@jimp/bmp": "^0.22.10", + "@jimp/gif": "^0.22.10", + "@jimp/jpeg": "^0.22.10", + "@jimp/png": "^0.22.10", + "@jimp/tiff": "^0.22.10", "timm": "^1.6.1" }, "peerDependencies": { @@ -3522,43 +3715,38 @@ } }, "node_modules/@jimp/utils": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.12.tgz", - "integrity": "sha512-yJ5cWUknGnilBq97ZXOyOS0HhsHOyAyjHwYfHxGbSyMTohgQI6sVyE8KPgDwH8HHW/nMKXk8TrSwAE71zt716Q==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.10.tgz", + "integrity": "sha512-ztlOK9Mm2iLG2AMoabzM4i3WZ/FtshcgsJCbZCRUs/DKoeS2tySRJTnQZ1b7Roq0M4Ce+FUAxnCAcBV0q7PH9w==", "dependencies": { "regenerator-runtime": "^0.13.3" } }, - "node_modules/@jimp/utils/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dependencies": { - "@jridgewell/set-array": "^1.2.1", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "engines": { "node": ">=6.0.0" } @@ -3573,23 +3761,23 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", + "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==" }, "node_modules/@lit/reactive-element": { "version": "1.6.3", @@ -3630,6 +3818,29 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "peer": true }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", @@ -3673,77 +3884,57 @@ } }, "node_modules/@mongodb-js/saslprep": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", - "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==", "optional": true, "dependencies": { "sparse-bitfield": "^3.0.3" } }, "node_modules/@motionone/animation": { - "version": "10.17.0", - "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz", - "integrity": "sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==", + "version": "10.16.3", + "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.16.3.tgz", + "integrity": "sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g==", "dependencies": { - "@motionone/easing": "^10.17.0", - "@motionone/types": "^10.17.0", - "@motionone/utils": "^10.17.0", + "@motionone/easing": "^10.16.3", + "@motionone/types": "^10.16.3", + "@motionone/utils": "^10.16.3", "tslib": "^2.3.1" } }, - "node_modules/@motionone/animation/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@motionone/dom": { - "version": "10.17.0", - "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.17.0.tgz", - "integrity": "sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q==", - "dependencies": { - "@motionone/animation": "^10.17.0", - "@motionone/generators": "^10.17.0", - "@motionone/types": "^10.17.0", - "@motionone/utils": "^10.17.0", + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.16.4.tgz", + "integrity": "sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA==", + "dependencies": { + "@motionone/animation": "^10.16.3", + "@motionone/generators": "^10.16.4", + "@motionone/types": "^10.16.3", + "@motionone/utils": "^10.16.3", "hey-listen": "^1.0.8", "tslib": "^2.3.1" } }, - "node_modules/@motionone/dom/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@motionone/easing": { - "version": "10.17.0", - "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz", - "integrity": "sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==", + "version": "10.16.3", + "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.16.3.tgz", + "integrity": "sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w==", "dependencies": { - "@motionone/utils": "^10.17.0", + "@motionone/utils": "^10.16.3", "tslib": "^2.3.1" } }, - "node_modules/@motionone/easing/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@motionone/generators": { - "version": "10.17.0", - "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz", - "integrity": "sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==", + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.16.4.tgz", + "integrity": "sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg==", "dependencies": { - "@motionone/types": "^10.17.0", - "@motionone/utils": "^10.17.0", + "@motionone/types": "^10.16.3", + "@motionone/utils": "^10.16.3", "tslib": "^2.3.1" } }, - "node_modules/@motionone/generators/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@motionone/svelte": { "version": "10.16.4", "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz", @@ -3753,57 +3944,60 @@ "tslib": "^2.3.1" } }, - "node_modules/@motionone/svelte/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@motionone/types": { - "version": "10.17.0", - "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz", - "integrity": "sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA==" + "version": "10.16.3", + "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.16.3.tgz", + "integrity": "sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg==" }, "node_modules/@motionone/utils": { - "version": "10.17.0", - "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz", - "integrity": "sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==", + "version": "10.16.3", + "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.16.3.tgz", + "integrity": "sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA==", "dependencies": { - "@motionone/types": "^10.17.0", + "@motionone/types": "^10.16.3", "hey-listen": "^1.0.8", "tslib": "^2.3.1" } }, - "node_modules/@motionone/utils/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@motionone/vue": { "version": "10.16.4", "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz", "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==", - "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion", "dependencies": { "@motionone/dom": "^10.16.4", "tslib": "^2.3.1" } }, - "node_modules/@motionone/vue/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@next/env": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.0.1.tgz", "integrity": "sha512-gK60YoFae3s8qi5UgIzbvxOhsh5gKyEaiKH5+kLBUYXLlrPyWJR2xKBj2WqvHkO7wDX7/Hed3DAqjSpU4ijIvQ==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.2.tgz", - "integrity": "sha512-k9h9NfR1joJI48uwdQd/DuOV1mBgcjlmWaX45eAXCFGT96oc+/6SMjO3s7naVtTXqSKjFAgk2GDlW6Hv41ROXQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.1.tgz", + "integrity": "sha512-bLjJMwXdzvhnQOnxvHoTTUh/+PYk6FF/DCgHi4BXwXCINer+o1ZYfL9aVeezj/oI7wqGJOqwGIXrlBvPbAId3w==", + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dependencies": { - "glob": "10.3.10" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@next/swc-android-arm-eabi": { @@ -4002,20 +4196,20 @@ } }, "node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "@noble/hashes": "1.3.3" + "@noble/hashes": "1.3.2" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "engines": { "node": ">= 16" }, @@ -4023,10 +4217,22 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@noble/hashes": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz", + "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true + }, "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", + "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", "funding": [ { "type": "individual", @@ -4067,506 +4273,432 @@ "node": ">= 8" } }, - "node_modules/@nomicfoundation/edr": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.2.0.tgz", - "integrity": "sha512-RRWJepP4ozI4jVxqNtuw53ZbPcUB4FcKry2aYVQw8KAp9o8j/I5H3SsfpmKT+lgHRSL/5/KK0RxOx1GQSyDAZw==", + "node_modules/@nomicfoundation/ethereumjs-block": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz", + "integrity": "sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA==", "peer": true, - "engines": { - "node": ">= 18" + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3" }, - "optionalDependencies": { - "@nomicfoundation/edr-darwin-arm64": "0.2.0", - "@nomicfoundation/edr-darwin-x64": "0.2.0", - "@nomicfoundation/edr-linux-arm64-gnu": "0.2.0", - "@nomicfoundation/edr-linux-arm64-musl": "0.2.0", - "@nomicfoundation/edr-linux-x64-gnu": "0.2.0", - "@nomicfoundation/edr-linux-x64-musl": "0.2.0", - "@nomicfoundation/edr-win32-arm64-msvc": "0.2.0", - "@nomicfoundation/edr-win32-ia32-msvc": "0.2.0", - "@nomicfoundation/edr-win32-x64-msvc": "0.2.0" - } - }, - "node_modules/@nomicfoundation/edr-darwin-arm64": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.2.0.tgz", - "integrity": "sha512-OfXruInMbc6+J6BnAlYlpTS8lj5hHmfLdzqthhiQaayuHxT6iBMrefe6N+2DC9hBxD3VjCApUWtLfV3pJzpbCg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, "engines": { - "node": ">= 18" + "node": ">=14" } }, - "node_modules/@nomicfoundation/edr-darwin-x64": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.2.0.tgz", - "integrity": "sha512-tfNhHYSgro3nOTGCQzBvFniUy0cvUBtPCSeniNleu5M4nolArnxlZfEkNdpYRB92QRjfaREZttuBP1nrIO/b+w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@nomicfoundation/ethereumjs-block/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, - "engines": { - "node": ">= 18" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.2.0.tgz", - "integrity": "sha512-Km4rZIsARkiIR7HfpU6ybCkAHpD+Gg68x+5+dhQsv+eT3XvQ9pRv3jz14v3aimOjwpCd5/uUw9LhQrPtFyMGGA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "node_modules/@nomicfoundation/ethereumjs-blockchain": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz", + "integrity": "sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-ethash": "^2.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, "engines": { - "node": ">= 18" + "node": ">=14" } }, - "node_modules/@nomicfoundation/edr-linux-arm64-musl": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.2.0.tgz", - "integrity": "sha512-pD4g2r5Q54b3AzEaI0okDktFrYjhcdCxO3lvP1pYGCvha8KYrUv9DM3Z/0kfnn3vP9y/PxzcJUBfXjG4NZuHpw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-linux-x64-gnu": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.2.0.tgz", - "integrity": "sha512-xjw8yNiEED0jlM5HuWXF/61+4bBkEpSZpMmb39XChPJXVxtZIIBzj0AcGTdzkSyH/atgkEaNutkEb1PeEuFwnQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "peer": true, - "engines": { - "node": ">= 18" + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/@nomicfoundation/edr-linux-x64-musl": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.2.0.tgz", - "integrity": "sha512-aqqR0usfHt6V2j+7pQiMqIrIBpUwDeU27w27kuvZsHDUhrvg4sgGm3FBG1QUxN8tv9E/UrbUuW0kVt7tbEmKMA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "peer": true + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz", + "integrity": "sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA==", "peer": true, - "engines": { - "node": ">= 18" + "dependencies": { + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "crc-32": "^1.2.0" } }, - "node_modules/@nomicfoundation/edr-win32-arm64-msvc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-arm64-msvc/-/edr-win32-arm64-msvc-0.2.0.tgz", - "integrity": "sha512-+S4Qnx5CVdUAxGUXa3rNq0h/qALIHkGdlKLT5KDsk/qGTmI/uuAB4tnoOaaHMc5ANckPtBdWfSwnLJjWPZbR6w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@nomicfoundation/ethereumjs-ethash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz", + "integrity": "sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew==", "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + }, "engines": { - "node": ">= 10" + "node": ">=14" } }, - "node_modules/@nomicfoundation/edr-win32-ia32-msvc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-ia32-msvc/-/edr-win32-ia32-msvc-0.2.0.tgz", - "integrity": "sha512-hK0RVcNog8sJ63QmeEJ+WIhnCLfUCl5jXYCBjQtGOWlIkC7EzNddkZ28MmrFOMrV3xstSGOmdPvvq8q1HNVakA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@nomicfoundation/ethereumjs-ethash/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, - "engines": { - "node": ">= 18" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomicfoundation/edr-win32-x64-msvc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.2.0.tgz", - "integrity": "sha512-gWgMU4I94fHIeda3xOnHBYcCOzRF6ySB89vgENK4Y1S1Un/qpZ+tQwf+/hX0HCaZGMw/LqBG61ltOYUXVfZ6Yg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@nomicfoundation/ethereumjs-evm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz", + "integrity": "sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q==", "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@types/async-eventemitter": "^0.2.1", + "async-eventemitter": "^0.2.4", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, "engines": { - "node": ">= 18" + "node": ">=14" } }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", - "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "node_modules/@nomicfoundation/ethereumjs-evm/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.4" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", - "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz", + "integrity": "sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw==", "peer": true, "bin": { - "rlp": "bin/rlp.cjs" + "rlp": "bin/rlp" }, "engines": { - "node": ">=18" + "node": ">=14" } }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", - "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "node_modules/@nomicfoundation/ethereumjs-statemanager": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz", + "integrity": "sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ==", "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.2" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "functional-red-black-tree": "^1.0.1" } }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", - "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "node_modules/@nomicfoundation/ethereumjs-statemanager/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.2" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz", - "integrity": "sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==", + "node_modules/@nomicfoundation/ethereumjs-trie": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz", + "integrity": "sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A==", "peer": true, "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@types/chai-as-promised": "^7.1.3", - "chai-as-promised": "^7.1.1", - "deep-eql": "^4.0.1", - "ordinal": "^1.0.3" + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" }, - "peerDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.0", - "chai": "^4.2.0", - "ethers": "^5.0.0", - "hardhat": "^2.9.4" + "engines": { + "node": ">=14" } }, - "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", - "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", + "node_modules/@nomicfoundation/ethereumjs-trie/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, "dependencies": { - "ethereumjs-util": "^7.1.4" - }, - "peerDependencies": { - "hardhat": "^2.9.5" - } - }, - "node_modules/@nomicfoundation/hardhat-toolbox": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.2.tgz", - "integrity": "sha512-vnN1AzxbvpSx9pfdRHbUzTRIXpMLPXnUlkW855VaDk6N1pwRaQ2gNzEmFAABk4lWf11E00PKwFd/q27HuwYrYg==", - "peerDependencies": { - "@ethersproject/abi": "^5.4.7", - "@ethersproject/providers": "^5.4.7", - "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", - "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomiclabs/hardhat-ethers": "^2.0.0", - "@nomiclabs/hardhat-etherscan": "^3.0.0", - "@typechain/ethers-v5": "^10.1.0", - "@typechain/hardhat": "^6.1.2", - "@types/chai": "^4.2.0", - "@types/mocha": ">=9.1.0", - "@types/node": ">=12.0.0", - "chai": "^4.2.0", - "ethers": "^5.4.7", - "hardhat": "^2.11.0", - "hardhat-gas-reporter": "^1.0.8", - "solidity-coverage": "^0.8.1", - "ts-node": ">=8.0.0", - "typechain": "^8.1.0", - "typescript": ">=4.5.0" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", - "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz", + "integrity": "sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w==", "peer": true, - "engines": { - "node": ">= 12" + "dependencies": { + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "ethereum-cryptography": "0.1.3" }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", - "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, "engines": { - "node": ">= 10" + "node": ">=14" } }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", - "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", - "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", - "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", - "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", - "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", - "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, - "engines": { - "node": ">= 10" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", - "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz", + "integrity": "sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A==", "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "^4.0.0-beta.2", + "ethereum-cryptography": "0.1.3" + }, "engines": { - "node": ">= 10" + "node": ">=14" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", - "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, - "engines": { - "node": ">= 10" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", - "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, + "node_modules/@nomicfoundation/ethereumjs-vm": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz", + "integrity": "sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-evm": "^1.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@types/async-eventemitter": "^0.2.1", + "async-eventemitter": "^0.2.4", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "functional-red-black-tree": "^1.0.1", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, "engines": { - "node": ">= 10" + "node": ">=14" } }, - "node_modules/@nomiclabs/hardhat-ethers": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz", - "integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==", + "node_modules/@nomicfoundation/ethereumjs-vm/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, - "peerDependencies": { - "ethers": "^5.0.0", - "hardhat": "^2.0.0" + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz", - "integrity": "sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==", - "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.5.tgz", + "integrity": "sha512-+W5C/+5FHI2xBajUN9THSNc1UP6FUsA7LeLmfnaC9VMi/50/DEjjxd8OmizEXgV1Bjck7my4NVQLL1Ti39FkpA==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", - "@ethersproject/address": "^5.0.2", - "cbor": "^8.1.0", + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", "chalk": "^2.4.2", - "debug": "^4.1.1", - "fs-extra": "^7.0.1", - "lodash": "^4.17.11", - "semver": "^6.3.0", - "table": "^6.8.0", - "undici": "^5.14.0" + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" }, "peerDependencies": { - "hardhat": "^2.0.4" + "@nomiclabs/hardhat-ethers": "^2.0.0", + "chai": "^4.2.0", + "ethers": "^5.0.0", + "hardhat": "^2.9.4" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/ansi-styles": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", @@ -4578,7 +4710,7 @@ "node": ">=4" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/chalk": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", @@ -4592,7 +4724,7 @@ "node": ">=4" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/color-convert": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", @@ -4601,13 +4733,13 @@ "color-name": "1.1.3" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/color-name": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "peer": true }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/escape-string-regexp": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", @@ -4616,7 +4748,7 @@ "node": ">=0.8.0" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/has-flag": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", @@ -4625,16 +4757,7 @@ "node": ">=4" } }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@nomiclabs/hardhat-etherscan/node_modules/supports-color": { + "node_modules/@nomicfoundation/hardhat-chai-matchers/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", @@ -4646,148 +4769,304 @@ "node": ">=4" } }, - "node_modules/@openzeppelin/contracts": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", - "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==" - }, - "node_modules/@parcel/watcher": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", - "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.7.tgz", + "integrity": "sha512-X+3mNvn8B7BY5hpIaLO+TrfzWq12bpux+ajGGdmdcfC78NXmYmOZkAtiz1QZx1YIZGMS1LaXzPXyBExxKFpCaw==", + "peer": true, "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.1", - "@parcel/watcher-darwin-arm64": "2.4.1", - "@parcel/watcher-darwin-x64": "2.4.1", - "@parcel/watcher-freebsd-x64": "2.4.1", - "@parcel/watcher-linux-arm-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-musl": "2.4.1", - "@parcel/watcher-linux-x64-glibc": "2.4.1", - "@parcel/watcher-linux-x64-musl": "2.4.1", - "@parcel/watcher-win32-arm64": "2.4.1", - "@parcel/watcher-win32-ia32": "2.4.1", - "@parcel/watcher-win32-x64": "2.4.1" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", - "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" + "ethereumjs-util": "^7.1.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "hardhat": "^2.9.5" } }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", - "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "peer": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-2.0.0.tgz", + "integrity": "sha512-BoOPbzLQ1GArnBZd4Jz4IU8FY3RY4nUwpXlfymXwxlXNimngkPRJj7ivVNurD7igohEjf90v/Axn2M5WwAdCJQ==", + "peerDependencies": { + "@ethersproject/abi": "^5.4.7", + "@ethersproject/providers": "^5.4.7", + "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@nomiclabs/hardhat-etherscan": "^3.0.0", + "@typechain/ethers-v5": "^10.1.0", + "@typechain/hardhat": "^6.1.2", + "@types/chai": "^4.2.0", + "@types/mocha": "^9.1.0", + "@types/node": ">=12.0.0", + "chai": "^4.2.0", + "ethers": "^5.4.7", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.1.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.0.tgz", + "integrity": "sha512-xGWAiVCGOycvGiP/qrlf9f9eOn7fpNbyJygcB0P21a1MDuVPlKt0Srp7rvtBEutYQ48ouYnRXm33zlRnlTOPHg==", + "peer": true, + "engines": { + "node": ">= 12" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.0", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.0", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.0", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.0", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.0", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.0", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.0", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.0", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.0", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.0" } }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", - "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.0.tgz", + "integrity": "sha512-lR0AxK1x/MeKQ/3Pt923kPvwigmGX3OxeU5qNtQ9pj9iucgk4PzhbS3ruUeSpYhUxG50jN4RkIGwUMoev5lguw==", "cpu": [ "x64" ], "optional": true, "os": [ - "freebsd" + "linux" ], + "peer": true, "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">= 10" } }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", - "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.0.tgz", + "integrity": "sha512-A1he/8gy/JeBD3FKvmI6WUJrGrI5uWJNr5Xb9WdV+DK0F8msuOqpEByLlnTdLkXMwW7nSl3awvLezOs9xBHJEg==", "cpu": [ - "arm" + "x64" ], "optional": true, "os": [ "linux" ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomiclabs/hardhat-ethers": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.1.tgz", + "integrity": "sha512-RHWYwnxryWR8hzRmU4Jm/q4gzvXpetUOJ4OPlwH2YARcDB+j79+yAYCwO0lN1SUOb4++oOTJEe6AWLEc42LIvg==", + "peer": true, + "peerDependencies": { + "ethers": "^5.0.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.4.tgz", + "integrity": "sha512-fw8JCfukf6MdIGoySRmSftlM2wBgoaSbWQZgiYfD/KTeaSFEWCdMpuPZcLSBXtwtnQyyWDs07Lo7fL8HSqtD2Q==", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.4.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nomiclabs/hardhat-etherscan/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", + "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, "engines": { "node": ">= 10.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.3.0", + "@parcel/watcher-darwin-arm64": "2.3.0", + "@parcel/watcher-darwin-x64": "2.3.0", + "@parcel/watcher-freebsd-x64": "2.3.0", + "@parcel/watcher-linux-arm-glibc": "2.3.0", + "@parcel/watcher-linux-arm64-glibc": "2.3.0", + "@parcel/watcher-linux-arm64-musl": "2.3.0", + "@parcel/watcher-linux-x64-glibc": "2.3.0", + "@parcel/watcher-linux-x64-musl": "2.3.0", + "@parcel/watcher-win32-arm64": "2.3.0", + "@parcel/watcher-win32-ia32": "2.3.0", + "@parcel/watcher-win32-x64": "2.3.0" } }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", - "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz", + "integrity": "sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==", "cpu": [ "arm64" ], "optional": true, "os": [ - "linux" + "android" ], "engines": { "node": ">= 10.0.0" @@ -4797,16 +5076,16 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz", + "integrity": "sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==", "cpu": [ "arm64" ], "optional": true, "os": [ - "linux" + "darwin" ], "engines": { "node": ">= 10.0.0" @@ -4816,16 +5095,16 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", - "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz", + "integrity": "sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==", "cpu": [ "x64" ], "optional": true, "os": [ - "linux" + "darwin" ], "engines": { "node": ">= 10.0.0" @@ -4835,16 +5114,111 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz", + "integrity": "sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==", "cpu": [ "x64" ], "optional": true, "os": [ - "linux" + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz", + "integrity": "sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz", + "integrity": "sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz", + "integrity": "sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", + "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", + "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" ], "engines": { "node": ">= 10.0.0" @@ -4855,9 +5229,9 @@ } }, "node_modules/@parcel/watcher-wasm": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.4.1.tgz", - "integrity": "sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz", + "integrity": "sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==", "bundleDependencies": [ "napi-wasm" ], @@ -4880,9 +5254,9 @@ "license": "MIT" }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", - "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz", + "integrity": "sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==", "cpu": [ "arm64" ], @@ -4899,9 +5273,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", - "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz", + "integrity": "sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==", "cpu": [ "ia32" ], @@ -4918,9 +5292,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", - "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz", + "integrity": "sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==", "cpu": [ "x64" ], @@ -4948,21 +5322,9 @@ } }, "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", + "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==" }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", @@ -5017,14 +5379,6 @@ "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/@rollup/plugin-replace/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, "node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", @@ -5052,54 +5406,60 @@ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz", - "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", + "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", "dev": true }, "node_modules/@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", + "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", "peer": true, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip32": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", - "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz", + "integrity": "sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "peer": true, "dependencies": { - "@noble/curves": "~1.3.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@noble/hashes": "~1.1.1", + "@noble/secp256k1": "~1.6.0", + "@scure/base": "~1.1.0" } }, "node_modules/@scure/bip39": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", - "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "peer": true, "dependencies": { - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" } }, "node_modules/@sendgrid/client": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.1.tgz", - "integrity": "sha512-pg0gYhAdyQil3Aga7/xHVcZFpvDAjAQMNBgMy5njTSkjACoWHmpSi1nWBZM7nIH/ptcRNMpnBbm9B5EvQ8fX2w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.0.tgz", + "integrity": "sha512-Kp2kKLr307v/HnR3uGuySt0AbCkeG7naDVOzfPOtWvKHVZIEHmKidQjJjzytVZNYWtoRdYgNfBw6GyUznGqa6w==", "dependencies": { "@sendgrid/helpers": "^8.0.0", - "axios": "^1.6.4" + "axios": "^1.6.0" }, "engines": { "node": ">=12.*" @@ -5117,11 +5477,11 @@ } }, "node_modules/@sendgrid/mail": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-8.1.1.tgz", - "integrity": "sha512-tNtmgWLtBA7ZxKtPuEGOaIdEZP1vZSXsj5zg9iuoDBPVj/fNz+7LWzndvTcKumHk5eaDrS0UPXJqBm61m3+H1A==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-8.1.0.tgz", + "integrity": "sha512-WkE0qwOrJMX9oQ+Xvtl3CdmucD6/iKw6go0VPoPieVlfXc43rbIf91wvtO6m7sKPnzxw3G+8rekBgXibmP4S8Q==", "dependencies": { - "@sendgrid/client": "^8.1.1", + "@sendgrid/client": "^8.1.0", "@sendgrid/helpers": "^8.0.0" }, "engines": { @@ -5144,6 +5504,12 @@ "node": ">=6" } }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, "node_modules/@sentry/hub": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", @@ -5158,6 +5524,12 @@ "node": ">=6" } }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, "node_modules/@sentry/minimal": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", @@ -5172,6 +5544,12 @@ "node": ">=6" } }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, "node_modules/@sentry/node": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", @@ -5192,6 +5570,12 @@ "node": ">=6" } }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, "node_modules/@sentry/tracing": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", @@ -5208,6 +5592,12 @@ "node": ">=6" } }, + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, "node_modules/@sentry/types": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", @@ -5230,6 +5620,12 @@ "node": ">=6" } }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, "node_modules/@solana/buffer-layout": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", @@ -5242,15 +5638,15 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.90.1", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.90.1.tgz", - "integrity": "sha512-BaopDf3TN54N9/T1iILu+Fz2gthIZzi+6X2A7bb0FWvGlwI/78iKRb2WjSnCfrHmMbWVLJR5n/pmXteezMXgVw==", + "version": "1.87.6", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.87.6.tgz", + "integrity": "sha512-LkqsEBgTZztFiccZZXnawWa8qNCATEqE97/d0vIwjTclmVlc8pBpD1DmjfVHtZ1HS5fZorFlVhXfpwnCNDZfyg==", "dependencies": { - "@babel/runtime": "^7.23.4", + "@babel/runtime": "^7.23.2", "@noble/curves": "^1.2.0", - "@noble/hashes": "^1.3.3", - "@solana/buffer-layout": "^4.0.1", - "agentkeepalive": "^4.5.0", + "@noble/hashes": "^1.3.1", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.3.0", "bigint-buffer": "^1.1.5", "bn.js": "^5.2.1", "borsh": "^0.7.0", @@ -5258,11 +5654,22 @@ "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", "jayson": "^4.1.0", - "node-fetch": "^2.7.0", + "node-fetch": "^2.6.12", "rpc-websockets": "^7.5.1", "superstruct": "^0.14.2" } }, + "node_modules/@solana/web3.js/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@solidity-parser/parser": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", @@ -5429,12 +5836,15 @@ "string.prototype.matchall": "^4.0.6" } }, - "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/@swc/helpers": { @@ -5445,11 +5855,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@swc/helpers/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -5474,15 +5879,15 @@ "peer": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "peer": true }, "node_modules/@typechain/ethers-v5": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz", - "integrity": "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz", + "integrity": "sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w==", "peer": true, "dependencies": { "lodash": "^4.17.15", @@ -5490,6 +5895,7 @@ }, "peerDependencies": { "@ethersproject/abi": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", "@ethersproject/providers": "^5.0.0", "ethers": "^5.1.3", "typechain": "^8.1.1", @@ -5497,9 +5903,9 @@ } }, "node_modules/@typechain/hardhat": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.6.tgz", - "integrity": "sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.5.tgz", + "integrity": "sha512-lg7LW4qDZpxFMknp3Xool61Fg6Lays8F8TXdFGBG+MxyYcYU5795P1U2XdStuzGq9S2Dzdgh+1jGww9wvZ6r4Q==", "peer": true, "dependencies": { "fs-extra": "^9.1.0" @@ -5507,7 +5913,7 @@ "peerDependencies": { "@ethersproject/abi": "^5.4.7", "@ethersproject/providers": "^5.4.7", - "@typechain/ethers-v5": "^10.2.1", + "@typechain/ethers-v5": "^10.2.0", "ethers": "^5.4.7", "hardhat": "^2.9.9", "typechain": "^8.1.1" @@ -5541,33 +5947,39 @@ } }, "node_modules/@typechain/hardhat/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "peer": true, "engines": { "node": ">= 10.0.0" } }, + "node_modules/@types/async-eventemitter": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz", + "integrity": "sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==", + "peer": true + }, "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "peer": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/chai": { - "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", - "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "peer": true }, "node_modules/@types/chai-as-promised": { - "version": "7.1.8", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", - "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", + "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", "peer": true, "dependencies": { "@types/chai": "*" @@ -5599,9 +6011,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.56.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", - "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "peer": true, "dependencies": { "@types/estree": "*", @@ -5609,9 +6021,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "peer": true, "dependencies": { "@types/eslint": "*", @@ -5619,9 +6031,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.4.tgz", + "integrity": "sha512-2JwWnHK9H+wUZNorf2Zr6ves96WHoWDJIftkcxPKsS7Djta6Zu519LarhRNljPXkpsZR2ZMwNCPeW7omW07BJw==", "peer": true }, "node_modules/@types/form-data": { @@ -5643,18 +6055,18 @@ } }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.4.tgz", + "integrity": "sha512-ZchYkbieA+7tnxwX/SCBySx9WwvWR8TaP5tb2jRAzwvLb/rWchGw3v0w3pqUbUvj0GCwW2Xz/AVPSk6kUGctXQ==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -5680,9 +6092,9 @@ "dev": true }, "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", "peer": true }, "node_modules/@types/ms": { @@ -5691,12 +6103,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.11.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", - "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", - "dependencies": { - "undici-types": "~5.26.4" - } + "version": "18.11.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.14.tgz", + "integrity": "sha512-0KXV57tENYmmJMl+FekeW9V3O/rlcqGQQJ/hNh9r8pKIj304pskWuEd8fCyNT86g/TpO0gcOTiLzsHLEURFMIQ==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", @@ -5705,34 +6114,34 @@ "dev": true }, "node_modules/@types/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", "peer": true }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.9", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" }, "node_modules/@types/qs": { - "version": "6.9.12", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", - "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "peer": true }, "node_modules/@types/react": { - "version": "18.2.62", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.62.tgz", - "integrity": "sha512-l3f57BbaEKP0xcFzf+5qRG8/PXykZiuVM6eEoPtqBPCp6dxO3HhDkLIgIyXPhPKNAeXn3KO2pEaNgzaEo/asaw==", + "version": "18.2.36", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.36.tgz", + "integrity": "sha512-o9XFsHYLLZ4+sb9CWUYwHqFVoG61SesydF353vFMMsQziiyRu8np4n2OYMUSDZ8XuImxDr9c5tR7gidlH29Vnw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -5748,27 +6157,27 @@ } }, "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", + "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" }, "node_modules/@types/secp256k1": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", - "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" }, "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" }, "node_modules/@types/whatwg-url": { "version": "8.2.2", @@ -5788,15 +6197,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz", + "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "6.9.1", + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/typescript-estree": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", "debug": "^4.3.4" }, "engines": { @@ -5816,13 +6225,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz", + "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -5833,9 +6242,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", + "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -5846,17 +6255,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", + "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -5873,37 +6281,33 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", + "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/types": "6.9.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -5921,46 +6325,62 @@ "dev": true }, "node_modules/@vue/compiler-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", - "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.13.tgz", + "integrity": "sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==", "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/shared": "3.4.21", - "entities": "^4.5.0", + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.13", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", - "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.13.tgz", + "integrity": "sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==", "dependencies": { - "@vue/compiler-core": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", - "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", - "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/compiler-core": "3.4.21", - "@vue/compiler-dom": "3.4.21", - "@vue/compiler-ssr": "3.4.21", - "@vue/shared": "3.4.21", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.13.tgz", + "integrity": "sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==", + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.13", + "@vue/compiler-dom": "3.3.13", + "@vue/compiler-ssr": "3.3.13", + "@vue/reactivity-transform": "3.3.13", + "@vue/shared": "3.3.13", "estree-walker": "^2.0.2", - "magic-string": "^0.30.7", - "postcss": "^8.4.35", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", "source-map-js": "^1.0.2" } }, + "node_modules/@vue/compiler-sfc/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@vue/compiler-sfc/node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@vue/compiler-sfc/node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -5985,57 +6405,85 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", - "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.13.tgz", + "integrity": "sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==", "dependencies": { - "@vue/compiler-dom": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-dom": "3.3.13", + "@vue/shared": "3.3.13" } }, "node_modules/@vue/reactivity": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", - "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.13.tgz", + "integrity": "sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==", "dependencies": { - "@vue/shared": "3.4.21" + "@vue/shared": "3.3.13" } }, - "node_modules/@vue/runtime-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", - "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", + "node_modules/@vue/reactivity-transform": { + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.13.tgz", + "integrity": "sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==", "dependencies": { - "@vue/reactivity": "3.4.21", - "@vue/shared": "3.4.21" + "@babel/parser": "^7.23.5", + "@vue/compiler-core": "3.3.13", + "@vue/shared": "3.3.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5" } }, - "node_modules/@vue/runtime-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", - "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", - "dependencies": { - "@vue/runtime-core": "3.4.21", - "@vue/shared": "3.4.21", - "csstype": "^3.1.3" - } + "node_modules/@vue/reactivity-transform/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@vue/reactivity-transform/node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.13.tgz", + "integrity": "sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==", + "dependencies": { + "@vue/reactivity": "3.3.13", + "@vue/shared": "3.3.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.13.tgz", + "integrity": "sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==", + "dependencies": { + "@vue/runtime-core": "3.3.13", + "@vue/shared": "3.3.13", + "csstype": "^3.1.3" + } }, "node_modules/@vue/server-renderer": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", - "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.13.tgz", + "integrity": "sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==", "dependencies": { - "@vue/compiler-ssr": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-ssr": "3.3.13", + "@vue/shared": "3.3.13" }, "peerDependencies": { - "vue": "3.4.21" + "vue": "3.3.13" } }, "node_modules/@vue/shared": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", - "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==" + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.13.tgz", + "integrity": "sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==" }, "node_modules/@walletconnect/browser-utils": { "version": "1.8.0", @@ -6049,11 +6497,15 @@ "detect-browser": "5.2.0" } }, + "node_modules/@walletconnect/browser-utils/node_modules/@walletconnect/safe-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz", + "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" + }, "node_modules/@walletconnect/client": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.8.0.tgz", "integrity": "sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==", - "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/", "dependencies": { "@walletconnect/core": "^1.8.0", "@walletconnect/iso-crypto": "^1.8.0", @@ -6084,6 +6536,16 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/crypto/node_modules/aes-js": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", + "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" + }, + "node_modules/@walletconnect/crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/@walletconnect/encoding": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.2.tgz", @@ -6094,6 +6556,11 @@ "typedarray-to-buffer": "3.1.5" } }, + "node_modules/@walletconnect/encoding/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/@walletconnect/environment": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", @@ -6102,103 +6569,10 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/ethereum-provider": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.11.0.tgz", - "integrity": "sha512-YrTeHVjuSuhlUw7SQ6xBJXDuJ6iAC+RwINm9nVhoKYJSHAy3EVSJZOofMKrnecL0iRMtD29nj57mxAInIBRuZA==", - "dependencies": { - "@walletconnect/jsonrpc-http-connection": "^1.0.7", - "@walletconnect/jsonrpc-provider": "^1.0.13", - "@walletconnect/jsonrpc-types": "^1.0.3", - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/modal": "^2.6.2", - "@walletconnect/sign-client": "2.11.0", - "@walletconnect/types": "2.11.0", - "@walletconnect/universal-provider": "2.11.0", - "@walletconnect/utils": "2.11.0", - "events": "^3.3.0" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/types": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.0.tgz", - "integrity": "sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==", - "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-types": "1.0.3", - "@walletconnect/keyvaluestorage": "^1.1.1", - "@walletconnect/logger": "^2.0.1", - "events": "^3.3.0" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/utils": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.0.tgz", - "integrity": "sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==", - "dependencies": { - "@stablelib/chacha20poly1305": "1.0.1", - "@stablelib/hkdf": "1.0.1", - "@stablelib/random": "^1.0.2", - "@stablelib/sha256": "1.0.1", - "@stablelib/x25519": "^1.0.3", - "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/safe-json": "^1.0.2", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.11.0", - "@walletconnect/window-getters": "^1.0.1", - "@walletconnect/window-metadata": "^1.0.1", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "^3.1.0" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", - "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@walletconnect/environment/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/events": { "version": "1.0.1", @@ -6209,593 +6583,294 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/events/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/@walletconnect/heartbeat": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz", - "integrity": "sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==", - "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/http-connection": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.8.0.tgz", - "integrity": "sha512-IziEr3c53qsMromK7jz0EkbKDHlryRbxXdFR+xaG+S5nfxtUdAfjzlZabvczXdDCgmTij6KbNsZAjBMqCBzACw==", - "dependencies": { - "@walletconnect/types": "^1.8.0", - "@walletconnect/utils": "^1.8.0", - "eventemitter3": "4.0.7", - "xhr2-cookies": "1.1.0" - } - }, - "node_modules/@walletconnect/iso-crypto": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz", - "integrity": "sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==", - "dependencies": { - "@walletconnect/crypto": "^1.0.2", - "@walletconnect/types": "^1.8.0", - "@walletconnect/utils": "^1.8.0" - } - }, - "node_modules/@walletconnect/jsonrpc-http-connection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz", - "integrity": "sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==", - "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", - "cross-fetch": "^3.1.4", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-provider": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz", - "integrity": "sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==", - "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/safe-json": "^1.0.2", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-provider/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz", - "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==", - "dependencies": { - "keyvaluestorage-interface": "^1.0.0", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-utils": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", - "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", - "dependencies": { - "@walletconnect/environment": "^1.0.1", - "@walletconnect/jsonrpc-types": "^1.0.3", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", - "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", - "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0", - "ws": "^7.5.1" - } - }, - "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } - } - }, - "node_modules/@walletconnect/keyvaluestorage/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "dependencies": { - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/logger": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.0.1.tgz", - "integrity": "sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==", - "dependencies": { - "pino": "7.11.0", - "tslib": "1.14.1" - } - }, - "node_modules/@walletconnect/mobile-registry": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz", - "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==", - "deprecated": "Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry" - }, - "node_modules/@walletconnect/modal": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.6.2.tgz", - "integrity": "sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==", - "dependencies": { - "@walletconnect/modal-core": "2.6.2", - "@walletconnect/modal-ui": "2.6.2" - } - }, - "node_modules/@walletconnect/modal-core": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.6.2.tgz", - "integrity": "sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==", - "dependencies": { - "valtio": "1.11.2" - } - }, - "node_modules/@walletconnect/modal-ui": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz", - "integrity": "sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==", - "dependencies": { - "@walletconnect/modal-core": "2.6.2", - "lit": "2.8.0", - "motion": "10.16.2", - "qrcode": "1.5.3" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", - "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/@walletconnect/modal-ui/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz", + "integrity": "sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==", + "dependencies": { + "@walletconnect/events": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "tslib": "1.14.1" } }, - "node_modules/@walletconnect/modal-ui/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/@walletconnect/heartbeat/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@walletconnect/http-connection": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/http-connection/-/http-connection-1.8.0.tgz", + "integrity": "sha512-IziEr3c53qsMromK7jz0EkbKDHlryRbxXdFR+xaG+S5nfxtUdAfjzlZabvczXdDCgmTij6KbNsZAjBMqCBzACw==", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0", + "eventemitter3": "4.0.7", + "xhr2-cookies": "1.1.0" } }, - "node_modules/@walletconnect/qrcode-modal": { + "node_modules/@walletconnect/iso-crypto": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz", - "integrity": "sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==", - "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/", + "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz", + "integrity": "sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==", "dependencies": { - "@walletconnect/browser-utils": "^1.8.0", - "@walletconnect/mobile-registry": "^1.4.0", + "@walletconnect/crypto": "^1.0.2", "@walletconnect/types": "^1.8.0", - "copy-to-clipboard": "^3.3.1", - "preact": "10.4.1", - "qrcode": "1.4.4" + "@walletconnect/utils": "^1.8.0" } }, - "node_modules/@walletconnect/randombytes": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.3.tgz", - "integrity": "sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==", + "node_modules/@walletconnect/jsonrpc-http-connection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz", + "integrity": "sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==", "dependencies": { - "@walletconnect/encoding": "^1.0.2", - "@walletconnect/environment": "^1.0.1", - "randombytes": "^2.1.0", + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.1", + "cross-fetch": "^3.1.4", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/relay-api": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.9.tgz", - "integrity": "sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==", + "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@walletconnect/jsonrpc-provider": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz", + "integrity": "sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==", "dependencies": { - "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/relay-auth": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz", - "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==", - "dependencies": { - "@stablelib/ed25519": "^1.0.2", - "@stablelib/random": "^1.0.1", - "@walletconnect/safe-json": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "tslib": "1.14.1", - "uint8arrays": "^3.0.0" - } + "node_modules/@walletconnect/jsonrpc-provider/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@walletconnect/relay-auth/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "node_modules/@walletconnect/jsonrpc-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz", + "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==", "dependencies": { + "keyvaluestorage-interface": "^1.0.0", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/safe-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz", - "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==" + "node_modules/@walletconnect/jsonrpc-types/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@walletconnect/sign-client": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.11.0.tgz", - "integrity": "sha512-H2ukscibBS+6WrzQWh+WyVBqO5z4F5et12JcwobdwgHnJSlqIoZxqnUYYWNCI5rUR5UKsKWaUyto4AE9N5dw4Q==", + "node_modules/@walletconnect/jsonrpc-utils": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", "dependencies": { - "@walletconnect/core": "2.11.0", - "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "^2.0.1", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.11.0", - "@walletconnect/utils": "2.11.0", - "events": "^3.3.0" + "@walletconnect/environment": "^1.0.1", + "@walletconnect/jsonrpc-types": "^1.0.3", + "tslib": "1.14.1" } }, - "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/core": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.11.0.tgz", - "integrity": "sha512-2Tjp5BCevI7dbmqo/OrCjX4tqgMqwJNQLlQAlphqPfvwlF9+tIu6pGcVbSN3U9zyXzWIZCeleqEaWUeSeET4Ew==", + "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", + "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", "dependencies": { - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-provider": "1.0.13", - "@walletconnect/jsonrpc-types": "1.0.3", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.14", - "@walletconnect/keyvaluestorage": "^1.1.1", - "@walletconnect/logger": "^2.0.1", - "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/relay-auth": "^1.0.4", + "@walletconnect/jsonrpc-utils": "^1.0.6", "@walletconnect/safe-json": "^1.0.2", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.11.0", - "@walletconnect/utils": "2.11.0", "events": "^3.3.0", - "isomorphic-unfetch": "3.1.0", - "lodash.isequal": "4.5.0", - "uint8arrays": "^3.1.0" + "ws": "^7.5.1" } }, - "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "dependencies": { + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "1.x" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@walletconnect/logger": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.0.1.tgz", + "integrity": "sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==", "dependencies": { + "pino": "7.11.0", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.0.tgz", - "integrity": "sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==", + "node_modules/@walletconnect/logger/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@walletconnect/mobile-registry": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz", + "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==", + "deprecated": "Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry" + }, + "node_modules/@walletconnect/modal": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.6.2.tgz", + "integrity": "sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==", "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-types": "1.0.3", - "@walletconnect/keyvaluestorage": "^1.1.1", - "@walletconnect/logger": "^2.0.1", - "events": "^3.3.0" + "@walletconnect/modal-core": "2.6.2", + "@walletconnect/modal-ui": "2.6.2" } }, - "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/utils": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.0.tgz", - "integrity": "sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==", + "node_modules/@walletconnect/modal-core": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.6.2.tgz", + "integrity": "sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==", "dependencies": { - "@stablelib/chacha20poly1305": "1.0.1", - "@stablelib/hkdf": "1.0.1", - "@stablelib/random": "^1.0.2", - "@stablelib/sha256": "1.0.1", - "@stablelib/x25519": "^1.0.3", - "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/safe-json": "^1.0.2", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.11.0", - "@walletconnect/window-getters": "^1.0.1", - "@walletconnect/window-metadata": "^1.0.1", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "^3.1.0" + "valtio": "1.11.2" } }, - "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "node_modules/@walletconnect/modal-ui": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz", + "integrity": "sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==", "dependencies": { - "tslib": "1.14.1" + "@walletconnect/modal-core": "2.6.2", + "lit": "2.8.0", + "motion": "10.16.2", + "qrcode": "1.5.3" } }, - "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@walletconnect/modal-ui/node_modules/lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" } }, - "node_modules/@walletconnect/sign-client/node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + "node_modules/@walletconnect/modal-ui/node_modules/motion": { + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", + "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", + "dependencies": { + "@motionone/animation": "^10.15.1", + "@motionone/dom": "^10.16.2", + "@motionone/svelte": "^10.16.2", + "@motionone/types": "^10.15.1", + "@motionone/utils": "^10.15.1", + "@motionone/vue": "^10.16.2" + } }, - "node_modules/@walletconnect/sign-client/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "node_modules/@walletconnect/modal-ui/node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" }, - "engines": { - "node": ">=6" + "bin": { + "qrcode": "bin/qrcode" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/@walletconnect/socket-transport": { + "node_modules/@walletconnect/qrcode-modal": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz", - "integrity": "sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==", + "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz", + "integrity": "sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==", "dependencies": { + "@walletconnect/browser-utils": "^1.8.0", + "@walletconnect/mobile-registry": "^1.4.0", "@walletconnect/types": "^1.8.0", - "@walletconnect/utils": "^1.8.0", - "ws": "7.5.3" + "copy-to-clipboard": "^3.3.1", + "preact": "10.4.1", + "qrcode": "1.4.4" } }, - "node_modules/@walletconnect/socket-transport/node_modules/ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node_modules/@walletconnect/randombytes": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.3.tgz", + "integrity": "sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==", + "dependencies": { + "@walletconnect/encoding": "^1.0.2", + "@walletconnect/environment": "^1.0.1", + "randombytes": "^2.1.0", + "tslib": "1.14.1" } }, - "node_modules/@walletconnect/time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", - "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", + "node_modules/@walletconnect/randombytes/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@walletconnect/relay-api": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.9.tgz", + "integrity": "sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==", "dependencies": { + "@walletconnect/jsonrpc-types": "^1.0.2", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/types": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz", - "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==", - "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/" + "node_modules/@walletconnect/relay-api/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@walletconnect/universal-provider": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.11.0.tgz", - "integrity": "sha512-zgJv8jDvIMP4Qse/D9oIRXGdfoNqonsrjPZanQ/CHNe7oXGOBiQND2IIeX+tS0H7uNA0TPvctljCLiIN9nw4eA==", + "node_modules/@walletconnect/relay-auth": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz", + "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==", "dependencies": { - "@walletconnect/jsonrpc-http-connection": "^1.0.7", - "@walletconnect/jsonrpc-provider": "1.0.13", - "@walletconnect/jsonrpc-types": "^1.0.2", - "@walletconnect/jsonrpc-utils": "^1.0.7", - "@walletconnect/logger": "^2.0.1", - "@walletconnect/sign-client": "2.11.0", - "@walletconnect/types": "2.11.0", - "@walletconnect/utils": "2.11.0", - "events": "^3.3.0" + "@stablelib/ed25519": "^1.0.2", + "@stablelib/random": "^1.0.1", + "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "tslib": "1.14.1", + "uint8arrays": "^3.0.0" } }, - "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/safe-json": { + "node_modules/@walletconnect/relay-auth/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@walletconnect/safe-json": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", @@ -6803,78 +6878,38 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/types": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.11.0.tgz", - "integrity": "sha512-AB5b1lrEbCGHxqS2vqfCkIoODieH+ZAUp9rA1O2ftrhnqDJiJK983Df87JhYhECsQUBHHfALphA8ydER0q+9sw==", - "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.1", - "@walletconnect/jsonrpc-types": "1.0.3", - "@walletconnect/keyvaluestorage": "^1.1.1", - "@walletconnect/logger": "^2.0.1", - "events": "^3.3.0" - } - }, - "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/utils": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.11.0.tgz", - "integrity": "sha512-hxkHPlTlDQILHfIKXlmzgNJau/YcSBC3XHUSuZuKZbNEw3duFT6h6pm3HT/1+j1a22IG05WDsNBuTCRkwss+BQ==", - "dependencies": { - "@stablelib/chacha20poly1305": "1.0.1", - "@stablelib/hkdf": "1.0.1", - "@stablelib/random": "^1.0.2", - "@stablelib/sha256": "1.0.1", - "@stablelib/x25519": "^1.0.3", - "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/safe-json": "^1.0.2", - "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.11.0", - "@walletconnect/window-getters": "^1.0.1", - "@walletconnect/window-metadata": "^1.0.1", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "^3.1.0" - } + "node_modules/@walletconnect/safe-json/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "node_modules/@walletconnect/socket-transport": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz", + "integrity": "sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==", "dependencies": { - "tslib": "1.14.1" + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0", + "ws": "7.5.3" } }, - "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@walletconnect/time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", + "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", "tslib": "1.14.1" } }, - "node_modules/@walletconnect/universal-provider/node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + "node_modules/@walletconnect/time/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@walletconnect/universal-provider/node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@walletconnect/types": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz", + "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==" }, "node_modules/@walletconnect/utils": { "version": "1.8.0", @@ -6891,205 +6926,101 @@ } }, "node_modules/@walletconnect/utils/node_modules/bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "node_modules/@walletconnect/web3-provider": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.8.0.tgz", - "integrity": "sha512-lqqEO0oRmCehH+c8ZPk3iH7I7YtbzmkWd58/Or2AgWAl869JamzndKCD3sTlNsPRQLxxPpraHQqzur7uclLWvg==", - "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/", - "dependencies": { - "@walletconnect/client": "^1.8.0", - "@walletconnect/http-connection": "^1.8.0", - "@walletconnect/qrcode-modal": "^1.8.0", - "@walletconnect/types": "^1.8.0", - "@walletconnect/utils": "^1.8.0", - "web3-provider-engine": "16.0.1" - } - }, - "node_modules/@walletconnect/window-getters": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz", - "integrity": "sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==" - }, - "node_modules/@walletconnect/window-metadata": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz", - "integrity": "sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==", - "dependencies": { - "@walletconnect/window-getters": "^1.0.0" - } - }, - "node_modules/@web3modal/common": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/common/-/common-3.5.7.tgz", - "integrity": "sha512-QUT9VP7GLTbJB+a8DDdLqyi97E7J/VAgFqCZrtO4rTnilI/0CaDP5WkU1sX/O5AJO5CsLfJMxUmBKxppy6kl2g==", - "dependencies": { - "dayjs": "1.11.10" - } - }, - "node_modules/@web3modal/core": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-3.5.7.tgz", - "integrity": "sha512-RCqhydtqZRVrOtC5E88s97cJcRNcD3euBatu0Z+TXUvuK52p9JHC7Yq2j/E7rDS4dTa0hgzqNOw3/pYScoLfiQ==", - "dependencies": { - "@web3modal/common": "3.5.7", - "@web3modal/wallet": "3.5.7", - "valtio": "1.11.2" - } - }, - "node_modules/@web3modal/ethers5": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/ethers5/-/ethers5-3.5.7.tgz", - "integrity": "sha512-qCBYxWcIpIgkEw1mA0PqEVG2dsmPxoIJX0aCF8LCkW7AHHJtDGxlW6hPS3qRRdl7s6idVgGC+JV5esdQX+qt5A==", - "dependencies": { - "@coinbase/wallet-sdk": "3.7.2", - "@walletconnect/ethereum-provider": "2.11.0", - "@web3modal/polyfills": "3.5.7", - "@web3modal/scaffold": "3.5.7", - "@web3modal/scaffold-react": "3.5.7", - "@web3modal/scaffold-utils": "3.5.7", - "@web3modal/scaffold-vue": "3.5.7", - "valtio": "1.11.2" - }, - "optionalDependencies": { - "@web3modal/siwe": "3.5.7", - "react": ">=17", - "react-dom": ">=17", - "vue": ">=3" - }, - "peerDependencies": { - "@web3modal/siwe": "*", - "ethers": ">=5.0.0 <6.0.0", - "react": ">=17", - "react-dom": ">=17", - "vue": ">=3" - }, - "peerDependenciesMeta": { - "@web3modal/siwe": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "vue": { - "optional": true - } - } - }, - "node_modules/@web3modal/polyfills": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/polyfills/-/polyfills-3.5.7.tgz", - "integrity": "sha512-B0lyHcXOsJfd70HEAi+6uiCDhoIu5am76aV+0E2UrQ4mAFBhH7zJlVeLdPHZ/phfk4y9Eq9kQgwJC2dk2SMIVQ==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/@web3modal/scaffold": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold/-/scaffold-3.5.7.tgz", - "integrity": "sha512-/yQwXg2qUX1srNmoqmVAgqa8INNi2ObR9BaaNo/UFzRn02qMQsV9BQfkTrp2lC91HPUGewM833eKQw20+sUfTg==", - "dependencies": { - "@web3modal/common": "3.5.7", - "@web3modal/core": "3.5.7", - "@web3modal/ui": "3.5.7", - "lit": "3.1.0" - } - }, - "node_modules/@web3modal/scaffold-react": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold-react/-/scaffold-react-3.5.7.tgz", - "integrity": "sha512-t2mzqPWpxes5SkwAsXwcE+2TEXfnS3x+cc1d8VKevvz2/R9Z9Kf14RY/2hKHeKN4W3E5KFftHuAepUZleKgYVQ==", - "dependencies": { - "@web3modal/scaffold": "3.5.7" - }, - "peerDependencies": { - "react": ">=17", - "react-dom": ">=17" - } - }, - "node_modules/@web3modal/scaffold-utils": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold-utils/-/scaffold-utils-3.5.7.tgz", - "integrity": "sha512-pRa47Ev1VPAqOhkH3H1N+NkziCuTB6iJ2I7tbEe/zKSdSN6CuNeYEwhcwukagGk1yV00He4MsLhIDz54tAs3Fg==", - "dependencies": { - "@web3modal/polyfills": "3.5.7", - "@web3modal/scaffold": "3.5.7", - "valtio": "1.11.2" - } + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, - "node_modules/@web3modal/scaffold-vue": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/scaffold-vue/-/scaffold-vue-3.5.7.tgz", - "integrity": "sha512-WIS4tXauPMTGD+nUbemc+lhR3hiRh51yICm6hkbaW4Agf6e0rKpCiqtIAqLJL+hhMLNu6ZJ6gWjCOSym4hb9wQ==", + "node_modules/@walletconnect/utils/node_modules/query-string": { + "version": "6.13.5", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz", + "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==", "dependencies": { - "@web3modal/scaffold": "3.5.7" + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" }, - "peerDependencies": { - "vue": ">=3" + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@web3modal/scaffold/node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "node_modules/@walletconnect/web3-provider": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/web3-provider/-/web3-provider-1.8.0.tgz", + "integrity": "sha512-lqqEO0oRmCehH+c8ZPk3iH7I7YtbzmkWd58/Or2AgWAl869JamzndKCD3sTlNsPRQLxxPpraHQqzur7uclLWvg==", + "deprecated": "WalletConnect's v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" + "@walletconnect/client": "^1.8.0", + "@walletconnect/http-connection": "^1.8.0", + "@walletconnect/qrcode-modal": "^1.8.0", + "@walletconnect/types": "^1.8.0", + "@walletconnect/utils": "^1.8.0", + "web3-provider-engine": "16.0.1" } }, - "node_modules/@web3modal/scaffold/node_modules/lit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", - "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "node_modules/@walletconnect/window-getters": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz", + "integrity": "sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==" + }, + "node_modules/@walletconnect/window-metadata": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz", + "integrity": "sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==", "dependencies": { - "@lit/reactive-element": "^2.0.0", - "lit-element": "^4.0.0", - "lit-html": "^3.1.0" + "@walletconnect/window-getters": "^1.0.0" } }, - "node_modules/@web3modal/scaffold/node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "node_modules/@web3modal/common": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/common/-/common-3.5.1.tgz", + "integrity": "sha512-OBm8ugfK7VoVSIJdZRhcxGFU3yNoHnCVxrOxnJ/+cBnGT/hariWtGOIaGJXaaj+HHWm9sRDsk8iMHS/Nil+lHw==", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "dayjs": "1.11.10" } }, - "node_modules/@web3modal/scaffold/node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "node_modules/@web3modal/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-3.5.1.tgz", + "integrity": "sha512-lJrUbDSU36ejeoUynq+7WoSeDgb50m+Hgj0QnnnB2eG59dZ+2ls5PuEPLsKy/1O4sUyHoUpSqjbd3jUt5ic68g==", "dependencies": { - "@types/trusted-types": "^2.0.2" + "@web3modal/common": "3.5.1", + "valtio": "1.11.2" } }, - "node_modules/@web3modal/siwe": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/siwe/-/siwe-3.5.7.tgz", - "integrity": "sha512-dV0yhJYtKq4VxKSSlTxpFgVice0qhcTPfTxrD9Z8u8O5QYw4gv8S7g6dvtFCvTce4DlHSlqNM9MZqeViB6BHpg==", - "optional": true, + "node_modules/@web3modal/ethers5": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/ethers5/-/ethers5-3.5.1.tgz", + "integrity": "sha512-wQVwddwkTs8xPwrNQwOz/zF7bUONF0+2YWEckhWexMQkcJ6CVGMZRNb8OziwPrryScj+Zrak7GWsTkxv1yCX+g==", "dependencies": { - "@web3modal/core": "3.5.7", - "@web3modal/scaffold-utils": "3.5.7" + "@coinbase/wallet-sdk": "3.7.2", + "@walletconnect/ethereum-provider": "2.10.6", + "@web3modal/polyfills": "3.5.1", + "@web3modal/scaffold": "3.5.1", + "@web3modal/scaffold-react": "3.5.1", + "@web3modal/scaffold-utils": "3.5.1", + "@web3modal/scaffold-vue": "3.5.1", + "valtio": "1.11.2" }, "optionalDependencies": { + "@web3modal/siwe": "3.5.0-6a05dc24", "react": ">=17", "react-dom": ">=17", "vue": ">=3" }, "peerDependencies": { + "@web3modal/siwe": "*", + "ethers": ">=5.0.0 <6.0.0", "react": ">=17", "react-dom": ">=17", "vue": ">=3" }, "peerDependenciesMeta": { + "@web3modal/siwe": { + "optional": true + }, "react": { "optional": true }, @@ -7101,207 +7032,223 @@ } } }, - "node_modules/@web3modal/ui": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-3.5.7.tgz", - "integrity": "sha512-tXoRq9vZro/5oGYQtGXnq5KZ3YB2NuTNVKJ1evSq6WfHFcQr3AxinWfaJaWryLgkCmvMJXGvL6oSUWpodgTi5Q==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/core": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.10.6.tgz", + "integrity": "sha512-Z4vh4ZdfcoQjgPEOxeuF9HUZCVLtV3MgRbS/awLIj/omDrFnOwlBhxi5Syr4Y8muVGC0ocRetQYHae0/gX5crQ==", "dependencies": { - "lit": "3.1.0", - "qrcode": "1.5.3" + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-provider": "1.0.13", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.14", + "@walletconnect/keyvaluestorage": "^1.1.1", + "@walletconnect/logger": "^2.0.1", + "@walletconnect/relay-api": "^1.0.9", + "@walletconnect/relay-auth": "^1.0.4", + "@walletconnect/safe-json": "^1.0.2", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.10.6", + "@walletconnect/utils": "2.10.6", + "events": "^3.3.0", + "lodash.isequal": "4.5.0", + "uint8arrays": "^3.1.0" } }, - "node_modules/@web3modal/ui/node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/ethereum-provider": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.6.tgz", + "integrity": "sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } - }, - "node_modules/@web3modal/ui/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "^1.0.13", + "@walletconnect/jsonrpc-types": "^1.0.3", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/modal": "^2.4.3", + "@walletconnect/sign-client": "2.10.6", + "@walletconnect/types": "2.10.6", + "@walletconnect/universal-provider": "2.10.6", + "@walletconnect/utils": "2.10.6", + "events": "^3.3.0" } }, - "node_modules/@web3modal/ui/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/sign-client": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.10.6.tgz", + "integrity": "sha512-EvUWjaZBQu2yKnH5/5F2qzbuiIuUN9ZgrNKgvXkw5z1Dq5RJCks0S9/MFlKH/ZSGqXnLl7uAzBXtoX4sMgbCMA==", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "@walletconnect/core": "2.10.6", + "@walletconnect/events": "^1.0.1", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "^2.0.1", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.10.6", + "@walletconnect/utils": "2.10.6", + "events": "^3.3.0" } }, - "node_modules/@web3modal/ui/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/types": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.10.6.tgz", + "integrity": "sha512-WgHfiTG1yakmxheaBRiXhUdEmgxwrvsAdOIWaMf/spvrzVKYh6sHI3oyEEky5qj5jjiMiyQBeB57QamzCotbcQ==", + "dependencies": { + "@walletconnect/events": "^1.0.1", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/keyvaluestorage": "^1.1.1", + "@walletconnect/logger": "^2.0.1", + "events": "^3.3.0" } }, - "node_modules/@web3modal/ui/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/universal-provider": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.10.6.tgz", + "integrity": "sha512-CEivusqqoD31BhCTKp08DnrccfGjwD9MFjZs5BNRorDteRFE8zVm9LmP6DSiNJCw82ZajGlZThggLQ/BAATfwA==", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "1.0.13", + "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/jsonrpc-utils": "^1.0.7", + "@walletconnect/logger": "^2.0.1", + "@walletconnect/sign-client": "2.10.6", + "@walletconnect/types": "2.10.6", + "@walletconnect/utils": "2.10.6", + "events": "^3.3.0" } }, - "node_modules/@web3modal/ui/node_modules/lit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", - "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/utils": { + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.10.6.tgz", + "integrity": "sha512-oRsWWhN2+hi3aiDXrQEOfysz6FHQJGXLsNQPVt+WIBJplO6Szmdau9dbleD88u1iiT4GKPqE0R9FOYvvPm1H/w==", "dependencies": { - "@lit/reactive-element": "^2.0.0", - "lit-element": "^4.0.0", - "lit-html": "^3.1.0" + "@stablelib/chacha20poly1305": "1.0.1", + "@stablelib/hkdf": "1.0.1", + "@stablelib/random": "^1.0.2", + "@stablelib/sha256": "1.0.1", + "@stablelib/x25519": "^1.0.3", + "@walletconnect/relay-api": "^1.0.9", + "@walletconnect/safe-json": "^1.0.2", + "@walletconnect/time": "^1.0.2", + "@walletconnect/types": "2.10.6", + "@walletconnect/window-getters": "^1.0.1", + "@walletconnect/window-metadata": "^1.0.1", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "^3.1.0" } }, - "node_modules/@web3modal/ui/node_modules/lit-element": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", - "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" + "tslib": "1.14.1" } }, - "node_modules/@web3modal/ui/node_modules/lit-html": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", - "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "node_modules/@web3modal/ethers5/node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", "dependencies": { - "@types/trusted-types": "^2.0.2" + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" } }, - "node_modules/@web3modal/ui/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@web3modal/ethers5/node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/@web3modal/ethers5/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@web3modal/polyfills": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/polyfills/-/polyfills-3.5.1.tgz", + "integrity": "sha512-vBfwmFpeRXxrm6b9DPlfN2ntOCojs7CxBP9696wYir2/C1TbrjxvDbO43oiU9resiAmGqGBm39cwpYz2gDni+w==", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "buffer": "6.0.3" } }, - "node_modules/@web3modal/ui/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@web3modal/scaffold": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold/-/scaffold-3.5.1.tgz", + "integrity": "sha512-0lfjqoGs5atqEC0I+Gs4GlxYR6Ud7c3tpIw7zcraQ45ctFDQWnHffxZsCjO67WQvmeyRs96QlG9bLT+nO1qxXQ==", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@web3modal/common": "3.5.1", + "@web3modal/core": "3.5.1", + "@web3modal/ui": "3.5.1", + "lit": "3.1.0" } }, - "node_modules/@web3modal/ui/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@web3modal/scaffold-react": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold-react/-/scaffold-react-3.5.1.tgz", + "integrity": "sha512-oF+QGc2I9nNEwwaRGKgqqCG48baNQL/g/Pgv1qRpp1E08kohYLgRF7KNE1IYtSQ/kq+Kejm+K5mQHSX7mPVBOw==", "dependencies": { - "p-limit": "^2.2.0" + "@web3modal/scaffold": "3.5.1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@web3modal/ui/node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "engines": { - "node": ">=10.13.0" + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17" } }, - "node_modules/@web3modal/ui/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "node_modules/@web3modal/scaffold-utils": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold-utils/-/scaffold-utils-3.5.1.tgz", + "integrity": "sha512-EUEqSaIQeuPc6+UdZfwtTmEQVypitJTeb0RRSrzcoVUh4UA22o5mcrt1IRUgKM7WtUvAKKPEHbvl+fc3Qow4ig==", "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" + "@web3modal/polyfills": "3.5.1", + "@web3modal/scaffold": "3.5.1", + "valtio": "1.11.2" } }, - "node_modules/@web3modal/ui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@web3modal/scaffold-vue": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/scaffold-vue/-/scaffold-vue-3.5.1.tgz", + "integrity": "sha512-4Xrc3YoQJbY4oOJGKfh9ENxFIB/R0DE1Hq0p5O6S56/VO3hxYAmp8eXfFDqeo1qAJkPAcII2FdMnnTIfj2TGaQ==", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@web3modal/scaffold": "3.5.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "vue": ">=3" } }, - "node_modules/@web3modal/ui/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/@web3modal/ui/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/@web3modal/ui": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-3.5.1.tgz", + "integrity": "sha512-sfj0DL6fBdnYEeENV5FvebUzCnx+blch3cRG1lIorCGz9/nB4gBpxNjBFl6ONF7AgekMnnn109JpTqdlmO7Wig==", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" + "lit": "3.1.0", + "qrcode": "1.5.3" } }, - "node_modules/@web3modal/ui/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, + "node_modules/@web3modal/ui/node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", "engines": { - "node": ">=6" + "node": ">=10.13.0" } }, - "node_modules/@web3modal/wallet": { - "version": "3.5.7", - "resolved": "https://registry.npmjs.org/@web3modal/wallet/-/wallet-3.5.7.tgz", - "integrity": "sha512-jJq7q2N3KImLDZt5E5vJTIeVsJTf7Gc4YBaA9/pBrv/k/tKFrGfZKloHm+sklLGtFVn0j2IeEx136DnXxmitUg==", + "node_modules/@web3modal/ui/node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", "dependencies": { - "zod": "3.22.4" + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/@webassemblyjs/ast": { @@ -7468,6 +7415,59 @@ "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "peer": true }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "peer": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "peer": true, + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/abstract-level/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/abstract-leveldown": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", @@ -7477,9 +7477,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -7506,14 +7506,23 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "peer": true, "engines": { "node": ">=0.4.0" } }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -7524,9 +7533,9 @@ } }, "node_modules/aes-js": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", - "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" }, "node_modules/agent-base": { "version": "6.0.2", @@ -7565,13 +7574,13 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { @@ -7579,6 +7588,14 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -7589,15 +7606,6 @@ "node": ">=0.4.2" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "peer": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -7679,6 +7687,25 @@ "node": ">= 8" } }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -7709,15 +7736,12 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7764,55 +7788,17 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", - "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -7857,43 +7843,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { + "node_modules/array.prototype.tosorted": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", - "es-shim-unscopables": "^1.0.2" + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -7944,24 +7917,15 @@ } }, "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/async-eventemitter": { "version": "0.2.4", @@ -7992,11 +7956,6 @@ "tslib": "^2.0.0" } }, - "node_modules/async-mutex/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/asynciterator.prototype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", @@ -8028,12 +7987,9 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "engines": { "node": ">= 0.4" }, @@ -8055,20 +8011,20 @@ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" }, "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz", + "integrity": "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.0", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -8083,9 +8039,9 @@ } }, "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" }, "node_modules/babel-loader": { "version": "8.3.0", @@ -8105,33 +8061,94 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/babel-loader/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" + "node_modules/babel-loader/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/babel-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "node_modules/babel-loader/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/babel-loader/node_modules/schema-utils": { "version": "2.7.1", @@ -8150,17 +8167,25 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/babel-loader/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.5.0", - "semver": "^6.3.1" + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { @@ -8172,43 +8197,48 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", - "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" }, "peerDependencies": { "styled-components": ">= 2" } }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, "node_modules/backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", @@ -8225,39 +8255,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bare-events": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", - "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", - "optional": true - }, - "node_modules/bare-fs": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.1.tgz", - "integrity": "sha512-+CjmZANQDFZWy4PGbVdmALIwmt33aJg8qTkVjClU6X4WmZkTPBDxRHiBn7fpqEWEfF3AC2io++erpViAIQbSjg==", - "optional": true, - "dependencies": { - "bare-events": "^2.0.0", - "bare-os": "^2.0.0", - "bare-path": "^2.0.0", - "streamx": "^2.13.0" - } - }, - "node_modules/bare-os": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz", - "integrity": "sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==", - "optional": true - }, - "node_modules/bare-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", - "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", - "optional": true, - "dependencies": { - "bare-os": "^2.1.0" - } - }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -8323,6 +8320,27 @@ "node": ">= 10.0.0" } }, + "node_modules/bigint-crypto-utils": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz", + "integrity": "sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw==", + "peer": true, + "dependencies": { + "bigint-mod-arith": "^3.1.0" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/bigint-mod-arith": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz", + "integrity": "sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ==", + "peer": true, + "engines": { + "node": ">=10.4.0" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -8407,28 +8425,6 @@ "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "peer": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8454,6 +8450,18 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, + "node_modules/browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "peer": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -8474,9 +8482,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "funding": [ { "type": "opencollective", @@ -8492,9 +8500,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -8625,28 +8633,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8708,9 +8702,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001593", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz", - "integrity": "sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==", + "version": "1.0.30001559", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz", + "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==", "funding": [ { "type": "opencollective", @@ -8731,6 +8725,15 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, + "node_modules/catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/cbor": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", @@ -8744,18 +8747,18 @@ } }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "peer": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.0.5" }, "engines": { "node": ">=4" @@ -8798,13 +8801,10 @@ } }, "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "peer": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, "engines": { "node": "*" } @@ -8818,9 +8818,15 @@ } }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8833,9 +8839,6 @@ "engines": { "node": ">= 8.10.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -8881,13 +8884,30 @@ } }, "node_modules/citty": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.5.tgz", + "integrity": "sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==", "dependencies": { "consola": "^3.2.3" } }, + "node_modules/classic-level": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz", + "integrity": "sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -8911,18 +8931,6 @@ "webpack": ">=4.0.0 <6.0.0" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -8948,197 +8956,73 @@ "node": ">=4" } }, - "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/cli-table3/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "peer": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-table3/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "peer": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/clipboardy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", - "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", - "dependencies": { - "execa": "^8.0.1", - "is-wsl": "^3.1.0", - "is64bit": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/clipboardy/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/clipboardy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "peer": true, "dependencies": { - "mimic-fn": "^4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/clipboardy/node_modules/path-key": { + "node_modules/cli-table3/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "engines": { - "node": ">=12" + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "peer": true, + "dependencies": { + "ansi-regex": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, - "node_modules/clipboardy/node_modules/strip-final-newline": { + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clipboardy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, "node_modules/clone": { @@ -9394,15 +9278,10 @@ "typedarray": "^0.0.6" } }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9477,9 +9356,9 @@ } }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { "version": "0.4.2", @@ -9509,9 +9388,9 @@ } }, "node_modules/core-js": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", - "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.2.tgz", + "integrity": "sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -9519,11 +9398,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", - "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", "dependencies": { - "browserslist": "^4.22.3" + "browserslist": "^4.22.1" }, "funding": { "type": "opencollective", @@ -9531,51 +9410,20 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", - "dev": true, - "dependencies": { - "jiti": "^1.19.1" + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "peer": true, + "bin": { + "crc32": "bin/crc32.njs" }, "engines": { - "node": ">=v16" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=8.2", - "typescript": ">=4" + "node": ">=0.8" } }, "node_modules/create-hash": { @@ -9630,19 +9478,6 @@ "node": ">= 8" } }, - "node_modules/crossws": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.2.4.tgz", - "integrity": "sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==", - "peerDependencies": { - "uWebSockets.js": "*" - }, - "peerDependenciesMeta": { - "uWebSockets.js": { - "optional": true - } - } - }, "node_modules/crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", @@ -9669,9 +9504,9 @@ } }, "node_modules/css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", @@ -9737,15 +9572,11 @@ } }, "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "peer": true, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { @@ -9764,15 +9595,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -9846,19 +9668,16 @@ } }, "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -9878,9 +9697,9 @@ } }, "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz", + "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==" }, "node_modules/del": { "version": "4.1.1", @@ -9910,25 +9729,6 @@ "node": ">=0.10.0" } }, - "node_modules/del/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/del/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -9960,14 +9760,6 @@ "node": ">=6" } }, - "node_modules/del/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/del/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -10025,9 +9817,9 @@ } }, "node_modules/destr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", - "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.2.tgz", + "integrity": "sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==" }, "node_modules/detect-browser": { "version": "5.2.0", @@ -10042,6 +9834,20 @@ "node": ">=8" } }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "peer": true, + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -10064,9 +9870,9 @@ } }, "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz", + "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==" }, "node_modules/dir-glob": { "version": "3.0.1", @@ -10097,9 +9903,9 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "node_modules/dom7": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.6.tgz", - "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.4.tgz", + "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==", "dependencies": { "ssr-window": "^4.0.0" } @@ -10127,11 +9933,6 @@ "stream-shift": "^1.0.0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -10141,11 +9942,6 @@ "safer-buffer": "^2.1.0" } }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/ejs": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", @@ -10161,9 +9957,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.692", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.692.tgz", - "integrity": "sha512-d5rZRka9n2Y3MkWRN74IoAsxR0HK3yaAt7T50e3iT9VZmCCQDT3geXUO5ZRMhDToa1pkCeQXuNo+0g+NfDOVPA==" + "version": "1.4.572", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.572.tgz", + "integrity": "sha512-RlFobl4D3ieetbnR+2EpxdzFl9h0RAJkPK3pfiwMug2nhBin2ZCsGIAJWdpNniLz43sgXam/CgipOmvTA+rUiA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -10185,9 +9981,9 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -10211,9 +10007,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", - "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -10223,29 +10019,17 @@ } }, "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "peer": true, "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" + "ansi-colors": "^4.1.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -10276,51 +10060,49 @@ } }, "node_modules/es-abstract": { - "version": "1.22.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", - "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "hasown": "^2.0.1", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.3", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", - "safe-regex-test": "^1.0.3", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -10329,71 +10111,42 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/es-iterator-helpers": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz", - "integrity": "sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", "dev": true, "dependencies": { "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.7", + "call-bind": "^1.0.2", "define-properties": "^1.2.1", - "es-abstract": "^1.22.4", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.2", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", + "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", + "internal-slot": "^1.0.5", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" + "safe-array-concat": "^1.0.1" } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", + "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", "peer": true }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -10438,9 +10191,9 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { "node": ">=6" } @@ -10526,6 +10279,19 @@ "node": ">= 0.8.0" } }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -10539,16 +10305,16 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -10594,12 +10360,12 @@ } }, "node_modules/eslint-config-next": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.1.2.tgz", - "integrity": "sha512-g46mlgWmHoWhHuDbaQS8PLNQtBkVkiQMnVLhFcqnPSXN2I+R4Obom3ihCIQuNLbjVUgiFFHqmEwwtDuWv1wYKA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.1.tgz", + "integrity": "sha512-QfIFK2WD39H4WOespjgf6PLv9Bpsd7KGGelCtmq4l67nGvnlsGpuvj0hIT+aIy6p5gKH+lAChYILsyDlxP52yg==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "14.1.2", + "@next/eslint-plugin-next": "14.0.1", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", "eslint-import-resolver-node": "^0.3.6", @@ -10620,9 +10386,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -10677,9 +10443,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -10703,9 +10469,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "dependencies": { "array-includes": "^3.1.7", @@ -10724,7 +10490,7 @@ "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -10764,27 +10530,27 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" }, "engines": { "node": ">=4.0" @@ -10793,30 +10559,43 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-react": { - "version": "7.34.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.0.tgz", - "integrity": "sha512-MeVXdReleBTdkz/bvcQMSnCXGi+c9kvy51IpinjnJgutl3YTHWsDdke7Z1ufZpGfDG8xduBDKyjtB9JH1eBKIQ==", + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", + "resolve": "^2.0.0-next.4", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" + "string.prototype.matchall": "^4.0.8" }, "engines": { "node": ">=4" @@ -10850,12 +10629,12 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10903,28 +10682,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -11000,17 +10757,24 @@ } }, "node_modules/eth-block-tracker": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz", - "integrity": "sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "@metamask/utils": "^3.0.1", + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0" - }, + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "node_modules/eth-block-tracker/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "engines": { - "node": ">=14.0.0" + "node": ">=4" } }, "node_modules/eth-gas-reporter": { @@ -11042,76 +10806,17 @@ } } }, - "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true - }, - "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", - "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "@noble/hashes": "~1.2.0", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/@scure/bip39": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", - "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "peer": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, "node_modules/eth-json-rpc-filters": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-5.1.0.tgz", - "integrity": "sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", + "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", "dependencies": { "@metamask/safe-event-emitter": "^2.0.0", "async-mutex": "^0.2.6", + "eth-json-rpc-middleware": "^6.0.0", "eth-query": "^2.1.2", "json-rpc-engine": "^6.1.0", "pify": "^5.0.0" - }, - "engines": { - "node": ">=14.0.0" } }, "node_modules/eth-json-rpc-filters/node_modules/pify": { @@ -11172,11 +10877,6 @@ "safe-event-emitter": "^1.0.1" } }, - "node_modules/eth-json-rpc-middleware/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, "node_modules/eth-json-rpc-middleware/node_modules/eth-rpc-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", @@ -11185,20 +10885,6 @@ "fast-safe-stringify": "^2.0.6" } }, - "node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, "node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", @@ -11208,6 +10894,14 @@ "safe-event-emitter": "^1.0.1" } }, + "node_modules/eth-json-rpc-middleware/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, "node_modules/eth-query": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", @@ -11235,25 +10929,6 @@ "ethereumjs-util": "^5.1.1" } }, - "node_modules/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eth-sig-util/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, "node_modules/ethereum-bloom-filters": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", @@ -11269,25 +10944,15 @@ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" }, "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz", + "integrity": "sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ==", + "peer": true, "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" + "@noble/hashes": "1.1.2", + "@noble/secp256k1": "1.6.3", + "@scure/bip32": "1.1.0", + "@scure/bip39": "1.1.0" } }, "node_modules/ethereumjs-abi": { @@ -11312,6 +10977,28 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, + "node_modules/ethereumjs-abi/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", @@ -11336,25 +11023,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/ethereumjs-account/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-account/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, "node_modules/ethereumjs-block": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", @@ -11376,25 +11044,6 @@ "lodash": "^4.17.14" } }, - "node_modules/ethereumjs-block/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-block/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, "node_modules/ethereumjs-common": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", @@ -11411,17 +11060,12 @@ "ethereumjs-util": "^5.0.0" } }, - "node_modules/ethereumjs-tx/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, "node_modules/ethereumjs-tx/node_modules/ethereum-common": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ==" }, - "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": { + "node_modules/ethereumjs-util": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", @@ -11435,20 +11079,31 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "peer": true, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, "node_modules/ethereumjs-vm": { @@ -11491,6 +11146,28 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, + "node_modules/ethereumjs-vm/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", @@ -11622,6 +11299,15 @@ "npm": ">=3" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -11648,7 +11334,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -11720,9 +11405,9 @@ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -11774,9 +11459,9 @@ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dependencies": { "reusify": "^1.0.4" } @@ -11880,22 +11565,6 @@ "node": ">=0.10.0" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", @@ -11933,13 +11602,12 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", + "flatted": "^3.1.0", "rimraf": "^3.0.2" }, "engines": { @@ -11947,15 +11615,15 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", @@ -11979,32 +11647,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -12033,10 +11675,12 @@ "peer": true }, "node_modules/framer-motion": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-9.1.7.tgz", - "integrity": "sha512-nKxBkIO4IPkMEqcBbbATxsVjwPYShKl051yhBv9628iAH6JLeHD0siBHxkL62oQzMC1+GNX73XtPjgP753ufuw==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-9.0.2.tgz", + "integrity": "sha512-n7ZdIUBrT1xklowQNRQ6/h54+3ysmz422CP0rrhjE1X2tshiJy0WWQ7tv6y/fcOSQd23htNA9vvbUFLYMQ5lEQ==", "dependencies": { + "@motionone/dom": "^10.15.3", + "hey-listen": "^1.0.8", "tslib": "^2.4.0" }, "optionalDependencies": { @@ -12047,10 +11691,20 @@ "react-dom": "^18.0.0" } }, - "node_modules/framer-motion/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true }, "node_modules/fs-constants": { "version": "1.0.0", @@ -12058,12 +11712,12 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "peer": true, "dependencies": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" }, @@ -12159,19 +11813,15 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12191,15 +11841,14 @@ } }, "node_modules/get-port-please": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", - "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.1.tgz", + "integrity": "sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA==" }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, "engines": { "node": ">=10" }, @@ -12208,13 +11857,12 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -12389,6 +12037,15 @@ "readable-stream": "^3.0.0" } }, + "node_modules/git-raw-commits/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, "node_modules/git-raw-commits/node_modules/type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", @@ -12401,27 +12058,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/git-raw-commits/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12445,28 +12109,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "peer": true }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -12527,9 +12169,9 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -12556,22 +12198,22 @@ } }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "peer": true, "dependencies": { + "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", "slash": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/gopd": { @@ -12586,9 +12228,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -12597,35 +12239,33 @@ "dev": true }, "node_modules/gsap": { - "version": "3.12.5", - "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.12.5.tgz", - "integrity": "sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==" + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.11.4.tgz", + "integrity": "sha512-McHhEguHyExMMnjqKA8G+7TvxmlKQGMbjgwAilnFe1e4id7V/tFveRQ2YMZhTYu0oxHGWvbPltdVYQOu3z1SCA==" }, "node_modules/h3": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.11.1.tgz", - "integrity": "sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.9.0.tgz", + "integrity": "sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA==", "dependencies": { "cookie-es": "^1.0.0", - "crossws": "^0.2.2", - "defu": "^6.1.4", - "destr": "^2.0.3", + "defu": "^6.1.3", + "destr": "^2.0.2", "iron-webcrypto": "^1.0.0", - "ohash": "^1.1.3", "radix3": "^1.1.0", - "ufo": "^1.4.0", + "ufo": "^1.3.2", "uncrypto": "^0.1.3", - "unenv": "^1.9.0" + "unenv": "^1.7.4" } }, "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "peer": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.2", + "neo-async": "^2.6.0", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -12639,15 +12279,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -12669,26 +12300,6 @@ "node": ">=6" } }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/har-validator/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -12699,25 +12310,31 @@ } }, "node_modules/hardhat": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.21.0.tgz", - "integrity": "sha512-8DlJAVJDEVHaV1sh9FLuKLLgCFv9EAJ+M+8IbjSIPgoeNo3ss5L1HgGBMfnI88c7OzMEZkdcuyGoobFeK3Orqw==", + "version": "2.12.5", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.12.5.tgz", + "integrity": "sha512-f/t7+hLlhsnQZ6LDXyV+8rHGRZFZY1sgFvgrwr9fBjMdGp1Bu6hHq1KXS4/VFZfZcVdL1DAWWEkryinZhqce+A==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.2.0", - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/ethereumjs-block": "^4.0.0", + "@nomicfoundation/ethereumjs-blockchain": "^6.0.0", + "@nomicfoundation/ethereumjs-common": "^3.0.0", + "@nomicfoundation/ethereumjs-evm": "^1.0.0", + "@nomicfoundation/ethereumjs-rlp": "^4.0.0", + "@nomicfoundation/ethereumjs-statemanager": "^1.0.0", + "@nomicfoundation/ethereumjs-trie": "^5.0.0", + "@nomicfoundation/ethereumjs-tx": "^4.0.0", + "@nomicfoundation/ethereumjs-util": "^8.0.0", + "@nomicfoundation/ethereumjs-vm": "^6.0.0", "@nomicfoundation/solidity-analyzer": "^0.1.0", "@sentry/node": "^5.18.1", "@types/bn.js": "^5.1.0", "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", "adm-zip": "^0.4.16", "aggregate-error": "^3.0.0", "ansi-escapes": "^4.3.0", - "boxen": "^5.1.2", "chalk": "^2.4.2", "chokidar": "^3.4.0", "ci-info": "^2.0.0", @@ -12737,6 +12354,7 @@ "mnemonist": "^0.38.0", "mocha": "^10.0.0", "p-map": "^4.0.0", + "qs": "^6.7.0", "raw-body": "^2.4.1", "resolve": "1.17.0", "semver": "^6.3.0", @@ -12744,12 +12362,15 @@ "source-map-support": "^0.5.13", "stacktrace-parser": "^0.1.10", "tsort": "0.0.1", - "undici": "^5.14.0", + "undici": "^5.4.0", "uuid": "^8.3.2", "ws": "^7.4.6" }, "bin": { - "hardhat": "internal/cli/bootstrap.js" + "hardhat": "internal/cli/cli.js" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || ^18.0.0" }, "peerDependencies": { "ts-node": "*", @@ -12761,66 +12382,21 @@ }, "typescript": { "optional": true - } - } - }, - "node_modules/hardhat-gas-reporter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", - "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", - "peer": true, - "dependencies": { - "array-uniq": "1.0.3", - "eth-gas-reporter": "^0.2.25", - "sha1": "^1.1.1" - }, - "peerDependencies": { - "hardhat": "^2.0.2" - } - }, - "node_modules/hardhat/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true - }, - "node_modules/hardhat/node_modules/@scure/bip32": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", - "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "@noble/hashes": "~1.2.0", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0" + } } }, - "node_modules/hardhat/node_modules/@scure/bip39": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", - "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/hardhat-gas-reporter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", + "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", "peer": true, "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" } }, "node_modules/hardhat/node_modules/ansi-styles": { @@ -12873,18 +12449,6 @@ "node": ">=0.8.0" } }, - "node_modules/hardhat/node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "peer": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, "node_modules/hardhat/node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -12897,6 +12461,20 @@ "node": ">=4" } }, + "node_modules/hardhat/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/hardhat/node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -13023,6 +12601,18 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -13040,20 +12630,20 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dependencies": { - "es-define-property": "^1.0.0" + "get-intrinsic": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "engines": { "node": ">= 0.4" }, @@ -13073,11 +12663,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dependencies": { - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -13109,9 +12699,9 @@ } }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dependencies": { "function-bind": "^1.1.2" }, @@ -13157,11 +12747,6 @@ "react-is": "^16.7.0" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -13174,24 +12759,6 @@ "node": ">=10" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", @@ -13287,7 +12854,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, "engines": { "node": ">=10.17.0" } @@ -13301,9 +12867,9 @@ } }, "node_modules/i18next": { - "version": "23.10.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.10.0.tgz", - "integrity": "sha512-/TgHOqsa7/9abUKJjdPeydoyDc0oTi/7u9F8lMSj6ufg4cbC1Oj3f/Jja7zj7WRIhEQKB7Q4eN6y68I9RDxxGQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.6.0.tgz", + "integrity": "sha512-z0Cxr0MGkt+kli306WS4nNNM++9cgt2b2VCMprY92j+AIab/oclgPxdwtTZVLP1zn5t5uo8M6uLsZmYrcjr3HA==", "funding": [ { "type": "individual", @@ -13320,13 +12886,13 @@ ], "peer": true, "dependencies": { - "@babel/runtime": "^7.23.2" + "@babel/runtime": "^7.22.5" } }, "node_modules/i18next-fs-backend": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.3.1.tgz", - "integrity": "sha512-tvfXskmG/9o+TJ5Fxu54sSO5OkY6d+uMn+K6JiUGLJrwxAVfer+8V3nU8jq3ts9Pe5lXJv4b1N7foIjJ8Iy2Gg==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/i18next-fs-backend/-/i18next-fs-backend-2.2.0.tgz", + "integrity": "sha512-VOPHhdDX0M/csRqEw+9Ectpf6wvTIg1MZDfAHxc3JKnAlJz7fcZSAKAeyDohOq0xuLx57esYpJopIvBaRb0Bag==" }, "node_modules/iconv-lite": { "version": "0.4.24", @@ -13370,9 +12936,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "engines": { "node": ">= 4" } @@ -13396,9 +12962,9 @@ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" }, "node_modules/immutable": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -13416,15 +12982,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -13462,11 +13019,11 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dependencies": { - "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -13515,18 +13072,6 @@ "url": "https://opencollective.com/ioredis" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/iron-webcrypto": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz", @@ -13551,15 +13096,13 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13660,14 +13203,14 @@ } }, "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "bin": { "is-docker": "cli.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13702,11 +13245,11 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/is-function": { @@ -13748,23 +13291,6 @@ "npm": ">=3" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -13780,9 +13306,9 @@ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "engines": { "node": ">= 0.4" }, @@ -13902,14 +13428,11 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13967,11 +13490,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -14031,37 +13554,20 @@ } }, "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is64bit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", - "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dependencies": { - "system-architecture": "^0.1.0" + "is-docker": "^2.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/isexe": { "version": "2.0.0", @@ -14077,15 +13583,6 @@ "whatwg-fetch": "^3.4.1" } }, - "node_modules/isomorphic-unfetch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", - "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", - "dependencies": { - "node-fetch": "^2.6.1", - "unfetch": "^4.2.0" - } - }, "node_modules/isomorphic-ws": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", @@ -14112,23 +13609,6 @@ "set-function-name": "^2.0.1" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jake": { "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", @@ -14146,11 +13626,6 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" - }, "node_modules/jayson": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", @@ -14217,21 +13692,16 @@ } }, "node_modules/jimp": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.12.tgz", - "integrity": "sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==", + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.10.tgz", + "integrity": "sha512-lCaHIJAgTOsplyJzC1w/laxSxrbSsEBw4byKwXgUdMmh+ayPsnidTblenQm+IvhIs44Gcuvlb6pd2LQ0wcKaKg==", "dependencies": { - "@jimp/custom": "^0.22.12", - "@jimp/plugins": "^0.22.12", - "@jimp/types": "^0.22.12", + "@jimp/custom": "^0.22.10", + "@jimp/plugins": "^0.22.10", + "@jimp/types": "^0.22.10", "regenerator-runtime": "^0.13.3" } }, - "node_modules/jimp/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -14267,9 +13737,9 @@ } }, "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -14282,12 +13752,6 @@ "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -14316,22 +13780,16 @@ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", - "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", "dependencies": { - "call-bind": "^1.0.5", - "isarray": "^2.0.5", - "jsonify": "^0.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "jsonify": "^0.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14349,20 +13807,21 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, "bin": { "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" } }, "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" }, "node_modules/jsonfile": { "version": "4.0.0", @@ -14436,24 +13895,22 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" }, "engines": { "node": ">=4.0" } }, "node_modules/keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", "hasInstallScript": true, "dependencies": { "node-addon-api": "^2.0.0", @@ -14464,15 +13921,6 @@ "node": ">=10.0.0" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, "node_modules/keyvaluestorage-interface": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", @@ -14502,15 +13950,29 @@ "dev": true }, "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "dependencies": { - "language-subtag-registry": "^0.3.20" + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/level": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "peer": true, + "dependencies": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" }, "engines": { - "node": ">=0.10" + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" } }, "node_modules/level-codec": { @@ -14558,6 +14020,28 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" }, + "node_modules/level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "peer": true, + "dependencies": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/level-ws": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", @@ -14654,27 +14138,26 @@ "dev": true }, "node_modules/listhen": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.7.2.tgz", - "integrity": "sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==", - "dependencies": { - "@parcel/watcher": "^2.4.1", - "@parcel/watcher-wasm": "^2.4.1", - "citty": "^0.1.6", - "clipboardy": "^4.0.0", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.5.5.tgz", + "integrity": "sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA==", + "dependencies": { + "@parcel/watcher": "^2.3.0", + "@parcel/watcher-wasm": "2.3.0", + "citty": "^0.1.4", + "clipboardy": "^3.0.0", "consola": "^3.2.3", - "crossws": "^0.2.0", - "defu": "^6.1.4", - "get-port-please": "^3.1.2", - "h3": "^1.10.2", + "defu": "^6.1.2", + "get-port-please": "^3.1.1", + "h3": "^1.8.1", "http-shutdown": "^1.2.2", - "jiti": "^1.21.0", - "mlly": "^1.6.1", + "jiti": "^1.20.0", + "mlly": "^1.4.2", "node-forge": "^1.3.1", - "pathe": "^1.1.2", - "std-env": "^3.7.0", - "ufo": "^1.4.0", - "untun": "^0.1.3", + "pathe": "^1.1.1", + "std-env": "^3.4.3", + "ufo": "^1.3.0", + "untun": "^0.1.2", "uqr": "^0.1.2" }, "bin": { @@ -14683,13 +14166,13 @@ } }, "node_modules/lit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", - "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", "dependencies": { - "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.3.0", - "lit-html": "^2.8.0" + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" } }, "node_modules/lit-element": { @@ -14710,6 +14193,32 @@ "@types/trusted-types": "^2.0.2" } }, + "node_modules/lit/node_modules/@lit/reactive-element": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.2.tgz", + "integrity": "sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.2" + } + }, + "node_modules/lit/node_modules/lit-element": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.2.tgz", + "integrity": "sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.2", + "@lit/reactive-element": "^2.0.0", + "lit-html": "^3.1.0" + } + }, + "node_modules/lit/node_modules/lit-html": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.0.tgz", + "integrity": "sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", @@ -14747,6 +14256,17 @@ "node": ">=8.9.0" } }, + "node_modules/loader-utils/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -14889,12 +14409,12 @@ } }, "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "peer": true, "dependencies": { - "get-func-name": "^2.0.1" + "get-func-name": "^2.0.0" } }, "node_modules/lru_map": { @@ -14904,11 +14424,14 @@ "peer": true }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/ltgt": { @@ -14917,36 +14440,11 @@ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" }, "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "sourcemap-codec": "^1.4.8" } }, "node_modules/make-error": { @@ -14973,6 +14471,15 @@ "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "peer": true }, + "node_modules/mcl-wasm": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "peer": true, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -15009,6 +14516,20 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/memory-level": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", + "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "peer": true, + "dependencies": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -15064,29 +14585,10 @@ "semaphore": ">=1.0.1" } }, - "node_modules/merkle-patricia-tree/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/merkle-patricia-tree/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "node_modules/merkle-patricia-tree/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" }, "node_modules/merkle-patricia-tree/node_modules/readable-stream": { "version": "2.3.8", @@ -15115,12 +14617,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", - "peer": true - }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -15167,7 +14663,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -15222,9 +14717,9 @@ } }, "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15252,21 +14747,13 @@ "node": ">=0.10.0" } }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "peer": true, "dependencies": { - "minimist": "^1.2.6" + "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" @@ -15278,14 +14765,14 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/mlly": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz", - "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", "dependencies": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", + "acorn": "^8.10.0", + "pathe": "^1.1.1", "pkg-types": "^1.0.3", - "ufo": "^1.3.2" + "ufo": "^1.3.0" } }, "node_modules/mnemonist": { @@ -15298,9 +14785,9 @@ } }, "node_modules/mocha": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", - "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "peer": true, "dependencies": { "ansi-colors": "4.1.1", @@ -15310,12 +14797,13 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "8.1.0", + "glob": "7.2.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -15330,6 +14818,10 @@ }, "engines": { "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/ansi-colors": { @@ -15341,42 +14833,6 @@ "node": ">=6" } }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -15389,34 +14845,35 @@ } }, "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 6" + "node": "*" } }, "node_modules/mocha/node_modules/minimatch": { @@ -15431,12 +14888,33 @@ "node": ">=10" } }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "peer": true }, + "node_modules/mocha/node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -15452,6 +14930,32 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/mocha/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -15470,18 +14974,36 @@ "node": ">=10" } }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "engines": { "node": "*" } }, "node_modules/moment-timezone": { - "version": "0.5.45", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", - "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", + "version": "0.5.43", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", + "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", "dependencies": { "moment": "^2.29.4" }, @@ -15490,9 +15012,9 @@ } }, "node_modules/mongodb": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", - "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.1.tgz", + "integrity": "sha512-NBGA8AfJxGPeB12F73xXwozt8ZpeIPmCUeWRwl9xejozTXFes/3zaep9zhzs1B/nKKsw4P3I4iPfXl3K7s6g+Q==", "dependencies": { "bson": "^5.5.0", "mongodb-connection-string-url": "^2.6.0", @@ -15538,17 +15060,35 @@ "whatwg-url": "^11.0.0" } }, - "node_modules/motion": { - "version": "10.16.2", - "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", - "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dependencies": { - "@motionone/animation": "^10.15.1", - "@motionone/dom": "^10.16.2", - "@motionone/svelte": "^10.16.2", - "@motionone/types": "^10.15.1", - "@motionone/utils": "^10.15.1", - "@motionone/vue": "^10.16.2" + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/mri": { @@ -15591,6 +15131,12 @@ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, + "node_modules/napi-macros": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", + "peer": true + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -15664,9 +15210,9 @@ } }, "node_modules/next-i18next": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/next-i18next/-/next-i18next-15.2.0.tgz", - "integrity": "sha512-Rl5yZ4oGffsB0AjRykZ5PzNQ2M6am54MaMayldGmH/UKZisrIxk2SKEPJvaHhKlWe1qgdNi2FkodwK8sEjfEmg==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/next-i18next/-/next-i18next-15.0.0.tgz", + "integrity": "sha512-9iGEU4dt1YCC5CXh6H8YHmDpmeWKjxES6XfoABxy9mmfaLLJcqS92F56ZKmVuZUPXEOLtgY/JtsnxsHYom9J4g==", "funding": [ { "type": "individual", @@ -15686,16 +15232,16 @@ "@types/hoist-non-react-statics": "^3.3.4", "core-js": "^3", "hoist-non-react-statics": "^3.3.2", - "i18next-fs-backend": "^2.3.1" + "i18next-fs-backend": "^2.2.0" }, "engines": { "node": ">=14" }, "peerDependencies": { - "i18next": ">= 23.7.13", + "i18next": "^23.6.0", "next": ">= 12.0.0", "react": ">= 17.0.2", - "react-i18next": ">= 13.5.0" + "react-i18next": "^13.3.1" } }, "node_modules/next-pwa": { @@ -15714,10 +15260,29 @@ "next": ">=9.0.0" } }, + "node_modules/next-pwa/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/node-abi": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", + "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", "dependencies": { "semver": "^7.3.5" }, @@ -15759,28 +15324,9 @@ } }, "node_modules/node-fetch-native": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.2.tgz", - "integrity": "sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==" - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz", + "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==" }, "node_modules/node-forge": { "version": "1.3.1", @@ -15791,9 +15337,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -15801,14 +15347,14 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/nodemailer": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.11.tgz", - "integrity": "sha512-UiAkgiERuG94kl/3bKfE8o10epvDnl0vokNEtZDPTq9BWzIl6EFT9336SbIT4oaTBD8NmmUTLsQyXHV82eXSWg==", + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.8.tgz", + "integrity": "sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==", "engines": { "node": ">=6.0.0" } @@ -15861,7 +15407,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -15922,12 +15467,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -15970,16 +15515,15 @@ } }, "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, "node_modules/object.hasown": { @@ -16028,11 +15572,6 @@ "ufo": "^1.3.0" } }, - "node_modules/ohash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", - "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==" - }, "node_modules/omggif": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", @@ -16055,7 +15594,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -16186,12 +15724,12 @@ "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" }, "node_modules/parse-bmfont-xml": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", - "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", "dependencies": { "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.5.0" + "xml2js": "^0.4.5" } }, "node_modules/parse-cache-control": { @@ -16205,24 +15743,6 @@ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -16257,29 +15777,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -16289,9 +15786,9 @@ } }, "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==" }, "node_modules/pathval": { "version": "1.1.1", @@ -16337,8 +15834,7 @@ "node_modules/phin": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -16357,11 +15853,11 @@ } }, "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/pinkie": { @@ -16429,73 +15925,6 @@ "pixelmatch": "bin/pixelmatch" } }, - "node_modules/pixelmatch/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-types": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", @@ -16507,19 +15936,11 @@ } }, "node_modules/pngjs": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", - "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", "engines": { - "node": ">= 0.4" + "node": ">=4.0.0" } }, "node_modules/postcss": { @@ -16632,9 +16053,9 @@ } }, "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -16656,32 +16077,6 @@ "node": ">=10" } }, - "node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/prebuild-install/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", @@ -16700,9 +16095,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "bin": { "prettier": "bin/prettier.cjs" }, @@ -16773,11 +16168,6 @@ "react-is": "^16.13.1" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/proxy-compare": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", @@ -16814,9 +16204,9 @@ } }, "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "engines": { "node": ">=6" } @@ -16849,17 +16239,6 @@ "node": ">=6" } }, - "node_modules/qrcode/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/qrcode/node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -16891,35 +16270,14 @@ "node": ">=6" } }, - "node_modules/qrcode/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/qrcode/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/qrcode/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/qrcode/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" + "node_modules/qrcode/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "node_modules/qrcode/node_modules/emoji-regex": { @@ -16938,13 +16296,10 @@ "node": ">=6" } }, - "node_modules/qrcode/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "engines": { - "node": ">=4" - } + "node_modules/qrcode/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/qrcode/node_modules/locate-path": { "version": "3.0.0", @@ -16991,14 +16346,6 @@ "node": ">=4" } }, - "node_modules/qrcode/node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/qrcode/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -17023,24 +16370,6 @@ "node": ">=6" } }, - "node_modules/qrcode/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/qrcode/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, "node_modules/qrcode/node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", @@ -17068,9 +16397,9 @@ } }, "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { "side-channel": "^1.0.4" }, @@ -17082,11 +16411,12 @@ } }, "node_modules/query-string": { - "version": "6.13.5", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz", - "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", "dependencies": { - "decode-uri-component": "^0.2.0", + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" }, @@ -17149,9 +16479,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "peer": true, "dependencies": { "bytes": "3.1.2", @@ -17163,6 +16493,15 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -17218,12 +16557,12 @@ } }, "node_modules/react-i18next": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.0.5.tgz", - "integrity": "sha512-5+bQSeEtgJrMBABBL5lO7jPdSNAbeAZ+MlFWDw//7FnVacuVu3l9EeWFzBQvZsKy+cihkbThWOAThEdH8YjGEw==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.3.1.tgz", + "integrity": "sha512-JAtYREK879JXaN9GdzfBI4yJeo/XyLeXWUsRABvYXiFUakhZJ40l+kaTo+i+A/3cKIED41kS/HAbZ5BzFtq/Og==", "peer": true, "dependencies": { - "@babel/runtime": "^7.23.9", + "@babel/runtime": "^7.22.5", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { @@ -17240,23 +16579,22 @@ } }, "node_modules/react-icons": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", - "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", + "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==", "peerDependencies": { "react": "*" } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "peer": true + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-scroll": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.0.tgz", - "integrity": "sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==", + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.8.8.tgz", + "integrity": "sha512-RnU0wLaLozKIhLNAfoz6yxMus+PMypk7eBRfOitalYd2+qCiHrZdJ0MSDBs1Y23IFSfqSCdCEmENMJeSh0KoHA==", "dependencies": { "lodash.throttle": "^4.1.1", "prop-types": "^15.7.2" @@ -17377,6 +16715,24 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/read-pkg/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -17396,9 +16752,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17508,16 +16864,15 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz", - "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0", - "get-intrinsic": "^1.2.3", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -17545,9 +16900,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -17558,14 +16913,13 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -17741,12 +17095,12 @@ } }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/resolve-global": { @@ -17794,26 +17148,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -17912,9 +17246,9 @@ } }, "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", "engines": { "node": ">=10.0.0" }, @@ -17953,6 +17287,29 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/rustbn.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", @@ -17969,13 +17326,18 @@ "npm": ">=2.0.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -17986,6 +17348,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -18015,17 +17382,14 @@ } }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", "is-regex": "^1.1.4" }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -18044,9 +17408,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.71.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", - "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -18056,7 +17420,7 @@ "sass": "sass.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" } }, "node_modules/sax": { @@ -18098,6 +17462,12 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/sc-istanbul/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "peer": true + }, "node_modules/sc-istanbul/node_modules/glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", @@ -18155,12 +17525,6 @@ "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", "peer": true }, - "node_modules/sc-istanbul/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "peer": true - }, "node_modules/sc-istanbul/node_modules/supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -18210,34 +17574,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", @@ -18266,9 +17602,9 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -18279,22 +17615,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -18310,30 +17630,27 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", "dependencies": { - "define-data-property": "^1.1.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", + "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" + "has-property-descriptors": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -18415,6 +17732,26 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" }, + "node_modules/sharp/node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/sharp/node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -18437,52 +17774,28 @@ "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "peer": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shelljs/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" }, - "engines": { - "node": "*" + "bin": { + "shjs": "bin/shjs" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=4" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -18491,8 +17804,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-concat": { "version": "1.0.1", @@ -18558,23 +17870,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -18585,18 +17880,23 @@ } }, "node_modules/socks": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", - "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dependencies": { - "ip-address": "^9.0.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.0.0", + "node": ">= 10.13.0", "npm": ">= 3.0.0" } }, + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, "node_modules/solc": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", @@ -18639,26 +17939,6 @@ "rimraf": "^2.2.8" } }, - "node_modules/solc/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/solc/node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", @@ -18690,15 +17970,16 @@ } }, "node_modules/solidity-coverage": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.10.tgz", - "integrity": "sha512-6nvlWLnCjBIVnCgTZiIo2XBI62O3YJuU83xj+bklnH/B+dXGTjuQB7SccZfysUC3LFkjtZO/KjzUJ/hiSlkXWw==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz", + "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.18.0", + "@solidity-parser/parser": "^0.16.0", "chalk": "^2.4.2", "death": "^1.1.0", + "detect-port": "^1.3.0", "difflib": "^0.2.4", "fs-extra": "^8.1.0", "ghost-testrpc": "^0.0.2", @@ -18706,7 +17987,7 @@ "globby": "^10.0.1", "jsonschema": "^1.2.4", "lodash": "^4.17.15", - "mocha": "^10.2.0", + "mocha": "10.2.0", "node-emoji": "^1.10.0", "pify": "^4.0.1", "recursive-readdir": "^2.2.2", @@ -18723,10 +18004,13 @@ } }, "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", - "peer": true + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", + "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "peer": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } }, "node_modules/solidity-coverage/node_modules/ansi-styles": { "version": "3.2.1", @@ -18778,59 +18062,6 @@ "node": ">=0.8.0" } }, - "node_modules/solidity-coverage/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/solidity-coverage/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/solidity-coverage/node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "peer": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/solidity-coverage/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -18840,15 +18071,6 @@ "node": ">=4" } }, - "node_modules/solidity-coverage/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/solidity-coverage/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -18875,16 +18097,11 @@ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", - "optional": true, - "peer": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, "node_modules/source-map-js": { @@ -18904,14 +18121,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -18949,9 +18158,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -18965,9 +18174,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/split-on-first": { @@ -18987,9 +18196,10 @@ } }, "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "peer": true }, "node_modules/sshpk": { "version": "1.18.0", @@ -19015,11 +18225,6 @@ "node": ">=0.10.0" } }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/sshpk/node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -19080,20 +18285,17 @@ } }, "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "version": "2.15.5", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", + "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" } }, "node_modules/strict-uri-encode": { @@ -19131,30 +18333,14 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, "node_modules/string.prototype.matchall": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", @@ -19248,18 +18434,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -19281,7 +18455,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, "engines": { "node": ">=6" } @@ -19338,9 +18511,10 @@ } }, "node_modules/styled-components": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz", - "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", + "hasInstallScript": true, "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -19366,19 +18540,6 @@ "react-is": ">= 16.8.0" } }, - "node_modules/styled-components/node_modules/@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/styled-components/node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, "node_modules/styled-components/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -19448,18 +18609,18 @@ } }, "node_modules/sweetalert2": { - "version": "11.10.5", - "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.5.tgz", - "integrity": "sha512-q9eE3EKhMcpIDU/Xcz7z5lk8axCGkgxwK47gXGrrfncnBJWxHPPHnBVAjfsVXcTt8Yi8U6HNEcBRSu+qGeyFdA==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.9.0.tgz", + "integrity": "sha512-PA3qinKZMNGAhA+AUu2wU7yQOpeZCgOaYWRcg26f4cZN6f7M9iPBuobsxOhR9EHs7ihUIxT6vhAMiB4kcmk1SA==", "funding": { "type": "individual", "url": "https://github.com/sponsors/limonte" } }, "node_modules/swiper": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.7.tgz", - "integrity": "sha512-VwO/KU3i9IV2Sf+W2NqyzwWob4yX9Qdedq6vBtS0rFqJ6Fa5iLUJwxQkuD4I38w0WDJwmFl8ojkdcRFPHWD+2g==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.4.5.tgz", + "integrity": "sha512-zveyEFBBv4q1sVkbJHnuH4xCtarKieavJ4SxP0QEHvdpPLJRuD7j/Xg38IVVLbp7Db6qrPsLUePvxohYx39Agw==", "funding": [ { "type": "patreon", @@ -19480,13 +18641,15 @@ } }, "node_modules/swr": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", - "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.3.tgz", + "integrity": "sha512-sGvQDok/AHEWTPfhUWXEHBVEXmgGnuahyhmRQbjl9XBYxT/MSlAzvXEKQpyM++bMPaI52vcWS2HiKNaW7+9OFw==", "dependencies": { - "client-only": "^0.0.1", "use-sync-external-store": "^1.2.0" }, + "engines": { + "pnpm": "7" + }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0" } @@ -19514,17 +18677,6 @@ "get-port": "^3.1.0" } }, - "node_modules/system-architecture": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", - "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/table": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", @@ -19571,7 +18723,64 @@ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "peer": true, "engines": { - "node": ">=8" + "node": ">=8" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/tapable": { @@ -19583,26 +18792,29 @@ } }, "node_modules/tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "tar-stream": "^2.1.4" } }, "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, "node_modules/temp-dir": { @@ -19642,9 +18854,9 @@ } }, "node_modules/terser": { - "version": "5.28.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", - "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -19659,15 +18871,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -19692,9 +18904,9 @@ } }, "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dependencies": { "randombytes": "^2.1.0" } @@ -19777,15 +18989,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/timm": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", @@ -19870,15 +19073,9 @@ } }, "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/trim-newlines": { "version": "3.0.1", @@ -19890,21 +19087,21 @@ } }, "node_modules/ts-api-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", - "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, "engines": { - "node": ">=16" + "node": ">=16.13.0" }, "peerDependencies": { "typescript": ">=4.2.0" } }, "node_modules/ts-command-line-args": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", - "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.3.1.tgz", + "integrity": "sha512-FR3y7pLl/fuUNSmnPhfLArGqRrpojQgIEEOVzYx9DhTmfIN7C9RWSfpkJEF4J+Gk7aVx5pak8I7vWZsaN4N84g==", "peer": true, "dependencies": { "chalk": "^4.1.0", @@ -19926,9 +19123,9 @@ } }, "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -19978,9 +19175,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -19989,22 +19186,10 @@ "strip-bom": "^3.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tsort": { "version": "0.0.1", @@ -20060,6 +19245,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { "node": ">=10" }, @@ -20068,9 +19254,9 @@ } }, "node_modules/typechain": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", - "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.1.1.tgz", + "integrity": "sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ==", "peer": true, "dependencies": { "@types/prettier": "^2.1.1", @@ -20091,6 +19277,20 @@ "typescript": ">=4.3.0" } }, + "node_modules/typechain/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/typechain/node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -20139,28 +19339,27 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.2", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -20170,16 +19369,15 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -20189,19 +19387,13 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.2", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "is-typed-array": "^1.1.9" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -20221,9 +19413,9 @@ } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "peer": true, "bin": { "tsc": "bin/tsc", @@ -20243,9 +19435,9 @@ } }, "node_modules/ufo": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", - "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==" }, "node_modules/uglify-js": { "version": "3.17.4", @@ -20288,9 +19480,9 @@ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" }, "node_modules/undici": { - "version": "5.28.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", - "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.0.tgz", + "integrity": "sha512-l3ydWhlhOJzMVOYkymLykcRRXqbUaQriERtR70B9LzNkZ4bX52Fc8wbTDneMiwo8T+AemZXvXaTx+9o5ROxrXg==", "peer": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -20299,20 +19491,15 @@ "node": ">=14.0" } }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, "node_modules/unenv": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz", - "integrity": "sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.8.0.tgz", + "integrity": "sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg==", "dependencies": { "consola": "^3.2.3", "defu": "^6.1.3", "mime": "^3.0.0", - "node-fetch-native": "^1.6.1", + "node-fetch-native": "^1.4.1", "pathe": "^1.1.1" } }, @@ -20327,11 +19514,6 @@ "node": ">=10.0.0" } }, - "node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -20468,9 +19650,9 @@ } }, "node_modules/unstorage/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "engines": { "node": "14 || >=16.14" } @@ -20690,6 +19872,11 @@ "extsprintf": "^1.2.0" } }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", @@ -20700,15 +19887,15 @@ } }, "node_modules/vue": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", - "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", + "version": "3.3.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.13.tgz", + "integrity": "sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==", "dependencies": { - "@vue/compiler-dom": "3.4.21", - "@vue/compiler-sfc": "3.4.21", - "@vue/runtime-dom": "3.4.21", - "@vue/server-renderer": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-dom": "3.3.13", + "@vue/compiler-sfc": "3.3.13", + "@vue/runtime-dom": "3.3.13", + "@vue/server-renderer": "3.3.13", + "@vue/shared": "3.3.13" }, "peerDependencies": { "typescript": "*" @@ -20769,11 +19956,6 @@ "lodash": "^4.17.14" } }, - "node_modules/web3-provider-engine/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, "node_modules/web3-provider-engine/node_modules/cross-fetch": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz", @@ -20783,43 +19965,6 @@ "whatwg-fetch": "^2.0.4" } }, - "node_modules/web3-provider-engine/node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", - "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" - } - }, - "node_modules/web3-provider-engine/node_modules/eth-json-rpc-filters": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz", - "integrity": "sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw==", - "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "async-mutex": "^0.2.6", - "eth-json-rpc-middleware": "^6.0.0", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - } - }, - "node_modules/web3-provider-engine/node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/web3-provider-engine/node_modules/eth-rpc-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", @@ -20828,25 +19973,6 @@ "fast-safe-stringify": "^2.0.6" } }, - "node_modules/web3-provider-engine/node_modules/ethereumjs-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", - "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", - "dependencies": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "^0.1.3", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/web3-provider-engine/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, "node_modules/web3-provider-engine/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -20888,15 +20014,14 @@ } }, "node_modules/web3-utils": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", - "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz", + "integrity": "sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ==", "peer": true, "dependencies": { - "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", "ethereum-bloom-filters": "^1.0.6", - "ethereum-cryptography": "^2.1.2", + "ethereumjs-util": "^7.1.0", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", @@ -20907,39 +20032,63 @@ } }, "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "peer": true, "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "node_modules/web3-utils/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "peer": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, "engines": { - "node": ">=12" + "node": ">=10.0.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", + "@types/estree": "^1.0.0", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", + "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", @@ -20953,7 +20102,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -21005,20 +20154,17 @@ } }, "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/which": { @@ -21076,6 +20222,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/which-collection": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", @@ -21092,38 +20244,26 @@ } }, "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "peer": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/word-wrap": { @@ -21227,6 +20367,37 @@ "node": ">=10.0.0" } }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/workbox-build/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -21241,24 +20412,10 @@ "node": ">=10" } }, - "node_modules/workbox-build/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/workbox-build/node_modules/jsonfile": { "version": "6.1.0", @@ -21340,7 +20497,6 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", @@ -21435,14 +20591,6 @@ "webpack": "^4.4.0 || ^5.9.0" } }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -21468,36 +20616,77 @@ "peer": true }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "engines": { + "node": ">=4" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "color-name": "1.1.3" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "engines": { + "node": ">=6" } }, "node_modules/wrappy": { @@ -21506,9 +20695,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "engines": { "node": ">=8.3.0" }, @@ -21550,9 +20739,9 @@ "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" }, "node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -21578,42 +20767,54 @@ } }, "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { - "node": ">=12" + "node": ">=8" } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "engines": { - "node": ">=10" + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" } }, "node_modules/yargs-unparser": { @@ -21631,13 +20832,64 @@ "node": ">=10" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "peer": true, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/yn": { @@ -21659,14 +20911,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/package.json b/package.json index ee46afbb..a4954bd4 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "dependencies": { "@next/eslint-plugin-next": "^14.0.1", "@nomicfoundation/hardhat-toolbox": "^2.0.0", - "@openzeppelin/contracts": "^5.0.2", "@sendgrid/mail": "^8.1.0", "@walletconnect/web3-provider": "^1.8.0", "@web3modal/ethers5": "^3.5.1", From c0ba13a60d7d93a5c6404f3745e50c30f34c306b Mon Sep 17 00:00:00 2001 From: dappsar Date: Thu, 7 Mar 2024 13:40:17 -0300 Subject: [PATCH 06/11] [refactor] :see_no_evil: ignore contracts dependencies --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 86909831..9482df77 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ /node_modules /.pnp .pnp.js +/contracts +/artifacts +hardhat.config.ts # testing /coverage From 1c769a1fc8dc7174f26842099dd43fd45be3d2ab Mon Sep 17 00:00:00 2001 From: dappsar Date: Thu, 7 Mar 2024 13:41:15 -0300 Subject: [PATCH 07/11] [feat] :sparkles: update smart-contracts addresses --- src/config.js | 52 +++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/config.js b/src/config.js index 52a07f45..3ef2fe44 100644 --- a/src/config.js +++ b/src/config.js @@ -86,13 +86,13 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlMumbai // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0xECDecF03FF06Ee5DC34BF23643c425164Be4d881', - alphaAddress: '0x46b142DD1E924FAb83eCc3c08e4D46E82f005e0E', - gammaCardsAddress: '0xAa6Fa84cdBE8B3C8c8EB6B3A4dfF7C120A699583', - gammaPackAddress: '0x34e459a1Ea8a21813A9dF066B8D4b2904Ac990fB', - gammaOffersAddress: '0x9544e48Cc3b43848dd7EA642Bb5dbD2814C0728e', - gammaTicketsAddress: '0x4C2F7092C2aE51D986bEFEe378e50BD4dB99C901' - } + daiAddress: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', + alphaAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', + gammaCardsAddress: '0x0165878A594ca255338adfa4d48449f69242Eb8F', + gammaPackAddress: '0xa513E6E4b8f2a923D98304ec87F64353C4D5C853', + gammaOffersAddress: '0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6', + gammaTicketsAddress: '0x8A791620dd6260079BF849Dc5567aDC3F2FdC318' + } }, mumbai: { config: { @@ -110,11 +110,11 @@ export const NETWORKS = { }, contracts: { daiAddress: '0xEa4c35c858E15Cef77821278A88435dE57bc8707', - alphaAddress: '0x7C201e88e43b5FBEEfB77F966c2a5D2E09178B49', - gammaCardsAddress: '0x34658c07F05638E12793d0961595cBc72fA69452', - gammaPackAddress: '0xDc06FbD70b2159863d079aE282d69AEe8a88A18E', - gammaOffersAddress: '0x3Da346C40A0D90cf5642944613586439A3456d45', - gammaTicketsAddress: '0x7593aad3e13fBd27F113aad8688E8817Ac4f9A33' + alphaAddress: '0xf9e8570b88798CcC3bde56C6Eb7dF60C6DAA84Fe', + gammaCardsAddress: '0x560c7d01011fbBF0438C804365cfea4B61E8985c', + gammaPackAddress: '0x8b22aacc17b81610449FC978B0df558dA447A7A6', + gammaOffersAddress: '0xd1f5FBBDACe8bE489246099603eeF5866EA1544e', + gammaTicketsAddress: '0x34D6e75f13dA814dDEde5ce20afC245103A54edf' } }, 'bsc-testnet': { @@ -131,13 +131,13 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlbscTestnet // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0x83330b5803838604d85B7Cba393C930084F45A7d', - alphaAddress: '0x4eE8C9cc2cF081f11F56A264EF52e3FeaDe1b35e', - gammaCardsAddress: '0x25f85D878972f9506b4De49cEff480f627935521', - gammaPackAddress: '0x71aA05fD8532a1395DffaB6FdA8be191fC8168FE', - gammaOffersAddress: '0x168eE5cfE8b7EDC7F24cA0326DFfF3Ef6DF37f2F', - gammaTicketsAddress: '0xA5c3Cd20AB6FF1e299D93ee268370BCC19a32E71' - } + daiAddress: '0xF292D1ea9f5AAFFc24bC8831EF772cc4ab10cAEe', + alphaAddress: '0x5FADd1178f6962c4cB7369CBE30f45212aBC3e12', + gammaCardsAddress: '0x449392C509B218043b2d23262F06c834F2C3f5D9', + gammaPackAddress: '0x9085a89Fe556f3180f328942832E44bDD4aeF54A', + gammaOffersAddress: '0xE513DC5C4c789Da7B308E4a76786Ed97eE44d4BE', + gammaTicketsAddress: '0xE8c40aaB664D9353753a80c3a68F011985E8D039' + } }, 'opbnb-testnet': { config: { @@ -153,13 +153,13 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlopBnbTestnet // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0x46480E0d10966Ea274831D9693a56f9c09D7339d', - alphaAddress: '0x36f19A5397DbE26b548b15C158f7a8e00979B408', - gammaCardsAddress: '0x2842c8FD88F801018E53dDDeBbC944aE377D0F72', - gammaPackAddress: '0x1116218412559628B67aa15F3c527D68F0A71b91', - gammaOffersAddress: '0xe810524F7C7C62A2201FdF1bCA20649Bd7D70844', - gammaTicketsAddress: '0xd9988C491805AE2573FA156b27CDE1a6f7B3E073' - } + daiAddress: '0x8d2a7988FbF205724fcF40387A7A3b9eE89B97a1', + alphaAddress: '0x2BEBce69E67B9b4a29eb0BA363245f9B82004503', + gammaCardsAddress: '0xCcCC970eb4A307E75d6fe0C1D42f0Fd0C6cA6BeA', + gammaPackAddress: '0x87502b899F3f6eA979C9e7DD5abDA95ce4Fbc247', + gammaOffersAddress: '0x03388a96d37Aea7E302DB897aDacc9De433799c5', + gammaTicketsAddress: '0x5d8fF80112c1a9C6Ed1593405f9Fb145F72f38a9' + } }, matic: { config: { From 65b49f78da781b4a0f40a502d85aeba3d7697f99 Mon Sep 17 00:00:00 2001 From: dappsar Date: Thu, 7 Mar 2024 13:41:40 -0300 Subject: [PATCH 08/11] [style] :lipstick: prettier --- src/config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/config.js b/src/config.js index 3ef2fe44..0d03556e 100644 --- a/src/config.js +++ b/src/config.js @@ -92,7 +92,7 @@ export const NETWORKS = { gammaPackAddress: '0xa513E6E4b8f2a923D98304ec87F64353C4D5C853', gammaOffersAddress: '0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6', gammaTicketsAddress: '0x8A791620dd6260079BF849Dc5567aDC3F2FdC318' - } + } }, mumbai: { config: { @@ -137,7 +137,7 @@ export const NETWORKS = { gammaPackAddress: '0x9085a89Fe556f3180f328942832E44bDD4aeF54A', gammaOffersAddress: '0xE513DC5C4c789Da7B308E4a76786Ed97eE44d4BE', gammaTicketsAddress: '0xE8c40aaB664D9353753a80c3a68F011985E8D039' - } + } }, 'opbnb-testnet': { config: { @@ -159,7 +159,7 @@ export const NETWORKS = { gammaPackAddress: '0x87502b899F3f6eA979C9e7DD5abDA95ce4Fbc247', gammaOffersAddress: '0x03388a96d37Aea7E302DB897aDacc9De433799c5', gammaTicketsAddress: '0x5d8fF80112c1a9C6Ed1593405f9Fb145F72f38a9' - } + } }, matic: { config: { From e5f76e4bb4118ebdb3340f8e4a42d68f049d9575 Mon Sep 17 00:00:00 2001 From: dappsar Date: Wed, 13 Mar 2024 22:10:29 -0300 Subject: [PATCH 09/11] [feat] :technologist: extract hardhat contracts addresses to env (#341) --- README.md | 9 +++++++++ example_env | 9 +++++++++ src/config.js | 37 +++++++++++++++++++++++++++++++------ 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 83918e37..6f0ebeeb 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,15 @@ NEXT_PUBLIC_STORAGE_URL_ALPHA='https://storage.googleapis.com/nof-alpha' NEXT_PUBLIC_STORAGE_URL_GAMMA='https://storage.googleapis.com/nof-gamma' NEXT_PUBLIC_ADMIN_ACCOUNTS='0x35dad65F60c1A32c9895BE97f6bcE57D32792E83,0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' +# Only por local environment to put contracts addresses from hardhat +NEXT_PUBLIC_NOF_DAI_HARDHAT_CONTRACT_ADDRESS='' +NEXT_PUBLIC_NOF_ALPHA_HARDHAT_CONTRACT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_CARDS_HARDHAT_CONTRACT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_PACKS_HARDHAT_CONTRACT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_OFFERS_HARDHAT_CONTRACT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_TICKETS_HARDHAT_CONTRACT_ADDRESS='' + + ``` The source code of the smart contracts is located at [https://github.com/P4-Games/NoF-Smart-Contracts](https://github.com/P4-Games/NoF-Smart-Contracts). If you want to run them locally (example: on a hardhat or ganache node), after compiling them locally, change the addresses in the .env and set these options to network: diff --git a/example_env b/example_env index e1d5830c..dc286e90 100644 --- a/example_env +++ b/example_env @@ -20,3 +20,12 @@ NEXT_PUBLIC_APP_ENV='development' NEXT_PUBLIC_STORAGE_URL_ALPHA='https://storage.googleapis.com/nof-alpha' NEXT_PUBLIC_STORAGE_URL_GAMMA='https://storage.googleapis.com/nof-gamma' NEXT_PUBLIC_ADMIN_ACCOUNTS='0x...,0X....,0xfa3....' // accounts separated by a comma + +// Only por local environment to put contracts addresses from hardhat +NEXT_PUBLIC_NOF_DAI_CONTRACT_CURRENT_ADDRESS='' +NEXT_PUBLIC_NOF_ALPHA_CONTRACT_CURRENT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_CARDS_CONTRACT_CURRENT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_PACKS_CONTRACT_CURRENT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_OFFERS_CONTRACT_CURRENT_ADDRESS='' +NEXT_PUBLIC_NOF_GAMMA_TICKETS_CONTRACT_CURRENT_ADDRESS='' + diff --git a/src/config.js b/src/config.js index 0d03556e..7001c7e5 100644 --- a/src/config.js +++ b/src/config.js @@ -57,6 +57,25 @@ export const adminAccounts = // calculated variables // ------------------------------------------------------------------ +const hardhatContractAddressDAI = removeQuotes( + process.env.NEXT_PUBLIC_NOF_DAI_HARDHAT_CONTRACT_ADDRESS +) +const hardhatContractAddressAlpha = removeQuotes( + process.env.NEXT_PUBLIC_NOF_ALPHA_HARDHAT_CONTRACT_ADDRESS +) +const hardhatContractAddressGammaCards = removeQuotes( + process.env.NEXT_PUBLIC_NOF_GAMMA_CARDS_HARDHAT_CONTRACT_ADDRESS +) +const hardhatContractAddressGammaPacks = removeQuotes( + process.env.NEXT_PUBLIC_NOF_GAMMA_PACKS_HARDHAT_CONTRACT_ADDRESS +) +const hardhatContractAddressGammaOffers = removeQuotes( + process.env.NEXT_PUBLIC_NOF_GAMMA_OFFERS_HARDHAT_CONTRACT_ADDRESS +) +const hardhatContractAddressGammaTickets = removeQuotes( + process.env.NEXT_PUBLIC_NOF_GAMMA_TICKETS_HARDHAT_CONTRACT_ADDRESS +) + export const defaultSettings = { languagePresets: 'es', languageSetted: 'es' @@ -86,12 +105,13 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlMumbai // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9', - alphaAddress: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9', - gammaCardsAddress: '0x0165878A594ca255338adfa4d48449f69242Eb8F', - gammaPackAddress: '0xa513E6E4b8f2a923D98304ec87F64353C4D5C853', - gammaOffersAddress: '0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6', - gammaTicketsAddress: '0x8A791620dd6260079BF849Dc5567aDC3F2FdC318' + // In local environment (hardhat), it take contracts addresss from environment variables + daiAddress: hardhatContractAddressDAI, + alphaAddress: hardhatContractAddressAlpha, + gammaCardsAddress: hardhatContractAddressGammaCards, + gammaPackAddress: hardhatContractAddressGammaPacks, + gammaOffersAddress: hardhatContractAddressGammaOffers, + gammaTicketsAddress: hardhatContractAddressGammaTickets } }, mumbai: { @@ -186,3 +206,8 @@ export const NETWORKS = { } // ------------------------------------------------------------------ + +function removeQuotes(text) { + if (text === '' || !text) return text + return text.replace("'", '').replace('"', '') +} From 317da5784761949ef2c9c759c376123e0ad56580 Mon Sep 17 00:00:00 2001 From: dappsar Date: Wed, 13 Mar 2024 22:11:55 -0300 Subject: [PATCH 10/11] [chore] :rocket: update ABI gamma-card and contracts addresses by new scs deploy --- src/config.js | 34 +++++++++---------- .../GammaCards.v5.sol/NofGammaCardsV5.json | 4 +-- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/config.js b/src/config.js index 7001c7e5..40dfa2ba 100644 --- a/src/config.js +++ b/src/config.js @@ -130,11 +130,11 @@ export const NETWORKS = { }, contracts: { daiAddress: '0xEa4c35c858E15Cef77821278A88435dE57bc8707', - alphaAddress: '0xf9e8570b88798CcC3bde56C6Eb7dF60C6DAA84Fe', - gammaCardsAddress: '0x560c7d01011fbBF0438C804365cfea4B61E8985c', - gammaPackAddress: '0x8b22aacc17b81610449FC978B0df558dA447A7A6', - gammaOffersAddress: '0xd1f5FBBDACe8bE489246099603eeF5866EA1544e', - gammaTicketsAddress: '0x34D6e75f13dA814dDEde5ce20afC245103A54edf' + alphaAddress: '0x816EA704F9bEf91284bA72bEBdAC1d1c5788246b', + gammaCardsAddress: '0x394Fc1975972de88806b2E81Ed53f3E020f29D09', + gammaPackAddress: '0xfb4C387227d3692Be50376ff930472294ADEcED8', + gammaOffersAddress: '0x1eDB114Bb7A0CBaDA9c9550BD2F3F1bFC08Bd7a7', + gammaTicketsAddress: '0x091C994c5766D79bF592e08C71D49C49Eaf1DCee' } }, 'bsc-testnet': { @@ -151,12 +151,12 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlbscTestnet // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0xF292D1ea9f5AAFFc24bC8831EF772cc4ab10cAEe', - alphaAddress: '0x5FADd1178f6962c4cB7369CBE30f45212aBC3e12', - gammaCardsAddress: '0x449392C509B218043b2d23262F06c834F2C3f5D9', - gammaPackAddress: '0x9085a89Fe556f3180f328942832E44bDD4aeF54A', - gammaOffersAddress: '0xE513DC5C4c789Da7B308E4a76786Ed97eE44d4BE', - gammaTicketsAddress: '0xE8c40aaB664D9353753a80c3a68F011985E8D039' + daiAddress: '0x1ba960c6f624eC8d3fA3ACC4aFaF867538afd787', + alphaAddress: '0x56e14bf3adBE4C7566b4F9dCC9acc264429f5DC9', + gammaCardsAddress: '0x369443c3a885b6687d0f2a2Dc97b4EC69b9d90b3', + gammaPackAddress: '0xA62A947c0BD0A14317A6EAd7e32b227f4F9C36ef', + gammaOffersAddress: '0x4C1d15c7EcEDF52eE7073CeD26b0A6c482b27c69', + gammaTicketsAddress: '0xC67963E0742074bfa74610D28663FB3a524201D8' } }, 'opbnb-testnet': { @@ -173,12 +173,12 @@ export const NETWORKS = { chainNodeProviderUrl: NodeProviderUrlopBnbTestnet // visible ONLY in server side code! (in cliente side will be undefined) }, contracts: { - daiAddress: '0x8d2a7988FbF205724fcF40387A7A3b9eE89B97a1', - alphaAddress: '0x2BEBce69E67B9b4a29eb0BA363245f9B82004503', - gammaCardsAddress: '0xCcCC970eb4A307E75d6fe0C1D42f0Fd0C6cA6BeA', - gammaPackAddress: '0x87502b899F3f6eA979C9e7DD5abDA95ce4Fbc247', - gammaOffersAddress: '0x03388a96d37Aea7E302DB897aDacc9De433799c5', - gammaTicketsAddress: '0x5d8fF80112c1a9C6Ed1593405f9Fb145F72f38a9' + daiAddress: '0xE3Afd0e2b6b955a56A1823039DE577d3ce7B15BC', + alphaAddress: '0xaAf52b86Cb71c14bd01eC6AC88481BC94470fFD7', + gammaCardsAddress: '0x4a65B5138fCaBFE8a7c676688E9884F1eBdc1906', + gammaPackAddress: '0xd792e3040FaCa21E0a7414422DeC6000Cc66BB79', + gammaOffersAddress: '0xB90B462d5c609CC548a8135C264b212688A9Fe1f', + gammaTicketsAddress: '0xa7ec2fd75cAfd694866AF76e865D8b34b24CB5D8' } }, matic: { diff --git a/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json b/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json index 07a8c7d0..b1e4fb31 100644 --- a/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json +++ b/src/context/abis/gamma/GammaCards.v5.sol/NofGammaCardsV5.json @@ -1795,8 +1795,8 @@ "type": "function" } ], - "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000ae9190620001db565b506001620000bd8282620001db565b505050620000da620000d4620000e060201b60201c565b620000e4565b620002a7565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016157607f821691505b6020821081036200018257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001d657600081815260208120601f850160051c81016020861015620001b15750805b601f850160051c820191505b81811015620001d257828155600101620001bd565b5050505b505050565b81516001600160401b03811115620001f757620001f762000136565b6200020f816200020884546200014c565b8462000188565b602080601f8311600181146200024757600084156200022e5750858301515b600019600386901b1c1916600185901b178555620001d2565b600085815260208120601f198616915b82811015620002785788860151825594840194600190910190840162000257565b5085821015620002975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b615a3d80620002b76000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c806379e8dadc1161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a82578063e985e9c514610a8a578063eb12d61e14610ac6578063f2fde38b14610ad9578063f98fd28314610aec57600080fd5b8063dbfc05cf14610a23578063ddb975e814610a36578063e1883c6e14610a49578063e4ae0b9b14610a5c578063e606df8714610a6957600080fd5b8063c87b56dd1161010a578063c87b56dd146109d9578063cafaa473146109ec578063d322b563146109ff578063d7093f4014610a12578063d780c47714610a1b57600080fd5b8063ad1684fa14610984578063b352618514610997578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd14610910578063a1af8ad41461093e578063a22cb46514610951578063a419811d14610964578063ab5351601461097757600080fd5b80638da5cb5b146108c95780639038f414146108da57806395d89b41146108e25780639a5613ad146108ea5780639c7f707f146108fd57600080fd5b80637df73e271161021b5780637df73e271461084e57806382d8a1181461087a578063886eb60f1461088357806388e0ef80146108965780638bf670c8146108b657600080fd5b806379e8dadc1461080d5780637ce65f7b146108155780637cf86b72146108285780637de99bd91461083b57600080fd5b8063267b841d116103685780635e31ce48116102e55780637065cb48116102a95780637065cb48146107b957806370a08231146107cc578063715018a6146107df5780637155a3ac146107e75780637232d7d4146107fa57600080fd5b80635e31ce48146107655780636352211e14610778578063656bd0ad1461078b57806368cc5bc1146107945780636d0af178146107a757600080fd5b80634039327e1161032c5780634039327e146106b257806342842e0e146106ba57806342966c68146106cd5780634c03cd0b146106e05780635312ea8e1461075257600080fd5b8063267b841d1461063a5780632ca699e71461064d5780632f54bf6e146106605780632f9e026a1461068c57806330f5cc581461069f57600080fd5b8063147baac7116103f6578063203335f6116103ba578063203335f6146105e557806320965a5f146105f857806321a7c6b01461060b57806323b872dd14610614578063241a08fe1461062757600080fd5b8063147baac71461057557806314cca36a14610587578063155e2f921461059a5780631585cc4e146105ad578063173825d9146105d257600080fd5b8063081812fc1161043d578063081812fc146104fc578063095ea7b3146105275780630e316ab71461053c578063128916dc1461054f5780631306952c1461056257600080fd5b806301ffc9a71461046f5780630435dcaf1461049757806306fdde03146104b957806307b2e246146104ce575b600080fd5b61048261047d366004614a27565b610aff565b60405190151581526020015b60405180910390f35b6104aa6104a5366004614a59565b610b10565b60405161048e93929190614ab4565b6104c1610ec0565b60405161048e9190614b6f565b6104ee6104dc366004614a59565b601b6020526000908152604090205481565b60405190815260200161048e565b61050f61050a366004614b82565b610f52565b6040516001600160a01b03909116815260200161048e565b61053a610535366004614b9b565b610f79565b005b61053a61054a366004614a59565b611093565b61053a61055d366004614a59565b611139565b61050f610570366004614cb8565b6111dc565b60185461048290610100900460ff1681565b600a5461050f906001600160a01b031681565b61053a6105a8366004614d52565b61126a565b6105c06105bb366004614d52565b6112e7565b60405160ff909116815260200161048e565b61053a6105e0366004614a59565b611341565b61053a6105f3366004614e51565b6113b8565b61053a610606366004614f47565b611477565b6104ee60135481565b61053a610622366004614f88565b611a93565b61053a610635366004614fc9565b611ac5565b61053a610648366004614cb8565b611b0b565b61053a61065b366004614d52565b611b1e565b61048261066e366004614a59565b6001600160a01b03166000908152600b602052604090205460ff1690565b60085461050f906001600160a01b031681565b61053a6106ad366004614fe4565b611d71565b6104c1611ff9565b61053a6106c8366004614f88565b612087565b61053a6106db366004614b82565b6120a2565b6107226106ee366004614b82565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b61053a610760366004614b82565b6120d3565b61053a610773366004614b82565b6121ee565b61050f610786366004614b82565b612233565b6104ee60115481565b61053a6107a236600461504a565b612293565b600f546105c090610100900460ff1681565b61053a6107c7366004614a59565b6122df565b6104ee6107da366004614a59565b612356565b61053a6123dc565b61053a6107f5366004614d52565b6123f0565b61053a610808366004614b82565b612450565b6104c16124a6565b61053a610823366004614fc9565b6124b3565b6104ee610836366004614a59565b612524565b61053a6108493660046150e7565b612570565b61048261085c366004614a59565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee60105481565b610482610891366004614d52565b61274b565b6104ee6108a4366004614b82565b601a6020526000908152604090205481565b6104826108c4366004614d52565b6127a7565b6007546001600160a01b031661050f565b610482612806565b6104c1612ba6565b6018546104829062010000900460ff1681565b61053a61090b366004615181565b612bb5565b6105c061091e366004614d52565b601c60209081526000928352604080842090915290825290205460ff1681565b61053a61094c3660046151e4565b612c57565b61053a61095f366004615238565b612fd1565b61053a610972366004614a59565b612fe0565b600f546105c09060ff1681565b61053a610992366004615271565b61307f565b6104ee60145481565b61053a6109ae3660046152c9565b613312565b61053a6109c1366004614b82565b613344565b61053a6109d4366004614fc9565b61339a565b6104c16109e7366004614b82565b6135e6565b61053a6109fa366004614a59565b6135f1565b60095461050f906001600160a01b031681565b6104ee60125481565b6104ee613694565b61053a610a3136600461504a565b6136c1565b61053a610a44366004614a59565b613704565b61053a610a57366004614b82565b6137a7565b6018546104829060ff1681565b600f5461050f906201000090046001600160a01b031681565b6104c16137d7565b610482610a98366004615348565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61053a610ad4366004614a59565b6137e4565b61053a610ae7366004614a59565b61385b565b61053a610afa36600461504a565b6138d1565b6000610b0a8261391b565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610cf6576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610ce45780858360ff1681518110610bdc57610bdc615376565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610c2c57610c2c615376565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb1919061538c565b838360ff1681518110610cc657610cc6615376565b9115156020928302919091019091015281610ce0816153bf565b9250505b80610cee816153bf565b915050610b8d565b5060008160ff166001600160401b03811115610d1457610d14614bc7565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5d57610d5d614bc7565b604051908082528060200260200182016040528015610d86578160200160208202803683370190505b50905060008360ff166001600160401b03811115610da657610da6614bc7565b604051908082528060200260200182016040528015610dcf578160200160208202803683370190505b50905060005b8460ff16811015610eae57878181518110610df257610df2615376565b6020026020010151848281518110610e0c57610e0c615376565b602002602001019060ff16908160ff1681525050868181518110610e3257610e32615376565b6020026020010151838281518110610e4c57610e4c615376565b602002602001019060ff16908160ff1681525050858181518110610e7257610e72615376565b6020026020010151828281518110610e8c57610e8c615376565b9115156020928302919091019091015280610ea6816153de565b915050610dd5565b50919a90995090975095505050505050565b606060008054610ecf906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610efb906153f7565b8015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b5050505050905090565b6000610f5d82613940565b506000908152600460205260409020546001600160a01b031690565b6000610f8482612233565b9050806001600160a01b0316836001600160a01b031603610ff65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101257506110128133610a98565b6110845760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fed565b61108e838361399f565b505050565b336000908152600b602052604090205460ff166110c357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661116957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166111915760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061121e903390899089908990899060040161542b565b602060405180830381865af415801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f91906154b2565b90505b949350505050565b6009546001600160a01b0316331461129557604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca836153bf565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166113115760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661137157604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611106565b60ff851615806113d05750600f5460ff908116908616115b156113ee57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561146f5761145d3386838151811061141257611412615376565b602002602001015186848151811061142c5761142c615376565b602002602001015186868681811061144657611446615376565b905060200281019061145891906154cf565b613a0d565b80611467816153de565b9150506113f1565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036114b55760405163210f01d160e21b815260040160405180910390fd5b336000908152601b60205260408120546114d0908390615515565b90506000603c821061158857600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f9190615528565b90506014548110806115645750601454601254105b156115825760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190615528565b1190508360005b8181101561182057336000908152601c602052604081209088888481811061162a5761162a615376565b905060200201602081019061163f9190614fc9565b60ff9081168252602082019290925260400160009081205490911690036116795760405163210f01d160e21b815260040160405180910390fd5b821561179c576009546001600160a01b0316632edb5fcf338989858181106116a3576116a3615376565b90506020020160208101906116b89190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611728919061538c565b1561179c57336000908152601c6020526040812060029189898581811061175157611751615376565b90506020020160208101906117669190614fc9565b60ff908116825260208201929092526040016000205416101561179c5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c60205260408120908888848181106117be576117be615376565b90506020020160208101906117d39190614fc9565b60ff908116825260208201929092526040016000908120805490921691906117fa83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050611600565b50336000908152601b602052604081208054839290611840908490615515565b9091555050604051611855908790879061555e565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561146f57336000908152601c60209081526040808320607984529091528120805460ff16916118b783615541565b91906101000a81548160ff021916908360ff1602179055505061196833601680546118e1906153f7565b80601f016020809104026020016040519081016040528092919081815260200182805461190d906153f7565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b505050505060796002613e24565b6014546012600082825461197c9190615598565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff919061538c565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b611a9e335b82613e87565b611aba5760405162461bcd60e51b8152600401610fed906155ab565b61108e838383613f05565b336000908152600b602052604090205460ff16611af557604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b611b183385858585613a0d565b50505050565b816001600160a01b038116611b465760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611b845760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611bad57604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611c8457600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c34919061538c565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611c655750805b611c815760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611cb083615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611cff836153bf565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611d64919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611da157604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506006601154611e16919061562f565b601154611e239190615598565b60126000828254611e349190615515565b90915550600090505b8151811015611b1857818181518110611e5857611e58615376565b602002602001015160ff16607814611ea357611389601a6000848481518110611e8357611e83615376565b602002602001015160ff1681526020019081526020016000205410611ed4565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611f205760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fed565b601a6000838381518110611f3657611f36615376565b602002602001015160ff1681526020019081526020016000206000815480929190611f60906153de565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611f9457611f94615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611fcd906153bf565b91906101000a81548160ff021916908360ff160217905550508080611ff1906153de565b915050611e3d565b60168054612006906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906153f7565b801561207f5780601f106120545761010080835404028352916020019161207f565b820191906000526020600020905b81548152906001019060200180831161206257829003601f168201915b505050505081565b61108e83838360405180602001604052806000815250613312565b6120ab33611a98565b6120c75760405162461bcd60e51b8152600401610fed906155ab565b6120d081614069565b50565b336000908152600b602052604090205460ff1661210357604051634289c49360e01b815260040160405180910390fd5b8061210d30612356565b101561212c5760405163356680b760e01b815260040160405180910390fd5b806012600082825461213e9190615598565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd919061538c565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b03163314612219576040516307473cc760e41b815260040160405180910390fd5b806012600082825461222b9190615515565b909155505050565b6000818152600260205260408120546001600160a01b031680610b0a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b336000908152600b602052604090205460ff166122c357604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661230f57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611106565b60006001600160a01b0382166123c05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fed565b506001600160a01b031660009081526003602052604090205490565b6123e4614072565b6123ee60006140cc565b565b6009546001600160a01b0316331461241b57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca83615541565b336000908152600b602052604090205460ff1661248057604051634289c49360e01b815260040160405180910390fd5b806000036124a157604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054612006906153f7565b336000908152600b602052604090205460ff166124e357604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561250857604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b03811661254e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b612578614072565b336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a8054868416908316179055600980549287169290911691909117905560176125fc8382615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516126599460179493909101615756565b604051602081830303815290604052601590816126769190615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516126d39460179493909101615756565b604051602081830303815290604052601690816126f09190615697565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015612742576000818152601a60205260409020600190558061273a816153de565b915050612715565b50505050505050565b6000826001600160a01b0381166127755760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146127d557604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036128445760405163210f01d160e21b815260040160405180910390fd5b601354601254101561286957604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128dc9190615528565b90506013548110156129015760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161299057336000908152601c6020908152604080832060ff8086168552925282205416900361293e5760019150612990565b336000908152601c6020908152604080832060ff80861685529252822080549091169161296a83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050612905565b5080156129af57604051623de82960e51b815260040160405180910390fd5b612a4733601580546129c0906153f7565b80601f01602080910402602001604051908101604052809291908181526020018280546129ec906153f7565b8015612a395780601f10612a0e57610100808354040283529160200191612a39565b820191906000526020600020905b815481529060010190602001808311612a1c57829003601f168201915b505050505060786002613e24565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac5919061538c565b5060135460126000828254612ada9190615598565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e919061538c565b905080612b6e5760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610ecf906153f7565b336000908152600b602052604090205460ff16612be557604051634289c49360e01b815260040160405180910390fd5b6015612bf18382615697565b506016612bfe8282615697565b5080604051612c0d9190615805565b604051809103902082604051612c239190615805565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b038116612c7f5760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03851603612ca857604051632f35253160e01b815260040160405180910390fd5b60005b82811015612f7d57336000908152601c6020526040812090858584818110612cd557612cd5615376565b9050602002016020810190612cea9190614fc9565b60ff908116825260208201929092526040016000908120549091169003612d245760405163210f01d160e21b815260040160405180910390fd5b336000908152601c6020526040812090858584818110612d4657612d46615376565b9050602002016020810190612d5b9190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612d8283615541565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612dd457612dd4615376565b9050602002016020810190612de99190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612e10836153bf565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612f6b576009546000906001600160a01b0316632edb5fcf33878786818110612e6557612e65615376565b9050602002016020810190612e7a9190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061538c565b336000908152601c602052604081209192509060019082888887818110612f1357612f13615376565b9050602002016020810190612f289190614fc9565b60ff908116825260208201929092526040016000205416119050811580612f4c5750805b612f685760405162461bcd60e51b8152600401610fed906155f8565b50505b80612f75816153de565b915050612cab565b508282604051612f8e92919061555e565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b612fdc33838361411e565b5050565b336000908152600b602052604090205460ff1661301057604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611612fdc576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691613053836153bf565b91906101000a81548160ff021916908360ff160217905550508080613077906153bf565b915050613013565b6009546001600160a01b031633146130aa57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b0381166130d25760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b0381166130fa5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292529091205416158061315557506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b156131735760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925282208054909116916131a883615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a851684529091528120805490921692506131f7836153bf565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c60209081526040808320888516845290915281208054909216925061324683615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250613295836153bf565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524878660405161330292919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b61331c3383613e87565b6133385760405162461bcd60e51b8152600401610fed906155ab565b611b18848484846141e4565b336000908152600b602052604090205460ff1661337457604051634289c49360e01b815260040160405180910390fd5b8060000361339557604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036133d85760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff16156134ae57600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e919061538c565b336000908152601c6020908152604080832060ff8088168552925290912054919250600191161181158061348f5750805b6134ab5760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff8086168552925282208054909116916134da83615541565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b815260040161354f91815260200190565b600060405180830381865af415801561356c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135949190810190615821565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016135c59493929190615756565b6040516020818303038152906040529050612fdc33828460ff166001613e24565b6060610b0a82614217565b336000908152600b602052604090205460ff1661362157604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166136495760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f546000916064916136b29190610100900460ff16615897565b6136bc919061562f565b905090565b336000908152600b602052604090205460ff166136f157604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661373457604051634289c49360e01b815260040160405180910390fd5b806001600160a01b03811661375c5760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b031633146137d2576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054612006906153f7565b336000908152600b602052604090205460ff1661381457604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611106565b613863614072565b6001600160a01b0381166138c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fed565b6120d0816140cc565b336000908152600b602052604090205460ff1661390157604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610b0a5750610b0a8261431f565b6000818152600260205260409020546001600160a01b03166120d05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139d482612233565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7c91906154b2565b6001600160a01b031614613aa357604051637f6ecdf560e01b815260040160405180910390fd5b600f835110613ac557604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613b91576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613b12903390899089908990899060040161542b565b602060405180830381865af4158015613b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5391906154b2565b6001600160a01b0381166000908152600e602052604090205490915060ff16613b8f57604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b158015613bdf57600080fd5b505af1158015613bf3573d6000803e3d6000fd5b505050506006601154613c06919061562f565b601154613c139190615598565b60126000828254613c249190615515565b90915550600090505b8351811015613dd257838181518110613c4857613c48615376565b602002602001015160ff16607803613cad576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb81015613ca857604051630d1ecf1760e11b815260040160405180910390fd5b613cff565b611388601a6000868481518110613cc657613cc6615376565b602002602001015160ff168152602001908152602001600020541115613cff57604051630d1ecf1760e11b815260040160405180910390fd5b601a6000858381518110613d1557613d15615376565b602002602001015160ff1681526020019081526020016000206000815480929190613d3f906153de565b90915550506001600160a01b0386166000908152601c602052604081208551909190869084908110613d7357613d73615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190613dac906153bf565b91906101000a81548160ff021916908360ff160217905550508080600101915050613c2d565b508383604051613de291906158ae565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613e5e858261436f565b613e688185614389565b600160106000828254613e7b9190615515565b90915550505050505050565b600080613e9383612233565b9050806001600160a01b0316846001600160a01b03161480613eda57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112625750836001600160a01b0316613ef384610f52565b6001600160a01b031614949350505050565b826001600160a01b0316613f1882612233565b6001600160a01b031614613f3e5760405162461bcd60e51b8152600401610fed906158e7565b6001600160a01b038216613fa05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fed565b826001600160a01b0316613fb382612233565b6001600160a01b031614613fd95760405162461bcd60e51b8152600401610fed906158e7565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120d081614454565b6007546001600160a01b031633146123ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fed565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361417f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fed565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d64565b6141ef848484613f05565b6141fb84848484614494565b611b185760405162461bcd60e51b8152600401610fed9061592c565b606061422282613940565b6000828152600660205260408120805461423b906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054614267906153f7565b80156142b45780601f10614289576101008083540402835291602001916142b4565b820191906000526020600020905b81548152906001019060200180831161429757829003601f168201915b5050505050905060006142d260408051602081019091526000815290565b905080516000036142e4575092915050565b8151156143165780826040516020016142fe92919061597e565b60405160208183030381529060405292505050919050565b61126284614592565b60006001600160e01b031982166380ac58cd60e01b148061435057506001600160e01b03198216635b5e139f60e01b145b80610b0a57506301ffc9a760e01b6001600160e01b0319831614610b0a565b612fdc828260405180602001604052806000815250614606565b6000828152600260205260409020546001600160a01b03166144045760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fed565b600082815260066020526040902061441c8282615697565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61445d81614639565b60008181526006602052604090208054614476906153f7565b1590506120d05760008181526006602052604081206120d0916149c3565b60006001600160a01b0384163b1561458a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144d89033908990889088906004016159ad565b6020604051808303816000875af1925050508015614513575060408051601f3d908101601f19168201909252614510918101906159ea565b60015b614570573d808015614541576040519150601f19603f3d011682016040523d82523d6000602084013e614546565b606091505b5080516000036145685760405162461bcd60e51b8152600401610fed9061592c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611262565b506001611262565b606061459d82613940565b60006145b460408051602081019091526000815290565b905060008151116145d457604051806020016040528060008152506145ff565b806145de846146ce565b6040516020016145ef92919061597e565b6040516020818303038152906040525b9392505050565b6146108383614760565b61461d6000848484614494565b61108e5760405162461bcd60e51b8152600401610fed9061592c565b600061464482612233565b905061464f82612233565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006146db836148eb565b60010190506000816001600160401b038111156146fa576146fa614bc7565b6040519080825280601f01601f191660200182016040528015614724576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461472e57509392505050565b6001600160a01b0382166147b65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fed565b6000818152600260205260409020546001600160a01b03161561481b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6000818152600260205260409020546001600160a01b0316156148805760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061492a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614956576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061497457662386f26fc10000830492506010015b6305f5e100831061498c576305f5e100830492506008015b61271083106149a057612710830492506004015b606483106149b2576064830492506002015b600a8310610b0a5760010192915050565b5080546149cf906153f7565b6000825580601f106149df575050565b601f0160209004906000526020600020908101906120d091905b80821115614a0d57600081556001016149f9565b5090565b6001600160e01b0319811681146120d057600080fd5b600060208284031215614a3957600080fd5b81356145ff81614a11565b6001600160a01b03811681146120d057600080fd5b600060208284031215614a6b57600080fd5b81356145ff81614a44565b600081518084526020808501945080840160005b83811015614aa957815160ff1687529582019590820190600101614a8a565b509495945050505050565b606081526000614ac76060830186614a76565b602083820381850152614ada8287614a76565b8481036040860152855180825282870193509082019060005b81811015614b11578451151583529383019391830191600101614af3565b509098975050505050505050565b60005b83811015614b3a578181015183820152602001614b22565b50506000910152565b60008151808452614b5b816020860160208601614b1f565b601f01601f19169290920160200192915050565b6020815260006145ff6020830184614b43565b600060208284031215614b9457600080fd5b5035919050565b60008060408385031215614bae57600080fd5b8235614bb981614a44565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c0557614c05614bc7565b604052919050565b60006001600160401b03821115614c2657614c26614bc7565b5060051b60200190565b803560ff81168114614c4157600080fd5b919050565b600082601f830112614c5757600080fd5b81356020614c6c614c6783614c0d565b614bdd565b82815260059290921b84018101918181019086841115614c8b57600080fd5b8286015b84811015614cad57614ca081614c30565b8352918301918301614c8f565b509695505050505050565b60008060008060608587031215614cce57600080fd5b8435935060208501356001600160401b0380821115614cec57600080fd5b614cf888838901614c46565b94506040870135915080821115614d0e57600080fd5b818701915087601f830112614d2257600080fd5b813581811115614d3157600080fd5b886020828501011115614d4357600080fd5b95989497505060200194505050565b60008060408385031215614d6557600080fd5b8235614d7081614a44565b9150614d7e60208401614c30565b90509250929050565b600082601f830112614d9857600080fd5b81356020614da8614c6783614c0d565b82815260059290921b84018101918181019086841115614dc757600080fd5b8286015b84811015614cad5780356001600160401b03811115614dea5760008081fd5b614df88986838b0101614c46565b845250918301918301614dcb565b60008083601f840112614e1857600080fd5b5081356001600160401b03811115614e2f57600080fd5b6020830191508360208260051b8501011115614e4a57600080fd5b9250929050565b600080600080600060808688031215614e6957600080fd5b614e7286614c30565b94506020808701356001600160401b0380821115614e8f57600080fd5b818901915089601f830112614ea357600080fd5b8135614eb1614c6782614c0d565b81815260059190911b8301840190848101908c831115614ed057600080fd5b938501935b82851015614eee57843582529385019390850190614ed5565b985050506040890135925080831115614f0657600080fd5b614f128a848b01614d87565b95506060890135925080831115614f2857600080fd5b5050614f3688828901614e06565b969995985093965092949392505050565b60008060208385031215614f5a57600080fd5b82356001600160401b03811115614f7057600080fd5b614f7c85828601614e06565b90969095509350505050565b600080600060608486031215614f9d57600080fd5b8335614fa881614a44565b92506020840135614fb881614a44565b929592945050506040919091013590565b600060208284031215614fdb57600080fd5b6145ff82614c30565b600080600060608486031215614ff957600080fd5b833561500481614a44565b92506020840135915060408401356001600160401b0381111561502657600080fd5b61503286828701614c46565b9150509250925092565b80151581146120d057600080fd5b60006020828403121561505c57600080fd5b81356145ff8161503c565b60006001600160401b0382111561508057615080614bc7565b50601f01601f191660200190565b600061509c614c6784615067565b90508281528383830111156150b057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150d857600080fd5b6145ff8383356020850161508e565b60008060008060008060c0878903121561510057600080fd5b863561510b81614a44565b9550602087013561511b81614a44565b9450604087013561512b81614a44565b9350606087013561513b81614a44565b925060808701356001600160401b0381111561515657600080fd5b61516289828a016150c7565b92505060a087013561517381614a44565b809150509295509295509295565b6000806040838503121561519457600080fd5b82356001600160401b03808211156151ab57600080fd5b6151b7868387016150c7565b935060208501359150808211156151cd57600080fd5b506151da858286016150c7565b9150509250929050565b6000806000604084860312156151f957600080fd5b833561520481614a44565b925060208401356001600160401b0381111561521f57600080fd5b61522b86828701614e06565b9497909650939450505050565b6000806040838503121561524b57600080fd5b823561525681614a44565b915060208301356152668161503c565b809150509250929050565b6000806000806080858703121561528757600080fd5b843561529281614a44565b93506152a060208601614c30565b925060408501356152b081614a44565b91506152be60608601614c30565b905092959194509250565b600080600080608085870312156152df57600080fd5b84356152ea81614a44565b935060208501356152fa81614a44565b92506040850135915060608501356001600160401b0381111561531c57600080fd5b8501601f8101871361532d57600080fd5b61533c8782356020840161508e565b91505092959194509250565b6000806040838503121561535b57600080fd5b823561536681614a44565b9150602083013561526681614a44565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561539e57600080fd5b81516145ff8161503c565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff81036153d5576153d56153a9565b60010192915050565b6000600182016153f0576153f06153a9565b5060010190565b600181811c9082168061540b57607f821691505b60208210810361256a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561547d57845160ff168352938301939183019160010161545e565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b6000602082840312156154c457600080fd5b81516145ff81614a44565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b602001915036819003821315614e4a57600080fd5b80820180821115610b0a57610b0a6153a9565b60006020828403121561553a57600080fd5b5051919050565b600060ff821680615554576155546153a9565b6000190192915050565b60008184825b8581101561558d5760ff61557783614c30565b1683526020928301929190910190600101615564565b509095945050505050565b81810381811115610b0a57610b0a6153a9565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b60008261564c57634e487b7160e01b600052601260045260246000fd5b500490565b601f82111561108e57600081815260208120601f850160051c810160208610156156785750805b601f850160051c820191505b8181101561146f57828155600101615684565b81516001600160401b038111156156b0576156b0614bc7565b6156c4816156be84546153f7565b84615651565b602080601f8311600181146156f957600084156156e15750858301515b600019600386901b1c1916600185901b17855561146f565b600085815260208120601f198616915b8281101561572857888601518255948401946001909101908401615709565b50858210156157465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615764816153f7565b6001828116801561577c5760018114615791576157c0565b60ff19841687528215158302870194506157c0565b8a60005260208060002060005b858110156157b75781548a82015290840190820161579e565b50505082870194505b5050505085516157d4818360208a01614b1f565b85519101906157e7818360208901614b1f565b84519101906157fa818360208801614b1f565b019695505050505050565b60008251615817818460208701614b1f565b9190910192915050565b60006020828403121561583357600080fd5b81516001600160401b0381111561584957600080fd5b8201601f8101841361585a57600080fd5b8051615868614c6782615067565b81815285602083850101111561587d57600080fd5b61588e826020830160208601614b1f565b95945050505050565b8082028115828204841417610b0a57610b0a6153a9565b815160009082906020808601845b838110156158db57815160ff16855293820193908201906001016158bc565b50929695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615990818460208801614b1f565b8351908301906159a4818360208801614b1f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906159e090830184614b43565b9695505050505050565b6000602082840312156159fc57600080fd5b81516145ff81614a1156fea264697066735822122037e4870fe1827025a5878dbedd00e617ea8ebf7de08517dc09f16363951ab41464736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061046a5760003560e01c806379e8dadc1161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a82578063e985e9c514610a8a578063eb12d61e14610ac6578063f2fde38b14610ad9578063f98fd28314610aec57600080fd5b8063dbfc05cf14610a23578063ddb975e814610a36578063e1883c6e14610a49578063e4ae0b9b14610a5c578063e606df8714610a6957600080fd5b8063c87b56dd1161010a578063c87b56dd146109d9578063cafaa473146109ec578063d322b563146109ff578063d7093f4014610a12578063d780c47714610a1b57600080fd5b8063ad1684fa14610984578063b352618514610997578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd14610910578063a1af8ad41461093e578063a22cb46514610951578063a419811d14610964578063ab5351601461097757600080fd5b80638da5cb5b146108c95780639038f414146108da57806395d89b41146108e25780639a5613ad146108ea5780639c7f707f146108fd57600080fd5b80637df73e271161021b5780637df73e271461084e57806382d8a1181461087a578063886eb60f1461088357806388e0ef80146108965780638bf670c8146108b657600080fd5b806379e8dadc1461080d5780637ce65f7b146108155780637cf86b72146108285780637de99bd91461083b57600080fd5b8063267b841d116103685780635e31ce48116102e55780637065cb48116102a95780637065cb48146107b957806370a08231146107cc578063715018a6146107df5780637155a3ac146107e75780637232d7d4146107fa57600080fd5b80635e31ce48146107655780636352211e14610778578063656bd0ad1461078b57806368cc5bc1146107945780636d0af178146107a757600080fd5b80634039327e1161032c5780634039327e146106b257806342842e0e146106ba57806342966c68146106cd5780634c03cd0b146106e05780635312ea8e1461075257600080fd5b8063267b841d1461063a5780632ca699e71461064d5780632f54bf6e146106605780632f9e026a1461068c57806330f5cc581461069f57600080fd5b8063147baac7116103f6578063203335f6116103ba578063203335f6146105e557806320965a5f146105f857806321a7c6b01461060b57806323b872dd14610614578063241a08fe1461062757600080fd5b8063147baac71461057557806314cca36a14610587578063155e2f921461059a5780631585cc4e146105ad578063173825d9146105d257600080fd5b8063081812fc1161043d578063081812fc146104fc578063095ea7b3146105275780630e316ab71461053c578063128916dc1461054f5780631306952c1461056257600080fd5b806301ffc9a71461046f5780630435dcaf1461049757806306fdde03146104b957806307b2e246146104ce575b600080fd5b61048261047d366004614a27565b610aff565b60405190151581526020015b60405180910390f35b6104aa6104a5366004614a59565b610b10565b60405161048e93929190614ab4565b6104c1610ec0565b60405161048e9190614b6f565b6104ee6104dc366004614a59565b601b6020526000908152604090205481565b60405190815260200161048e565b61050f61050a366004614b82565b610f52565b6040516001600160a01b03909116815260200161048e565b61053a610535366004614b9b565b610f79565b005b61053a61054a366004614a59565b611093565b61053a61055d366004614a59565b611139565b61050f610570366004614cb8565b6111dc565b60185461048290610100900460ff1681565b600a5461050f906001600160a01b031681565b61053a6105a8366004614d52565b61126a565b6105c06105bb366004614d52565b6112e7565b60405160ff909116815260200161048e565b61053a6105e0366004614a59565b611341565b61053a6105f3366004614e51565b6113b8565b61053a610606366004614f47565b611477565b6104ee60135481565b61053a610622366004614f88565b611a93565b61053a610635366004614fc9565b611ac5565b61053a610648366004614cb8565b611b0b565b61053a61065b366004614d52565b611b1e565b61048261066e366004614a59565b6001600160a01b03166000908152600b602052604090205460ff1690565b60085461050f906001600160a01b031681565b61053a6106ad366004614fe4565b611d71565b6104c1611ff9565b61053a6106c8366004614f88565b612087565b61053a6106db366004614b82565b6120a2565b6107226106ee366004614b82565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b61053a610760366004614b82565b6120d3565b61053a610773366004614b82565b6121ee565b61050f610786366004614b82565b612233565b6104ee60115481565b61053a6107a236600461504a565b612293565b600f546105c090610100900460ff1681565b61053a6107c7366004614a59565b6122df565b6104ee6107da366004614a59565b612356565b61053a6123dc565b61053a6107f5366004614d52565b6123f0565b61053a610808366004614b82565b612450565b6104c16124a6565b61053a610823366004614fc9565b6124b3565b6104ee610836366004614a59565b612524565b61053a6108493660046150e7565b612570565b61048261085c366004614a59565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee60105481565b610482610891366004614d52565b61274b565b6104ee6108a4366004614b82565b601a6020526000908152604090205481565b6104826108c4366004614d52565b6127a7565b6007546001600160a01b031661050f565b610482612806565b6104c1612ba6565b6018546104829062010000900460ff1681565b61053a61090b366004615181565b612bb5565b6105c061091e366004614d52565b601c60209081526000928352604080842090915290825290205460ff1681565b61053a61094c3660046151e4565b612c57565b61053a61095f366004615238565b612fd1565b61053a610972366004614a59565b612fe0565b600f546105c09060ff1681565b61053a610992366004615271565b61307f565b6104ee60145481565b61053a6109ae3660046152c9565b613312565b61053a6109c1366004614b82565b613344565b61053a6109d4366004614fc9565b61339a565b6104c16109e7366004614b82565b6135e6565b61053a6109fa366004614a59565b6135f1565b60095461050f906001600160a01b031681565b6104ee60125481565b6104ee613694565b61053a610a3136600461504a565b6136c1565b61053a610a44366004614a59565b613704565b61053a610a57366004614b82565b6137a7565b6018546104829060ff1681565b600f5461050f906201000090046001600160a01b031681565b6104c16137d7565b610482610a98366004615348565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61053a610ad4366004614a59565b6137e4565b61053a610ae7366004614a59565b61385b565b61053a610afa36600461504a565b6138d1565b6000610b0a8261391b565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610cf6576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610ce45780858360ff1681518110610bdc57610bdc615376565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610c2c57610c2c615376565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb1919061538c565b838360ff1681518110610cc657610cc6615376565b9115156020928302919091019091015281610ce0816153bf565b9250505b80610cee816153bf565b915050610b8d565b5060008160ff166001600160401b03811115610d1457610d14614bc7565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5d57610d5d614bc7565b604051908082528060200260200182016040528015610d86578160200160208202803683370190505b50905060008360ff166001600160401b03811115610da657610da6614bc7565b604051908082528060200260200182016040528015610dcf578160200160208202803683370190505b50905060005b8460ff16811015610eae57878181518110610df257610df2615376565b6020026020010151848281518110610e0c57610e0c615376565b602002602001019060ff16908160ff1681525050868181518110610e3257610e32615376565b6020026020010151838281518110610e4c57610e4c615376565b602002602001019060ff16908160ff1681525050858181518110610e7257610e72615376565b6020026020010151828281518110610e8c57610e8c615376565b9115156020928302919091019091015280610ea6816153de565b915050610dd5565b50919a90995090975095505050505050565b606060008054610ecf906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610efb906153f7565b8015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b5050505050905090565b6000610f5d82613940565b506000908152600460205260409020546001600160a01b031690565b6000610f8482612233565b9050806001600160a01b0316836001600160a01b031603610ff65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101257506110128133610a98565b6110845760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fed565b61108e838361399f565b505050565b336000908152600b602052604090205460ff166110c357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661116957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166111915760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061121e903390899089908990899060040161542b565b602060405180830381865af415801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f91906154b2565b90505b949350505050565b6009546001600160a01b0316331461129557604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca836153bf565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166113115760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661137157604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611106565b60ff851615806113d05750600f5460ff908116908616115b156113ee57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561146f5761145d3386838151811061141257611412615376565b602002602001015186848151811061142c5761142c615376565b602002602001015186868681811061144657611446615376565b905060200281019061145891906154cf565b613a0d565b80611467816153de565b9150506113f1565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036114b55760405163210f01d160e21b815260040160405180910390fd5b336000908152601b60205260408120546114d0908390615515565b90506000603c821061158857600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f9190615528565b90506014548110806115645750601454601254105b156115825760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190615528565b1190508360005b8181101561182057336000908152601c602052604081209088888481811061162a5761162a615376565b905060200201602081019061163f9190614fc9565b60ff9081168252602082019290925260400160009081205490911690036116795760405163210f01d160e21b815260040160405180910390fd5b821561179c576009546001600160a01b0316632edb5fcf338989858181106116a3576116a3615376565b90506020020160208101906116b89190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611728919061538c565b1561179c57336000908152601c6020526040812060029189898581811061175157611751615376565b90506020020160208101906117669190614fc9565b60ff908116825260208201929092526040016000205416101561179c5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c60205260408120908888848181106117be576117be615376565b90506020020160208101906117d39190614fc9565b60ff908116825260208201929092526040016000908120805490921691906117fa83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050611600565b50336000908152601b602052604081208054839290611840908490615515565b9091555050604051611855908790879061555e565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561146f57336000908152601c60209081526040808320607984529091528120805460ff16916118b783615541565b91906101000a81548160ff021916908360ff1602179055505061196833601680546118e1906153f7565b80601f016020809104026020016040519081016040528092919081815260200182805461190d906153f7565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b505050505060796002613e24565b6014546012600082825461197c9190615598565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff919061538c565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b611a9e335b82613e87565b611aba5760405162461bcd60e51b8152600401610fed906155ab565b61108e838383613f05565b336000908152600b602052604090205460ff16611af557604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b611b183385858585613a0d565b50505050565b816001600160a01b038116611b465760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611b845760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611bad57604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611c8457600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c34919061538c565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611c655750805b611c815760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611cb083615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611cff836153bf565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611d64919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611da157604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506006601154611e16919061562f565b601154611e239190615598565b60126000828254611e349190615515565b90915550600090505b8151811015611b1857818181518110611e5857611e58615376565b602002602001015160ff16607814611ea357611389601a6000848481518110611e8357611e83615376565b602002602001015160ff1681526020019081526020016000205410611ed4565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611f205760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fed565b601a6000838381518110611f3657611f36615376565b602002602001015160ff1681526020019081526020016000206000815480929190611f60906153de565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611f9457611f94615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611fcd906153bf565b91906101000a81548160ff021916908360ff160217905550508080611ff1906153de565b915050611e3d565b60168054612006906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906153f7565b801561207f5780601f106120545761010080835404028352916020019161207f565b820191906000526020600020905b81548152906001019060200180831161206257829003601f168201915b505050505081565b61108e83838360405180602001604052806000815250613312565b6120ab33611a98565b6120c75760405162461bcd60e51b8152600401610fed906155ab565b6120d081614069565b50565b336000908152600b602052604090205460ff1661210357604051634289c49360e01b815260040160405180910390fd5b8061210d30612356565b101561212c5760405163356680b760e01b815260040160405180910390fd5b806012600082825461213e9190615598565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd919061538c565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b03163314612219576040516307473cc760e41b815260040160405180910390fd5b806012600082825461222b9190615515565b909155505050565b6000818152600260205260408120546001600160a01b031680610b0a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b336000908152600b602052604090205460ff166122c357604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661230f57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611106565b60006001600160a01b0382166123c05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fed565b506001600160a01b031660009081526003602052604090205490565b6123e4614072565b6123ee60006140cc565b565b6009546001600160a01b0316331461241b57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca83615541565b336000908152600b602052604090205460ff1661248057604051634289c49360e01b815260040160405180910390fd5b806000036124a157604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054612006906153f7565b336000908152600b602052604090205460ff166124e357604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561250857604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b03811661254e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b612578614072565b336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a8054868416908316179055600980549287169290911691909117905560176125fc8382615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516126599460179493909101615756565b604051602081830303815290604052601590816126769190615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516126d39460179493909101615756565b604051602081830303815290604052601690816126f09190615697565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015612742576000818152601a60205260409020600190558061273a816153de565b915050612715565b50505050505050565b6000826001600160a01b0381166127755760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146127d557604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036128445760405163210f01d160e21b815260040160405180910390fd5b601354601254101561286957604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128dc9190615528565b90506013548110156129015760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161299057336000908152601c6020908152604080832060ff8086168552925282205416900361293e5760019150612990565b336000908152601c6020908152604080832060ff80861685529252822080549091169161296a83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050612905565b5080156129af57604051623de82960e51b815260040160405180910390fd5b612a4733601580546129c0906153f7565b80601f01602080910402602001604051908101604052809291908181526020018280546129ec906153f7565b8015612a395780601f10612a0e57610100808354040283529160200191612a39565b820191906000526020600020905b815481529060010190602001808311612a1c57829003601f168201915b505050505060786002613e24565b600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac5919061538c565b5060135460126000828254612ada9190615598565b9091555050600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e919061538c565b905080612b6e5760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610ecf906153f7565b336000908152600b602052604090205460ff16612be557604051634289c49360e01b815260040160405180910390fd5b6015612bf18382615697565b506016612bfe8282615697565b5080604051612c0d9190615805565b604051809103902082604051612c239190615805565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b038116612c7f5760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03851603612ca857604051632f35253160e01b815260040160405180910390fd5b60005b82811015612f7d57336000908152601c6020526040812090858584818110612cd557612cd5615376565b9050602002016020810190612cea9190614fc9565b60ff908116825260208201929092526040016000908120549091169003612d245760405163210f01d160e21b815260040160405180910390fd5b336000908152601c6020526040812090858584818110612d4657612d46615376565b9050602002016020810190612d5b9190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612d8283615541565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612dd457612dd4615376565b9050602002016020810190612de99190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612e10836153bf565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612f6b576009546000906001600160a01b0316632edb5fcf33878786818110612e6557612e65615376565b9050602002016020810190612e7a9190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061538c565b336000908152601c602052604081209192509060019082888887818110612f1357612f13615376565b9050602002016020810190612f289190614fc9565b60ff908116825260208201929092526040016000205416119050811580612f4c5750805b612f685760405162461bcd60e51b8152600401610fed906155f8565b50505b80612f75816153de565b915050612cab565b508282604051612f8e92919061555e565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b612fdc33838361411e565b5050565b336000908152600b602052604090205460ff1661301057604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611612fdc576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691613053836153bf565b91906101000a81548160ff021916908360ff160217905550508080613077906153bf565b915050613013565b6009546001600160a01b031633146130aa57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b0381166130d25760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b0381166130fa5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292529091205416158061315557506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b156131735760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925282208054909116916131a883615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a851684529091528120805490921692506131f7836153bf565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c60209081526040808320888516845290915281208054909216925061324683615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250613295836153bf565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524878660405161330292919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b61331c3383613e87565b6133385760405162461bcd60e51b8152600401610fed906155ab565b611b18848484846141e4565b336000908152600b602052604090205460ff1661337457604051634289c49360e01b815260040160405180910390fd5b8060000361339557604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036133d85760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff16156134ae57600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e919061538c565b336000908152601c6020908152604080832060ff8088168552925290912054919250600191161181158061348f5750805b6134ab5760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff8086168552925282208054909116916134da83615541565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b815260040161354f91815260200190565b600060405180830381865af415801561356c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135949190810190615821565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016135c59493929190615756565b6040516020818303038152906040529050612fdc33828460ff166001613e24565b6060610b0a82614217565b336000908152600b602052604090205460ff1661362157604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166136495760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f546000916064916136b29190610100900460ff16615897565b6136bc919061562f565b905090565b336000908152600b602052604090205460ff166136f157604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661373457604051634289c49360e01b815260040160405180910390fd5b806001600160a01b03811661375c5760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b031633146137d2576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054612006906153f7565b336000908152600b602052604090205460ff1661381457604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611106565b613863614072565b6001600160a01b0381166138c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fed565b6120d0816140cc565b336000908152600b602052604090205460ff1661390157604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610b0a5750610b0a8261431f565b6000818152600260205260409020546001600160a01b03166120d05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139d482612233565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7c91906154b2565b6001600160a01b031614613aa357604051637f6ecdf560e01b815260040160405180910390fd5b600f835110613ac557604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613b91576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613b12903390899089908990899060040161542b565b602060405180830381865af4158015613b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5391906154b2565b6001600160a01b0381166000908152600e602052604090205490915060ff16613b8f57604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b158015613bdf57600080fd5b505af1158015613bf3573d6000803e3d6000fd5b505050506006601154613c06919061562f565b601154613c139190615598565b60126000828254613c249190615515565b90915550600090505b8351811015613dd257838181518110613c4857613c48615376565b602002602001015160ff16607803613cad576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb81015613ca857604051630d1ecf1760e11b815260040160405180910390fd5b613cff565b611388601a6000868481518110613cc657613cc6615376565b602002602001015160ff168152602001908152602001600020541115613cff57604051630d1ecf1760e11b815260040160405180910390fd5b601a6000858381518110613d1557613d15615376565b602002602001015160ff1681526020019081526020016000206000815480929190613d3f906153de565b90915550506001600160a01b0386166000908152601c602052604081208551909190869084908110613d7357613d73615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190613dac906153bf565b91906101000a81548160ff021916908360ff160217905550508080600101915050613c2d565b508383604051613de291906158ae565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613e5e858261436f565b613e688185614389565b600160106000828254613e7b9190615515565b90915550505050505050565b600080613e9383612233565b9050806001600160a01b0316846001600160a01b03161480613eda57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112625750836001600160a01b0316613ef384610f52565b6001600160a01b031614949350505050565b826001600160a01b0316613f1882612233565b6001600160a01b031614613f3e5760405162461bcd60e51b8152600401610fed906158e7565b6001600160a01b038216613fa05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fed565b826001600160a01b0316613fb382612233565b6001600160a01b031614613fd95760405162461bcd60e51b8152600401610fed906158e7565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120d081614454565b6007546001600160a01b031633146123ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fed565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361417f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fed565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d64565b6141ef848484613f05565b6141fb84848484614494565b611b185760405162461bcd60e51b8152600401610fed9061592c565b606061422282613940565b6000828152600660205260408120805461423b906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054614267906153f7565b80156142b45780601f10614289576101008083540402835291602001916142b4565b820191906000526020600020905b81548152906001019060200180831161429757829003601f168201915b5050505050905060006142d260408051602081019091526000815290565b905080516000036142e4575092915050565b8151156143165780826040516020016142fe92919061597e565b60405160208183030381529060405292505050919050565b61126284614592565b60006001600160e01b031982166380ac58cd60e01b148061435057506001600160e01b03198216635b5e139f60e01b145b80610b0a57506301ffc9a760e01b6001600160e01b0319831614610b0a565b612fdc828260405180602001604052806000815250614606565b6000828152600260205260409020546001600160a01b03166144045760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fed565b600082815260066020526040902061441c8282615697565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61445d81614639565b60008181526006602052604090208054614476906153f7565b1590506120d05760008181526006602052604081206120d0916149c3565b60006001600160a01b0384163b1561458a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144d89033908990889088906004016159ad565b6020604051808303816000875af1925050508015614513575060408051601f3d908101601f19168201909252614510918101906159ea565b60015b614570573d808015614541576040519150601f19603f3d011682016040523d82523d6000602084013e614546565b606091505b5080516000036145685760405162461bcd60e51b8152600401610fed9061592c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611262565b506001611262565b606061459d82613940565b60006145b460408051602081019091526000815290565b905060008151116145d457604051806020016040528060008152506145ff565b806145de846146ce565b6040516020016145ef92919061597e565b6040516020818303038152906040525b9392505050565b6146108383614760565b61461d6000848484614494565b61108e5760405162461bcd60e51b8152600401610fed9061592c565b600061464482612233565b905061464f82612233565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006146db836148eb565b60010190506000816001600160401b038111156146fa576146fa614bc7565b6040519080825280601f01601f191660200182016040528015614724576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461472e57509392505050565b6001600160a01b0382166147b65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fed565b6000818152600260205260409020546001600160a01b03161561481b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6000818152600260205260409020546001600160a01b0316156148805760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061492a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614956576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061497457662386f26fc10000830492506010015b6305f5e100831061498c576305f5e100830492506008015b61271083106149a057612710830492506004015b606483106149b2576064830492506002015b600a8310610b0a5760010192915050565b5080546149cf906153f7565b6000825580601f106149df575050565b601f0160209004906000526020600020908101906120d091905b80821115614a0d57600081556001016149f9565b5090565b6001600160e01b0319811681146120d057600080fd5b600060208284031215614a3957600080fd5b81356145ff81614a11565b6001600160a01b03811681146120d057600080fd5b600060208284031215614a6b57600080fd5b81356145ff81614a44565b600081518084526020808501945080840160005b83811015614aa957815160ff1687529582019590820190600101614a8a565b509495945050505050565b606081526000614ac76060830186614a76565b602083820381850152614ada8287614a76565b8481036040860152855180825282870193509082019060005b81811015614b11578451151583529383019391830191600101614af3565b509098975050505050505050565b60005b83811015614b3a578181015183820152602001614b22565b50506000910152565b60008151808452614b5b816020860160208601614b1f565b601f01601f19169290920160200192915050565b6020815260006145ff6020830184614b43565b600060208284031215614b9457600080fd5b5035919050565b60008060408385031215614bae57600080fd5b8235614bb981614a44565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c0557614c05614bc7565b604052919050565b60006001600160401b03821115614c2657614c26614bc7565b5060051b60200190565b803560ff81168114614c4157600080fd5b919050565b600082601f830112614c5757600080fd5b81356020614c6c614c6783614c0d565b614bdd565b82815260059290921b84018101918181019086841115614c8b57600080fd5b8286015b84811015614cad57614ca081614c30565b8352918301918301614c8f565b509695505050505050565b60008060008060608587031215614cce57600080fd5b8435935060208501356001600160401b0380821115614cec57600080fd5b614cf888838901614c46565b94506040870135915080821115614d0e57600080fd5b818701915087601f830112614d2257600080fd5b813581811115614d3157600080fd5b886020828501011115614d4357600080fd5b95989497505060200194505050565b60008060408385031215614d6557600080fd5b8235614d7081614a44565b9150614d7e60208401614c30565b90509250929050565b600082601f830112614d9857600080fd5b81356020614da8614c6783614c0d565b82815260059290921b84018101918181019086841115614dc757600080fd5b8286015b84811015614cad5780356001600160401b03811115614dea5760008081fd5b614df88986838b0101614c46565b845250918301918301614dcb565b60008083601f840112614e1857600080fd5b5081356001600160401b03811115614e2f57600080fd5b6020830191508360208260051b8501011115614e4a57600080fd5b9250929050565b600080600080600060808688031215614e6957600080fd5b614e7286614c30565b94506020808701356001600160401b0380821115614e8f57600080fd5b818901915089601f830112614ea357600080fd5b8135614eb1614c6782614c0d565b81815260059190911b8301840190848101908c831115614ed057600080fd5b938501935b82851015614eee57843582529385019390850190614ed5565b985050506040890135925080831115614f0657600080fd5b614f128a848b01614d87565b95506060890135925080831115614f2857600080fd5b5050614f3688828901614e06565b969995985093965092949392505050565b60008060208385031215614f5a57600080fd5b82356001600160401b03811115614f7057600080fd5b614f7c85828601614e06565b90969095509350505050565b600080600060608486031215614f9d57600080fd5b8335614fa881614a44565b92506020840135614fb881614a44565b929592945050506040919091013590565b600060208284031215614fdb57600080fd5b6145ff82614c30565b600080600060608486031215614ff957600080fd5b833561500481614a44565b92506020840135915060408401356001600160401b0381111561502657600080fd5b61503286828701614c46565b9150509250925092565b80151581146120d057600080fd5b60006020828403121561505c57600080fd5b81356145ff8161503c565b60006001600160401b0382111561508057615080614bc7565b50601f01601f191660200190565b600061509c614c6784615067565b90508281528383830111156150b057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150d857600080fd5b6145ff8383356020850161508e565b60008060008060008060c0878903121561510057600080fd5b863561510b81614a44565b9550602087013561511b81614a44565b9450604087013561512b81614a44565b9350606087013561513b81614a44565b925060808701356001600160401b0381111561515657600080fd5b61516289828a016150c7565b92505060a087013561517381614a44565b809150509295509295509295565b6000806040838503121561519457600080fd5b82356001600160401b03808211156151ab57600080fd5b6151b7868387016150c7565b935060208501359150808211156151cd57600080fd5b506151da858286016150c7565b9150509250929050565b6000806000604084860312156151f957600080fd5b833561520481614a44565b925060208401356001600160401b0381111561521f57600080fd5b61522b86828701614e06565b9497909650939450505050565b6000806040838503121561524b57600080fd5b823561525681614a44565b915060208301356152668161503c565b809150509250929050565b6000806000806080858703121561528757600080fd5b843561529281614a44565b93506152a060208601614c30565b925060408501356152b081614a44565b91506152be60608601614c30565b905092959194509250565b600080600080608085870312156152df57600080fd5b84356152ea81614a44565b935060208501356152fa81614a44565b92506040850135915060608501356001600160401b0381111561531c57600080fd5b8501601f8101871361532d57600080fd5b61533c8782356020840161508e565b91505092959194509250565b6000806040838503121561535b57600080fd5b823561536681614a44565b9150602083013561526681614a44565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561539e57600080fd5b81516145ff8161503c565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff81036153d5576153d56153a9565b60010192915050565b6000600182016153f0576153f06153a9565b5060010190565b600181811c9082168061540b57607f821691505b60208210810361256a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561547d57845160ff168352938301939183019160010161545e565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b6000602082840312156154c457600080fd5b81516145ff81614a44565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b602001915036819003821315614e4a57600080fd5b80820180821115610b0a57610b0a6153a9565b60006020828403121561553a57600080fd5b5051919050565b600060ff821680615554576155546153a9565b6000190192915050565b60008184825b8581101561558d5760ff61557783614c30565b1683526020928301929190910190600101615564565b509095945050505050565b81810381811115610b0a57610b0a6153a9565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b60008261564c57634e487b7160e01b600052601260045260246000fd5b500490565b601f82111561108e57600081815260208120601f850160051c810160208610156156785750805b601f850160051c820191505b8181101561146f57828155600101615684565b81516001600160401b038111156156b0576156b0614bc7565b6156c4816156be84546153f7565b84615651565b602080601f8311600181146156f957600084156156e15750858301515b600019600386901b1c1916600185901b17855561146f565b600085815260208120601f198616915b8281101561572857888601518255948401946001909101908401615709565b50858210156157465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615764816153f7565b6001828116801561577c5760018114615791576157c0565b60ff19841687528215158302870194506157c0565b8a60005260208060002060005b858110156157b75781548a82015290840190820161579e565b50505082870194505b5050505085516157d4818360208a01614b1f565b85519101906157e7818360208901614b1f565b84519101906157fa818360208801614b1f565b019695505050505050565b60008251615817818460208701614b1f565b9190910192915050565b60006020828403121561583357600080fd5b81516001600160401b0381111561584957600080fd5b8201601f8101841361585a57600080fd5b8051615868614c6782615067565b81815285602083850101111561587d57600080fd5b61588e826020830160208601614b1f565b95945050505050565b8082028115828204841417610b0a57610b0a6153a9565b815160009082906020808601845b838110156158db57815160ff16855293820193908201906001016158bc565b50929695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615990818460208801614b1f565b8351908301906159a4818360208801614b1f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906159e090830184614b43565b9695505050505050565b6000602082840312156159fc57600080fd5b81516145ff81614a1156fea264697066735822122037e4870fe1827025a5878dbedd00e617ea8ebf7de08517dc09f16363951ab41464736f6c63430008140033", + "bytecode": "0x6080604052600f805461ffff191661320a1790556710a741a462780000601155600060125567d02ab486cedc0000601355670de0b6b3a76400006014556018805462ffff001916620101001790553480156200005a57600080fd5b506040518060400160405280600a81526020016947616d6d61436172647360b01b815250604051806040016040528060068152602001654e4f465f474360d01b8152508160009081620000ae9190620001db565b506001620000bd8282620001db565b505050620000da620000d4620000e060201b60201c565b620000e4565b620002a7565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016157607f821691505b6020821081036200018257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001d657600081815260208120601f850160051c81016020861015620001b15750805b601f850160051c820191505b81811015620001d257828155600101620001bd565b5050505b505050565b81516001600160401b03811115620001f757620001f762000136565b6200020f816200020884546200014c565b8462000188565b602080601f8311600181146200024757600084156200022e5750858301515b600019600386901b1c1916600185901b178555620001d2565b600085815260208120601f198616915b82811015620002785788860151825594840194600190910190840162000257565b5085821015620002975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b615a3d80620002b76000396000f3fe608060405234801561001057600080fd5b506004361061046a5760003560e01c806379e8dadc1161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a82578063e985e9c514610a8a578063eb12d61e14610ac6578063f2fde38b14610ad9578063f98fd28314610aec57600080fd5b8063dbfc05cf14610a23578063ddb975e814610a36578063e1883c6e14610a49578063e4ae0b9b14610a5c578063e606df8714610a6957600080fd5b8063c87b56dd1161010a578063c87b56dd146109d9578063cafaa473146109ec578063d322b563146109ff578063d7093f4014610a12578063d780c47714610a1b57600080fd5b8063ad1684fa14610984578063b352618514610997578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd14610910578063a1af8ad41461093e578063a22cb46514610951578063a419811d14610964578063ab5351601461097757600080fd5b80638da5cb5b146108c95780639038f414146108da57806395d89b41146108e25780639a5613ad146108ea5780639c7f707f146108fd57600080fd5b80637df73e271161021b5780637df73e271461084e57806382d8a1181461087a578063886eb60f1461088357806388e0ef80146108965780638bf670c8146108b657600080fd5b806379e8dadc1461080d5780637ce65f7b146108155780637cf86b72146108285780637de99bd91461083b57600080fd5b8063267b841d116103685780635e31ce48116102e55780637065cb48116102a95780637065cb48146107b957806370a08231146107cc578063715018a6146107df5780637155a3ac146107e75780637232d7d4146107fa57600080fd5b80635e31ce48146107655780636352211e14610778578063656bd0ad1461078b57806368cc5bc1146107945780636d0af178146107a757600080fd5b80634039327e1161032c5780634039327e146106b257806342842e0e146106ba57806342966c68146106cd5780634c03cd0b146106e05780635312ea8e1461075257600080fd5b8063267b841d1461063a5780632ca699e71461064d5780632f54bf6e146106605780632f9e026a1461068c57806330f5cc581461069f57600080fd5b8063147baac7116103f6578063203335f6116103ba578063203335f6146105e557806320965a5f146105f857806321a7c6b01461060b57806323b872dd14610614578063241a08fe1461062757600080fd5b8063147baac71461057557806314cca36a14610587578063155e2f921461059a5780631585cc4e146105ad578063173825d9146105d257600080fd5b8063081812fc1161043d578063081812fc146104fc578063095ea7b3146105275780630e316ab71461053c578063128916dc1461054f5780631306952c1461056257600080fd5b806301ffc9a71461046f5780630435dcaf1461049757806306fdde03146104b957806307b2e246146104ce575b600080fd5b61048261047d366004614a27565b610aff565b60405190151581526020015b60405180910390f35b6104aa6104a5366004614a59565b610b10565b60405161048e93929190614ab4565b6104c1610ec0565b60405161048e9190614b6f565b6104ee6104dc366004614a59565b601b6020526000908152604090205481565b60405190815260200161048e565b61050f61050a366004614b82565b610f52565b6040516001600160a01b03909116815260200161048e565b61053a610535366004614b9b565b610f79565b005b61053a61054a366004614a59565b611093565b61053a61055d366004614a59565b611139565b61050f610570366004614cb8565b6111dc565b60185461048290610100900460ff1681565b600a5461050f906001600160a01b031681565b61053a6105a8366004614d52565b61126a565b6105c06105bb366004614d52565b6112e7565b60405160ff909116815260200161048e565b61053a6105e0366004614a59565b611341565b61053a6105f3366004614e51565b6113b8565b61053a610606366004614f47565b611477565b6104ee60135481565b61053a610622366004614f88565b611a93565b61053a610635366004614fc9565b611ac5565b61053a610648366004614cb8565b611b0b565b61053a61065b366004614d52565b611b1e565b61048261066e366004614a59565b6001600160a01b03166000908152600b602052604090205460ff1690565b60085461050f906001600160a01b031681565b61053a6106ad366004614fe4565b611d71565b6104c1611ff9565b61053a6106c8366004614f88565b612087565b61053a6106db366004614b82565b6120a2565b6107226106ee366004614b82565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b61053a610760366004614b82565b6120d3565b61053a610773366004614b82565b6121ee565b61050f610786366004614b82565b612233565b6104ee60115481565b61053a6107a236600461504a565b612293565b600f546105c090610100900460ff1681565b61053a6107c7366004614a59565b6122df565b6104ee6107da366004614a59565b612356565b61053a6123dc565b61053a6107f5366004614d52565b6123f0565b61053a610808366004614b82565b612450565b6104c16124a6565b61053a610823366004614fc9565b6124b3565b6104ee610836366004614a59565b612524565b61053a6108493660046150e7565b612570565b61048261085c366004614a59565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee60105481565b610482610891366004614d52565b61274b565b6104ee6108a4366004614b82565b601a6020526000908152604090205481565b6104826108c4366004614d52565b6127a7565b6007546001600160a01b031661050f565b610482612806565b6104c1612ba6565b6018546104829062010000900460ff1681565b61053a61090b366004615181565b612bb5565b6105c061091e366004614d52565b601c60209081526000928352604080842090915290825290205460ff1681565b61053a61094c3660046151e4565b612c57565b61053a61095f366004615238565b612fd1565b61053a610972366004614a59565b612fe0565b600f546105c09060ff1681565b61053a610992366004615271565b61307f565b6104ee60145481565b61053a6109ae3660046152c9565b613312565b61053a6109c1366004614b82565b613344565b61053a6109d4366004614fc9565b61339a565b6104c16109e7366004614b82565b6135e6565b61053a6109fa366004614a59565b6135f1565b60095461050f906001600160a01b031681565b6104ee60125481565b6104ee613694565b61053a610a3136600461504a565b6136c1565b61053a610a44366004614a59565b613704565b61053a610a57366004614b82565b6137a7565b6018546104829060ff1681565b600f5461050f906201000090046001600160a01b031681565b6104c16137d7565b610482610a98366004615348565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61053a610ad4366004614a59565b6137e4565b61053a610ae7366004614a59565b61385b565b61053a610afa36600461504a565b6138d1565b6000610b0a8261391b565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610cf6576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610ce45780858360ff1681518110610bdc57610bdc615376565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610c2c57610c2c615376565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb1919061538c565b838360ff1681518110610cc657610cc6615376565b9115156020928302919091019091015281610ce0816153bf565b9250505b80610cee816153bf565b915050610b8d565b5060008160ff166001600160401b03811115610d1457610d14614bc7565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5d57610d5d614bc7565b604051908082528060200260200182016040528015610d86578160200160208202803683370190505b50905060008360ff166001600160401b03811115610da657610da6614bc7565b604051908082528060200260200182016040528015610dcf578160200160208202803683370190505b50905060005b8460ff16811015610eae57878181518110610df257610df2615376565b6020026020010151848281518110610e0c57610e0c615376565b602002602001019060ff16908160ff1681525050868181518110610e3257610e32615376565b6020026020010151838281518110610e4c57610e4c615376565b602002602001019060ff16908160ff1681525050858181518110610e7257610e72615376565b6020026020010151828281518110610e8c57610e8c615376565b9115156020928302919091019091015280610ea6816153de565b915050610dd5565b50919a90995090975095505050505050565b606060008054610ecf906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610efb906153f7565b8015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b5050505050905090565b6000610f5d82613940565b506000908152600460205260409020546001600160a01b031690565b6000610f8482612233565b9050806001600160a01b0316836001600160a01b031603610ff65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101257506110128133610a98565b6110845760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fed565b61108e838361399f565b505050565b336000908152600b602052604090205460ff166110c357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661116957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166111915760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061121e903390899089908990899060040161542b565b602060405180830381865af415801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f91906154b2565b90505b949350505050565b6009546001600160a01b0316331461129557604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca836153bf565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166113115760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661137157604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611106565b60ff851615806113d05750600f5460ff908116908616115b156113ee57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561146f5761145d3386838151811061141257611412615376565b602002602001015186848151811061142c5761142c615376565b602002602001015186868681811061144657611446615376565b905060200281019061145891906154cf565b613a0d565b80611467816153de565b9150506113f1565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036114b55760405163210f01d160e21b815260040160405180910390fd5b336000908152601b60205260408120546114d0908390615515565b90506000603c821061158857600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f9190615528565b90506014548110806115645750601454601254105b156115825760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190615528565b1190508360005b8181101561182057336000908152601c602052604081209088888481811061162a5761162a615376565b905060200201602081019061163f9190614fc9565b60ff9081168252602082019290925260400160009081205490911690036116795760405163210f01d160e21b815260040160405180910390fd5b821561179c576009546001600160a01b0316632edb5fcf338989858181106116a3576116a3615376565b90506020020160208101906116b89190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611728919061538c565b1561179c57336000908152601c6020526040812060029189898581811061175157611751615376565b90506020020160208101906117669190614fc9565b60ff908116825260208201929092526040016000205416101561179c5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c60205260408120908888848181106117be576117be615376565b90506020020160208101906117d39190614fc9565b60ff908116825260208201929092526040016000908120805490921691906117fa83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050611600565b50336000908152601b602052604081208054839290611840908490615515565b9091555050604051611855908790879061555e565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561146f57336000908152601c60209081526040808320607984529091528120805460ff16916118b783615541565b91906101000a81548160ff021916908360ff1602179055505061196833601680546118e1906153f7565b80601f016020809104026020016040519081016040528092919081815260200182805461190d906153f7565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b505050505060796002613e24565b6014546012600082825461197c9190615598565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff919061538c565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b611a9e335b82613e87565b611aba5760405162461bcd60e51b8152600401610fed906155ab565b61108e838383613f05565b336000908152600b602052604090205460ff16611af557604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b611b183385858585613a0d565b50505050565b816001600160a01b038116611b465760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611b845760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611bad57604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611c8457600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c34919061538c565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611c655750805b611c815760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611cb083615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611cff836153bf565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611d64919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611da157604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506006601154611e16919061562f565b601154611e239190615598565b60126000828254611e349190615515565b90915550600090505b8151811015611b1857818181518110611e5857611e58615376565b602002602001015160ff16607814611ea357611389601a6000848481518110611e8357611e83615376565b602002602001015160ff1681526020019081526020016000205410611ed4565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611f205760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fed565b601a6000838381518110611f3657611f36615376565b602002602001015160ff1681526020019081526020016000206000815480929190611f60906153de565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611f9457611f94615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611fcd906153bf565b91906101000a81548160ff021916908360ff160217905550508080611ff1906153de565b915050611e3d565b60168054612006906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906153f7565b801561207f5780601f106120545761010080835404028352916020019161207f565b820191906000526020600020905b81548152906001019060200180831161206257829003601f168201915b505050505081565b61108e83838360405180602001604052806000815250613312565b6120ab33611a98565b6120c75760405162461bcd60e51b8152600401610fed906155ab565b6120d081614069565b50565b336000908152600b602052604090205460ff1661210357604051634289c49360e01b815260040160405180910390fd5b8061210d30612356565b101561212c5760405163356680b760e01b815260040160405180910390fd5b806012600082825461213e9190615598565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd919061538c565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b03163314612219576040516307473cc760e41b815260040160405180910390fd5b806012600082825461222b9190615515565b909155505050565b6000818152600260205260408120546001600160a01b031680610b0a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b336000908152600b602052604090205460ff166122c357604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661230f57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611106565b60006001600160a01b0382166123c05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fed565b506001600160a01b031660009081526003602052604090205490565b6123e4614072565b6123ee60006140cc565b565b6009546001600160a01b0316331461241b57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca83615541565b336000908152600b602052604090205460ff1661248057604051634289c49360e01b815260040160405180910390fd5b806000036124a157604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054612006906153f7565b336000908152600b602052604090205460ff166124e357604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561250857604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b03811661254e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b612578614072565b336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a8054868416908316179055600980549287169290911691909117905560176125fc8382615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516126599460179493909101615756565b604051602081830303815290604052601590816126769190615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516126d39460179493909101615756565b604051602081830303815290604052601690816126f09190615697565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015612742576000818152601a60205260409020600190558061273a816153de565b915050612715565b50505050505050565b6000826001600160a01b0381166127755760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146127d557604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036128445760405163210f01d160e21b815260040160405180910390fd5b601354601254101561286957604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128dc9190615528565b90506013548110156129015760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161299057336000908152601c6020908152604080832060ff8086168552925282205416900361293e5760019150612990565b336000908152601c6020908152604080832060ff80861685529252822080549091169161296a83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050612905565b5080156129af57604051623de82960e51b815260040160405180910390fd5b612a4733601580546129c0906153f7565b80601f01602080910402602001604051908101604052809291908181526020018280546129ec906153f7565b8015612a395780601f10612a0e57610100808354040283529160200191612a39565b820191906000526020600020905b815481529060010190602001808311612a1c57829003601f168201915b505050505060786002613e24565b60135460126000828254612a5b9190615598565b9091555050600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ade919061538c565b50600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e919061538c565b905080612b6e5760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610ecf906153f7565b336000908152600b602052604090205460ff16612be557604051634289c49360e01b815260040160405180910390fd5b6015612bf18382615697565b506016612bfe8282615697565b5080604051612c0d9190615805565b604051809103902082604051612c239190615805565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b038116612c7f5760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03851603612ca857604051632f35253160e01b815260040160405180910390fd5b60005b82811015612f7d57336000908152601c6020526040812090858584818110612cd557612cd5615376565b9050602002016020810190612cea9190614fc9565b60ff908116825260208201929092526040016000908120549091169003612d245760405163210f01d160e21b815260040160405180910390fd5b336000908152601c6020526040812090858584818110612d4657612d46615376565b9050602002016020810190612d5b9190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612d8283615541565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612dd457612dd4615376565b9050602002016020810190612de99190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612e10836153bf565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612f6b576009546000906001600160a01b0316632edb5fcf33878786818110612e6557612e65615376565b9050602002016020810190612e7a9190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061538c565b336000908152601c602052604081209192509060019082888887818110612f1357612f13615376565b9050602002016020810190612f289190614fc9565b60ff908116825260208201929092526040016000205416119050811580612f4c5750805b612f685760405162461bcd60e51b8152600401610fed906155f8565b50505b80612f75816153de565b915050612cab565b508282604051612f8e92919061555e565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b612fdc33838361411e565b5050565b336000908152600b602052604090205460ff1661301057604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611612fdc576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691613053836153bf565b91906101000a81548160ff021916908360ff160217905550508080613077906153bf565b915050613013565b6009546001600160a01b031633146130aa57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b0381166130d25760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b0381166130fa5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292529091205416158061315557506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b156131735760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925282208054909116916131a883615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a851684529091528120805490921692506131f7836153bf565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c60209081526040808320888516845290915281208054909216925061324683615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250613295836153bf565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524878660405161330292919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b61331c3383613e87565b6133385760405162461bcd60e51b8152600401610fed906155ab565b611b18848484846141e4565b336000908152600b602052604090205460ff1661337457604051634289c49360e01b815260040160405180910390fd5b8060000361339557604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036133d85760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff16156134ae57600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e919061538c565b336000908152601c6020908152604080832060ff8088168552925290912054919250600191161181158061348f5750805b6134ab5760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff8086168552925282208054909116916134da83615541565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b815260040161354f91815260200190565b600060405180830381865af415801561356c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135949190810190615821565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016135c59493929190615756565b6040516020818303038152906040529050612fdc33828460ff166001613e24565b6060610b0a82614217565b336000908152600b602052604090205460ff1661362157604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166136495760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f546000916064916136b29190610100900460ff16615897565b6136bc919061562f565b905090565b336000908152600b602052604090205460ff166136f157604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661373457604051634289c49360e01b815260040160405180910390fd5b806001600160a01b03811661375c5760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b031633146137d2576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054612006906153f7565b336000908152600b602052604090205460ff1661381457604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611106565b613863614072565b6001600160a01b0381166138c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fed565b6120d0816140cc565b336000908152600b602052604090205460ff1661390157604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610b0a5750610b0a8261431f565b6000818152600260205260409020546001600160a01b03166120d05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139d482612233565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7c91906154b2565b6001600160a01b031614613aa357604051637f6ecdf560e01b815260040160405180910390fd5b600f835110613ac557604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613b91576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613b12903390899089908990899060040161542b565b602060405180830381865af4158015613b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5391906154b2565b6001600160a01b0381166000908152600e602052604090205490915060ff16613b8f57604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b158015613bdf57600080fd5b505af1158015613bf3573d6000803e3d6000fd5b505050506006601154613c06919061562f565b601154613c139190615598565b60126000828254613c249190615515565b90915550600090505b8351811015613dd257838181518110613c4857613c48615376565b602002602001015160ff16607803613cad576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb81015613ca857604051630d1ecf1760e11b815260040160405180910390fd5b613cff565b611388601a6000868481518110613cc657613cc6615376565b602002602001015160ff168152602001908152602001600020541115613cff57604051630d1ecf1760e11b815260040160405180910390fd5b601a6000858381518110613d1557613d15615376565b602002602001015160ff1681526020019081526020016000206000815480929190613d3f906153de565b90915550506001600160a01b0386166000908152601c602052604081208551909190869084908110613d7357613d73615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190613dac906153bf565b91906101000a81548160ff021916908360ff160217905550508080600101915050613c2d565b508383604051613de291906158ae565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613e5e858261436f565b613e688185614389565b600160106000828254613e7b9190615515565b90915550505050505050565b600080613e9383612233565b9050806001600160a01b0316846001600160a01b03161480613eda57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112625750836001600160a01b0316613ef384610f52565b6001600160a01b031614949350505050565b826001600160a01b0316613f1882612233565b6001600160a01b031614613f3e5760405162461bcd60e51b8152600401610fed906158e7565b6001600160a01b038216613fa05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fed565b826001600160a01b0316613fb382612233565b6001600160a01b031614613fd95760405162461bcd60e51b8152600401610fed906158e7565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120d081614454565b6007546001600160a01b031633146123ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fed565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361417f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fed565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d64565b6141ef848484613f05565b6141fb84848484614494565b611b185760405162461bcd60e51b8152600401610fed9061592c565b606061422282613940565b6000828152600660205260408120805461423b906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054614267906153f7565b80156142b45780601f10614289576101008083540402835291602001916142b4565b820191906000526020600020905b81548152906001019060200180831161429757829003601f168201915b5050505050905060006142d260408051602081019091526000815290565b905080516000036142e4575092915050565b8151156143165780826040516020016142fe92919061597e565b60405160208183030381529060405292505050919050565b61126284614592565b60006001600160e01b031982166380ac58cd60e01b148061435057506001600160e01b03198216635b5e139f60e01b145b80610b0a57506301ffc9a760e01b6001600160e01b0319831614610b0a565b612fdc828260405180602001604052806000815250614606565b6000828152600260205260409020546001600160a01b03166144045760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fed565b600082815260066020526040902061441c8282615697565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61445d81614639565b60008181526006602052604090208054614476906153f7565b1590506120d05760008181526006602052604081206120d0916149c3565b60006001600160a01b0384163b1561458a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144d89033908990889088906004016159ad565b6020604051808303816000875af1925050508015614513575060408051601f3d908101601f19168201909252614510918101906159ea565b60015b614570573d808015614541576040519150601f19603f3d011682016040523d82523d6000602084013e614546565b606091505b5080516000036145685760405162461bcd60e51b8152600401610fed9061592c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611262565b506001611262565b606061459d82613940565b60006145b460408051602081019091526000815290565b905060008151116145d457604051806020016040528060008152506145ff565b806145de846146ce565b6040516020016145ef92919061597e565b6040516020818303038152906040525b9392505050565b6146108383614760565b61461d6000848484614494565b61108e5760405162461bcd60e51b8152600401610fed9061592c565b600061464482612233565b905061464f82612233565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006146db836148eb565b60010190506000816001600160401b038111156146fa576146fa614bc7565b6040519080825280601f01601f191660200182016040528015614724576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461472e57509392505050565b6001600160a01b0382166147b65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fed565b6000818152600260205260409020546001600160a01b03161561481b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6000818152600260205260409020546001600160a01b0316156148805760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061492a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614956576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061497457662386f26fc10000830492506010015b6305f5e100831061498c576305f5e100830492506008015b61271083106149a057612710830492506004015b606483106149b2576064830492506002015b600a8310610b0a5760010192915050565b5080546149cf906153f7565b6000825580601f106149df575050565b601f0160209004906000526020600020908101906120d091905b80821115614a0d57600081556001016149f9565b5090565b6001600160e01b0319811681146120d057600080fd5b600060208284031215614a3957600080fd5b81356145ff81614a11565b6001600160a01b03811681146120d057600080fd5b600060208284031215614a6b57600080fd5b81356145ff81614a44565b600081518084526020808501945080840160005b83811015614aa957815160ff1687529582019590820190600101614a8a565b509495945050505050565b606081526000614ac76060830186614a76565b602083820381850152614ada8287614a76565b8481036040860152855180825282870193509082019060005b81811015614b11578451151583529383019391830191600101614af3565b509098975050505050505050565b60005b83811015614b3a578181015183820152602001614b22565b50506000910152565b60008151808452614b5b816020860160208601614b1f565b601f01601f19169290920160200192915050565b6020815260006145ff6020830184614b43565b600060208284031215614b9457600080fd5b5035919050565b60008060408385031215614bae57600080fd5b8235614bb981614a44565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c0557614c05614bc7565b604052919050565b60006001600160401b03821115614c2657614c26614bc7565b5060051b60200190565b803560ff81168114614c4157600080fd5b919050565b600082601f830112614c5757600080fd5b81356020614c6c614c6783614c0d565b614bdd565b82815260059290921b84018101918181019086841115614c8b57600080fd5b8286015b84811015614cad57614ca081614c30565b8352918301918301614c8f565b509695505050505050565b60008060008060608587031215614cce57600080fd5b8435935060208501356001600160401b0380821115614cec57600080fd5b614cf888838901614c46565b94506040870135915080821115614d0e57600080fd5b818701915087601f830112614d2257600080fd5b813581811115614d3157600080fd5b886020828501011115614d4357600080fd5b95989497505060200194505050565b60008060408385031215614d6557600080fd5b8235614d7081614a44565b9150614d7e60208401614c30565b90509250929050565b600082601f830112614d9857600080fd5b81356020614da8614c6783614c0d565b82815260059290921b84018101918181019086841115614dc757600080fd5b8286015b84811015614cad5780356001600160401b03811115614dea5760008081fd5b614df88986838b0101614c46565b845250918301918301614dcb565b60008083601f840112614e1857600080fd5b5081356001600160401b03811115614e2f57600080fd5b6020830191508360208260051b8501011115614e4a57600080fd5b9250929050565b600080600080600060808688031215614e6957600080fd5b614e7286614c30565b94506020808701356001600160401b0380821115614e8f57600080fd5b818901915089601f830112614ea357600080fd5b8135614eb1614c6782614c0d565b81815260059190911b8301840190848101908c831115614ed057600080fd5b938501935b82851015614eee57843582529385019390850190614ed5565b985050506040890135925080831115614f0657600080fd5b614f128a848b01614d87565b95506060890135925080831115614f2857600080fd5b5050614f3688828901614e06565b969995985093965092949392505050565b60008060208385031215614f5a57600080fd5b82356001600160401b03811115614f7057600080fd5b614f7c85828601614e06565b90969095509350505050565b600080600060608486031215614f9d57600080fd5b8335614fa881614a44565b92506020840135614fb881614a44565b929592945050506040919091013590565b600060208284031215614fdb57600080fd5b6145ff82614c30565b600080600060608486031215614ff957600080fd5b833561500481614a44565b92506020840135915060408401356001600160401b0381111561502657600080fd5b61503286828701614c46565b9150509250925092565b80151581146120d057600080fd5b60006020828403121561505c57600080fd5b81356145ff8161503c565b60006001600160401b0382111561508057615080614bc7565b50601f01601f191660200190565b600061509c614c6784615067565b90508281528383830111156150b057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150d857600080fd5b6145ff8383356020850161508e565b60008060008060008060c0878903121561510057600080fd5b863561510b81614a44565b9550602087013561511b81614a44565b9450604087013561512b81614a44565b9350606087013561513b81614a44565b925060808701356001600160401b0381111561515657600080fd5b61516289828a016150c7565b92505060a087013561517381614a44565b809150509295509295509295565b6000806040838503121561519457600080fd5b82356001600160401b03808211156151ab57600080fd5b6151b7868387016150c7565b935060208501359150808211156151cd57600080fd5b506151da858286016150c7565b9150509250929050565b6000806000604084860312156151f957600080fd5b833561520481614a44565b925060208401356001600160401b0381111561521f57600080fd5b61522b86828701614e06565b9497909650939450505050565b6000806040838503121561524b57600080fd5b823561525681614a44565b915060208301356152668161503c565b809150509250929050565b6000806000806080858703121561528757600080fd5b843561529281614a44565b93506152a060208601614c30565b925060408501356152b081614a44565b91506152be60608601614c30565b905092959194509250565b600080600080608085870312156152df57600080fd5b84356152ea81614a44565b935060208501356152fa81614a44565b92506040850135915060608501356001600160401b0381111561531c57600080fd5b8501601f8101871361532d57600080fd5b61533c8782356020840161508e565b91505092959194509250565b6000806040838503121561535b57600080fd5b823561536681614a44565b9150602083013561526681614a44565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561539e57600080fd5b81516145ff8161503c565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff81036153d5576153d56153a9565b60010192915050565b6000600182016153f0576153f06153a9565b5060010190565b600181811c9082168061540b57607f821691505b60208210810361256a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561547d57845160ff168352938301939183019160010161545e565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b6000602082840312156154c457600080fd5b81516145ff81614a44565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b602001915036819003821315614e4a57600080fd5b80820180821115610b0a57610b0a6153a9565b60006020828403121561553a57600080fd5b5051919050565b600060ff821680615554576155546153a9565b6000190192915050565b60008184825b8581101561558d5760ff61557783614c30565b1683526020928301929190910190600101615564565b509095945050505050565b81810381811115610b0a57610b0a6153a9565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b60008261564c57634e487b7160e01b600052601260045260246000fd5b500490565b601f82111561108e57600081815260208120601f850160051c810160208610156156785750805b601f850160051c820191505b8181101561146f57828155600101615684565b81516001600160401b038111156156b0576156b0614bc7565b6156c4816156be84546153f7565b84615651565b602080601f8311600181146156f957600084156156e15750858301515b600019600386901b1c1916600185901b17855561146f565b600085815260208120601f198616915b8281101561572857888601518255948401946001909101908401615709565b50858210156157465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615764816153f7565b6001828116801561577c5760018114615791576157c0565b60ff19841687528215158302870194506157c0565b8a60005260208060002060005b858110156157b75781548a82015290840190820161579e565b50505082870194505b5050505085516157d4818360208a01614b1f565b85519101906157e7818360208901614b1f565b84519101906157fa818360208801614b1f565b019695505050505050565b60008251615817818460208701614b1f565b9190910192915050565b60006020828403121561583357600080fd5b81516001600160401b0381111561584957600080fd5b8201601f8101841361585a57600080fd5b8051615868614c6782615067565b81815285602083850101111561587d57600080fd5b61588e826020830160208601614b1f565b95945050505050565b8082028115828204841417610b0a57610b0a6153a9565b815160009082906020808601845b838110156158db57815160ff16855293820193908201906001016158bc565b50929695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615990818460208801614b1f565b8351908301906159a4818360208801614b1f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906159e090830184614b43565b9695505050505050565b6000602082840312156159fc57600080fd5b81516145ff81614a1156fea26469706673582212200ffaf3d324c37446eb406b5236a0190fe68d2f2a5fd1a9f7402876c3b73a475464736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061046a5760003560e01c806379e8dadc1161024c578063ad1684fa11610146578063dbfc05cf116100c3578063e8a7e31d11610087578063e8a7e31d14610a82578063e985e9c514610a8a578063eb12d61e14610ac6578063f2fde38b14610ad9578063f98fd28314610aec57600080fd5b8063dbfc05cf14610a23578063ddb975e814610a36578063e1883c6e14610a49578063e4ae0b9b14610a5c578063e606df8714610a6957600080fd5b8063c87b56dd1161010a578063c87b56dd146109d9578063cafaa473146109ec578063d322b563146109ff578063d7093f4014610a12578063d780c47714610a1b57600080fd5b8063ad1684fa14610984578063b352618514610997578063b88d4fde146109a0578063ba6c0fbc146109b3578063bf400a6a146109c657600080fd5b80638da5cb5b116101d45780639ff26efd116101985780639ff26efd14610910578063a1af8ad41461093e578063a22cb46514610951578063a419811d14610964578063ab5351601461097757600080fd5b80638da5cb5b146108c95780639038f414146108da57806395d89b41146108e25780639a5613ad146108ea5780639c7f707f146108fd57600080fd5b80637df73e271161021b5780637df73e271461084e57806382d8a1181461087a578063886eb60f1461088357806388e0ef80146108965780638bf670c8146108b657600080fd5b806379e8dadc1461080d5780637ce65f7b146108155780637cf86b72146108285780637de99bd91461083b57600080fd5b8063267b841d116103685780635e31ce48116102e55780637065cb48116102a95780637065cb48146107b957806370a08231146107cc578063715018a6146107df5780637155a3ac146107e75780637232d7d4146107fa57600080fd5b80635e31ce48146107655780636352211e14610778578063656bd0ad1461078b57806368cc5bc1146107945780636d0af178146107a757600080fd5b80634039327e1161032c5780634039327e146106b257806342842e0e146106ba57806342966c68146106cd5780634c03cd0b146106e05780635312ea8e1461075257600080fd5b8063267b841d1461063a5780632ca699e71461064d5780632f54bf6e146106605780632f9e026a1461068c57806330f5cc581461069f57600080fd5b8063147baac7116103f6578063203335f6116103ba578063203335f6146105e557806320965a5f146105f857806321a7c6b01461060b57806323b872dd14610614578063241a08fe1461062757600080fd5b8063147baac71461057557806314cca36a14610587578063155e2f921461059a5780631585cc4e146105ad578063173825d9146105d257600080fd5b8063081812fc1161043d578063081812fc146104fc578063095ea7b3146105275780630e316ab71461053c578063128916dc1461054f5780631306952c1461056257600080fd5b806301ffc9a71461046f5780630435dcaf1461049757806306fdde03146104b957806307b2e246146104ce575b600080fd5b61048261047d366004614a27565b610aff565b60405190151581526020015b60405180910390f35b6104aa6104a5366004614a59565b610b10565b60405161048e93929190614ab4565b6104c1610ec0565b60405161048e9190614b6f565b6104ee6104dc366004614a59565b601b6020526000908152604090205481565b60405190815260200161048e565b61050f61050a366004614b82565b610f52565b6040516001600160a01b03909116815260200161048e565b61053a610535366004614b9b565b610f79565b005b61053a61054a366004614a59565b611093565b61053a61055d366004614a59565b611139565b61050f610570366004614cb8565b6111dc565b60185461048290610100900460ff1681565b600a5461050f906001600160a01b031681565b61053a6105a8366004614d52565b61126a565b6105c06105bb366004614d52565b6112e7565b60405160ff909116815260200161048e565b61053a6105e0366004614a59565b611341565b61053a6105f3366004614e51565b6113b8565b61053a610606366004614f47565b611477565b6104ee60135481565b61053a610622366004614f88565b611a93565b61053a610635366004614fc9565b611ac5565b61053a610648366004614cb8565b611b0b565b61053a61065b366004614d52565b611b1e565b61048261066e366004614a59565b6001600160a01b03166000908152600b602052604090205460ff1690565b60085461050f906001600160a01b031681565b61053a6106ad366004614fe4565b611d71565b6104c1611ff9565b61053a6106c8366004614f88565b612087565b61053a6106db366004614b82565b6120a2565b6107226106ee366004614b82565b60196020526000908152604090208054600182015460028301546003909301549192909160ff808316926101009004169085565b6040805195865260208601949094529115159284019290925260ff9091166060830152608082015260a00161048e565b61053a610760366004614b82565b6120d3565b61053a610773366004614b82565b6121ee565b61050f610786366004614b82565b612233565b6104ee60115481565b61053a6107a236600461504a565b612293565b600f546105c090610100900460ff1681565b61053a6107c7366004614a59565b6122df565b6104ee6107da366004614a59565b612356565b61053a6123dc565b61053a6107f5366004614d52565b6123f0565b61053a610808366004614b82565b612450565b6104c16124a6565b61053a610823366004614fc9565b6124b3565b6104ee610836366004614a59565b612524565b61053a6108493660046150e7565b612570565b61048261085c366004614a59565b6001600160a01b03166000908152600e602052604090205460ff1690565b6104ee60105481565b610482610891366004614d52565b61274b565b6104ee6108a4366004614b82565b601a6020526000908152604090205481565b6104826108c4366004614d52565b6127a7565b6007546001600160a01b031661050f565b610482612806565b6104c1612ba6565b6018546104829062010000900460ff1681565b61053a61090b366004615181565b612bb5565b6105c061091e366004614d52565b601c60209081526000928352604080842090915290825290205460ff1681565b61053a61094c3660046151e4565b612c57565b61053a61095f366004615238565b612fd1565b61053a610972366004614a59565b612fe0565b600f546105c09060ff1681565b61053a610992366004615271565b61307f565b6104ee60145481565b61053a6109ae3660046152c9565b613312565b61053a6109c1366004614b82565b613344565b61053a6109d4366004614fc9565b61339a565b6104c16109e7366004614b82565b6135e6565b61053a6109fa366004614a59565b6135f1565b60095461050f906001600160a01b031681565b6104ee60125481565b6104ee613694565b61053a610a3136600461504a565b6136c1565b61053a610a44366004614a59565b613704565b61053a610a57366004614b82565b6137a7565b6018546104829060ff1681565b600f5461050f906201000090046001600160a01b031681565b6104c16137d7565b610482610a98366004615348565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61053a610ad4366004614a59565b6137e4565b61053a610ae7366004614a59565b61385b565b61053a610afa36600461504a565b6138d1565b6000610b0a8261391b565b92915050565b60408051607a808252610f608201909252606091829182916000919060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f4080368337505060408051607a808252610f608201909252929350600092915060208201610f40803683370190505090506000805b60798160ff1611610cf6576001600160a01b0389166000908152601c6020908152604080832060ff80861685529252909120541615610ce45780858360ff1681518110610bdc57610bdc615376565b60ff9283166020918202929092018101919091526001600160a01b038b166000908152601c82526040808220858516835290925220548551908216918691908516908110610c2c57610c2c615376565b60ff9283166020918202929092010152600954604051632edb5fcf60e01b81526001600160a01b038c811660048301529284166024820152911690632edb5fcf90604401602060405180830381865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb1919061538c565b838360ff1681518110610cc657610cc6615376565b9115156020928302919091019091015281610ce0816153bf565b9250505b80610cee816153bf565b915050610b8d565b5060008160ff166001600160401b03811115610d1457610d14614bc7565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b50905060008260ff166001600160401b03811115610d5d57610d5d614bc7565b604051908082528060200260200182016040528015610d86578160200160208202803683370190505b50905060008360ff166001600160401b03811115610da657610da6614bc7565b604051908082528060200260200182016040528015610dcf578160200160208202803683370190505b50905060005b8460ff16811015610eae57878181518110610df257610df2615376565b6020026020010151848281518110610e0c57610e0c615376565b602002602001019060ff16908160ff1681525050868181518110610e3257610e32615376565b6020026020010151838281518110610e4c57610e4c615376565b602002602001019060ff16908160ff1681525050858181518110610e7257610e72615376565b6020026020010151828281518110610e8c57610e8c615376565b9115156020928302919091019091015280610ea6816153de565b915050610dd5565b50919a90995090975095505050505050565b606060008054610ecf906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610efb906153f7565b8015610f485780601f10610f1d57610100808354040283529160200191610f48565b820191906000526020600020905b815481529060010190602001808311610f2b57829003601f168201915b5050505050905090565b6000610f5d82613940565b506000908152600460205260409020546001600160a01b031690565b6000610f8482612233565b9050806001600160a01b0316836001600160a01b031603610ff65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061101257506110128133610a98565b6110845760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610fed565b61108e838361399f565b505050565b336000908152600b602052604090205460ff166110c357604051634289c49360e01b815260040160405180910390fd5b604051630982088f60e41b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063982088f0906044015b60006040518083038186803b15801561111e57600080fd5b505af4158015611132573d6000803e3d6000fd5b5050505050565b336000908152600b602052604090205460ff1661116957604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166111915760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0384169081179091556040517f538b3425a321783393ad250db10356b8b3523ef29a40de015c5218213de0ead090600090a25050565b6040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b9061121e903390899089908990899060040161542b565b602060405180830381865af415801561123b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125f91906154b2565b90505b949350505050565b6009546001600160a01b0316331461129557604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca836153bf565b91906101000a81548160ff021916908360ff160217905550505050565b6000826001600160a01b0381166113115760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff94851684529091529020541690565b336000908152600b602052604090205460ff1661137157604051634289c49360e01b815260040160405180910390fd5b604051632dd92c6960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b764b1a490604401611106565b60ff851615806113d05750600f5460ff908116908616115b156113ee57604051630b154b3b60e41b815260040160405180910390fd5b60005b8560ff1681101561146f5761145d3386838151811061141257611412615376565b602002602001015186848151811061142c5761142c615376565b602002602001015186868681811061144657611446615376565b905060200281019061145891906154cf565b613a0d565b80611467816153de565b9150506113f1565b505050505050565b336000908152601c602090815260408083206079845290915281205460ff1690036114b55760405163210f01d160e21b815260040160405180910390fd5b336000908152601b60205260408120546114d0908390615515565b90506000603c821061158857600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa15801561152b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154f9190615528565b90506014548110806115645750601454601254105b156115825760405163356680b760e01b815260040160405180910390fd5b60019150505b600954604051630cdb311760e01b815233600482015260009182916001600160a01b0390911690630cdb311790602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190615528565b1190508360005b8181101561182057336000908152601c602052604081209088888481811061162a5761162a615376565b905060200201602081019061163f9190614fc9565b60ff9081168252602082019290925260400160009081205490911690036116795760405163210f01d160e21b815260040160405180910390fd5b821561179c576009546001600160a01b0316632edb5fcf338989858181106116a3576116a3615376565b90506020020160208101906116b89190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611728919061538c565b1561179c57336000908152601c6020526040812060029189898581811061175157611751615376565b90506020020160208101906117669190614fc9565b60ff908116825260208201929092526040016000205416101561179c5760405163483e9b8d60e11b815260040160405180910390fd5b336000908152601c60205260408120908888848181106117be576117be615376565b90506020020160208101906117d39190614fc9565b60ff908116825260208201929092526040016000908120805490921691906117fa83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050611600565b50336000908152601b602052604081208054839290611840908490615515565b9091555050604051611855908790879061555e565b6040519081900381209033907fdbcda3b6d52a6f69c85189ca3f35e5be8a2e3d052fea47f656ff00384b0c47b190600090a3821561146f57336000908152601c60209081526040808320607984529091528120805460ff16916118b783615541565b91906101000a81548160ff021916908360ff1602179055505061196833601680546118e1906153f7565b80601f016020809104026020016040519081016040528092919081815260200182805461190d906153f7565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b505050505060796002613e24565b6014546012600082825461197c9190615598565b9091555050600f5460145460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156119db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ff919061538c565b50600a5460405163fa8213d360e01b81523360048201526001600160a01b039091169063fa8213d390602401600060405180830381600087803b158015611a4557600080fd5b505af1158015611a59573d6000803e3d6000fd5b5050604051600292503391507f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a3505050505050565b611a9e335b82613e87565b611aba5760405162461bcd60e51b8152600401610fed906155ab565b61108e838383613f05565b336000908152600b602052604090205460ff16611af557604051634289c49360e01b815260040160405180910390fd5b600f805460ff191660ff92909216919091179055565b611b183385858585613a0d565b50505050565b816001600160a01b038116611b465760405163e6c4247b60e01b815260040160405180910390fd5b336000908152601c6020908152604080832060ff80871685529252822054169003611b845760405163210f01d160e21b815260040160405180910390fd5b336001600160a01b03841603611bad57604051632f35253160e01b815260040160405180910390fd5b60185462010000900460ff1615611c8457600954604051632edb5fcf60e01b815233600482015260ff841660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c34919061538c565b336000908152601c6020908152604080832060ff80891685529252909120549192506001911611811580611c655750805b611c815760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff808716855292528220805490911691611cb083615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0385166000908152601c602090815260408083208785168452909152812080549092169250611cff836153bf565b91906101000a81548160ff021916908360ff16021790555050826001600160a01b0316336001600160a01b03167f1b6e5f928a38f442936bbdf4696f128a543b8e43730594344a66c028d0b9c3da84604051611d64919060ff91909116815260200190565b60405180910390a3505050565b336000908152600b602052604090205460ff16611da157604051634289c49360e01b815260040160405180910390fd5b6008546040516380f2540b60e01b8152600481018490526001600160a01b038581166024830152909116906380f2540b90604401600060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506006601154611e16919061562f565b601154611e239190615598565b60126000828254611e349190615515565b90915550600090505b8151811015611b1857818181518110611e5857611e58615376565b602002602001015160ff16607814611ea357611389601a6000848481518110611e8357611e83615376565b602002602001015160ff1681526020019081526020016000205410611ed4565b6078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb9115b611f205760405162461bcd60e51b815260206004820152601e60248201527f696e76616c69642063617264496e76656e746f727920706f736974696f6e00006044820152606401610fed565b601a6000838381518110611f3657611f36615376565b602002602001015160ff1681526020019081526020016000206000815480929190611f60906153de565b90915550506001600160a01b0384166000908152601c602052604081208351909190849084908110611f9457611f94615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190611fcd906153bf565b91906101000a81548160ff021916908360ff160217905550508080611ff1906153de565b915050611e3d565b60168054612006906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906153f7565b801561207f5780601f106120545761010080835404028352916020019161207f565b820191906000526020600020905b81548152906001019060200180831161206257829003601f168201915b505050505081565b61108e83838360405180602001604052806000815250613312565b6120ab33611a98565b6120c75760405162461bcd60e51b8152600401610fed906155ab565b6120d081614069565b50565b336000908152600b602052604090205460ff1661210357604051634289c49360e01b815260040160405180910390fd5b8061210d30612356565b101561212c5760405163356680b760e01b815260040160405180910390fd5b806012600082825461213e9190615598565b9091555050600f5460405163a9059cbb60e01b815233600482015260248101839052620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd919061538c565b50604051819033907f23d6711a1d031134a36921253c75aa59e967d38e369ac625992824315e204f2090600090a350565b6008546001600160a01b03163314612219576040516307473cc760e41b815260040160405180910390fd5b806012600082825461222b9190615515565b909155505050565b6000818152600260205260408120546001600160a01b031680610b0a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b336000908152600b602052604090205460ff166122c357604051634289c49360e01b815260040160405180910390fd5b60188054911515620100000262ff000019909216919091179055565b336000908152600b602052604090205460ff1661230f57604051634289c49360e01b815260040160405180910390fd5b604051632d35e2b960e21b8152600b60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063b4d78ae490604401611106565b60006001600160a01b0382166123c05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610fed565b506001600160a01b031660009081526003602052604090205490565b6123e4614072565b6123ee60006140cc565b565b6009546001600160a01b0316331461241b57604051638eea824160e01b815260040160405180910390fd5b6001600160a01b0382166000908152601c6020908152604080832060ff8086168552925282208054909116916112ca83615541565b336000908152600b602052604090205460ff1661248057604051634289c49360e01b815260040160405180910390fd5b806000036124a157604051634b1c6ca160e01b815260040160405180910390fd5b601355565b60158054612006906153f7565b336000908152600b602052604090205460ff166124e357604051634289c49360e01b815260040160405180910390fd5b60648160ff16111561250857604051634b1c6ca160e01b815260040160405180910390fd5b600f805460ff9092166101000261ff0019909216919091179055565b6000816001600160a01b03811661254e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152601b602052604090205491505b50919050565b612578614072565b336000908152600b60205260409020805460ff19166001179055600f80546001600160a01b03888116620100000262010000600160b01b031990921691909117909155600880548783166001600160a01b031991821617909155600a8054868416908316179055600980549287169290911691909117905560176125fc8382615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526203132360ec1b8183015283518085018552600681526523173539b7b760d11b8184015293516126599460179493909101615756565b604051602081830303815290604052601590816126769190615697565b5060408051808201825260018152602f60f81b60208083019190915282518084018452600381526231323160e81b8183015283518085018552600681526523173539b7b760d11b8184015293516126d39460179493909101615756565b604051602081830303815290604052601690816126f09190615697565b506001600160a01b0381166000908152600e60205260408120805460ff191660011790555b607a811015612742576000818152601a60205260409020600190558061273a816153de565b915050612715565b50505050505050565b6000826001600160a01b0381166127755760405163e6c4247b60e01b815260040160405180910390fd5b50506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b6009546000906001600160a01b031633146127d557604051638eea824160e01b815260040160405180910390fd5b506001600160a01b03919091166000908152601c6020908152604080832060ff948516845290915290205416151590565b336000908152601c602090815260408083206078845290915281205460ff1681036128445760405163210f01d160e21b815260040160405180910390fd5b601354601254101561286957604051634b1c6ca160e01b815260040160405180910390fd5b600f546040516370a0823160e01b81523060048201526000916201000090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156128b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128dc9190615528565b90506013548110156129015760405163356680b760e01b815260040160405180910390fd5b6000805b60788160ff161161299057336000908152601c6020908152604080832060ff8086168552925282205416900361293e5760019150612990565b336000908152601c6020908152604080832060ff80861685529252822080549091169161296a83615541565b91906101000a81548160ff021916908360ff160217905550508080600101915050612905565b5080156129af57604051623de82960e51b815260040160405180910390fd5b612a4733601580546129c0906153f7565b80601f01602080910402602001604051908101604052809291908181526020018280546129ec906153f7565b8015612a395780601f10612a0e57610100808354040283529160200191612a39565b820191906000526020600020905b815481529060010190602001808311612a1c57829003601f168201915b505050505060786002613e24565b60135460126000828254612a5b9190615598565b9091555050600f5460135460405163a9059cbb60e01b81523360048201526024810191909152620100009091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015612aba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ade919061538c565b50600954604051633f27a03f60e21b81523360048201526000916001600160a01b03169063fc9e80fc906024016020604051808303816000875af1158015612b2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4e919061538c565b905080612b6e5760405163e07c7c8d60e01b815260040160405180910390fd5b60405160019033907f6d0344e2059f835240cb954cce07d4b26f0d0844eecc234f7ee0e292ba80a1aa90600090a36001935050505090565b606060018054610ecf906153f7565b336000908152600b602052604090205460ff16612be557604051634289c49360e01b815260040160405180910390fd5b6015612bf18382615697565b506016612bfe8282615697565b5080604051612c0d9190615805565b604051809103902082604051612c239190615805565b604051908190038120907fabfd337ac5625b7dc2ddd3d3bd465fb1dec15322eeeed81032268b337880bec690600090a35050565b826001600160a01b038116612c7f5760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03851603612ca857604051632f35253160e01b815260040160405180910390fd5b60005b82811015612f7d57336000908152601c6020526040812090858584818110612cd557612cd5615376565b9050602002016020810190612cea9190614fc9565b60ff908116825260208201929092526040016000908120549091169003612d245760405163210f01d160e21b815260040160405180910390fd5b336000908152601c6020526040812090858584818110612d4657612d46615376565b9050602002016020810190612d5b9190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612d8283615541565b91906101000a81548160ff021916908360ff16021790555050601c6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110612dd457612dd4615376565b9050602002016020810190612de99190614fc9565b60ff90811682526020820192909252604001600090812080549092169190612e10836153bf565b91906101000a81548160ff021916908360ff16021790555050601860029054906101000a900460ff1615612f6b576009546000906001600160a01b0316632edb5fcf33878786818110612e6557612e65615376565b9050602002016020810190612e7a9190614fc9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401602060405180830381865afa158015612ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eea919061538c565b336000908152601c602052604081209192509060019082888887818110612f1357612f13615376565b9050602002016020810190612f289190614fc9565b60ff908116825260208201929092526040016000205416119050811580612f4c5750805b612f685760405162461bcd60e51b8152600401610fed906155f8565b50505b80612f75816153de565b915050612cab565b508282604051612f8e92919061555e565b604051908190038120906001600160a01b0386169033907f368eb521419fe880268b0d75c05eaa2da7ae9ccf468be86a848f7054366d2b9b90600090a450505050565b612fdc33838361411e565b5050565b336000908152600b602052604090205460ff1661301057604051634289c49360e01b815260040160405180910390fd5b60005b60798160ff1611612fdc576001600160a01b0382166000908152601c6020908152604080832060ff808616855292528220805490911691613053836153bf565b91906101000a81548160ff021916908360ff160217905550508080613077906153bf565b915050613013565b6009546001600160a01b031633146130aa57604051638eea824160e01b815260040160405180910390fd5b836001600160a01b0381166130d25760405163e6c4247b60e01b815260040160405180910390fd5b826001600160a01b0381166130fa5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a16855292529091205416158061315557506001600160a01b0384166000908152601c6020908152604080832060ff808816855292529091205416155b156131735760405163210f01d160e21b815260040160405180910390fd5b6001600160a01b0386166000908152601c6020908152604080832060ff808a168552925282208054909116916131a883615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c602090815260408083208a851684529091528120805490921692506131f7836153bf565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0386166000908152601c60209081526040808320888516845290915281208054909216925061324683615541565b82546101009290920a60ff8181021990931691831602179091556001600160a01b0388166000908152601c602090815260408083208885168452909152812080549092169250613295836153bf565b91906101000a81548160ff021916908360ff16021790555050836001600160a01b0316866001600160a01b03167f52819375a02768cb5083d7b729260c6db2309fcb5c9161201ada89d30d00d524878660405161330292919060ff92831681529116602082015260400190565b60405180910390a3505050505050565b61331c3383613e87565b6133385760405162461bcd60e51b8152600401610fed906155ab565b611b18848484846141e4565b336000908152600b602052604090205460ff1661337457604051634289c49360e01b815260040160405180910390fd5b8060000361339557604051634b1c6ca160e01b815260040160405180910390fd5b601455565b336000908152601c6020908152604080832060ff808616855292528220541690036133d85760405163210f01d160e21b815260040160405180910390fd5b601854610100900460ff16156134ae57600954604051632edb5fcf60e01b815233600482015260ff831660248201526000916001600160a01b031690632edb5fcf90604401602060405180830381865afa15801561343a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345e919061538c565b336000908152601c6020908152604080832060ff8088168552925290912054919250600191161181158061348f5750805b6134ab5760405162461bcd60e51b8152600401610fed906155f8565b50505b336000908152601c6020908152604080832060ff8086168552925282208054909116916134da83615541565b91906101000a81548160ff021916908360ff1602179055505060006017604051806040016040528060018152602001602f60f81b8152508360ff1673__$7e24fea74dbc7efffb723a34f6ecd87681$__636900a3ae90916040518263ffffffff1660e01b815260040161354f91815260200190565b600060405180830381865af415801561356c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135949190810190615821565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016135c59493929190615756565b6040516020818303038152906040529050612fdc33828460ff166001613e24565b6060610b0a82614217565b336000908152600b602052604090205460ff1661362157604051634289c49360e01b815260040160405180910390fd5b806001600160a01b0381166136495760405163e6c4247b60e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0384169081179091556040517f5a78287a942b8ea0da8734a4eb919df11e564cc48301ffcb582dc8612d98208f90600090a25050565b601254600f546000916064916136b29190610100900460ff16615897565b6136bc919061562f565b905090565b336000908152600b602052604090205460ff166136f157604051634289c49360e01b815260040160405180910390fd5b6018805460ff1916911515919091179055565b336000908152600b602052604090205460ff1661373457604051634289c49360e01b815260040160405180910390fd5b806001600160a01b03811661375c5760405163e6c4247b60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0384169081179091556040517f563f24d71e856f79bec30e1aa96082a296cd13f0a71cec730a72b719fa0fa20290600090a25050565b6008546001600160a01b031633146137d2576040516307473cc760e41b815260040160405180910390fd5b601155565b60178054612006906153f7565b336000908152600b602052604090205460ff1661381457604051634289c49360e01b815260040160405180910390fd5b604051633b9db68960e11b8152600d60048201526001600160a01b038216602482015273__$2004922c2908b386ae4415e9a8cdeda8c7$__9063773b6d1290604401611106565b613863614072565b6001600160a01b0381166138c85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fed565b6120d0816140cc565b336000908152600b602052604090205460ff1661390157604051634289c49360e01b815260040160405180910390fd5b601880549115156101000261ff0019909216919091179055565b60006001600160e01b03198216632483248360e11b1480610b0a5750610b0a8261431f565b6000818152600260205260409020546001600160a01b03166120d05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610fed565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906139d482612233565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60085460405163d3e6a7ad60e01b8152600481018690526001600160a01b0387811692169063d3e6a7ad90602401602060405180830381865afa158015613a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7c91906154b2565b6001600160a01b031614613aa357604051637f6ecdf560e01b815260040160405180910390fd5b600f835110613ac557604051639dcca73360e01b815260040160405180910390fd5b60185460ff1615613b91576040516338fb7d8b60e01b815260009073__$11abd53fa8ca7bb7b53675cf998674c516$__906338fb7d8b90613b12903390899089908990899060040161542b565b602060405180830381865af4158015613b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b5391906154b2565b6001600160a01b0381166000908152600e602052604090205490915060ff16613b8f57604051638baa579f60e01b815260040160405180910390fd5b505b6008546040516380f2540b60e01b8152600481018690526001600160a01b038781166024830152909116906380f2540b90604401600060405180830381600087803b158015613bdf57600080fd5b505af1158015613bf3573d6000803e3d6000fd5b505050506006601154613c06919061562f565b601154613c139190615598565b60126000828254613c249190615515565b90915550600090505b8351811015613dd257838181518110613c4857613c48615376565b602002602001015160ff16607803613cad576078600052601a6020527f0382f0ce335a2f6d9ff5c37189f20a85f5e9319580268a4587d7c49525cd970d54610bb81015613ca857604051630d1ecf1760e11b815260040160405180910390fd5b613cff565b611388601a6000868481518110613cc657613cc6615376565b602002602001015160ff168152602001908152602001600020541115613cff57604051630d1ecf1760e11b815260040160405180910390fd5b601a6000858381518110613d1557613d15615376565b602002602001015160ff1681526020019081526020016000206000815480929190613d3f906153de565b90915550506001600160a01b0386166000908152601c602052604081208551909190869084908110613d7357613d73615376565b602002602001015160ff1660ff168152602001908152602001600020600081819054906101000a900460ff1680929190613dac906153bf565b91906101000a81548160ff021916908360ff160217905550508080600101915050613c2d565b508383604051613de291906158ae565b604051908190038120906001600160a01b038816907fbabe8f5e83e93ab103ddf917b4292a19335a5128b3530bedd896a681cdd945e390600090a45050505050565b601054600081815260196020526040902081815560018101849055600201805461ff00191661010060ff851602179055613e5e858261436f565b613e688185614389565b600160106000828254613e7b9190615515565b90915550505050505050565b600080613e9383612233565b9050806001600160a01b0316846001600160a01b03161480613eda57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806112625750836001600160a01b0316613ef384610f52565b6001600160a01b031614949350505050565b826001600160a01b0316613f1882612233565b6001600160a01b031614613f3e5760405162461bcd60e51b8152600401610fed906158e7565b6001600160a01b038216613fa05760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610fed565b826001600160a01b0316613fb382612233565b6001600160a01b031614613fd95760405162461bcd60e51b8152600401610fed906158e7565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6120d081614454565b6007546001600160a01b031633146123ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fed565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03160361417f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610fed565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611d64565b6141ef848484613f05565b6141fb84848484614494565b611b185760405162461bcd60e51b8152600401610fed9061592c565b606061422282613940565b6000828152600660205260408120805461423b906153f7565b80601f0160208091040260200160405190810160405280929190818152602001828054614267906153f7565b80156142b45780601f10614289576101008083540402835291602001916142b4565b820191906000526020600020905b81548152906001019060200180831161429757829003601f168201915b5050505050905060006142d260408051602081019091526000815290565b905080516000036142e4575092915050565b8151156143165780826040516020016142fe92919061597e565b60405160208183030381529060405292505050919050565b61126284614592565b60006001600160e01b031982166380ac58cd60e01b148061435057506001600160e01b03198216635b5e139f60e01b145b80610b0a57506301ffc9a760e01b6001600160e01b0319831614610b0a565b612fdc828260405180602001604052806000815250614606565b6000828152600260205260409020546001600160a01b03166144045760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610fed565b600082815260066020526040902061441c8282615697565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b61445d81614639565b60008181526006602052604090208054614476906153f7565b1590506120d05760008181526006602052604081206120d0916149c3565b60006001600160a01b0384163b1561458a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906144d89033908990889088906004016159ad565b6020604051808303816000875af1925050508015614513575060408051601f3d908101601f19168201909252614510918101906159ea565b60015b614570573d808015614541576040519150601f19603f3d011682016040523d82523d6000602084013e614546565b606091505b5080516000036145685760405162461bcd60e51b8152600401610fed9061592c565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611262565b506001611262565b606061459d82613940565b60006145b460408051602081019091526000815290565b905060008151116145d457604051806020016040528060008152506145ff565b806145de846146ce565b6040516020016145ef92919061597e565b6040516020818303038152906040525b9392505050565b6146108383614760565b61461d6000848484614494565b61108e5760405162461bcd60e51b8152600401610fed9061592c565b600061464482612233565b905061464f82612233565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006146db836148eb565b60010190506000816001600160401b038111156146fa576146fa614bc7565b6040519080825280601f01601f191660200182016040528015614724576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461472e57509392505050565b6001600160a01b0382166147b65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610fed565b6000818152600260205260409020546001600160a01b03161561481b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6000818152600260205260409020546001600160a01b0316156148805760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610fed565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061492a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310614956576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061497457662386f26fc10000830492506010015b6305f5e100831061498c576305f5e100830492506008015b61271083106149a057612710830492506004015b606483106149b2576064830492506002015b600a8310610b0a5760010192915050565b5080546149cf906153f7565b6000825580601f106149df575050565b601f0160209004906000526020600020908101906120d091905b80821115614a0d57600081556001016149f9565b5090565b6001600160e01b0319811681146120d057600080fd5b600060208284031215614a3957600080fd5b81356145ff81614a11565b6001600160a01b03811681146120d057600080fd5b600060208284031215614a6b57600080fd5b81356145ff81614a44565b600081518084526020808501945080840160005b83811015614aa957815160ff1687529582019590820190600101614a8a565b509495945050505050565b606081526000614ac76060830186614a76565b602083820381850152614ada8287614a76565b8481036040860152855180825282870193509082019060005b81811015614b11578451151583529383019391830191600101614af3565b509098975050505050505050565b60005b83811015614b3a578181015183820152602001614b22565b50506000910152565b60008151808452614b5b816020860160208601614b1f565b601f01601f19169290920160200192915050565b6020815260006145ff6020830184614b43565b600060208284031215614b9457600080fd5b5035919050565b60008060408385031215614bae57600080fd5b8235614bb981614a44565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614c0557614c05614bc7565b604052919050565b60006001600160401b03821115614c2657614c26614bc7565b5060051b60200190565b803560ff81168114614c4157600080fd5b919050565b600082601f830112614c5757600080fd5b81356020614c6c614c6783614c0d565b614bdd565b82815260059290921b84018101918181019086841115614c8b57600080fd5b8286015b84811015614cad57614ca081614c30565b8352918301918301614c8f565b509695505050505050565b60008060008060608587031215614cce57600080fd5b8435935060208501356001600160401b0380821115614cec57600080fd5b614cf888838901614c46565b94506040870135915080821115614d0e57600080fd5b818701915087601f830112614d2257600080fd5b813581811115614d3157600080fd5b886020828501011115614d4357600080fd5b95989497505060200194505050565b60008060408385031215614d6557600080fd5b8235614d7081614a44565b9150614d7e60208401614c30565b90509250929050565b600082601f830112614d9857600080fd5b81356020614da8614c6783614c0d565b82815260059290921b84018101918181019086841115614dc757600080fd5b8286015b84811015614cad5780356001600160401b03811115614dea5760008081fd5b614df88986838b0101614c46565b845250918301918301614dcb565b60008083601f840112614e1857600080fd5b5081356001600160401b03811115614e2f57600080fd5b6020830191508360208260051b8501011115614e4a57600080fd5b9250929050565b600080600080600060808688031215614e6957600080fd5b614e7286614c30565b94506020808701356001600160401b0380821115614e8f57600080fd5b818901915089601f830112614ea357600080fd5b8135614eb1614c6782614c0d565b81815260059190911b8301840190848101908c831115614ed057600080fd5b938501935b82851015614eee57843582529385019390850190614ed5565b985050506040890135925080831115614f0657600080fd5b614f128a848b01614d87565b95506060890135925080831115614f2857600080fd5b5050614f3688828901614e06565b969995985093965092949392505050565b60008060208385031215614f5a57600080fd5b82356001600160401b03811115614f7057600080fd5b614f7c85828601614e06565b90969095509350505050565b600080600060608486031215614f9d57600080fd5b8335614fa881614a44565b92506020840135614fb881614a44565b929592945050506040919091013590565b600060208284031215614fdb57600080fd5b6145ff82614c30565b600080600060608486031215614ff957600080fd5b833561500481614a44565b92506020840135915060408401356001600160401b0381111561502657600080fd5b61503286828701614c46565b9150509250925092565b80151581146120d057600080fd5b60006020828403121561505c57600080fd5b81356145ff8161503c565b60006001600160401b0382111561508057615080614bc7565b50601f01601f191660200190565b600061509c614c6784615067565b90508281528383830111156150b057600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150d857600080fd5b6145ff8383356020850161508e565b60008060008060008060c0878903121561510057600080fd5b863561510b81614a44565b9550602087013561511b81614a44565b9450604087013561512b81614a44565b9350606087013561513b81614a44565b925060808701356001600160401b0381111561515657600080fd5b61516289828a016150c7565b92505060a087013561517381614a44565b809150509295509295509295565b6000806040838503121561519457600080fd5b82356001600160401b03808211156151ab57600080fd5b6151b7868387016150c7565b935060208501359150808211156151cd57600080fd5b506151da858286016150c7565b9150509250929050565b6000806000604084860312156151f957600080fd5b833561520481614a44565b925060208401356001600160401b0381111561521f57600080fd5b61522b86828701614e06565b9497909650939450505050565b6000806040838503121561524b57600080fd5b823561525681614a44565b915060208301356152668161503c565b809150509250929050565b6000806000806080858703121561528757600080fd5b843561529281614a44565b93506152a060208601614c30565b925060408501356152b081614a44565b91506152be60608601614c30565b905092959194509250565b600080600080608085870312156152df57600080fd5b84356152ea81614a44565b935060208501356152fa81614a44565b92506040850135915060608501356001600160401b0381111561531c57600080fd5b8501601f8101871361532d57600080fd5b61533c8782356020840161508e565b91505092959194509250565b6000806040838503121561535b57600080fd5b823561536681614a44565b9150602083013561526681614a44565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561539e57600080fd5b81516145ff8161503c565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff81036153d5576153d56153a9565b60010192915050565b6000600182016153f0576153f06153a9565b5060010190565b600181811c9082168061540b57607f821691505b60208210810361256a57634e487b7160e01b600052602260045260246000fd5b6001600160a01b0386168152602080820186905260806040830181905285519083018190526000918681019160a0850190845b8181101561547d57845160ff168352938301939183019160010161545e565b505084810360608601528581528587838301376000818701830152601f909501601f1916909401909301979650505050505050565b6000602082840312156154c457600080fd5b81516145ff81614a44565b6000808335601e198436030181126154e657600080fd5b8301803591506001600160401b0382111561550057600080fd5b602001915036819003821315614e4a57600080fd5b80820180821115610b0a57610b0a6153a9565b60006020828403121561553a57600080fd5b5051919050565b600060ff821680615554576155546153a9565b6000190192915050565b60008184825b8581101561558d5760ff61557783614c30565b1683526020928301929190910190600101615564565b509095945050505050565b81810381811115610b0a57610b0a6153a9565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526017908201527f5468697320636172642068617320616e206f666665722e000000000000000000604082015260600190565b60008261564c57634e487b7160e01b600052601260045260246000fd5b500490565b601f82111561108e57600081815260208120601f850160051c810160208610156156785750805b601f850160051c820191505b8181101561146f57828155600101615684565b81516001600160401b038111156156b0576156b0614bc7565b6156c4816156be84546153f7565b84615651565b602080601f8311600181146156f957600084156156e15750858301515b600019600386901b1c1916600185901b17855561146f565b600085815260208120601f198616915b8281101561572857888601518255948401946001909101908401615709565b50858210156157465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808654615764816153f7565b6001828116801561577c5760018114615791576157c0565b60ff19841687528215158302870194506157c0565b8a60005260208060002060005b858110156157b75781548a82015290840190820161579e565b50505082870194505b5050505085516157d4818360208a01614b1f565b85519101906157e7818360208901614b1f565b84519101906157fa818360208801614b1f565b019695505050505050565b60008251615817818460208701614b1f565b9190910192915050565b60006020828403121561583357600080fd5b81516001600160401b0381111561584957600080fd5b8201601f8101841361585a57600080fd5b8051615868614c6782615067565b81815285602083850101111561587d57600080fd5b61588e826020830160208601614b1f565b95945050505050565b8082028115828204841417610b0a57610b0a6153a9565b815160009082906020808601845b838110156158db57815160ff16855293820193908201906001016158bc565b50929695505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351615990818460208801614b1f565b8351908301906159a4818360208801614b1f565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906159e090830184614b43565b9695505050505050565b6000602082840312156159fc57600080fd5b81516145ff81614a1156fea26469706673582212200ffaf3d324c37446eb406b5236a0190fe68d2f2a5fd1a9f7402876c3b73a475464736f6c63430008140033", "linkReferences": { "contracts/gamma/libs/LibControlMgmt.sol": { "LibControlMgmt": [ From 0eab739bad3377295fa7a7d7529712b94e8fbf2e Mon Sep 17 00:00:00 2001 From: dappsar Date: Tue, 9 Apr 2024 06:31:00 -0300 Subject: [PATCH 11/11] [fix] :lock: fix code scanning alert: incomplete string escaping or encoding --- src/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.js b/src/config.js index 40dfa2ba..6f068577 100644 --- a/src/config.js +++ b/src/config.js @@ -209,5 +209,5 @@ export const NETWORKS = { function removeQuotes(text) { if (text === '' || !text) return text - return text.replace("'", '').replace('"', '') + return text.replace(/['"]/g, '') }